<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>CGSocialApp</name>
	<version>1.1.10</version>
  <mincmsversion>1.11.2</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGlzIGEgc29jaWFsIGFwcGxpY2F0aW9uIGZyYW1ld29yayBidWlsdCBvbiB0b3Agb2YgQ01TTVMuICBJdCBpcyBkZXNpZ25lZCB0byBhbGxvdyBtb2JpbGUgZGV2ZWxvcGVycyB0byBidWlsZCBzbWFsbCB0byBtZWRpdW0gc2NhbGUgc3BlY2lhbGl6ZWQgc29jaWFsIGFwcGxpY2F0aW9ucyBhbmQgd2Vic2l0ZXMuICBpdCBjYW4gYmUgdXNlZCBmb3IgYWxsb3dpbmcgbW9iaWxlIHVzZXJzIHRvIGFkZCBvciBlZGl0IGxvY2F0aW9uIGluZm9ybWF0aW9uLCBtYW5hZ2UgZnJpZW5kc2hpcHMsIGFuZCBjcmVhdGUgdGltZSByZWxhdGVkIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gYSBsb2NhdGlvbi48L3A+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgUkVTVEZVTCBBUEkgdG8gYWxsb3cgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHNvY2lhbCBkYXRhLCBhbmQgZm9yIGRpc3BsYXlpbmcgc29tZSBvZiB0aGF0IGRhdGEgb24gdGhlIENNU01TIHBvd2VyZWQgd2Vic2l0ZS48L3A+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGhhdmUgbXVjaCBmdW5jdGlvbmFsaXR5IG9mIGl0cyBvd24sIGl0IGlzIGRlc2lnbmVkIHRvIHByaW1hcmx5IHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCBhIGN1c3RvbSBkZXZlbG9wZWQgbW9iaWxlIGFwcGxpY2F0aW9uICh3aGljaCB5b3UgYXJlIGZyZWUgdG8gY3JlYXRlKS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiA8bGk+T25lIEluc3RhbGwgLSBNYW55IEFQUFMKICAgPHVsPgogICAgIDxsaT5VbmlxdWUgQVBJIEtleXMsIHdpdGggZXhwaXJ5PC9saT4KICAgICA8bGk+QWR2YW5jZWQgU2VjdXJpdHkuPC9saT4KICAgICA8bGk+QXRvbWljIHBlcm1pc3Npb25zIG1vZGVsLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlVzZXJzIEFQSQogICA8cD5UaGUgVXNlcnMgQVBJIGFsbG93cyBxdWVyeWluZywgcmVnaXN0ZXJpbmcsIGxvZ2dpbmcgaW4sIGxvZ2dpbmcgb3V0LCBhbmQgbW9kaWZ5aW5nIG9mIGEgdXNlciBhY2NvdW50LiAgSXQgdXNlcyB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUgZm9yIGF1dGhlbnRpY2F0aW9uLiAgVGhpcyBpcyB0aGUgcHJpbWFyeSBtZWNoYW5pc20gZm9yIGF1dGhlbnRpY2F0aW5nIHRvIHRoZSBzeXN0ZW0gKG90aGVyIHRoYW4gdGhlIEFQSSBrZXkpLiAgT25seSBhdXRoZW50aWNhdGVkIHVzZXJzIGNhbiBjcmVhdGUgbG9jYXRpb25zLCBhZGQgY2hlY2tpbmdzLCBlZGl0IGZyaWVuZCByZWxhdGlvbnNoaXBzIGV0Yy48L3A+CiAgIDx1bD4KICAgICA8bGk+UmVnaXN0ZXIgYSBuZXcgdXNlciA8ZW0+KFJFR0lTVEVSKTwvZW0+PC9saT4KICAgICA8bGk+TG9naW4gYW4gZXhpc3RpbmcgdXNlciA8ZW0+KExPR0lOKTwvZW0+PC9saT4KICAgICA8bGk+UElORyB0aGUgc2VydmVyIChrZWVwIGxvZ2luIHNlc3Npb24gYWxpdmUpIDxlbT4oUElORyk8L2VtPjwvbGk+CiAgICAgPGxpPkxvZ291dCBmcm9tIHRoZSBzeXN0ZW0gPGVtPihMT0dPVVQpPC9lbT48L2xpPgogICAgIDxsaT5SZXRyaWV2ZSB1c2VyIGluZm9ybWF0aW9uIChjdXJyZW50IHVzZXIpIDxlbT4oR0VUSU5GTyk8L2VtPjwvbGk+CiAgICAgPGxpPlJldHJpZXZlIHVzZXIgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIChjdXJyZW50IHVzZXIpIDxlbT4oUFJPUEVSVElFUyk8L2VtPjwvbGk+CiAgICAgPGxpPlNldCB1c2VyIGluZm9ybWF0aW9uIG9yIHByb3BlcnRpZXMgKGN1cnJlbnQgdXNlcikgPGVtPihTRVRQUk9QUyk8L2VtPjwvbGk+CiAgICAgPGxpPlJldHJpZXZlIHVzZXIgaGlzdG9yeSAoY3VycmVudCB1c2VyKSA8ZW0+KEhJU1RPUlkpPC9lbT48L2xpPgogICAgIDxsaT5MaXN0IFVzZXJzICh3aXRoIGJhc2ljIGZpbHRlcmluZykgPGVtPihMSVNUKTwvZW0+PC9saT4KICAgICA8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij5UT0RPOjwvc3Bhbj4gRGVsZXRlIGN1cnJlbnQgdXNlciA8ZW0+KERFTEVURSk8L2VtPjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPkxvY2F0aW9ucyBBUEkKICAgICA8cD5UaGUgbG9jYXRpb25zIG1lY2hhbmlzbSB1c2VzIHRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSB0byBtYW5hZ2UgYW5kIHN0b3JlIGRhdGEuICBMb2NhdGlvbnMgYWRkZWQgdmlhIHRoZSBSRVNURlVMIGFwaSBjYW4gYmUgbGlzdGVkIHVzaW5nIHRoZSBub3JtYWwgbWVjaGFuaXNtcyBpbiBDb21wYW55RGlyZWN0b3J5LiBTb21lIG9mIHRoZSBiYXNpYyBmZWF0dXJlcyBhcmU6PC9wPgogIDx1bD4KICAgICA8bGk+RmVhdHVyZTogUmF0ZSBMaW1pdGluZzwvbGk+CiAgICAgPGxpPkZlYXR1cmU6IFBob3RvIFVwbG9hZHM8L2xpPgogICAgIDxsaT5GZWF0dXJlOiBPcHRpb25hbCBBcHByb3ZhbDwvbGk+CiAgICAgPGxpPlJldHJpZXZlIGhpZXJhcmNoeSBsaXN0IDxlbT4oSElFUkFSQ0hZIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPlJldHJpZXZlIGNhdGVnb3J5IGxpc3QgPGVtPihDQVRFR09SSUVTIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkxpc3QgbG9jYXRpb25zICh3aXRoIGZpbHRlcmluZykgPGVtPihMSVNUIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkdldCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGxvY2F0aW9uIDxlbT4oR0VUIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkFkZCBhIGxvY2F0aW9uIDxlbT4oQUREIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkVkaXQgaW5mb3JtYXRpb24gYWJvdXQgYSBsb2NhdGlvbiA8ZW0+KEVESVQgQVBJIEZ1bmN0aW9uKTwvZW0+PC9saT4KICAgICA8bGk+QXR0YWNoIGEgcGhvdG8gdG8gYSBsb2NhdGlvbiA8ZW0+KFBIT1RPVVBMT0FEIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPlJlbW92ZSBhIHBob3RvIGZyb20gYSBsb2NhdGlvbiA8ZW0+KFBIT1RPREVMRVRFIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+ICAgICAKICAgICA8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij5UT0RPOjwvc3Bhbj4gRGVsZXRlIGEgbG9jYXRpb24gPGVtPihERUxFVEUpPC9lbT48L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPkNoZWNraW5zIEFQSQogIDxwPlRoZSBDaGVja2lucyBtZWNoYW5pc20gYWxsb3dzIGEgbG9nZ2VkIGluIHVzZXIgdG8gc2F5IHRoYXQgdGhleSB3ZXJlIEFUIGEgc3BlY2lmaWMgbG9jYXRpb24gYXQgYSBzcGVjaWZpYyB0aW1lLjwvcD4KICA8dWw+CiAgICAgPGxpPkZlYXR1cmU6IEFjdGl2aXR5IGNhcGFiaWxpdGllcy48L2xpPgogICAgIDxsaT5GZWF0dXJlOiBPcHRpb25hbCBBcHByb3ZhbDwvbGk+CiAgICAgPGxpPkZlYXR1cmU6IEVuaGFuY2VkIHNlY3VyaXR5PC9saT4KICAgICA8bGk+RmVhdHVyZTogUmF0ZSBMaW1pdGluZyBhbmQgU3BhbSBwcm90ZWN0aW9uPC9saT4KICAgICA8bGk+QWRkIGEgY2hlY2tpbiA8ZW0+KEFERCBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5SZXRyaWV2ZSBhIHNpbmdsZSBjaGVja2luIDxlbT4oR0VUIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkRlbGV0ZSBhIHNpbmdsZSBjaGVja2luIDxlbT4oREVMIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkFwcHJvdmUgYSBkcmFmdCBjaGVja2luIDxlbT4oQVBQUk9WRSBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5FZGl0IGEgc2luZ2xlIGNoZWNraW4gPGVtPihFRElUIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkZpbmQgY2hlY2tpbnMgZm9yIGEgY2VydGFpbiBsb2NhdGlvbiAod2l0aCBwYWdpbmF0aW9uIGFuZCB0aW1lIGxpbWl0aW5nKSA8ZW0+KEJZTE9DQVRJT04gQVBJIEZ1bmN0aW9uKTwvZW0+PC9saT4KICAgICA8bGk+RmluZCBjaGVja2lucyBmcm9tIGZyaWVuZHMgKHdpdGggcGFnaW5hdGlvbiBhbmQgdGltZSBsaW1pdGluZykgPGVtPihGUklFTkRTIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+VE9ETzo8L3NwYW4+IEZpbmQgY2hlY2tpbnMgYnkgYWN0aXZpdHkuPC9saT4KICA8L3VsPgogPC9saT4KIDxsaT5GcmllbmRzIEFQSQogIDxwPlRoZSBmcmllbmRzIG1lY2hhbmlzbSBhZGRzIHRoZSBzb2NpYWwgcGFydCB0byB0aGUgQVBJLiAgVXNlcnMgY2FuIG1hbmFnZSBhIGZyaWVuZHMgbGlzdCwgYXBwcm92ZSBhbmQgZGVueSBmcmllbmQgcmVxdWVzdHMsIGFuZCBzZWUgd2hhdCB0aGVpciBmcmllbmRzIGFyZSBkb2luZyB3aXRoIHRoZSBhcHBsaWNhdGlvbi48L3A+CiAgPHVsPgogICAgIDxsaT5MaXN0IEZyaWVuZHMgKGZvciB0aGUgY3VycmVudCB1c2VyKSA8ZW0+KExJU1QgQVBJIEZ1bmN0aW9uKTwvZW0+PC9saT4KICAgICA8bGk+UmVtb3ZlIGEgY3VycmVudCBmcmllbmQgZnJvbSB0aGUgbGlzdCAoZm9yIHRoZSBjdXJyZW50IHVzZXIpIDxlbT4oREVMIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPlN1Z2dlc3QgRnJpZW5kcyAoZm9yIHRoZSBjdXJyZW50IHVzZXIpIDxlbT4oU1VHR0VTVCBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5WaWV3IGEgbGlzdCBvZiBmcmllbmRzaGlwIHJlcXVlc3RzIChmb3IgdGhlIGN1cnJlbnQgdXNlcikgPGVtPihSRVFVRVNUTElTVCBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5TZW5kIGEgZnJpZW5kIHJlcXVlc3QgdG8gYW5vdGhlciB1c2VyIDxlbT4oUkVRVUVTVCBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5BcHByb3ZlIGEgZnJpZW5kIHJlcXVlc3QgZnJvbSBhbm90aGVyIHVzZXIgPGVtPihBUFBST1ZFIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkRlbnkgYSBmcmllbmQgcmVxdWVzdCBmcm9tIGFub3RoZXIgdXNlciA8ZW0+KERFTlkgQVBJIEZ1bmN0aW9uKTwvZW0+PC9saT4KICA8L3VsPgogPC9saT4KIDxsaT5MZWFkZXJib2FyZCAvIEJhZGdlcwogICA8cD5UaGUgTGVhZGVyYm9hcmQgLyBCYWRnZXMgZnVuY3Rpb25hbGl0eSBhbGxvd3MgcmV3YXJkaW5nIHVzZXJzIGZvciB1c2luZyB5b3VyIGFwcGxpY2F0aW9uLjwvcD4KICAgPHVsPgogICA8bGk+Q3JlYXRlIG51bWVyb3VzIGxlYWRlcmJvYXJkcyBiYXNlZCBvbiBudW1lcm91cyBjcml0ZXJpdW0sIGluY2x1ZGluZyBsb2NhdGlvbiBhbmQgYWN0aXZpdHkuPC9saT4KICAgPGxpPlNjb3JlcyBmb3IgZWFjaCBsZWFkZXJib2FyZCBhcmUgY2FsY3VsYXRlZCByZWd1bGFybHkgZnJvbSB1bnByb2Nlc3NlZCBjaGVja2lucywgdXNpbmcgdGhlIENHSm9ibWdyPC9saT4KICAgPGxpPkNyZWF0ZSBudW1lcm91cyBiYWRnZXMgb24gYW55IGxlYWRlcmJvYXJkLjwvbGk+CiAgIDxsaT5CYWRnZXMgY2FuIGJlIHVuaXF1ZSAob25seSBvbmUgbWVtYmVyIGNhbiBwb3Nlc3MgdGhlIGJhZGdlIGF0IGFueSBvbmUgdGltZSksIG9yIG5vbiB1bmlxdWUgYWxsb3dpbmcgbnVtZXJvdXMgbWVtYmVycy48L2xpPgogICA8bGk+QmFkZ2VzIGFyZSBiYXNlZCBvbiBzY29yZSBmcm9tIGEgbGVhZGVyYm9hcmQsIGFuZCBjYW4gaGF2ZSBhIG1pbmltdW0sIGFuZCBvcHRpb25hbGx5IGEgbWF4aW11bSBzY29yZS48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5Ob3RpZmljYXRpb25zIGFuZCBFdmVudHM6CiAgIDxwPlRoaXMgbW9kdWxlIGlzIGNhcGFiaWxlIG9mIHNlbmRpbmcgbm90aWZpY2F0aW9ucyAodXNpbmcgdGhlIENHTm90aWZpZXIgYW5kIG90aGVyIHN1cHBvcnRpbmcgbW9kdWxlcykgdG8gcHVibGlzaCB3aGVuIGJhZGdlcyBhcmUgYXdhcmRlZC48L3A+CiAgIDxwPlRoZSBtb2R1bGUgc2VuZHMgZXZlbnRzIGxvZ2ljYWwgcGxhY2VzIGluIHRoZSBjb2RlIGFsbG93aW5nIG90aGVyIG1vZHVsZXMgb3IgdXNlciBkZWZpbmVkIHRhZ3MgdG8gcGVyZm9ybSBtb3JlIGZ1bmN0aW9uYWxpdHkuPC9wPgogPC9saT4KIDxsaT5Gcm9udGVuZCBkYXRhIGRpc3BsYXk6IDwvZW0+KHRvZG8pPC9lbT4KIDwvbGk+CjwvdWw+CjxoMz5Ib3cgZG8gSSB1c2UgaXQ6PC9oMz4KPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIG1vZHVsZSBpcyBmb3IgYWR2YW5jZWQgdXNlcnMgb25seS4gIEluIG9yZGVyIHRvIHByb3Blcmx5IHVzZSB0aGlzIG1vZHVsZSB5b3Ugd2lsbCBwcm9iYWJseSBoYXZlIHRvIGNyZWF0ZSAob3IgaGF2ZSBjcmVhdGVkKSBBIG1vYmlsZSBjbGllbnQgdGhhdCBpbnRlcmFjdHMgd2l0aCB0aGlzIG1vZHVsZXMgUkVTVEZVTCBBUEkuIEEgU2FtcGxlIFBIUCBjb21tYW5kIGxpbmUgY2xpZW50IGFwcGxpY2F0aW9uIGlzIGluY2x1ZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLjwvcD4KPHA+QWZ0ZXIgaW5zdGFsbGF0aW9uIGFuZCBjb25maWd1cmF0aW9uIG9mIHRoaXMgbW9kdWxlLCB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUsIFRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSwgYW5kIGFueSBvdGhlciBkZXBlbmRhbnRzIHRoZXJlIGFyZSBhIGZldyBzdGVwcyB0byBmb2xsb3c6PC9wPgo8dWw+CiAgPGxpPkNyZWF0ZSBhbiBBUEkga2V5PC9saT4KICA8bGk+TW9kaWZ5IHRoZSBjbGllbnQucGhwIGFuZCBpbnNlcnQgdGhlIEFQSSBrZXkgY3JlYXRlZCBhYm92ZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIG9mIHRoZSBjb2RlLjwvbGk+CiAgPGxpPkNyZWF0ZSBhdCBsZWFzdCBvbmUgdXNlciBpbiBGRVU8L2xpPgogIDxsaT5DcmVhdGUgYXQgbGVhc3Qgb25lIHB1YmxpYyBsb2NhdGlvbiBpbiBDb21wYW55RGlyZWN0b3J5LCBmb3IgdGVzdGluZzwvbGk+CiAgPGxpPkxhdW5jaCB0aGUgcGhwIGNsaWVudCBhcHBsaWNhdGlvbi48L2xpPgo8L3VsPgo8aDM+U21hcnR5IEZ1bmN0aW9uczwvaDM+CjxwPlRPRE88L3A+CjxoMz5SZXF1aXJlbWVudHM8L2gzPgo8dWw+CiAgPGxpPkZFVSAtIExvZ2luIG1vcmUgdGhhbiBvbmNlIG11c3QgYmUgZW5hYmxlZC48L2xpPgogIDxsaT5QcmV0dHkgVVJMUyAobW9kX3Jld3JpdGUgb3IgaW50ZXJuYWwpIG11c3QgYmUgY29uZmlndXJlZC48L2xpPgogIDxsaT5UaGUgbW9iaWxlIGNsaWVudCBtdXN0IGhhdmUgY29va2llcyBjYXBhYmlsaXRpZXMuPC9saT4KICA8bGk+VGhlIENHSm9iTWdyIG1vZHVsZSBpcyByZXF1aXJlZCBmb3IgdGhlIGJhZGdlIGZ1bmN0aW9uYWxpdGllcy4gV2UgcmVjb21tZW5kIHRoYXQgbGVhZGVyYm9hcmRzIGJlIHVwZGF0ZWQgbW9yZSBmcmVxdWVudGx5IHRoYW4gYmFkZ2VzLiAgQnV0IG5vIG1vcmUgdGhhbiAzIG9yIDQgdGltZXMgcGVyIGhvdXIuICBJZGVhbCBpbnRlcnZhbHMgYXJlIGFwcHJveGltYXRlbHkgMjAgbWludXRlcyB0byB1cGRhdGUgbGVhZGVyYm9hcmRzLCBhbmQgMzAgbWludXRlcyBmb3IgdXBkYXRpbmcgYmFkZ2VzLjwvbGk+CiAgPGxpPlRoZSBDR0ZhdnMgbW9kdWxlIGlzIHJlcXVpcmVkIGZvciBtYWludGFpbmluZyBmcmllbmQgcmVsYXRpb25zaGlwcy48L2xpPgogIDxsaT5UaGUgZGVmYXVsdCAoc2FtcGxlKSB0ZW1wbGF0ZXMgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIHttb2R1bGVfYWN0aW9uX2xpbmt9IHBsdWdpbiBmcm9tIHRoZSBDR1NpbXBsZVNtYXJ0eSBsaWJyYXJ5LjwvbGk+CiAgPGxpPk51bWVyb3VzIGZpZWxkcyBtYXkgYmUgcmVxdWlyZWQgaW4gdGhlIENvbXBhbnlEaXJlY3RvcnkgYW5kL29yIEZFVSBtb2R1bGVzIHRvIGFsbG93IGNlcnRhaW4gZnVuY3Rpb25hbGl0eS4gIGkuZTogQW4gQWxidW0gZmllbGQgaXMgcmVxdWlyZWQgaW4gdGhlIENvbXBhbnlEaXJlY3RvcnkgbW9kdWxlIHRvIGFsbG93IHRoZSBQSE9UT1VQTE9BRCBhY3Rpb24gdG8gd29yay48L3A+CiAgPGxpPlRoZSBzYW1wbGUgUEhQIGNsaWVudCByZWxpZXMgb24gdGhlIGN1cmwgcGhwIGV4dGVuc2lvbnMuPC9saT4KICA8bGk+Rm9yIE5vdGlmaWNhdGlvbnMgdG8gd29yayB0aGUgQ0dOb3RpZmllciBtb2R1bGUsIGFuZCBvdGhlciBzdXBwb3J0aW5nIG1vZHVsZXMgbGlrZSAoQ0dUd2VldCwgYW5kIENHU01TKSBhcmUgbmVlZGVkLCBhbmQgbXVzdCBiZSBwcm9wZXJseSBjb25maWd1cmVkLjwvbGk+CjwvdWw+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5XCdzCm1vZHVsZSBob21lcGFnZSBhdCA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPmNhbGd1eTEwMDAuY29tPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+RnJvbnRFbmRVc2VycyA9Jmd0OyAxLjIxLjE8L2xpPjxsaT5Db21wYW55RGlyZWN0b3J5ID0mZ3Q7IDEuMTYuMzwvbGk+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjMxLjI8L2xpPjxsaT5DR0ZhdnMgPSZndDsgMS4wLjI8L2xpPjxsaT5DR1NpbXBsZVNtYXJ0eSA9Jmd0OyAxLjU8L2xpPjxsaT5DR0pvYk1nciA9Jmd0OyAxLjIuNzwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpb249IiIgLSBTcGVjaWZ5IHRoZSBiZWhhdmlvciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgY2hlY2tpbnM8L2xpPgogIDxsaT5saXN0X2FjdGl2aXRpZXMgLSBEaXNwbGF5IGEgbmVzdGVkIGxpc3Qgb2YgYWN0aXZpdGllcy48L2xpPgogIDxsaT52aWV3X2FjdGl2aXR5IC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc3BlY2lmaWMgYWN0aXZpdHkuPC9saT4KPC91bD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxvY2F0aW9uPSIiIC0gLS0gTWlzc2luZyBMYW5ndWFnZXN0cmluZyAtIG1vZHVsZTpDR1NvY2lhbEFwcCBzdHJpbmc6cGFyYW1fbG9jYXRpb25pZC0tPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBhY3Rpdml0eT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8ZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gbGltaXQgdGhlIGNoZWNraW4gcmVzdWx0cyB0byBhIHNwZWNpZmljIGFjdGl2aXR5PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0aW1lbGltaXQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBsaW1pdCB0aGUgY2hlY2tpbiByZXN1bHRzIHRvIGEgc3BlY2lmaWMgdGltZSByYW5nZS4gIEEgcG9zaXRpdmUgIHZhbHVlIHNwZWNpZmllcyBhbiBhYnNvbHV0ZSB1bml4IHRpbWVzdGFtcC4gIEEgbmVnYXRpdmUgdmFsdWUgaW5kaWNhdGVzIHNlY29uZHMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgdGltZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG93bmVyPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gbGltaXQgdGhlIHJlc3VsdHMgdG8gYSBzcGVjaWZpYyBvd25lciBpZDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGltaXQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBsaW1pdCB0aGUgcmVzdWx0cyB0byBhIHNwZWNpZmllZCBudW1iZXI8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG9mZnNldD0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbmJlIHVzZWQgZm9yIHBhZ2luYXRpb24gdG8gc3BlY2lmeSB0aGUgc3RhcnQgb2Zmc2V0IG9mIG1hdGNoZXMgdG8gcmV0dXJuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzb3J0Ynk9ImNyZWF0ZWQiIC0gU3BlY2lmeSBhIGRpZmZlcmVudCBzb3J0aW5nIHRvIHRoZSBvdXRwdXQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBpZCwgcGFyZW50X2lkLCBvd25lciwgbG9jYXRpb24sIGFjdGl2aXR5LCBjcmVhdGVkIChkZWZhdWx0KTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydG9yZGVyPSJERVNDIiAtIFNwZWNpZnkgYSBkaWZmZXJlbnQgc29ydCBvcmRlci4gIFBvc3NpYmxlIHZhbHVlcyBhcmUgYXNjLCBhbmQgZGVzYzwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdGVtcGxhdGU9IiIgLSBBcHBsaWNhYmxlIHRvIHRoZSBkZWZhdWx0LCBhbmQgdmlld19hY3Rpdml0eSBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGlzdF90ZW1wbGF0ZT0iIiAtIEFwcGxpY2FibGUgb25seSB0byB0aGUgbGlzdF9hY3Rpdml0aWVzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCB0ZW1wbGF0ZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc3RhcnQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGxpc3RfYWN0aXZpdGllcyBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIGEgc3RhcnQgYWN0aXZpdHk8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDApICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMS4xMDxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KICA8bGk+VmVyc2lvbiAxLjAgLSBJbml0aWFsIFJlbGVhc2UuPC9saT4KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[A module for enabling a mobile social site]]></description>
	<requires>
	  <requiredname>FrontEndUsers</requiredname>
	  <requiredversion>1.21.1</requiredversion>
	</requires>
	<requires>
	  <requiredname>CompanyDirectory</requiredname>
	  <requiredversion>1.16.3</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.31.2</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGFavs</requiredname>
	  <requiredversion>1.0.2</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.5</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGJobMgr</requiredname>
	  <requiredversion>1.2.7</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.activities.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYXBpa2V5ID0gJyc7CiRvcCA9ICcnOwokb3V0cHV0ID0gbnVsbDsKCi8vCi8vIHNldHVwCi8vCmlmKCBpc3NldCgkX1JFUVVFU1RbJ29wJ10gKSApIHsKICAkb3AgPSBzdHJ0b3VwcGVyKHRyaW0oJF9SRVFVRVNUWydvcCddKSk7Cn0KaWYoIGlzc2V0KCRfUkVRVUVTVFsnYXBpa2V5J10pICkgewogICRhcGlrZXkgPSB0cmltKCRfUkVRVUVTVFsnYXBpa2V5J10pOwp9CgovLyBkZXBlbmRlbmN5IGNoZWNrLgokY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKaWYoICEkY2Rtb2QgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0NvbXBhbnlEaXJlY3RvcnkgbW9kdWxlIG5vdCBmb3VuZCcpOwoKLy8gdmFsaWRhdGlvbiBjaGVjawppZiggJGFwaWtleSA9PSAnJyApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignTm8gQXV0aGVudGljYXRpb24gSW5mb3JtYXRpb24nKTsKaWYoICRvcCA9PSAnJyApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignT3BlcmF0aW9uIG5vdCBzcGVjaWZpZWQnKTsKCi8vIHZhbGlkYXRlIHRoZSBhcGlrZXkuCiRhY2Nlc3NfaW5mbyA9IGNnc2FfdXRpbHM6OnZhbGlkYXRlX2FwaWtleSgkYXBpa2V5KTsKaWYoICFpc19vYmplY3QoJGFjY2Vzc19pbmZvKSApIHsKICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludmFsaWQgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24nKTsKfQoKc3dpdGNoKCAkb3AgKSB7CiBjYXNlICdMSVNUJzoKICAgLy8gbGlzdCBhbGwgYWN0aXZpdGllcyBhcyBhIHRyZWUuCiAgIGlmKCAhY2dzYV91dGlsczo6aXNfZ2V0X3JlcXVlc3QoKSApIHJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9BQ1RJVklUSUVTX1JFQUQpICkKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAkb3V0cHV0ID0gY2dzYV9hY3Rpdml0eTo6bG9hZF9hbGxfYXNfdHJlZSgtMSxGQUxTRSk7CiAgIGJyZWFrOwogICAKIGRlZmF1bHQ6CiAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignVW5rbm93biBjb21tYW5kJyk7Cn0KCmNnc2FfdXRpbHM6OnJldHVybl9zdWNjZXNzKCRvdXRwdXQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_addactivity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vCi8vIGluaXRpYWxpemF0aW9uCi8vCiRhY3Rpdml0eSA9IG5ldyBjZ3NhX2FjdGl2aXR5OwokdGhpcy0+U2V0Q3VycmVudFRhYignYWN0aXZpdGllcycpOwoKLy8KLy8gc2V0dXAKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2FjdGlkJ10pICkgewogICRhY3Rpdml0eSA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYnlfaWQoKGludCkkcGFyYW1zWydhY3RpZCddKTsKICBpZiggISRhY3Rpdml0eSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYWN0aXZpdHlub3Rmb3VuZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQp9CgovLwovLyBoYW5kbGUgZm9ybSBkYXRhCi8vCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSB7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICBpZiggaXNzZXQoJHBhcmFtc1snbmFtZSddKSApIHsKICAgICRhY3Rpdml0eS0+bmFtZSA9IHRyaW0oJHBhcmFtc1snbmFtZSddKTsKICB9CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Rlc2NyaXB0aW9uJ10pICkgewogICAgJGFjdGl2aXR5LT5kZXNjcmlwdGlvbiA9IHRyaW0oJHBhcmFtc1snZGVzY3JpcHRpb24nXSk7CiAgfQogIGlmKCBpc3NldCgkcGFyYW1zWydwYXJlbnRfaWQnXSkgKSB7CiAgICAkYWN0aXZpdHktPnBhcmVudF9pZCA9IChpbnQpJHBhcmFtc1sncGFyZW50X2lkJ107CiAgfQoKICB0cnkgewogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZV9pbWFnZSddKSApIHsKICAgICAgJGFjdGl2aXR5LT5kZWxldGVfZmlsZXMoKTsKICAgIH0KICAgICRyZXMgPSAkYWN0aXZpdHktPnNhdmUoKTsgLy8gdGhpcyB3aWxsIGdpdmUgdXMgYW4gaWQgaWYgbm90IGFscmVhZHkgc2V0LgogICAgCiAgICAkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ18nLiR0aGlzLT5HZXROYW1lKCksJ2FjdGl2aXRpZXMnLCRhY3Rpdml0eS0+aWQpOwogICAgJGhhbmRsZXIgPSBjZ2Vfc2V0dXA6OmdldF91cGxvYWRlcigkaWQsJGRlc3RkaXIpOwoKICAgIGlmKCAkaGFuZGxlci0+Y2hlY2tfdXBsb2FkKCdpbWFnZScsJycsRkFMU0UpICkgewogICAgICBjZ2VfZGlyOjpta2RpcnIoJGRlc3RkaXIpOwogICAgICAkcmVzID0gJGhhbmRsZXItPmhhbmRsZV91cGxvYWQoJ2ltYWdlJyk7CiAgICAgICRlcnIgPSAkaGFuZGxlci0+Z2V0X2Vycm9yKCk7CgogICAgICBpZiggISRyZXMgJiYgJGVyciAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CgkvLyB1cGxvYWQgZGllLgoJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl91cGxvYWQnKSk7CgkkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgICB9CiAgICAgIGlmKCAkcmVzICkgewoJJGFjdGl2aXR5LT5kZWxldGVfZmlsZXMoKTsKCgkvLyBmaWxlIHVwbG9hZGVkLCBzYXZlIGFnYWluLgoJJGFjdGl2aXR5LT5pbWFnZSA9IGJhc2VuYW1lKCRyZXMpOwoJJGFjdGl2aXR5LT5zYXZlKCk7CiAgICAgIH0KICAgIH0KCiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3N1Y2Nlc3MnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KICBjYXRjaChFeGNlcHRpb24gJGUpIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPmdldE1lc3NhZ2UoKSk7CiAgfQp9CgovLyAKLy8gZ2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eQovLwokZHJvcGRvd24gPSAnJzsKewogICRkYXRhID0gY2dzYV9hY3Rpdml0eTo6bG9hZF9hbGxfYXNfYXJyYXkoKTsKICBpZiggaXNfYXJyYXkoJGRhdGEpICkgewogICAgJGRyb3Bkb3duID0gYXJyYXkoLTE9PiR0aGlzLT5MYW5nKCdub25lJykpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrICkgewogICAgICAkZGVwdGggPSBjb3VudChleHBsb2RlKCcuJywkZGF0YVskaV1bJ2hpZXJhcmNoeSddKSk7CiAgICAgICRkcm9wZG93blskZGF0YVskaV1bJ2lkJ11dID0gc3RyX3JlcGVhdCgnJm5ic3A7JywkZGVwdGgpLiRkYXRhWyRpXVsnbmFtZSddOwogICAgfQogIH0KfQoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TVGFydCgkaWQsJ2FkbWluX2FkZGFjdGl2aXR5JywkcmV0dXJuaWQsJHBhcmFtcyxmYWxzZSwncG9zdCcsCgkJCQkJCSAgICAgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CmlmKCBpc19hcnJheSgkZHJvcGRvd24pICYmIGNvdW50KCRkcm9wZG93bikgKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdhY3Rpdml0aWVzJywkZHJvcGRvd24pOwogfQokc21hcnR5LT5hc3NpZ24oJ2FjdGl2aXR5JywkYWN0aXZpdHkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9hZGRhY3Rpdml0eS50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_addedit_badge.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKENHU29jaWFsQXBwOjpQRVJNSVNTSU9OKSApIGV4aXQ7CmlmKCAhaXNzZXQoJHBhcmFtc1snbGVhZGVyYm9hcmQnXSkgKSByZXR1cm47CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgewogICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcGVyYXRpb25fY2FuY2VsbGVkJykpOwogICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2FkbWluX2xpc3RiYWRnZXMnLCcnLGFycmF5KCdsZWFkZXJib2FyZCc9PiRwYXJhbXNbJ2xlYWRlcmJvYXJkJ10pKTsKfQoKJGxlYWRlcmJvYXJkID0gY2dzYV9sZWFkZXJib2FyZDo6bG9hZF9ieV9pZCgoaW50KSRwYXJhbXNbJ2xlYWRlcmJvYXJkJ10pOwppZiggIWlzX29iamVjdCgkbGVhZGVyYm9hcmQpICkgcmV0dXJuOwokYmFkZ2UgPSBuZXcgY2dzYV9iYWRnZTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2JhZGdlJ10pICkgewogICRiYWRnZSA9IGNnc2FfYmFkZ2U6OmxvYWRfYnlfaWQoJHBhcmFtc1snYmFkZ2UnXSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgJHBhcm1zID0gJHBhcmFtczsKICAkcGFybXNbJ2xlYWRlcmJvYXJkX2lkJ10gPSAkcGFybXNbJ2xlYWRlcmJvYXJkJ107CiAgdW5zZXQoJHBhcm1zWydsZWFkZXJib2FyZCddKTsKICAkcGFybXNbJ2lkJ10gPSAtMTsKICAkbmV3YmFkZ2UgPSAxOwogIGlmKCBpc3NldCgkcGFybXNbJ2JhZGdlJ10pICkgewogICAgJG5ld2JhZGdlID0gMDsKICAgICRwYXJtc1snaWQnXSA9ICRwYXJtc1snYmFkZ2UnXTsKICAgIHVuc2V0KCRwYXJtc1snYmFkZ2UnXSk7CiAgfQogIHVuc2V0KCRwYXJtc1snc3VibWl0J10pOwogIHVuc2V0KCRwYXJtc1snYWN0aW9uJ10pOwogIHVuc2V0KCRwYXJtc1snZGVsZXRlX2ltYWdlJ10pOwoKICB0cnkgewogICAgZm9yZWFjaCggJHBhcm1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAkYmFkZ2UtPiRrZXkgPSAkdmFsdWU7CiAgICB9CgogICAgaWYoICRiYWRnZS0+aWQgPiAwICkgewogICAgICAkZGlyID0gY2dzYV91dGlsczo6Z2V0X2JhZGdlX2ZpbGVwYXRoKCRiYWRnZSk7CiAgICAgICR1cGxvYWRlciA9IGNnZV9zZXR1cDo6Z2V0X3VwbG9hZGVyKCRpZCwkZGlyKTsKICAgICAgaWYoICR1cGxvYWRlci0+Y2hlY2tfdXBsb2FkX2F0dGVtcHRlZCgnaW1hZ2UnKSAmJiAkbGVhZGVyYm9hcmQtPmltYWdlICE9ICcnICkgewoJLy8gd2UncmUgdXBsb2FkaW5nIGFub3RoZXIgaW1hZ2UsIGRlbGV0ZSB0aGUgZmlyc3Qgb25lLgoJJHBhcmFtc1snZGVsZXRlX2ltYWdlJ10gPSAxOwogICAgICB9CgogICAgICBpZiggaXNzZXQoJHBhcmFtc1snZGVsZXRlX2ltYWdlJ10pICYmICRsZWFkZXJib2FyZC0+aW1hZ2UgIT0gJycpIHsKCS8vIGRlbGV0ZSBpbWFnZSBjaGVja2JveCB3YXMgY2hlY2tlZC4KCXVuc2V0KCRwYXJhbXNbJ2RlbGV0ZV9pbWFnZSddKTsKCWNnc2FfdXRpbHM6OmRlbGV0ZV9pbWFnZSgkZGlyLCRiYWRnZS0+aW1hZ2UpOwoJJGJhZGdlLT5pbWFnZSA9ICcnOwogICAgICB9CgogICAgICAvLyBoYW5kbGUgdXBsb2FkZWQgZmlsZS4KICAgICAgaWYoICR1cGxvYWRlci0+Y2hlY2tfdXBsb2FkX2F0dGVtcHRlZCgnaW1hZ2UnKSApIHsKCS8vIHdlJ3JlIHVwbG9hZGluZyBhIGZpbGUuCglAbWtkaXIoJGRpciwwNzc3LFRSVUUpOwoJJHJlcyA9ICR1cGxvYWRlci0+aGFuZGxlX3VwbG9hZCgnaW1hZ2UnKTsKCWlmKCAhJHJlcyApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkdXBsb2FkZXItPmdldF9lcnJvcigpKSk7CgkkYmFkZ2UtPmltYWdlID0gJHJlczsKICAgICAgfQogICAgfQoKICAgICRiYWRnZS0+c2F2ZSgpOwogICAgaWYoICRuZXdiYWRnZSApIHsKICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19iYWRnZWNyZWF0ZWQnKSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19iYWRnZXVwZGF0ZWQnKSk7CiAgICB9CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9saXN0YmFkZ2VzJywnJyxhcnJheSgnbGVhZGVyYm9hcmQnPT4kcGFyYW1zWydsZWFkZXJib2FyZCddKSk7CiAgfQogIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogIH0KfQoKJHRvX29wdHMgPSBhcnJheSgpOwokdG9fb3B0c1snYWRtaW4nXSA9ICR0aGlzLT5MYW5nKCdsYmxfbm90aWZ5X2RlZmF1bHRfcHJvZmlsZScpOwokdG9fb3B0c1sndXNlciddID0gJHRoaXMtPkxhbmcoJ2xibF9ub3RpZnlfdXNlcl9wcm9maWxlJyk7CiRzbWFydHktPmFzc2lnbigndG9fb3B0cycsJHRvX29wdHMpOwoKJHByaW9yaXRpZXMgPSBhcnJheSgpOwokcHJpb3JpdGllc1stMV0gPSAkdGhpcy0+TGFuZygnb2ZmJyk7CiRwcmlvcml0aWVzW25vdGlmaWNhdGlvbl9tZXNzYWdlOjpQUklPUklUWV9ISUdIXSA9ICR0aGlzLT5MYW5nKCdoaWdoJyk7CiRwcmlvcml0aWVzW25vdGlmaWNhdGlvbl9tZXNzYWdlOjpQUklPUklUWV9OT1JNQUxdID0gJHRoaXMtPkxhbmcoJ25vcm1hbCcpOwokcHJpb3JpdGllc1tub3RpZmljYXRpb25fbWVzc2FnZTo6UFJJT1JJVFlfTE9XXSA9ICR0aGlzLT5MYW5nKCdsb3cnKTsKJHNtYXJ0eS0+YXNzaWduKCdwcmlvcml0aWVzJywkcHJpb3JpdGllcyk7CgokcGFybXMgPSBhcnJheSgnbGVhZGVyYm9hcmQnPT4kcGFyYW1zWydsZWFkZXJib2FyZCddKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2JhZGdlJ10pICkgJHBhcm1zWydiYWRnZSddID0gJHBhcmFtc1snYmFkZ2UnXTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2FkZGVkaXRfYmFkZ2UnLCcnLCRwYXJtcykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2xlYWRlcmJvYXJkJywkbGVhZGVyYm9hcmQpOwokc21hcnR5LT5hc3NpZ24oJ2JhZGdlJywkYmFkZ2UpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2FkZGVkaXRfYmFkZ2UudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_addedit_leaderboard.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbihDR1NvY2lhbEFwcDo6UEVSTUlTU0lPTikgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2xlYWRlcmJvYXJkcycpOwppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgewogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KJGxlYWRlcmJvYXJkID0gbmV3IGNnc2FfbGVhZGVyYm9hcmQoKTsKaWYoICFpc3NldCgkcGFyYW1zWydsZWFkZXJib2FyZCddKSB8fCAkcGFyYW1zWydsZWFkZXJib2FyZCddID09ICcnICkgewogICRwYXJhbXNbJ2xlYWRlcmJvYXJkJ10gPSAtMTsKfQplbHNlIGlmKCAkcGFyYW1zWydsZWFkZXJib2FyZCddID4gMCApIHsKICAkbGVhZGVyYm9hcmQgPSBjZ3NhX2xlYWRlcmJvYXJkOjpsb2FkX2J5X2lkKCRwYXJhbXNbJ2xlYWRlcmJvYXJkJ10pOwp9CgppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogIHRyeSB7CiAgICAkZGF0YSA9ICRwYXJhbXM7CiAgICB1bnNldCgkZGF0YVsnc3VibWl0J10pOwogICAgdW5zZXQoJGRhdGFbJ2FjdGlvbiddKTsKICAgIHVuc2V0KCRkYXRhWydsZWFkZXJib2FyZCddKTsKICAgIHVuc2V0KCRkYXRhWydkZWxldGVfaW1hZ2UnXSk7CiAgICAkZGF0YVsnaWQnXSA9ICRwYXJhbXNbJ2xlYWRlcmJvYXJkJ107CgogICAgJGRpciA9IGNnc2FfdXRpbHM6OmdldF9sZWFkZXJib2FyZF9maWxlcGF0aCgpOwogICAgJHVwbG9hZGVyID0gY2dlX3NldHVwOjpnZXRfdXBsb2FkZXIoJGlkLCRkaXIpOwogICAgaWYoICR1cGxvYWRlci0+Y2hlY2tfdXBsb2FkX2F0dGVtcHRlZCgnaW1hZ2UnKSAmJiAkbGVhZGVyYm9hcmQtPmltYWdlICE9ICcnICkgewogICAgICAvLyB3ZSdyZSB1cGxvYWRpbmcgYW5vdGhlciBpbWFnZSwgZGVsZXRlIHRoZSBmaXJzdCBvbmUuCiAgICAgICRwYXJhbXNbJ2RlbGV0ZV9pbWFnZSddID0gMTsKICAgIH0KCiAgICBpZiggaXNzZXQoJHBhcmFtc1snZGVsZXRlX2ltYWdlJ10pICYmICRsZWFkZXJib2FyZC0+aW1hZ2UgIT0gJycpIHsKICAgICAgLy8gZGVsZXRlIGltYWdlIGNoZWNrYm94IHdhcyBjaGVja2VkLgogICAgICB1bnNldCgkcGFyYW1zWydkZWxldGVfaW1hZ2UnXSk7CiAgICAgIGNnc2FfdXRpbHM6OmRlbGV0ZV9pbWFnZSgkZGlyLCRsZWFkZXJib2FyZC0+aW1hZ2UpOwogICAgICAkbGVhZGVyYm9hcmQtPmltYWdlID0gJyc7CiAgICB9CgogICAgJGxlYWRlcmJvYXJkID0gY2dzYV9sZWFkZXJib2FyZDo6bG9hZF9mcm9tX2RhdGEoJGRhdGEpOwoKICAgIC8vIGhhbmRsZSB1cGxvYWRlZCBmaWxlLgogICAgJHVwbG9hZGVyID0gY2dlX3NldHVwOjpnZXRfdXBsb2FkZXIoJGlkLCRkaXIpOwogICAgaWYoICR1cGxvYWRlci0+Y2hlY2tfdXBsb2FkX2F0dGVtcHRlZCgnaW1hZ2UnKSApIHsKICAgICAgLy8gd2UncmUgdXBsb2FkaW5nIGEgZmlsZS4KICAgICAgQG1rZGlyKCRkaXIsMDc3NyxUUlVFKTsKICAgICAgJHJlcyA9ICR1cGxvYWRlci0+aGFuZGxlX3VwbG9hZCgnaW1hZ2UnKTsKICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCR1cGxvYWRlci0+Z2V0X2Vycm9yKCkpKTsKICAgICAgJGxlYWRlcmJvYXJkLT5pbWFnZSA9ICRyZXM7CiAgICB9CgogICAgJGxlYWRlcmJvYXJkLT5zZXRfZGlydHkoKTsKICAgICRsZWFkZXJib2FyZC0+c2F2ZSgpOwoKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfbGVhZGVyYm9hcmRfdXBkYXRlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQogIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogIH0KfQoKJHNtYXJ0eS0+YXNzaWduKCdsZWFkZXJib2FyZCcsJGxlYWRlcmJvYXJkKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2FkZGVkaXRfbGVhZGVyYm9hcmQnLCcnLGFycmF5KCdsZWFkZXJib2FyZCc9PiRwYXJhbXNbJ2xlYWRlcmJvYXJkJ10pKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CnsKICAka3R5cGVzID0gJGxlYWRlcmJvYXJkLT5nZXRfdHlwZXMoKTsKICAkdG1wID0gYXJyYXkoKTsKICBmb3JlYWNoKCAka3R5cGVzIGFzICRrZXkgKSB7CiAgICAkdG1wWyRrZXldID0gJHRoaXMtPkxhbmcoJ2xlYWRlcmJvYXJkXycuJGtleSk7CiAgfQogICRzbWFydHktPmFzc2lnbignYm9hcmR0eXBlcycsJHRtcCk7Cn0KCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fYWRkZWRpdF9sZWFkZXJib2FyZC50cGwnKTsKIyAKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_delactivity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2FjdGl2aXRpZXMnKTsKCi8vCi8vIHNldHVwCi8vCmlmKCAhaXNzZXQoJHBhcmFtc1snYWN0aWQnXSkgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CiRhY3RpZCA9IChpbnQpJHBhcmFtc1snYWN0aWQnXTsKJGFjdGl2aXR5ID0gY2dzYV9hY3Rpdml0eTo6bG9hZF9ieV9pZCgkYWN0aWQpOwppZiggIWlzX29iamVjdCgkYWN0aXZpdHkpICkKICB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2FjdGl2aXR5bm90Zm91bmQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIH0KCi8vCi8vIGRvIGl0Ci8vCiRhY3Rpdml0eS0+ZGVsZXRlKCk7CgovLwovLyByZXR1cm4KLy8KJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19zdWNjZXNzJykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_apikey.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbihDR1NvY2lhbEFwcDo6UEVSTUlTU0lPTikgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2tleXMnKTsKCi8vCi8vIHNldHVwCi8vCmlmKCAhaXNzZXQoJHBhcmFtc1snYWlkJ10pICkgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCmNnc2FfYXBpa2V5OjpkZWxldGVfYnlfaWQoJHBhcmFtc1snYWlkJ10pOwoKJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2l0ZW1fZGVsZXRlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIyAKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_badge.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKENHU29jaWFsQXBwOjpQRVJNSVNTSU9OKSApIGV4aXQ7CmlmKCAhaXNzZXQoJHBhcmFtc1snbGVhZGVyYm9hcmQnXSkgKSByZXR1cm47CmlmKCAhaXNzZXQoJHBhcmFtc1snYmFkZ2UnXSkgKSByZXR1cm47CgokbGVhZGVyYm9hcmQgPSBjZ3NhX2xlYWRlcmJvYXJkOjpsb2FkX2J5X2lkKChpbnQpJHBhcmFtc1snbGVhZGVyYm9hcmQnXSk7CmlmKCBpc19vYmplY3QoJGxlYWRlcmJvYXJkKSApIHsKICAkYmFkZ2UgPSAkbGVhZGVyYm9hcmQtPmdldF9iYWRnZV9ieV9pZCgoaW50KSRwYXJhbXNbJ2JhZGdlJ10pOwogIGlmKCBpc19vYmplY3QoJGJhZGdlKSApIHsKICAgICRiYWRnZS0+ZGVsZXRlKCk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3N1Y2Nlc3MnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9saXN0YmFkZ2VzJywnJyxhcnJheSgnbGVhZGVyYm9hcmQnPT4kcGFyYW1zWydsZWFkZXJib2FyZCddKSk7CiAgfQp9CiR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfZmFpbGVkJykpOwokdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9saXN0YmFkZ2VzJywnJyxhcnJheSgnbGVhZGVyYm9hcmQnPT4kcGFyYW1zWydsZWFkZXJib2FyZCddKSk7]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_leaderboard.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CgokdGhpcy0+U2V0Q3VycmVudFRhYignbGVhZGVyYm9hcmRzJyk7CmlmKCBpc3NldCgkcGFyYW1zWydsZWFkZXJib2FyZCddKSApIHsKICBjZ3NhX2xlYWRlcmJvYXJkOjpkZWxldGVfYnlfaWQoKGludCkkcGFyYW1zWydsZWFkZXJib2FyZCddKTsKICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbGVhZGVyYm9hcmRfZGVsZXRlZCcpKTsKfQokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_apikey.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbihDR1NvY2lhbEFwcDo6UEVSTUlTU0lPTikgKSBleGl0OwoKLy8gCi8vIGluaXRpYWxpemUKLy8KJG9iamVjdCA9IG5ldyBjZ3NhX2FwaWtleSgpOwokdGhpcy0+U2V0Q3VycmVudFRhYigna2V5cycpOwokZXJyb3IgPSBudWxsOwoKLy8KLy8gc2V0dXAKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2FpZCddKSApCiAgewogICAgJG9pZCA9IChpbnQpJHBhcmFtc1snYWlkJ107CiAgICAkb2JqZWN0ID0gY2dzYV9hcGlrZXk6OmxvYWRfYnlfaWQoJG9pZCk7CiAgfQoKLy8gCi8vIHByb2Nlc3MgZm9ybSBkYXRhCi8vCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQogIHsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKdHJ5CnsKICBpZiggaXNzZXQoJHBhcmFtc1snYXBwbmFtZSddKSApCiAgICB7CiAgICAgICRvYmplY3RbJ2FwcG5hbWUnXSA9IHRyaW0oJHBhcmFtc1snYXBwbmFtZSddKTsKICAgIH0KICBpZiggaXNzZXQoJHBhcmFtc1snZW1haWwnXSkgKQogICAgewogICAgICAkb2JqZWN0WydlbWFpbCddID0gdHJpbSgkcGFyYW1zWydlbWFpbCddKTsKICAgIH0KICBpZiggaXNzZXQoJHBhcmFtc1snYXBpa2V5J10pICkKICAgIHsKICAgICAgJG9iamVjdFsnYXBpa2V5J10gPSB0cmltKCRwYXJhbXNbJ2FwaWtleSddKTsKICAgIH0KICBpZiggaXNzZXQoJHBhcmFtc1snYWN0aXZlJ10pICkKICAgIHsKICAgICAgJG9iamVjdFsnYWN0aXZlJ10gPSAoaW50KXRyaW0oJHBhcmFtc1snYWN0aXZlJ10pOwogICAgfQogIGlmKCBpc3NldCgkcGFyYW1zWydleHBpcmVzX01vbnRoJ10pICkKICAgIHsKICAgICAgJG9iamVjdFsnZXhwaXJlcyddID0gbWt0aW1lKDIzLDU5LDU5LChpbnQpJHBhcmFtc1snZXhwaXJlc19Nb250aCddLChpbnQpJHBhcmFtc1snZXhwaXJlc19EYXknXSwoaW50KSRwYXJhbXNbJ2V4cGlyZXNfWWVhciddKTsKICAgIH0KICBpZiggaXNzZXQoJHBhcmFtc1snYXBpa2V5J10pICkKICAgIHsKICAgICAgJG9iamVjdFsnYXBpa2V5J10gPSB0cmltKCRwYXJhbXNbJ2FwaWtleSddKTsKICAgIH0KICBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICYmICRwYXJhbXNbJ3N1Ym1pdCddID09ICR0aGlzLT5MYW5nKCdwcm9tcHRfZ2VuZXJhdGUnKSkKICAgIHsKICAgICAgJG9iamVjdFsnYXBpa2V5J10gPSAkb2JqZWN0LT5nZW5lcmF0ZV9hcGlfa2V5KCk7CiAgICB9Cn0KY2F0Y2goIEV4Y2VwdGlvbiAkZSApCnsKICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5nZXRNZXNzYWdlKCkpOwogICRlcnJvciA9IDE7Cn0KCmlmKCAhJGVycm9yICYmIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSAmJiAkcGFyYW1zWydzdWJtaXQnXSA9PSAkdGhpcy0+TGFuZygnc3VibWl0JykgKQogIHsKICAgIHRyeQogICAgICB7CgkkcGVybXMgPSBjZ3NhX2FwaWtleV9wZXJtczo6Z2V0X2FsbF9wZXJtcygpOwoJZm9yZWFjaCggJHBlcm1zIGFzICRuYW1lICkKCSAgewoJICAgICRvYmplY3QtPnJlbW92ZV9wZXJtaXNzaW9uKCRuYW1lKTsKCSAgICBpZiggaXNzZXQoJHBhcmFtc1skbmFtZV0pICYmICRwYXJhbXNbJG5hbWVdID09IDEgKQoJICAgICAgewoJCSRvYmplY3QtPnNldF9wZXJtaXNzaW9uKCRuYW1lKTsKCSAgICAgIH0KCSAgfQoKCSRvYmplY3QtPnNhdmUoKTsKCSR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdpdGVtX2VkaXRlZCcpKTsKCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICAgIH0KICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5nZXRNZXNzYWdlKCkpOwogICAgICB9CiAgfQoKLy8KLy8gZ2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eQovLwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZWRpdF9hcGlrZXknLCRyZXR1cm5pZCwkcGFyYW1zKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignYXBpa2V5Jywkb2JqZWN0KTsKJHNtYXJ0eS0+YXNzaWduKCdhbGxwZXJtcycsY2dzYV9hcGlrZXlfcGVybXM6OmdldF9hbGxfcGVybXMoKSk7CmlmKCAkZXJyb3IgKSAkc21hcnR5LT5hc3NpZ24oJ2Vycm9yJywkZXJyb3IpOwoKLy8KLy8gZGlzcGxheQovLwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2VkaXRfYXBpa2V5LnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_listbadges.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKENHU29jaWFsQXBwOjpQRVJNSVNTSU9OKSApIGV4aXQ7CmlmKCAhaXNzZXQoJHBhcmFtc1snbGVhZGVyYm9hcmQnXSkgKSByZXR1cm47CgovLwovLyBpbml0aWFsaXplCi8vCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdsZWFkZXJib2FyZHMnKTsKJGxlYWRlcmJvYXJkID0gY2dzYV9sZWFkZXJib2FyZDo6bG9hZF9ieV9pZCgoaW50KSRwYXJhbXNbJ2xlYWRlcmJvYXJkJ10pOwppZiggIWlzX29iamVjdCgkbGVhZGVyYm9hcmQpICkgewogIGRpZSgnY291bGQgbm90IGxvYWQgbGVhZGVyYm9hcmQnKTsKfQoKJGJhZGdlcyA9ICRsZWFkZXJib2FyZC0+Z2V0X2JhZGdlcygpOwppZiggaXNfYXJyYXkoJGJhZGdlcykgJiYgY291bnQoJGJhZGdlcykgKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdiYWRnZXMnLCRiYWRnZXMpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ2xlYWRlcmJvYXJkJywkbGVhZGVyYm9hcmQpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2xpc3RiYWRnZXMudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_orderactivity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokdGhpcy0+U2V0Q3VycmVudFRhYignYWN0aXZpdGllcycpOwokYWN0aXZpdGllcyA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYWxsX2FzX3RyZWUoKTsKaWYoICFpc19hcnJheSgkYWN0aXZpdGllcykgfHwgY291bnQoJGFjdGl2aXRpZXMpID09IDAgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3Jfbm9hY3Rpdml0aWVzJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CgovLwovLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5Ci8vCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9vcmRlcmFjdGl2aXR5JykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2FjdGl2aXRpZXMnLCRhY3Rpdml0aWVzKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9vcmRlcmFjdGl2aXR5LnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveleaderboardsettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdsZWFkZXJib2FyZHNldHRpbmdzJyk7CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW50ZXJ2YWxfdXBkYXRlbGVhZGVyYm9hcmRzJywoaW50KSRwYXJhbXNbJ2ludGVydmFsX3VwZGF0ZWxlYWRlcmJvYXJkcyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ludGVydmFsX3VwZGF0ZWJhZGdlcycsKGludCkkcGFyYW1zWydpbnRlcnZhbF91cGRhdGViYWRnZXMnXSk7Cgokam9icyA9IGNnam9ibWdyX3V0aWxzOjpnZXRfam9icyhhcnJheSgnbmFtZSc9PiR0aGlzLT5HZXROYW1lKCkuJyonKSk7CmlmKCBpc19hcnJheSgkam9icykgJiYgY291bnQoJGpvYnMpICkgewogIGZvcmVhY2goICRqb2JzIGFzICYkam9iICkgewogICAgJGpvYi0+ZGVsZXRlKCk7CiAgfQp9CiR0aGlzLT5TZXR1cEpvYnMoKTsKJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19zdWNjZXNzJykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_savelocationsettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdsb2NhdGlvbnNldHRpbmdzJyk7CgppZiggaXNzZXQoJHBhcmFtc1snbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3RlbXBsYXRlX3Jlc2V0J10pICkKICB7CiAgICAkdHh0ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3RlbXBsYXRlLnRwbCcpOwogICAgaWYoICR0eHQgKQogICAgICB7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl90ZW1wbGF0ZScsJHR4dCk7CiAgICAgIH0KICB9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApCiAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX2FsbG93JywoaW50KSRwYXJhbXNbJ25ld2xvY2F0aW9uX2FsbG93J10pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX2FsbG93ZWRpdCcsKGludCkkcGFyYW1zWyduZXdsb2NhdGlvbl9hbGxvd2VkaXQnXSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbmV3bG9jYXRpb25fdGltZWxpbWl0JywoaW50KSRwYXJhbXNbJ25ld2xvY2F0aW9uX3RpbWVsaW1pdCddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCduZXdsb2NhdGlvbl9udW1saW1pdCcsKGludCkkcGFyYW1zWyduZXdsb2NhdGlvbl9udW1saW1pdCddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCduZXdsb2NhdGlvbl9zdGF0dXMnLHRyaW0oJHBhcmFtc1snbmV3bG9jYXRpb25fc3RhdHVzJ10pKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCduZXdsb2NhdGlvbl9ub3RpZmljYXRpb25fZ3JvdXBzJyx0cmltKCRwYXJhbXNbJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl9ncm91cHMnXSkpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl9zdWJqZWN0Jyx0cmltKCRwYXJhbXNbJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl9zdWJqZWN0J10pKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCduZXdsb2NhdGlvbl9ub3RpZmljYXRpb25faXNodG1sJyx0cmltKCRwYXJhbXNbJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl9pc2h0bWwnXSkpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCduZXdsb2NhdGlvbl9ub3RpZmljYXRpb25fdGVtcGxhdGUnLHRyaW0oJHBhcmFtc1snbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10pKTsKICB9CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveusersettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCd1c2Vyc2V0dGluZ3MnKTsKCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZldV91c2VyZ3JvdXAnLChpbnQpJHBhcmFtc1snZmV1X3VzZXJncm91cCddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmV1X29uZGVsZXRlX2NsZWFuY2hlY2tpbnMnLChpbnQpJHBhcmFtc1snZmV1X29uZGVsZXRlX2NsZWFuY2hlY2tpbnMnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZldV90YWdnZWRfcHJpb3JpdHknLCRwYXJhbXNbJ2ZldV90YWdnZWRfcHJpb3JpdHknXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZldV90YWdnZWRfc3ViamVjdCcsJHBhcmFtc1snZmV1X3RhZ2dlZF9zdWJqZWN0J10pOwogICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmV1X3RhZ2dlZF90cGwnLCRwYXJhbXNbJ2ZldV90YWdnZWRfdHBsJ10pOwp9IGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3Jlc2V0J10pICkgewogICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfdGFnZ2VkX25vdGlmaWNhdGlvbi50cGwnOwogICR0cGwgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZldV90YWdnZWRfdHBsJywkdHBsKTsKfQoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCcnLCcnLCdhZG1pbl9zZXR0aW5ncycpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCmVjaG8gJzxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyB3aWR0aDogODAlOyI+Jy4KJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLAoJCSAgICAgICAkdGhpcy0+TGFuZygnbGJsX2JhY2snKSwnaWNvbnMvc3lzdGVtL2JhY2suZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKS4nPC9kaXY+PGJyLz4nOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbG9jYXRpb25zZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RhYl9sb2NhdGlvbnNldHRpbmdzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2xlYWRlcmJvYXJkc2V0dGluZ3MnLCR0aGlzLT5MYW5nKCd0YWJfbGVhZGVyYm9hcmRzZXR0aW5ncycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCd1c2Vyc2V0dGluZ3MnLCR0aGlzLT5MYW5nKCd0YWJfdXNlcnNldHRpbmdzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2dlbmVyYWxzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RhYl9nZW5lcmFsc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwplY2hvICR0aGlzLT5TdGFydFRhYignbG9jYXRpb25zZXR0aW5ncycsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9sb2NhdGlvbnNldHRpbmdzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignbGVhZGVyYm9hcmRzZXR0aW5ncycsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9sZWFkZXJib2FyZHNldHRpbmdzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigndXNlcnNldHRpbmdzJywkcGFyYW1zKTsKaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3VzZXJzZXR0aW5nc190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2dlbmVyYWxzZXR0aW5ncycsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9zZXR0aW5nc190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_templates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgcmV0dXJuOwoKZWNobyAnPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7IHdpZHRoOiA4MCU7Ij4nLgokdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsCgkJICAgICAgICR0aGlzLT5MYW5nKCdsYmxfYmFjaycpLCdpY29ucy9zeXN0ZW0vYmFjay5naWYnLGFycmF5KCksJycsJycsZmFsc2UpLic8L2Rpdj48YnIvPic7CgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdsaXN0X2NoZWNraW5zJywkdGhpcy0+TGFuZygndGFiX2xpc3RfY2hlY2tpbnNfdGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2xpc3RfYWN0aXZpdGllcycsJHRoaXMtPkxhbmcoJ3RhYl9saXN0X2FjdGl2aXRpZXNfdGVtcGxhdGVzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3ZpZXdfYWN0aXZpdHknLCR0aGlzLT5MYW5nKCd0YWJfdmlld19hY3Rpdml0eV90ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZGVmYXVsdF90ZW1wbGF0ZXMnLCR0aGlzLT5MYW5nKCd0YWJfZGVmYXVsdF90ZW1wbGF0ZXMnKSk7CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwplY2hvICR0aGlzLT5TdGFydFRhYignbGlzdF9jaGVja2lucycsJHBhcmFtcyk7CmluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9saXN0X2NoZWNraW5zX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignbGlzdF9hY3Rpdml0aWVzJywkcGFyYW1zKTsKaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2xpc3RfYWN0aXZpdGllc190YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3ZpZXdfYWN0aXZpdHknLCRwYXJhbXMpOwppbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fdmlld19hY3Rpdml0eV90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwogIAplY2hvICR0aGlzLT5TdGFydFRhYignZGVmYXVsdF90ZW1wbGF0ZXMnLCRwYXJhbXMpOwppbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fZGVmYXVsdF90ZW1wbGF0ZXNfdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.badges.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYXBpa2V5ID0gJyc7CiRvcCA9ICcnOwokb3V0cHV0ID0gbnVsbDsKCi8vCi8vIHNldHVwCi8vCmlmKCBpc3NldCgkX1JFUVVFU1RbJ29wJ10gKSApIHsKICAkb3AgPSBzdHJ0b3VwcGVyKHRyaW0oJF9SRVFVRVNUWydvcCddKSk7Cn0KaWYoIGlzc2V0KCRfUkVRVUVTVFsnYXBpa2V5J10pICkgewogICRhcGlrZXkgPSB0cmltKCRfUkVRVUVTVFsnYXBpa2V5J10pOwp9CgovLyBkZXBlbmRlbmN5IGNoZWNrLgokY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKaWYoICEkY2Rtb2QgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0NvbXBhbnlEaXJlY3RvcnkgbW9kdWxlIG5vdCBmb3VuZCcpOwoKLy8gdmFsaWRhdGlvbiBjaGVjawppZiggJGFwaWtleSA9PSAnJyApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignTm8gQXV0aGVudGljYXRpb24gSW5mb3JtYXRpb24nKTsKaWYoICRvcCA9PSAnJyApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignT3BlcmF0aW9uIG5vdCBzcGVjaWZpZWQnKTsKCi8vIHZhbGlkYXRlIHRoZSBhcGlrZXkuCiRhY2Nlc3NfaW5mbyA9IGNnc2FfdXRpbHM6OnZhbGlkYXRlX2FwaWtleSgkYXBpa2V5KTsKaWYoICFpc19vYmplY3QoJGFjY2Vzc19pbmZvKSApIHsKICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludmFsaWQgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24nKTsKfQoKc3dpdGNoKCAkb3AgKSB7CiBjYXNlICdMSVNUJzoKICAgLy8gbGlzdCBhbGwgYmFkZ2VzIGZvciBhIHBhcnRpY3VsYXIgbGVhZGVyYm9hcmQKICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgcmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0JBREdFU19SRUFEKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgJG91dHB1dCA9IGFycmF5X3ZhbHVlcyhjZ3NhX2JhZGdlOjpnZXRfYWxsKEZBTFNFKSk7CiAgIGJyZWFrOwoKIGNhc2UgJ0dFVCc6CiAgIC8vIGdldCBhbGwgaW5mbyBmb3IgYSBwYXJ0aWN1bGFyIGJhZGdlLgogICBpZiggIWNnc2FfdXRpbHM6OmlzX2dldF9yZXF1ZXN0KCkgKSByZXR1cm5fZXJyb3IoJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fQkFER0VTX1JFQUQpICkKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICBpZiggIWlzc2V0KCRfUkVRVUVTVFsnYmFkZ2UnXSkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBkYXRhJyk7CiAgICRiaWQgPSAoaW50KSRfUkVRVUVTVFsnYmFkZ2UnXTsKICAgJHRtcCA9IGNnc2FfYmFkZ2U6OmxvYWRfYnlfaWQoJGJpZCxGQUxTRSk7CiAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0RhdGEgbm90IGZvdW5kJyk7CiAgICRvdXRwdXQgPSAkdG1wOwogICBicmVhazsKICAgCiBjYXNlICdNRU1CRVJTJzoKICAgLy8gZ2V0IG1lbWJlciBpbmZvIGZvciBhIHBhcnRpY3VsciBiYWRnZS4KICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgcmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0JBREdFU19SRUFEKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ2JhZGdlJ10pICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAkYmlkID0gKGludCkkX1JFUVVFU1RbJ2JhZGdlJ107CiAgICR0bXAgPSBjZ3NhX2JhZGdlOjpsb2FkX2J5X2lkKCRiaWQpOwogICAkbGltaXQgPSAyNTsKICAgJG9mZnNldCA9IDA7CiAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ24nXSkgKSAkbGltaXQgPSBtYXgoMSwoaW50KSRwYXJhbXNbJ2wnXSk7CiAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ28nXSkgKSAkb2Zmc2V0ID0gbWF4KDEsKGludCkkcGFyYW1zWydvJ10pOwogICBpZiggIWlzX29iamVjdCgkdG1wKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignRGF0YSBub3QgZm91bmQnKTsKICAgJG91dHB1dCA9ICR0bXAtPmxpc3RfbWVtYmVycygkbGltaXQsJG9mZnNldCk7CiAgIGJyZWFrOwoKIGRlZmF1bHQ6CiAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignVW5rbm93biBjb21tYW5kJyk7Cn0KCmNnc2FfdXRpbHM6OnJldHVybl9zdWNjZXNzKCRvdXRwdXQpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.checkins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYXBpa2V5ID0gJyc7CiRvcCA9ICcnOwokb3V0cHV0ID0gbnVsbDsKCi8vCi8vIHNldHVwCi8vCmlmKCBpc3NldCgkX1JFUVVFU1RbJ29wJ10gKSApIHsKICAkb3AgPSBzdHJ0b3VwcGVyKHRyaW0oJF9SRVFVRVNUWydvcCddKSk7Cn0KaWYoIGlzc2V0KCRfUkVRVUVTVFsnYXBpa2V5J10pICkgewogICRhcGlrZXkgPSB0cmltKCRfUkVRVUVTVFsnYXBpa2V5J10pOwp9CgovLyBkZXBlbmRlbmN5IGNoZWNrLgokY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKaWYoICEkY2Rtb2QgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0NvbXBhbnlEaXJlY3RvcnkgbW9kdWxlIG5vdCBmb3VuZCcpOwoKLy8gdmFsaWRhdGlvbiBjaGVjawppZiggJGFwaWtleSA9PSAnJyApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignTm8gQXV0aGVudGljYXRpb24gSW5mb3JtYXRpb24nKTsKaWYoICRvcCA9PSAnJyApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignT3BlcmF0aW9uIG5vdCBzcGVjaWZpZWQnKTsKCi8vIHZhbGlkYXRlIHRoZSBhcGlrZXkuCiRhY2Nlc3NfaW5mbyA9IGNnc2FfdXRpbHM6OnZhbGlkYXRlX2FwaWtleSgkYXBpa2V5KTsKaWYoICFpc19vYmplY3QoJGFjY2Vzc19pbmZvKSApIHsKICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludmFsaWQgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24nKTsKfQoKLy8gCi8vIGhhbmRsZSB0aGUgcmVxdWVzdAovLwpzd2l0Y2goICRvcCApIHsKICBjYXNlICdBREQnOiAvLyBQT1NUIFJFUVVFU1QKICAgIC8vIGFkZCBhIHNpbmdsZSBjaGVja2luCiAgICB0cnkgewogICAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9DSEVDS0lOU19BREQpICkKCXRocm93IG5ldyBFeGNlcHRpb24oJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwoKICAgICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApCgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CgogICAgICBpZiggIWlzc2V0KCRfUkVRVUVTVFsnb3duZXInXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsnbG9jYXRpb24nXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsnbXNnJ10pICkKCXRocm93IG5ldyBFeGNlcHRpb24oJ0luc3VmZmljaWVudCBkYXRhJyk7CgkKICAgICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgICAgICR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICAgICRvd25lciA9IChpbnQpJF9SRVFVRVNUWydvd25lciddOwogICAgICBpZiggJHVpZCAhPSAkb3duZXIgKSAKCXRocm93IG5ldyBFeGNlcHRpb24oIkludmFsaWQgb3duZXIgZ290ICRvd25lciwgYnV0IGV4cGVjdGVkICR1aWQiKTsKCiAgICAgICRjaGVja2luID0gbmV3IGNnc2FfY2hlY2tpbjsKICAgICAgJGNoZWNraW4tPm93bmVyID0gJG93bmVyOwogICAgICBpZiggaXNzZXQoJF9SRVFVRVNUWydsb2NhdGlvbiddKSApIHsKCSRjaGVja2luLT5sb2NhdGlvbiA9IChpbnQpJF9SRVFVRVNUWydsb2NhdGlvbiddOwogICAgICB9CiAgICAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ2FjdGl2aXR5J10pICkgewoJJGNoZWNraW4tPmFjdGl2aXR5ID0gKGludCkkX1JFUVVFU1RbJ2FjdGl2aXR5J107CiAgICAgIH0KICAgICAgaWYoIGlzc2V0KCRfUkVRVUVTVFsncGFyZW50X2lkJ10pICkgewoJJGNoZWNraW4tPnBhcmVudF9pZCA9IChpbnQpJF9SRVFVRVNUWydwYXJlbnRfaWQnXTsKICAgICAgfQogICAgICBpZiggaXNzZXQoJF9SRVFVRVNUWydtc2cnXSkgKSB7CgkkY2hlY2tpbi0+bXNnID0gc3Vic3RyKHRyaW0oJF9SRVFVRVNUWydtc2cnXSksMCwyNTUpOwogICAgICB9CiAgICAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ2xhdCddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ2xuZyddKSApIHsKCSRjaGVja2luLT5sYXQgPSAoZmxvYXQpJF9SRVFVRVNUWydsYXQnXTsKCSRjaGVja2luLT5sbmcgPSAoZmxvYXQpJF9SRVFVRVNUWydsbmcnXTsKICAgICAgfQogICAgICBpZiggaXNzZXQoJF9SRVFVRVNUWyd0YWcnXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsndGFnJ10pICkgewoJLy8gbWF5YmUgd2Ugc2hvdWxkIGhhdmUgc29tZSBsaW1pdGluZyBoZXJlPwoJLy8gY2FuIHdlIHRhZyBhbnlib2R5LCBvciBqdXN0IGZyaWVuZHM/CgkkY2hlY2tpbi0+dGFnX3VzZXIoJF9SRVFVRVNUWyd0YWcnXSk7CiAgICAgIH0KICAgICAgZm9yZWFjaCggJF9SRVFVRVNUIGFzICRrZXkgPT4gJHZhbHVlICkgewoJaWYoIHN0YXJ0c3dpdGgoJGtleSwnZXh0cmFfJykgKSB7CgkgICRrZXkgPSB0cmltKCRrZXkpOwoJICAkY2hlY2tpbi0+JGtleSA9ICR2YWx1ZTsKCX0KICAgICAgfQoKICAgICAgLy8gdmFsaWRhdGUgdGhlIGxvY2F0aW9uCiAgICAgICRjb21wYW55ID0gY2RfdXRpbHM6OmdldF9jb21wYW55KCRjaGVja2luLT5sb2NhdGlvbik7CiAgICAgIGlmKCAhJGNvbXBhbnkgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignTG9jYXRpb24gJy4kY2hlY2tpbi0+bG9jYXRpb24uJyBub3QgZm91bmQnKTsKCiAgICAgIGlmKCAkY29tcGFueS0+c3RhdHVzICE9ICdwdWJsaXNoZWQnICkKCXRocm93IG5ldyBFeGNlcHRpb24oJ0xvY2F0aW9uICcuJGNoZWNraW4tPmxvY2F0aW9uLicgaGFzIGFuIGludmFsaWQgc3RhdHVzJyk7CgogICAgICAvLyBpcyBhcHByb3ZhbCBuZWVkZWQuCiAgICAgICRjaGVja2luLT5hcHByb3ZlZCA9IDA7CiAgICAgIGlmKCAhY2dzYV91dGlsczo6aXNfY2hlY2tpbl9hcHByb3ZhbF9yZXF1aXJlZCgkY2hlY2tpbi0+bG9jYXRpb24pICkgewoJJGNoZWNraW4tPmFwcHJvdmVkID0gMTsKICAgICAgfQoKICAgICAgLy8gZG8gcmF0ZWxpbWl0aW5nLgogICAgICBpZiggJGNkbW9kLT5HZXRQcmVmZXJlbmNlKCdsb2NhdGlvbnJlcXVpcmVkJywwKSAmJiAhaXNzZXQoJGNoZWNraW4tPmxhdCkgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignTWlzc2luZyByZXF1aXJlZCBzb3VyY2UgY29vcmRpbmF0ZSBpbmZvcm1hdGlvbicpOwoJCiAgICAgIGlmKCAoJHRtcCA9ICRjZG1vZC0+R2V0UHJlZmVyZW5jZSgnY2hlY2tpbnJhdGVsaW1pdGluZycpKSApIHsKCSRybCA9IGV4cGxvZGUoJywnLCR0bXApOwoJaWYoIGluX2FycmF5KCdieWxvY2F0aW9uJywkcmwpICYmIAoJICAgICgkcmFkID0gKGludCkkY2Rtb2QtPkdldFByZWZlcmVuY2UoJ2NoZWNraW5yYXRlbGltaXRpbmdfYnlsb2NhdGlvbicpKSApIHsKCSAgaWYoICFpc3NldCgkY2hlY2tpbi0+bGF0KSApCgkgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignTWlzc2luZyByZXF1aXJlZCBzb3VyY2UgY29vZGluYXRlIGluZm9ybWF0aW9uJyk7CgoJICBpZiggJHJhZCA+IDAgKSB7CgkgICAgLy8gcmF0ZWxpbWl0aW5nIGJ5IHJhZGl1cyAoaW4gbWlsZXMpCQkgICAgCgkgICAgLy8gZ2V0IHRoZSBsb2NhdGlvbiBpbmZvcm1hdGlvbiBvZiB0aGlzIGNvbXBhbnkuCgkgICAgJGNvbXBhbnkgPSBjZF9jb21wYW55X2ZpbHRlcjo6Z2V0X2NvbXBhbnkoJGNoZWNraW4tPmxvY2F0aW9uLCcnLEZBTFNFKTsKCSAgICBpZiggISRjb21wYW55LT5sYXRpdHVkZSB8fCAhJGNvbXBhbnktPmxvbmdpdHVkZSApCgkgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdMb2NhdGlvbiBzcGVjaWZpZWQgaGFzIG5vIGNvb3JkaW5hdGUgaW5mb3JtYXRpb24nKTsKCgkgICAgJGxhdDEgPSAkY29tcGFueS0+bGF0aXR1ZGU7CgkgICAgJGxhdDIgPSAkY2hlY2tpbi0+bGF0OwoJICAgICRsb24xID0gJGNvbXBhbnktPmxvbmdpdHVkZTsKCSAgICAkbG9uMiA9ICRjaGVja2luLT5sbmc7CgoJICAgICR0aGV0YSA9ICRsb24xIC0gJGxvbjI7CgkgICAgJGRpc3QgPSBzaW4oZGVnMnJhZCgkbGF0MSkpICogc2luKGRlZzJyYWQoJGxhdDIpKSArICBjb3MoZGVnMnJhZCgkbGF0MSkpICogY29zKGRlZzJyYWQoJGxhdDIpKSAqIGNvcyhkZWcycmFkKCR0aGV0YSkpOyAKCSAgICAkZGlzdCA9IGFjb3MoJGRpc3QpOyAKCSAgICAkZGlzdCA9IHJhZDJkZWcoJGRpc3QpOyAKCSAgICAkbWlsZXMgPSAkZGlzdCAqIDYwICogMS4xNTE1OwoKCSAgICBpZiggJG1pbGVzID4gJHJhZCApCgkgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdMb2NhdGlvbiBzcGVjaWZpZWQgaXMgdG9vIGZhciBhd2F5IGZyb20geW91ciBjdXJyZW50IGxvY2F0aW9uJyk7CgkgIH0KCX0KCglpZiggaW5fYXJyYXkoJ2J5dGltZScsJHJsKSAmJiAKCSAgICAoJHRsID0gKGludCkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2hlY2tpbnJhdGVsaW1pdGluZ19ieXRpbWUnLDEwKSkgPiAwICkgewoJICAvLyByYXRlIGxpbWl0aW5nIGJ5IHRpbWUgbGltaXQuCgkgIC8vIGdldCB0aGUgbGFzdCBjaGVja2luIGJ5IHRoaXMgdXNlci4KCSAgLy8gYW5kIGdldCBpdHMgY3JlYXRlZCB0aW1lLgoJICAkb2NoZWNraW4gPSBjZ3NhX2NoZWNraW46OmxvYWRfYnlfdXNlcigkdWlkLDEpOwoJICBpZiggaXNfb2JqZWN0KCRvY2hlY2tpbikgKSB7CgkgICAgJG5vdyA9IHRpbWUoKTsKCSAgICBpZiggJG5vdyAtICRvY2hlY2tpbi0+Y3JlYXRlZCA8ICgkdGwgKiA2MCkgKSB7CgkgICAgICAkcmVtID0gY2VpbCgkdGwgLSAoJG5vdyAtICRvY2hlY2tpbi0+Y3JlYXRlZCkvNjApOwoJICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2hlY2tpbiBmYWlsZWQuLi4gcGxlYXNlIHRyeSBhZ2FpbiBpbiAnLiRyZW0uJyBtaW51dGVzJyk7CgkgICAgfQoJICB9Cgl9CiAgICAgIH0KCiAgICAgIGlmKCBpc3NldCgkX0ZJTEVTKSAmJiBpc19hcnJheSgkX0ZJTEVTKSAmJiBjb3VudCgkX0ZJTEVTKSApIHsKCSRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKCSRkZXN0ZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnXycuJHRoaXMtPkdldE5hbWUoKSk7CglAbWtkaXIoJGRlc3RkaXIpOwoKCSRkYXRhID0gYXJyYXkoKTsKCWZvcmVhY2goICRfRklMRVMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CgkgICRoYW5kbGVyID0gY2dlX3NldHVwOjpnZXRfdXBsb2FkZXIoJycsJGRlc3RkaXIpOwoJICAkZmlsZW5hbWUgPSBjZ3NhX3V0aWxzOjpnZXRfdW5pcXVlX2ZpbGVuYW1lKCRjaGVja2luLT5vYmlkKTsKCSAgJHJlcyA9ICRoYW5kbGVyLT5oYW5kbGVfdXBsb2FkKCRrZXksJGZpbGVuYW1lKTsKCSAgJGVyciA9ICRoYW5kbGVyLT5nZXRfZXJyb3IoKTsKCgkgIGlmKCAhJHJlcyAmJiAkZXJyICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApCgkgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVXBsb2FkIEVycm9yICcuJGhhbmRsZXItPmdldF9lcnJvcm1zZygpKTsKCX0KCWlmKCBlbXB0eSgkcmVzKSApIGNvbnRpbnVlOwoKCSRkYXRhW10gPSAkcmVzOwogICAgICB9CgogICAgICBpZiggY291bnQoJGRhdGEpICkgewoJJGNoZWNraW4tPmZpbGVzID0gJGRhdGE7CiAgICAgIH0KCiAgICAgICRyZXMgPSAkY2hlY2tpbi0+c2F2ZSgpOwogICAgICAkb3V0cHV0ID0gJGNoZWNraW4tPmlkOwoKICAgICAgLy8gaGFuZGxlIGFueSBsZWFkZXJib2FyZHMgdGhhdCBuZWVkIHRvIGJlIHVwZGF0ZWQuCiAgICAgICR0aGlzLT5VcGRhdGVMZWFkZXJib2FyZHMoJGNoZWNraW4pOwoKICAgICAgLy8gc2VuZCBhbiBldmVudAogICAgICAkdGhpcy0+U2VuZEV2ZW50KCdPbkNoZWNraW4nLGFycmF5KCdjaGVja2luJz0+JGNoZWNraW4pKTsKICAgIH0KICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigkZS0+Z2V0TWVzc2FnZSgpKTsKICAgIH0KICAgIGJyZWFrOwoKICBjYXNlICdHRVQnOiAvLyBHRVQgUkVRVUVTVAogICAgdHJ5IHsKICAgICAgLy8gcmV0dXJuIGEgc2luZ2xlIGNoZWNraW4KICAgICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fQ0hFQ0tJTlNfUkVBRCkgKQoJY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgICAgaWYoIGNnc2FfdXRpbHM6OmlzX3Bvc3RfcmVxdWVzdCgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgICAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWydjaWQnXSkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBkYXRhJyk7CiAgICAgICRkZWVwID0gKGlzc2V0KCRfUkVRVUVTVFsnZGVlcCddKSk/KGludCkkX1JFUVVFU1RbJ2RlZXAnXTowOwogICAgICAKICAgICAgJG91dHB1dCA9IGNnc2FfY2hlY2tpbjo6bG9hZF9ieV9pZCgoaW50KSRfUkVRVUVTVFsnY2lkJ10sdHJ1ZSk7CiAgICAgIGlmKCAkZGVlcCApIHsKCS8vIGdldCB0aGUgb3duZXIgbmFtZS4KCSRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKCSRvdXRwdXRbJ293bmVyX25hbWUnXSA9ICRmZXUtPkdldFVzZXJOYW1lKCRvdXRwdXRbJ293bmVyJ10pOwoJJGNkID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5Jyk7CglpZiggJGNkICYmICRvdXRwdXRbJ2xvY2F0aW9uJ10gKSB7CgkgICRvdXRwdXRbJ2xvY2F0aW9uX25hbWUnXSA9ICRjZC0+R2V0Q29tcGFueU5hbWVGcm9tSWQoJG91dHB1dFsnbG9jYXRpb24nXSk7Cgl9CglpZiggJG91dHB1dFsnYWN0aXZpdHknXSApIHsKCSAgJGFjdCA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYnlfaWQoJG91dHB1dFsnYWN0aXZpdHknXSk7CgkgICRvdXRwdXRbJ2FjdGl2aXR5X25hbWUnXSA9ICRhY3QtPm5hbWU7Cgl9CiAgICAgIH0KICAgIH0KICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigkZS0+Z2V0TWVzc2FnZSgpKTsKICAgIH0KICAgIGJyZWFrOwoKICBjYXNlICdERUwnOiAvLyBQT1NUIHJlcXVlc3QKICAgIC8vIGRlbGV0ZSBhIHNpbmdsZSBjaGVja2luCiAgICAvLyAoY2Fubm90IGhhdmUgY2hpbGRyZW4pCiAgICAvLyBvd25lciBpZCBtdXN0IG1hdGNoCiAgICAvLyBvd25lciBpZCBtdXN0IG1hdGNoIGN1cnJlbnQgdXNlci4KICAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0NIRUNLSU5TX0RFTCkgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ293bmVyJ10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ2NpZCddKSApCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9hcnJheSgnaW5zdWZmaWNpZW50IGRhdGEnKTsKICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgIGlmKCAhJGZldSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW50ZXJuYWwgZXJyb3InKTsKICAgICR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICAkb3duZXIgPSAoaW50KSRfUkVRVUVTVFsnb3duZXInXTsKICAgIGlmKCAkdWlkICE9ICRvd25lciApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigiSW52YWxpZCBvd25lciBnb3QgJG93bmVyLCBidXQgZm91bmQgJHVpZCIpOwogICAgJGNoZWNraW4gPSBjZ3NhX2NoZWNraW46OmxvYWRfYnlfaWQoKGludCkkX1JFUVVFU1RbJ2NpZCddKTsKICAgIGlmKCAhaXNfb2JqZWN0KCRjaGVja2luKSApIHsKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdTcGVjaWZpZWQgY2hlY2tpbiAoaWQ9Jy4kX1JFUVVFU1RbJ2NpZCddLicpIG5vdCBmb3VuZCcpOwogICAgfQogICAgaWYoICRjaGVja2luLT5vd25lciAhPSAkdWlkICkgewogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0Nhbm5vdCBkZWxldGUgdGhpcyBjaGVja2luOiBvd25lciBtaXNtYXRjaCcpOwogICAgfQogICAgaWYoICRjaGVja2luLT5wYXJlbnRfaWQgPiAwICkgewogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0Nhbm5vdCBkZWxldGUgdGhpcyBjaGVja2luOiB0aGVyZSBhcmUgY2hpbGRyZW4nKTsKICAgIH0KICAgICR0aGlzLT5TZW5kRXZlbnQoJ1ByZURlbGV0ZUNoZWNraW4nLGFycmF5KCdjaGVja2luJz0+JGNoZWNraW4pKTsKICAgICRyZXMgPSAkY2hlY2tpbi0+ZGVsZXRlKCk7CiAgICAkdGhpcy0+U2VuZEV2ZW50KCdQb3N0RGVsZXRlQ2hlY2tpbicsYXJyYXkoJ2NoZWNraW4nPT4kY2hlY2tpbikpOyAvLyBub3Qgc3VyZSBhYm91dCB0aGlzLgogICAgaWYoICEkcmVzICkKICAgICAgewoJY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdQcm9ibGVtIGRlbGV0aW5nIHRoaXMgY2hlY2tpbi4uIGludGVybmFsIGVycm9yJyk7CiAgICAgIH0KICAgIGJyZWFrOwoKICBjYXNlICdNWUNIRUNLSU5TJzogLy8gR0VUIHJlcXVlc3QKICAgIC8vIGxpc3QgYSB1c2VycyBjaGVja2lucwogICAgLy8gb3duZXIgaWQgbXVzdCBtYXRjaCBjdXJyZW50IHVzZXIKICAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0NIRUNLSU5TX1JFQUQpICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgIGlmKCAhY2dzYV91dGlsczo6aXNfZ2V0X3JlcXVlc3QoKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ293bmVyJ10pICkgCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignaW5zdWZmaWNpZW50IGRhdGEnKTsKICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgIGlmKCAhJGZldSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW50ZXJuYWwgZXJyb3InKTsKICAgICR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICAkb3duZXIgPSAoaW50KSRfUkVRVUVTVFsnb3duZXInXTsKICAgIGlmKCAkdWlkICE9ICRvd25lciApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigiSW52YWxpZCBvd25lciBnb3QgJG93bmVyLCBidXQgZm91bmQgJHVpZCIpOwogICAgJHRpbWVsaW1pdCA9IChpc3NldCgkX1JFUVVFU1RbJ3RpbWVsaW1pdCddKSk/KGludCkkX1JFUVVFU1RbJ3RpbWVsaW1pdCddOjA7CiAgICAkbGltaXQgPSAoaXNzZXQoJF9SRVFVRVNUWydsaW1pdCddKSk/KGludCkkX1JFUVVFU1RbJ2xpbWl0J106NTA7CiAgICAkb2Zmc2V0ID0gKGlzc2V0KCRfUkVRVUVTVFsnb2Zmc2V0J10pKT8oaW50KSRfUkVRVUVTVFsnb2Zmc2V0J106MDsKICAgICRkZWVwID0gKGlzc2V0KCRfUkVRVUVTVFsnZGVlcCddKSk/KGludCkkX1JFUVVFU1RbJ2RlZXAnXTowOwoKICAgICRxdWVyeSA9IG5ldyBjZ3NhX2NoZWNraW5fcXVlcnkoYXJyYXkoJ3RpbWVsaW1pdCc9PiR0aW1lbGltaXQsJ2xpbWl0Jz0+JGxpbWl0LCdvZmZzZXQnPT4kb2Zmc2V0LCdvd25lcic9PiRvd25lcikpOwogICAgJHJzID0gJHF1ZXJ5LT5leGVjdXRlKCk7CiAgICBpZiggJHJzICkgewogICAgICBpZiggJGRlZXAgKSB7Cgkkb3duZXJfaWRzID0gYXJyYXkoKTsKCSR1c2VyX2xpc3QgPSBhcnJheSgpOwoJJGxvY2F0aW9uX2lkcyA9IGFycmF5KCk7CgkkbG9jYXRpb25fbGlzdCA9IGFycmF5KCk7CgkkYWN0aXZpdHlfaWRzID0gYXJyYXkoKTsKCSRhY3Rpdml0eV9saXN0ID0gYXJyYXkoKTsKCXdoaWxlKCAhJHJzLT5FT0YgKSB7CgkgIGlmKCAhaW5fYXJyYXkoJHJzLT5maWVsZHMtPm93bmVyLCRvd25lcl9pZHMpICkgJG93bmVyX2lkc1tdID0gJHJzLT5maWVsZHMtPm93bmVyOwoJICBpZiggIWluX2FycmF5KCRycy0+ZmllbGRzLT5sb2NhdGlvbiwkbG9jYXRpb25faWRzKSApICRsb2NhdGlvbl9pZHNbXSA9ICRycy0+ZmllbGRzLT5sb2NhdGlvbjsKCSAgaWYoICFpbl9hcnJheSgkcnMtPmZpZWxkcy0+YWN0aXZpdHksJGFjdGl2aXR5X2lkcykgJiYgJHJzLT5maWVsZHMtPmFjdGl2aXR5ICkgJGFjdGl2aXR5X2lkc1tdID0gJHJzLT5maWVsZHMtPmFjdGl2aXR5OwoJICAkcnMtPk1vdmVOZXh0KCk7Cgl9CglpZiggY291bnQoJG93bmVyX2lkcykgKSB7CgkgICRxdWVyeSA9IG5ldyBmZXVfdXNlcl9xdWVyeSgxMDAwMCk7CgkgICRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9VU0VSTElTVCwkb3duZXJfaWRzKTsKCSAgJHVycyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwoJICB3aGlsZSggISR1cnMtPkVPRiApIHsKCSAgICAkdXNlcl9saXN0WyR1cnMtPmZpZWxkc1snaWQnXV0gPSAkdXJzLT5maWVsZHM7CgkgICAgJHVycy0+TW92ZU5leHQoKTsKCSAgfQoJfQoJaWYoIGNvdW50KCRsb2NhdGlvbl9pZHMpICkgewoJICAkZmlsdGVyID0gbmV3IGNkX2NvbXBhbnlfZmlsdGVyKGFycmF5KCdpZGxpc3QnPT4kbG9jYXRpb25faWRzKSk7CgkgICRscnMgPSBuZXcgY2RfY29tcGFueV9xdWVyeSgkZmlsdGVyKTsKCSAgJGxycy0+c2V0X3Jlc3VsdF9tb2RlKGNkX2NvbXBhbnlfcXVlcnk6OlJFU1VMVFNfQVJSQVkpOwoJICB3aGlsZSggISRscnMtPkVPRigpICkgewoJICAgICRsb2NhdGlvbl9saXN0WyRscnMtPmZpZWxkc1snaWQnXV0gPSAkbHJzLT5maWVsZHM7CgkgICAgJGxycy0+TW92ZU5leHQoKTsKCSAgfQoJfQoJaWYoIGNvdW50KCRhY3Rpdml0eV9pZHMpICkgewoJICAkYWxsX2FjdGl2aXRpZXMgPSBjZ3NhX2FjdGl2aXR5Ojpsb2FkX2FsbF9hc19hcnJheSgpOwoJICBmb3JlYWNoKCAkYWxsX2FjdGl2aXRpZXMgYXMgJG9uZSApIHsKCSAgICBpZiggaW5fYXJyYXkoJG9uZVsnaWQnXSwkYWN0aXZpdHlfaWRzKSApIHsKCSAgICAgICRhY3Rpdml0eV9saXN0WyRvbmVbJ2lkJ11dID0gJG9uZTsKCSAgICB9CgkgIH0KCX0KCSRycy0+TW92ZUZpcnN0KCk7CiAgICAgIH0gLy8gZW5kIGlmIGRlZXAKCiAgICAgICRvdXRwdXQgPSBhcnJheSgpOwogICAgICB3aGlsZSggISRycy0+RU9GICkgewoJJHJlYyA9IGNnc2FfY2hlY2tpbjo6dG9fYXJyYXkoJHJzLT5maWVsZHMpOwoJaWYoIGlzc2V0KCR1c2VyX2xpc3RbJHJlY1snb3duZXInXV0pICkgewoJICAkcmVjWydvd25lcl9uYW1lJ10gPSAkdXNlcl9saXN0WyRyZWNbJ293bmVyJ11dWyd1c2VybmFtZSddOwoJfQoJaWYoIGlzc2V0KCRsb2NhdGlvbl9saXN0WyRyZWNbJ2xvY2F0aW9uJ11dKSApIHsKCSAgJHJlY1snbG9jYXRpb25fbmFtZSddID0gJGxvY2F0aW9uX2xpc3RbJHJlY1snbG9jYXRpb24nXV1bJ2NvbXBhbnlfbmFtZSddOwoJfQoJaWYoIGlzc2V0KCRhY3Rpdml0eV9saXN0WyRyZWNbJ2FjdGl2aXR5J11dKSApIHsKCSAgJHJlY1snYWN0aXZpdHlfbmFtZSddID0gJGFjdGl2aXR5X2xpc3RbJHJlY1snYWN0aXZpdHknXV1bJ25hbWUnXTsKCX0KCgkkb3V0cHV0W10gPSAkcmVjOwoJJHJzLT5Nb3ZlTmV4dCgpOwogICAgICB9CiAgICB9CiAgICBicmVhazsKCiAgY2FzZSAnQVBQUk9WRSc6IC8vIFBPU1QgcmVxdWVzdAogICAgLy8gYXBwcm92ZSBhIGNoZWNraW4KICAgIC8vIG5lZWQgY2lkLCBsb2NhdGlvbiwgKG1kNSBvZiB0aGUgcHcpLCBvd25lcgogICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fQ0hFQ0tJTlNfQVBQUk9WRSkgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ3VpZCddKSB8fCAhaXNzZXQoJF9SRVFVRVNUWydjaWQnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsnbGlkJ10pICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2FycmF5KCdpbnN1ZmZpY2llbnQgZGF0YScpOwogICAgaWYoICEkZmV1ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnRlcm5hbCBlcnJvcicpOwogICAgJHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgICRvd25lciA9IChpbnQpJF9SRVFVRVNUWydvd25lciddOwogICAgJGxpZCA9IChpbnQpJF9SRVFVRVNUWydsaWQnXTsKICAgICRwdyA9IChpc3NldCgkX1JFUVVFU1RbJ3B3J10pKT8kX1JFUVVFU1RbJ3B3J106Jyc7CiAgICBpZiggJHVpZCAhPSAkb3duZXIgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoIkludmFsaWQgb3duZXIgZ290ICRvd25lciwgYnV0IGV4cGVjdGVkICR1aWQiKTsKICAgICRjaGVja2luID0gY2dzYV9jaGVja2luOjpsb2FkX2J5X2lkKChpbnQpJF9SRVFVRVNUWydjaWQnXSk7CiAgICBpZiggIWlzX29iamVjdCgkY2hlY2tpbikgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ1NwZWNpZmllZCBjaGVja2luIG5vdCBmb3VuZCcpOwogICAgaWYoICRjaGVja2luLT5sb2NhdGlvbiAhPSAkbGlkICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdTcGVjaWZpZWQgY2hlY2tpbiBkb2VzIG5vdCBtYXRjaCBsb2NhdGlvbicpOwogICAgaWYoICFjZ3NhX3V0aWxzOjpjaGVja191c2VyX3RvX2xvY2F0aW9uKCRsaWQsJHVpZCwkcHcpICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgcGVybWlzc2lvbiB0byBhcHByb3ZlJyk7CiAgICBpZiggJGNoZWNraW4tPmFwcHJvdmVkICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdTcGVjaWZpZWQgY2hlY2tpbiBpcyBhbHJlYWR5IGFwcHJvdmVkJyk7CiAgICAkY2hlY2tpbi0+YXBvcm92ZWQgPSAxOwogICAgJGNoZWNraW4tPnNhdmUoKTsKICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uVXBkYXRlQ2hlY2tpbicsYXJyYXkoJ2NoZWNraW4nPT4kY2hlY2tpbiwnYXBwcm92ZWQnPT4xKSk7CiAgICBicmVhazsKICAgIAogIGNhc2UgJ0VESVQnOiAvLyBQT1NUIHJlcXVlc3QKICAgIC8vIGVkaXQgYSBjaGVja2luCiAgICAvLyBvd25lciBpZCBtdXN0IG1hdGNoIGN1cnJlbnQgdXNlcgogICAgLy8gb3duZXIgaWQgbXVzdCBtYXRjaCBvd25lciBvZiBjaGVja2luCiAgICAvLyBrZXkgaXMgb25lIG9mICdsb2NhdGlvbicsJ2FjdGl2aXR5JywnbXNnJwogICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fQ0hFQ0tJTlNfRURJVCkgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ293bmVyJ10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ2NpZCddKSApCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9hcnJheSgnaW5zdWZmaWNpZW50IGRhdGEnKTsKICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgIGlmKCAhJGZldSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW50ZXJuYWwgZXJyb3InKTsKICAgICR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICAkb3duZXIgPSAoaW50KSRfUkVRVUVTVFsnb3duZXInXTsKICAgIGlmKCAkdWlkICE9ICRvd25lciApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigiSW52YWxpZCBvd25lciBnb3QgJG93bmVyLCBidXQgZXhwZWN0ZWQgJHVpZCIpOwogICAgJGNoZWNraW4gPSBjZ3NhX2NoZWNraW46OmxvYWRfYnlfaWQoKGludCkkX1JFUVVFU1RbJ2NpZCddKTsKICAgIGlmKCAhaXNfb2JqZWN0KCRjaGVja2luKSApCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignU3BlY2lmaWVkIGNoZWNraW4gbm90IGZvdW5kJyk7CiAgICBpZiggJGNoZWNraW4tPm93bmVyICE9ICR1aWQgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0Nhbm5vdCBlZGl0IHRoaXMgY2hlY2tpbjogb3duZXIgbWlzbWF0Y2gnKTsKCiAgICB0cnkgewogICAgICAkbW9kaWZpZWQgPSBGQUxTRTsKICAgICAgZm9yZWFjaCggJF9SRVFVRVNUIGFzICRrZXkgPT4gJHZhbHVlICkgewoJc3dpdGNoKCAka2V5ICkgewoJY2FzZSAnYWN0aXZpdHknOgoJICAkY2hlY2tpbi0+YWN0aXZpdHkgPSAoaW50KSR2YWx1ZTsKCSAgJG1vZGlmaWVkID0gVFJVRTsKCSAgYnJlYWs7CgljYXNlICdsb2NhdGlvbic6CgkgIC8vIHZhbGlkYXRlIHRoZSBsb2NhdGlvbgoJICAkY29tcGFueSA9IGNkX3V0aWxzOjpnZXRfY29tcGFueSgkdmFsdWUpOwoJICBpZiggISRjb21wYW55ICkKCSAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdMb2NhdGlvbiAnLiR2YWx1ZS4nIG5vdCBmb3VuZCcpOwoJICBpZiggJGNvbXBhbnktPnN0YXR1cyAhPSAncHVibGlzaGVkJyApCgkgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignTG9jYXRpb24gJy4kdmFsdWUuJyBoYXMgYW4gaW52YWxpZCBzdGF0dXMnKTsKCSAgJGNoZWNraW4tPmxvY2F0aW9uID0gKGludCkkdmFsdWU7CgkgICRtb2RpZmllZCA9IFRSVUU7CgkgIGJyZWFrOwoJY2FzZSAnbXNnJzoKCSAgJGNoZWNraW4tPm1zZyA9IHN1YnN0cigkdmFsdWUsMCwyNTUpOwoJICAkbW9kaWZpZWQgPSBUUlVFOwoJICBicmVhazsKCWNhc2UgJ2V4dHJhMV91cmwnOgoJICAkY2hlY2tpbi0+ZXh0cmExX3VybCA9IHRyaW0oJF9SRVFVRVNUWydleHRyYTFfdXJsJ10pOwoJICBicmVhazsKCWNhc2UgJ2RlbCc6CgkgIC8vIGRlbGV0ZSBmaWxlcy4uLgoJICBpZiggaXNzZXQoJGNoZWNraW4tPmZpbGVzKSAmJiBjb3VudCgkY2hlY2tpbi0+ZmlsZXMpICkgewoJICAgIGlmKCAkdmFsdWUgPj0gMCAmJiAkdmFsdWUgPCBjb3VudCgkY2hlY2tpbi0+ZmlsZXMpICkgewoJICAgICAgJGZuID0gJGNoZWNraW4tPmZpbGVzWyR2YWx1ZV07CgkgICAgICBpZiggJGZuICkgewoJCSRmaWxlcyA9IGdsb2IoY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnXycuJHRoaXMtPkdldE5hbWUoKSwnKicuJGZuKSk7CgkJaWYoIGlzX2FycmF5KCRmaWxlcykgJiYgY291bnQoJGZpbGVzKSApIHsKCQkgIGZvcmVhY2goJGZpbGVzIGFzICRmaWxlKSB7CgkJICAgIEB1bmxpbmsoJGZpbGUpOwoJCSAgfQoJCX0KCSAgICAgIH0KCSAgICAgICRkYXRhID0gJGNoZWNraW4tPmZpbGVzOwoJICAgICAgdW5zZXQoJGRhdGFbJHZhbHVlXSk7CgkgICAgICBpZiggIWNvdW50KCRkYXRhKSApICRkYXRhID0gbnVsbDsKCSAgICAgICRjaGVja2luLT5kYXRhID0gJGRhdGE7CgkgICAgICAkbW9kaWZpZWQgPSBUUlVFOwoJICAgIH0KCSAgfQoJICBicmVhazsKCglkZWZhdWx0OgoJICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDYW5ub3Qgc2V0IHByb3BlcnR5ICcuJGtleS4nIGluIGxvY2F0aW9uIGVkaXQgb3BlcmF0aW9uJyk7CgkgIGJyZWFrOwoJfQogICAgICB9CiAgICAgIGlmKCAkbW9kaWZpZWQgKSB7CgkkY2hlY2tpbi0+c2F2ZSgpOwoJJHRoaXMtPlNlbmRFdmVudCgnT25VcGRhdGVDaGVja2luJyxhcnJheSgnY2hlY2tpbic9PiRjaGVja2luKSk7CiAgICAgIH0KICAgIH0KICAgIGNhdGNoKEV4Y2VwdGlvbiAkZSkgewogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0VSUk9SOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgfQogICAgYnJlYWs7CgogIGNhc2UgJ0JZTE9DQVRJT04nOiAvLyBHRVQgUkVRVUVTVAogICAgLy8gZ2V0IHRoZSBOIGxhdGVzdCByZXF1ZXN0cyB0aWVkIHRvIHRoaXMgbG9jYXRpb24uCiAgICAvLyB0b2RvOiBmb3IgZnJpZW5kcyBvbmx5LgogICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fQ0hFQ0tJTlNfUkVBRCkgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgICBpZiggIWlzc2V0KCRfUkVRVUVTVFsnbGlkJ10pICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdpbnN1ZmZpY2llbnQgZGF0YScpOwogICAgJHRpbWVsaW1pdCA9IChpc3NldCgkX1JFUVVFU1RbJ3RpbWVsaW1pdCddKSk/KGludCkkX1JFUVVFU1RbJ3RpbWVsaW1pdCddOjA7CiAgICAkbGltaXQgPSAoaXNzZXQoJF9SRVFVRVNUWydsaW1pdCddKSk/KGludCkkX1JFUVVFU1RbJ2xpbWl0J106NTA7CiAgICAkb2Zmc2V0ID0gKGlzc2V0KCRfUkVRVUVTVFsnb2Zmc2V0J10pKT8oaW50KSRfUkVRVUVTVFsnb2Zmc2V0J106MDsKICAgICRsaWQgPSAoaXNzZXQoJF9SRVFVRVNUWydsaWQnXSkpPyhpbnQpJF9SRVFVRVNUWydsaWQnXTowOwogICAgJGRlZXAgPSAoaXNzZXQoJF9SRVFVRVNUWydkZWVwJ10pKT8oaW50KSRfUkVRVUVTVFsnZGVlcCddOjA7CiAgICAkcGFybXMgPSBhcnJheSgnbG9jYXRpb24nPT4kbGlkLCd0aW1lbGltaXQnPT4kdGltZWxpbWl0LCdsaW1pdCc9PiRsaW1pdCwnb2Zmc2V0Jz0+JG9mZnNldCk7CiAgICBpZiggaXNzZXQoJF9SRVFVRVNUWyd1bmFwcHJvdmVkJ10pICkgewogICAgICAvLyBhcmUgd2UgYWxsb3dlZCB0byBoYW5kbGUgdGhpcyBwYXJhbWV0ZXI/CiAgICAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0NIRUNLSU5TX0FQUFJPVkUpICkKCWNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgKQoJY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdpbnN1ZmZpY2llbnQgZGF0YScpOwoKICAgICAgLy8gd2Ugd2lsbCBuZWVkIHRvIHNlZSBpZiB0aGlzIHVzZXIgaXMgYXR0YWNoZWQgdG8gdGhpcyBjb21wYW55CiAgICAgICR1aWQgPSAoaW50KSRfUkVRVUVTVFsndWlkJ107CiAgICAgIGlmKCAhY2dzYV91dGlsczo6Y2hlY2tfdXNlcl90b19sb2NhdGlvbigkbGlkLCR1aWQpICkKCWNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CgogICAgICAkcGFybXNbJ2FwcHJvdmVkJ10gPSAwOwogICAgfQoKICAgICRxdWVyeSA9IG5ldyBjZ3NhX2NoZWNraW5fcXVlcnkoJHBhcm1zKTsKICAgICRycyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwogICAgaWYoICRycyApIHsKICAgICAgLy8gYnVpbGQgbGlzdCBvZiB1c2VyaWRzLCBhbmQgbG9jYXRpb24gaWRzLCBhbmQgYWN0aXZpdHkgaWQncwogICAgICAvLyB3ZSBzaG91bGQgbW92ZSB0aGlzIHN0dWZmIHRvIG9uZSBwbGFjZSBpbnN0ZWFkIG9mIE4KICAgICAgaWYoICRkZWVwICkgewoJJG93bmVyX2lkcyA9IGFycmF5KCk7CgkkdXNlcl9saXN0ID0gYXJyYXkoKTsKCSRsb2NhdGlvbl9pZHMgPSBhcnJheSgpOwoJJGxvY2F0aW9uX2xpc3QgPSBhcnJheSgpOwoJJGFjdGl2aXR5X2lkcyA9IGFycmF5KCk7CgkkYWN0aXZpdHlfbGlzdCA9IGFycmF5KCk7Cgl3aGlsZSggISRycy0+RU9GICkgewoJICBpZiggIWluX2FycmF5KCRycy0+ZmllbGRzLT5vd25lciwkb3duZXJfaWRzKSApICRvd25lcl9pZHNbXSA9ICRycy0+ZmllbGRzLT5vd25lcjsKCSAgaWYoICFpbl9hcnJheSgkcnMtPmZpZWxkcy0+bG9jYXRpb24sJGxvY2F0aW9uX2lkcykgKSAkbG9jYXRpb25faWRzW10gPSAkcnMtPmZpZWxkcy0+bG9jYXRpb247CgkgIGlmKCAhaW5fYXJyYXkoJHJzLT5maWVsZHMtPmFjdGl2aXR5LCRhY3Rpdml0eV9pZHMpICYmICRycy0+ZmllbGRzLT5hY3Rpdml0eSApICRhY3Rpdml0eV9pZHNbXSA9ICRycy0+ZmllbGRzLT5hY3Rpdml0eTsKCSAgJHJzLT5Nb3ZlTmV4dCgpOwoJfQoJaWYoIGNvdW50KCRvd25lcl9pZHMpICkgewoJICAkcXVlcnkgPSBuZXcgZmV1X3VzZXJfcXVlcnkoMTAwMDApOwoJICAkcXVlcnktPmFkZF9hbmRfb3B0KGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfVVNFUkxJU1QsJG93bmVyX2lkcyk7CgkgICR1cnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKCSAgd2hpbGUoICEkdXJzLT5FT0YgKSB7CgkgICAgJHVzZXJfbGlzdFskdXJzLT5maWVsZHNbJ2lkJ11dID0gJHVycy0+ZmllbGRzOwoJICAgICR1cnMtPk1vdmVOZXh0KCk7CgkgIH0KCX0KCWlmKCBjb3VudCgkbG9jYXRpb25faWRzKSApIHsKCSAgJGZpbHRlciA9IG5ldyBjZF9jb21wYW55X2ZpbHRlcihhcnJheSgnaWRsaXN0Jz0+JGxvY2F0aW9uX2lkcykpOwoJICAkbHJzID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGZpbHRlcik7CgkgICRscnMtPnNldF9yZXN1bHRfbW9kZShjZF9jb21wYW55X3F1ZXJ5OjpSRVNVTFRTX0FSUkFZKTsKCSAgd2hpbGUoICEkbHJzLT5FT0YoKSApIHsKCSAgICAkbG9jYXRpb25fbGlzdFskbHJzLT5maWVsZHNbJ2lkJ11dID0gJGxycy0+ZmllbGRzOwoJICAgICRscnMtPk1vdmVOZXh0KCk7CgkgIH0KCX0KCWlmKCBjb3VudCgkYWN0aXZpdHlfaWRzKSApIHsKCSAgJGFsbF9hY3Rpdml0aWVzID0gY2dzYV9hY3Rpdml0eTo6bG9hZF9hbGxfYXNfYXJyYXkoKTsKCSAgZm9yZWFjaCggJGFsbF9hY3Rpdml0aWVzIGFzICRvbmUgKSB7CgkgICAgaWYoIGluX2FycmF5KCRvbmVbJ2lkJ10sJGFjdGl2aXR5X2lkcykgKSB7CgkgICAgICAkYWN0aXZpdHlfbGlzdFskb25lWydpZCddXSA9ICRvbmU7CgkgICAgfQoJICB9Cgl9CgkkcnMtPk1vdmVGaXJzdCgpOwogICAgICB9CgogICAgICAkb3V0cHV0ID0gYXJyYXkoKTsKICAgICAgd2hpbGUoICEkcnMtPkVPRiApIHsKCSRyZWMgPSBjZ3NhX2NoZWNraW46OnRvX2FycmF5KCRycy0+ZmllbGRzKTsKCWlmKCBpc3NldCgkdXNlcl9saXN0WyRyZWNbJ293bmVyJ11dKSApIHsKCSAgJHJlY1snb3duZXJfbmFtZSddID0gJHVzZXJfbGlzdFskcmVjWydvd25lciddXVsndXNlcm5hbWUnXTsKCX0KCWlmKCBpc3NldCgkbG9jYXRpb25fbGlzdFskcmVjWydsb2NhdGlvbiddXSkgKSB7CgkgICRyZWNbJ2xvY2F0aW9uX25hbWUnXSA9ICRsb2NhdGlvbl9saXN0WyRyZWNbJ2xvY2F0aW9uJ11dWydjb21wYW55X25hbWUnXTsKCX0KCWlmKCBpc3NldCgkYWN0aXZpdHlfbGlzdFskcmVjWydhY3Rpdml0eSddXSkgKSB7CgkgICRyZWNbJ2FjdGl2aXR5X25hbWUnXSA9ICRhY3Rpdml0eV9saXN0WyRyZWNbJ2FjdGl2aXR5J11dWyduYW1lJ107Cgl9Cgkkb3V0cHV0W10gPSAkcmVjOwoJJHJzLT5Nb3ZlTmV4dCgpOwogICAgICB9CiAgICB9CiAgICBicmVhazsKCiAgY2FzZSAnRlJJRU5EUyc6IC8vIEdFVCBSRVFVRVNUCiAgICAvLyBsaXN0IG9mIHJlY2VudCBmcmllbmRzIGNoZWNraW5zCiAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9DSEVDS0lOU19SRUFEKSB8fAoJISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9GUklFTkRTX1JFQUQpICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgIGlmKCAhY2dzYV91dGlsczo6aXNfZ2V0X3JlcXVlc3QoKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ3VpZCddKSApCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9hcnJheSgnaW5zdWZmaWNpZW50IGRhdGEnKTsKICAgICR1aWQgPSB0cmltKCRfUkVRVUVTVFsndWlkJ10pOwogICAgJGRlZXAgPSAoaXNzZXQoJF9SRVFVRVNUWydkZWVwJ10pKT8oaW50KSRfUkVRVUVTVFsnZGVlcCddOjA7CiAgICAkbiA9IChpbnQpbWF4KDEsbWluKDEwMDAsKGlzc2V0KCRfUkVRVUVTVFsnbiddKSk/KGludCkkX1JFUVVFU1RbJ24nXTo1MCkpOwogICAgJG8gPSAoaW50KW1heCgwLChpc3NldCgkX1JFUVVFU1RbJ28nXSkpPyhpbnQpJF9SRVFVRVNUWydvJ106MCk7CiAgICAkZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgICAkdHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgIGlmKCAkdWlkICE9ICR0dWlkICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCJJbnZhbGlkIHVpZC4gZ290ICR1aWQgYnV0IGV4cGVjdGVkICR0dWlkIik7CiAgICAvLyBnZXQgdGhlIGZyaWVuZHMgbGlzdAogICAgJGZyaWVuZHMgPSBjZ3NhX2ZyaWVuZHM6OmdldF9mcmllbmRzKCR1aWQpOwogICAgaWYoIGlzX2FycmF5KCRmcmllbmRzKSAmJiBjb3VudCgkZnJpZW5kcykgPiAwICkgewogICAgICAvLyBnZXQgdGhlIGNoZWNraW5zIGJ5IHRoZXNlIHVzZXJzLgogICAgICAkcXVlcnkgPSBuZXcgY2dzYV9jaGVja2luX3F1ZXJ5OwogICAgICAkcXVlcnlbJ293bmVycyddID0gJGZyaWVuZHM7CiAgICAgICRxdWVyeVsnbGltaXQnXSA9ICRuOwogICAgICAkcXVlcnlbJ29mZnNldCddID0gJG87CiAgICAgICRycyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwogICAgICBpZiggJHJzICkgewoJLy8gYnVpbGQgbGlzdCBvZiB1c2VyaWRzLCBhbmQgbG9jYXRpb24gaWRzLCBhbmQgYWN0aXZpdHkgaWQncwoJaWYoICRkZWVwICkgewoJICAkb3duZXJfaWRzID0gYXJyYXkoKTsKCSAgJHVzZXJfbGlzdCA9IGFycmF5KCk7CgkgICRsb2NhdGlvbl9pZHMgPSBhcnJheSgpOwoJICAkbG9jYXRpb25fbGlzdCA9IGFycmF5KCk7CgkgICRhY3Rpdml0eV9pZHMgPSBhcnJheSgpOwoJICAkYWN0aXZpdHlfbGlzdCA9IGFycmF5KCk7CgkgIHdoaWxlKCAhJHJzLT5FT0YgKSB7CgkgICAgaWYoICFpbl9hcnJheSgkcnMtPmZpZWxkcy0+b3duZXIsJG93bmVyX2lkcykgKSAkb3duZXJfaWRzW10gPSAkcnMtPmZpZWxkcy0+b3duZXI7CgkgICAgaWYoICFpbl9hcnJheSgkcnMtPmZpZWxkcy0+bG9jYXRpb24sJGxvY2F0aW9uX2lkcykgKSAkbG9jYXRpb25faWRzW10gPSAkcnMtPmZpZWxkcy0+bG9jYXRpb247CgkgICAgaWYoICFpbl9hcnJheSgkcnMtPmZpZWxkcy0+YWN0aXZpdHksJGFjdGl2aXR5X2lkcykgJiYgJHJzLT5maWVsZHMtPmFjdGl2aXR5ICkgJGFjdGl2aXR5X2lkc1tdID0gJHJzLT5maWVsZHMtPmFjdGl2aXR5OwoJICAgICRycy0+TW92ZU5leHQoKTsKCSAgfQoJICBpZiggY291bnQoJG93bmVyX2lkcykgKSB7CgkgICAgJHF1ZXJ5ID0gbmV3IGZldV91c2VyX3F1ZXJ5KDEwMDAwKTsKCSAgICAkcXVlcnktPmFkZF9hbmRfb3B0KGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfVVNFUkxJU1QsJG93bmVyX2lkcyk7CgkgICAgJHVycyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwoJICAgIHdoaWxlKCAhJHVycy0+RU9GICkgewoJICAgICAgJHVzZXJfbGlzdFskdXJzLT5maWVsZHNbJ2lkJ11dID0gJHVycy0+ZmllbGRzOwoJICAgICAgJHVycy0+TW92ZU5leHQoKTsKCSAgICB9CgkgIH0KCSAgaWYoIGNvdW50KCRsb2NhdGlvbl9pZHMpICkgewoJICAgICRmaWx0ZXIgPSBuZXcgY2RfY29tcGFueV9maWx0ZXIoYXJyYXkoJ2lkbGlzdCc9PiRsb2NhdGlvbl9pZHMpKTsKCSAgICAkbHJzID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGZpbHRlcik7CgkgICAgJGxycy0+c2V0X3Jlc3VsdF9tb2RlKGNkX2NvbXBhbnlfcXVlcnk6OlJFU1VMVFNfQVJSQVkpOwoJICAgIHdoaWxlKCAhJGxycy0+RU9GKCkgKSB7CgkgICAgICAkbG9jYXRpb25fbGlzdFskbHJzLT5maWVsZHNbJ2lkJ11dID0gJGxycy0+ZmllbGRzOwoJICAgICAgJGxycy0+TW92ZU5leHQoKTsKCSAgICB9CgkgIH0KCSAgaWYoIGNvdW50KCRhY3Rpdml0eV9pZHMpICkgewoJICAgICRhbGxfYWN0aXZpdGllcyA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYWxsX2FzX2FycmF5KCk7CgkgICAgZm9yZWFjaCggJGFsbF9hY3Rpdml0aWVzIGFzICRvbmUgKSB7CgkgICAgICBpZiggaW5fYXJyYXkoJG9uZVsnaWQnXSwkYWN0aXZpdHlfaWRzKSApIHsKCQkkYWN0aXZpdHlfbGlzdFskb25lWydpZCddXSA9ICRvbmU7CgkgICAgICB9CgkgICAgfQoJICB9Cgl9CgoJJHJzLT5Nb3ZlRmlyc3QoKTsKCSRvdXRwdXQgPSBhcnJheSgpOwoJd2hpbGUoICEkcnMtPkVPRiApIHsKCSAgJHJlYyA9IGNnc2FfY2hlY2tpbjo6dG9fYXJyYXkoJHJzLT5maWVsZHMpOwoJICBpZiggaXNzZXQoJHVzZXJfbGlzdFskcmVjWydvd25lciddXSkgKSB7CgkgICAgJHJlY1snb3duZXJfbmFtZSddID0gJHVzZXJfbGlzdFskcmVjWydvd25lciddXVsndXNlcm5hbWUnXTsKCSAgfQoJICBpZiggaXNzZXQoJGxvY2F0aW9uX2xpc3RbJHJlY1snbG9jYXRpb24nXV0pICkgewoJICAgICRyZWNbJ2xvY2F0aW9uX25hbWUnXSA9ICRsb2NhdGlvbl9saXN0WyRyZWNbJ2xvY2F0aW9uJ11dWydjb21wYW55X25hbWUnXTsKCSAgfQoJICBpZiggaXNzZXQoJGFjdGl2aXR5X2xpc3RbJHJlY1snYWN0aXZpdHknXV0pICkgewoJICAgICRyZWNbJ2FjdGl2aXR5X25hbWUnXSA9ICRhY3Rpdml0eV9saXN0WyRyZWNbJ2FjdGl2aXR5J11dWyduYW1lJ107CgkgIH0KCSAgCgkgICRvdXRwdXRbXSA9ICRyZWM7CgkgICRycy0+TW92ZU5leHQoKTsKCX0KICAgICAgfQogICAgfQogICAgYnJlYWs7CgogIGRlZmF1bHQ6CiAgICAvLyB1bmtub3duIG9wCiAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ1Vua25vd24gY29tbWFuZCcpOwogIH0KCmNnc2FfdXRpbHM6OnJldHVybl9zdWNjZXNzKCRvdXRwdXQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokdGhlX3RlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfbGlzdF9jaGVja2luc190ZW1wbGF0ZScpOwppZiggaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkgKSB7CiAgJHRoZV90ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1sndGVtcGxhdGUnXSk7CiAgdW5zZXQoJHBhcmFtc1sndGVtcGxhdGUnXSk7Cn0KaWYoICEkdGhlX3RlbXBsYXRlICkgcmV0dXJuOwokdGhlX3RlbXBsYXRlID0gJ2xpc3RfY2hlY2tpbnMnLiR0aGVfdGVtcGxhdGU7CgppZiggISRzbWFydHktPmlzQ2FjaGVkKCR0aGlzLT5HZXREYXRhYmFzZVJlc291cmNlKCR0aGVfdGVtcGxhdGUpLCRjYWNoZV9pZCwkY29tcGlsZV9pZCkgKSB7CiAgdW5zZXQoJHBhcmFtc1snYWN0aW9uJ10pOwogIHVuc2V0KCRwYXJhbXNbJ21vZHVsZSddKTsKICB1bnNldCgkcGFyYW1zWydyZXR1cm5pZCddKTsKCiAgdHJ5IHsKICAgICR0aGVfcXVlcnkgPSBuZXcgY2dzYV9jaGVja2luX3F1ZXJ5KCRwYXJhbXMpOwogICAgJHJzID0gJHRoZV9xdWVyeS0+ZXhlY3V0ZSgpOwoKICAgICRuID0gJHJzLT5SZWNvcmRDb3VudCgpOwogICAgaWYoICRuICkgewogICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CgogICAgICAkc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsJG4pOwogICAgICAkaXRlbXMgPSBhcnJheSgpOwogICAgICAkb3duZXJzID0gYXJyYXkoKTsKICAgICAgJGxvY2F0aW9ucyA9IGFycmF5KCk7CiAgICAgICRhY3Rpdml0aWVzID0gYXJyYXkoKTsKICAgICAgd2hpbGUoICEkcnMtPkVPRiApIHsKCSRvYiA9ICRycy0+Z2V0X2NoZWNraW4oKTsKCSRpdGVtc1tdID0gJG9iOwoJaWYoICFpbl9hcnJheSgkb2ItPm93bmVyLCRvd25lcnMpICkgewoJICAkb3duZXJzW10gPSAkb2ItPm93bmVyOwoJfQoJaWYoICFpbl9hcnJheSgkb2ItPmxvY2F0aW9uLCRsb2NhdGlvbnMpICkgewoJICAkbG9jYXRpb25zW10gPSAkb2ItPmxvY2F0aW9uOwoJfQoJaWYoICRvYi0+YWN0aXZpdHkgJiYgIWluX2FycmF5KCRvYi0+YWN0aXZpdHksJGFjdGl2aXRpZXMpICkgewoJICAkYWN0aXZpdGllc1tdID0gJG9iLT5hY3Rpdml0eTsKCX0KCSRycy0+TW92ZU5leHQoKTsKICAgICAgfQogICAgICAkc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywkaXRlbXMpOwoKICAgICAgLy8gZ2V0IGluZm8gZm9yIHRoZXNlIGxvY2F0aW9ucwogICAgICAvLyB0aGlzIHdpbGwgcHJlbG9hZCB0aGUgZGF0YSBlZmZpY2llbnRseSBmb3IgdXNlIGluIHRlbXBsYXRlcwogICAgICAkbGZpbHRlciA9IG5ldyBjZF9jb21wYW55X2ZpbHRlcigpOwogICAgICAkbGZpbHRlclsnaWRsaXN0J10gPSAkbG9jYXRpb25zOwogICAgICAkbHF1ZXJ5ID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGxmaWx0ZXIpOwogICAgICAkb3V0ID0gJGxxdWVyeS0+Z2V0X3Jlc3VsdHMoJ2NkXycsJHJldHVybmlkLCRyZXR1cm5pZCk7CiAgICAgICRzbWFydHktPmFzc2lnbignbG9jYXRpb25zJywkb3V0KTsKCiAgICAgIC8vIGdldCBpbmZvIGZvciB0aGVzZSB1c2VycwogICAgICAvLyB0aGlzIHdpbGwgcHJlbG9hZCB0aGUgZGF0YSBlZmZpY2llbnRseSBmb3IgdXNlIGluIHRlbXBsYXRlcwogICAgICAkdXF1ZXJ5ID0gbmV3IGZldV91c2VyX3F1ZXJ5KCk7CiAgICAgICR1cXVlcnktPnNldF9kZWVwKCk7CiAgICAgICR1cXVlcnktPnNldF93ZWJyZWFkeSgpOwogICAgICAkdXF1ZXJ5LT5hZGRfYW5kX29wdChmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1VTRVJMSVNULCRvd25lcnMpOwogICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgJHJzMiA9ICR1cXVlcnktPmV4ZWN1dGUoKTsKICAgICAgd2hpbGUoICEkcnMyLT5FT0YgKSB7Cgkkb25lID0gJHJzMi0+ZmllbGRzOwoJaWYoIGlzc2V0KCRvbmVbJ2Zwcm9wcyddKSAmJiBjb3VudCgkb25lWydmcHJvcHMnXSkgKSB7CgkgICRvbmVbJ3Byb3BzJ10gPSBhcnJheSgpOwoJICBmb3JlYWNoKCAkb25lWydmcHJvcHMnXSBhcyAkcHJvcCApIHsKCSAgICBpZiggaXNzZXQoJHByb3BbJ3VybCddKSApIHsKCSAgICAgICRvbmVbJ3Byb3BzJ11bJHByb3BbJ3RpdGxlJ11dID0gJHByb3BbJ3VybCddOwoJICAgIH0KCSAgICBlbHNlIHsKCSAgICAgICRvbmVbJ3Byb3BzJ11bJHByb3BbJ3RpdGxlJ11dID0gJHByb3BbJ2RhdGEnXTsKCSAgICB9CgkgIH0KCSAgdW5zZXQoJG9uZVsnZnByb3BzJ10pOwoJfQoJJG91dFskb25lWydpZCddXSA9ICRvbmU7CgkkcnMyLT5Nb3ZlTmV4dCgpOwogICAgICB9CiAgICAgICRzbWFydHktPmFzc2lnbigndXNlcmluZm8nLCRvdXQpOwoKICAgICAgLy8gYWN0aXZpdGllcwogICAgICBjZ3NhX2FjdGl2aXR5Ojpsb2FkX2FsbF9hc19hcnJheSgpOyAvLyBtYXkgYmUgZXhwZW5zaXZlCiAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICBpZiggY291bnQoJGFjdGl2aXRpZXMpICkgewoJZm9yZWFjaCggJGFjdGl2aXRpZXMgYXMgJG9uZSApIHsKCSAgJG91dFskb25lXSA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYnlfaWQoJG9uZSk7Cgl9CiAgICAgIH0KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdhY3Rpdml0aWVzJywkb3V0KTsKCiAgICAgICRwYWdpbmF0aW9uID0gJHJzLT5nZXRfcGFnaW5hdGlvbigpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ3BhZ2luYXRpb24nLCRwYWdpbmF0aW9uKTsKICAgIH0KICB9CiAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgIGRlYnVnX2Rpc3BsYXkoJGUtPkdldE1lc3NhZ2UoKSk7IGRpZSgpOwogICAgZWNobyAnPCEtLSAnLiR0aGlzLT5HZXROYW1lKCkuJyBFUlJPUjogJy4kZS0+R2V0bWVzc2FnZSgpLicgLS0+JzsKICAgIHJldHVybjsKICB9Cn0KCmVjaG8gJHNtYXJ0eS0+ZmV0Y2goJHRoaXMtPkdldERhdGFiYXNlUmVzb3VyY2UoJHRoZV90ZW1wbGF0ZSksJGNhY2hlX2lkLCRjb21waWxlX2lkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpIHx8CiAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICBlY2hvICc8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDgwJTsiPic7CiAgICBpZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHsKICAgICAgZWNobyAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fc2V0dGluZ3MnLCRyZXR1cm5pZCwKCQkJCSAgJHRoaXMtPkxhbmcoJ2xibF9zZXR0aW5ncycpLAoJCQkJICAnaWNvbnMvdG9wZmlsZXMvcHJlZmVyZW5jZXMuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKTsKICAgIH0KICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKSB7CiAgICAgIGVjaG8gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX3RlbXBsYXRlcycsJHJldHVybmlkLAoJCQkJICAkdGhpcy0+TGFuZygnbGJsX3RlbXBsYXRlcycpLAoJCQkJICAnaWNvbnMvdG9wZmlsZXMvdGVtcGxhdGUuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKTsKICAgIH0KICAgIGVjaG8gJzwvZGl2Pic7CiAgfQoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKENHU29jaWFsQXBwOjpQRVJNSVNTSU9OKSApIHsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2tleXMnLCR0aGlzLT5MYW5nKCd0YWJfYXBpa2V5cycpKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2FjdGl2aXRpZXMnLCR0aGlzLT5MYW5nKCd0YWJfYWN0aXZpdGllcycpKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2xlYWRlcmJvYXJkcycsJHRoaXMtPkxhbmcoJ2xlYWRlcmJvYXJkcycpKTsKIH0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKENHU29jaWFsQXBwOjpQRVJNSVNTSU9OKSApIHsKICBlY2hvICR0aGlzLT5TdGFydFRhYigna2V5cycsJHBhcmFtcyk7CiAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2tleXNfdGFiLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogfQppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHsKICBlY2hvICR0aGlzLT5TdGFydFRhYignYWN0aXZpdGllcycsJHBhcmFtcyk7CiAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2FjdGl2aXRpZXNfdGFiLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogIAogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdsZWFkZXJib2FyZHMnLCRwYXJhbXMpOwogIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9sZWFkZXJib2FyZHNfdGFiLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogfQplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.friends.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYXBpa2V5ID0gJyc7CiRvcCA9ICcnOwoKLy8KLy8gc2V0dXAKLy8KaWYoIGlzc2V0KCRfUkVRVUVTVFsnb3AnXSApICkgewogICRvcCA9IHN0cnRvdXBwZXIodHJpbSgkX1JFUVVFU1RbJ29wJ10pKTsKfQppZiggaXNzZXQoJF9SRVFVRVNUWydhcGlrZXknXSkgKSB7CiAgJGFwaWtleSA9IHRyaW0oJF9SRVFVRVNUWydhcGlrZXknXSk7Cn0KCi8vIHZhbGlkYXRpb24gY2hlY2sKaWYoICRhcGlrZXkgPT0gJycgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ05vIEF1dGhlbnRpY2F0aW9uIEluZm9ybWF0aW9uJyk7CmlmKCAkb3AgPT0gJycgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ09wZXJhdGlvbiBub3Qgc3BlY2lmaWVkJyk7CgovLyB2YWxpZGF0ZSB0aGUgYXBpa2V5LgokYWNjZXNzX2luZm8gPSBjZ3NhX3V0aWxzOjp2YWxpZGF0ZV9hcGlrZXkoJGFwaWtleSk7CmlmKCAhaXNfb2JqZWN0KCRhY2Nlc3NfaW5mbykgKSB7CiAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uJyk7Cn0KCi8vCi8vIGhhbmRsZSB0aGUgcmVxdWVzdApzd2l0Y2goICRvcCApIHsKIGNhc2UgJ0xJU1QnOiAgLy8gR0VUIFJFUVVFU1QKICAgLy8gbGlzdCBmcmllbmRzIAogICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9GUklFTkRTX1JFQUQpICkKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICBpZiggIWNnc2FfdXRpbHM6OmlzX2dldF9yZXF1ZXN0KCkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ3VpZCddKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAkZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgIGlmKCAhJGZldSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW50ZXJuYWwgZXJyb3InKTsKICAgJHR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICR1aWQgPSAoaW50KSRfUkVRVUVTVFsndWlkJ107CiAgIGlmKCAkdWlkICE9ICR0dWlkICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCJJbnZhbGlkIHVpZCBnb3QgJHVpZCwgYnV0IGV4cGVjdGVkICR0dWlkIik7CiAgICRsaW1pdCA9IDEwMDAwMDsKICAgJG9mZnNldCA9IDA7CiAgICRkZWVwID0gMDsKICAgaWYoIGlzc2V0KCRfUkVRVUVTVFsnbiddKSApICAkbGltaXQgPSBtYXgoMSwoaW50KSRfUkVRVUVTVFsnbiddKTsKICAgaWYoIGlzc2V0KCRfUkVRVUVTVFsnbyddKSApICRvZmZzZXQgPSBtYXgoMCwoaW50KSRfUkVRVUVTVFsnbyddKTsKICAgaWYoIGlzc2V0KCRfUkVRVUVTVFsnZGVlcCddKSApICRkZWVwID0gKGludCkkX1JFUVVFU1RbJ2RlZXAnXTsKICAgJG91dHB1dCA9IGNnc2FfZnJpZW5kczo6Z2V0X2ZyaWVuZHMoJHVpZCwkbGltaXQsJG9mZnNldCk7CiAgIGlmKCBpc19hcnJheSgkb3V0cHV0KSAmJiBjb3VudCgkb3V0cHV0KSAmJiAkZGVlcCApIHsKICAgICAvLyBnb3R0YSBnZXQgdGhlIHVzZXJuYW1lcyB0aGF0IG1hdGNoIGFsbCBvZiB0aGVzZSB1aWRzLgogICAgICRxdWVyeSA9IG5ldyBmZXVfdXNlcl9xdWVyeSgxMDAwMCk7CiAgICAgJHF1ZXJ5LT5hZGRfYW5kX29wdChmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1VTRVJMSVNULCRvdXRwdXQpOwogICAgICR1cnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgICAkdXNlcl9saXN0ID0gYXJyYXkoKTsKICAgICB3aGlsZSggISR1cnMtPkVPRiApIHsKICAgICAgICR1c2VyX2xpc3RbXSA9IGFycmF5KCd1aWQnPT4kdXJzLT5maWVsZHNbJ2lkJ10sJ3VzZXJuYW1lJz0+JHVycy0+ZmllbGRzWyd1c2VybmFtZSddKTsKICAgICAgICR1cnMtPk1vdmVOZXh0KCk7CiAgICAgfQogICAgICRvdXRwdXQgPSAkdXNlcl9saXN0OwogICB9CiAgIGJyZWFrOwoKICBjYXNlICdERUwnOgogIGNhc2UgJ1JFTU9WRSc6IC8vIFBPU1QgUkVRVUVTVAogICAgLy8gZGVsZXRlIGEgZnJpZW5kCiAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9GUklFTkRTX1dSSVRFKSApCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICBpZiggIWNnc2FfdXRpbHM6OmlzX3Bvc3RfcmVxdWVzdCgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgICBpZiggIWlzc2V0KCRfUkVRVUVTVFsndWlkJ10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ2Z1aWQnXSkgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBkYXRhJyk7CiAgICAkdWlkID0gdHJpbSgkX1JFUVVFU1RbJ3VpZCddKTsKICAgICRmdWlkID0gdHJpbSgkX1JFUVVFU1RbJ2Z1aWQnXSk7CiAgICAkZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgICAkdHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgIGlmKCAkdWlkICE9ICR0dWlkICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCJJbnZhbGlkIHVpZCBnb3QgJHVpZCwgYnV0IGV4cGVjdGVkICR0dWlkIik7CiAgICAvLyB0b2RvOiBjaGVjayBpZiB0aGlzIGZ1aWQgaXMgdmFsaWQuCiAgICBjZ3NhX2ZyaWVuZHM6OnJlbW92ZV9mcmllbmRzaGlwKCR1aWQsJGZ1aWQpOwogICAgYnJlYWs7CgogIGNhc2UgJ1NVR0dFU1QnOiAvLyBHRVQgUkVRVUVTVAogICAgLy8gc3VnZ2VzdCBtb3JlIGZyaWVuZHMuCiAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9GUklFTkRTX1JFQUQpICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgIGlmKCAhY2dzYV91dGlsczo6aXNfZ2V0X3JlcXVlc3QoKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ3VpZCddKSApCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IGRhdGEnKTsKICAgICR1aWQgPSB0cmltKCRfUkVRVUVTVFsndWlkJ10pOwogICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgaWYoICEkZmV1ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnRlcm5hbCBlcnJvcicpOwogICAgJHR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICBpZiggJHVpZCAhPSAkdHVpZCApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigiSW52YWxpZCB1aWQgZ290ICR1aWQsIGJ1dCBleHBlY3RlZCAkdHVpZCIpOwogICAgJG91dHB1dCA9IGNnc2FfZnJpZW5kczo6c3VnZ2VzdCgkdWlkKTsKICAgIGJyZWFrOwoKICBjYXNlICdSRVFVRVNUTElTVCc6IC8vIEdFVCByZXF1ZXN0CiAgICAvLyBsaXN0IGZyaWVuZCByZXF1ZXN0cyBmb3IgYSB1c2VyLgogICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fRlJJRU5EU19SRUFEKSApCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICBpZiggIWNnc2FfdXRpbHM6OmlzX2dldF9yZXF1ZXN0KCkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBkYXRhJyk7CiAgICAkZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgICAkdHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgICR1aWQgPSAoaW50KSRfUkVRVUVTVFsndWlkJ107CiAgICBpZiggJHVpZCAhPSAkdHVpZCApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigiSW52YWxpZCB1aWQgZ290ICR1aWQsIGJ1dCBleHBlY3RlZCAkdHVpZCIpOwogICAgJGxpbWl0ID0gMTAwMDAwOwogICAgJG9mZnNldCA9IDA7CiAgICBpZiggaXNzZXQoJF9SRVFVRVNUWyduJ10pICkgJGxpbWl0ID0gbWF4KDEsKGludCkkX1JFUVVFU1RbJ24nXSk7CiAgICBpZiggaXNzZXQoJF9SRVFVRVNUWydvJ10pICkkb2Zmc2V0ID0gbWF4KDAsKGludCkkX1JFUVVFU1RbJ28nXSk7CiAgICAkb3V0cHV0ID0gY2dzYV9mcmllbmRzOjpnZXRfZnJpZW5kcmVxdWVzdHMoJHVpZCwkbGltaXQsJG9mZnNldCk7CiAgICBicmVhazsKCiAgY2FzZSAnUkVRVUVTVCc6IC8vIHBvc3QKICAgIC8vIHNlbmQgYSBmcmllbmQgcmVxdWVzdAogICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fRlJJRU5EU19XUklURSkgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ3VpZCddKSB8fCAhaXNzZXQoJF9SRVFVRVNUWydmdWlkJ10pICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAgJHVpZCA9IHRyaW0oJF9SRVFVRVNUWyd1aWQnXSk7CiAgICAkZnVpZCA9IHRyaW0oJF9SRVFVRVNUWydmdWlkJ10pOwogICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgaWYoICEkZmV1ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnRlcm5hbCBlcnJvcicpOwogICAgJHR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICBpZiggJHVpZCAhPSAkdHVpZCApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigiSW52YWxpZCB1aWQgZ290ICR1aWQsIGJ1dCBleHBlY3RlZCAkdHVpZCIpOwogICAgY2dzYV9mcmllbmRzOjpjcmVhdGVfZnJpZW5kcmVxdWVzdCgkZnVpZCwkdWlkKTsKICAgIGJyZWFrOwoKICBjYXNlICdBUFBST1ZFJzogLy8gUE9TVCBSRVFVRVNUCiAgICAvLyBhcHByb3ZlIGEgZnJpZW5kIHJlcXVlc3QKICAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0ZSSUVORFNfV1JJVEUpICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgIGlmKCAhY2dzYV91dGlsczo6aXNfcG9zdF9yZXF1ZXN0KCkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsnZnVpZCddKSApCiAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IGRhdGEnKTsKICAgICR1aWQgPSB0cmltKCRfUkVRVUVTVFsndWlkJ10pOwogICAgJGZ1aWQgPSB0cmltKCRfUkVRVUVTVFsnZnVpZCddKTsKICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgIGlmKCAhJGZldSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW50ZXJuYWwgZXJyb3InKTsKICAgICR0dWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgaWYoICR1aWQgIT0gJHR1aWQgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoIkludmFsaWQgdWlkIGdvdCAkdWlkLCBidXQgZXhwZWN0ZWQgJHR1aWQiKTsKICAgIGNnc2FfZnJpZW5kczo6YXBwcm92ZV9mcmllbmRyZXF1ZXN0KCR1aWQsJGZ1aWQpOwogICAgYnJlYWs7CgogIGNhc2UgJ0RFTlknOiAvLyBQT1NUIFJFUVVFU1QKICAgIC8vIGRlbnkgYSBmcmllbmQgcmVxdWVzdAogICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fRlJJRU5EU19XUklURSkgKQogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ3VpZCddKSB8fCAhaXNzZXQoJF9SRVFVRVNUWydmdWlkJ10pICkKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAgJHVpZCA9IHRyaW0oJF9SRVFVRVNUWyd1aWQnXSk7CiAgICAkZnVpZCA9IHRyaW0oJF9SRVFVRVNUWydmdWlkJ10pOwogICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgaWYoICEkZmV1ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnRlcm5hbCBlcnJvcicpOwogICAgJHR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgICBpZiggJHVpZCAhPSAkdHVpZCApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigiSW52YWxpZCB1aWQgZ290ICR1aWQsIGJ1dCBleHBlY3RlZCAkdHVpZCIpOwogICAgY2dzYV9mcmllbmRzOjpkZW55X2ZyaWVuZHJlcXVlc3QoJHVpZCwkZnVpZCk7CiAgICBicmVhazsKICAgIAogIGRlZmF1bHQ6CiAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoIlVua25vd24gY29tbWFuICRvcCIpOwogIH0KCmNnc2FfdXRpbHM6OnJldHVybl9zdWNjZXNzKCRvdXRwdXQpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.leaderboards.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYXBpa2V5ID0gJyc7CiRvcCA9ICcnOwokb3V0cHV0ID0gbnVsbDsKCi8vCi8vIHNldHVwCi8vCmlmKCBpc3NldCgkX1JFUVVFU1RbJ29wJ10gKSApIHsKICAkb3AgPSBzdHJ0b3VwcGVyKHRyaW0oJF9SRVFVRVNUWydvcCddKSk7Cn0KaWYoIGlzc2V0KCRfUkVRVUVTVFsnYXBpa2V5J10pICkgewogICRhcGlrZXkgPSB0cmltKCRfUkVRVUVTVFsnYXBpa2V5J10pOwp9CgovLyB2YWxpZGF0aW9uIGNoZWNrCmlmKCAkYXBpa2V5ID09ICcnICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdObyBBdXRoZW50aWNhdGlvbiBJbmZvcm1hdGlvbicpOwppZiggJG9wID09ICcnICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdPcGVyYXRpb24gbm90IHNwZWNpZmllZCcpOwoKLy8gdmFsaWRhdGUgdGhlIGFwaWtleS4KJGFjY2Vzc19pbmZvID0gY2dzYV91dGlsczo6dmFsaWRhdGVfYXBpa2V5KCRhcGlrZXkpOwppZiggIWlzX29iamVjdCgkYWNjZXNzX2luZm8pICkgewogIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCBhdXRoZW50aWNhdGlvbiBpbmZvcm1hdGlvbicpOwp9Cgpzd2l0Y2goICRvcCApIHsKIGNhc2UgJ0xJU1QnOgogICAvLyBsaXN0IGFsbCBhY3Rpdml0aWVzIGFzIGEgdHJlZS4KICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgcmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0xFQURFUkJPQVJEU19SRUFEKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgJG91dHB1dCA9IGNnc2FfbGVhZGVyYm9hcmQ6OmdldF9hbGwoRkFMU0UpOwogICBicmVhazsKCiBjYXNlICdHRVQnOgogICBpZiggIWNnc2FfdXRpbHM6OmlzX2dldF9yZXF1ZXN0KCkgKSByZXR1cm5fZXJyb3IoJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fTEVBREVSQk9BUkRTX1JFQUQpICkKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICBpZiggIWlzc2V0KCRfUkVRVUVTVFsnYm9hcmQnXSkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBkYXRhJyk7CiAgICRsaWQgPSAoaW50KSRfUkVRVUVTVFsnYm9hcmQnXTsKICAgJHRtcCA9IGNnc2FfbGVhZGVyYm9hcmQ6OmxvYWRfYnlfaWQoJGxpZCxGQUxTRSk7CiAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0RhdGEgbm90IGZvdW5kJyk7CiAgICRvdXRwdXQgPSAkdG1wOwogICBicmVhazsKICAgCiBjYXNlICdCQURHRVMnOgogICBpZiggIWNnc2FfdXRpbHM6OmlzX2dldF9yZXF1ZXN0KCkgKSByZXR1cm5fZXJyb3IoJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fTEVBREVSQk9BUkRTX1JFQUQpICkKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICBpZiggIWlzc2V0KCRfUkVRVUVTVFsnYm9hcmQnXSkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBkYXRhJyk7CiAgICRsaWQgPSAoaW50KSRfUkVRVUVTVFsnYm9hcmQnXTsKICAgJHRtcCA9IGNnc2FfbGVhZGVyYm9hcmQ6OmxvYWRfYnlfaWQoJGxpZCk7CiAgIGlmKCAhaXNfb2JqZWN0KCR0bXApICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdEYXRhIG5vdCBmb3VuZCcpOwogICAkb3V0cHV0ID0gJHRtcC0+Z2V0X2JhZGdlcyhGQUxTRSk7CiAgIGJyZWFrOwogICAKIGNhc2UgJ0xFQURFUlMnOgogICBpZiggIWNnc2FfdXRpbHM6OmlzX2dldF9yZXF1ZXN0KCkgKSByZXR1cm5fZXJyb3IoJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fTEVBREVSQk9BUkRTX1JFQUQpIHx8CiAgICAgICAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX1VTRVJTX1JFQUQpICkgewogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgIH0KICAgaWYoICFpc3NldCgkX1JFUVVFU1RbJ2JvYXJkJ10pICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAkbGltaXQgPSAyNTsKICAgJG9mZnNldCA9IDA7CiAgICRsaWQgPSAoaW50KSRfUkVRVUVTVFsnYm9hcmQnXTsKICAgaWYoIGlzc2V0KCRfUkVRVUVTVFsnbiddKSApICRsaW1pdCA9IG1heCgxLChpbnQpJHBhcmFtc1snbCddKTsKICAgaWYoIGlzc2V0KCRfUkVRVUVTVFsnbyddKSApICRvZmZzZXQgPSBtYXgoMSwoaW50KSRwYXJhbXNbJ28nXSk7CiAgICRib2FyZCA9IGNnc2FfbGVhZGVyYm9hcmQ6OmxvYWRfYnlfaWQoJGxpZCk7CiAgIGlmKCAhaXNfb2JqZWN0KCRib2FyZCkgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0RhdGEgbm90IGZvdW5kJyk7CiAgICRvdXRwdXQgPSAkYm9hcmQtPmdldF9sZWFkZXJzKCRsaW1pdCwkb2Zmc2V0KTsKICAgYnJlYWs7CiAgIAogZGVmYXVsdDoKICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdVbmtub3duIGNvbW1hbmQnKTsKfQoKY2dzYV91dGlsczo6cmV0dXJuX3N1Y2Nlc3MoJG91dHB1dCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.list_activities.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokdGhlX3RlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfbGlzdF9hY3Rpdml0aWVzX3RlbXBsYXRlJyk7CmlmKCAhJHRoZV90ZW1wbGF0ZSApIHJldHVybjsKaWYoIGlzc2V0KCRwYXJhbXNbJ2xpc3RfdGVtcGxhdGUnXSkgKSB7CiAgJHRoZV90ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1snbGlzdF90ZW1wbGF0ZSddKTsKICB1bnNldCgkcGFyYW1zWydsaXN0X3RlbXBsYXRlJ10pOwp9Cgokc3RhcnQgPSAtMTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3N0YXJ0J10pICkgewogICR0bXAgPSB0cmltKCRwYXJhbXNbJ3N0YXJ0J10pOwogICRvYmogPSBjZ3NhX2FjdGl2aXR5Ojpsb2FkX2J5X25hbWUoJHRtcCk7CiAgaWYoIGlzX29iamVjdCgkb2JqKSApIHsKICAgICRzdGFydCA9ICRvYmotPmlkOwogIH0KfQoKJHRyZWUgPSBjZ3NhX2FjdGl2aXR5Ojpsb2FkX2FsbF9hc190cmVlKCRzdGFydCk7CmRlYnVnX2Rpc3BsYXkoJHRyZWUpOwokc21hcnR5LT5hc3NpZ24oJ3RyZWUnLCR0cmVlKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnbGlzdF9hY3Rpdml0aWVzJy4kdGhlX3RlbXBsYXRlKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.list_checkins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLyBsaXN0IGNoZWNraW5zIGJ5IGxvY2F0aW9uLi4uCmlmKCAhaXNzZXQoJHBhcmFtc1snbG9jYXRpb25pZCddKSApCiAgewogICAgcmV0dXJuOwogIH0KJHFwYXJtcyA9IGFycmF5KCk7CiRxcGFybXNbJ2xvY2F0aW9uJ10gPSAoaW50KSRwYXJhbXNbJ2xvY2F0aW9uJ107CiRxcGFybXNbJ2xpbWl0J10gPSAyNTsKJHFwYXJtc1snb2Zmc2V0J10gPSAwOwppZiggaXNzZXQoJHBhcmFtc1sndGltZWxpbWl0J10pICkKICB7CiAgICAkcXBhcm1zWyd0aW1lbGltaXQnXSA9IChpbnQpJHBhcmFtc1sndGltZWxpbWl0J107CiAgfQppZiggaXNzZXQoJHBhcmFtc1snbGltaXQnXSkgKQogIHsKICAgICRxcGFybXNbJ2xpbWl0J10gPSAoaW50KSRwYXJhbXNbJ2xpbWl0J107CiAgfQppZiggaXNzZXQoJHBhcmFtc1snb2Zmc2V0J10pICkKICB7CiAgICAkcXBhcm1zWydvZmZzZXQnXSA9IChpbnQpJHBhcmFtc1snb2Zmc2V0J107CiAgfQppZiggaXNzZXQoJHBhcmFtc1snc29ydGJ5J10pICkKICB7CiAgICAkcXBhcm1zWydzb3J0YnknXSA9IHRyaW0oJHBhcmFtc1snc29ydGJ5J10pOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnRvcmRlciddKSApCiAgewogICAgJHFwYXJtc1snc29ydG9yZGVyJ10gPSB0cmltKCRwYXJhbXNbJ3NvcnRvcmRlciddKTsKICB9Cgp0cnkKewogICRxdWVyeSA9IG5ldyBjZ3NhX2NoZWNraW5fcXVlcnkoJHFwYXJtcyk7CiAgJHJzID0gJHF1ZXJ5LT5leGVjdXRlKCk7CiAgaWYoICRycyApCiAgICB7CiAgICAgICRvdXRwdXQgPSBhcnJheSgpOwogICAgICB3aGlsZSggISRycy0+RU9GICkKCXsKCSAgJG91dHB1dFtdID0gJHJzLT5maWVsZHM7CgkgICRycy0+TW92ZU5leHQoKTsKCX0KCiAgICAgIGlmKCBjb3VudCgkb3V0cHV0KSApCgl7CgkgICRzbWFydHktPmFzc2lnbigncmVzdWx0cycsJG91dHB1dCk7Cgl9CiAgICB9Cn0KY2F0Y2goIEV4Y2VwdGlvbiYgJGUgKQp7Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.locations.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYXBpa2V5ID0gJyc7CiRvcCA9ICcnOwokb3V0cHV0ID0gbnVsbDsKCi8vCi8vIHNldHVwCi8vCmlmKCBpc3NldCgkX1JFUVVFU1RbJ29wJ10gKSApIHsKICAkb3AgPSBzdHJ0b3VwcGVyKHRyaW0oJF9SRVFVRVNUWydvcCddKSk7CiB9CmlmKCBpc3NldCgkX1JFUVVFU1RbJ2FwaWtleSddKSApIHsKICAkYXBpa2V5ID0gdHJpbSgkX1JFUVVFU1RbJ2FwaWtleSddKTsKIH0KCi8vIGRlcGVuZGVuY3kgY2hlY2suCiRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwppZiggISRjZG1vZCApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignQ29tcGFueURpcmVjdG9yeSBtb2R1bGUgbm90IGZvdW5kJyk7CgovLyB2YWxpZGF0aW9uIGNoZWNrCmlmKCAkYXBpa2V5ID09ICcnICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdObyBBdXRoZW50aWNhdGlvbiBJbmZvcm1hdGlvbicpOwppZiggJG9wID09ICcnICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdPcGVyYXRpb24gbm90IHNwZWNpZmllZCcpOwoKLy8gdmFsaWRhdGUgdGhlIGFwaWtleS4KJGFjY2Vzc19pbmZvID0gY2dzYV91dGlsczo6dmFsaWRhdGVfYXBpa2V5KCRhcGlrZXkpOwppZiggIWlzX29iamVjdCgkYWNjZXNzX2luZm8pICkgewogIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW52YWxpZCBhdXRoZW50aWNhdGlvbiBpbmZvcm1hdGlvbicpOwogfQoKJGRpc2FsbG93ZWRfbG9jYXRpb25fZmllbGRzID0gYXJyYXkoJ3VybCcsJ3BpY3R1cmVfbG9jYXRpb24nLCdsb2dvX2xvY2F0aW9uJywnc3RhdHVzJywnb3duZXJfaWQnKTsKCi8vIAovLyBoYW5kbGUgdGhlIHJlcXVlc3QKLy8Kc3dpdGNoKCAkb3AgKSB7CiBjYXNlICdISUVSQVJDSFknOgogICB0cnkgewogICAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0xPQ0FUSU9OU19SRUFEKSApCiAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgICAkb3V0cHV0ID0gY2RfdXRpbHM6OmdldF9oaWVyYXJjaHkoVFJVRSk7CiAgIH0KICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnTE9DQVRJT04vSElFUkFSQ0hZOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgfQogICBicmVhazsKCiBjYXNlICdDQVRFR09SSUVTJzoKICAgdHJ5IHsKICAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9MT0NBVElPTlNfUkVBRCkgKQogICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICAgJG91dHB1dCA9ICRjZG1vZC0+R2V0Q2F0ZWdvcmllcygpOwogICB9CiAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0xPQ0FUSU9OL0NBVEVHT1JJRVM6ICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwogICB9CiAgIGJyZWFrOwogICAKIGNhc2UgJ0xJU1QnOgogICAvLyBhIGxpc3Qgb2YgY29tcGFuaWVzLgogICB0cnkgewogICAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0xPQ0FUSU9OU19SRUFEKSApCiAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgICAKICAgICAkZmlsdGVyID0gbnVsbDsKICAgICBpZiggaXNzZXQoJF9SRVFVRVNUWydmaWx0ZXInXSkgKSB7CiAgICAgICAkcGFyYW1zID0ganNvbl9kZWNvZGUoJF9SRVFVRVNUWydmaWx0ZXInXSxUUlVFKTsKICAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1sncGFnZWxpbWl0J10pICkgJHBhcmFtc1sncGFnZWxpbWl0J10gPSA1MDsKCiAgICAgICAkZmlsdGVyID0gbmV3IGNkX2NvbXBhbnlfZmlsdGVyKGpzb25fZGVjb2RlKCRfUkVRVUVTVFsnZmlsdGVyJ10sVFJVRSkpOwogICAgIH0KICAgICBlbHNlIHsKICAgICAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWydwYWdlbGltaXQnXSkgKSAkX1JFUVVFU1RbJ3BhZ2VsaW1pdCddID0gNTA7CiAgICAgICAkZmlsdGVyID0gbmV3IGNkX2NvbXBhbnlfZmlsdGVyKCRfUkVRVUVTVCk7CiAgICAgfQogICAgIGNkX2NvbXBhbnlfcXVlcnk6OnNldF9yZXN1bHRfbW9kZShjZF9jb21wYW55X3F1ZXJ5OjpSRVNVTFRTX0FSUkFZKTsKICAgICAkb2JqID0gbmV3IGNkX2NvbXBhbnlfcXVlcnkoJGZpbHRlcik7CiAgICAgCiAgICAgJG91dHB1dCA9IGFycmF5KCk7CiAgICAgJHJlcyA9IGFycmF5X3ZhbHVlcygkb2JqLT5nZXRfcmVzdWx0cygpKTsKICAgICAkb3V0cHV0WydudW1fbWF0Y2hlcyddID0gJG9iai0+Z2V0X3RvdGFsX21hdGNoZXMoKTsKICAgICAkb3V0cHV0Wydsb2NhdGlvbnMnXSA9ICRyZXM7CiAgIH0KICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnTE9DQVRJT04vTElTVDogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgIH0KICAgYnJlYWs7CgogY2FzZSAnR0VUJzoKICAgdHJ5IHsKICAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9MT0NBVElPTlNfUkVBRCkgKQogICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CgogICAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWydsb2NhdGlvbiddKSApCiAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAgIAogICAgIGNkX2NvbXBhbnlfcXVlcnk6OnNldF9yZXN1bHRfbW9kZShjZF9jb21wYW55X3F1ZXJ5OjpSRVNVTFRTX0FSUkFZKTsKICAgICAkb3V0cHV0ID0gY2RfdXRpbHM6OmdldF9jb21wYW55KCRfUkVRVUVTVFsnbG9jYXRpb24nXSk7CiAgIH0KICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnTE9DQVRJT04vR0VUOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgfQogICBicmVhazsKCiBjYXNlICdBREQnOgogICB0cnkgewogICAgIC8vIGNoZWNrIHBlcm1pc3Npb25zIGFuZCBzZXR0aW5ncy4KICAgICBpZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCduZXdsb2NhdGlvbl9hbGxvdycsMSkgKSAKICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FkZGluZyBsb2NhdGlvbnMgaXMgbm90IHBlcm1pdHRlZCBhdCB0aGlzIHRpbWUnKTsKICAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9MT0NBVElPTlNfUkVBRCkgKQogICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApIAogICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgICRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICBpZiggISRmZXUgKQogICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW50ZXJuYWwgRXJyb3InKTsKCiAgICAgaWYoICFpc3NldCgkX1BPU1RbJ2NvbXBhbnlfbmFtZSddKSB8fCAhaXNzZXQoJF9QT1NUWydvd25lciddKSApCiAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnN1ZmZpY2llbnQgZGF0YScpOwoKICAgICAkdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICRvd25lciA9IChpbnQpJF9QT1NUWydvd25lciddOwogICAgIGlmKCAkdWlkICE9ICRvd25lciApIAogICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW52YWxpZCBvd25lciBnb3QgJG93bmVyLCBidXQgZXhwZWN0ZWQgJHVpZCIpOwoKICAgICAvLyBkbyByYXRlIGNoZWNraW5nLgogICAgICRudW1saW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX251bWxpbWl0JywwKTsKICAgICAkdGltZWxpbWl0ID0gKGludCkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbmV3bG9jYXRpb25fbnVtbGltaXQnLDApOwogICAgIGlmKCAkbnVtbGltaXQgPiAwICYmICR0aW1lbGltaXQgPiAwICkgewogICAgICAgLy8gYnkgdGltZS4KICAgICAgICRmaWx0ZXIgPSBuZXcgY2RfY29tcGFueV9maWx0ZXIoKTsKICAgICAgICRmaWx0ZXJbJ21vZGlmaWVkX3NpbmNlJ10gPSB0aW1lKCktJHRpbWVsaW1pdCo2MDsKICAgICAgICRmaWx0ZXJbJ293bmVyX2lkJ10gPSAkb3duZXI7CiAgICAgICAkZmlsdGVyWydwYWdlbGltaXQnXSA9ICRudW1saW1pdCsxOyAvLyB5ZXAsIHRyeSB0byBnZXQgb25lIG1vcmUgdGhhbiBvdXIgbGltaXQuCiAgICAgICAkcXVlcnkgPSBuZXcgY2RfY29tcGFueV9xdWVyeSgkZmlsdGVyKTsKICAgICAgIGlmKCAkcXVlcnktPmdldF9yZXN1bHRfY291bnQoKSA+ICRudW1saW1pdCApIHsKCSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3UgaGF2ZSBjcmVhdGVkIG9yIGVkaXRlZCB0b28gbWFueSBsb2NhdGlvbnMgbGF0ZWx5LiAgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcicpOwogICAgICAgfQogICAgIH0KCiAgICAgLy8gYnVpbGQgdGhlIHJlY29yZC4KICAgICB1bnNldCgkX1BPU1RbJ293bmVyJ10pOwogICAgIHVuc2V0KCRfUE9TVFsnYXBpa2V5J10pOwogICAgIHVuc2V0KCRfUE9TVFsnb3AnXSk7CiAgICAgJGNvbXBhbnkgPSBuZXcgY2RfY29tcGFueTsKICAgICBmb3JlYWNoKCAkX1BPU1QgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICBpZiggaW5fYXJyYXkoJGtleSwkZGlzYWxsb3dlZF9sb2NhdGlvbl9maWVsZHMpICkgewoJIHRocm93IG5ldyBFeGNlcHRpb24oIkNhbm5vdCBzZXQgZmllbGQgJGtleSB3aGVuIGFkZGluZyBhIGxvY2F0aW9uIik7CiAgICAgICB9CgkgIAogICAgICAgaWYoIGNkX2NvbXBhbnk6OmlzX3ZhbGlkX2tleSgka2V5KSApIHsKCSAkY29tcGFueS0+JGtleSA9ICR2YWx1ZTsKICAgICAgIH0KICAgICAgIGVsc2UgaWYoIHN0YXJ0c3dpdGgoJGtleSwnRjonKSApIHsKCSAka2V5ID0gc3Vic3RyKCRrZXksMik7CgkgaWYoICFjZF9jb21wYW55Ojppc192YWxpZF9maWVsZCgka2V5KSApCgkgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJGaWVsZCAka2V5IGlzIGludmFsaWQiKTsKCSAkY29tcGFueS0+c2V0X2ZpZWxkKCRrZXksJHZhbHVlKTsKICAgICAgIH0KICAgICAgIGVsc2UgaWYoIHN0YXJ0c3dpdGgoJGtleSwnQzonKSApIHsKCSAka2V5ID0gc3Vic3RyKCRrZXksMik7CgkgaWYoICFjZF9jb21wYW55Ojppc192YWxpZF9jYXRlZ29yeSgka2V5KSApCgkgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJDYXRlZ29yeSAka2V5IGlzIGludmFsaWQiKTsKCSAkY29tcGFueS0+c2V0X2NhdGVnb3J5KCRrZXksY2dlX3V0aWxzOjp0b19ib29sKCR2YWx1ZSkpOwogICAgICAgfQogICAgICAgZWxzZSB7CgkgdGhyb3cgbmV3IEV4Y2VwdGlvbigiJGtleSBpcyBhbiBpbnZhbGlkIGxvY2F0aW9uIGZpZWxkIik7CiAgICAgICB9CiAgICAgfQogICAgICRjb21wYW55LT5vd25lcl9pZCA9ICRvd25lcjsKICAgICAkY29tcGFueS0+c3RhdHVzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX3N0YXR1cycsJ2RyYWZ0Jyk7CiAgICAgJGNvbXBhbnktPnNhdmUoKTsKCiAgICAgLy8gaXQgd29ya2VkICh0aGVvcmV0aWNhbGx5KQogICAgICR0aGlzLT5BdWRpdCgkY29tcGFueS0+aWQsJHRoaXMtPkdldE5hbWUoKSwnTE9DQVRJT04vQUREOiBieSAnLiR1aWQpOwogICAgICRvdXRwdXQgPSAkY29tcGFueS0+aWQ7CiAgIH0KICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAkdGhpcy0+QXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnTE9DQVRJT04vQUREOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgfQogICBicmVhazsKCiAgY2FzZSAnRURJVCc6CiAgICB0cnkgewogICAgICBpZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCduZXdsb2NhdGlvbl9hbGxvd2VkaXQnLDEpICkgCgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFZGl0aW5nIGxvY2F0aW9ucyBpcyBub3QgcGVybWl0dGVkIGF0IHRoaXMgdGltZScpOwogICAgICAvLyBjaGVjayBwZXJtaXNzaW9uCiAgICAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0xPQ0FUSU9OU19XUklURSkgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICAgIGlmKCAhY2dzYV91dGlsczo6aXNfcG9zdF9yZXF1ZXN0KCkgKSAKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICBpZiggISRmZXUgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW50ZXJuYWwgRXJyb3InKTsKCiAgICAgIGlmKCAhaXNzZXQoJF9QT1NUWydsb2NhdGlvbiddKSB8fCAhaXNzZXQoJF9QT1NUWydvd25lciddKSApCgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnN1ZmZpY2llbnQgZGF0YScpOwoKICAgICAgJHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgICAgJG93bmVyID0gKGludCkkX1BPU1RbJ293bmVyJ107CiAgICAgIGlmKCAkdWlkICE9ICRvd25lciApIAoJdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW52YWxpZCBvd25lciBnb3QgJG93bmVyLCBidXQgZXhwZWN0ZWQgJHVpZCIpOwoKICAgICAgLy8gZ2V0IHRoZSByZWNvcmQKICAgICAgJGNvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKChpbnQpJF9QT1NUWydsb2NhdGlvbiddKTsKCiAgICAgIC8vIGNoZWNrIG93bmVyc2hpcAogICAgICBpZiggJGNvbXBhbnktPm93bmVyX2lkICE9ICR1aWQgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBlZGl0IGEgbG9jYXRpb24gd2l0aCBhIGRpZmZlcmVudCBvd25lcicpOwoKICAgICAgLy8gY2hlY2sgc3RhdHVzIChkaXNhYmxlZCBtZWFucyB5b3UgY2FuJ3QgZWRpdCBpdCkuCiAgICAgIGlmKCAkY29tcGFueS0+c3RhdHVzID09ICdkaXNhYmxlZCcgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBlZGl0IGEgZGlzYWJsZWQgbG9jYXRpb24nKTsKCiAgICAgIC8vIGRvIHJhdGUgY2hlY2tpbmcuCiAgICAgICRudW1saW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX251bWxpbWl0JywwKTsKICAgICAgJHRpbWVsaW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX251bWxpbWl0JywwKTsKICAgICAgaWYoICRudW1saW1pdCA+IDAgJiYgJHRpbWVsaW1pdCA+IDAgKSB7CgkvLyBieSB0aW1lLgoJJGZpbHRlciA9IG5ldyBjZF9jb21wYW55X2ZpbHRlcigpOwoJJGZpbHRlclsnbW9kaWZpZWRfc2luY2UnXSA9IHRpbWUoKS0kdGltZWxpbWl0KjYwOwoJJGZpbHRlclsnb3duZXJfaWQnXSA9ICRvd25lcjsKCSRmaWx0ZXJbJ3BhZ2VsaW1pdCddID0gJG51bWxpbWl0KzE7IC8vIHllcCwgdHJ5IHRvIGdldCBvbmUgbW9yZSB0aGFuIG91ciBsaW1pdC4KCSRxdWVyeSA9IG5ldyBjZF9jb21wYW55X3F1ZXJ5KCRmaWx0ZXIpOwoJaWYoICRxdWVyeS0+Z2V0X3Jlc3VsdF9jb3VudCgpID4gJG51bWxpbWl0ICkgewoJICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3UgaGF2ZSBjcmVhdGVkIG9yIGVkaXRlZCB0b28gbWFueSBsb2NhdGlvbnMgbGF0ZWx5LiAgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcicpOwoJfQogICAgICB9CgogICAgICAvLyBlZGl0IHRoZSByZWNvcmQKICAgICAgJG1vZGlmaWVkID0gRkFMU0U7CiAgICAgIGZvcmVhY2goICRfUE9TVCBhcyAka2V5ID0+ICR2YWx1ZSApIHsKCWlmKCBpbl9hcnJheSgka2V5LGFycmF5KCdvcCcsJ2FwaWtleScsJ293bmVyJywnbG9jYXRpb24nKSkgKSBjb250aW51ZTsKCglpZiggY2RfY29tcGFueTo6aXNfdmFsaWRfa2V5KCRrZXkpICkgewoJICAkY29tcGFueS0+JGtleSA9ICR2YWx1ZTsKCSAgJG1vZGlmaWVkID0gVFJVRTsKCX0KCWVsc2UgaWYoIHN0YXJ0c3dpdGgoJGtleSwnRjonKSApIHsKCSAgJGtleSA9IHN1YnN0cigka2V5LDIpOwoJICBpZiggY2RfY29tcGFueTo6aXNfdmFsaWRfZmllbGQoJGtleSkgKSB7CgkgICAgJGZpZWxkID0gJHRoaXMtPmdldF9maWVsZCgka2V5KTsKCSAgICBpZiggaXNfb2JqZWN0KCRmaWVsZCkgKSB7CgkgICAgICBpZiggJGZpZWxkLT50eXBlICE9ICdhbGJ1bScgKSB7CgkJJGNvbXBhbnktPnNldF9maWVsZCgka2V5LCR2YWx1ZSk7CgkJJG1vZGlmaWVkID0gVFJVRTsKCSAgICAgIH0KCSAgICB9CgkgIH0KCX0KCWVsc2UgaWYoIHN0YXJ0c3dpdGgoJGtleSwnQzonKSApIHsKCSAgaWYoIGNkX2NvbXBhbnk6OmlzX3ZhbGlkX2NhdGVnb3J5KCRrZXkpICkgewoJICAgICRjb21wYW55LT5zZXRfY2F0ZWdvcnkoJGtleSwkdmFsdWUpOwoJICAgICRtb2RpZmllZCA9IFRSVUU7CgkgIH0KCX0KCWVsc2UgewoJICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRrZXkuJyBpcyBhbiBpbnZhbGlkIGNvbXBhbnkgZmllbGQnKTsKCX0KICAgICAgfQogICAgICAkY29tcGFueS0+dXJsID0gJyc7CgogICAgICBpZiggJG1vZGlmaWVkICkgewoJLy8gc2F2ZSB0aGUgcmVjb3JkCgkkY29tcGFueS0+c2F2ZSgpOwoKCS8vIGF1ZGl0IHRoZSB0aGluZwoJJHRoaXMtPkF1ZGl0KCRjb3BhbnktPmlkLCR0aGlzLT5HZXROYW1lKCksJ0xPQ0FUSU9OL0VESVQ6IGJ5ICcuJHVpZCk7CiAgICAgIH0KICAgIH0KICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICR0aGlzLT5BdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdMT0NBVElPTi9FRElUOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICB9CiAgICBicmVhazsKCiAgY2FzZSAnUEhPVE9VUExPQUQnOgogICAgdHJ5IHsKICAgICAgaWYoICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbmV3bG9jYXRpb25fYWxsb3dlZGl0JywxKSApCgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdFZGl0aW5nIGxvY2F0aW9ucyBpcyBub3QgcGVybWl0dGVkIGF0IHRoaXMgdGltZScpOwogICAgICAvLyBjaGVjayBwZXJtaXNzaW9uCiAgICAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX0xPQ0FUSU9OU19XUklURSkgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICAgIGlmKCAhY2dzYV91dGlsczo6aXNfcG9zdF9yZXF1ZXN0KCkgKSAKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgICAgaWYoICFpc3NldCgkX0ZJTEVTKSB8fCAhaXNfYXJyYXkoJF9GSUxFUykgfHwgIWNvdW50KCRfRklMRVMpICkKCXRocm93IG5ldyBFeGNlcHRpb24oJ05vIGZpbGVzIGF0dGFjaGVkIHRvIHJlcXVlc3QnKTsKICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICBpZiggISRmZXUgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW50ZXJuYWwgRXJyb3InKTsKCiAgICAgIGlmKCAhaXNzZXQoJF9QT1NUWydsb2NhdGlvbiddKSB8fCAhaXNzZXQoJF9QT1NUWydvd25lciddKSApCgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnN1ZmZpY2llbnQgZGF0YScpOwoKICAgICAgJHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgICAgJG93bmVyID0gKGludCkkX1BPU1RbJ293bmVyJ107CiAgICAgIGlmKCAkdWlkICE9ICRvd25lciApIAoJdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW52YWxpZCBvd25lciBnb3QgJG93bmVyLCBidXQgZXhwZWN0ZWQgJHVpZCIpOwoKICAgICAgLy8gZ2V0IHRoZSByZWNvcmQKICAgICAgJGNvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKChpbnQpJF9QT1NUWydsb2NhdGlvbiddKTsKCiAgICAgIC8vIGNoZWNrIG93bmVyc2hpcAogICAgICBpZiggJGNvbXBhbnktPm93bmVyX2lkICE9ICR1aWQgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBlZGl0IGEgbG9jYXRpb24gd2l0aCBhIGRpZmZlcmVudCBvd25lcicpOwoKICAgICAgLy8gY2hlY2sgc3RhdHVzIChkaXNhYmxlZCBtZWFucyB5b3UgY2FuJ3QgZWRpdCBpdCkuCiAgICAgIGlmKCAkY29tcGFueS0+c3RhdHVzID09ICdkaXNhYmxlZCcgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBlZGl0IGEgZGlzYWJsZWQgbG9jYXRpb24nKTsKCiAgICAgIC8vIHNlZSBpZiB3ZSBoYXZlIGFuIGFsYnVtIGZpZWxkLi4uCiAgICAgICR0bXAgPSAkY29tcGFueS0+bGlzdF9maWVsZHMoKTsKICAgICAgJGZpZWxkcyA9ICRjb21wYW55LT5nZXRfZmllbGRzKCk7CiAgICAgICRmZGlkID0gJyc7CiAgICAgIGlmKCBpc19hcnJheSgkZmllbGRzKSAmJiBjb3VudCgkZmllbGRzKSApIHsKCWZvcmVhY2goICRmaWVsZHMgYXMgJG9uZSApIHsKCSAgaWYoICRvbmUtPnR5cGUgPT0gJ2FsYnVtJyApIHsKCSAgICAkZmRpZCA9ICRvbmUtPmlkOwoJICAgIGJyZWFrOwoJICB9Cgl9CiAgICAgIH0KICAgICAgaWYoICEkZmRpZCApIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ05vIGFsYnVtIGluZm9ybWF0aW9uIGZvdW5kJyk7CiAgICAgIH0KCiAgICAgIC8vIGRvIHJhdGUgY2hlY2tpbmcuCiAgICAgICRudW1saW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX251bWxpbWl0JywwKTsKICAgICAgJHRpbWVsaW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX251bWxpbWl0JywwKTsKICAgICAgaWYoICRudW1saW1pdCA+IDAgJiYgJHRpbWVsaW1pdCA+IDAgKSB7CgkvLyBieSB0aW1lLgoJJGZpbHRlciA9IG5ldyBjZF9jb21wYW55X2ZpbHRlcigpOwoJJGZpbHRlclsnbW9kaWZpZWRfc2luY2UnXSA9IHRpbWUoKS0kdGltZWxpbWl0KjYwOwoJJGZpbHRlclsnb3duZXJfaWQnXSA9ICRvd25lcjsKCSRmaWx0ZXJbJ3BhZ2VsaW1pdCddID0gJG51bWxpbWl0KzE7IC8vIHllcCwgdHJ5IHRvIGdldCBvbmUgbW9yZSB0aGFuIG91ciBsaW1pdC4KCSRxdWVyeSA9IG5ldyBjZF9jb21wYW55X3F1ZXJ5KCRmaWx0ZXIpOwoJaWYoICRxdWVyeS0+Z2V0X3Jlc3VsdF9jb3VudCgpID4gJG51bWxpbWl0ICkgewoJICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3UgaGF2ZSBjcmVhdGVkIG9yIGVkaXRlZCB0b28gbWFueSBsb2NhdGlvbnMgbGF0ZWx5LiAgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcicpOwoJfQogICAgICB9CgogICAgICAvLyB3ZSdyZSByZWFkeSB0byBoYW5kbGUgdGhlIHVwbG9hZC4uLgogICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICRvcHRpb25zID0gYXJyYXkoKTsKICAgICAgJG9wdGlvbnNbJ3BhcmFtX25hbWUnXSA9ICdmaWxlJzsKICAgICAgJG9wdGlvbnNbJ2NvbXBpZCddID0gJGNvbXBhbnktPmlkOwogICAgICAkb3B0aW9uc1snY29tcGFueSddID0gJGNvbXBhbnk7CiAgICAgICRvcHRpb25zWydmZGlkJ10gPSAkZmRpZDsgLy8gdG9kbzogZ2V0IHRoaXMKICAgICAgJG9wdGlvbnNbJ3VwbG9hZF9kaXInXSA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ2NvbXBhbnlkaXJlY3RvcnknLCdpZCcuJGNvbXBhbnktPmlkLCdhbGJ1bV8nLiRmZGlkKS4nLyc7CiAgICAgICRvcHRpb25zWyd1cGxvYWRfdXJsJ10gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLiIvY29tcGFueWRpcmVjdG9yeS9pZCIuJGNvbXBhbnktPmlkLiIvYWxidW1fJGZkaWQvIjsKICAgICAgJHVwbG9hZF9oYW5kbGVyID0gbmV3IENvbXBhbnlEaXJlY3RvcnlKUXVlcnlVcGxvYWRIYW5kbGVyKCRvcHRpb25zKTsKICAgICAgJHVwbG9hZF9oYW5kbGVyLT5wb3N0KCk7IC8vIGNvbXBhbnkgZ2V0cyBzYXZlZCBpbiB0aGUgaGFuZGxlci4KICAgICAgZXhpdDsKICAgIH0KICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICR0aGlzLT5BdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdMT0NBVElPTi9QSE9UT1VQTE9BRDogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgfQogICAgYnJlYWs7CgogIGNhc2UgJ1BIT1RPREVMRVRFJzoKICAgIHRyeSB7CiAgICAgIGlmKCAhJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX2FsbG93ZWRpdCcsMSkgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignRWRpdGluZyBsb2NhdGlvbnMgaXMgbm90IHBlcm1pdHRlZCBhdCB0aGlzIHRpbWUnKTsKICAgICAgLy8gY2hlY2sgcGVybWlzc2lvbgogICAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9MT0NBVElPTlNfV1JJVEUpICkKCXRocm93IG5ldyBFeGNlcHRpb24oJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAgICBpZiggIWNnc2FfdXRpbHM6OmlzX3Bvc3RfcmVxdWVzdCgpICkgCgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgICAgICRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgaWYoICEkZmV1ICkKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludGVybmFsIEVycm9yJyk7CiAgICAgIGlmKCAhaXNzZXQoJF9QT1NUWydsb2NhdGlvbiddKSB8fCAhaXNzZXQoJF9QT1NUWydvd25lciddKSB8fCAhaXNzZXQoJF9QT1NUWydmaWxlJ10pICkKCXRocm93IG5ldyBFeGNlcHRpb24oJ0luc3VmZmljaWVudCBkYXRhJyk7CgogICAgICAkdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICAkb3duZXIgPSAoaW50KSRfUE9TVFsnb3duZXInXTsKICAgICAgaWYoICR1aWQgIT0gJG93bmVyICkgCgl0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnZhbGlkIG93bmVyIGdvdCAkb3duZXIsIGJ1dCBleHBlY3RlZCAkdWlkIik7CiAgICAgICRmaWxlcyA9ICRfUE9TVFsnZmlsZSddOwoKICAgICAgLy8gZ2V0IHRoZSByZWNvcmQKICAgICAgJGNvbXBhbnkgPSBjZF9jb21wYW55Ojpsb2FkX2J5X2lkKChpbnQpJF9QT1NUWydsb2NhdGlvbiddKTsKCiAgICAgIC8vIGNoZWNrIG93bmVyc2hpcAogICAgICBpZiggJGNvbXBhbnktPm93bmVyX2lkICE9ICR1aWQgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBlZGl0IGEgbG9jYXRpb24gd2l0aCBhIGRpZmZlcmVudCBvd25lcicpOwoKICAgICAgLy8gY2hlY2sgc3RhdHVzIChkaXNhYmxlZCBtZWFucyB5b3UgY2FuJ3QgZWRpdCBpdCkuCiAgICAgIGlmKCAkY29tcGFueS0+c3RhdHVzID09ICdkaXNhYmxlZCcgKQoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBlZGl0IGEgZGlzYWJsZWQgbG9jYXRpb24nKTsKCiAgICAgIC8vIHNlZSBpZiB3ZSBoYXZlIGFuIGFsYnVtIGZpZWxkLi4uCiAgICAgICR0bXAgPSAkY29tcGFueS0+bGlzdF9maWVsZHMoKTsKICAgICAgJGZpZWxkcyA9ICRjb21wYW55LT5nZXRfZmllbGRzKCk7CiAgICAgICRmZGlkID0gJyc7CiAgICAgIGlmKCBpc19hcnJheSgkZmllbGRzKSAmJiBjb3VudCgkZmllbGRzKSApIHsKCWZvcmVhY2goICRmaWVsZHMgYXMgJG9uZSApIHsKCSAgaWYoICRvbmUtPnR5cGUgPT0gJ2FsYnVtJyApIHsKCSAgICAkZmRpZCA9ICRvbmUtPmlkOwoJICAgIGJyZWFrOwoJICB9Cgl9CiAgICAgIH0KICAgICAgaWYoICEkZmRpZCApIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ05vIGFsYnVtIGluZm9ybWF0aW9uIGZvdW5kJyk7CiAgICAgIH0KCiAgICAgICRmbmQgPSAwOwogICAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJGZpbGVuYW1lICkgewoJJGZpbGVuYW1lID0gYmFzZW5hbWUoJGZpbGVuYW1lKTsKCWlmKCAkY29tcGFueS0+ZGVsZXRlX2FsYnVtX2ZpbGUoJGZkaWQsJGZpbGVuYW1lKSApIHsKCSAgJGZuZCsrOwoJfQogICAgICB9CgogICAgICBpZiggISRmbmQgKSB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCJQcm9ibGVtIGRlbGV0aW5nICRmaWxlbmFtZSBmb3IgZmllbGQgJGZkaWQiKTsKICAgICAgfQoKICAgICAgLy9kb25lLgogICAgICAkY29tcGFueS0+c2F2ZSgpOwogICAgfQogICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgJHRoaXMtPkF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0xPQ0FUSU9OL1BIT1RPVVBMT0FEOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICB9CiAgICBicmVhazsKCiAgZGVmYXVsdDoKICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignVW5rbm93biBjb21tYW5kJyk7CiAgfQoKY2dzYV91dGlsczo6cmV0dXJuX3N1Y2Nlc3MoJG91dHB1dCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.request.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokcmVzY29kZSA9IDIwMDsKJHJlc3N0YXR1cyA9ICdPSyc7CiRyZXF1ZXN0ID0gJyoqKiogVU5LTk9XTiAqKioqJzsKJG9wcyA9IGFycmF5KCk7CgovLwovLyBzZXR1cAovLwppZiggaXNzZXQoJHBhcmFtc1sncmVxJ10gKSApCiAgewogICAgJHJlcXVlc3QgPSBzdHJ0b2xvd2VyKCRwYXJhbXNbJ3JlcSddKTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydvcHMnXSkgKQogIHsKICAgICRvcHMgPSBleHBsb2RlKCcvJywkcGFyYW1zWydvcHMnXSk7CiAgfQoKLy8KLy8gYXV0aGVudGljYXRlIHRoZSByZXF1ZXN0LgovLwoKLy8gCi8vIGhhbmRsZSB0aGUgcmVxdWVzdAovLwokcmVxdWVzdCA9IHN0cnRvbG93ZXIoJHBhcmFtc1sncmVxJ10pOwpzd2l0Y2goICRyZXF1ZXN0ICkKICB7CiAgY2FzZSAndXNlcic6CiAgICBicmVhazsKICBjYXNlICdmcmllbmQnOgogICAgYnJlYWs7CiAgY2FzZSAnbG9jYXRpb24nOgogICAgYnJlYWs7CiAgY2FzZSAnYWN0aXZpdHknOgogICAgYnJlYWs7CiAgfQojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.social.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYXBpa2V5ID0gJyc7CiRvcCA9ICcnOwokb3V0cHV0ID0gbnVsbDsKCi8vCi8vIHNldHVwCi8vCmlmKCBpc3NldCgkX1JFUVVFU1RbJ29wJ10gKSApIHsKICAkb3AgPSBzdHJ0b3VwcGVyKHRyaW0oJF9SRVFVRVNUWydvcCddKSk7Cn0KaWYoIGlzc2V0KCRfUkVRVUVTVFsnYXBpa2V5J10pICkgewogICRhcGlrZXkgPSB0cmltKCRfUkVRVUVTVFsnYXBpa2V5J10pOwp9CgovLyBkZXBlbmRlbmN5IGNoZWNrLgokY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKaWYoICEkY2Rtb2QgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0NvbXBhbnlEaXJlY3RvcnkgbW9kdWxlIG5vdCBmb3VuZCcpOwoKLy8gdmFsaWRhdGlvbiBjaGVjawppZiggJGFwaWtleSA9PSAnJyApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignTm8gQXV0aGVudGljYXRpb24gSW5mb3JtYXRpb24nKTsKaWYoICRvcCA9PSAnJyApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignT3BlcmF0aW9uIG5vdCBzcGVjaWZpZWQnKTsKCi8vIHZhbGlkYXRlIHRoZSBhcGlrZXkuCiRhY2Nlc3NfaW5mbyA9IGNnc2FfdXRpbHM6OnZhbGlkYXRlX2FwaWtleSgkYXBpa2V5KTsKaWYoICFpc19vYmplY3QoJGFjY2Vzc19pbmZvKSApIHsKICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludmFsaWQgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24nKTsKfQoKLy8KLy8gaGFuZGxlIHRoZSByZXF1ZXN0Ci8vCnN3aXRjaCggJG9wICkgewogY2FzZSAnTElTVCc6IC8vIGxpc3Qgc29jaWFsIG5ldHdvcmtzIHdlIGtub3cgYWJvdXQKICAgdHJ5IHsKICAgICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9TT0NJQUxfUkVBRCkgKQogICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgICRvdXRwdXQgPSBjZ3NhX3NvY2lhbDo6Z2V0X25ldHdvcmtfbGlzdCgpOwogICB9CiAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCRlLT5nZXRNZXNzYWdlKCkpOwogICB9CiAgIGJyZWFrOwoKIGNhc2UgJ0dFVEtFWSc6IC8vIGdldCB1c2VyIGNyZWRlbnRpYWxzCiAgIHRyeSB7CiAgICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fU09DSUFMX1JFQUQpICkKICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICAgIC8vIHRvZG86IGNoZWNrIGZvciBIVFRQUwogICAgIGlmKCAhY2dzYV91dGlsczo6aXNfZ2V0X3JlcXVlc3QoKSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0ludmFsaWQgcmVxdWVzdCBtZXRob2QnKTsKICAgICBpZiggIWlzc2V0KCRfUkVRVUVTVFsndWlkJ10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ3YnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsnbmV0d29yayddKSApCiAgICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBkYXRhJyk7CiAgICAgJHVpZCA9IHRyaW0oJF9SRVFVRVNUWyd1aWQnXSk7CiAgICAgJHYgPSB0cmltKCRfUkVRVUVTVFsndiddKTsKICAgICAkbmV0d29yayA9IHRyaW0oJF9SRVFVRVNUWyduZXR3b3JrJ10pOwogICAgIGlmKCBtZDUoJGFwaWtleS4kdWlkLiRuZXR3b3JrKSAhPSAkdiApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0RhdGEgdmFsaWRhdGlvbiBlcnJvcicpOwogICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICBpZiggISRmZXUgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnRlcm5hbCBlcnJvcicpOwogICAgIGlmKCAkZmV1LT5HZXRVc2VyU2Vzc2lvbigkdWlkKSAhPSBzZXNzaW9uX2lkKCkgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdVc2VyIHZhbGlkYXRpb24gZXJyb3InKTsKICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRuZXR3b3JrKTsKICAgICBpZiggIWlzX29iamVjdCgkbW9kKSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ1NvY2lhbCBuZXR3b3JrIG1vZHVsZSAnLiRuZXR3b3JrLicgbm90IGZvdW4nKTsKICAgICAkb3V0cHV0ID0gJG1vZC0+Z2V0X3VzZXJfa2V5KCR1aWQpOyAvLyBtYXkgcmV0dXJuIG51bGwuLi4gbm90IGFuIGVycm9yLgogICB9CiAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCRlLT5nZXRNZXNzYWdlKCkpOwogICB9CiAgIGJyZWFrOwoKIGNhc2UgJ1NFVEtFWSc6IC8vIHNldCB1c2VyIGNyZWRlbnRpYWxzCiAgIHRyeSB7CiAgICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fU09DSUFMX1JFQUQpICYmIAoJICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fU09DSUFMX1dSSVRFKSApCiAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgICAvLyB0b2RvLCBjaGVjayBmb3IgSFRUUFMKICAgICBpZiggIWNnc2FfdXRpbHM6OmlzX3Bvc3RfcmVxdWVzdCgpICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsndiddKSB8fCAhaXNzZXQoJF9SRVFVRVNUWyduZXR3b3JrJ10pIHx8IAoJICFpc3NldCgkX1JFUVVFU1RbJ3Rva2VuJ10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ3NlY3JldCddKSApCiAgICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBkYXRhJyk7CiAgICAgJHVpZCA9IHRyaW0oJF9SRVFVRVNUWyd1aWQnXSk7CiAgICAgJHYgPSB0cmltKCRfUkVRVUVTVFsndiddKTsKICAgICAkbmV0d29yayA9IHRyaW0oJF9SRVFVRVNUWyduZXR3b3JrJ10pOwogICAgICR0b2tlbiA9IHRyaW0oJF9SRVFVRVNUWyd0b2tlbiddKTsKICAgICAkc2VjcmV0ID0gdHJpbSgkX1JFUVVFU1RbJ3NlY3JldCddKTsKICAgICAkeCA9IG1kNSgkYXBpa2V5LiR1aWQuJG5ldHdvcmsuJHRva2VuLiRzZWNyZXQpOwogICAgIGlmKCAkeCAhPSAkdiApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oIkRhdGEgdmFsaWRhdGlvbiBlcnJvciAkeCB2cyAkdiIpOwogICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICBpZiggISRmZXUgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnRlcm5hbCBlcnJvcicpOwogICAgIGlmKCAkZmV1LT5HZXRVc2VyU2Vzc2lvbigkdWlkKSAhPSBzZXNzaW9uX2lkKCkgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdVc2VyIHZhbGlkYXRpb24gZXJyb3InKTsKICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRuZXR3b3JrKTsKICAgICBpZiggIWlzX29iamVjdCgkbW9kKSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ1NvY2lhbCBuZXR3b3JrIG1vZHVsZSAnLiRuZXR3b3JrLicgbm90IGZvdW4nKTsKICAgICAkbW9kLT5zZXRfdXNlcl9rZXkoJHVpZCwkdG9rZW4sJHNlY3JldCk7CiAgICAgLy8gcmV0dXJucyBubyBvdXRwdXQuCiAgIH0KICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJGUtPmdldE1lc3NhZ2UoKSk7CiAgIH0KICAgYnJlYWs7Cn0gLy8gc3dpdGNoCgpjZ3NhX3V0aWxzOjpyZXR1cm5fc3VjY2Vzcygkb3V0cHV0KTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.users.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYXBpa2V5ID0gJyc7CiRvcCA9ICcnOwokb3V0cHV0ID0gbnVsbDsKCi8vCi8vIHNldHVwCi8vCmlmKCBpc3NldCgkX1JFUVVFU1RbJ29wJ10gKSApIHsKICAkb3AgPSBzdHJ0b3VwcGVyKHRyaW0oJF9SRVFVRVNUWydvcCddKSk7CiB9CmlmKCBpc3NldCgkX1JFUVVFU1RbJ2FwaWtleSddKSApIHsKICAkYXBpa2V5ID0gdHJpbSgkX1JFUVVFU1RbJ2FwaWtleSddKTsKIH0KCi8vIHZhbGlkYXRpb24gY2hlY2sKaWYoICRhcGlrZXkgPT0gJycgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ05vIEF1dGhlbnRpY2F0aW9uIEluZm9ybWF0aW9uJyk7CmlmKCAkb3AgPT0gJycgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ09wZXJhdGlvbiBub3Qgc3BlY2lmaWVkJyk7CgovLyB2YWxpZGF0ZSB0aGUgYXBpa2V5LgokYWNjZXNzX2luZm8gPSBjZ3NhX3V0aWxzOjp2YWxpZGF0ZV9hcGlrZXkoJGFwaWtleSk7CmlmKCAhaXNfb2JqZWN0KCRhY2Nlc3NfaW5mbykgKSB7CiAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uJyk7CiB9CgovLyAKLy8gaGFuZGxlIHRoZSByZXF1ZXN0Ci8vCnN3aXRjaCggJG9wICkgewogY2FzZSAnUkVHSVNURVInOiAvLyBQT1NUIFJFUVVFU1QgCiAgIC8vIGFkZHMgYSBuZXcgdXNlciB0byB0aGUgc3lzdGVtCiAgIC8vIHRvZG86IGNoZWNrIGlmIHVzZXIgaGFzIGFjY2VzcwogICAvLyByZXR1cm5zIDIwMCBmb3Igc3VjY2Vzcy4gNDAwIGZvciBlcnJvci4uLiA1MDAgZm9yIGludGVybmFsIGVycm9yLgogICAvLyBwYXJhbWV0ZXJzOiAgdSA9IHVzZXJuYW1lIChtb3N0IGZvbGxvdyBGRVUgcnVsZXMpLCBwID0gcGFzc3dvcmQgKG11c3QgZm9sbG93IEZFVSBydWxlcyksIHYgPSBtZDUgaGFzaCBvZiBhcGlrZXksIHVzZXJuYW1lLCBwYXNzd29yZAogICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9VU0VSU19SRUdJU1RFUikgKQogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgICRnaWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmV1X3VzZXJncm91cCcsLTEpOwogICBpZiggJGdpZCA8PSAwICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnRlcm5hbCBtb2R1bGUgY29uZmlndXJhdGlvbiBlcnJvcicpOwogICBpZiggIWNnc2FfdXRpbHM6OmlzX3Bvc3RfcmVxdWVzdCgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIC8vaWYoICFjZ3NhX3V0aWxzOjppc19yZXF1ZXN0X3NlY3VyZSgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnNlY3VyZSByZXF1ZXN0Jyk7CiAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1J10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ3AnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsndiddKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAkdiA9IHRyaW0oJF9SRVFVRVNUWyd2J10pOwogICAkdSA9IHRyaW0oJF9SRVFVRVNUWyd1J10pOwogICAkcCA9IHRyaW0oJF9SRVFVRVNUWydwJ10pOwogICBpZiggbWQ1KCRhcGlrZXkuJHUuJHApICE9ICR2ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdEYXRhIHZhbGlkYXRpb24gZXJyb3InKTsKICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgICRlPSBzdHJ0b3RpbWUoJys1IHllYXJzJyk7CiAgICRyZXMgPSAkZmV1LT5BZGRVc2VyKCR1LCRwLCRlKTsKICAgaWYoICFpc19hcnJheSgkcmVzKSApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignUHJvYmxlbSBhdHRlbXB0aW5nIHRvIGNyZWF0ZSB1c2VyJyk7CiAgIGlmKCAkcmVzWzBdID09IEZBTFNFICkgewogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcigkcmVzWzFdKTsKICAgfQogICAkdWlkID0gKGludCkkcmVzWzFdOwogICAkcmVzID0gJGZldS0+QXNzaWduVXNlclRvR3JvdXAoICR1aWQsICRnaWQgKTsKICAgaWYoICEkcmVzICkgewogICAgIC8vIGRlbGV0ZSB0aGUgdXNlcj8KICAgICAkZmV1LT5EZWxldGVVc2VyRnVsbCggJHVpZCApOwogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignUHJvYmxlbSBhZGRpbmcgdXNlciB0byBncm91cCcpOwogICB9CiAgIC8vIFRPRE86IHVzZXIgY3JlYXRlZC4uIHRpZSBoaW0gdG8gdGhpcyBhcHAgCiAgIGF1ZGl0KCR1aWQsJHRoaXMtPkdldE5hbWUoKSwnVXNlciAnLiR1LicgY3JlYXRlZCcpOwogICBicmVhazsKCiBjYXNlICdMT0dJTic6ICAvLyBQT1NUIFJFUVVFU1QKICAgLy8gbG9nIHVzZXIgaW50byBzeXN0ZW0KICAgLy8gYWNjZXB0czogdSA9IHVzZXJuYW1lLCBwID0gcGFzc3dvcmQsIHYgPSBtZDUgaGFzaCBvZiBhcGlrZXksIHVzZXJuYW1lLCBwYXNzd29yZC4KICAgLy8gcmV0dXJucyAyMDAgZm9yIHN1Y2Nlc3MuLi4gNDAwIGZvciBkYXRhIGVycm9yLCA1MDAgZm9yIGludGVybmFsIGVycm9yCiAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX1VTRVJTX0xPR0lOKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApIHJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICBpZiggIWlzc2V0KCRfUkVRVUVTVFsndSddKSB8fCAhaXNzZXQoJF9SRVFVRVNUWydwJ10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ3YnXSkgKQogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IGRhdGEnKTsKICAgJHYgPSB0cmltKCRfUkVRVUVTVFsndiddKTsKICAgJHUgPSB0cmltKCRfUkVRVUVTVFsndSddKTsKICAgJHAgPSB0cmltKCRfUkVRVUVTVFsncCddKTsKICAgaWYoIG1kNSgkYXBpa2V5LiR1LiRwKSAhPSAkdiApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignRGF0YSB2YWxpZGF0aW9uIGVycm9yJyk7CiAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgaWYoICEkZmV1ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnRlcm5hbCBlcnJvcicpOwogICAkcmVzID0gJGZldS0+TG9naW4oJHUsJHApOwogICBpZiggIWlzX2FycmF5KCRyZXMpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdQcm9ibGVtIHdpdGggdXNlciBjcmVkZW50aWFscycpOwogICBpZiggJHJlc1swXSA9PSBGQUxTRSApIHsKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJHJlc1sxXSk7CiAgIH0KICAgLy8gbm93IHdlIG5lZWQgYSB1bmlxdWUgbWV0aG9kIG9mIGlkZW50aWZ5aW5nIHRoaXMgdXNlci4uLiBhbmQgZ2VuZXJhdGluZyBhIHNlc3Npb24uCiAgICRvdXRwdXQgPSAkcmVzWzBdOwogICBicmVhazsKCiBjYXNlICdQSU5HJzogICAgLy8gR0VUIFJFUVVFU1QKICAgLy8gbWFyayB0aGUgdXNlciBhcyBzdGlsbCBhY3RpdmUKICAgLy8gYWNjZXB0czogdWlkID0gdWlkLCB2ID0gbWQ1IGhhc2ggb2YgYXBpa2V5K3VpZAogICAvLyByZXR1cm5zIDIwMCBmb3Igc3VjY2Vzcy4uLiA0MDAgZm9yIGRhdGEgZXJyb3IsIDUwMCBmb3IgaW50ZXJuYWwgZXJyb3IuCiAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX1VTRVJTX0xPR0lOKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgcmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsndiddKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAkdWlkID0gdHJpbSgkX1JFUVVFU1RbJ3VpZCddKTsKICAgJHYgPSB0cmltKCRfUkVRVUVTVFsndiddKTsKICAgaWYoIG1kNSgkYXBpa2V5LiR1aWQpICE9ICR2ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdEYXRhIHZhbGlkYXRpb24gZXJyb3InKTsKICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgICR0bXAgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CiAgIGlmKCAkdG1wICE9ICR1aWQgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoIlVzZXIgdmFsaWRhdGlvbiBlcnJvcjo6IGdvdDogJHVpZCBleHBlY3RlZDokdG1wIChzZXNzaW9uICIuc2Vzc2lvbl9pZCgpLicpJyk7CiAgIGJyZWFrOwoKIGNhc2UgJ0xPR09VVCc6ICAvLyBQT1NUIFJFUVVFU1QKICAgLy8gbG9nIHVzZXIgb3V0IG9mIHNlc3Npb24uCiAgIC8vIGFjY2VwdHM6IHVpZCA9IHVzZXJpZCwgdiA9IG1kNSBoYXNoIG9mIGFwaWtleSwgdWlkCiAgIC8vIHJlcXVpcmVzIHZhbGlkIHNlc3Npb24gaWQuIChjYW4ndCBsb2dvdXQgYXJiaXRyYXJ5IHVzZXIpLgogICAvLyByZXR1cm5zIDIwMCBvbiBzdWNjZXNzLi4uIDQwMCBmb3IgZXJyb3IuCiAgIGlmKCAhJGFjY2Vzc19pbmZvLT5jaGVja19wZXJtaXNzaW9uKGNnc2FfYXBpa2V5X3Blcm1zOjpQRVJNX1VTRVJTX0xPR0lOKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgaWYoICFjZ3NhX3V0aWxzOjppc19wb3N0X3JlcXVlc3QoKSApIHJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICBpZiggIWlzc2V0KCRfUkVRVUVTVFsndWlkJ10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ3YnXSkgKQogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IGRhdGEnKTsKICAgJHVpZCA9IHRyaW0oJF9SRVFVRVNUWyd1aWQnXSk7CiAgICR2ID0gdHJpbSgkX1JFUVVFU1RbJ3YnXSk7CiAgIGlmKCBtZDUoJGFwaWtleS4kdWlkKSAhPSAkdiApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignRGF0YSB2YWxpZGF0aW9uIGVycm9yJyk7CiAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgaWYoICEkZmV1ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnRlcm5hbCBlcnJvcicpOwogICAkdHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgaWYoICR1aWQgIT0gJHR1aWQgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoIkludmFsaWQgdWlkIGdvdCAkdWlkLCBidXQgZXhwZWN0ZWQgJHR1aWQiKTsKICAgJGZldS0+TG9nb3V0KCR1aWQpOwogICBicmVhazsKICAgCiBjYXNlICdHRVRJTkZPJzogLy8gR0VUIFJFUVVFU1QKICAgLy8gZ2V0IHVzZXIgaW5mb3JtYXRpb24KICAgLy8gYWNjZXB0czogdWlkID0gdWlkICwgdiA9IG1kNSBoYXNoIG9mIGFwaWtleSt1aWQKICAgLy8gcmV0dXJucyAyMDAgZm9yIHN1Y2Nlc3MuLi4gNDAwIGZvciBkYXRhIGVycm9yLCA1MDAgZm9yIGludGVybmFsIGVycm9yCiAgIC8vIHJldHVybnMgYXJyYXkgb2YgdXNlciBpbmZvLgogICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9VU0VSU19SRUFEKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgcmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsndiddKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAkdWlkID0gdHJpbSgkX1JFUVVFU1RbJ3VpZCddKTsKICAgJHYgPSB0cmltKCRfUkVRVUVTVFsndiddKTsKICAgaWYoIG1kNSgkYXBpa2V5LiR1aWQpICE9ICR2ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdEYXRhIHZhbGlkYXRpb24gZXJyb3InKTsKICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgIC8vIHNlY3VyaXR5IGNoZWNrLi4gY2FuIG9ubHkgcmV0cmlldmUgeW91ciBvd24gaW5mby4KICAgaWYoICRmZXUtPkdldFVzZXJTZXNzaW9uKCR1aWQpICE9IHNlc3Npb25faWQoKSApIHsKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ1VzZXIgdmFsaWRhdGlvbiBlcnJvcicpOwogICB9CiAgICR1c2VyID0gJGZldS0+R2V0VXNlckluZm8oJHVpZCk7CiAgIGlmKCAhaXNfYXJyYXkoJHVzZXIpICYmICR1c2VyWzBdID09IFRSVUUgKSB7CiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdVc2VyIEluZm8gbm90IGZvdW5kJyk7CiAgIH0KICAgZWxzZSB7CiAgICAgJG91dHB1dCA9ICR1c2VyWzFdOwogICAgIGlmKCBpc3NldCgkb3V0cHV0WydwYXNzd29yZCddKSApIHVuc2V0KCRvdXRwdXRbJ3Bhc3N3b3JkJ10pOwogICAgICRkZWZucyA9ICRmZXUtPkdldFByb3BlcnR5RGVmbnMoKTsKICAgICAkb3V0cHV0Wydwcm9wcyddID0gJGZldS0+R2V0VXNlclByb3BlcnRpZXMoJHVpZCk7CiAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJG91dHB1dCk7ICRpKysgKSB7CiAgICAgICAkbmFtZSA9ICRvdXRwdXRbJGldWyd0aXRsZSddOwogICAgICAgaWYoICRkZWZuc1skbmFtZV1bJ3R5cGUnXSA9PSA2ICkgeyAvLyBpbWFnZQoJIC8vIGdldCB0aGUgZnVsbCB1cmwgdG8gdGhpcyBpbWFnZS4KCSAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkgJG91dHB1dFskaV1bJ3VybCddID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nL2ZldXNlcnMvJy4kb3V0cHV0WyRpXVsnZGF0YSddOwogICAgICAgfQogICAgIH0KICAgfQogICBicmVhazsKCQogY2FzZSAnU0VUUFJPUFMnOiAvLyBQT1NUIFJFUVVFU1QKICAgLy8gc2V0IHVzZXIgaW5mbwogICAvLyBhY2NlcHRzIHVpZCwgdiBhbmQgb3RoZXIgb3B0aW9uYWwgcGFyYW1zCiAgIC8vIDo6cGFzc3dvcmQ6OgogICAvLyA6OnJlcGVhdGVwYXNzd29yZDo6CiAgIC8vIHByb3BlcnR5PXZhbHVlIC0tIHNwZWNpZmllcyBwcm9wZXJ0aWVzIChhY2NvcmRpbmcgdG8gdXNlciBncm91cCkKICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fVVNFUlNfV1JJVEUpICkKICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0luc3VmZmljaWVudCBQZXJtaXNzaW9ucycpOwogICBpZiggIWNnc2FfdXRpbHM6OmlzX3Bvc3RfcmVxdWVzdCgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgfHwgIWlzc2V0KCRfUkVRVUVTVFsndiddKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgZGF0YScpOwogICAkdWlkID0gdHJpbSgkX1JFUVVFU1RbJ3VpZCddKTsKICAgJHYgPSB0cmltKCRfUkVRVUVTVFsndiddKTsKICAgaWYoIG1kNSgkYXBpa2V5LiR1aWQpICE9ICR2ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdEYXRhIHZhbGlkYXRpb24gZXJyb3InKTsKICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgIC8vIHNlY3VyaXR5IGNoZWNrLi4gY2FuIG9ubHkgbW9kaWZ5IHlvdXIgb3duIGluZm8uCiAgIGlmKCAkZmV1LT5HZXRVc2VyU2Vzc2lvbigkdWlkKSAhPSBzZXNzaW9uX2lkKCkgKSB7CiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdVc2VyIHZhbGlkYXRpb24gZXJyb3InKTsKICAgfQogICAkaGF2ZV9tb2RpZmllZCA9IEZBTFNFOwogICAvLyBoYW5kbGUgc2V0IHVzZXIgcGFzc3dvcmQuCiAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJzo6cGFzc3dvcmQ6OiddKSAmJiBpc3NldCgkX1JFUVVFU1RbJzo6cmVwZWF0cGFzc3dvcmQ6OiddKSApIHsKICAgICBpZiggJF9SRVFVRVNUWyc6OnBhc3N3b3JkOjonXSAhPSAkX1JFUVVFU1RbJzo6cmVwZWF0cGFzc3dvcmQ6OiddICkgewogICAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdQYXNzd29yZHMgZG8gbm90IG1hdGNoJyk7CiAgICAgfQogICAgIGVsc2UgaWYoICEkZmV1LT5Jc1ZhbGlkUGFzc3dvcmQoJF9SRVFVRVNUWyc6OnBhc3N3b3JkOjonXSkgKSB7CiAgICAgICBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludmFsaWQgUGFzc3dvcmQnKTsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAkcmVzID0gJGZldS0+U2V0VXNlclBhc3N3b3JkKCR1aWQsJF9SRVFVRVNUWyc6OnBhc3N3b3JkOjonXSk7CiAgICAgICBpZiggJHJlc1swXSA9PSBGQUxTRSApIHsKCSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJHJlc1sxXSk7CiAgICAgICB9CiAgICAgICAkaGF2ZV9tb2RpZmllZCA9IFRSVUU7CiAgICAgfQogICB9CiAgICRjdXJfaW5mbyA9ICRmZXUtPkdldFVzZXJQcm9wZXJ0eVJlbGF0aW9ucygkdWlkKTsKICAgJGlucHV0ID0gYXJyYXkoKTsKICAgJGNvdW50ID0gMDsKICAgZm9yZWFjaCgkY3VyX2luZm8gYXMgJG9uZSApIHsKICAgICAka2V5ID0gJG9uZVsnbmFtZSddOwogICAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyRrZXldKSApIGNvbnRpbnVlOwogICAgIAogICAgICRyZXMgPSAkZmV1LT5TZXRVc2VyUHJvcGVydHlGdWxsKCRrZXksdHJpbSgkX1JFUVVFU1RbJGtleV0pLCR1aWQpOwogICAgIGlmKCAhJHJlcyApIHsKICAgICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignUHJvYmxlbSBzZXR0aW5nIHByb3BlcnR5ICcuJGtleSk7CiAgICAgfQogICAgICRjb3VudCsrOwogICB9CiAgIGlmKCAkY291bnQgPT0gMCAmJiAhJGhhdmVfbW9kaWZpZWQgKSB7CiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdOb3RoaW5nIHRvIGRvJyk7CiAgIH0KICAgYnJlYWs7CiAgICAKIGNhc2UgJ1BST1BFUlRJRVMnOiAvLyBHRVQgCiAgIC8vIHJldHJpZXZlIGxpc3Qgb2YgdXNlciBwcm9wZXJ0aWVzCiAgIC8vIGFjY2VwdHM6IHVpZCwgdiA9IG1kNSBoYXNoIG9mIGFwaWtleSt1aWQKICAgLy8gcmV0dXJucyBhcnJheSBvZiB1c2VyIHByb3BlcnRpZXMKICAgaWYoICEkYWNjZXNzX2luZm8tPmNoZWNrX3Blcm1pc3Npb24oY2dzYV9hcGlrZXlfcGVybXM6OlBFUk1fVVNFUlNfUkVBRCkgKQogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IFBlcm1pc3Npb25zJyk7CiAgIGlmKCAhY2dzYV91dGlsczo6aXNfZ2V0X3JlcXVlc3QoKSApIHJldHVybl9lcnJvcignSW52YWxpZCByZXF1ZXN0IG1ldGhvZCcpOwogICBpZiggIWlzc2V0KCRfUkVRVUVTVFsndWlkJ10pIHx8ICFpc3NldCgkX1JFUVVFU1RbJ3YnXSkgKQogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IGRhdGEnKTsKICAgJHVpZCA9IHRyaW0oJF9SRVFVRVNUWyd1aWQnXSk7CiAgICR2ID0gdHJpbSgkX1JFUVVFU1RbJ3YnXSk7CiAgIGlmKCBtZDUoJGFwaWtleS4kdWlkKSAhPSAkdiApIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignRGF0YSB2YWxpZGF0aW9uIGVycm9yJyk7CiAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgaWYoICEkZmV1ICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnRlcm5hbCBlcnJvcicpOwogICAvLyBzZWN1cml0eSBjaGVjay4uIGNhbiBvbmx5IG1vZGlmeSB5b3VyIG93biBpbmZvLgogICBpZiggJGZldS0+R2V0VXNlclNlc3Npb24oJHVpZCkgIT0gc2Vzc2lvbl9pZCgpICkgewogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignVXNlciB2YWxpZGF0aW9uIGVycm9yJyk7CiAgIH0KICAgLy8gZ2V0IHRoZSB1c2VycyBncm91cHMKICAgJHVwcm9wZXJ0aWVzID0gJGZldS0+R2V0VXNlclByb3BlcnR5UmVsYXRpb25zKCR1aWQpOwogICAkcHJvcHMgPSBhcnJheSgpOwogICAkZGVmbnMgPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgIGZvciggJGIgPSAwOyAkYiA8IGNvdW50KCR1cHJvcGVydGllcyk7ICRiKysgKSB7CiAgICAgJG5hbWUgPSAkdXByb3BlcnRpZXNbJGJdWyduYW1lJ107CiAgICAgaWYoICFpc3NldCgkZGVmbnNbJG5hbWVdKSApIGNvbnRpbnVlOyAvLyB3aHkgd291bGQgdGhpcyBoYXBwZW4/CiAgICAgJHByb3BzWyRuYW1lXSA9ICRkZWZuc1skbmFtZV07CiAgIH0KICAgJG91dHB1dCA9ICRwcm9wczsKICAgLy8gZ2V0IHRoZSBwcm9wZXJ0aWVzIGZvciB0aG9zZSBncm91cAogICAvLyBhcyBhIHVuaW9uLgogICBicmVhazsKICAgCiBjYXNlICdCQURHRVMnOiAvLyBHRVQKICAgLy8gcmV0cmlldmUgdXNlciBiYWRnZSBpZCdzIChpZiBhbnkpLgogICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9VU0VSU19SRUFEKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgKQogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IGRhdGEnKTsKICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgICRsaXN0ID0gY2dzYV9iYWRnZV91dGlsczo6Z2V0X21lbWJlcl9iYWRnZXMoKGludCkkX1JFUVVFU1RbJ3VpZCddKTsKICAgaWYoIGlzX2FycmF5KCRsaXN0KSAmJiBjb3VudCgkbGlzdCkgKSB7CiAgICAgJG91dHB1dCA9ICRsaXN0OwogICB9CiAgIGJyZWFrOwogICAgCiBjYXNlICdISVNUT1JZJzogLy8gR0VUCiAgIC8vIHJldHJpZXZlIHVzZXIgaGlzdG9yeQogICAvLyBhY2NlcHRzOiB1aWQsIHYgPSBtZDUgaGFzaCBvZiBhcGlrZXkrdWlkLCBbbiA9IG51bWJlciBvZiBlbnRyaWVzXSBbc3RpbWUgPSBzdGFydCB0aW1lc3RhbXBdCiAgIC8vIHJlcXVpcmVzIHZhbGlkIHNlc3Npb24gaWQgKGNhbid0IGdldCBkYXRhIG9uIGFyYml0cmFyeSB1c2VyKQogICAvLwogICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9VU0VSU19SRUFEKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgKQogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IGRhdGEnKTsKICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgIGJyZWFrOwogICAKIGNhc2UgJ0xJU1QnOiAvLyBHRVQKICAgLy8gcmV0cmlldmUgdXNlciBsaXN0LgogICAvLyBhY2NlcHRzOiB1aWQsIFt1c2VycGF0dGVybixwcm9wZXJ0eSxwcm9wcGF0dGVybixuLG9dOwogICBpZiggISRhY2Nlc3NfaW5mby0+Y2hlY2tfcGVybWlzc2lvbihjZ3NhX2FwaWtleV9wZXJtczo6UEVSTV9VU0VSU19SRUFEKSApCiAgICAgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnN1ZmZpY2llbnQgUGVybWlzc2lvbnMnKTsKICAgaWYoICFjZ3NhX3V0aWxzOjppc19nZXRfcmVxdWVzdCgpICkgY2dzYV91dGlsczo6cmV0dXJuX2Vycm9yKCdJbnZhbGlkIHJlcXVlc3QgbWV0aG9kJyk7CiAgIGlmKCAhaXNzZXQoJF9SRVFVRVNUWyd1aWQnXSkgKQogICAgIGNnc2FfdXRpbHM6OnJldHVybl9lcnJvcignSW5zdWZmaWNpZW50IGRhdGEnKTsKICAgJGZldSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICBpZiggISRmZXUgKSBjZ3NhX3V0aWxzOjpyZXR1cm5fZXJyb3IoJ0ludGVybmFsIGVycm9yJyk7CiAgICRuID0gNTA7CiAgICRvID0gMDsKCiAgICR1c2VycGF0dGVybiA9ICcnOwogICAkcHJvcGVydHkgPSAnJzsKICAgJHByb3BwYXR0ZXJuID0gJyc7CiAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ24nXSkgKSAkbiA9IG1heCgwLG1pbigxMDAwMCwoaW50KSRfUkVRVUVTVFsnbiddKSk7CiAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ28nXSkgKSAkbyA9IG1heCgwLG1pbigxMDAwMDAsKGludCkkX1JFUVVFU1RbJ28nXSkpOwogICAkcXVlcnkgPSBuZXcgZmV1X3VzZXJfcXVlcnkoJG4pOwogICAkcXVlcnktPnNldF9kZWVwKCk7CiAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ3VzZXJwYXR0ZXJuJ10pICkgewogICAgICRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9VU0VSTkFNRV9SRSx0cmltKCRfUkVRVUVTVFsndXNlcnBhdHRlcm4nXSkpOwogICB9CiAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ3Byb3BlcnR5J10pICYmIGlzc2V0KCRfUkVRVUVTVFsncHJvcHBhdHRlcm4nXSkgKSB7CiAgICAgJHF1ZXJ5LT5hZGRfYW5kX29wdChmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1BST1BFUlRZX1JFLAoJCQkgdHJpbSgkX1JFUVVFU1RbJ3Byb3BlcnR5J10pLAoJCQkgdHJpbSgkX1JFUVVFU1RbJ3Byb3BwYXR0ZXJuJ10pKTs7CiAgIH0KICAgaWYoIGlzc2V0KCRfUkVRVUVTVFsnaWRsaXN0J10pICkgewogICAgICRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9VU0VSTElTVCwkX1JFUVVFU1RbJ2lkbGlzdCddKTsKICAgfQogICAkcXVlcnktPnNldF9yZXN1bHRfdHlwZShmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1RZUEVfTElTVCk7CiAgIGlmKCBpc3NldCgkX1JFUVVFU1RbJ2Z1bGwnXSkgJiYgJF9SRVFVRVNUWydmdWxsJ10gKSB7CiAgICAgJHF1ZXJ5LT5zZXRfcmVzdWx0X3R5cGUoZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9UWVBFX0ZVTEwpOwogICB9CiAgIAogICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgJG91dHB1dCA9IGFycmF5KCk7CiAgIHdoaWxlKCAhJHJzLT5FT0YgKSB7CiAgICAgJG91dHB1dFtdID0gJHJzLT5maWVsZHM7CiAgICAgJHJzLT5Nb3ZlTmV4dCgpOwogICB9CiAgIGJyZWFrOwogICAgCiBkZWZhdWx0OgogICBpZiggY2dzYV91dGlsczo6aXNfcG9zdF9yZXF1ZXN0KCkgKSByZXR1cm5fZXJyb3IoJ0ludmFsaWQgT3BlcmF0aW9uJyk7CiAgIGJyZWFrOwogfQoKY2dzYV91dGlsczo6cmV0dXJuX3N1Y2Nlc3MoJG91dHB1dCk7CiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.view_activity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokdGhlX3RlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbnRfdmlld19hY3Rpdml0eV90ZW1wbGF0ZScpOwppZiggISR0aGVfdGVtcGxhdGUgKSByZXR1cm47CmlmKCBpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSApIHsKICAkdGhlX3RlbXBsYXRlID0gdHJpbSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKICB1bnNldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKfQoKaWYoICFpc3NldCgkcGFyYW1zWydhY3Rpdml0eSddKSApIHJldHVybjsKCiRhY3Rpdml0eSA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYnlfaWQoKGludCkkcGFyYW1zWydhY3Rpdml0eSddKTsKaWYoICFpc19vYmplY3QoJGFjdGl2aXR5KSApIHJldHVybjsKJGFjdGl2aXR5LT5zZXRfcmVhZG9ubHkoKTsKCiRzbWFydHktPmFzc2lnbignYWN0aXZpdHknLCRhY3Rpdml0eSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ3ZpZXdfYWN0aXZpdHknLiR0aGVfdGVtcGxhdGUpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/badges.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LSBMZWFkZXJib2FyZAogIHRob3VnaHRzOgogICAgLSBDYW4gYmUgdGllZCB0byBhIGxvY2F0aW9uCiAgICAgIChjaGVja2luIE4gZGlmZmVyZW50IHRpbWVzIGF0IG9uZSBsb2NhdGlvbikKICAgIC0gQ2FuIGJlIHRpZWQgdG8gYWN0aXZpdGllcwogICAgICAoaGlrZSA1IGRpZmZlcmVudCB0cmFpbHMpCiAgICAtIENhbiBiZSB0aWVkIHRvIG51bWJlciBvZiBjaGVja2lucwogICAgICAoTiBjaGVja2lucyBnZXRzIGJhZGdlIEEpCiAgICAgIChOKjIgY2hlY2tpbnMgZ2V0IGJhZGdlIEIpCiAgICAtIENhbiBiZSB0aWVkIHRvIG51bWJlciBvZiBmcmllbmRzCiAgICAgIE4gRnJpZW5kcyBnZXRzIGEgYmFkZ2UKICAgIC0gQ2FuIGJlIHRpZWQgdG8gbnVtYmVyIG9mIHJldmlld3MKICAgIDogdXNlIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MKICAgICAgLSBuZXcgY2xhc3MgZm9yIGVhY2ggbGVhZGVyYm9hcmQgdHlwZQogICAgICAtIGdldCBsZWFkZXJib2FyZHMKICAgICAgCiAgICAgCiAgcHJvcGVydGllczoKICAgIC0gbmFtZSwKICAgIC0gdHlwZQogICAgLSBjcmVhdGUgZGF0ZQogICAgLSB1c2VybGlzdAogICAgICAtIHVpZAogICAgICAtIHNjb3JlCiAgICAtIGRhdGEgKHN0b3JlIHRoZSBjcml0ZXJpYSkKCiAgY2xhc3MgbGVhZGVyYm9hcmRfb3BlcmF0aW9ucwogICAgOiBnZXRfbGVhZGVyYm9hcmRzKCkKCiAgYXBpOgogICAgZWRpdF9tZW1iZXIoJHVpZCwkc2NvcmUpOwogICAgcmVtb3ZlX21lbWJlcigkdWlkKTsKICAgIGdldF9tZW1iZXJfcmFuaygkdWlkKTsKICAgIGdldF9tZW1iZXJfc2NvcmUoJHVpZCk7CiAgICBnZXRfbWVtYmVyX3N0YXRzKCR1aWQpOwoKICAgIGdldF91c2VyX3JhbmtpbmdzKCR1aWRfbGlzdCk7CgogICAgY291bnRfbWVtYmVycygpOwogICAgY291bnRfbWVtYmVyc19pbl9yYW5nZSgkbWluLCRtYXgpCiAgICAKICAgIHJlbW92ZV9tZW1iZXJzX2luX3JhbmdlKCRtaW4sJG1heCk7CiAgICBnZXRfbGVhZGVycygpOwogICAgCi0gTGVhZGVyYm9hcmRPcGVyYXRpb25zIAogIGFwaToKICAgICBzdGF0aWMgY3JlYXRlICgkbmFtZSk7CiAgICAgc3RhdGljIGRlbGV0ZSAoJG5hbWUpOwogICAgIHN0YXRpYyBnZXRfaW5mbyAoJG5hbWUpOwoKLSBMZWFkZXJib2FyZCBQcm9jZXNzaW5nCiAgOiBXaGVuIGEgY2hlY2tpbiBpcyBzYXZlZCwgYW5kIGlzIGFwcHJvdmVkCiAgICAtIHNlbmQgT25DaGVja2luIGV2ZW50CgogIDogT25DaGVja2luIGV2ZW50IGhhbmRsZXIKICAgIGlmIGNoZWNraW4gaXMgYXBwcm92ZWQKICAgIDEuIGZpbmQgbWF0Y2hpbmcgbGVhZGVyYm9hcmRzCiAgICAqIFByb2Nlc3MgbGVhZGVyYm9hcmRzCiAgICAgIAogICAgICAtIGZvciBlYWNoIGxlYWRlcmJvYXJkCiAgICAgICAgaWYoIGxlYWRlcmJvYXJkIG1hdGNoZXMgKSAoc2VlIEE6IGJlbG93KQogICAgICAgICAgaW5jcmVhc2Ugc2NvcmUKICAgICAgICAgIGNoZWNrIGJhZGdlcyAoc2VlIEI6IGJlbG93KQogICAgCiAgICAqKiBBOiB0ZXN0IGlmIGxlYWRlcmJvYXJkIG1hdGNoZXMKICAgICAgc3dpdGNoIGxlYWRlcmJvYXJkIHR5cGU6CiAgICAgICBsb2NhdGlvbgogICAgICAgICBpZiBjaGVja2luIGxvY2F0aW9uIG1hdGNoZXMgdGhlIGJvYXJkIGxvY2F0aW9uCiAgICAgICAgIGlmIGNoZWNraW4gbG9jYXRpb24gaXMgaW4gYm9hcmQgY2F0ZWdvcnkgaWQocykKICAgICAgICAgaWYgY2hlY2tpbiBsb2NhdGlvbiBpcyBpbiBib2FyZCBjYXRlZ29yeSBoaWVyYXJjaHksIG9yIGNoaWxkcmVuPwogICAgICAgYWN0aXZpdHkKICAgICAgICAgaWYgYSBjaGVja2luIGFjdGl2aXR5IG1hdGNoZXMgYm9hcmQgYWN0aXZpdHkocyksIG9yIGNoaWxkcmVuICAgICAgIAogICAgICAgY2hlY2tpbnMKICAgICAgICAgY291bnQgZ3Jvc3MgY2hlY2tpbnMKICAgICAgIGZyaWVuZHMKICAgICAgICAgY291bnQgZ3Jvc3MgZnJpZW5kcwogICAgICAgICAKCiAgICAqKiBCOiBjaGVjayBiYWRnZXMKICAgICAgOiBuZWVkIHVzZXIgc2NvcmUKICAgICAgZm9yIGVhY2ggYmFkZ2UgYXR0YWNoZWQgdG8gbG9jYXRpb24KICAgICAgICBpZiB1c2VyIHNjb3JlID4gbWluIHNjb3JlCiAgICAgICAgICBTdG9yZSBiYWRnZSBpbiBkYXRhYmFzZQogICAgICAgICAgU2VuZCBOZXdCYWRnZUF3YXJkZWQgRXZlbnQgKHVzZXIsbGVhZGVyYm9hcmQsYmFkZ2UpCgogOiBOZXdCYWRnZUF3YXJkZWQgRXZlbnQKICAgc2VuZCBvdXIgbWVzc2FnZXMgb3V0IHRvIHNvY2lhbCBuZXR3b3JrcwogICAgICAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKLSBCYWRnZXMKICBwcm9wZXJ0aWVzOgogICAgLSBpZAogICAgLSBsZWFkZXJib2FyZCBpZAogICAgLSBuYW1lCiAgICAtIGNyZWF0ZSBkYXRlCiAgICAtIGltYWdlCiAgICAtIG5vdGVzCiAgICAtIG1pbiBzY29yZQogICAgLSBtYXggc2NvcmU/CiAgICAtIHVuaXF1ZSAob25seSBvbmUgcGVyc29uIGNhbiBoYXZlIHRoaXMgYmFkZ2UpLgoKICBiYWRnZSBvd25lcnMKICAgIC0gYmFkZ2UgaWQKICAgIC0gb3duZXIgaWQKICAgIC0gY3JlYXRlZAoKICBhcGk6CiAgICAgc3RhdGljIGNyZWF0ZV9iYXNnZSgpCiAgICAgc3RhdGljIGRlbGV0ZV9iYWRnZSgpCiAgICAgc3RhdGljIGxpc3RfYmFkZ2VzKCkKICAgICBzdGF0aWMgZ2V0X2JhZGdlKCkKICAgICAKICAgICBnZXRfdXNlcl9iYWRnZXMoJHVpZCk7CiAgICAgZ2V0X2JhZGdlX293bmVyKCRiYWRnZV9pZCk7CiAgICAgCiAgICAgcHJvY2Vzc19iYWRnZXMoJHVpZCk7CiAgICAgcmVtb3ZlX2JhZGdlX2Zyb21fdXNlcigkdWlkLCRiYWRnZV9pZCk7CgoKJGxlYWRlcmJvYXJkLT5nZXRfYmFkZ2VzKCk7CiRsZWFkZXJib2FyZC0+YWRkX2JhZGdlKCk7CgoKJGJhZGdlLT5zYXZlKCk7CiRiYWRnZS0+ZGVsZXRlKCk7CiRiYWRnZS0+Z2V0X293bmVycygpOwoKJHVzZXItPmdldF9iYWRnZXMoKTsKCi8vIG1vcmUgYXBpIGZ1bmN0aW9ucwokbG9jYXRpb24tPmdldF9sZWFkZXJib2FyZHMoKTsKJHVzZXItPmdldF9iYWRnZXMoKTsK]]></data>
	</file>
	<file>
	  <filename>/CGSocialApp.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKJGNnZXh0ZW5zaW9ucyA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLAoJCQkgICAgICAnQ0dFeHRlbnNpb25zJywnQ0dFeHRlbnNpb25zLm1vZHVsZS5waHAnKTsKaWYoICFpc19yZWFkYWJsZSggJGNnZXh0ZW5zaW9ucyApICkKewogIGVjaG8gJzxoMT48Zm9udCBjb2xvcj0icmVkIj5FUlJPUjogVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLjwvZm9udD48L2gxPic7CiAgcmV0dXJuOwp9CnJlcXVpcmVfb25jZSgkY2dleHRlbnNpb25zKTsKCmNsYXNzIENHU29jaWFsQXBwIGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKICBjb25zdCBQRVJNSVNTSU9OID0gJ01hbmFnZSBTb2NpYWwgQVBJIEtleXMnOwoKICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvZGVmaW5lcy5waHAnKTsKICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoKTsKCiAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dzYV9zZWxhY3Rpdml0eScsYXJyYXkoJ2Nnc2FfdXRpbHMnLCdzbWFydHlfc2VsYWN0aXZpdHknKSk7CgogICAgJHRoaXMtPkFkZEltYWdlRGlyKCdpbWFnZXMnKTsKICB9CgogIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiBnZXRfY2xhc3MoJHRoaXMpOyB9CiAgZnVuY3Rpb24gX0dldE1vZHVsZUFsaWFzKCkgeyByZXR1cm4gc3RydG9sb3dlcigkdGhpcy0+R2V0TmFtZSgpKTsgIH0KICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJpZW5kbHluYW1lJywkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJykpOyB9CiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcxLjEuMTAnOyB9CiAgZnVuY3Rpb24gR2V0SGVscCgpIHsgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKS4nL2hlbHAuaHRtbC5pbmMnKTsgIH0KICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnUm9iZXJ0IENhbXBiZWxsIChjYWxndXkxMDAwKSc7IH0KICBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsgcmV0dXJuICdjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJzsgfQogIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkgeyByZXR1cm4gVFJVRTsgfQogIGZ1bmN0aW9uIEhhc0FkbWluKCkgeyByZXR1cm4gVFJVRTsgfQogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgcmV0dXJuICdjb250ZW50JzsgfQogIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKSB7IHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsgfQogIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgeyByZXR1cm4gJzEuMTEuMic7IH0KICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncHJldW5pbnN0YWxsJyk7IH0KICBmdW5jdGlvbiBIYW5kbGVzRXZlbnRzKCkgeyByZXR1cm4gVFJVRTsgfQogIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CgogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewogICAgJGZuID0gZGlybmFtZShfX0ZJTEVfXykuJy9jaGFuZ2Vsb2cuaW5jJzsKICAgIHJldHVybiBmaWxlX2dldF9jb250ZW50cygkZm4pOwogIH0KCiAgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgewoJJG9iaiA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnSlF1ZXJ5VG9vbHMnKTsKICAgIGlmKCBpc19vYmplY3QoJG9iaikgKQogICAgICB7CiR0bXBsID0gPDw8RU9UCntKUXVlcnlUb29scyBhY3Rpb249J2luY2pzJyBleGNsdWRlPSdmb3JtJ30Ke0pRdWVyeVRvb2xzIGFjdGlvbj0ncmVhZHknfQpFT1Q7CiAgICAgICAgcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wbCk7CiAgICAgIH0KICB9CQoKICBmdW5jdGlvbiBJbml0aWFsaXplRnJvbnRlbmQoKQogIHsKICAgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKICAgICRwYWdlaWQgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpLT5HZXREZWZhdWx0Q29udGVudCgpOwoKICAgIC8vIHJvdXRlIGZvciBSRVNURlVMIGFwaQogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9hcHBcL3YxXC91c2VycyQvJywKCQkJIGFycmF5KCdhY3Rpb24nPT4ndXNlcnMnLCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnLCdyZXR1cm5pZCc9PiRwYWdlaWQpKTsKICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvYXBwXC92MVwvYWN0aXZpdGllcyQvJywKCQkJIGFycmF5KCdhY3Rpb24nPT4nYWN0aXZpdGllcycsJ3Nob3d0ZW1wbGF0ZSc9PidmYWxzZScsJ3JldHVybmlkJz0+JHBhZ2VpZCkpOwogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9hcHBcL3YxXC9jaGVja2lucyQvJywKCQkJIGFycmF5KCdhY3Rpb24nPT4nY2hlY2tpbnMnLCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnLCdyZXR1cm5pZCc9PiRwYWdlaWQpKTsKICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvYXBwXC92MVwvZnJpZW5kcyQvJywKCQkJIGFycmF5KCdhY3Rpb24nPT4nZnJpZW5kcycsJ3Nob3d0ZW1wbGF0ZSc9PidmYWxzZScsJ3JldHVybmlkJz0+JHBhZ2VpZCkpOwogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9hcHBcL3YxXC9sb2NhdGlvbnMkLycsCgkJCSBhcnJheSgnYWN0aW9uJz0+J2xvY2F0aW9ucycsJ3Nob3d0ZW1wbGF0ZSc9PidmYWxzZScsJ3JldHVybmlkJz0+JHBhZ2VpZCkpOwogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9hcHBcL3YxXC9sZWFkZXJib2FyZHMkLycsCgkJCSBhcnJheSgnYWN0aW9uJz0+J2xlYWRlcmJvYXJkcycsJ3Nob3d0ZW1wbGF0ZSc9PidmYWxzZScsJ3JldHVybmlkJz0+JHBhZ2VpZCkpOwogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9hcHBcL3YxXC9iYWRnZXMkLycsCgkJCSBhcnJheSgnYWN0aW9uJz0+J2JhZGdlcycsJ3Nob3d0ZW1wbGF0ZSc9PidmYWxzZScsJ3JldHVybmlkJz0+JHBhZ2VpZCkpOwogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9hcHBcL3YxXC9zb2NpYWwkLycsCgkJCSBhcnJheSgnYWN0aW9uJz0+J3NvY2lhbCcsJ3Nob3d0ZW1wbGF0ZSc9PidmYWxzZScsJ3JldHVybmlkJz0+JHBhZ2VpZCkpOwoKICAgIC8vIHJvdXRlcyBmb3IgdmFyaW91cyB2aWV3cwogICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy9hY3Rpdml0eVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxhY3Rpdml0eT5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nLAoJCQkgYXJyYXkoJ2FjdGlvbic9Pid2aWV3X2FjdGl2aXR5JykpOwoKICAgIC8vIHBhcmFtZXRlcnMgZm9yIGZyb250ZW5kIGxpc3QgY2hlY2tpbnMuCiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbG9jYXRpb24nLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnYWN0aXZpdHknLENMRUFOX0lOVCk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndGltZWxpbWl0JyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ293bmVyJyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xpbWl0JyxDTEVBTl9JTlQpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ29mZnNldCcsQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0YnknLENMRUFOX1NUUklORyk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc29ydG9yZGVyJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOyAKCiAgICAvLyBwYXJhbWV0ZXJzIGZvciBsaXN0IGFjdGl2aXRpZXMKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdsaXN0X3RlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N0YXJ0JyxDTEVBTl9TVFJJTkcpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2p1bmsnLENMRUFOX1NUUklORyk7CiAgfQoKICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQogIHsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FjdGlvbicsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2FjdGlvbicpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2xvY2F0aW9uJywnJywkdGhpcy0+TGFuZygncGFyYW1fbG9jYXRpb25pZCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FjdGl2aXR5JywnJywkdGhpcy0+TGFuZygncGFyYW1fYWN0aXZpdHknKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd0aW1lbGltaXQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV90aW1lbGltaXQnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdvd25lcicsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX293bmVyJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbGltaXQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9saW1pdCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ29mZnNldCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX29mZnNldCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnRieScsJ2NyZWF0ZWQnLCR0aGlzLT5MYW5nKCdwYXJhbV9zb3J0YnknKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzb3J0b3JkZXInLCdERVNDJywkdGhpcy0+TGFuZygncGFyYW1fc29ydG9yZGVyJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV90ZW1wbGF0ZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2xpc3RfdGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9saXN0X3RlbXBsYXRlJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc3RhcnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zdGFydCcpKTsKICB9CgogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oc2VsZjo6UEVSTUlTU0lPTikgfHwKICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSB8fAogICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJyk7CiAgfQoKICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogIHsKICAgIHJldHVybiBhcnJheSgnRnJvbnRFbmRVc2Vycyc9PicxLjIxLjEnLCdDb21wYW55RGlyZWN0b3J5Jz0+JzEuMTYuMycsCgkJICdDR0V4dGVuc2lvbnMnPT4nMS4zMS4yJywnQ0dGYXZzJz0+JzEuMC4yJywKCQkgJ0NHU2ltcGxlU21hcnR5Jz0+JzEuNScsJ0NHSm9iTWdyJz0+JzEuMi43Jyk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbigkZXZlbnRuYW1lKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZGVzY3JpYmVfZXZlbnRfJy4kZXZlbnRuYW1lKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBHZXRFdmVudEhlbHAoJGV2ZW50bmFtZSkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHBfZXZlbnRfJy4kZXZlbnRuYW1lKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJldHR5X3VybCgkaWQsJGFjdGlvbiwkcmV0dXJuaWQgPSAnJywkcGFyYW1zID0gYXJyYXkoKSwkaW5saW5lID0gZmFsc2UpCiAgewogICAgc3dpdGNoKCAkYWN0aW9uICkgewogICAgY2FzZSAndmlld19hY3Rpdml0eSc6CiAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhY3Rpdml0eSddKSApIHsKCSRhY3Rpdml0eSA9IChpbnQpJHBhcmFtc1snYWN0aXZpdHknXTsKCSRvYmogPSBjZ3NhX2FjdGl2aXR5Ojpsb2FkX2J5X2lkKCRhY3Rpdml0eSk7CglpZiggaXNfb2JqZWN0KCRvYmopICkgewoJICByZXR1cm4gc3ByaW50ZigiYWN0aXZpdHkvJWQvJWQvJXMiLCRyZXR1cm5pZCwkYWN0aXZpdHksbXVuZ2Vfc3RyaW5nX3RvX3VybCgkb2JqLT5uYW1lKSk7Cgl9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICAvKioKICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHVwZGF0ZSB0aGUgYXBwbGljYWJsZSBsZWFkZXJib2FyZHMgZ2l2ZW5hIGNoZWNraW4uCiAgICogVGhpcyBpcyBhIHByb3RlY3RlZCBtZW1iZXIgaW4gdGhpcyBjbGFzcywgYmVjYXVzZSBwdXR0aW5nIGl0IGluIGFub3RoZXIgY2xhc3Mgd291bGQgcmVxdWlyZSBpdCB0byBiZSBwdWJsaWMuCiAgICoKICAgKiBAaW50ZXJuYWwKICAgKiBAYWNjZXNzIHByaXZhdGUKICAgKiBAaWdub3JlCiAgICovCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIFVwZGF0ZUxlYWRlcmJvYXJkcyhjZ3NhX2NoZWNraW4gJGNoZWNraW4pCiAgewogICAgLy8gMS4gIGdpdmVuIHRoZSBjaGVja2luIC4uLiBmaW5kIGFueSBhbmQgYWxsIG1hdGNoaW5nIGxlYWRlcmJvYXJkcwogICAgLy8gZm9yIGVhY2ggbWF0Y2ggCiAgICAvLyAgaW5jcmVtZW50IHRoZSBzY29yZSBmb3IgdGhpcyB1c2VyIG9uIHRoYXQgbGVhZGVyYm9hcmQKICAgIC8vICB0aGVuIAogIH0KCiAgLyoqCiAgICogU2V0dXAgQ0dKb2JNZ3IgSm9icwogICAqCiAgICogQGludGVybmFsCiAgICogQGFjY2VzcyBwcml2YXRlCiAgICogQGlnbm9yZQogICAqLwogIHByb3RlY3RlZCBmdW5jdGlvbiBTZXR1cEpvYnMoKQogIHsKICAgICRqb2IgPSBuZXcgY2dqb2JtZ3Jfam9iKCR0aGlzLT5HZXROYW1lKCkuJyB1cGRhdGUgbGVhZGVyYm9hcmRzJyk7CiAgICAkam9iLT5zZXRfcmVjdXJfaW50ZXJ2YWwoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ludGVydmFsX3VwZGF0ZWxlYWRlcmJvYXJkcycsMTUpKTsKICAgICR0YXNrID0gbmV3IGNnam9ibWdyX2l0ZXJhdGl2ZXRhc2soJ3Byb2Nlc3Mgb25lIGxlYWRlcmJvYXJkJyk7CiAgICAkdGFzay0+c2V0X2Z1bmN0aW9uKGFycmF5KCdjZ3NhX2xlYWRlcmJvYXJkX3Rhc2tzJywndXBkYXRlX29uZV9sZWFkZXJib2FyZCcpKTsKICAgICRqb2ItPmFkZF90YXNrKCR0YXNrKTsKICAgICRqb2ItPnNhdmUoKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdqb2I6IHVwZGF0ZSBsZWFkZXJib2FyZHMnLCRqb2ItPmlkKTsKCiAgICAkam9iID0gbmV3IGNnam9ibWdyX2pvYigkdGhpcy0+R2V0TmFtZSgpLicgdXBkYXRlIGJhZGdlcycpOwogICAgJGpvYi0+c2V0X3JlY3VyX2ludGVydmFsKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnRlcnZhbF91cGRhdGViYWRnZXMnLDMwKSk7CiAgICAkdGFzayA9IG5ldyBjZ2pvYm1ncl9pdGVyYXRpdmV0YXNrKCdwcm9jZXNzIGJhZGdlcyBmb3IgbGVhZGVyYm9hcmQnKTsKICAgICR0YXNrLT5zZXRfZnVuY3Rpb24oYXJyYXkoJ2Nnc2FfbGVhZGVyYm9hcmRfdGFza3MnLCd1cGRhdGVfYmFkZ2VzX2Zvcl9sZWFkZXJib2FyZCcpKTsKICAgICRqb2ItPmFkZF90YXNrKCR0YXNrKTsKICAgICRqb2ItPnNhdmUoKTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogIDxsaT5WZXJzaW9uIDEuMCAtIEluaXRpYWwgUmVsZWFzZS48L2xpPgo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/client/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/client/.cms_ignore</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Y29va2llLnR4dApjb25maWcucGhwCg==]]></data>
	</file>
	<file>
	  <filename>/client/class.cms_http_request.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBIVFRQIENsYXNzCiAqCiAqIFRoaXMgaXMgYSB3cmFwcGVyIEhUVFAgY2xhc3MgdGhhdCB1c2VzIGVpdGhlciBjVVJMIG9yIGZzb2Nrb3BlbiB0byAKICogaGFydmVzdCByZXNvdXJjZXMgZnJvbSB3ZWIuIFRoaXMgY2FuIGJlIHVzZWQgd2l0aCBzY3JpcHRzIHRoYXQgbmVlZCAKICogYSB3YXkgdG8gY29tbXVuaWNhdGUgd2l0aCB2YXJpb3VzIEFQSXMgd2hvIHN1cHBvcnQgUkVTVC4KICoKICogQGF1dGhvciAgICAgIE1kIEVtcmFuIEhhc2FuIDxwaHBmb3VyQGdtYWlsLmNvbT4KICogQHBhY2thZ2UgICAgIEhUVFAgTGlicmFyeQogKiBAY29weXJpZ2h0ICAgMjAwNy0yMDA4IE1kIEVtcmFuIEhhc2FuCiAqIEBsaW5rICAgICAgICBodHRwOi8vd3d3LnBocGZvdXIuY29tL2xpYi9odHRwCiAqIEBzaW5jZSAgICAgICBWZXJzaW9uIDAuMQogKgogKiBNb2RpZmllZCBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiAqIFJlbmFtZWQgdGhlIGNsYXNzIHRvIGNtc19odHRwX3JlcXVlc3QKICogRml4ZWQgc29tZSBidWdzLgogKi8KCmNsYXNzIGNtc19odHRwX3JlcXVlc3QKewogICAgLyoqCiAgICAgKiBDb250YWlucyB0aGUgdGFyZ2V0IFVSTAogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgJHRhcmdldDsKCiAgICAvKioKICAgICAqIHNvY2tldAogICAgICoKICAgICAqLwogICAgcHJpdmF0ZSAkX3NvY2tldDsKCiAgICAvKioKICAgICAqIENvbnRhaW5zIHRoZSB0YXJnZXQgaG9zdAogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgJGhvc3Q7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIHRhcmdldCBwb3J0CiAgICAgKgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKi8KICAgIHByaXZhdGUgJHBvcnQ7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIHRhcmdldCBwYXRoCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHJpdmF0ZSAkcGF0aDsKICAgIAogICAgLyoqCiAgICAgKiBDb250YWlucyB0aGUgdGFyZ2V0IHNjaGVtYQogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgJHNjaGVtYTsKICAgIAogICAgLyoqCiAgICAgKiBDb250YWlucyB0aGUgaHR0cCBtZXRob2QgKEdFVCBvciBQT1NUKQogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgJG1ldGhvZDsKCiAgICAvKioKICAgICAqIENvbnRhaW5zIHJhdyBwb3N0IGRhdGEKICAgICAqCiAgICAgKiBAdmFyIHN0cgogICAgICovCiAgICBwcml2YXRlICRyYXdQb3N0RGF0YTsKCiAgICAvKioKICAgICAqIENvbnRhaW5zIHRoZSBwYXJhbWV0ZXJzIGZvciByZXF1ZXN0CiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICBwcml2YXRlICRwYXJhbXM7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIGNvb2tpZXMgZm9yIHJlcXVlc3QKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHByaXZhdGUgJGNvb2tpZXM7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIGNvb2tpZXMgcmV0cmlldmVkIGZyb20gcmVzcG9uc2UKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHByaXZhdGUgJF9jb29raWVzOwogICAgCiAgICAvKioKICAgICAqIE51bWJlciBvZiBzZWNvbmRzIHRvIHRpbWVvdXQKICAgICAqCiAgICAgKiBAdmFyIGludGVnZXIKICAgICAqLwogICAgcHJpdmF0ZSAkdGltZW91dDsKICAgIAogICAgLyoqCiAgICAgKiBXaGV0aGVyIHRvIHVzZSBjVVJMIG9yIG5vdAogICAgICoKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICBwcml2YXRlICR1c2VDdXJsOwogICAgCiAgICAvKioKICAgICAqIENvbnRhaW5zIHRoZSByZWZlcnJlciBVUkwKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwcml2YXRlICRyZWZlcnJlcjsKICAgIAogICAgLyoqCiAgICAgKiBDb250YWlucyB0aGUgVXNlciBhZ2VudCBzdHJpbmcKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwcml2YXRlICR1c2VyQWdlbnQ7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIGNvb2tpZSBwYXRoICh0byBiZSB1c2VkIHdpdGggY1VSTCkKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwcml2YXRlICRjb29raWVQYXRoOwogICAgCiAgICAvKioKICAgICAqIFdoZXRoZXIgdG8gdXNlIGNvb2tpZSBhdCBhbGwKICAgICAqCiAgICAgKiBAdmFyIGJvb2xlYW4KICAgICAqLwogICAgcHJpdmF0ZSAkdXNlQ29va2llOwogICAgCiAgICAvKioKICAgICAqIFdoZXRoZXIgdG8gc3RvcmUgY29va2llIGZvciBzdWJzZXF1ZW50IHJlcXVlc3RzCiAgICAgKgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHByaXZhdGUgJHNhdmVDb29raWU7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIFVzZXJuYW1lIChmb3IgYXV0aGVudGljYXRpb24pCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHJpdmF0ZSAkdXNlcm5hbWU7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIFBhc3N3b3JkIChmb3IgYXV0aGVudGljYXRpb24pCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHJpdmF0ZSAkcGFzc3dvcmQ7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIGZldGNoZWQgd2ViIHNvdXJjZQogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgJHJlc3VsdDsKICAgIAogICAgLyoqCiAgICAgKiBDb250YWlucyB0aGUgbGFzdCBoZWFkZXJzIAogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgJGhlYWRlcnM7CiAgICAKICAgIC8qKgogICAgICogQ29udGFpbnMgdGhlIGxhc3QgY2FsbCdzIGh0dHAgc3RhdHVzIGNvZGUKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwcml2YXRlICRzdGF0dXM7CiAgICAKICAgIC8qKgogICAgICogV2hldGhlciB0byBmb2xsb3cgaHR0cCByZWRpcmVjdCBvciBub3QKICAgICAqCiAgICAgKiBAdmFyIGJvb2xlYW4KICAgICAqLwogICAgcHJpdmF0ZSAkcmVkaXJlY3Q7CiAgICAKICAgIC8qKgogICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlZGlyZWN0IHRvIGZvbGxvdwogICAgICoKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICBwcml2YXRlICRtYXhSZWRpcmVjdDsKICAgIAogICAgLyoqCiAgICAgKiBUaGUgY3VycmVudCBudW1iZXIgb2YgcmVkaXJlY3RzCiAgICAgKgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKi8KICAgIHByaXZhdGUgJGN1clJlZGlyZWN0OwogICAgCiAgICAvKioKICAgICAqIENvbnRhaW5zIGFueSBlcnJvciBvY2N1cnJlZAogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgJGVycm9yOwogICAgCiAgICAvKioKICAgICAqIFN0b3JlIHRoZSBuZXh0IHRva2VuCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHJpdmF0ZSAkbmV4dFRva2VuOwogICAgCiAgICAvKioKICAgICAqIFdoZXRoZXIgdG8ga2VlcCBkZWJ1ZyBtZXNzYWdlcwogICAgICoKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICBwcml2YXRlICRkZWJ1ZzsKCiAgICAvKioKICAgICAqIFN0b3JlcyBvcHRpb25hbCBodHRwIGhlYWRlcnMKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHByaXZhdGUgJGhlYWRlckFycmF5OwoKICAgIC8qKgogICAgICogU3RvcmVzIHRoZSBkZWJ1ZyBtZXNzYWdlcwogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEB0b2RvIHdpbGwga2VlcCBkZWJ1ZyBtZXNzYWdlcwogICAgICovCiAgICBwcml2YXRlICRkZWJ1Z01zZzsKCiAgICAvKioKICAgICAqIFN0b3JlcyBwcm94eSBpbmZvcm1hdGlvbiAoaG9zdDpwb3J0KQogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgJHByb3h5OwoKICAgIC8qKgogICAgICogQ29uc3RydWN0b3IgZm9yIGluaXRpYWxpemluZyB0aGUgY2xhc3Mgd2l0aCBkZWZhdWx0IHZhbHVlcy4KICAgICAqIAogICAgICogQHJldHVybiB2b2lkICAKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICAgIHsKICAgICAgICAkdGhpcy0+Y2xlYXIoKTsgICAgCiAgICB9CgogICAgLyoqCiAgICAgKiBJbml0aWFsaXplIHByZWZlcmVuY2VzCiAgICAgKiAKICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCB0YWtlIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIGNvbmZpZyB2YWx1ZXMgYW5kIAogICAgICogd2lsbCBpbml0aWFsaXplIHRoZSBjbGFzcyB2YXJpYWJsZXMgdXNpbmcgdGhlbS4gCiAgICAgKiAKICAgICAqIEV4YW1wbGUgdXNlOgogICAgICogCiAgICAgKiA8cHJlPgogICAgICogJGh0dHBDb25maWdbJ21ldGhvZCddICAgICA9ICdHRVQnOwogICAgICogJGh0dHBDb25maWdbJ3RhcmdldCddICAgICA9ICdodHRwOi8vd3d3LnNvbWVkb21haW4uY29tL2luZGV4Lmh0bWwnOwogICAgICogJGh0dHBDb25maWdbJ3JlZmVycmVyJ10gICA9ICdodHRwOi8vd3d3LnNvbWVkb21haW4uY29tJzsKICAgICAqICRodHRwQ29uZmlnWyd1c2VyX2FnZW50J10gPSAnTXkgQ3Jhd2xlcic7CiAgICAgKiAkaHR0cENvbmZpZ1sndGltZW91dCddICAgID0gJzMwJzsKICAgICAqICRodHRwQ29uZmlnWydwYXJhbXMnXSAgICAgPSBhcnJheSgndmFyMScgPT4gJ3Rlc3R2YWx1ZScsICd2YXIyJyA9PiAnc29tZXZhbHVlJyk7CiAgICAgKiAKICAgICAqICRodHRwID0gbmV3IEh0dHAoKTsKICAgICAqICRodHRwLT5pbml0aWFsaXplKCRodHRwQ29uZmlnKTsKICAgICAqIDwvcHJlPgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSBDb25maWcgdmFsdWVzIGFzIGFzc29jaWF0aXZlIGFycmF5CiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLyAgICAKICAgIGZ1bmN0aW9uIGluaXRpYWxpemUoJGNvbmZpZyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgJHRoaXMtPmNsZWFyKCk7CiAgICAgICAgZm9yZWFjaCAoJGNvbmZpZyBhcyAka2V5ID0+ICR2YWwpCiAgICAgICAgewogICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPiRrZXkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkbWV0aG9kID0gJ3NldCcgLiB1Y2ZpcnN0KHN0cl9yZXBsYWNlKCdfJywgJycsICRrZXkpKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKG1ldGhvZF9leGlzdHMoJHRoaXMsICRtZXRob2QpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT4kbWV0aG9kKCR2YWwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT4ka2V5ID0gJHZhbDsKICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBDbGVhciBFdmVyeXRoaW5nCiAgICAgKiAKICAgICAqIENsZWFycyBhbGwgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGNsYXNzIGFuZCBzZXRzIHRoZSBvYmplY3QgdG8KICAgICAqIHRoZSBiZWdpbm5pbmcgc3RhdGUuIFZlcnkgaGFuZHkgaWYgeW91IGFyZSBkb2luZyBzdWJzZXF1ZW50IGNhbGxzIAogICAgICogd2l0aCBkaWZmZXJlbnQgZGF0YS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gY2xlYXIoKQogICAgewogICAgICAgIC8vIFNldCB0aGUgcmVxdWVzdCBkZWZhdWx0cwogICAgICAgICR0aGlzLT5ob3N0ICAgICAgICAgPSAnJzsKICAgICAgICAkdGhpcy0+cG9ydCAgICAgICAgID0gMDsKICAgICAgICAkdGhpcy0+cGF0aCAgICAgICAgID0gJyc7CiAgICAgICAgJHRoaXMtPnRhcmdldCAgICAgICA9ICcnOwogICAgICAgICR0aGlzLT5tZXRob2QgICAgICAgPSAnR0VUJzsKICAgICAgICAkdGhpcy0+c2NoZW1hICAgICAgID0gJ2h0dHAnOwogICAgICAgICR0aGlzLT5wYXJhbXMgICAgICAgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5oZWFkZXJzICAgICAgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5jb29raWVzICAgICAgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5fY29va2llcyAgICAgPSBhcnJheSgpOwoJJHRoaXMtPmhlYWRlckFycmF5ICA9IGFycmF5KCk7CgkkdGhpcy0+cHJveHkgICAgICAgID0gbnVsbDsKICAgICAgICAKICAgICAgICAvLyBTZXQgdGhlIGNvbmZpZyBkZXRhaWxzICAgICAgICAKICAgICAgICAkdGhpcy0+ZGVidWcgICAgICAgID0gRkFMU0U7CiAgICAgICAgJHRoaXMtPmVycm9yICAgICAgICA9ICcnOwogICAgICAgICR0aGlzLT5zdGF0dXMgICAgICAgPSAwOwogICAgICAgICR0aGlzLT50aW1lb3V0ICAgICAgPSAnMjUnOwogICAgICAgICR0aGlzLT51c2VDdXJsICAgICAgPSBUUlVFOwogICAgICAgICR0aGlzLT5yZWZlcnJlciAgICAgPSAnJzsKICAgICAgICAkdGhpcy0+dXNlcm5hbWUgICAgID0gJyc7CiAgICAgICAgJHRoaXMtPnBhc3N3b3JkICAgICA9ICcnOwogICAgICAgICR0aGlzLT5yZWRpcmVjdCAgICAgPSBGQUxTRTsKCSR0aGlzLT5yZXN1bHQgICAgICAgPSBudWxsOwogICAgICAgIAogICAgICAgIC8vIFNldCB0aGUgY29va2llIGFuZCBhZ2VudCBkZWZhdWx0cwogICAgICAgICR0aGlzLT5uZXh0VG9rZW4gICAgPSAnJzsKICAgICAgICAkdGhpcy0+dXNlQ29va2llICAgID0gVFJVRTsKICAgICAgICAkdGhpcy0+c2F2ZUNvb2tpZSAgID0gVFJVRTsKICAgICAgICAkdGhpcy0+bWF4UmVkaXJlY3QgID0gMzsKICAgICAgICAkdGhpcy0+Y29va2llUGF0aCAgID0gJ2Nvb2tpZS50eHQnOwogICAgICAgICR0aGlzLT51c2VyQWdlbnQgICAgPSAnTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1VUzsgcnY6MS44LjEuNikgR2Vja28vMjAwNzA3MjUgRmlyZWZveC8yLjAuMC45JzsKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBTZXQgdGFyZ2V0IFVSTAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgVVJMIG9mIHRhcmdldCByZXNvdXJjZQogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldFRhcmdldCgkdXJsKQogICAgewogICAgICAgIGlmICgkdXJsKQogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPnRhcmdldCA9ICR1cmw7CiAgICAgICAgfSAgIAogICAgfQogICAgCiAgICAvKioKICAgICAqIFNldCBodHRwIG1ldGhvZAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgSFRUUCBtZXRob2QgdG8gdXNlIChHRVQgb3IgUE9TVCkKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBzZXRNZXRob2QoJG1ldGhvZCkKICAgIHsKICAgICAgICBpZiAoJG1ldGhvZCA9PSAnR0VUJyB8fCAkbWV0aG9kID09ICdQT1NUJykKICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5tZXRob2QgPSAkbWV0aG9kOwogICAgICAgIH0gICAKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBTZXQgcmVmZXJyZXIgVVJMCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyBVUkwgb2YgcmVmZXJyZXIgcGFnZQogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldFJlZmVycmVyKCRyZWZlcnJlcikKICAgIHsKICAgICAgICBpZiAoJHJlZmVycmVyKQogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPnJlZmVycmVyID0gJHJlZmVycmVyOwogICAgICAgIH0gICAKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBTZXQgVXNlciBhZ2VudCBzdHJpbmcKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIEZ1bGwgdXNlciBhZ2VudCBzdHJpbmcKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBzZXRVc2VyYWdlbnQoJGFnZW50KQogICAgewogICAgICAgIGlmICgkYWdlbnQpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+dXNlckFnZW50ID0gJGFnZW50OwogICAgICAgIH0gICAKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBTZXQgdGltZW91dCBvZiBleGVjdXRpb24KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ZWdlciBUaW1lb3V0IGRlbGF5IGluIHNlY29uZHMKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBzZXRUaW1lb3V0KCRzZWNvbmRzKQogICAgewogICAgICAgIGlmICgkc2Vjb25kcyA+IDApCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+dGltZW91dCA9ICRzZWNvbmRzOwogICAgICAgIH0gICAKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBTZXQgY29va2llIHBhdGggKGNVUkwgb25seSkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIEZpbGUgbG9jYXRpb24gb2YgY29va2llamFyCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gc2V0Q29va2llcGF0aCgkcGF0aCkKICAgIHsKICAgICAgICBpZiAoJHBhdGgpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+Y29va2llUGF0aCA9ICRwYXRoOwogICAgICAgIH0gICAKICAgIH0KCiAgICBmdW5jdGlvbiBzZXRSYXdQb3N0RGF0YSgkZGF0YSkKICAgIHsKICAgICAgJHRoaXMtPnJhd1Bvc3REYXRhID0gJGRhdGE7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgcmVxdWVzdCBwYXJhbWV0ZXJzCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5IEFsbCB0aGUgcGFyYW1ldGVycyBmb3IgR0VUIG9yIFBPU1QKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBzZXRQYXJhbXMoJGRhdGFBcnJheSkKICAgIHsKICAgICAgaWYoICFpc19hcnJheSgkZGF0YUFycmF5KSApCgl7CgkgICR0aGlzLT5zZXRSYXdQb3N0RGF0YSgkZGF0YUFycmF5KTsKCX0KICAgICAgZWxzZSBpZiAoaXNfYXJyYXkoJGRhdGFBcnJheSkpCiAgICAgICAgewoJICAkdGhpcy0+cGFyYW1zID0gYXJyYXlfbWVyZ2UoJHRoaXMtPnBhcmFtcywgJGRhdGFBcnJheSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvKioKICAgICAqIFNldCBiYXNpYyBodHRwIGF1dGhlbnRpY2F0aW9uIHJlYWxtCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyBVc2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24KICAgICAqIEBwYXJhbSBzdHJpbmcgUGFzc3dvcmQgZm9yIGF1dGhlbnRpY2F0aW9uCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gc2V0QXV0aCgkdXNlcm5hbWUsICRwYXNzd29yZCkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCR1c2VybmFtZSkgJiYgIWVtcHR5KCRwYXNzd29yZCkpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+dXNlcm5hbWUgPSAkdXNlcm5hbWU7CiAgICAgICAgICAgICR0aGlzLT5wYXNzd29yZCA9ICRwYXNzd29yZDsKICAgICAgICB9CiAgICB9CiAgICAKICAgIC8qKgogICAgICogU2V0IG1heGltdW0gbnVtYmVyIG9mIHJlZGlyZWN0aW9uIHRvIGZvbGxvdwogICAgICoKICAgICAqIEBwYXJhbSBpbnRlZ2VyIE1heGltdW0gbnVtYmVyIG9mIHJlZGlyZWN0cwogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldE1heHJlZGlyZWN0KCR2YWx1ZSkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCR2YWx1ZSkpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+bWF4UmVkaXJlY3QgPSAkdmFsdWU7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvKioKICAgICAqIEFkZCByZXF1ZXN0IHBhcmFtZXRlcnMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIE5hbWUgb2YgdGhlIHBhcmFtZXRlcgogICAgICogQHBhcmFtIHN0cmluZyBWYWx1ZSBvZiB0aGUgcGFyYW1ldGVyCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gYWRkUGFyYW0oJG5hbWUsICR2YWx1ZSkKICAgIHsKICAgICAgaWYgKCAhZW1wdHkoJG5hbWUpICYmICFpc19udWxsKCR2YWx1ZSkgKQogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPnBhcmFtc1skbmFtZV0gPSAkdmFsdWU7CiAgICAgICAgfSAgIAogICAgfQogICAgCiAgICAvKioKICAgICAqIEFkZCBhIGNvb2tpZSB0byB0aGUgcmVxdWVzdAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgTmFtZSBvZiBjb29raWUKICAgICAqIEBwYXJhbSBzdHJpbmcgVmFsdWUgb2YgY29va2llCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gYWRkQ29va2llKCRuYW1lLCAkdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKCFlbXB0eSgkbmFtZSkgJiYgIWVtcHR5KCR2YWx1ZSkpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+Y29va2llc1skbmFtZV0gPSAkdmFsdWU7CiAgICAgICAgfSAgIAogICAgfQogICAgCiAgICAvKioKICAgICAqIFdoZXRoZXIgdG8gdXNlIGNVUkwgb3Igbm90CiAgICAgKgogICAgICogQHBhcmFtIGJvb2xlYW4gV2hldGhlciB0byB1c2UgY1VSTCBvciBub3QKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiB1c2VDdXJsKCR2YWx1ZSA9IFRSVUUpCiAgICB7CiAgICAgICAgaWYgKGlzX2Jvb2woJHZhbHVlKSkKICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT51c2VDdXJsID0gJHZhbHVlOwogICAgICAgIH0gICAKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBXaGV0aGVyIHRvIHVzZSBjb29raWVzIG9yIG5vdAogICAgICoKICAgICAqIEBwYXJhbSBib29sZWFuIFdoZXRoZXIgdG8gdXNlIGNvb2tpZXMgb3Igbm90CiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gdXNlQ29va2llKCR2YWx1ZSA9IFRSVUUpCiAgICB7CiAgICAgICAgaWYgKGlzX2Jvb2woJHZhbHVlKSkKICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT51c2VDb29raWUgPSAkdmFsdWU7CiAgICAgICAgfSAgIAogICAgfQogICAgCiAgICAvKioKICAgICAqIFdoZXRoZXIgdG8gc2F2ZSBwZXJzaXN0ZW50IGNvb2tpZXMgaW4gc3Vic2VxdWVudCBjYWxscwogICAgICoKICAgICAqIEBwYXJhbSBib29sZWFuIFdoZXRoZXIgdG8gc2F2ZSBwZXJzaXN0ZW50IGNvb2tpZXMgb3Igbm90CiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gc2F2ZUNvb2tpZSgkdmFsdWUgPSBUUlVFKQogICAgewogICAgICAgIGlmIChpc19ib29sKCR2YWx1ZSkpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+c2F2ZUNvb2tpZSA9ICR2YWx1ZTsKICAgICAgICB9ICAgCiAgICB9CiAgICAKICAgIC8qKgogICAgICogV2hldGhlciB0byBmb2xsb3cgSFRUUCByZWRpcmVjdHMKICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbGVhbiBXaGV0aGVyIHRvIGZvbGxvdyBIVFRQIHJlZGlyZWN0cyBvciBub3QKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBmb2xsb3dSZWRpcmVjdHMoJHZhbHVlID0gVFJVRSkKICAgIHsKICAgICAgICBpZiAoaXNfYm9vbCgkdmFsdWUpKQogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPnJlZGlyZWN0ID0gJHZhbHVlOwogICAgICAgIH0gICAKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBHZXQgZXhlY3V0aW9uIHJlc3VsdCBib2R5CiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgb3V0cHV0IG9mIGV4ZWN1dGlvbgogICAgICovCiAgICBmdW5jdGlvbiBnZXRSZXN1bHQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmVzdWx0OwogICAgfQogICAgCiAgICAvKioKICAgICAqIEdldCBleGVjdXRpb24gcmVzdWx0IGhlYWRlcnMKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5IGxhc3QgaGVhZGVycyBvZiBleGVjdXRpb24KICAgICAqLwogICAgZnVuY3Rpb24gZ2V0SGVhZGVycygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5oZWFkZXJzOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGV4ZWN1dGlvbiBzdGF0dXMgY29kZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ZWdlciBsYXN0IGh0dHAgc3RhdHVzIGNvZGUKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U3RhdHVzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnN0YXR1czsKICAgIH0KICAgICAgICAKICAgIC8qKgogICAgICogR2V0IGxhc3QgZXhlY3V0aW9uIGVycm9yCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgbGFzdCBlcnJvciBtZXNzYWdlIChpZiBhbnkpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldEVycm9yKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmVycm9yOwogICAgfQoKICAgIC8qKgogICAgICogUmVxdWVzdCBIZWFkZXIgRXhpc3RzPwogICAgICovCiAgICBmdW5jdGlvbiByZXF1ZXN0SGVhZGVyRXhpc3RzKCRrZXkpCiAgICB7CiAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPmhlYWRlckFycmF5KSApCgl7CgkgICR0aGlzLT5oZWFkZXJBcnJheSA9IGFycmF5KCk7Cgl9CiAgICAgIGlmKCBzdHJwb3MoJGtleSwnOicpICE9PSBGQUxTRSApCgl7CgkgICR0bXAgPSBleHBsb2RlKCc6Jywka2V5KTsKCSAgJGtleSA9IHRyaW0oJHRtcFswXSk7Cgl9CiAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5oZWFkZXJBcnJheSk7ICRpKysgKQoJewoJICAkdG1wID0gZXhwbG9kZSgnOicsJHRoaXMtPmhlYWRlckFycmF5WyRpXSwxKTsKCSAgJGtleTIgPSB0cmltKCR0bXBbMF0pOwoJICBpZiggJGtleTIgPT0gJGtleSApIHJldHVybiBUUlVFOwoJfQogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgYSByZXF1ZXN0IGhlYWRlcgogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gYWRkUmVxdWVzdEhlYWRlcigkc3RyLCRwcmVwZW5kID0gZmFsc2UpCiAgICB7CiAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPmhlYWRlckFycmF5KSApCgl7CgkgICR0aGlzLT5oZWFkZXJBcnJheSA9IGFycmF5KCk7Cgl9CgogICAgICAkZiA9IDA7CiAgICAgIGlmKCBzdHJwb3MoJHN0ciwnOicpICE9PSBGQUxTRSApCgl7CgkgICR0bXAgPSBleHBsb2RlKCc6Jywkc3RyLDEpOwoJICAka2V5ID0gdHJpbSgkdG1wWzBdKTsKCSAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPmhlYWRlckFycmF5KTsgJGkrKyApCgkgICAgewoJICAgICAgJHRtcCA9IGV4cGxvZGUoJzonLCR0aGlzLT5oZWFkZXJBcnJheVskaV0sMSk7CgkgICAgICAka2V5MiA9IHRyaW0oJHRtcFswXSk7CgkgICAgICBpZiggJGtleTIgPT0gJGtleSApCgkJewoJCSAgLy8gZm91bmQgYSBkdXBsaWNhdGUuCgkJICAkdGhpcy0+aGVhZGVyQXJyYXlbJGldID0gJHN0cjsKCQkgICRmID0gMTsKCQkgIGJyZWFrOwoJCX0KCSAgICB9Cgl9CiAgICAgIGlmKCAhJGYgKQoJewoJICBpZiggJHByZXBlbmQgKQoJICAgIHsKCSAgICAgIGFycmF5X3Vuc2hpZnQoJHRoaXMtPmhlYWRlckFycmF5LCRzdHIpOwoJICAgIH0KCSAgZWxzZQoJICAgIHsKCSAgICAgICR0aGlzLT5oZWFkZXJBcnJheVtdID0gJHN0cjsKCSAgICB9Cgl9CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2lzQ3VybFN1aXRhYmxlKCkKICAgIHsKICAgICAgc3RhdGljICRfY3VybGdvb2QgPSAtMTsKCiAgICAgIGlmKCAkX2N1cmxnb29kID09IC0xICkKCXsKCSAgJF9jdXJsZ29vZCA9IDA7CgkgIGlmKCBpbl9hcnJheSgnY3VybCcsZ2V0X2xvYWRlZF9leHRlbnNpb25zKCkpICkgCgkgICAgewoJICAgICAgaWYoIGZ1bmN0aW9uX2V4aXN0cygnY3VybF92ZXJzaW9uJykgKQoJCXsKCQkgICR0bXAgPSBjdXJsX3ZlcnNpb24oKTsKCQkgIGlmKCBpc3NldCgkdG1wWyd2ZXJzaW9uJ10pICkKCQkgICAgewoJCSAgICAgIGlmKCB2ZXJzaW9uX2NvbXBhcmUoJHRtcFsndmVyc2lvbiddLCc3LjE5LjcnKSA+PSAwICkKCQkJewoJCQkgICRfY3VybGdvb2QgPSAxOwoJCQl9CgkJICAgIH0KCQl9CgkgICAgfQoJfQoKICAgICAgcmV0dXJuICRfY3VybGdvb2Q7CiAgICB9CgogICAgLyoqCiAgICAgKiBFeGVjdXRlIGEgSFRUUCByZXF1ZXN0CiAgICAgKiAKICAgICAqIEV4ZWN1dGVzIHRoZSBodHRwIGZldGNoIHVzaW5nIGFsbCB0aGUgc2V0IHByb3BlcnRpZXMuIEludGVsbGVnZW50bHkKICAgICAqIHN3aXRjaCB0byBmc29ja29wZW4gaWYgY1VSTCBpcyBub3QgcHJlc2VudC4gQW5kIGJlIHNtYXJ0IHRvIGZvbGxvdwogICAgICogcmVkaXJlY3RzIChpZiBhc2tlZCBzbykuCiAgICAgKiAKICAgICAqIEBwYXJhbSBzdHJpbmcgVVJMIG9mIHRoZSB0YXJnZXQgcGFnZSAob3B0aW9uYWwpCiAgICAgKiBAcGFyYW0gc3RyaW5nIFVSTCBvZiB0aGUgcmVmZXJyZXIgcGFnZSAob3B0aW9uYWwpCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBodHRwIG1ldGhvZCAoR0VUIG9yIFBPU1QpIChvcHRpb25hbCkKICAgICAqIEBwYXJhbSBhcnJheSBQYXJhbWV0ZXIgYXJyYXkgZm9yIEdFVCBvciBQT1NUIChvcHRpb25hbCkKICAgICAqIEByZXR1cm4gc3RyaW5nIFJlc3BvbnNlIGJvZHkgb2YgdGhlIHRhcmdldCBwYWdlCiAgICAgKi8gICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gZXhlY3V0ZSgkdGFyZ2V0ID0gJycsICRyZWZlcnJlciA9ICcnLCAkbWV0aG9kID0gJycsICRkYXRhID0gYXJyYXkoKSkKICAgIHsKICAgICAgICAvLyBJZiBjVVJMIGlzIG5vdCBpbnN0YWxsZWQsIHdlJ2xsIGZvcmNlIGZzY29rb3BlbgoJJHRoaXMtPnVzZUN1cmwgPSAkdGhpcy0+dXNlQ3VybCAmJiAkdGhpcy0+X2lzQ3VybFN1aXRhYmxlKCk7CiAgICAgICAgCiAgICAgICAgLy8gUG9wdWxhdGUgdGhlIHByb3BlcnRpZXMKICAgICAgICAkdGhpcy0+dGFyZ2V0ID0gKCR0YXJnZXQpID8gJHRhcmdldCA6ICR0aGlzLT50YXJnZXQ7CiAgICAgICAgJHRoaXMtPm1ldGhvZCA9ICgkbWV0aG9kKSA/ICRtZXRob2QgOiAkdGhpcy0+bWV0aG9kOwogICAgICAgIAogICAgICAgICR0aGlzLT5yZWZlcnJlciA9ICgkcmVmZXJyZXIpID8gJHJlZmVycmVyIDogJHRoaXMtPnJlZmVycmVyOwogICAgICAgIAogICAgICAgIC8vIEFkZCB0aGUgbmV3IHBhcmFtcwogICAgICAgIGlmIChpc19hcnJheSgkZGF0YSkgJiYgY291bnQoJGRhdGEpID4gMCkgCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+cGFyYW1zID0gYXJyYXlfbWVyZ2UoJHRoaXMtPnBhcmFtcywgJGRhdGEpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBQcm9jZXNzIGRhdGEsIGlmIHByZXNlbnRlZAoJJHF1ZXJ5U3RyaW5nID0gJyc7CglpZigkdGhpcy0+cmF3UG9zdERhdGEpCgl7CgkgICRxdWVyeVN0cmluZyA9ICR0aGlzLT5yYXdQb3N0RGF0YTsKCX0KICAgICAgICBlbHNlIGlmKGlzX2FycmF5KCR0aGlzLT5wYXJhbXMpICYmIGNvdW50KCR0aGlzLT5wYXJhbXMpID4gMCkKICAgICAgICB7CgkgIGlmKCAkdGhpcy0+dXNlQ3VybCAmJiAkdGhpcy0+bWV0aG9kID09ICdQT1NUJyApCgkgICAgewoJICAgICAgZm9yZWFjaCggJHRoaXMtPnBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApCgkJewoJCSAgaWYoICR2YWx1ZSAhPSAnJyAmJiAkdmFsdWVbMF0gPT0gJ0AnICkKCQkgICAgewoJCSAgICAgIC8vIGZpbGUgdXBsb2Fkcy4uIHRoZXJlZm9yZSBuZWVkIHRvIGRvIG11bHRpcGFydC4KCQkgICAgICAvLyBuZWVkIHRvIGRvIGl0IGFzIGFuIGFycmF5LgoJCSAgICAgICRxdWVyeVN0cmluZyA9ICR0aGlzLT5wYXJhbXM7CgkJICAgIH0KCQl9CgkgICAgfQoJICBpZiggJHF1ZXJ5U3RyaW5nID09ICcnICkKCSAgICB7CgkgICAgICAkcXVlcnlTdHJpbmcgPSBodHRwX2J1aWxkX3F1ZXJ5KCR0aGlzLT5wYXJhbXMpOwoJICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEdFVCBtZXRob2QgY29uZmlndXJhdGlvbgogICAgICAgIGlmKCR0aGlzLT5tZXRob2QgPT0gJ0dFVCcpCiAgICAgICAgewogICAgICAgICAgICBpZihpc3NldCgkcXVlcnlTdHJpbmcpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkdGhpcy0+dGFyZ2V0ID0gJHRoaXMtPnRhcmdldCAuICI/IiAuICRxdWVyeVN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBQYXJzZSB0YXJnZXQgVVJMCiAgICAgICAgJHVybFBhcnNlZCA9IHBhcnNlX3VybCgkdGhpcy0+dGFyZ2V0KTsKCWlmKCAkdGhpcy0+cG9ydCA9PSAwICYmIGlzc2V0KCR1cmxQYXJzZWRbJ3BvcnQnXSkgJiYgJHVybFBhcnNlZFsncG9ydCddID4gMCApCgkgIHsKCSAgICAkdGhpcy0+cG9ydCA9ICR1cmxQYXJzZWRbJ3BvcnQnXTsKCSAgfQogICAgICAgIAogICAgICAgIC8vIEhhbmRsZSBTU0wgY29ubmVjdGlvbiByZXF1ZXN0CiAgICAgICAgaWYgKCR1cmxQYXJzZWRbJ3NjaGVtZSddID09ICdodHRwcycpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+aG9zdCA9ICR1cmxQYXJzZWRbJ2hvc3QnXTsKICAgICAgICAgICAgJHRoaXMtPnBvcnQgPSAoJHRoaXMtPnBvcnQgIT0gMCkgPyAkdGhpcy0+cG9ydCA6IDQ0MzsKCSAgICAkdGhpcy0+X3NvY2tldCA9ICdzc2w6Ly8nLiR1cmxQYXJzZWRbJ2hvc3QnXS4nOicuJHRoaXMtPnBvcnQ7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5ob3N0ID0gJHVybFBhcnNlZFsnaG9zdCddOwogICAgICAgICAgICAkdGhpcy0+cG9ydCA9ICgkdGhpcy0+cG9ydCAhPSAwKSA/ICR0aGlzLT5wb3J0IDogODA7CgkgICAgJHRoaXMtPl9zb2NrZXQgPSAndGNwOi8vJy4kdXJsUGFyc2VkWydob3N0J10uJzonLiR0aGlzLT5wb3J0OwogICAgICAgIH0KCiAgICAgICAgLy8gRmluYWxpemUgdGhlIHRhcmdldCBwYXRoCiAgICAgICAgJHRoaXMtPnBhdGggICA9IChpc3NldCgkdXJsUGFyc2VkWydwYXRoJ10pID8gJHVybFBhcnNlZFsncGF0aCddIDogJy8nKSAuIChpc3NldCgkdXJsUGFyc2VkWydxdWVyeSddKSA/ICc/JyAuICR1cmxQYXJzZWRbJ3F1ZXJ5J10gOiAnJyk7CiAgICAgICAgJHRoaXMtPnNjaGVtYSA9ICR1cmxQYXJzZWRbJ3NjaGVtZSddOwogICAgICAgIAogICAgICAgIC8vIFBhc3MgdGhlIHJlcXVyZWQgY29va2llcwogICAgICAgICR0aGlzLT5fcGFzc0Nvb2tpZXMoKTsKICAgICAgICAKICAgICAgICAvLyBQcm9jZXNzIGNvb2tpZXMsIGlmIHJlcXVlc3RlZAoJJGNvb2tpZVN0cmluZyA9ICcnOwogICAgICAgIGlmKGlzX2FycmF5KCR0aGlzLT5jb29raWVzKSAmJiBjb3VudCgkdGhpcy0+Y29va2llcykgPiAwKQogICAgICAgIHsKICAgICAgICAgICAgLy8gR2V0IGEgYmxhbmsgc2xhdGUKICAgICAgICAgICAgJHRlbXBTdHJpbmcgICA9IGFycmF5KCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDb252ZXJ0IGNvb2tpZXNhIGFycmF5IGludG8gYSBxdWVyeSBzdHJpbmcgKGllIGFuaW1hbD1kb2cmc3BvcnQ9YmFzZWJhbGwpCiAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5jb29raWVzIGFzICRrZXkgPT4gJHZhbHVlKSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoc3RybGVuKHRyaW0oJHZhbHVlKSkgPiAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0ZW1wU3RyaW5nW10gPSAka2V5IC4gIj0iIC4gdXJsZW5jb2RlKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgICRjb29raWVTdHJpbmcgPSBqb2luKCcmJywgJHRlbXBTdHJpbmcpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBEbyB3ZSBuZWVkIHRvIHVzZSBjVVJMCiAgICAgICAgaWYgKCR0aGlzLT51c2VDdXJsKQogICAgICAgIHsKICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBQSFAgY1VSTCBoYW5kbGUKICAgICAgICAgICAgJGNoID0gY3VybF9pbml0KCk7CiAgICAKICAgICAgICAgICAgLy8gR0VUIG1ldGhvZCBjb25maWd1cmF0aW9uCiAgICAgICAgICAgIGlmKCR0aGlzLT5tZXRob2QgPT0gJ0dFVCcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0ICgkY2gsIENVUkxPUFRfSFRUUEdFVCwgVFJVRSk7IAogICAgICAgICAgICAgICAgY3VybF9zZXRvcHQgKCRjaCwgQ1VSTE9QVF9QT1NULCBGQUxTRSk7IAogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFBPU1QgbWV0aG9kIGNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCAoJGNoLCBDVVJMT1BUX1BPU1QsIFRSVUUpOyAKICAgICAgICAgICAgICAgIGN1cmxfc2V0b3B0ICgkY2gsIENVUkxPUFRfSFRUUEdFVCwgRkFMU0UpOyAKCiAgICAgICAgICAgICAgICBpZigkcXVlcnlTdHJpbmcpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY3VybF9zZXRvcHQgKCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkcXVlcnlTdHJpbmcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBCYXNpYyBBdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9uCiAgICAgICAgICAgIGlmICgkdGhpcy0+dXNlcm5hbWUgJiYgJHRoaXMtPnBhc3N3b3JkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUlBXRCwgJHRoaXMtPnVzZXJuYW1lIC4gJzonIC4gJHRoaXMtPnBhc3N3b3JkKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKCSAgICBpZiAoJHRoaXMtPnByb3h5KSAKCSAgICB7CgkgICAgICAgIGN1cmxfc2V0b3AoJGNoLENVUkxfUFJPWFksJHRoaXMtPnByb3h5KTsKCSAgICB9CgogICAgICAgICAgICAvLyBDdXN0b20gY29va2llIGNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgaWYoJHRoaXMtPnVzZUNvb2tpZSkKICAgICAgICAgICAgewoJICAgICAgLy8gd2UgYXJlIHNlbmRpbmcgY29va2llcy4KCSAgICAgIGlmKGlzc2V0KCRjb29raWVTdHJpbmcpKQoJCXsKCQkgIGN1cmxfc2V0b3B0ICgkY2gsIENVUkxPUFRfQ09PS0lFLCAkY29va2llU3RyaW5nKTsKCQl9CgkgICAgICBlbHNlCgkJewoJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsICR0aGlzLT5jb29raWVQYXRoKTsKCQl9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoJHRoaXMtPnNhdmVDb29raWUpIAoJICAgIHsKCSAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsICAgICAgJHRoaXMtPmNvb2tpZVBhdGgpOyAgICAvLyBTYXZlIGNvb2tpZXMgaGVyZS4KCSAgICB9CiAgICAgICAgICAgIAoKCSAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAgICAgVFJVRSk7ICAgICAgICAgICAgICAgICAvLyBObyBuZWVkIG9mIGhlYWRlcnMKCSAgICBpZiggaXNfYXJyYXkoJHRoaXMtPmhlYWRlckFycmF5KSApCgkgICAgICB7CgkJY3VybF9zZXRvcHQoJGNoLENVUkxPUFRfSFRUUEhFQURFUiwkdGhpcy0+aGVhZGVyQXJyYXkpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQljdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAgICAgVFJVRSk7ICAgICAgICAgICAgICAgICAvLyBObyBuZWVkIG9mIGhlYWRlcnMKCSAgICAgIH0KCSAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfTk9CT0RZLCAgICAgICAgIEZBTFNFKTsgICAgICAgICAgICAgICAgLy8gUmV0dXJuIGJvZHkKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwgICAgICAkdGhpcy0+Y29va2llUGF0aCk7ICAgIC8vIENvb2tpZSBtYW5hZ2VtZW50LgogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwgICAgICR0aGlzLT5jb29raWVQYXRoKTsgICAgLy8gQ29va2llIG1hbmFnZW1lbnQuCiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9USU1FT1VULCAgICAgICAgJHRoaXMtPnRpbWVvdXQpOyAgICAgICAvLyBUaW1lb3V0CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICAgICAgJHRoaXMtPnVzZXJBZ2VudCk7ICAgICAvLyBXZWJib3QgbmFtZQogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAgICAgICAgICAgICR0aGlzLT50YXJnZXQpOyAgICAgICAgLy8gVGFyZ2V0IHNpdGUKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFRkVSRVIsICAgICAgICAkdGhpcy0+cmVmZXJyZXIpOyAgICAgIC8vIFJlZmVyZXIgdmFsdWUKICAgICAgICAgICAgCiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9WRVJCT1NFLCAgICAgICAgRkFMU0UpOyAgICAgICAgICAgICAgICAvLyBNaW5pbWl6ZSBsb2dzCiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgRkFMU0UpOyAgICAgICAgICAgICAgICAvLyBObyBjZXJ0aWZpY2F0ZQogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sICR0aGlzLT5yZWRpcmVjdCk7ICAgICAgLy8gRm9sbG93IHJlZGlyZWN0cwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfTUFYUkVESVJTLCAgICAgICR0aGlzLT5tYXhSZWRpcmVjdCk7ICAgLy8gTGltaXQgcmVkaXJlY3Rpb25zIHRvIGZvdXIKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCBUUlVFKTsgICAgICAgICAgICAgICAgIC8vIFJldHVybiBpbiBzdHJpbmcKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEdldCB0aGUgdGFyZ2V0IGNvbnRlbnRzCiAgICAgICAgICAgICRjb250ZW50ID0gY3VybF9leGVjKCRjaCk7CgkgICAgcHJpbnRfcigkdGhpcy0+dGFyZ2V0LiJcbiIpOwoJICAgIHByaW50X3IoJHF1ZXJ5U3RyaW5nLiJcbiIpOwoJICAgIHByaW50X3IoJGNvbnRlbnQpOwoJICAgIGlmKCAhZW1wdHkoJGNvbnRlbnQpICkKCSAgICAgIHsKCQkkdG1wID0gZXhwbG9kZSgiXHJcblxyXG4iLCAkY29udGVudCk7CgkJZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKQoJCSAgewoJCSAgICBpZiggZW1wdHkoJHRtcFskaV0pICkgdW5zZXQoJHRtcFskaV0pOwoJCSAgfQoKCQlpZiggY291bnQoJHRtcCkgPT0gMyApCgkJICB7CgkJICAgIGFycmF5X3NoaWZ0KCR0bXApOwoJCSAgfQoKCQlpZiggY291bnQoJHRtcCkgPiAxICkKCQkgIHsKCQkgICAgLy8gU3RvcmUgdGhlIGNvbnRlbnRzCgkJICAgICR0aGlzLT5yZXN1bHQgPSAkdG1wWzFdOwoJCSAgfQoJCQoJCS8vIFBhcnNlIHRoZSBoZWFkZXJzCgkJJHRoaXMtPl9wYXJzZUhlYWRlcnMoJHRtcFswXSk7CgkgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBHZXQgdGhlIHJlcXVlc3QgaW5mbyAKICAgICAgICAgICAgJHN0YXR1cyAgPSBjdXJsX2dldGluZm8oJGNoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFN0b3JlIHRoZSBlcnJvciAoaXMgYW55KQogICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKGN1cmxfZXJyb3IoJGNoKSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDbG9zZSBQSFAgY1VSTCBoYW5kbGUKICAgICAgICAgICAgY3VybF9jbG9zZSgkY2gpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewoJICAvLyBHZXQgYSBmaWxlIHBvaW50ZXIKCSAgJGZpbGVQb2ludGVyID0gQHN0cmVhbV9zb2NrZXRfY2xpZW50KCR0aGlzLT5fc29ja2V0LCAkZXJyb3JOdW1iZXIsICRlcnJvclN0cmluZywgJHRoaXMtPnRpbWVvdXQpOwogICAgICAgCgkgIC8vIFdlIGhhdmUgYW4gZXJyb3IgaWYgcG9pbnRlciBpcyBub3QgdGhlcmUKCSAgaWYgKCEkZmlsZVBvaW50ZXIpCiAgICAgICAgICAgIHsKCSAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ0ZhaWxlZCBvcGVuaW5nIGh0dHAgc29ja2V0IGNvbm5lY3Rpb246ICcgLiAkZXJyb3JTdHJpbmcgLiAnICgnIC4gJGVycm9yTnVtYmVyIC4gJyknKTsKCSAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU2V0IGh0dHAgaGVhZGVycyB3aXRoIGhvc3QsIHVzZXItYWdlbnQgYW5kIGNvbnRlbnQgdHlwZQogICAgICAgICAgICAkdGhpcy0+YWRkUmVxdWVzdEhlYWRlcigkdGhpcy0+bWV0aG9kIC4nICcuICR0aGlzLT5wYXRoLiAiICBIVFRQLzEuMSIsdHJ1ZSk7CgkgICAgJHRoaXMtPmFkZFJlcXVlc3RIZWFkZXIoIkhvc3Q6ICIgLiAkdGhpcy0+aG9zdCk7CgkgICAgJHRoaXMtPmFkZFJlcXVlc3RIZWFkZXIoJ0FjY2VwdDogKi8qJyk7CiAJICAgICR0aGlzLT5hZGRSZXF1ZXN0SGVhZGVyKCJVc2VyLUFnZW50OiAiIC4gJHRoaXMtPnVzZXJBZ2VudCk7CgkgICAgaWYoICEkdGhpcy0+cmVxdWVzdEhlYWRlckV4aXN0cygnQ29udGVudC1UeXBlJykgKQoJICAgICAgewoJCSR0aGlzLT5hZGRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpOwoJICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gU3BlY2lmeSB0aGUgY3VzdG9tIGNvb2tpZXMKICAgICAgICAgICAgaWYgKCR0aGlzLT51c2VDb29raWUgJiYgJGNvb2tpZVN0cmluZyAhPSAnJykKICAgICAgICAgICAgewoJICAgICAgJHRoaXMtPmFkZFJlcXVlc3RIZWFkZXIoIkNvb2tpZTogIiAuICRjb29raWVTdHJpbmcpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBQT1NUIG1ldGhvZCBjb25maWd1cmF0aW9uCiAgICAgICAgICAgIGlmICgkdGhpcy0+bWV0aG9kID09ICJQT1NUIikKICAgICAgICAgICAgewogICAgICAgICAgICAgICR0aGlzLT5hZGRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LUxlbmd0aDogIiAuIHN0cmxlbigkcXVlcnlTdHJpbmcpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gU3BlY2lmeSB0aGUgcmVmZXJyZXIKCSAgICAkdGhpcy0+YWRkUmVxdWVzdEhlYWRlcigiUmVmZXJlcjogIiAuICR0aGlzLT5yZWZlcnJlcik7CiAgICAgICAgICAgIGlmICgkdGhpcy0+cmVmZXJyZXIgIT0gJycpCiAgICAgICAgICAgIHsKCSAgICAgICR0aGlzLT5hZGRSZXF1ZXN0SGVhZGVyKCJSZWZlcmVyOiAiIC4gJHRoaXMtPnJlZmVycmVyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gU3BlY2lmeSBodHRwIGF1dGhlbnRpY2F0aW9uIChiYXNpYykKICAgICAgICAgICAgaWYgKCR0aGlzLT51c2VybmFtZSAmJiAkdGhpcy0+cGFzc3dvcmQpCiAgICAgICAgICAgIHsKCSAgICAgICR0aGlzLT5hZGRSZXF1ZXN0aGVhZGVyKCJBdXRob3JpemF0aW9uOiBCYXNpYyAiIC4gYmFzZTY0X2VuY29kZSgkdGhpcy0+dXNlcm5hbWUgLiAnOicgLiAkdGhpcy0+cGFzc3dvcmQpKTsKICAgICAgICAgICAgfQogICAgICAgCgkgICAgJHRoaXMtPmFkZFJlcXVlc3RIZWFkZXIoIkNvbm5lY3Rpb246IGNsb3NlIik7CiAgICAgICAKICAgICAgICAgICAgLy8gUE9TVCBtZXRob2QgY29uZmlndXJhdGlvbgoJICAgICRyZXF1ZXN0SGVhZGVyID0gaW1wbG9kZSgiXHJcbiIsJHRoaXMtPmhlYWRlckFycmF5KS4iXHJcblxyXG4iOwogICAgICAgICAgICBpZiAoJHRoaXMtPm1ldGhvZCA9PSAiUE9TVCIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRyZXF1ZXN0SGVhZGVyIC49ICRxdWVyeVN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gV2UncmUgcmVhZHkgdG8gbGF1bmNoCiAgICAgICAgICAgIGZ3cml0ZSgkZmlsZVBvaW50ZXIsICRyZXF1ZXN0SGVhZGVyKTsKCSAgICAKICAgICAgIAogICAgICAgICAgICAvLyBDbGVhbiB0aGUgc2xhdGUKICAgICAgICAgICAgJHJlc3BvbnNlSGVhZGVyID0gJyc7CiAgICAgICAgICAgICRyZXNwb25zZUNvbnRlbnQgPSAnJzsKCiAgICAgICAgICAgIC8vIDMuLi4yLi4uMS4uLkxhdW5jaCAhCgkgICAgJG4gPSAwOwogICAgICAgICAgICBkbwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkcmVzcG9uc2VIZWFkZXIgLj0gZnJlYWQoJGZpbGVQb2ludGVyLCAxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aGlsZSAoIXByZWdfbWF0Y2goJy9cXHJcXG5cXHJcXG4kLycsICRyZXNwb25zZUhlYWRlcikgJiYgIWZlb2YoJGZpbGVQb2ludGVyKSk7CgogICAgICAgICAgICAvLyBQYXJzZSB0aGUgaGVhZGVycwogICAgICAgICAgICAkdGhpcy0+X3BhcnNlSGVhZGVycygkcmVzcG9uc2VIZWFkZXIpOwoKICAgICAgICAgICAgLy8gRG8gd2UgaGF2ZSBhIDMwMS8zMDIgcmVkaXJlY3QgPwogICAgICAgICAgICBpZiAoKCR0aGlzLT5zdGF0dXMgPT0gJzMwMScgfHwgJHRoaXMtPnN0YXR1cyA9PSAnMzAyJykgJiYgJHRoaXMtPnJlZGlyZWN0ID09IFRSVUUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+Y3VyUmVkaXJlY3QgPCAkdGhpcy0+bWF4UmVkaXJlY3QpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgLy8gTGV0J3MgZmluZCBvdXQgdGhlIG5ldyByZWRpcmVjdCBVUkwKICAgICAgICAgICAgICAgICAgICAkbmV3VXJsUGFyc2VkID0gcGFyc2VfdXJsKCR0aGlzLT5oZWFkZXJzWydsb2NhdGlvbiddKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBpZiAoJG5ld1VybFBhcnNlZFsnaG9zdCddKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld1RhcmdldCA9ICR0aGlzLT5oZWFkZXJzWydsb2NhdGlvbiddOyAgICAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld1RhcmdldCA9ICR0aGlzLT5zY2hlbWEgLiAnOi8vJyAuICR0aGlzLT5ob3N0IC4gJy8nIC4gJHRoaXMtPmhlYWRlcnNbJ2xvY2F0aW9uJ107CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCBzb21lIG9mIHRoZSBwcm9wZXJ0aWVzCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnBvcnQgICA9IDA7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnN0YXR1cyA9IDA7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnBhcmFtcyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1ldGhvZCA9ICdQT1NUJzsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cmVmZXJyZXIgPSAkdGhpcy0+dGFyZ2V0OwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIC8vIEluY3JlYXNlIHRoZSByZWRpcmVjdCBjb3VudGVyCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmN1clJlZGlyZWN0Kys7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgLy8gTGV0J3MgZ28sIGdvLCBnbyAhCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJlc3VsdCA9ICR0aGlzLT5leGVjdXRlKCRuZXdUYXJnZXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ1RvbyBtYW55IHJlZGlyZWN0cy4nKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvLyBOb3BlLi4uc28gbGV0cyBnZXQgdGhlIHJlc3Qgb2YgdGhlIGNvbnRlbnRzIChub24tY2h1bmtlZCkKCSAgICAgIGlmICghaXNzZXQoJHRoaXMtPmhlYWRlcnNbJ3RyYW5zZmVyLWVuY29kaW5nJ10pIHx8ICR0aGlzLT5oZWFkZXJzWyd0cmFuc2Zlci1lbmNvZGluZyddICE9ICdjaHVua2VkJykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWZlb2YoJGZpbGVQb2ludGVyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZUNvbnRlbnQgLj0gZmdldHMoJGZpbGVQb2ludGVyLCAxMjgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKCQkgIHsKICAgICAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGNvbnRlbnRzIChjaHVua2VkKQoJCSAgICB3aGlsZSAoIWZlb2YoJGZpbGVQb2ludGVyKSAmJiAkY2h1bmtMZW5ndGggPSBoZXhkZWMoZmdldHMoJGZpbGVQb2ludGVyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2VDb250ZW50Q2h1bmsgPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlYWRMZW5ndGggPSAwOwogICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoJHJlYWRMZW5ndGggPCAkY2h1bmtMZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZUNvbnRlbnRDaHVuayAuPSBmcmVhZCgkZmlsZVBvaW50ZXIsICRjaHVua0xlbmd0aCAtICRyZWFkTGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWFkTGVuZ3RoID0gc3RybGVuKCRyZXNwb25zZUNvbnRlbnRDaHVuayk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZUNvbnRlbnQgLj0gJHJlc3BvbnNlQ29udGVudENodW5rOwogICAgICAgICAgICAgICAgICAgICAgICBmZ2V0cygkZmlsZVBvaW50ZXIpOyAgCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUgdGFyZ2V0IGNvbnRlbnRzCiAgICAgICAgICAgICAgICAkdGhpcy0+cmVzdWx0ID0gY2hvcCgkcmVzcG9uc2VDb250ZW50KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBUaGVyZSBpdCBpcyEgV2UgaGF2ZSBpdCEhIFJldHVybiB0byBiYXNlICEhIQogICAgICAgIHJldHVybiAkdGhpcy0+cmVzdWx0OwogICAgfQogICAgCiAgICAvKioKICAgICAqIFBhcnNlIEhlYWRlcnMgKGludGVybmFsKQogICAgICogCiAgICAgKiBQYXJzZSB0aGUgcmVzcG9uc2UgaGVhZGVycyBhbmQgc3RvcmUgdGhlbSBmb3IgZmluZGluZyB0aGUgcmVzcG9zbmUgCiAgICAgKiBzdGF0dXMsIHJlZGlyZWN0aW9uIGxvY2F0aW9uLCBjb29raWVzLCBldGMuIAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgUmF3IGhlYWRlciByZXNwb25zZQogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgZnVuY3Rpb24gX3BhcnNlSGVhZGVycygkcmVzcG9uc2VIZWFkZXIpCiAgICB7CiAgICAgICAgLy8gQnJlYWsgdXAgdGhlIGhlYWRlcnMKICAgICAgICAkaGVhZGVycyA9IGV4cGxvZGUoIlxyXG4iLCAkcmVzcG9uc2VIZWFkZXIpOwogICAgICAgIAogICAgICAgIC8vIENsZWFyIHRoZSBoZWFkZXIgYXJyYXkKICAgICAgICAkdGhpcy0+X2NsZWFySGVhZGVycygpOwogICAgICAgIAogICAgICAgIC8vIEdldCByZXNwb3NuZSBzdGF0dXMKICAgICAgICBpZigkdGhpcy0+c3RhdHVzID09IDApCiAgICAgICAgewogICAgICAgICAgICAvLyBPb29vcHMgIQogICAgICAgICAgICBpZighcHJlZ19tYXRjaCgiL2h0dHBcL1swLTldK1wuWzAtOV0rWyBcdF0rKFswLTldKylbIFx0XSooLiopXCQvaSIsICRoZWFkZXJzWzBdLCAkbWF0Y2hlcykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ1VuZXhwZWN0ZWQgSFRUUCByZXNwb25zZSBzdGF0dXMnKTsKICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gR290Y2hhIQogICAgICAgICAgICAkdGhpcy0+c3RhdHVzID0gJG1hdGNoZXNbMV07CiAgICAgICAgICAgIGFycmF5X3NoaWZ0KCRoZWFkZXJzKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gUHJlcGFyZSBhbGwgdGhlIG90aGVyIGhlYWRlcnMKICAgICAgICBmb3JlYWNoICgkaGVhZGVycyBhcyAkaGVhZGVyKQogICAgICAgIHsKICAgICAgICAgICAgLy8gR2V0IG5hbWUgYW5kIHZhbHVlCiAgICAgICAgICAgICRoZWFkZXJOYW1lICA9IHN0cnRvbG93ZXIoJHRoaXMtPl90b2tlbml6ZSgkaGVhZGVyLCAnOicpKTsKICAgICAgICAgICAgJGhlYWRlclZhbHVlID0gdHJpbShjaG9wKCR0aGlzLT5fdG9rZW5pemUoIlxyXG4iKSkpOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gSWYgaXRzIGFscmVhZHkgdGhlcmUsIHRoZW4gYWRkIGFzIGFuIGFycmF5LiBPdGhlcndpc2UsIGp1c3Qga2VlcCB0aGVyZQogICAgICAgICAgICBpZihpc3NldCgkdGhpcy0+aGVhZGVyc1skaGVhZGVyTmFtZV0pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihnZXR0eXBlKCR0aGlzLT5oZWFkZXJzWyRoZWFkZXJOYW1lXSkgPT0gInN0cmluZyIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmhlYWRlcnNbJGhlYWRlck5hbWVdID0gYXJyYXkoJHRoaXMtPmhlYWRlcnNbJGhlYWRlck5hbWVdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICR0aGlzLT5oZWFkZXJzWyRoZWFkZXJOYW1lXVtdID0gJGhlYWRlclZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHRoaXMtPmhlYWRlcnNbJGhlYWRlck5hbWVdID0gJGhlYWRlclZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAvLyBTYXZlIGNvb2tpZXMgaWYgYXNrZWQgCiAgICAgICAgaWYgKCR0aGlzLT5zYXZlQ29va2llICYmIGlzc2V0KCR0aGlzLT5oZWFkZXJzWydzZXQtY29va2llJ10pKQogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPl9wYXJzZUNvb2tpZSgpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBDbGVhciB0aGUgaGVhZGVycyBhcnJheSAoaW50ZXJuYWwpCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgZnVuY3Rpb24gX2NsZWFySGVhZGVycygpCiAgICB7CiAgICAgICAgJHRoaXMtPmhlYWRlcnMgPSBhcnJheSgpOwogICAgfQogICAgCiAgICAvKioKICAgICAqIFBhcnNlIENvb2tpZXMgKGludGVybmFsKQogICAgICogCiAgICAgKiBQYXJzZSB0aGUgc2V0LWNvb2tpZSBoZWFkZXJzIGZyb20gcmVzcG9uc2UgYW5kIGFkZCB0aGVtIGZvciBpbmNsdXNpb24uCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgZnVuY3Rpb24gX3BhcnNlQ29va2llKCkKICAgIHsKICAgICAgICAvLyBHZXQgdGhlIGNvb2tpZSBoZWFkZXIgYXMgYXJyYXkKICAgICAgICBpZihnZXR0eXBlKCR0aGlzLT5oZWFkZXJzWydzZXQtY29va2llJ10pID09ICJhcnJheSIpCiAgICAgICAgewogICAgICAgICAgICAkY29va2llSGVhZGVycyA9ICR0aGlzLT5oZWFkZXJzWydzZXQtY29va2llJ107CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICRjb29raWVIZWFkZXJzID0gYXJyYXkoJHRoaXMtPmhlYWRlcnNbJ3NldC1jb29raWUnXSk7CiAgICAgICAgfQoKICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGNvb2tpZXMKICAgICAgICBmb3IgKCRjb29raWUgPSAwOyAkY29va2llIDwgY291bnQoJGNvb2tpZUhlYWRlcnMpOyAkY29va2llKyspCiAgICAgICAgewogICAgICAgICAgICAkY29va2llTmFtZSAgPSB0cmltKCR0aGlzLT5fdG9rZW5pemUoJGNvb2tpZUhlYWRlcnNbJGNvb2tpZV0sICI9IikpOwogICAgICAgICAgICAkY29va2llVmFsdWUgPSAkdGhpcy0+X3Rva2VuaXplKCI7Iik7CiAgICAgICAgICAgIAogICAgICAgICAgICAkdXJsUGFyc2VkICAgPSBwYXJzZV91cmwoJHRoaXMtPnRhcmdldCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkZG9tYWluICAgICAgPSAkdXJsUGFyc2VkWydob3N0J107CiAgICAgICAgICAgICRzZWN1cmUgICAgICA9ICcwJzsKICAgICAgICAgICAgCiAgICAgICAgICAgICRwYXRoICAgICAgICA9ICIvIjsKICAgICAgICAgICAgJGV4cGlyZXMgICAgID0gIiI7CiAgICAgICAgICAgIAogICAgICAgICAgICB3aGlsZSgoJG5hbWUgPSB0cmltKHVybGRlY29kZSgkdGhpcy0+X3Rva2VuaXplKCI9IikpKSkgIT0gIiIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICR2YWx1ZSA9IHVybGRlY29kZSgkdGhpcy0+X3Rva2VuaXplKCI7IikpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzd2l0Y2goJG5hbWUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAicGF0aCIgICAgIDogJHBhdGggICAgID0gJHZhbHVlOyBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJkb21haW4iICAgOiAkZG9tYWluICAgPSAkdmFsdWU7IGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInNlY3VyZSIgICA6ICRzZWN1cmUgICA9ICgkdmFsdWUgIT0gJycpID8gJzEnIDogJzAnOyBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgJHRoaXMtPl9zZXRDb29raWUoJGNvb2tpZU5hbWUsICRjb29raWVWYWx1ZSwgJGV4cGlyZXMsICRwYXRoICwgJGRvbWFpbiwgJHNlY3VyZSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvKioKICAgICAqIFNldCBjb29raWUgKGludGVybmFsKQogICAgICogCiAgICAgKiBQb3B1bGF0ZSB0aGUgaW50ZXJuYWwgX2Nvb2tpZXMgYXJyYXkgZm9yIGZ1dHVyZSBpbmNsdXNpb24gaW4gCiAgICAgKiBzdWJzZXF1ZW50IHJlcXVlc3RzLiBUaGlzIGFjdHVhbGx5IHZhbGlkYXRlcyBhbmQgdGhlbiBwb3B1bGF0ZXMgCiAgICAgKiB0aGUgb2JqZWN0IHByb3BlcnRpZXMgd2l0aCBhIGRpbWVuc2lvbmFsIGVudHJ5IGZvciBjb29raWUuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyBDb29raWUgbmFtZQogICAgICogQHBhcmFtIHN0cmluZyBDb29raWUgdmFsdWUKICAgICAqIEBwYXJhbSBzdHJpbmcgQ29va2llIGV4cGlyZSBkYXRlCiAgICAgKiBAcGFyYW0gc3RyaW5nIENvb2tpZSBwYXRoCiAgICAgKiBAcGFyYW0gc3RyaW5nIENvb2tpZSBkb21haW4KICAgICAqIEBwYXJhbSBzdHJpbmcgQ29va2llIHNlY3VyaXR5ICgwID0gbm9uLXNlY3VyZSwgMSA9IHNlY3VyZSkKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIF9zZXRDb29raWUoJG5hbWUsICR2YWx1ZSwgJGV4cGlyZXMgPSAiIiAsICRwYXRoID0gIi8iICwgJGRvbWFpbiA9ICIiICwgJHNlY3VyZSA9IDApCiAgICB7CiAgICAgICAgaWYoc3RybGVuKCRuYW1lKSA9PSAwKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuKCR0aGlzLT5fc2V0RXJyb3IoIk5vIHZhbGlkIGNvb2tpZSBuYW1lIHdhcyBzcGVjaWZpZWQuIikpOwogICAgICAgIH0KCiAgICAgICAgaWYoc3RybGVuKCRwYXRoKSA9PSAwIHx8IHN0cmNtcCgkcGF0aFswXSwgIi8iKSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybigkdGhpcy0+X3NldEVycm9yKCIkcGF0aCBpcyBub3QgYSB2YWxpZCBwYXRoIGZvciBzZXR0aW5nIGNvb2tpZSAkbmFtZS4iKSk7CiAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICBpZigkZG9tYWluID09ICIiIHx8ICFzdHJwb3MoJGRvbWFpbiwgIi4iLCAkZG9tYWluWzBdID09ICIuIiA/IDEgOiAwKSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybigkdGhpcy0+X3NldEVycm9yKCIkZG9tYWluIGlzIG5vdCBhIHZhbGlkIGRvbWFpbiBmb3Igc2V0dGluZyBjb29raWUgJG5hbWUuIikpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkZG9tYWluID0gc3RydG9sb3dlcigkZG9tYWluKTsKICAgICAgICAKICAgICAgICBpZighc3RyY21wKCRkb21haW5bMF0sICIuIikpCiAgICAgICAgewogICAgICAgICAgICAkZG9tYWluID0gc3Vic3RyKCRkb21haW4sIDEpOwogICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgJG5hbWUgID0gJHRoaXMtPl9lbmNvZGVDb29raWUoJG5hbWUsIHRydWUpOwogICAgICAgICR2YWx1ZSA9ICR0aGlzLT5fZW5jb2RlQ29va2llKCR2YWx1ZSwgZmFsc2UpOwogICAgICAgIAogICAgICAgICRzZWN1cmUgPSBpbnR2YWwoJHNlY3VyZSk7CiAgICAgICAgCiAgICAgICAgJHRoaXMtPl9jb29raWVzW10gPSBhcnJheSggIm5hbWUiICAgICAgPT4gICRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgICAgID0+ICAkdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvbWFpbiIgICAgPT4gICRkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiICAgICAgPT4gICRwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBpcmVzIiAgID0+ICAkZXhwaXJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VjdXJlIiAgICA9PiAgJHNlY3VyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgfQogICAgCiAgICAvKioKICAgICAqIEVuY29kZSBjb29raWUgbmFtZS92YWx1ZSAoaW50ZXJuYWwpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyBWYWx1ZSBvZiBjb29raWUgdG8gZW5jb2RlCiAgICAgKiBAcGFyYW0gc3RyaW5nIE5hbWUgb2YgY29va2llIHRvIGVuY29kZQogICAgICogQHJldHVybiBzdHJpbmcgZW5jb2RlZCBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICBmdW5jdGlvbiBfZW5jb2RlQ29va2llKCR2YWx1ZSwgJG5hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuKCRuYW1lID8gc3RyX3JlcGxhY2UoIj0iLCAiJTI1IiwgJHZhbHVlKSA6IHN0cl9yZXBsYWNlKCI7IiwgIiUzQiIsICR2YWx1ZSkpOwogICAgfQogICAgCiAgICAvKioKICAgICAqIFBhc3MgQ29va2llcyAoaW50ZXJuYWwpCiAgICAgKiAKICAgICAqIEdldCB0aGUgY29va2llcyB3aGljaCBhcmUgdmFsaWQgZm9yIHRoZSBjdXJyZW50IHJlcXVlc3QuIENoZWNrcyAKICAgICAqIGRvbWFpbiBhbmQgcGF0aCB0byBkZWNpZGUgdGhlIHJldHVybi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICBmdW5jdGlvbiBfcGFzc0Nvb2tpZXMoKQogICAgewogICAgICAgIGlmIChpc19hcnJheSgkdGhpcy0+X2Nvb2tpZXMpICYmIGNvdW50KCR0aGlzLT5fY29va2llcykgPiAwKQogICAgICAgIHsKICAgICAgICAgICAgJHVybFBhcnNlZCA9IHBhcnNlX3VybCgkdGhpcy0+dGFyZ2V0KTsKICAgICAgICAgICAgJHRlbXBDb29raWVzID0gYXJyYXkoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGZvcmVhY2goJHRoaXMtPl9jb29raWVzIGFzICRjb29raWUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+X2RvbWFpbk1hdGNoKCR1cmxQYXJzZWRbJ2hvc3QnXSwgJGNvb2tpZVsnZG9tYWluJ10pICYmICgwID09PSBzdHJwb3MoJHVybFBhcnNlZFsncGF0aCddLCAkY29va2llWydwYXRoJ10pKQogICAgICAgICAgICAgICAgICAgICYmIChlbXB0eSgkY29va2llWydzZWN1cmUnXSkgfHwgJHVybFBhcnNlZFsncHJvdG9jb2wnXSA9PSAnaHR0cHMnKSkgCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRlbXBDb29raWVzWyRjb29raWVbJ25hbWUnXV1bc3RybGVuKCRjb29raWVbJ3BhdGgnXSldID0gJGNvb2tpZVsndmFsdWUnXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gY29va2llcyB3aXRoIGxvbmdlciBwYXRocyBnbyBmaXJzdAogICAgICAgICAgICBmb3JlYWNoICgkdGVtcENvb2tpZXMgYXMgJG5hbWUgPT4gJHZhbHVlcykgCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGtyc29ydCgkdmFsdWVzKTsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR2YWx1ZXMgYXMgJHZhbHVlKSAKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YWRkQ29va2llKCRuYW1lLCAkdmFsdWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgCiAgICAvKioKICAgICogQ2hlY2tzIGlmIGNvb2tpZSBkb21haW4gbWF0Y2hlcyBhIHJlcXVlc3QgaG9zdCAoaW50ZXJuYWwpCiAgICAqIAogICAgKiBDb29raWUgZG9tYWluIGNhbiBiZWdpbiB3aXRoIGEgZG90LCBpdCBhbHNvIG11c3QgY29udGFpbiBhdCBsZWFzdAogICAgKiB0d28gZG90cy4KICAgICogCiAgICAqIEBwYXJhbSBzdHJpbmcgUmVxdWVzdCBob3N0CiAgICAqIEBwYXJhbSBzdHJpbmcgQ29va2llIGRvbWFpbgogICAgKiBAcmV0dXJuIGJvb2wgTWF0Y2ggc3VjY2VzcwogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAqLwogICAgZnVuY3Rpb24gX2RvbWFpbk1hdGNoKCRyZXF1ZXN0SG9zdCwgJGNvb2tpZURvbWFpbikKICAgIHsKICAgICAgICBpZiAoJy4nICE9ICRjb29raWVEb21haW57MH0pIAogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRyZXF1ZXN0SG9zdCA9PSAkY29va2llRG9tYWluOwogICAgICAgIH0gCiAgICAgICAgZWxzZWlmIChzdWJzdHJfY291bnQoJGNvb2tpZURvbWFpbiwgJy4nKSA8IDIpIAogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0gCiAgICAgICAgZWxzZSAKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBzdWJzdHIoJy4nLiAkcmVxdWVzdEhvc3QsIC0gc3RybGVuKCRjb29raWVEb21haW4pKSA9PSAkY29va2llRG9tYWluOwogICAgICAgIH0KICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBUb2tlbml6ZSBTdHJpbmcgKGludGVybmFsKQogICAgICogCiAgICAgKiBUb2tlbml6ZSBzdHJpbmcgZm9yIHZhcmlvdXMgaW50ZXJuYWwgdXNhZ2UuIE9taXQgdGhlIHNlY29uZCBwYXJhbWV0ZXIgCiAgICAgKiB0byB0b2tlbml6ZSB0aGUgcHJldmlvdXMgc3RyaW5nIHRoYXQgd2FzIHByb3ZpZGVkIGluIHRoZSBwcmlvciBjYWxsIHRvIAogICAgICogdGhlIGZ1bmN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgVGhlIHN0cmluZyB0byB0b2tlbml6ZQogICAgICogQHBhcmFtIHN0cmluZyBUaGUgc2VwZXJhdG9yIHRvIHVzZQogICAgICogQHJldHVybiBzdHJpbmcgVG9rZW5pemVkIHN0cmluZwogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIF90b2tlbml6ZSgkc3RyaW5nLCAkc2VwYXJhdG9yID0gJycpCiAgICB7CiAgICAgICAgaWYoIXN0cmNtcCgkc2VwYXJhdG9yLCAnJykpCiAgICAgICAgewogICAgICAgICAgICAkc2VwYXJhdG9yID0gJHN0cmluZzsKICAgICAgICAgICAgJHN0cmluZyA9ICR0aGlzLT5uZXh0VG9rZW47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZvcigkY2hhcmFjdGVyID0gMDsgJGNoYXJhY3RlciA8IHN0cmxlbigkc2VwYXJhdG9yKTsgJGNoYXJhY3RlcisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoZ2V0dHlwZSgkcG9zaXRpb24gPSBzdHJwb3MoJHN0cmluZywgJHNlcGFyYXRvclskY2hhcmFjdGVyXSkpID09ICJpbnRlZ2VyIikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJGZvdW5kID0gKGlzc2V0KCRmb3VuZCkgPyBtaW4oJGZvdW5kLCAkcG9zaXRpb24pIDogJHBvc2l0aW9uKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZihpc3NldCgkZm91bmQpKQogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPm5leHRUb2tlbiA9IHN1YnN0cigkc3RyaW5nLCAkZm91bmQgKyAxKTsKICAgICAgICAgICAgcmV0dXJuKHN1YnN0cigkc3RyaW5nLCAwLCAkZm91bmQpKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPm5leHRUb2tlbiA9ICcnOwogICAgICAgICAgICByZXR1cm4oJHN0cmluZyk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvKioKICAgICAqIFNldCBlcnJvciBtZXNzYWdlIChpbnRlcm5hbCkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIEVycm9yIG1lc3NhZ2UKICAgICAqIEByZXR1cm4gc3RyaW5nIEVycm9yIG1lc3NhZ2UKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICBmdW5jdGlvbiBfc2V0RXJyb3IoJGVycm9yKQogICAgewogICAgICAgIGlmICgkZXJyb3IgIT0gJycpCiAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3IgPSAkZXJyb3I7CiAgICAgICAgICAgIHJldHVybiAkZXJyb3I7CiAgICAgICAgfQogICAgfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/client/client.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8vCi8vIHJlcXVpcmVkIGNsYXNzZXMKLy8KcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3MuY21zX2h0dHBfcmVxdWVzdC5waHAnKTsgIAoKLy8KLy8gZnVuY3Rpb25zCi8vCmZ1bmN0aW9uIGNscygpCnsKICAkY2xlYXJzY3JlZW4gPSBjaHIoMjcpLiJbSCIuY2hyKDI3KS4iWzJKIjsKICBwcmludCAkY2xlYXJzY3JlZW47Cn0KCmZ1bmN0aW9uIHN0YXJ0c3dpdGgoJGhheXN0YWNrLCRuZWVkbGUpCnsKICBpZiggc3Vic3RyKCRoYXlzdGFjaywwLHN0cmxlbigkbmVlZGxlKSkgPT0gJG5lZWRsZSApIHJldHVybiBUUlVFOwogIHJldHVybiBGQUxTRTsKfQoKZnVuY3Rpb24gX2FwaWtleSgpCnsKICBnbG9iYWwgJF9hcGlrZXk7CiAgcmV0dXJuICRfYXBpa2V5Owp9CgpmdW5jdGlvbiBzZXRfYXBwZGF0YSgkaywkdikKewogIGdsb2JhbCAkX2FwcGRhdGE7CiAgaWYoICFpc19hcnJheSgkX2FwcGRhdGEpICkgJF9hcHBkYXRhID0gYXJyYXkoKTsKICAkX2FwcGRhdGFbJGtdID0gJHY7Cn0KCmZ1bmN0aW9uIGdldF9hcHBkYXRhKCRrLCRkZmx0ID0gJycpCnsKICBnbG9iYWwgJF9hcHBkYXRhOwogIGlmKCAhaXNfYXJyYXkoJF9hcHBkYXRhKSApIHJldHVybiAkZGZsdDsKICBpZiggIWlzc2V0KCRfYXBwZGF0YVska10pICkgcmV0dXJuICRkZmx0OwogIHJldHVybiAkX2FwcGRhdGFbJGtdOwp9CgpmdW5jdGlvbiBzZXRfZXJyb3Jtc2coJHN0cikKewogIGdsb2JhbCAkX2Vycm1zZzsKICAkX2Vycm1zZyA9ICRzdHI7Cn0KCmZ1bmN0aW9uIGdldF9lcnJvcm1zZygkY2xlYXIgPSB0cnVlKQp7CiAgZ2xvYmFsICRfZXJybXNnOwogICR0bXAgPSAkX2Vycm1zZzsKICBpZiggJGNsZWFyICkgICRfZXJybXNnID0gJyc7CiAgcmV0dXJuICR0bXA7Cn0KCmZ1bmN0aW9uIGhlbHAoJG9wdCA9ICcnKQp7CiAgaWYoICEkb3B0ICkKICAgIHsKICAgICAgZWNobyAnaGVyZSB3ZSBzaG91bGQgb3V0cHV0IGdsb2JhbCBoZWxwJy4iXG4iOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgZWNobyAiREVCVUc6IGhlbHAgZm9yICIuJG9wdC4iXG4iOwogICAgfQp9CgpmdW5jdGlvbiBhdmFpbGFibGVfY29tbWFuZHMoJGFzX3N0cmluZyA9IFRSVUUpCnsKICBnbG9iYWwgJF9zY29wZTsKICBnbG9iYWwgJF9nbG9iYWxfY29tbWFuZHM7CgogICR0bXAgPSAkX3Njb3BlW2NvdW50KCRfc2NvcGUpLTFdOwogIGlmKCAhaXNfYXJyYXkoJHRtcCkgKQogICAgewogICAgICAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICB9CiAgJHRtcCA9IGFycmF5X21lcmdlKCR0bXAsZXhwbG9kZSgnLCcsJF9nbG9iYWxfY29tbWFuZHMpKTsKICBpZiggJGFzX3N0cmluZyApCiAgICB7CiAgICAgICR0bXAgPSBpbXBsb2RlKCcsJywkdG1wKTsKICAgIH0KICByZXR1cm4gJHRtcDsKfQoKZnVuY3Rpb24gZ2V0X2xldmVsKCkKewogIGdsb2JhbCAkX3Byb21wdDsKICAkcHJvbXB0ID0gJF9wcm9tcHRbY291bnQoJF9wcm9tcHQpLTFdOwogIHJldHVybiAkcHJvbXB0Owp9CgoKZnVuY3Rpb24gcHJvY2Vzc19sZXZlbF9jb21tYW5kKCRjbWQsJG9wdHMpCnsKfQoKZnVuY3Rpb24gcmVhZF9jb21tYW5kKCkKewogIGdsb2JhbCAkX3Njb3BlOwogIGdsb2JhbCAkX2ZpbGVoYW5kbGU7CiAgJGxpbmUgPSAnJzsKCiAgJG4gPSBjb3VudCgkX3Njb3BlKTsKICAkcHJvbXB0ID0gZ2V0X2xldmVsKCkuJzogJzsKCiAgd2hpbGUoICRsaW5lID09ICcnICkKICAgIHsKICAgICAgaWYoICRfZmlsZWhhbmRsZSApIHsKCSRsaW5lID0gdHJpbShmZ2V0cygkX2ZpbGVoYW5kbGUpKTsKCWVjaG8gJGxpbmUuIlxuIjsKCWlmKCBmZW9mKCRfZmlsZWhhbmRsZSkgKSAkbGluZSA9ICdRVUlUJzsKICAgICAgfQogICAgICBlbHNlIHsKCSRsaW5lID0gcmVhZGxpbmUoJHByb21wdCk7IHJlYWRsaW5lX2FkZF9oaXN0b3J5KCRsaW5lKTsKICAgICAgfQoKICAgICAgaWYoICRsaW5lID09ICcnICkgY29udGludWU7CiAgICAgIC8vIGdvdCBpbnB1dCBzcGxpdCBpdCBpbnRvIGNvbW1hbmQgYW5kIGFyZ3VtZW50cy4KICAgICAgJHRtcCA9IHBhcnNlX29wdHMoJGxpbmUpOwogICAgICAkdG1wWzBdID0gc3RydG91cHBlcigkdG1wWzBdKTsKICAgICAgaWYoICR0bXBbMF0gPT0gJz8nICkKCXsKCSAgZWNobyAiQXZhaWxhYmxlIENvbW1hbmRzOiAiLmF2YWlsYWJsZV9jb21tYW5kcygpLiJcbiI7CgkgICRsaW5lID0gJyc7Cgl9CiAgICAgIGVsc2UgaWYoICFpbl9hcnJheSgkdG1wWzBdLGF2YWlsYWJsZV9jb21tYW5kcyhGQUxTRSkpICkKCXsKCSAgZWNobyAiQ29tbWFuZCBub3QgaW4gc2NvcGUgKCIuYXZhaWxhYmxlX2NvbW1hbmRzKCkuIilcbiI7CgkgICRsaW5lID0gJyc7Cgl9CiAgICAgIGVsc2UKCXsKCSAgcmV0dXJuICR0bXA7Cgl9CiAgICB9Cn0KCi8vIHRha2VzIGFuIGFycmF5IG9mIGFyZ3VtZW50cywgYW5kIHJlLXBhcnNlcyB0aGVtIGluY2x1ZGluZyBhIGRlbGltaXRlciBhbGxvd2VkIHRvIGdyb3VwIGFyZ3VtZW50cwpmdW5jdGlvbiBwYXJzZV9vcHRzKCRzdHIpCnsKICAkc3BlY2lhbGNoYXJzID0gYXJyYXkoJ1wnJywnIicpOwogICRkZWxpbSA9ICcgJzsKCiAgJG91dGEgPSBhcnJheSgpOwogICRwcmV2Y2hhciA9ICcnOwogICR0c3RyID0gJyc7CiAgJGluc3RyID0gRkFMU0U7CiAgCiAgZm9yKCAkaSA9IDA7ICRpIDwgc3RybGVuKCRzdHIpOyAkaSsrICkKICAgIHsKICAgICAgJGNoYXIgPSAkc3RyWyRpXTsKICAgICAgaWYoIGluX2FycmF5KCRjaGFyLCRzcGVjaWFsY2hhcnMpICkKCXsKCSAgaWYoICRwcmV2Y2hhciAhPSAnXFwnICkgCgkgICAgJGluc3RyID0gISRpbnN0cjsKCSAgZWxzZQoJICAgICR0c3RyIC49ICRjaGFyOwoJfQogICAgICBlbHNlIGlmKCAkY2hhciA9PSAkZGVsaW0gJiYgJGluc3RyID09IEZBTFNFICkKCXsKCSAgJG91dGFbXSA9ICR0c3RyOwoJICAkdHN0ciA9ICcnOwoJfQogICAgICBlbHNlIGlmICggJGNoYXIgIT0gJ1xcJyB8fCAoJGNoYXIgPT0gJ1xcJyAmJiAkcHJldmNoYXIgPT0gJ1xcJykgKQoJewoJICAkdHN0ciAuPSAkY2hhcjsKCX0KICAgICAgJHByZXZjaGFyID0gJGNoYXI7CiAgICB9CiAgaWYoICR0c3RyICE9ICcnICkgJG91dGFbXSA9ICR0c3RyOwogIHJldHVybiAkb3V0YTsKfQoKCmZ1bmN0aW9uIGNvbW1hbmRfcHJvY2Vzc19jb21tYW5kcygkY21kLCRvcHRzKQp7CiAgZ2xvYmFsICRfc2NvcGU7CiAgZ2xvYmFsICRfcHJvbXB0OwoKICAkcmVzID0gJyc7CiAgc3dpdGNoKCAkY21kICkKICAgIHsKICAgIGNhc2UgJ1NUQVRVUyc6CiAgICAgIGRpZSgndG9kbzogc3RhdHVzJyk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ0NIRUNLSU5TJzoKICAgICAgLy8gZ290byBjaGVja2lucyBzY29wZQogICAgICByZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9jbGllbnRfY2hlY2tpbnMucGhwJyk7CiAgICAgICRfc2NvcGVbXSA9ICdVUCxBREQsRURJVCxHRVQsREVMLEJZTE9DQVRJT04sUVVJVCxDTFMsTVlMT0NBVElPTixCWUZSSUVORFMnOwogICAgICAkX3Byb21wdFtdID0gJ0NIRUNLSU5TJzsKICAgICAgcmV0dXJuIFRSVUU7CiAgICAgCiAgICBjYXNlICdVU0VSUyc6CiAgICAgIHJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2NsaWVudF91c2VyLnBocCcpOwogICAgICAkX3Njb3BlW10gPSAnVVAsUkVHSVNURVIsTE9HSU4sSUQsTElTVCxMT0dPVVQsUElORyxQUk9QUyxJTkZPLFFVSVQsU0VUUFJPUCxTVEFUVVMsQ0xTLEJBREdFUyc7CiAgICAgICRfcHJvbXB0W10gPSAnVVNFUlMnOwogICAgICByZXR1cm4gVFJVRTsKCiAgICBjYXNlICdTT0NJQUwnOgogICAgICByZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9jbGllbnRfc29jaWFsLnBocCcpOwogICAgICAkX3Njb3BlW10gPSAnVVAsTElTVCxHRVRLRVksU0VUS0VZJzsKICAgICAgJF9wcm9tcHRbXSA9ICdTT0NJQUwnOwogICAgICByZXR1cm4gVFJVRTsKCiAgICBjYXNlICdGUklFTkRTJzoKICAgICAgcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvY2xpZW50X2ZyaWVuZHMucGhwJyk7CiAgICAgICRfc2NvcGVbXSA9ICdVUCxRVUlULENMUyxMSVNULERFTCxSRVFVRVNULEFQUFJPVkUsUkVRVUVTVExJU1QsREVOWSc7CiAgICAgICRfcHJvbXB0W10gPSAnRlJJRU5EUyc7CiAgICAgIHJldHVybiBUUlVFOwoKICAgIGNhc2UgJ0FDVElWSVRJRVMnOgogICAgICByZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9jbGllbnRfYWN0aXZpdGllcy5waHAnKTsKICAgICAgJF9zY29wZVtdID0gJ1VQLExJU1QsR0VULFFVSVQsQ0xTJzsKICAgICAgJF9wcm9tcHRbXSA9ICdBQ1RJVklUSUVTJzsKICAgICAgcmV0dXJuIFRSVUU7CiAgICAgIAogICAgY2FzZSAnTEVBREVSQk9BUkRTJzoKICAgICAgcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvY2xpZW50X2xlYWRlcmJvYXJkcy5waHAnKTsKICAgICAgJF9zY29wZVtdID0gJ1VQLExJU1QsR0VULEJBREdFUyxMRUFERVJTLFFVSVQsQ0xTJzsKICAgICAgJF9wcm9tcHRbXSA9ICdMRUFERVJCT0FSRFMnOwogICAgICByZXR1cm4gVFJVRTsKICAgICAgCiAgICBjYXNlICdCQURHRVMnOgogICAgICByZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9jbGllbnRfYmFkZ2VzLnBocCcpOwogICAgICAkX3Njb3BlW10gPSAnVVAsTElTVCxHRVQsTUVNQkVSUyxRVUlULENMUyc7CiAgICAgICRfcHJvbXB0W10gPSAnQkFER0VTJzsKICAgICAgcmV0dXJuIFRSVUU7CiAgICAgIAogICAgY2FzZSAnTE9DQVRJT05TJzoKICAgICAgcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvY2xpZW50X2xvY2F0aW9ucy5waHAnKTsKICAgICAgJF9zY29wZVtdID0gJ1VQLExJU1QsQ0FURUdPUklFUyxISUVSQVJDSFksR0VULFFVSVQsQ0xTLEFERCxFRElULFBIT1RPVVBMT0FELFBIT1RPREVMRVRFJzsKICAgICAgJF9wcm9tcHRbXSA9ICdMT0NBVElPTlMnOwogICAgICByZXR1cm4gVFJVRTsKCiAgICBjYXNlICdMT0dJTic6CiAgICAgIC8vIGxvZ2luIHRoZSB1c2VyCiAgICAgIHJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2NsaWVudF91c2VyLnBocCcpOwogICAgICAkcmVzID0gdXNlcl9sb2dpbigkb3B0cyk7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ0xPR09VVCc6CiAgICAgIC8vIGxvZ2luIHRoZSB1c2VyCiAgICAgIHJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2NsaWVudF91c2VyLnBocCcpOwogICAgICAkcmVzID0gdXNlcl9sb2dvdXQoJG9wdHMpOwogICAgICBicmVhazsKCiAgICBjYXNlICdDSEVDS0lOJzoKICAgICAgcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLicvY2xpZW50X2NoZWNraW5zLnBocCcpOwogICAgICAkcmVzID0gY2hlY2tpbnNfYWRkKCRvcHRzKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnTVlDSEVDS0lOUyc6CiAgICAgIHJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL2NsaWVudF9jaGVja2lucy5waHAnKTsKICAgICAgJHJlcyA9IGNoZWNraW5zX215Y2hlY2tpbnMoJG9wdHMpOwogICAgICBicmVhazsKCiAgICBjYXNlICdVUCc6CiAgICAgIGlmKCBjb3VudCgkX3Njb3BlKSA+IDEgKQoJewoJICBhcnJheV9wb3AoJF9zY29wZSk7CgkgIGFycmF5X3BvcCgkX3Byb21wdCk7Cgl9CiAgICAgICRyZXMgPSBUUlVFOwogICAgICBicmVhazsKCiAgICBjYXNlICdRVUlUJzoKICAgICAgZWNobyAiRVhJVElOR1xuIjsKICAgICAgZXhpdCgpOwogICAgICBicmVhazsKCiAgICBjYXNlICdDTFMnOgogICAgICBjbHMoKTsKICAgICAgJHJlcyA9IFRSVUU7CiAgICAgIGJyZWFrOwogICAgfQoKICByZXR1cm4gJHJlczsKfQoKLy8KLy8gc3RhcnQgc2Vzc2lvbQovLwpzZXNzaW9uX25hbWUoJ2NndGVzdCcpOwpzZXNzaW9uX3N0YXJ0KCk7CgovLwovLyBpbml0aWFsaXplIHZhcmlhYmxlcwovLwokYXBwX2RvbmUgPSBGQUxTRTsKJF9nbG9iYWxfY29tbWFuZHMgPSAnVVNFUlMsTEVBREVSQk9BUkRTLEJBREdFUyxMT0NBVElPTlMsQUNUSVZJVElFUyxDSEVDS0lOUyxMT0dJTixMT0dPVVQsUVVJVCxDTFMsQ0hFQ0tJTixNWUNIRUNLSU5TLEZSSUVORFMsU09DSUFMJzsKJF9jb21tYW5kcyA9ICdTVEFUVVMnOwokX3Byb21wdCA9IGFycmF5KCdDT01NQU5EJyk7CiRfc2NvcGVbXSA9ICRfY29tbWFuZHM7CiRfZXJybXNnID0gJyc7CiRfYXBwZGF0YSA9IG51bGw7CiRfZmlsZWhhbmRsZSA9IG51bGw7CgovLwovLyBoYW5kbGUgQ0xJIGFyZ3VtZW50cwovLwoKCi8vIAovLyBoYW5kbGUgZmlsZSBhcmd1bWVudHMKLy8KJGNvbmZpZ2ZpbGUgPSBkaXJuYW1lKF9fRklMRV9fKS4nL2NvbmZpZy5waHAnOwokc2NyaXB0ID0gbnVsbDsKaWYoICRhcmdjID4gMSApIHsKICAkYXJncyA9ICRhcmd2OwogIHdoaWxlKCBjb3VudCgkYXJncykgKSB7CiAgICAkYXJnID0gYXJyYXlfc2hpZnQoJGFyZ3MpOwogICAgc3dpdGNoKCAkYXJnICkgewogICAgY2FzZSAnLWYnOgogICAgICAkY29uZmlnZmlsZSA9IGFycmF5X3NoaWZ0KCRhcmdzKTsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgJHNjcmlwdCA9ICRhcmc7CiAgICAgIGJyZWFrOwogICAgfQogIH0KfQoKaWYoICFpc19yZWFkYWJsZSgkY29uZmlnZmlsZSkgKSB7CiAgZGllKCIkY29uZmdmaWxlIG5vdCBmb3VuZCIpOwp9CiRjb25maWcgPSBhcnJheSgpOwppbmNsdWRlX29uY2UoJGNvbmZpZ2ZpbGUpOwppZiggIWlzc2V0KCRjb25maWdbJ2Jhc2VVUkwnXSkgfHwgJGNvbmZpZ1snYmFzZVVSTCddID09ICcnICkgewogIGRpZSgnYmFzZVVSTCBpcyB1bmRlZmluZWQgaW4gdGhlIGNvbmZpZy5waHAgZmlsZScpOwp9CmlmKCAhaXNzZXQoJGNvbmZpZ1snYXBpa2V5J10pIHx8ICRjb25maWdbJ2FwaWtleSddID09ICcnICkgewogIGRpZSgnYXBpa2V5IGlzIHVuZGVmaW5lZCBpbiB0aGUgY29uZmlnLnBocCBmaWxlJyk7Cn0KCi8vIGhlcmUgd2UgZG8gb3VyIGJhc2ljIGNvbmZpZyBzdHVmZi4KZGVmaW5lKCdCQVNFX1VSTCcsJGNvbmZpZ1snYmFzZVVSTCddKTsKJF9hcGlrZXkgPSAkY29uZmlnWydhcGlrZXknXTsgLy8gdWdseSwgSSBrbm93CmRlZmluZSgnQVBJS0VZJywkY29uZmlnWydhcGlrZXknXSk7CgppZiggJHNjcmlwdGZpbGUgKSB7CiAgaWYoICFmaWxlX2V4aXN0cygkc2NyaXB0ZmlsZSkgKSB7CiAgICBkaWUoImZpbGUgJGZpbGVuYW1lIG5vdCBmb3VuZFxuIik7CiAgfQogICRfZmlsZWhhbmRsZSA9IGZvcGVuKCRzY3JpcHRmaWxlLCdyJyk7CiAgaWYoICEkX2ZpbGVoYW5kbGUgKSB7CiAgICBkaWUoImNvdWxkIG5vdCBvcGVuICRmaWxlbmFtZVxuIik7CiAgfQp9CmVsc2UgewogIGNscygpOwogIGVjaG8gIkNHU29jaWFsQXBwIENMSSBUZXN0IENsaWVudFxuIjsKICBlY2hvICItLSBMb2FkZWQgY29uZmlnIGZpbGUgJGNvbmZpZ2ZpbGVcblxuIjsKfQoKd2hpbGUoICgkX2ZpbGVoYW5kbGUgJiYgIWZlb2YoJF9maWxlaGFuZGxlKSkgfHwgISRhcHBfZG9uZSApCnsKICAvLyBnZXQgYSBjb21tYW5kLgogICRyZXMgPSBudWxsOwogICRvcHRzID0gcmVhZF9jb21tYW5kKCk7CiAgaWYoICRvcHRzICkgJGNvbW1hbmQgPSBhcnJheV9zaGlmdCgkb3B0cyk7CgogICRsZXZlbCA9IHN0cnRvbG93ZXIoZ2V0X2xldmVsKCkpOwogICRmbiA9ICRsZXZlbC4nX3Byb2Nlc3NfY29tbWFuZHMnOwogIGlmKCBmdW5jdGlvbl9leGlzdHMoJGZuKSApCiAgICB7CiAgICAgIC8vIHRoZSBmdW5jdGlvbiBleGlzdHMuLgogICAgICAkcmVzID0gJGZuKCRjb21tYW5kLCRvcHRzKTsKICAgICAgaWYoIGlzX251bGwoJHJlcykgKQoJewoJICBpZiggZ2V0X2xldmVsKCkgIT0gJ0NPTU1BTkQnICkKCSAgICB7CgkgICAgICAkcmVzID0gY29tbWFuZF9wcm9jZXNzX2NvbW1hbmRzKCRjb21tYW5kLCRvcHRzKTsKCSAgICAgIGlmKCBpc19udWxsKCRyZXMpICkKCQl7CgkJICBzZXRfZXJyb3Jtc2coJ0ludmFsaWQgY29tbWFuZDIgJy4kY29tbWFuZCk7CgkJfQoJICAgIH0KCX0KICAgIH0KICBlbHNlCiAgICB7CiAgICAgIHNldF9lcnJvcm1zZygnSW52YWxpZCBjb21tYW5kICcuJGNvbW1hbmQpOwogICAgfQoKICBpZiggISRyZXMgKQogICAgewogICAgICBlY2hvIGdldF9lcnJvcm1zZygpLiJcbiI7CiAgICB9Cn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/client/client_activities.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIGFjdGl2aXRpZXNfcHJvY2Vzc19jb21tYW5kcygkY21kLCRvcHRzKQp7CiAgc3dpdGNoKCAkY21kICkKICAgIHsKICAgIGNhc2UgJ0xJU1QnOgogICAgICByZXR1cm4gYWN0aXZpdGllc19saXN0KCRvcHRzKTsKICAgIH0KfQoKZnVuY3Rpb24gYWN0aXZpdGllc19saXN0KCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGxpc3QKbGlzdCBhY3Rpdml0aWVzXG4KRU9UOyAgICAKICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2FjdGl2aXRpZXMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0xJU1QnKTsKCiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyxUUlVFKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkKICAgIHsKICAgICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKQoJewoJICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7Cgl9CiAgICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICBwcmludF9yKCR0bXApOyAvLyB3b290IGRvbmUuCiAgcmV0dXJuIFRSVUU7Cn0KCj8+]]></data>
	</file>
	<file>
	  <filename>/client/client_badges.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIGJhZGdlc19wcm9jZXNzX2NvbW1hbmRzKCRjbWQsJG9wdHMpCnsKICBzd2l0Y2goICRjbWQgKSB7CiAgY2FzZSAnTElTVCc6CiAgICByZXR1cm4gYmFkZ2VzX2xpc3QoJG9wdHMpOwogIGNhc2UgJ0dFVCc6CiAgICByZXR1cm4gYmFkZ2VzX2dldCgkb3B0cyk7CiAgY2FzZSAnTEVBREVSUyc6CiAgICByZXR1cm4gYmFkZ2VzX21lbWJlcnMoJG9wdHMpOwogIH0KfQoKZnVuY3Rpb24gYmFkZ2VzX2xpc3QoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpID09IDEgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewogICAgZWNobyA8PDxFT1QKdXNhZ2U6IGxpc3QKbGlzdCBiYWRnZXMKRU9UOwogIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvYmFkZ2VzJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdMSVNUJyk7CgogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgcHJpbnRfcigkcmVzKTsgZWNobyAiXG4iOwoKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyxUUlVFKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApOyAvLyB3b290IGRvbmUuCiAgcmV0dXJuIFRSVUU7Cn0KCgpmdW5jdGlvbiBiYWRnZXNfZ2V0KCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGdldCBpZApnZXQgaW5mb3JtYXRpb24gZm9yIG9uZSBiYWRnZS4KRU9UOwogIH0KCiAgaWYoIGNvdW50KCRvcHRzKSAhPSAxICkgewogICAgc2V0X2Vycm9ybXNnKCdiYWRnZXNfZ2V0OiBNaXNzaW5nIGJhZGdlIGlkIHBhcmFtJyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQogICR0aGVfaWQgPSAoaW50KSRvcHRzWzBdOwoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9iYWRnZXMnKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdHRVQnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdiYWRnZScsJHRoZV9pZCk7CgogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgcHJpbnRfcigkcmVzKTsKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyxUUlVFKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApOyAvLyB3b290IGRvbmUuCiAgcmV0dXJuIFRSVUU7Cn0KCgpmdW5jdGlvbiBsZWFkZXJib2FyZHNfbWVtYmVycygkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CiAgICBlY2hvIDw8PEVPVAp1c2FnZTogbGVhZGVycyBpZCBbbiBbb11dCnJldHJpZXZlIG1lbWJlciBpbmZvcm1hdGlvbiBmb3IgYSBiYWRnZQpFT1Q7CiAgfQoKICBpZiggY291bnQoJG9wdHMpIDwgMSApIHsKICAgIHNldF9lcnJvcm1zZygnbGVhZGVyYm9hcmRzX2dldDogTWlzc2luZyBsZWFkZXJib2FyZCBpZCBwYXJhbScpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KICBpZiggY291bnQoJG9wdHMpID4gMyApIHsKICAgIHNldF9lcnJvcm1zZygnbGVhZGVyYm9hcmRzX2dldDogdG9vIG1hbnUgYXJndW1lbnRzJyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQogICR0aGVfaWQgPSAoaW50KSRvcHRzWzBdOwoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9sZWFkZXJib2FyZHMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ01FTUJFUlMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYmFkZ2UnLCR0aGVfaWQpOwogIGlmKCBpc3NldCgkb3B0c1sxXSkgKSB7CiAgICAkcmVxLT5hZGRQYXJhbSgnbicsKGludCkkb3B0c1sxXSk7CiAgfQogIGlmKCBpc3NldCgkb3B0c1syXSkgKSB7CiAgICAkcmVxLT5hZGRQYXJhbSgnbycsKGludCkkb3B0c1syXSk7CiAgfQoKICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzLFRSVUUpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKSB7CiAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKSB7CiAgICAgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKICAgIH0KICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHByaW50X3IoJHRtcCk7IC8vIHdvb3QgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/client/client_checkins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIGNoZWNraW5zX3Byb2Nlc3NfY29tbWFuZHMoJGNtZCwkb3B0cykKewogIHN3aXRjaCggJGNtZCApCiAgICB7CiAgICBjYXNlICdHRVQnOgogICAgICByZXR1cm4gY2hlY2tpbnNfZ2V0KCRvcHRzKTsKCiAgICBjYXNlICdERUwnOgogICAgICByZXR1cm4gY2hlY2tpbnNfZGVsKCRvcHRzKTsKCiAgICBjYXNlICdBREQnOgogICAgICByZXR1cm4gY2hlY2tpbnNfYWRkKCRvcHRzKTsKCiAgICBjYXNlICdFRElUJzoKICAgICAgcmV0dXJuIGNoZWNraW5zX2VkaXQoJG9wdHMpOwoKICAgIGNhc2UgJ0JZTE9DQVRJT04nOgogICAgICByZXR1cm4gY2hlY2tpbnNfYnlsb2NhdGlvbigkb3B0cyk7CgogICAgY2FzZSAnTVlMT0NBVElPTic6CiAgICAgIHJldHVybiBjaGVja2luc19teWxvY2F0aW9uKCRvcHRzKTsKCiAgICBjYXNlICdCWUZSSUVORFMnOgogICAgICByZXR1cm4gY2hlY2tpbnNfYnlmcmllbmRzKCRvcHRzKTsKICAgIH0KfQoKZnVuY3Rpb24gY2hlY2tpbnNfYWRkKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGFkZCBsb2M9bG9jYXRpb25faWQgW2FjdD1hY3Rpdml0eV9pZF0gW21zZz1zdHJpbmddIFtmaWxlPWZpbGVuYW1lXSBbdGFnPXVpZDEsdWlkMix1aWQzXSBbZXh0cmFfdXJsMT11cmxdCkNyZWF0ZSBhIG5ldyBjaGVja2luCnVzZXMgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdWlkCmxvY2F0aW9uIGlkIG11c3QgYmUgc3BlY2lmaWVkCmFjdGl2aXR5IGlkLCBmaWxlIGFuZCBtc2cgYXJlIG9wdGlvbmFsCm11bHRpcGxlIGZpbGVzIGNhbiBiZSB1cGxvYWRlZC5cbgpFT1Q7CiAgICByZXR1cm4gVFJVRTsKICB9CgogIGlmKCBjb3VudCgkb3B0cykgPCAxICkgewogICAgc2V0X2Vycm9ybXNnKCdhZGQgY2hlY2tpbjogaW5zdWZmaWNpZW50IGFyZ3VtZW50cycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgJHBhcm1zID0gYXJyYXkoKTsKICAkZmlsZXMgPSBhcnJheSgpOwogIGZvcmVhY2goICRvcHRzIGFzICRvcHQgKSB7CiAgICBsaXN0KCRrLCR2KSA9IGV4cGxvZGUoJz0nLCRvcHQsMik7CiAgICAkayA9IHRyaW0oJGspOwogICAgJHYgPSB0cmltKCR2KTsKICAgIHN3aXRjaCggc3RydG9sb3dlcigkaykgKSB7CiAgICBjYXNlICdhY3QnOgogICAgICAkayA9ICdhY3Rpdml0eSc7CiAgICAgICRwYXJtc1ska10gPSAkdjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnbG9jJzoKICAgICAgJGsgPSAnbG9jYXRpb24nOwogICAgICAkcGFybXNbJGtdID0gJHY7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ21zZyc6CiAgICBjYXNlICd0YWcnOgogICAgICAkcGFybXNbJGtdID0gJHY7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2ZpbGUnOgogICAgICBpZiggIWZpbGVfZXhpc3RzKCR2KSApIHsKCXNldF9lcnJvcm1zZygnYWRkIGNoZWNraW46IGZpbGUgJy4kdi4nIGRvZXMgbm90IGV4aXN0Jyk7CglyZXR1cm4gRkFMU0U7CiAgICAgIH0KICAgICAgJGZpbGVzW10gPSAkdjsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgaWYoIHN0YXJ0c3dpdGgoJGssJ2V4dHJhXycpICkgewoJJHBhcm1zWyRrXSA9ICR2OwogICAgICB9CiAgICB9CiAgfQoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRNZXRob2QoJ1BPU1QnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9jaGVja2lucycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnQUREJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ293bmVyJywkdWlkKTsKICBmb3JlYWNoKCAkcGFybXMgYXMgJGtleSA9PiAkdiApIHsKICAgICRyZXEtPmFkZFBhcmFtKCRrZXksJHYpOwogIH0KICBpZiggY291bnQoJGZpbGVzKSA+IDAgKSB7CiAgICAkaWR4ID0gMTsKICAgIGZvcmVhY2goICRmaWxlcyBhcyAkb25lICkgewogICAgICAkcmVxLT5hZGRQYXJhbSgnZmlsZScuJGlkeCsrLCdAJy4kb25lKTsKICAgIH0KICB9CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKSB7CiAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKSB7CiAgICAgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKICAgIH0KICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgZWNobyAiQ0hFQ0tJTklEOiAiLiR0bXAtPmRhdGEuIlxuIjsKICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIGNoZWNraW5zX2dldCgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBnZXQgPGlkPWludD4gW2RlZXA9aW50XQpSZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNoZWNraW4uXG4KRU9UOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICAkcGFybXMgPSBhcnJheSgpOwogIGZvcmVhY2goICRvcHRzIGFzICRvbmUgKSB7CiAgICBsaXN0KCRrLCR2KSA9IGV4cGxvZGUoJz0nLCRvbmUsMik7CiAgICBzd2l0Y2goICRrICkgewogICAgY2FzZSAnaWQnOgogICAgICAkayA9ICdjaWQnOwogICAgICAvLyBmYWxsIHRocm91Z2gKICAgIGNhc2UgJ2RlZXAnOgogICAgICAkcGFybXNbJGtdID0gKGludCkkdjsKICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICBpZiggIWlzc2V0KCRwYXJtc1snY2lkJ10pICkgewogICAgc2V0X2Vycm9ybXNnKCdhZGQgY2hlY2tpbjogaW5zdWZmaWNpZW50IGFyZ3VtZW50cycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdHRVQnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9jaGVja2lucycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnR0VUJyk7CiAgZm9yZWFjaCggJHBhcm1zIGFzICRrID0+ICR2ICkgewogICAgJHJlcS0+YWRkUGFyYW0oJGssJHYpOwogIH0KICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwoKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApIHsKICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApIHsKICAgICAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwogICAgfQogICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHJpbnRfcigkdG1wKS4iXG4iOwogIHJldHVybiBUUlVFOwp9CgoKZnVuY3Rpb24gY2hlY2tpbnNfZGVsKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGRlbCA8Y2hlY2tpbmlkPgpEZWxldGUgdGhlIHNwZWNpZmllZCBjaGVja2luLgpVc2VzIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJpZC4KVGhlIGNoZWNraW4gbXVzdCBiZSBjcmVhdGVkIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci5cbgpFT1Q7CiAgICByZXR1cm4gVFJVRTsKICB9CgogIGlmKCBjb3VudCgkb3B0cykgIT0gMSApIHsKICAgIHNldF9lcnJvcm1zZygnYWRkIGNoZWNraW46IGluc3VmZmljaWVudCBhcmd1bWVudHMnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkgewogICAgc2V0X2Vycm9ybXNnKCdOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnUE9TVCcpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2NoZWNraW5zJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdERUwnKTsKICAkcmVxLT5hZGRQYXJhbSgnb3duZXInLCR1aWQpOwogICRyZXEtPmFkZFBhcmFtKCdjaWQnLChpbnQpJG9wdHNbMF0pOwogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKSB7CiAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKSB7CiAgICAgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKICAgIH0KICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHByaW50X3IoJHRtcCkuIlxuIjsKICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIGNoZWNraW5zX215Y2hlY2tpbnMoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpID09IDEgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogbXljaGVja2lucyBbb3B0aW9ucy4uLl0KcmV0cmlldmUgYSBsaXN0IG9mIGNoZWNraW5zIGZyb20gdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlci4KdGltZWxpbWl0ID0gaW50ZWdlciBtaW51dGVzLCBkZWZhdWx0IGlzIDAKbGltaXQgPSBpbnRlZ2VyLCBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuCm9mZnNldCA9IGludGVnZXIsIHN0YXIgcG9zaXRpb24KZGVlcCA9IGludGVnZXIKRU9UOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICAkcGFybXMgPSBhcnJheSgpOwogIGlmKCBjb3VudCgkb3B0cykgKSB7CiAgICBmb3JlYWNoKCAkb3B0cyBhcyAkb25lICkgewogICAgICBsaXN0KCRrLCR2KSA9IGV4cGxvZGUoJz0nLCRvbmUsMik7CiAgICAgIHN3aXRjaCggJGsgKSB7CiAgICAgIGNhc2UgJ2xpbWl0JzoKICAgICAgY2FzZSAnb2Zmc2V0JzoKICAgICAgY2FzZSAndGltZWxpbWl0JzoKICAgICAgY2FzZSAnZGVlcCc6CgkkcGFybXNbJGtdID0gKGludCkkdjsKCWJyZWFrOwogICAgICB9CiAgICB9CiAgfQoKICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdHRVQnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9jaGVja2lucycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnTVlDSEVDS0lOUycpOwogICRyZXEtPmFkZFBhcmFtKCdvd25lcicsJHVpZCk7CiAgZm9yZWFjaCggJHBhcm1zIGFzICRrZXkgPT4gJHYgKSB7CiAgICAkcmVxLT5hZGRQYXJhbSgkaywkdik7CiAgfQogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CgogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApLiJcbiI7CiAgcmV0dXJuIFRSVUU7Cn0KCgpmdW5jdGlvbiBjaGVja2luc19lZGl0KCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGVkaXQgY2hlY2tpbmlkIFtkZWxdfFtsb2M9bG9jYXRpb25faWRdIFthY3Q9YWN0aXZpdHlfaWRdIFttc2c9bXNnXSBbZXh0cmFfWFhYWFg9dmFsXQplZGl0IGFuIGV4aXN0aW5nIGNoZWNraW4KdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlciBtdXN0IG93biB0aGUgY2hlY2tpbgpzZWUgdGhlIGFkZCBjb21tYW5kCmZpbGUgdXBsb2FkcyBhcmUgbm90IHlldCBzdXBwb3J0ZWRcbgpFT1Q7CiAgICByZXR1cm4gVFJVRTsKICB9CiAgaWYoIGNvdW50KCRvcHRzKSA8IDIgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ2VkaXQgY2hlY2tpbjogaW5zdWZmaWNpZW50IGFyZ3VtZW50cycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KICAkY2lkID0gKGludCkkb3B0c1swXTsKICBhcnJheV9zaGlmdCgkb3B0cyk7CiAgJHBhcm1zID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkb3B0cyBhcyAkb3B0ICkgewogICAgbGlzdCgkaywkdikgPSBleHBsb2RlKCc9Jywkb3B0LDIpOwogICAgJGsgPSBzdHJ0b2xvd2VyKHRyaW0oJGspKTsKICAgICR2ID0gdHJpbSgkdik7CgogICAgc3dpdGNoKCRrKSB7CiAgICBjYXNlICdhY3QnOgogICAgY2FzZSAnYWN0aXZpdHknOgogICAgICAkayA9ICdhY3Rpdml0eSc7CiAgICAgICRwYXJtc1ska10gPSAkdjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnbG9jJzoKICAgIGNhc2UgJ2xvY2F0aW9uJzoKICAgICAgJGsgPSAnbG9jYXRpb24nOwogICAgICAkcGFybXNbJGtdID0gJHY7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ21zZyc6CiAgICAgICRwYXJtc1ska10gPSAkdjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZGVsJzoKICAgICAgJHYgPSAoaW50KSR2OwogICAgICAkcGFybXNbJGtdID0gJHY7CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIGlmKCBzdGFydHN3aXRoKCRrLCdleHRyYV8nKSApIHsKCSRwYXJtc1ska10gPSAkdjsKICAgICAgfQogICAgfQogIH0KICAKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRNZXRob2QoJ1BPU1QnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9jaGVja2lucycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnRURJVCcpOwogICRyZXEtPmFkZFBhcmFtKCdjaWQnLCRjaWQpOwogICRyZXEtPmFkZFBhcmFtKCdvd25lcicsJHVpZCk7CiAgZm9yZWFjaCggJHBhcm1zIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICRyZXEtPmFkZFBhcmFtKCRrZXksJHZhbCk7CiAgfQogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CgogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApLiJcbiI7CiAgcmV0dXJuIFRSVUU7Cn0KCgpmdW5jdGlvbiBjaGVja2luc19teWxvY2F0aW9uKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IG15bG9jYXRpb24gW2xhdCBsb25nXQpyZXRyaWV2ZSBvciBzZXQgY3VycmVudCBsb2NhdGlvbgp1c2VkIGZvciBjaGVja2luIGluZm9ybWF0aW9uLlxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KICBpZiggY291bnQoJG9wdHMpICE9IDIgKSB7CiAgICAkbG9jID0gZ2V0X2FwcGRhdGEoJ2xvYycsJycpOwogICAgaWYoICEkbG9jICkgewogICAgICBlY2hvICJJTkZPOiBZb3VyIGxvY2F0aW9uIGlzIG5vdCBzZXRcbiI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgZWNobyAiSU5GTzogWW91ciBsb2NhdGlvbjogIGxhdD0iLiRsb2NbMF0uJyBsb249Jy4kbG9jWzFdLiJcbiI7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgCiAgJGxvYyA9IGFycmF5KCRvcHRzWzBdLCRvcHRzWzFdKTsKICBzZXRfYXBwZGF0YSgnbG9jJywkbG9jKTsKICByZXR1cm4gVFJVRTsKfQoKZnVuY3Rpb24gY2hlY2tpbnNfYnlsb2NhdGlvbigkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnJldHJpZXZlIGNoZWNraW5zIGZvciB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uCnVzYWdlOiBieWxvY2F0aW9uIG9wdGlvbnMKb3B0aW9uczoKICBsb2M9aWQgKHJlcXVpcmVkKQogIGRlZXA9MSAob3B0aW9uYWwpIC0gZW5hYmxlIGRlZXAgbW9kZQogIHRpbWVsaW1pdD1OIChvcHRpb25hbCkgLSB0aW1lbGltaXQgaW4gbWludXRlcwogIGxpbWl0PU4gPSAob3B0aW9uYWwpIGludGVnZXIgbnVtYmVyIG9mIGFydGljbGVzIHRvIHJldHVybi4gIGRlZmF1bHQgPSA1MAogIG9mZnNldD1OID0gKG9wdGlvbmFsKSBpbnRlZ2VyIHN0YXJ0IHBvc2l0aW9uLiAgZGVmYXVsdCA9IDBcbgpFT1Q7CiAgICByZXR1cm4gVFJVRTsKICB9CgogICRwYXJtcyA9IGFycmF5KCk7CiAgZm9yZWFjaCggJG9wdHMgYXMgJG9uZSApIHsKICAgIGxpc3QoJGssJHYpID0gZXhwbG9kZSgnPScsJG9uZSwyKTsKICAgIHN3aXRjaCggJGsgKSB7CiAgICBjYXNlICdsb2MnOgogICAgICAkayA9ICdsaWQnOwogICAgICAkdiA9IChpbnQpJHY7CiAgICAgICRwYXJtc1ska10gPSAkdjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZGVlcCc6CiAgICAgICR2ID0gKGludCkkdjsKICAgICAgJHBhcm1zWyRrXSA9ICR2OwogICAgICBicmVhazsKCiAgICBjYXNlICd0aW1lbGltaXQnOgogICAgICAkdiA9IChpbnQpJHY7CiAgICAgICRwYXJtc1ska10gPSAkdjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnbGltaXQnOgogICAgICAkdiA9IChpbnQpJHY7CiAgICAgICRwYXJtc1ska10gPSAkdjsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnb2Zmc2V0JzoKICAgICAgJHYgPSAoaW50KSR2OwogICAgICAkcGFybXNbJGtdID0gJHY7CiAgICAgIGJyZWFrOwoKICAgIH0KICB9CgogIGlmKCAhaXNzZXQoJHBhcm1zWydsaWQnXSkgKSB7CiAgICAkbXNnID0gJ0Vycm9yOiBtaXNzaW5nIHJlcXVpcmVkIGxvYyBhcnVtZW50JzsKICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnR0VUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvY2hlY2tpbnMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0JZTE9DQVRJT04nKTsKICBmb3JlYWNoKCAkcGFybXMgYXMgJGsgPT4gJHYgKSB7CiAgICAkcmVxLT5hZGRQYXJhbSgkaywkdik7CiAgfQogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CgogIHByaW50X3IoJHJlcyk7CiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKSB7CiAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKSB7CiAgICAgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKICAgIH0KICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHByaW50X3IoJHRtcCk7IC8vIHdvb3QgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIGNoZWNraW5zX2J5ZnJpZW5kcygkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBieWZyaWVuZHMgW29wdD12YWx1ZV0uLi4KUmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQgY2hlY2tpbnMgZnJvbSBteSBmcmllbmRzLgpFT1Q7CiAgICByZXR1cm4gVFJVRTsKICB9CgogIC8vIHBhcnNlIGFyZ3VtZW50cwogICRwYXJtcyA9IGFycmF5KCk7CiAgJHBhcm1zWyduJ10gPSA1MDsKICAkcGFybXNbJ28nXSA9IDA7CiAgZm9yZWFjaCggJG9wdHMgYXMgJGFyZyApIHsKICAgIGxpc3QoJGtleSwkdmFsKSA9IGV4cGxvZGUoJz0nLCRhcmcsMik7CiAgICAka2V5ID0gdHJpbSgka2V5KTsKICAgICR2YWwgPSB0cmltKCR2YWwpOwoKICAgIHN3aXRjaCggJGtleSApIHsKICAgIGNhc2UgJ24nOgogICAgY2FzZSAnbyc6CiAgICBjYXNlICdkZWVwJzoKICAgICAgJHZhbCA9IChpbnQpJHZhbDsKICAgICAgJHBhcm1zWyRrZXldID0gJHZhbDsKICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdHRVQnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9jaGVja2lucycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnRlJJRU5EUycpOwogICRyZXEtPmFkZFBhcmFtKCd1aWQnLCR1aWQpOwogIGZvcmVhY2goICRwYXJtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICRyZXEtPmFkZFBhcmFtKCRrZXksJHZhbHVlKTsKICB9CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKSB7CiAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKSB7CiAgICAgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKICAgIH0KICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHByaW50X3IoJHRtcCkuIlxuIjsKICByZXR1cm4gVFJVRTsKfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/client/client_friends.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIGZyaWVuZHNfcHJvY2Vzc19jb21tYW5kcygkY21kLCRvcHRzKQp7CiAgc3dpdGNoKCAkY21kICkKICAgIHsKICAgIGNhc2UgJ0xJU1QnOgogICAgICByZXR1cm4gZnJpZW5kc19saXN0KCRvcHRzKTsKCiAgICBjYXNlICdERUwnOgogICAgICByZXR1cm4gZnJpZW5kc19kZWwoJG9wdHMpOwoKICAgIGNhc2UgJ1JFUVVFU1QnOgogICAgICByZXR1cm4gZnJpZW5kc19yZXF1ZXN0KCRvcHRzKTsKCiAgICBjYXNlICdBUFBST1ZFJzoKICAgICAgcmV0dXJuIGZyaWVuZHNfYXBwcm92ZSgkb3B0cyk7CgogICAgY2FzZSAnREVOWSc6CiAgICAgIHJldHVybiBmcmllbmRzX2RlbnkoJG9wdHMpOwogICAgICAKICAgIGNhc2UgJ1JFUVVFU1RMSVNUJzoKICAgICAgcmV0dXJuIGZyaWVuZHNfcmVxdWVzdGxpc3QoJG9wdHMpOwoKICAgIGNhc2UgJ0RFTlknOgogICAgICByZXR1cm4gZnJpZW5kc19kZW55KCRvcHRzKTsKICAgIH0KfQoKZnVuY3Rpb24gZnJpZW5kc19saXN0KCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBsaXN0IFtvcHRpb25zXQpsaXN0IG15IGN1cnJlbnQgZnJpZW5kc1xuCm11c3QgYmUgbG9nZ2VkIGluIHRvIHVzZSB0aGlzIGZ1bmN0aW9uLlxuCm9wdGlvbnM6XG4KICAgIG49aW50ZWdlciA6IG51bWJlciBvZiBmcmllbmRzIHRvIHJldHVyblxuCiAgICBvPWludGVnZXIgOiBzdGFydCBvZmZzZXRcbgogICAgZGVlcD1pbnQgIDogd2V0aGVyIHRvIHJldHVybiBhcnJheSBvZiB1aWQvdXNlcm5hbWUgcGFpcnMuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgJHBhcm1zID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkb3B0cyBhcyAkb3B0ICkgewogICAgbGlzdCgkaywkdikgPSBleHBsb2RlKCc9Jywkb3B0LDIpOwogICAgc3dpdGNoKCAkayApIHsKICAgIGNhc2UgJ24nOgogICAgY2FzZSAnbyc6CiAgICBjYXNlICdkZWVwJzoKICAgICAgJHBhcm1zWyRrXSA9ICR2OwogICAgICBicmVhazsKICAgIH0KICB9CiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkgewogICAgc2V0X2Vycm9ybXNnKCdOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnR0VUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvZnJpZW5kcycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnTElTVCcpOwogICRyZXEtPmFkZFBhcmFtKCd1aWQnLCR1aWQpOwogIGZvcmVhY2goICRwYXJtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICRyZXEtPmFkZFBhcmFtKCRrZXksJHZhbHVlKTsKICB9CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgCiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApIHsKICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApIHsKICAgICAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwogICAgfQogICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KICBpZiggaXNzZXQoJHRtcC0+ZGF0YSkgKSAgcHJpbnRfcigkdG1wLT5kYXRhKTsKICByZXR1cm4gVFJVRTsKfQoKCi8qCmZ1bmN0aW9uIGZyaWVuZHNfYWRkKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiAKbGlzdCBteSBjdXJyZW50IGZyaWVuZHMKbXVzdCBiZSBsb2dnZWQgaW4gdG8gdXNlIHRoaXMgZnVuY3Rpb24uXG4KRU9UOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBpZiggY291bnQoJG9wdHMpICE9IDEgKQogICAgewogICAgICBzZXRfZXJyb3Jtc2coJ2FkZCBjaGVja2luOiBpbnN1ZmZpY2llbnQgYXJndW1lbnRzJyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKQogICAgewogICAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnUE9TVCcpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2ZyaWVuZHMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0FERCcpOwogICRyZXEtPmFkZFBhcmFtKCd1aWQnLCR1aWQpOwogICRyZXEtPmFkZFBhcmFtKCdmdWlkJywkb3B0c1swXSk7CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKQogICAgewogICAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApCgl7CgkgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKCX0KICAgICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgZWNobyAiQURERUQgRlJJRU5EXG4iOwogIHJldHVybiBUUlVFOwp9CiovCgpmdW5jdGlvbiBmcmllbmRzX2RlbCgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogZGVsIDx1aWQ+CmRlbGV0ZSB0aGUgc3BlY2lmaWVkIGZyaWVuZCBmcm9tIGZyaWVuZCBsaXN0LgptdXN0IGJlIGxvZ2dlZCBpbiB0byB1c2UgdGhpcyBmdW5jdGlvbi5cbgpFT1Q7CiAgICByZXR1cm4gVFJVRTsKICB9CgogIGlmKCBjb3VudCgkb3B0cykgIT0gMSApCiAgICB7CiAgICAgIHNldF9lcnJvcm1zZygnYWRkIGNoZWNraW46IGluc3VmZmljaWVudCBhcmd1bWVudHMnKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICR1aWQgPSBnZXRfYXBwZGF0YSgndWlkJywtMSk7CiAgaWYoICR1aWQgPD0gMCApCiAgICB7CiAgICAgIHNldF9lcnJvcm1zZygnTm90IGxvZ2dlZCBpbi4uLiBub3RoaW5nIHRvIGRvJyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdQT1NUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvZnJpZW5kcycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnREVMJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ3VpZCcsJHVpZCk7CiAgJHJlcS0+YWRkUGFyYW0oJ2Z1aWQnLCRvcHRzWzBdKTsKICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwoKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApCiAgICB7CiAgICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkKCXsKCSAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwoJfQogICAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICBlY2hvICJSRU1PVkVEIEZSSUVORFxuIjsKICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIGZyaWVuZHNfcmVxdWVzdGxpc3QoKQp7CiAgaWYoIGNvdW50KCRvcHRzKSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiByZXF1ZXN0bGlzdApyZXRyaWV2ZSBhIGxpc3Qgb2YgZnJpZW5kIHJlcXVlc3RzLlxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkKICAgIHsKICAgICAgc2V0X2Vycm9ybXNnKCdOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRNZXRob2QoJ0dFVCcpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2ZyaWVuZHMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ1JFUVVFU1RMSVNUJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ3VpZCcsJHVpZCk7CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKQogICAgewogICAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApCgl7CgkgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKCX0KICAgICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgcHJpbnRfcigkdG1wKTsKICBlY2hvICJPS1xuIjsKICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIGZyaWVuZHNfcmVxdWVzdCgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogcmVxdWVzdCA8dWlkPgpzZW5kIGEgZnJpZW5kIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCB1c2VyLlxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgaWYoIGNvdW50KCRvcHRzKSAhPSAxICkKICAgIHsKICAgICAgc2V0X2Vycm9ybXNnKCdhZGQgY2hlY2tpbjogaW5zdWZmaWNpZW50IGFyZ3VtZW50cycpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkKICAgIHsKICAgICAgc2V0X2Vycm9ybXNnKCdOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRNZXRob2QoJ1BPU1QnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9mcmllbmRzJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdSRVFVRVNUJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ3VpZCcsJHVpZCk7CiAgJHJlcS0+YWRkUGFyYW0oJ2Z1aWQnLCRvcHRzWzBdKTsKICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwoKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApCiAgICB7CiAgICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkKCXsKCSAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwoJfQogICAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICBlY2hvICJGUklFTkQgUkVRVUVTVCBPS1xuIjsKICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIGZyaWVuZHNfYXBwcm92ZSgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogYXBwcm92ZSA8dWlkPgphcHByb3ZlIHRoZSBzcGVjaWZpZWQgdXNlciBhcyBhIGZyaWVuZC4KbXVzdCBiZSBsb2dnZWQgaW4gdG8gdXNlIHRoaXMgZnVuY3Rpb24sIGFuZCB0aGUgdWlkIG11c3QgZXhpc3QgaW4gdGhlIHJlcXVlc3QgbGlzdC5cbgpFT1Q7CiAgICByZXR1cm4gVFJVRTsKICB9CgogIGlmKCBjb3VudCgkb3B0cykgIT0gMSApCiAgICB7CiAgICAgIHNldF9lcnJvcm1zZygnYWRkIGNoZWNraW46IGluc3VmZmljaWVudCBhcmd1bWVudHMnKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICR1aWQgPSBnZXRfYXBwZGF0YSgndWlkJywtMSk7CiAgaWYoICR1aWQgPD0gMCApCiAgICB7CiAgICAgIHNldF9lcnJvcm1zZygnTm90IGxvZ2dlZCBpbi4uLiBub3RoaW5nIHRvIGRvJyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdQT1NUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvZnJpZW5kcycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnQVBQUk9WRScpOwogICRyZXEtPmFkZFBhcmFtKCd1aWQnLCR1aWQpOwogICRyZXEtPmFkZFBhcmFtKCdmdWlkJywkb3B0c1swXSk7CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKQogICAgewogICAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApCgl7CgkgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKCX0KICAgICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgZWNobyAiQVBQUk9WRUQgRlJJRU5EXG4iOwogIHJldHVybiBUUlVFOwp9CgoKZnVuY3Rpb24gZnJpZW5kc19kZW55KCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBkZW55IDx1aWQ+CmRlbnkgdGhlIHNwZWNpZmllZCB1c2VyIGZyb20gYmVjb21pbmcgYSBmcmllbmQuCm11c3QgYmUgbG9nZ2VkIGluIHRvIHVzZSB0aGlzIGZ1bmN0aW9uLCBhbmQgdGhlIHVpZCBtdXN0IGV4aXN0IGluIHRoZSByZXF1ZXN0IGxpc3QuXG4KRU9UOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBpZiggY291bnQoJG9wdHMpICE9IDEgKQogICAgewogICAgICBzZXRfZXJyb3Jtc2coJ2FkZCBjaGVja2luOiBpbnN1ZmZpY2llbnQgYXJndW1lbnRzJyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKQogICAgewogICAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnUE9TVCcpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2ZyaWVuZHMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0RFTlknKTsKICAkcmVxLT5hZGRQYXJhbSgndWlkJywkdWlkKTsKICAkcmVxLT5hZGRQYXJhbSgnZnVpZCcsJG9wdHNbMF0pOwogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CgogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkKICAgIHsKICAgICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKQoJewoJICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7Cgl9CiAgICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogIGVjaG8gIkRFTklFRCBGUklFTkRcbiI7CiAgcmV0dXJuIFRSVUU7Cn0KPz4=]]></data>
	</file>
	<file>
	  <filename>/client/client_leaderboards.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIGxlYWRlcmJvYXJkc19wcm9jZXNzX2NvbW1hbmRzKCRjbWQsJG9wdHMpCnsKICBzd2l0Y2goICRjbWQgKSB7CiAgY2FzZSAnTElTVCc6CiAgICByZXR1cm4gbGVhZGVyYm9hcmRzX2xpc3QoJG9wdHMpOwogIGNhc2UgJ0dFVCc6CiAgICByZXR1cm4gbGVhZGVyYm9hcmRzX2dldCgkb3B0cyk7CiAgY2FzZSAnQkFER0VTJzoKICAgIHJldHVybiBsZWFkZXJib2FyZHNfYmFkZ2VzKCRvcHRzKTsKICBjYXNlICdMRUFERVJTJzoKICAgIHJldHVybiBsZWFkZXJib2FyZHNfbGVhZGVycygkb3B0cyk7CiAgfQp9CgpmdW5jdGlvbiBsZWFkZXJib2FyZHNfbGlzdCgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CiAgICBlY2hvIDw8PEVPVAp1c2FnZTogbGlzdApsaXN0IGxlYWRlcmJvYXJkcwpFT1Q7CiAgfQoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9sZWFkZXJib2FyZHMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0xJU1QnKTsKCiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyxUUlVFKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApOyAvLyB3b290IGRvbmUuCiAgcmV0dXJuIFRSVUU7Cn0KCgpmdW5jdGlvbiBsZWFkZXJib2FyZHNfZ2V0KCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGdldCBpZApnZXQgaW5mb3JtYXRpb24gZm9yIG9uZSBsZWFkZXJib2FyZC4KRU9UOwogIH0KCiAgaWYoIGNvdW50KCRvcHRzKSAhPSAxICkgewogICAgc2V0X2Vycm9ybXNnKCdsZWFkZXJib2FyZHNfZ2V0OiBNaXNzaW5nIGxlYWRlcmJvYXJkIGlkIHBhcmFtJyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQogICR0aGVfaWQgPSAoaW50KSRvcHRzWzBdOwoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9sZWFkZXJib2FyZHMnKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdHRVQnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdib2FyZCcsJHRoZV9pZCk7CgogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgcHJpbnRfcigkcmVzKTsKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyxUUlVFKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApOyAvLyB3b290IGRvbmUuCiAgcmV0dXJuIFRSVUU7Cn0KCgpmdW5jdGlvbiBsZWFkZXJib2FyZHNfYmFkZ2VzKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGdldCBsZWFkZXJib2FyZGlkCmdldCBiYWRnZSBpbmZvcm1hdGlvbiBmb3Igb25lIGxlYWRlcmJvYXJkLgpFT1Q7CiAgfQoKICBpZiggY291bnQoJG9wdHMpICE9IDEgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ2xlYWRlcmJvYXJkc19nZXQ6IE1pc3NpbmcgbGVhZGVyYm9hcmQgaWQgcGFyYW0nKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgJHRoZV9pZCA9IChpbnQpJG9wdHNbMF07CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2xlYWRlcmJvYXJkcycpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0JBREdFUycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ2JvYXJkJywkdGhlX2lkKTsKCiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKICBwcmludF9yKCRyZXMpOwogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzLFRSVUUpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKSB7CiAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKSB7CiAgICAgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKICAgIH0KICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHByaW50X3IoJHRtcCk7IC8vIHdvb3QgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIGxlYWRlcmJvYXJkc19sZWFkZXJzKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKICAgIGVjaG8gPDw8RU9UCnVzYWdlOiBsZWFkZXJzIGxlYWRlcmJvYXJkaWQgW251bWJlciBbb2Zmc2V0XV0KbGVhZGVyYm9hcmRpZCA9IChpbnQpIGxlYWRlcmJvYXJkIGlkZW50aWZpZXIKbiA9IE51bWJlciBvZiByZXN1bHRzCm8gPSBvZmZzZXQKcmV0cmlldmUgbGVhZGVyIGluZm9ybWF0aW9uIGZvciBhIGxlYWRlcmJvYXJkLgpFT1Q7CiAgfQoKICBpZiggY291bnQoJG9wdHMpIDwgMSApIHsKICAgIHNldF9lcnJvcm1zZygnbGVhZGVyYm9hcmRzX2xlYWRlcnM6IE1pc3NpbmcgbGVhZGVyYm9hcmQgaWQgcGFyYW0nKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgaWYoIGNvdW50KCRvcHRzKSA+IDMgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ2xlYWRlcmJvYXJkc19sZWFkZXJzOiB0b28gbWFudSBhcmd1bWVudHMnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgJHRoZV9pZCA9IChpbnQpJG9wdHNbMF07CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2xlYWRlcmJvYXJkcycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnTEVBREVSUycpOwogICRyZXEtPmFkZFBhcmFtKCdib2FyZCcsJHRoZV9pZCk7CiAgaWYoIGlzc2V0KCRvcHRzWzFdKSApIHsKICAgICRyZXEtPmFkZFBhcmFtKCduJywoaW50KSRvcHRzWzFdKTsKICB9CiAgaWYoIGlzc2V0KCRvcHRzWzJdKSApIHsKICAgICRyZXEtPmFkZFBhcmFtKCdvJywoaW50KSRvcHRzWzJdKTsKICB9CgogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMsVFJVRSk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApIHsKICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApIHsKICAgICAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwogICAgfQogICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHJpbnRfcigkdG1wKTsgLy8gd29vdCBkb25lLgogIHJldHVybiBUUlVFOwp9CgoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/client/client_locations.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIGxvY2F0aW9uc19wcm9jZXNzX2NvbW1hbmRzKCRjbWQsJG9wdHMpCnsKICBzd2l0Y2goICRjbWQgKSB7CiAgY2FzZSAnSElFUkFSQ0hZJzoKICAgIHJldHVybiBsb2NhdGlvbnNfaGllcmFyY2h5KCRvcHRzKTsKCiAgY2FzZSAnQ0FURUdPUklFUyc6CiAgICByZXR1cm4gbG9jYXRpb25zX2NhdGVnb3JpZXMoJG9wdHMpOwoKICBjYXNlICdMSVNUJzoKICAgIHJldHVybiBsb2NhdGlvbnNfbGlzdCgkb3B0cyk7CgogIGNhc2UgJ0dFVCc6CiAgICByZXR1cm4gbG9jYXRpb25zX2dldCgkb3B0cyk7CgogIGNhc2UgJ0FERCc6CiAgICByZXR1cm4gbG9jYXRpb25zX2FkZCgkb3B0cyk7CgogIGNhc2UgJ0VESVQnOgogICAgcmV0dXJuIGxvY2F0aW9uc19lZGl0KCRvcHRzKTsKCiAgY2FzZSAnUEhPVE9VUExPQUQnOgogICAgcmV0dXJuIGxvY2F0aW9uc19waG90b3VwbG9hZCgkb3B0cyk7CgogIGNhc2UgJ1BIT1RPREVMRVRFJzoKICAgIHJldHVybiBsb2NhdGlvbnNfcGhvdG9kZWxldGUoJG9wdHMpOwogIH0KfQoKZnVuY3Rpb24gbG9jYXRpb25zX2xpc3QoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpID09IDEgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogbGlzdCBbb3B0PXZhbHVlXQpvcHRpb25zOgogIHRvZG9cbgpFT1Q7CiAgcmV0dXJuIFRSVUU7CiAgfQoKICAvLyBwYXJzZSBhcmd1bWVudHMKICAkcGFybXMgPSBhcnJheSgpOwogIGZvcmVhY2goICRvcHRzIGFzICRhcmcgKSB7CiAgICBsaXN0KCRrZXksJHZhbCkgPSBleHBsb2RlKCc9JywkYXJnLDIpOwogICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAkdmFsID0gdHJpbSgkdmFsKTsKICAgIAogICAgLy8gcGFyc2UgYXJndW1lbnRzLgogICAgCiAgICAvLyBpdCBwYXJzZWQgb2theS4KICAgICRwYXJtc1ska2V5XSA9ICR2YWw7CiAgfQoKICAvLyBidWlsZCB0aGUgcmVxdWVzdAogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2xvY2F0aW9ucycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnTElTVCcpOwogIGlmKCBjb3VudCgkcGFybXMpICkgewogICAgZm9yZWFjaCggJHBhcm1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAkcmVxLT5hZGRQYXJhbSgka2V5LCR2YWx1ZSk7CiAgICB9CiAgfQogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CgogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApOyBlY2hvICJcbiI7IC8vIHdvb3QgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIGxvY2F0aW9uc19jYXRlZ29yaWVzKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKICAgIGVjaG8gPDw8RU9UCnVzYWdlOiBjYXRlZ29yaWVzCmxpc3QgYWxsIG9mIHRoZSBwb3NzaWJsZSBjYXRlZ29yaWVzLlxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgLy8gYnVpbGQgdGhlIHJlcXVlc3QKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9sb2NhdGlvbnMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0NBVEVHT1JJRVMnKTsKICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwogIAogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApOyBlY2hvICJcbiI7Ly8gd29vdCBkb25lLgogIHJldHVybiBUUlVFOwp9CgoKZnVuY3Rpb24gbG9jYXRpb25zX2hpZXJhcmNoeSgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBoaWVyYXJjaHkKbGlzdCBhbGwgb2YgdGhlIHBvc3NpYmxlIGhpZXJhcmNoaWVzLlxuCkVPVDsKICByZXR1cm4gVFJVRTsKICB9CgogIC8vIGJ1aWxkIHRoZSByZXF1ZXN0CiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvbG9jYXRpb25zJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdISUVSQVJDSFknKTsKICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwogIAogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApOyBlY2hvICJcbiI7IC8vIHdvb3QgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKZnVuY3Rpb24gbG9jYXRpb25zX2dldCgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBnZXQgbG9jYXRpb249PGxvY2F0aW9uIGlkPgpnZXQgaW5mb3JtYXRpb24gZm9yIGEgc2luZ2xlIGxvY2F0aW9uXG4KRU9UOwogIHJldHVybiBUUlVFOwogIH0KCiAgLy8gcGFyc2UgYXJndW1lbnRzCiAgJHBhcm1zID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkb3B0cyBhcyAkYXJnICkgewogICAgJGtleSA9ICR2YWwgPSAnJzsKICAgIGlmKCBzdHJwb3MoJGFyZywnPScpICE9PSBGQUxTRSApIHsKICAgICAgbGlzdCgka2V5LCR2YWwpID0gZXhwbG9kZSgnPScsJGFyZywyKTsKICAgICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICR2YWwgPSB0cmltKCR2YWwpOwogICAgfQoKICAgIC8vIHBhcnNlIGFyZ3VtZW50cy4KICAgIAogICAgLy8gaXQgcGFyc2VkIG9rYXkuCiAgICBpZiggJGtleSA9PSAnJyB8fCAkdmFsID09ICcnICkgY29udGludWU7CiAgICAkcGFybXNbJGtleV0gPSAkdmFsOwogIH0KCiAgaWYoICFpc3NldCgkcGFybXNbJ2xvY2F0aW9uJ10pICkgewogICAgc2V0X2Vycm9ybXNnKCdsb2NhdGlvbnNfZ2V0OiBNaXNzaW5nIGxvY2F0aW9uIHBhcmFtJyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICAvLyBidWlsZCB0aGUgcmVxdWVzdAogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL2xvY2F0aW9ucycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnR0VUJyk7CiAgaWYoIGNvdW50KCRwYXJtcykgKSB7CiAgICBmb3JlYWNoKCAkcGFybXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICRyZXEtPmFkZFBhcmFtKCRrZXksJHZhbHVlKTsKICAgIH0KICB9CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKICAKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApIHsKICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApIHsKICAgICAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwogICAgfQogICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHJpbnRfcigkdG1wKTsgZWNobyAiXG4iOyAvLyB3b290IGRvbmUuCiAgcmV0dXJuIFRSVUU7Cn0KCmZ1bmN0aW9uIGxvY2F0aW9uc19hZGQoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpID09IDEgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogYWRkCmFkZCBhIG5ldyBsb2NhdGlvbi4gW2NvbXBhbnlfbmFtZT1zdHJpbmddIFthZGRyZXNzPXN0cmluZ3xsYXRpdHVkZT1mbG9hdCBsb25naXR1ZGU9ZmxvYXRdCnRoZSBsb2NhdGlvbiBtdXN0IGJlIHNldC4Kb3B0aW9uczogCiAgY29tcGFueV9uYW1lPXN0cmluZyAocmVxdWlyZWQpCiAgYWRkcmVzcz1zdHJpbmcgKG9wdGlvbmFsKSAKICB0ZWxlcGhvbmU9c3RyaW5nIChvcHRpb25hbCkKICBmYXg9c3RyaW5nIChvcHRpb25hbCkKICBjb250YWN0X2VtYWlsPXN0cmluZyAob3B0aW9uYWwpIGVtYWlsIGFkZHJlc3MuCiAgd2Vic2l0ZT1zdHJpbmcgKG9wdGlvbmFsKSB3ZWJzaXRlIHVybAogIGRldGFpbHM9c3RyaW5nIChvcHRpb25hbCkgdGV4dAogIGhpZXJfaWQ9aW50ZWdlciAob3B0aW9uYWwpCiAgRjpmaWVsZF9uYW1lPW1peGVkIChvcHRpb25hbCkgZmllbGQgdmFsdWUuICBGaWVsZCBuYW1lIG11c3QgYmUgc3BlY2lmaWVkLGFuZCB2YWxpZC4gIE1vcmUgdGhhbiBvbmUgY2FuIGJlIHNwZWNpZmllZC4KICBDOmNhdGVnb3J5X2lkPWludCAob3B0aW9uYWwpIGNhdGVnb3J5IGlkLiAgbW9yZSB0aGFuIG9uZSBjYXRlZ29yeSBpZCBjYW4gYmUgc3BlZmlpZWQuXG4KRU9UOwogIHJldHVybiBUUlVFOwogIH0KCiAgLy8gcGFyc2UgYXJndW1lbnRzCiAgaWYoIGNvdW50KCRvcHRzKSA8IDEgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ2xvY2F0aW9uc19hZGQ6IGluc3VmZmljaWVudCBhcmd1bWVudHMnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkgewogICAgc2V0X2Vycm9ybXNnKCdsb2NhdGlvbnNfYWRkOiBOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgJGxvYyA9IGdldF9hcHBkYXRhKCdsb2MnLCcnKTsKICBpZiggISRsb2MgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ2xvY2F0aW9uc19hZGQ6IHlvdXIgbG9jYXRpb24gaXMgbm90IHNldCcpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgJHBhcm1zID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkb3B0cyBhcyAkYXJnICkgewogICAgJGtleSA9ICRhcmc7CiAgICAkdmFsID0gJyc7CiAgICBpZiggc3Ryc3RyKCRhcmcsJz0nKSAhPT0gRkFMU0UgKSB7CiAgICAgIGxpc3QoJGtleSwkdmFsKSA9IGV4cGxvZGUoJz0nLCRhcmcsMik7CiAgICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgICAkdmFsID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICAvLyBpdCBwYXJzZWQgb2theS4KICAgICRwYXJtc1ska2V5XSA9ICR2YWw7CiAgfQogIAogIC8vIGJ1aWxkIHRoZSByZXF1ZXN0CiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdQT1NUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvbG9jYXRpb25zJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdBREQnKTsKICAkcmVxLT5hZGRQYXJhbSgnb3duZXInLCR1aWQpOwogIGlmKCBjb3VudCgkcGFybXMpICkgewogICAgZm9yZWFjaCggJHBhcm1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAkcmVxLT5hZGRQYXJhbSgka2V5LCR2YWx1ZSk7CiAgICB9CiAgfQogICRyZXEtPmFkZFBhcmFtKCdsYXRpdHVkZScsJGxvY1swXSk7CiAgJHJlcS0+YWRkUGFyYW0oJ2xvbmdpdHVkZScsJGxvY1sxXSk7CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKICAKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApIHsKICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApIHsKICAgICAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwogICAgfQogICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHJpbnRfcigkdG1wKTsgZWNobyAiXG4iOyAvLyB3b290IGRvbmUuCiAgcmV0dXJuIFRSVUU7Cn0KCmZ1bmN0aW9uIGxvY2F0aW9uc19lZGl0KCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGVkaXQKRWRpdCBhbiBleGlzdGluZyBsb2NhdGlvbi4gbG9jYXRpb249aW50ZWdlciBbY29tcGFueV9uYW1lPXN0cmluZ10gW2FkZHJlc3M9c3RyaW5nfGxhdGl0dWRlPWZsb2F0IGxvbmdpdHVkZT1mbG9hdF0KdGhlIGxvY2F0aW9uIG11c3QgYmUgc2V0LgpvcHRpb25zOiAKICBsb2NhdGlvbiA9aW50ZWdlciAocmVxdWlyZWQpCiAgY29tcGFueV9uYW1lPXN0cmluZyAob3B0aW9uYWwpCiAgYWRkcmVzcz1zdHJpbmcgKG9wdGlvbmFsKSAKICB0ZWxlcGhvbmU9c3RyaW5nIChvcHRpb25hbCkKICBmYXg9c3RyaW5nIChvcHRpb25hbCkKICBjb250YWN0X2VtYWlsPXN0cmluZyAob3B0aW9uYWwpIGVtYWlsIGFkZHJlc3MuCiAgd2Vic2l0ZT1zdHJpbmcgKG9wdGlvbmFsKSB3ZWJzaXRlIHVybAogIGRldGFpbHM9c3RyaW5nIChvcHRpb25hbCkgdGV4dAogIGhpZXJfaWQ9aW50ZWdlciAob3B0aW9uYWwpCiAgbGF0aXR1ZGU6ZmxvYXQgKG9wdGlvbmFsKQogIGxvbmdpdHVkZTpmbG9hdCAob3B0aW9uYWwpCiAgRjpmaWVsZF9uYW1lPW1peGVkIChvcHRpb25hbCkgZmllbGQgdmFsdWUuICBGaWVsZCBuYW1lIG11c3QgYmUgc3BlY2lmaWVkLGFuZCB2YWxpZC4gIE1vcmUgdGhhbiBvbmUgY2FuIGJlIHNwZWNpZmllZC4KICBDOmNhdGVnb3J5X2lkPWludCAob3B0aW9uYWwpIGNhdGVnb3J5IGlkLiAgbW9yZSB0aGFuIG9uZSBjYXRlZ29yeSBpZCBjYW4gYmUgc3BlZmlpZWQuXG4KRU9UOwogIHJldHVybiBUUlVFOwogIH0KCiAgLy8gcGFyc2UgYXJndW1lbnRzCiAgaWYoIGNvdW50KCRvcHRzKSA8IDEgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ2xvY2F0aW9uc19lZGl0OiBpbnN1ZmZpY2llbnQgYXJndW1lbnRzJyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQogICR1aWQgPSBnZXRfYXBwZGF0YSgndWlkJywtMSk7CiAgaWYoICR1aWQgPD0gMCApIHsKICAgIHNldF9lcnJvcm1zZygnbG9jYXRpb25zX2VkaXQ6IE5vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KLy8gICAkbG9jID0gZ2V0X2FwcGRhdGEoJ2xvYycsJycpOwovLyAgIGlmKCAhJGxvYyApIHsKLy8gICAgIHNldF9lcnJvcm1zZygnbG9jYXRpb25zX2FkZDogeW91ciBsb2NhdGlvbiBpcyBub3Qgc2V0Jyk7Ci8vICAgICByZXR1cm4gRkFMU0U7Ci8vICAgfQoKICAkcGFybXMgPSBhcnJheSgpOwogIGZvcmVhY2goICRvcHRzIGFzICRhcmcgKSB7CiAgICAka2V5ID0gJGFyZzsKICAgICR2YWwgPSAnJzsKICAgIGlmKCBzdHJzdHIoJGFyZywnPScpICE9PSBGQUxTRSApIHsKICAgICAgbGlzdCgka2V5LCR2YWwpID0gZXhwbG9kZSgnPScsJGFyZywyKTsKICAgICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICR2YWwgPSB0cmltKCR2YWwpOwogICAgfQoKICAgIC8vIGl0IHBhcnNlZCBva2F5LgogICAgJHBhcm1zWyRrZXldID0gJHZhbDsKICB9CgogIGlmKCAhaXNzZXQoJHBhcm1zWydsb2NhdGlvbiddKSB8fCAhaXNfbnVtZXJpYygkcGFybXNbJ2xvY2F0aW9uJ10pICkgewogICAgc2V0X2Vycm9ybXNnKCdsb2NhdGlvbnNfZWRpdDogaWQgc3BlY2lmaWVkIGlzIGludmFsaWQ6ICcuJHBhcm1zWydsb2NhdGlvbiddKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIC8vIGJ1aWxkIHRoZSByZXF1ZXN0CiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdQT1NUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvbG9jYXRpb25zJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdFRElUJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ293bmVyJywkdWlkKTsKICBpZiggY291bnQoJHBhcm1zKSApIHsKICAgIGZvcmVhY2goICRwYXJtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgJHJlcS0+YWRkUGFyYW0oJGtleSwkdmFsdWUpOwogICAgfQogIH0KCi8vICAgJHJlcS0+YWRkUGFyYW0oJ2xhdGl0dWRlJywkbG9jWzBdKTsKLy8gICAkcmVxLT5hZGRQYXJhbSgnbG9uZ2l0dWRlJywkbG9jWzFdKTsKICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwogIAogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkgewogICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkgewogICAgICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7CiAgICB9CiAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwcmludF9yKCR0bXApOyBlY2hvICJcbiI7IC8vIHdvb3QgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKZnVuY3Rpb24gbG9jYXRpb25zX3Bob3RvdXBsb2FkKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IHBob3RvdXBsb2FkIGxvYz1sb2NhdGlvbl9pZCBmaWxlPWZpbGVuYW1lIC4uLgpVcGxvYWQgb25lIG9yIG1vcmUgcGhvdG9zIHRvIHRoZSBhbGJ1bSBhc3NvY2lhdGVkIHdpdGggYSBsb2NhdGlvbi4Kb3B0aW9uczogCiAgbG9jYXRpb24gPWludGVnZXIgKHJlcXVpcmVkKQogIGZpbGU9c3RyaW5nIChhdCBsZWFzdCBvbmUgcmVxdWlyZWQpCkVPVDsKICByZXR1cm4gVFJVRTsKICB9CgogIGlmKCBjb3VudCgkb3B0cykgPCAyICkgewogICAgc2V0X2Vycm9ybXNnKCdwaG90b3VwbG9hZDogaW5zdWZmaWNpZW50IGFyZ3VtZW50cycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ3Bob3RvdXBsb2FkOiBOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogICRsb2MgPSAnJzsKICAkZmlsZXMgPSBhcnJheSgpOwogIGZvcmVhY2goICRvcHRzIGFzICRvcHQgKSB7CiAgICBsaXN0KCRrLCR2KSA9IGV4cGxvZGUoJz0nLCRvcHQsMik7CiAgICBzd2l0Y2goIHN0cnRvbG93ZXIoJGspICkgewogICAgY2FzZSAnbG9jJzoKICAgICAgJGxvYyA9IHRyaW0oJHYpOwogICAgICBicmVhazsKICAgIGNhc2UgJ2ZpbGUnOgogICAgICBpZiggIWZpbGVfZXhpc3RzKCR2KSApIHsKCXNldF9lcnJvcm1zZygncGhvdG91cGxvYWQ6IGZpbGUgJy4kdi4nIGRvZXMgbm90IGV4aXN0Jyk7CglyZXR1cm4gRkFMU0U7CiAgICAgIH0KICAgICAgJGZpbGVzW10gPSAkdjsKICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRNZXRob2QoJ1BPU1QnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy9sb2NhdGlvbnMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ1BIT1RPVVBMT0FEJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ293bmVyJywkdWlkKTsKICAkcmVxLT5hZGRQYXJhbSgnbG9jYXRpb24nLCRsb2MpOwogIGlmKCBjb3VudCgkZmlsZXMpID4gMCApIHsKICAgICRpZHggPSAxOwogICAgZm9yZWFjaCggJGZpbGVzIGFzICRvbmUgKSB7CiAgICAgICRyZXEtPmFkZFBhcmFtKCdmaWxlW10nLCdAJy4kb25lKTsKICAgIH0KICB9CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKSB7CiAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKSB7CiAgICAgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKICAgIH0KICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgcHJpbnRfcigkdG1wKTsgZWNobyAiXG4iOwogIHJldHVybiBUUlVFOwp9CgpmdW5jdGlvbiBsb2NhdGlvbnNfcGhvdG9kZWxldGUoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpID09IDEgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogcGhvdG9kZWxldGUgbG9jPWxvY2F0aW9uX2lkIGZpbGU9ZmlsZW5hbWUgLi4uCkRlbGV0ZSBvbmUgb3IgbW9yZSBwaG90b3MgdG8gdGhlIGFsYnVtIGFzc29jaWF0ZWQgd2l0aCBhIGxvY2F0aW9uLgpvcHRpb25zOiAKICBsb2NhdGlvbiA9aW50ZWdlciAocmVxdWlyZWQpCiAgZmlsZT1zdHJpbmcgKGF0IGxlYXN0IG9uZSByZXF1aXJlZCkKRU9UOwogIHJldHVybiBUUlVFOwogIH0KCiAgaWYoIGNvdW50KCRvcHRzKSA8IDIgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ3Bob3RvZGVsZXRlOiBpbnN1ZmZpY2llbnQgYXJndW1lbnRzJyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQogICR1aWQgPSBnZXRfYXBwZGF0YSgndWlkJywtMSk7CiAgaWYoICR1aWQgPD0gMCApIHsKICAgIHNldF9lcnJvcm1zZygncGhvdG9kZWxldGU6IE5vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgJGxvYyA9ICcnOwogICRmaWxlcyA9IGFycmF5KCk7CiAgZm9yZWFjaCggJG9wdHMgYXMgJG9wdCApIHsKICAgIGxpc3QoJGssJHYpID0gZXhwbG9kZSgnPScsJG9wdCwyKTsKICAgIHN3aXRjaCggc3RydG9sb3dlcigkaykgKSB7CiAgICBjYXNlICdsb2MnOgogICAgICAkbG9jID0gdHJpbSgkdik7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnZmlsZSc6CiAgICAgICRmaWxlc1tdID0gJHY7CiAgICAgIGJyZWFrOwogICAgfQogIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdQT1NUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvbG9jYXRpb25zJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdQSE9UT0RFTEVURScpOwogICRyZXEtPmFkZFBhcmFtKCdvd25lcicsJHVpZCk7CiAgJHJlcS0+YWRkUGFyYW0oJ2xvY2F0aW9uJywkbG9jKTsKICBpZiggY291bnQoJGZpbGVzKSA+IDAgKSB7CiAgICAkaWR4ID0gMTsKICAgIGZvcmVhY2goICRmaWxlcyBhcyAkb25lICkgewogICAgICAkcmVxLT5hZGRQYXJhbSgnZmlsZVtdJywkb25lKTsKICAgIH0KICB9CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/client/client_social.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIHNvY2lhbF9wcm9jZXNzX2NvbW1hbmRzKCRjbWQsJG9wdHMpCnsKICBzd2l0Y2goICRjbWQgKQogICAgewogICAgY2FzZSAnTElTVCc6CiAgICAgIHJldHVybiBzb2NpYWxfbGlzdCgkb3B0cyk7CgogICAgY2FzZSAnR0VUS0VZJzoKICAgICAgcmV0dXJuIHNvY2lhbF9nZXRrZXkoJG9wdHMpOwoKICAgIGNhc2UgJ1NFVEtFWSc6CiAgICAgIHJldHVybiBzb2NpYWxfc2V0a2V5KCRvcHRzKTsKICAgIH0KfQoKZnVuY3Rpb24gc29jaWFsX2xpc3QoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpID09IDEgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewogICAgZWNobyA8PDxFT1QKdXNhZ2U6IGxpc3QKbGlzdCBhdmFpbGFibGUgc29jaWFsIG5ldHdvcmtzCkVPVDsKICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL3NvY2lhbCcpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnTElTVCcpOwoKICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzLFRSVUUpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKSB7CiAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKSB7CiAgICAgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKICAgIH0KICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHByaW50X3IoJHRtcCk7IC8vIHdvb3QgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKZnVuY3Rpb24gc29jaWFsX2dldGtleSgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CiAgICBlY2hvIDw8PEVPVAp1c2FnZTogbGlzdApnZXRrZXkgbmV0d29yaz1uZXR3b3JrbmFtZQpFT1Q7CiAgfQoKICAkcGFybXMgPSBhcnJheSgpOwogIGZvcmVhY2goICRvcHRzIGFzICRvbmUgKSB7CiAgICBsaXN0KCRrZXksJHZhbHVlKSA9IGV4cGxvZGUoJz0nLCRvbmUsMik7CiAgICAKICAgIHN3aXRjaCgka2V5KSB7CiAgICBjYXNlICduZXR3b3JrJzoKICAgICAgJHZhbHVlID0gdHJpbSgkdmFsdWUpOwogICAgICAkcGFybXNbJGtleV0gPSAkdmFsdWU7CiAgICAgIGJyZWFrOwogICAgfQogIH0KCiAgaWYoICFpc3NldCgkcGFybXNbJ25ldHdvcmsnXSkgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ3NvY2lhbCBHRVRLRVk6IGluc3VmZmljaWVudCBhcmd1bWVudHMnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkgewogICAgc2V0X2Vycm9ybXNnKCdOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL3NvY2lhbCcpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnR0VUS0VZJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ3VpZCcsJHVpZCk7CiAgJHJlcS0+YWRkUGFyYW0oJ25ldHdvcmsnLCRwYXJtc1snbmV0d29yayddKTsKICAkcmVxLT5hZGRQYXJhbSgndicsbWQ1KF9hcGlrZXkoKS4kdWlkLiRwYXJtc1snbmV0d29yayddKSk7CgogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMsVFJVRSk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApIHsKICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApIHsKICAgICAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwogICAgfQogICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHJpbnRfcigkdG1wKTsgLy8gd29vdCBkb25lLgogIHJldHVybiBUUlVFOwp9CgpmdW5jdGlvbiBzb2NpYWxfc2V0a2V5KCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKICAgIGVjaG8gPDw8RU9UCnVzYWdlOiBsaXN0CnNldGtleSBuZXR3b3JrPW5ldHdvcmtuYW1lIHRva2VuPXRva2VuIHNlY3JldD1zZWNyZXQKRU9UOwogIH0KCiAgJHBhcm1zID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkb3B0cyBhcyAkb25lICkgewogICAgbGlzdCgka2V5LCR2YWx1ZSkgPSBleHBsb2RlKCc9Jywkb25lLDIpOwogICAgCiAgICBzd2l0Y2goJGtleSkgewogICAgY2FzZSAnbmV0d29yayc6CiAgICBjYXNlICd0b2tlbic6CiAgICBjYXNlICdzZWNyZXQnOgogICAgICAkdmFsdWUgPSB0cmltKCR2YWx1ZSk7CiAgICAgICRwYXJtc1ska2V5XSA9ICR2YWx1ZTsKICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICBpZiggIWlzc2V0KCRwYXJtc1snbmV0d29yayddKSB8fCAhaXNzZXQoJHBhcm1zWydzZWNyZXQnXSkgfHwgIWlzc2V0KCRwYXJtc1sndG9rZW4nXSkgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ3NvY2lhbCBTRVRLRVk6IGluc3VmZmljaWVudCBhcmd1bWVudHMnKTsKICAgIHJldHVybiBGQUxTRTsKICB9CiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkgewogICAgc2V0X2Vycm9ybXNnKCdOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnUE9TVCcpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL3NvY2lhbCcpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnU0VUS0VZJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ3VpZCcsJHVpZCk7CiAgJHJlcS0+YWRkUGFyYW0oJ25ldHdvcmsnLCRwYXJtc1snbmV0d29yayddKTsKICAkcmVxLT5hZGRQYXJhbSgndG9rZW4nLCRwYXJtc1sndG9rZW4nXSk7CiAgJHJlcS0+YWRkUGFyYW0oJ3NlY3JldCcsJHBhcm1zWydzZWNyZXQnXSk7CiAgJHggPSBtZDUoX2FwaWtleSgpLiR1aWQuJHBhcm1zWyduZXR3b3JrJ10uJHBhcm1zWyd0b2tlbiddLiRwYXJtc1snc2VjcmV0J10pOwogICRyZXEtPmFkZFBhcmFtKCd2JywkeCk7CgogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMsVFJVRSk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApIHsKICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApIHsKICAgICAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwogICAgfQogICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgcHJpbnRfcigkdG1wKTsgLy8gd29vdCBkb25lLgogIHJldHVybiBUUlVFOwp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/client/client_user.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmZ1bmN0aW9uIHVzZXJzX3Byb2Nlc3NfY29tbWFuZHMoJGNtZCwkb3B0cykKewogIHN3aXRjaCggJGNtZCApCiAgICB7CiAgICBjYXNlICdMT0dJTic6CiAgICAgIHJldHVybiB1c2VyX2xvZ2luKCRvcHRzKTsKCiAgICBjYXNlICdJRCc6CiAgICAgIHJldHVybiB1c2VyX2lkKCRvcHRzKTsKICAgICAgCiAgICBjYXNlICdSRUdJU1RFUic6CiAgICAgIHJldHVybiB1c2VyX3JlZ2lzdGVyKCRvcHRzKTsKCiAgICBjYXNlICdQSU5HJzoKICAgICAgcmV0dXJuIHVzZXJfcGluZygkb3B0cyk7CgogICAgY2FzZSAnUFJPUFMnOgogICAgICByZXR1cm4gdXNlcl9nZXRwcm9wZXJ0aWVzKCRvcHRzKTsKCiAgICBjYXNlICdJTkZPJzoKICAgICAgcmV0dXJuIHVzZXJfZ2V0aW5mbygkb3B0cyk7CgogICAgY2FzZSAnU0VUUFJPUCc6CiAgICAgIHJldHVybiB1c2VyX3NldHByb3BzKCRvcHRzKTsKCiAgICBjYXNlICdMSVNUJzoKICAgICAgcmV0dXJuIHVzZXJfbGlzdCgkb3B0cyk7CgogICAgY2FzZSAnTE9HT1VUJzoKICAgICAgcmV0dXJuIHVzZXJfbG9nb3V0KCRvcHRzKTsKCiAgICBjYXNlICdCQURHRVMnOgogICAgICByZXR1cm4gdXNlcl9iYWRnZXMoJG9wdHMpOwogICAgfQp9CgpmdW5jdGlvbiB1c2VyX3JlZ2lzdGVyKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiByZWdpc3RlciB1c2VybmFtZSBwYXNzd29yZFxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgaWYoIGNvdW50KCRvcHRzKSAhPSAyICkKICAgIHsKICAgICAgc2V0X2Vycm9ybXNnKCdyZWdpc3RlcjogaW5zdWZmaWNpZW50IGFyZ3VtZW50cycpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnUE9TVCcpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL3VzZXJzJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdSRUdJU1RFUicpOwogICRyZXEtPmFkZFBhcmFtKCd1Jywkb3B0c1swXSk7CiAgJHJlcS0+YWRkUGFyYW0oJ3AnLCRvcHRzWzFdKTsKICAkcmVxLT5hZGRQYXJhbSgndicsbWQ1KF9hcGlrZXkoKS4kb3B0c1swXS4kb3B0c1sxXSkpOwogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKQogICAgewogICAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApCgl7CgkgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKCX0KICAgICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgZWNobyAiT0tcbiI7IC8vIHdvb3QsIGRvbmUuCiAgcmV0dXJuIFRSVUU7Cn0KCgpmdW5jdGlvbiB1c2VyX2xvZ2luKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBsb2dpbiB1c2VybmFtZSBwYXNzd29yZFxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgaWYoIGNvdW50KCRvcHRzKSAhPSAyICkKICAgIHsKICAgICAgc2V0X2Vycm9ybXNnKCdsb2dpbjogaW5zdWZmaWNpZW50IGFyZ3VtZW50cycpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnUE9TVCcpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL3VzZXJzJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdMT0dJTicpOwogICRyZXEtPmFkZFBhcmFtKCd1Jywkb3B0c1swXSk7CiAgJHJlcS0+YWRkUGFyYW0oJ3AnLCRvcHRzWzFdKTsKICAkcmVxLT5hZGRQYXJhbSgndicsbWQ1KF9hcGlrZXkoKS4kb3B0c1swXS4kb3B0c1sxXSkpOwogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgCiAgcHJpbnRfcigkcmVzKTsKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgcHJpbnRfcigkdG1wKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkKICAgIHsKICAgICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKQoJewoJICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7Cgl9CiAgICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogIGlmKCBpc3NldCgkdG1wLT5kYXRhKSApCiAgICB7CiAgICAgIHNldF9hcHBkYXRhKCd1aWQnLCR0bXAtPmRhdGEpOwogICAgICBlY2hvICJPS1xuIjsgLy8gd29vdCwgZG9uZS4KICAgIH0KICByZXR1cm4gVFJVRTsKfQoKZnVuY3Rpb24gdXNlcl9sb2dvdXQoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGxvZ291dAp1c2VzIGN1cnJlbnRseSBsb2dnZWQgaW4gdWlkLlxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkKICAgIHsKICAgICAgc2V0X2Vycm9ybXNnKCdOb3QgbG9nZ2VkIGluLi4uIG5vdGhpbmcgdG8gZG8nKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRNZXRob2QoJ1BPU1QnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy91c2VycycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnTE9HT1VUJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ3VpZCcsJHVpZCk7CiAgJHJlcS0+YWRkUGFyYW0oJ3YnLG1kNShfYXBpa2V5KCkuJHVpZCkpOwogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CgogICR0bXAgPSBqc29uX2RlY29kZSgkcmVzKTsKICBpZiggaXNzZXQoJHRtcC0+X3N0YXR1cykgJiYgJHRtcC0+X3N0YXR1cyAhPSAnT0snICkKICAgIHsKICAgICAgJG1zZyA9ICR0bXAtPl9zdGF0dXM7CiAgICAgIGlmKCBpc3NldCgkdG1wLT5fbWVzc2FnZSkgKQoJewoJICAkbXNnIC49ICc6ICcuJHRtcC0+X21lc3NhZ2U7Cgl9CiAgICAgIHNldF9lcnJvcm1zZygkbXNnKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogIHNldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBlY2hvICJPS1xuIjsgLy8gd29vdCwgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKZnVuY3Rpb24gdXNlcl9pZCgkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBpZApyZXR1cm5zIGN1cnJlbnRseSBsb2dnZWQgaW4gdWlkLlxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgJHVpZCA9IGdldF9hcHBkYXRhKCd1aWQnLC0xKTsKICBpZiggJHVpZCA8PSAwICkKICAgIGVjaG8gIk5PVCBMT0dHRUQgSU5cbiI7CiAgZWxzZQogICAgZWNobyAiVUlEIGlzICIuJHVpZC4iXG4iOwogIHJldHVybiBUUlVFOwp9CgpmdW5jdGlvbiB1c2VyX3BpbmcoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpID09IDEgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogcGluZwphIHBpbmcgdG8gdGhlIHNlcnZlciB0byByZXRhaW4gbG9nZ2VkIGluIHN0YXR1cy5cbgpFT1Q7CiAgICByZXR1cm4gVFJVRTsKICB9CgogICR1aWQgPSBnZXRfYXBwZGF0YSgndWlkJywtMSk7CiAgaWYoICR1aWQgPD0gMCApCiAgICB7CiAgICAgIHNldF9lcnJvcm1zZygnTm90IGxvZ2dlZCBpbi4uLiBub3RoaW5nIHRvIGRvJyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdHRVQnKTsKICAkcmVxLT5zZXRUYXJnZXQoQkFTRV9VUkwuJy91c2VycycpOwogICRyZXEtPmFkZFBhcmFtKCdhcGlrZXknLF9hcGlrZXkoKSk7CiAgJHJlcS0+YWRkUGFyYW0oJ29wJywnUElORycpOwogICRyZXEtPmFkZFBhcmFtKCd1aWQnLCR1aWQpOwogICRyZXEtPmFkZFBhcmFtKCd2JyxtZDUoX2FwaWtleSgpLiR1aWQpKTsKICAkcmVzID0gJHJlcS0+ZXhlY3V0ZSgpOwoKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApCiAgICB7CiAgICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgICBpZiggaXNzZXQoJHRtcC0+X21lc3NhZ2UpICkKCXsKCSAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwoJfQogICAgICBzZXRfZXJyb3Jtc2coJG1zZyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KICBlY2hvICJPS1xuIjsgLy8gd29vdCwgZG9uZS4KICByZXR1cm4gVFJVRTsKfQoKCmZ1bmN0aW9uIHVzZXJfZ2V0cHJvcGVydGllcygkb3B0cykKewogIGlmKCBjb3VudCgkb3B0cykgPT0gMSAmJiBzdHJ0b2xvd2VyKCRvcHRzWzBdKSA9PSAnaGVscCcgKSB7CmVjaG8gPDw8RU9UCnVzYWdlOiBwcm9wcwpyZXR1cm4gdGhlIHByb3BlcnRpZXMgZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIuXG4KRU9UOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKQogICAgewogICAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnR0VUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvdXNlcnMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ1BST1BFUlRJRVMnKTsKICAkcmVxLT5hZGRQYXJhbSgndWlkJywkdWlkKTsKICAkcmVxLT5hZGRQYXJhbSgndicsbWQ1KF9hcGlrZXkoKS4kdWlkKSk7CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKQogICAgewogICAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApCgl7CgkgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKCX0KICAgICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgcHJpbnRfcigkdG1wKS4iXG4iOwogIHJldHVybiBUUlVFOwp9CgoKZnVuY3Rpb24gdXNlcl9nZXRpbmZvKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IHByb3BzCmdldCB0aGUgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIuXG4KRU9UOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKQogICAgewogICAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnR0VUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvdXNlcnMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0dFVElORk8nKTsKICAkcmVxLT5hZGRQYXJhbSgndWlkJywkdWlkKTsKICAkcmVxLT5hZGRQYXJhbSgndicsbWQ1KF9hcGlrZXkoKS4kdWlkKSk7CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKQogICAgewogICAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApCgl7CgkgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKCX0KICAgICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgcHJpbnRfcigkdG1wKS4iXG4iOwogIHJldHVybiBUUlVFOwp9CgpmdW5jdGlvbiB1c2VyX3NldHByb3BzKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IHNldHByb3AgcHJvcG5hbWU9dmFsdWUgLi4uCnNldCBvbmUgb3IgbW9yZSB1c2VyIHByb3BlcnRpZXMuXG4KRU9UOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICAvLyB1c2FnZTogdWlkIGtleT12YWx1ZSBrZXk9dmFsdWUKICBpZiggY291bnQoJG9wdHMpIDwgMSApCiAgICB7CiAgICAgIHNldF9lcnJvcm1zZygncmVnaXN0ZXI6IGluc3VmZmljaWVudCBhcmd1bWVudHMnKTsKICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQogICR1aWQgPSBnZXRfYXBwZGF0YSgndWlkJywtMSk7CiAgaWYoICR1aWQgPD0gMCApCiAgICB7CiAgICAgIHNldF9lcnJvcm1zZygnTm90IGxvZ2dlZCBpbi4uLiBub3RoaW5nIHRvIGRvJyk7CiAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgJHJlcSA9IG5ldyBjbXNfaHR0cF9yZXF1ZXN0KCk7CiAgJHJlcS0+c2V0TWV0aG9kKCdQT1NUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvdXNlcnMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ1NFVFBST1BTJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ3VpZCcsJHVpZCk7CiAgJHJlcS0+YWRkUGFyYW0oJ3YnLG1kNShfYXBpa2V5KCkuJHVpZCkpOwogIGZvcmVhY2goICRvcHRzIGFzICRvbmUgKQogICAgewogICAgICBsaXN0KCRrLCR2KSA9IGV4cGxvZGUoJz0nLCRvbmUsMik7CiAgICAgIGlmKCAhJGsgKSBjb250aW51ZTsKICAgICAgJHJlcS0+YWRkUGFyYW0oJGssJHYpOwogICAgfQogICRyZXMgPSAkcmVxLT5leGVjdXRlKCk7CiAgCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKQogICAgewogICAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApCgl7CgkgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKCX0KICAgICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgcHJpbnRfcigkdG1wKS4iXG4iOwogIHJldHVybiBUUlVFOwp9CgpmdW5jdGlvbiB1c2VyX2xpc3QoJG9wdHMpCnsKICBpZiggY291bnQoJG9wdHMpID09IDEgJiYgc3RydG9sb3dlcigkb3B0c1swXSkgPT0gJ2hlbHAnICkgewplY2hvIDw8PEVPVAp1c2FnZTogbGlzdCBbcHJvcD1wYXR0ZXJuIFtsaW1pdCBbb2Zmc2V0XV1dCmxpc3QgdXNlcnMsIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmlsdGVyLlxuCkVPVDsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgLy8gdXNhZ2U6IFtwcm9wPXBhdHRlcm5dIFtsaW1pdF0gW29mZnNldF0KICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCAkdWlkIDw9IDAgKSB7CiAgICBzZXRfZXJyb3Jtc2coJ05vdCBsb2dnZWQgaW4uLi4gbm90aGluZyB0byBkbycpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgJHBhcm1zID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkb3B0cyBhcyAkYXJnICkgewogICAgbGlzdCgka2V5LCR2YWwpID0gZXhwbG9kZSgnPScsJGFyZywyKTsKICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgJHZhbCA9IHRyaW0oJHZhbCk7CgogICAgJHBhcm1zWyRrZXldID0gJHZhbDsKICB9CgogICRyZXEgPSBuZXcgY21zX2h0dHBfcmVxdWVzdCgpOwogICRyZXEtPnNldE1ldGhvZCgnR0VUJyk7CiAgJHJlcS0+c2V0VGFyZ2V0KEJBU0VfVVJMLicvdXNlcnMnKTsKICAkcmVxLT5hZGRQYXJhbSgnYXBpa2V5JyxfYXBpa2V5KCkpOwogICRyZXEtPmFkZFBhcmFtKCdvcCcsJ0xJU1QnKTsKICAkcmVxLT5hZGRQYXJhbSgndWlkJywkdWlkKTsKICBpZiggY291bnQoJHBhcm1zKSApIHsKICAgIGZvcmVhY2goICRwYXJtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICBjYXNlICduJzoKICAgICAgY2FzZSAnbyc6CiAgICAgIGNhc2UgJ3VzZXJwYXR0ZXJuJzoKICAgICAgY2FzZSAnaWRsaXN0JzoKICAgICAgY2FzZSAncHJvcGVydHknOgogICAgICBjYXNlICdwcm9wcGF0dGVybic6CiAgICAgIGNhc2UgJ2Z1bGwnOgoJJHJlcS0+YWRkUGFyYW0oJGtleSwkdmFsdWUpOwoJYnJlYWs7CiAgICAgIH0KICAgIH0KICB9CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKICAKICAkdG1wID0ganNvbl9kZWNvZGUoJHJlcyk7CiAgaWYoIGlzc2V0KCR0bXAtPl9zdGF0dXMpICYmICR0bXAtPl9zdGF0dXMgIT0gJ09LJyApIHsKICAgICRtc2cgPSAkdG1wLT5fc3RhdHVzOwogICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApIHsKICAgICAgJG1zZyAuPSAnOiAnLiR0bXAtPl9tZXNzYWdlOwogICAgfQogICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgcmV0dXJuIEZBTFNFOwogIH0KICBwcmludF9yKCR0bXApLiJcbiI7CiAgcmV0dXJuIFRSVUU7Cn0KCmZ1bmN0aW9uIHVzZXJfYmFkZ2VzKCRvcHRzKQp7CiAgaWYoIGNvdW50KCRvcHRzKSA9PSAxICYmIHN0cnRvbG93ZXIoJG9wdHNbMF0pID09ICdoZWxwJyApIHsKZWNobyA8PDxFT1QKdXNhZ2U6IGJhZGdlcyBbdWlkXQpnZXQgdGhlIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyLCBvciB0aGUgc3BlY2lmaWVkIHVzZXIuXG4KRU9UOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICAkdWlkID0gZ2V0X2FwcGRhdGEoJ3VpZCcsLTEpOwogIGlmKCBjb3VudCgkb3B0cykgPT0gMSApIHsKICAgICR1aWQgPSAoaW50KSRvcHRzWzBdOwogIH0KICBpZiggJHVpZCA8PSAwICkgewogICAgc2V0X2Vycm9ybXNnKCdOb3QgbG9nZ2VkIGluLCBhbmQgbm8gdWlkIHNwZWNpZmllZC4uLiBub3RoaW5nIHRvIGRvJyk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICAkcmVxID0gbmV3IGNtc19odHRwX3JlcXVlc3QoKTsKICAkcmVxLT5zZXRNZXRob2QoJ0dFVCcpOwogICRyZXEtPnNldFRhcmdldChCQVNFX1VSTC4nL3VzZXJzJyk7CiAgJHJlcS0+YWRkUGFyYW0oJ2FwaWtleScsX2FwaWtleSgpKTsKICAkcmVxLT5hZGRQYXJhbSgnb3AnLCdCQURHRVMnKTsKICAkcmVxLT5hZGRQYXJhbSgndWlkJywkdWlkKTsKICAkcmVxLT5hZGRQYXJhbSgndicsbWQ1KF9hcGlrZXkoKS4kdWlkKSk7CiAgJHJlcyA9ICRyZXEtPmV4ZWN1dGUoKTsKCiAgJHRtcCA9IGpzb25fZGVjb2RlKCRyZXMpOwogIGlmKCBpc3NldCgkdG1wLT5fc3RhdHVzKSAmJiAkdG1wLT5fc3RhdHVzICE9ICdPSycgKQogICAgewogICAgICAkbXNnID0gJHRtcC0+X3N0YXR1czsKICAgICAgaWYoIGlzc2V0KCR0bXAtPl9tZXNzYWdlKSApCgl7CgkgICRtc2cgLj0gJzogJy4kdG1wLT5fbWVzc2FnZTsKCX0KICAgICAgc2V0X2Vycm9ybXNnKCRtc2cpOwogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgcHJpbnRfcigkdG1wKS4iXG4iOwogIHJldHVybiBUUlVFOwp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/client/config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRjb25maWdbJ2Jhc2VVUkwnXSA9ICdodHRwOi8vY2FsZ3V5MTAwMC5keW5kbnMub3JnL2Ntc19kZXYvaW5kZXgucGhwL2FwcC92MSc7CiRjb25maWdbJ2FwaWtleSddID0gJ2FlMDQyNTI2JzsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/client/config.php.digitalrelativity</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRjb25maWdbJ2Jhc2VVUkwnXSA9ICdodHRwOi8vZGlnaXRhbHJlbGF0aXZpdHkudHYvaW5kZXgucGhwL2FwcC92MSc7CiRjb25maWdbJ2FwaWtleSddID0gJzkzYWU2MDRjJzsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/client/cookie.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyBOZXRzY2FwZSBIVFRQIENvb2tpZSBGaWxlCiMgaHR0cDovL2N1cmwuaGF4eC5zZS9kb2NzL2h0dHAtY29va2llcy5odG1sCiMgVGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgYnkgbGliY3VybCEgRWRpdCBhdCB5b3VyIG93biByaXNrLgoKY2FsZ3V5MTAwMC5keW5kbnMub3JnCUZBTFNFCS8JRkFMU0UJMAlDTVNTRVNTSUQwOTk3Y2UzMwlrMnVyMnFvNXEybTRudWExdnAwc3RncTBqMgpjYWxndXkxMDAwLmR5bmRucy5vcmcJRkFMU0UJLwlGQUxTRQkxMzU1MzU1NTU3CWZldV9zZXNzaW9uaWQJazJ1cjJxbzVxMm00bnVhMXZwMHN0Z3EwajIKY2FsZ3V5MTAwMC5keW5kbnMub3JnCUZBTFNFCS8JRkFMU0UJMQlmZXVfdWlkCWRlbGV0ZWQKZGlnaXRhbHJlbGF0aXZpdHkudHYJRkFMU0UJLwlGQUxTRQkwCUNNU1NFU1NJRDFlYzk0OTA1CWZhMTFjODEwODhiMzc4ZDQyN2Y1ZjUxZjczMjVhYmI3CmRpZ2l0YWxyZWxhdGl2aXR5LnR2CUZBTFNFCS8JRkFMU0UJMTM1NTM1NDg0MQlmZXVfc2Vzc2lvbmlkCWZhMTFjODEwODhiMzc4ZDQyN2Y1ZjUxZjczMjVhYmI3CmRpZ2l0YWxyZWxhdGl2aXR5LnR2CUZBTFNFCS8JRkFMU0UJMTMyMzgxNzA0MAlmZXVfdWlkCWRlbGV0ZWQK]]></data>
	</file>
	<file>
	  <filename>/client/test_edit_location.cmd</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[bG9naW4gY2FsZ3V5MTAwMEBnbWFpbC5jb20gcGFzc3dvcmQKbG9jYXRpb25zCmVkaXQgbG9jYXRpb249MTM1IGRldGFpbHM9Zm9vYmFyCg==]]></data>
	</file>
	<file>
	  <filename>/client/test_edit_location2.cmd</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[bG9naW4gY2FsZ3V5MTAwMEBnbWFpbC5jb20gcGFzc3dvcmQKbG9jYXRpb25zCmVkaXQgbG9jYXRpb249MTM1IGRldGFpbHM9Zm9vYmFyMiBjb250YWN0X2VtYWlsPWNhbGd1eTEwMDBAZ21haWwuY29tIHVybD1odHRwOi8vd3d3LmZvb2Jhci5jb20K]]></data>
	</file>
	<file>
	  <filename>/client/test_mycheckins_deep.cmd</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[bG9naW4gY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyBwYXNzd29yZApteWNoZWNraW5zIGRlZXAKcXVpdAo=]]></data>
	</file>
	<file>
	  <filename>/defines.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpkZWZpbmUoJ0NHU09DSUFMX1RBQkxFX0FQSUtFWVMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnc29jaWFsX2FwaWtleXMnKTsKZGVmaW5lKCdDR1NPQ0lBTF9UQUJMRV9BQ1RJVklUSUVTJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3NvY2lhbF9hY3Rpdml0aWVzJyk7CmRlZmluZSgnQ0dTT0NJQUxfVEFCTEVfQ0hFQ0tJTlMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnc29jaWFsX2NoZWNraW5zJyk7CmRlZmluZSgnQ0dTT0NJQUxfVEFCTEVfTE9HJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3NvY2lhbF9sb2cnKTsKZGVmaW5lKCdDR1NPQ0lBTF9UQUJMRV9MRUFERVJCT0FSRCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dzb2NpYWxfbGVhZGVyYm9hcmQnKTsKZGVmaW5lKCdDR1NPQ0lBTF9UQUJMRV9MRUFERVJCT0FSRF9NRU1CRVJTJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3NvY2lhbF9sZWFkZXJib2FyZF9tZW1iZXJzJyk7CmRlZmluZSgnQ0dTT0NJQUxfVEFCTEVfQkFER0VTJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ3NvY2lhbF9iYWRnZXMnKTsKZGVmaW5lKCdDR1NPQ0lBTF9UQUJMRV9CQURHRVNfVVNFUlMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnc29jaWFsX2JhZGdlX3VzZXJzJyk7CmRlZmluZSgnQ0dTT0NJQUxfVEFCTEVfRlJJRU5EU0hJUFMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2Nnc29jaWFsX3RhYmxlX2ZyaWVuZHNoaXBzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/CGSocialApp API Reference.odt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[UEsDBBQAAAgAAAShkUFexjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAACAAABKGRQadxg2tUGAAAVBgAABgAAABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmeJUE5HDQoaCgAAAA1JSERSAAAAxgAAAQAIAgAAAGc/nhcAABgbSURBVHic7d15QBNH3wfw2SQk3CCHICg3Ah4cKh4gFryqfVRolXrUu/akWlqt9Wiftrb6qK2P2Gqtt8WnVutRPFEqFU8EUQEBsQKKXBKuBEICJNl990hCELR967RY8/v8AZPN7Ozs5utm1Z0dAUVRCAB8BJ3dAfCsgUgBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUwg0gBzCBSADOIFMAMIgUw+4dHSnokwi0u9t7ZSKtHL8FIdW9nVP9XE/0Tav+aLXbY/j9Np0dKVX582fSYr8/eb7YMnL8tVr1+8XdXxFSX/u8nJr+VPTPs9aMVAve5Z7J3PGfe0dpWkWfrItstbcn/T++oNXm9Vt26sdRX+Pjt04GwjkpByHb0xtRjMd4d1taFBuXsT/WJL09+9OdNbzrIbxm76bdvP8+2jJBlv/k/Jn6qnOypTd6jNtr4u+3/A3R2pBovL3v9J8+NOUcmeFk0nZvhPTtwW8Ev/3I35yMkO/t1qnLUh9sWzZ0SZlJ+aE74tN3FbnN+TNkyLHf5hClfptYQ4Qn3YuMC4mKzYuNcmU/Ifuzm1PhuqCHtvxvUdNt5G/6b9s7WMFLz+SFkPXDedPn2jTlceeGBE2tH2jHF8J/ORK4ak1TUHOPNr/j5jeHTdtx1nbc/Zb3LtxFDP8+Qcz1NsSa4QpLjCMtidruZsXGBzNZbd4fZdJ5m0zP+RbeccPdMWPaHweM3ZXzwepsd121U/lLO2+wWo6cRB3blc+3X7CUXa7uxBk21pfsfnqBbqK1pGrYh88wCb0H1mSXsAUE+syYR+w+ya30X6cj/az+6R+nsSCFEIUQQBGI+L4pCPIE8cbQgJpU+gpLkzed2xW/5akro2UNZ07YnmK1KWvW/yduurzD5dmvl7PM1a8Js+NIjcfR6Io8Rg81TrsiqTh3Ilb/zQK0Wq72XJrx2KurfK0+sODkWIRPPJclpi6gvB4euKUCeSy6z5Rfirv57JP0mkqS8PCDF5pXEgfSJsOH61vj8JoRu79qU8Z8dAc+NDJGnZpSbGilcd5efm8TXna6OfYOaqsvvS9X6u0I+OLFyT6Vu0/1JSUpUF/oIWwS9s2+AmbLNbus2Slyfxm3xcOmx4oR1AWz7xImxum58HEM3sDErKVKQpFl4YBdCgXGX3tn3rx/zFQu8iavruQMSkDrObpxmra8ix3XSqa6zI2UWsmrzxGkxfpYvKc36vr31s/C1b8ZkIeMeI0e4qtI/nTptfVaD7aivna2D5k5oeGX0UpeZe4PsB7z7qt2UYbbr2LMU2wqpVCiY3xRJtdzJZ0p3ftq4vQg1Uau+vzPCFykKV4fYrUZWwa/G9NmxSVN+/0CwOSLFEoXALDBiWLfms2cybSwK7nW1RKgGIfUvxw6t2rruKNu+lQkqjrYVfbh/Ybok49qNTDfzFg/+lXkhVxByv19aViGpqpE0NAnLvl91mv5EdZvuZhqeUK69KpIe0e00qdDb6J0QVzrKdcwWj5xwT5Gk+J1OMrWq8+6BThXRC89dvDIgveFOWHFulsRo6AB0KpVro1EkoBolErmaQlbaA4J8Zk/yFR7Mb1Er20T979XZkUIC58h15yLX6V5Pe32HrhyYWf9fbbnn9wXR32vKTuvSarVrRLLXUpGZqs+0NSlqcZst0J8l/QWku4g5lJugfyntOOuKclZr5aCBY6JjtNtBW97Y/FB3V7+8iuva1mpqq3bhfOpt9rfvh9nUh4/aUb3LPl7bjUbXUt9py9ve2sIVRhVO//rhjaKAy9RyvSbfpOaxv+1H6x2QXY/qwN+l0yP119O/hO/4ch7gZACRAn8viBTADCIFMINIAcwgUgAziBTADCIFMINIAcwgUgAziBTADCIFMINIAcwgUgAziBTADCIFMINIAcwgUgAziBTADCIFMINIAcwgUgCzJ46U8v7JA5WhU4OtCIQo6bVD+R4TB3UhHr8OqZA2i6xMeB3Xb3mQlX3tjsnwSd7S3Crr3s7G+ivWlaWfqhkwNdCs42Yb63IvlXiNHNRVgChJ+v5bXi85XzlYGTrFr+TwkSITaxOFusfY8b5m3PZUDy6fKfYa7m9U+eg22f5w3eAanNy/JY9+2Y3idqGDPjTUlcps2nS7Hd2OI67NITZMj1Ti9HOFRqbVv1XZeDkQZu5OVfkVAkuv4EB7QUc94XaNO/Ia3B6xu69dwrZpybN0MU493jx+pmvGtkPl3kFe9l4DvCr2729ilsRf9Zw+zk30hz++3/GkkWouvSWtSjtf2X+8fc2FA+fvlShK9t9KP1w0+INJwts1PKW0vkFSryL5Qr5QqJRZ+DrXFIp5JmqJ8dhFQwoP0/XlRTtuSkw8u8nzi9Q9BgzykJ0/n9ti0YVs/nlXgQUim5LrG4V2ThaNpRW2kbE+KZuTG8nmos3FtsKqSvOhM6LtLm/Ym95sZNvDt1tj5sV8qyBHlaef+Mz/bpPqZrKJJythuyf2cy67X20qJmWWjjwCqatTf75Sreapikt7+D04ufnXNm1OtLq4MyGP7OZuzUOE0NbHk8optZVdvVzr07O+QUkqiq+lX0jKi9/QsOb2wuo9OzbvUrz285K+d39YthVNj+n34FSu0NHcKNeIIklFZZ3c2Dtqnve1b08UK+mDIDCzsxFRahWpkpU35O+R21PNZGNN8o5cicXQGS/yT6aIJsbaHfpFPexF73pxc216WirVp66kVE2S7Xui2bWKHiaHTovNTZFUjqytReJKV7/a1IPp1SpSUdHYPTrgN7rNxcEWSJF3WZJw8mr/moLSGkkTMcp3EF9ASRKZJXelHmTVlW2LN8vD+tgwHwfdmcm+j/sj8RdGipLmZpC9Qrr97/jtkTNNxQ9kKqWsRkJVFpSqu1gSFZeLFIgQWNuZKAXkvZsVjoPCHBTHysz5EqnAQa2Ss/XrH4iNfaM87PMSvzrAG/S8r0Jh2Y2olRrZWZBySWVtA7LrKhKLy7Lvus404onMjZrFzV0cFSXFdSLfoU5CJG+Um9jwkVuQh/3t5IwT/EBnazORsK7idlGT0MyIup7uxHTvWM4ohXGv2XPRju0yJYWMmulsKEmlWmBsJjJ5uE1C3dXm7uoTorcGUzVNFg6DRNKSq5cKlAoH666N9c2kWvagvEpp5ai8I1U21VQp7X1697auSE68npVuM/3jEZZCVWXZfaWjiy2qr2s0tlVXykgPudzYSkgfhPuFdRZuhLhUZmxBqlD57SKl0IwnrUXmvcKchEakr931nDsqqfjWzbz6jOu24Z6hQXfPZlT18hTUVj/UE1lJNbdrJ34LVfCEJop6Bc/Soomk90igvE/vnUpaK3eMcHLi2d3MyctEaitC4Od/L0PgSch5g4NQbomiZzO3xNtIJr2bnHj1WppFsA+vkf446M48QSieLFKEVb9o5qkCAcHMq4nvTicJPo9Sz34dUYjPXziP4gl0Xw2RlFpNL/TzZqJI/7Hj8Xpo69PLeT6rfp1IkBRfsMSLqU2q1ISAz52B1TUZiT0cVVUSVdDoha/RK7LPT2DXIizHL39NU/b59HQkj8e+67tw3gi9TbPdG8yU3l/ILnB+fvYEpjNs+74Pt4n6vrgqaSLB7AJSq+guLV08ku0w1x2XxTEj6LpL2SVLlk1g25n8742TP6HUFJ//viuznNtZ7TdI9w+naErccqSmd5wgVZrjo93u4LmTSaVq8Ffh9M/QQAFBKpVhIRGEZpW2PQnX7Fr/yqStqsBZvTN35AbOHt6VfbSGn97e2bNtEkYCoq87t8oYullkZERveOoLwdpDRPl/N/lTitJ9HE8QCqyX5wTbFUJ3KAVE23d1jxIheLw29emffKYyT7cCT9D63BG+7YBxI3VvtG9N14Je+4LfuR5o3xm9hQRfXXIhrUxgbG7q7B3gLNDVoVovfXS7wNdrhN0q76H2O9ouu+O6TupV5hkxnwif/Um/MGIrc6twtVt7q1nBYfSbDvRv7mcHB0fbpv5ro/b9YpslHtPzPwz+xtchdcPdtFQiqJe69FZKvUxN8kU81EIY2dhaNEiLuUufJ7jaeLZBpDpCqniuoUH3r2TeEwqN7BxNlQL0oFDm6GIhrZOI6wiBuYWK7Ow+PrUgUh3hWfqFBXuhkAjdlwxJX7LkBs5hL1YotVJNtP/uAByI1CM8dMGhvWRhEHwjOGyPBscGYAaRAphBpABmECmAGUQKYAaRAphBpABmECmth6aC+cMzw1BKWSMyMzd6xH8q/qVz2jyVnuFIKfI2TR0be6TCY/aGaeWffZok8Z1/NvXdnFmPmJem/fOrlQXr/Ikoq6/uXFvo1eE/ljdnf9QrYGURW/ZYnpX3hb+oXR3Deyz2sxspWeqKFbnRydWrgzKneb4162LtqtAufNnZjdy8NLOGief3FHGT0mwO/nXG4OkHyhE3KQ03HU3IGF5jaWUj3dDOg0XzlzgmchPR2EVMsjp7sJAuRO25fuDlabN6rvzkN7pSz+kRt2K8A3YU8Ls688RlShSeULH23LCB6+8gptnqH1QL2TlwXppCHI6/jZDpkHl9bxUsfRbPXs9upDjM9DQUpbizdqjNWv15aQIXyUl3zaQ0n4n2/GK3/tqGIyM2tU5Hc/mUtom8XfsL3n8XIXP/Lw/P/GHsokzk/2XSzB+m7MuRTx8xeU6vT5bmoV5zxtXvHkksz5B97nVmeI/PJmUlRdqWyZ4LEN3JaqaupKVs37W7eM7OxRdf/SJXO/3Lsntnxz9zeULPcqTMh3y03HdMuO16t5lxsSPOr0xuDg7prpuXJmLJxw4Hlmompek7bbh4Vv9o+nQSq5uOhhMQt8VpyRvf781/MxjJsj8YvcgufKJnyiGmEBnfxxQJPSbN7bt0EZo7qe9g32j+5AHmKxFzWoq1MULyrO07spodPM0kPQY9Ny9oZvwrc9e4RE7vmVzq5mxnTFUuc40gi+Es9U9i0mfBsdIFmhfzP9cU+rfOS/Of5T9qSjMPVczUrtZmOpqmynuKGKqLoHUiGkRfbtesa/3C8lqYTXG3inptv9W8Xb8DkWdJqvWV3hw4zHuSZ/YC6xmOFAaEsYM7d6Nd61W2wV1u/39BpDqimdWTvvZiT0u6Mn1masr6ZHDIFs+dN36a3K2T5lB8ykGkOkKfkyQJEW5xD5dpZGON2qrul73ZjZO7WXZiF59eEKn/J9OQ1VsnHn2hlHiy8ZPPMIhUR7TTWadYRyRku0f5M9MmMuXi2Di3qBRK0OvdpOAOp+8GEKmO0V92VOtf1ihqp64cqf+XONARiBTADCIFMINIAcwgUgAziBTADCIFMINIAcwgUn+Y4d3y++dApNpSFqzr770Itb05mAtTdmxnduyfAyLVRkvRwZ03EXNzcJbb6VEbYzNj4wLZMElSolyq+6CcKGvCdOiKNR57FsYXu73ynt0Pay6jPn2s7L54Fm+m+3MgUvpaCvbvymMKebsOVzqjpury+1I185qwHnbgxvub+n4ad/qdfS98s+umGXOT8ct7G8yDNmanxbjDo4FaQaT0NOfv/f43wbC4TWZL3tiXE9U7a17IFYTCkdBtaPcL0R61fSztmHt8CdOwMWLmJuMp7zmcSu8uOBnRBa6xWkGk9Ij8vyikPtfdHIy+XaN9J/ImuUJXZu/qXPtj63qRcJ+nHojUw1pvDgZ/CkQKYAaRApgZfKQoWc6hoyVWtk7BowKseUhVkZxQGzKpt4nmbW66G6NqbiYWq14DPcza3CGsX5+SpO9LrUXWA6dwc8IYKIOPFMFrKbtXXlNL+AbIz2RUK5uri6WVO/KEqsJD8YrXDs6u231zSKxfEjMTS1DT1eO7brk6FWWVK7VPQrcSKcRypj4prbMM6NkgbyH5Sop7KL2BMvhIUcrGZpGDm7qktJZipl5pUAtNRWrpAzE7OYyDeaaQUvPtmdldso7uW3fJapipOTchDPckdHOFnKtfRfUMs285dqNGTTWTrZNIGCCDjxRhFbZ4oaY82IeZeoVip69BmklgRr83npnuhp2JZdDeKEI7k4zmSehzh3cl9Or7vt5pO/LUMPhI6eOmTyG4uWjaTA6DOpiJRfck9Db1AUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaR+gOkRyJcP6pGdl8U7qqZ1f/VRKc+Fm3HgsLYdj0QKRb3vFcLf3+Und2gfcS5PsLuC2ZqhuPPp/rEl1+c4WDAt9j9HoiUlomtvyg7G/nbqhBSlx+aw05MNeub+ZLl849UI9Sn2qXvR/U5OQglOQastbIcN0G8ek8B32vmMr+Tnx+jK4TH1sO5igGR0hL5vDJPZYwmCr5LRPIb2xO4Iepb44nuXyUt2fPibjV9orqfEOfPPCIhru/HSQnsvFbe58e7ZzMVXjqOLGEuEAZESkfos+RSGjoSQUfKJGjuhIZXRi91mfHNAulH745ehJhnaejVJSyej1J+ycxrNST2hdJFTIVwBGcpFkSK1X7WodaJqd5YoFeRG6vO/VwVr1m4vu27Bg4iBTCDSAHMDDhS7DjjMltryj50dB+rDv5V4OGRx+w6v51NF/o75P6a1dBtxKQwB37jvavXb0tt3c2qykm3vl0Ls0RBHpU5t6VOz43yNMyndRhwpAieqlbp8kJQ/pqDh9IoiamvF+9u2uUSq8FhLtWFlUqSL6QUDYRmJLG5r3NVifWUScEiWanEdPiokLoMvg1z8Mzc+rnf2n3hvMjLn0x90NW0VCIaTi/5sVKJEETKwFAt9dWl1VczarxczMvvuY2zlZ1JkypNggIdmo6WseOJy6r4bvbcSOKhXeVHZd72gqYbleLa+hrilmWvkNLrxY6BFte37ilxD3cR3y8mHfrXF4hri89dSijxjOYZ6jB2A44UYT1s2XKKQszMehQ7VrhXz7EkffLi8/16auqQeiOJuYX9XlvE/HK0pRRl5iZ8nk3o20tD6QUUSSIej4hg3h3t91wn7dPTwIAjxdLM1MiNM0Z8wUNDhnmPHklMmDj31LvK0o1KNniGHimAHUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmEKknA4NC24FI6SjyNk0dG3ukwiMm5frGELN270N6/hiIlJYsdcWK3Ojk6tUBF0eZEykoZMkMdvCn51j/wsQbCNmPetNDkhJlHapZDoNCHwEi1RbB3kBlEbTx0uLjQz9gBn/2LloZceHGFVnVmcuOVsMOZC3e4f8eDAp9DIiUlvmQj5b7jgm3Xe86JoBn1d154BvR/MnM4M8Bk/somAqU0M/pQrS7aul0PgwKfQyIlI5JnwXHSvWHgW6/1bxdU9ynXbaf/QmDQh8DIgUwg0gBzCBSADMDjtSfGG1McWOL7X2sK8v4nv2CupugdqONjUMHNl1KNx463EX4N+7MU8SAI9V+tLGRTOTRo+n60a27pcNe6mnW0WjjkH7ut+Ivn76hdu9v10J1N+G1G21cpw6zlpXWqRBEyuC0H22cUm4WxKurUnXt6WFPGAnbjza2bbi0ZU+J+wgPfomsKPOamfmQge1GG0vqZepKcW2DCpka5sE1zL1mdTTaWEXxBy5ZFsXOasxoN9rYnhtbjAaoyeYHBQ0djzZG3IhkA2XAkWI9PNqYeak3tviRo415fB6MNu6YoUcKYAeRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABmECmAGUQKYAaRAphBpABm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Y3JlYXRvcj5Sb2JlcnQgQ2FtcGJlbGw8L21ldGE6aW5pdGlhbC1jcmVhdG9yPjxtZXRhOmNyZWF0aW9uLWRhdGU+MjAxMS0xMi0yNlQxMzo0NTo1NjwvbWV0YTpjcmVhdGlvbi1kYXRlPjxkYzpkYXRlPjIwMTItMTItMTdUMTM6MDg6MDk8L2RjOmRhdGU+PG1ldGE6ZWRpdGluZy1kdXJhdGlvbj5QMkRUMTdINTBNMlM8L21ldGE6ZWRpdGluZy1kdXJhdGlvbj48bWV0YTplZGl0aW5nLWN5Y2xlcz43MjwvbWV0YTplZGl0aW5nLWN5Y2xlcz48bWV0YTpnZW5lcmF0b3I+TGlicmVPZmZpY2UvMy42JExpbnV4X3g4NiBMaWJyZU9mZmljZV9wcm9qZWN0LzM2MG0xJEJ1aWxkLTI8L21ldGE6Z2VuZXJhdG9yPjxtZXRhOmRvY3VtZW50LXN0YXRpc3RpYyBtZXRhOnRhYmxlLWNvdW50PSIwIiBtZXRhOmltYWdlLWNvdW50PSIwIiBtZXRhOm9iamVjdC1jb3VudD0iMCIgbWV0YTpwYWdlLWNvdW50PSIyOSIgbWV0YTpwYXJhZ3JhcGgtY291bnQ9Ijc3MiIgbWV0YTp3b3JkLWNvdW50PSI2NjE4IiBtZXRhOmNoYXJhY3Rlci1jb3VudD0iNDA3NzUiIG1ldGE6bm9uLXdoaXRlc3BhY2UtY2hhcmFjdGVyLWNvdW50PSIzNTE1NSIvPjwvb2ZmaWNlOm1ldGE+PC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwMEFAAICAgABKGRQQAAAAAAAAAAAAAAAAwAAABtYW5pZmVzdC5yZGbNk8FugzAQRO98hWXOYKCXggI5FOVctV/gGpNYBS/yLiX8fV0nqqIcqirNocddj2beaOXN9jgO7EM7NGBrnqcZZ9oq6Izd13ymPnnk2ybauK6vXtod82qLlZ9qfiCaKiGWZUmXhxTcXuRlWYqsEEWReEWCqyV5TCzGvIkYCx6tRuXMRD6Nfc3yDWaqeRCcJbROOrw5jTA7pb+jOlCYgkSDCUzahkyLAvreKC3ytBCjJimm933cgppHbYmLEC2usn/LYzGrDhKfpaNzdb+5hYdfNVJgyeOl3vS/IiKtg8Y/EF52vOd9oevjp5P3zgz6RrqLeveGew3W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]]></data>
	</file>
	<file>
	  <filename>/doc/CGSocialApp API Reference.pdf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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NCAwIFIvVHI2OSA2OSAwIFIvVHI3NCA3NCAwIFIvVHI3OSA3OSAwIFIKL1RyODQgODQgMCBSL1RyODkgODkgMCBSL1RyOSA5IDAgUi9Ucjk0IDk0IDAgUi9Ucjk5IDk5IDAgUj4+Ci9FeHRHU3RhdGU8PC9FR1MxMCAxMCAwIFIvRUdTMTAwIDEwMCAwIFIvRUdTMTA1IDEwNSAwIFIvRUdTMTEwIDExMCAwIFIvRUdTMTE1IDExNSAwIFIvRUdTMTIwIDEyMCAwIFIvRUdTMTI1IDEyNSAwIFIvRUdTMTMwIDEzMCAwIFIKL0VHUzEzNSAxMzUgMCBSL0VHUzE0MCAxNDAgMCBSL0VHUzE0NSAxNDUgMCBSL0VHUzE1IDE1IDAgUi9FR1MyMCAyMCAwIFIvRUdTMjUgMjUgMCBSL0VHUzMwIDMwIDAgUi9FR1MzNSAzNSAwIFIKL0VHUzQwIDQwIDAgUi9FR1M0NSA0NSAwIFIvRUdTNSA1IDAgUi9FR1M1MCA1MCAwIFIvRUdTNTUgNTUgMCBSL0VHUzYwIDYwIDAgUi9FR1M2NSA2NSAwIFIvRUdTNzAgNzAgMCBSCi9FR1M3NSA3NSAwIFIvRUdTODAgODAgMCBSL0VHUzg1IDg1IDAgUi9FR1M5MCA5MCAwIFIvRUdTOTUgOTUgMCBSPj4KL1Byb2NTZXRbL1BERi9UZXh0L0ltYWdlQy9JbWFnZUkvSW1hZ2VCXQo+PgplbmRvYmoKCjEgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAyIDAgUj4+CmVuZG9iagoKNiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0Fubm90c1sKMTY1IDAgUiAxNjYgMCBSIDE2NyAwIFIgMTY4IDAgUiAxNjkgMCBSIDE3MCAwIFIgMTcxIDAgUiAxNzIgMCBSIDE3MyAwIFIgMTc0IDAgUiAxNzUgMCBSIDE3NiAwIFIgMTc3IDAgUiAxNzggMCBSIDE3OSAwIFIKMTgwIDAgUiAxODEgMCBSIDE4MiAwIFIgMTgzIDAgUiAxODQgMCBSIDE4NSAwIFIgMTg2IDAgUiAxODcgMCBSIDE4OCAwIFIgMTg5IDAgUiAxOTAgMCBSIDE5MSAwIFIgMTkyIDAgUiAxOTMgMCBSIDE5NCAwIFIKMTk1IDAgUiAxOTYgMCBSIDE5NyAwIFIgMTk4IDAgUiAxOTkgMCBSIDIwMCAwIFIgMjAxIDAgUiAyMDIgMCBSIDIwMyAwIFIgMjA0IDAgUiAyMDUgMCBSIDIwNiAwIFIgMjA3IDAgUiAyMDggMCBSIDIwOSAwIFIKXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNyAwIFI+PgplbmRvYmoKCjExIDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMjE0IDAgUi9SZXNvdXJjZXMgMjYxIDAgUi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vQW5ub3RzWwoxNDYgMCBSIDE0NyAwIFIgMTQ4IDAgUiAxNDkgMCBSIDE1MCAwIFIgMTUxIDAgUiAxNTIgMCBSIDE1MyAwIFIgMTU0IDAgUiAxNTUgMCBSIDE1NiAwIFIgMTU3IDAgUiAxNTggMCBSIDE1OSAwIFIgMTYwIDAgUgoxNjEgMCBSIDE2MiAwIFIgMTYzIDAgUiAxNjQgMCBSIF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDEyIDAgUj4+CmVuZG9iagoKMTYgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAxNyAwIFI+PgplbmRvYmoKCjIxIDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMjE0IDAgUi9SZXNvdXJjZXMgMjYxIDAgUi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMjIgMCBSPj4KZW5kb2JqCgoyNiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDI3IDAgUj4+CmVuZG9iagoKMzEgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAzMiAwIFI+PgplbmRvYmoKCjM2IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMjE0IDAgUi9SZXNvdXJjZXMgMjYxIDAgUi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vQW5ub3RzWwoyMTMgMCBSIF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDM3IDAgUj4+CmVuZG9iagoKNDEgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA0MiAwIFI+PgplbmRvYmoKCjQ2IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMjE0IDAgUi9SZXNvdXJjZXMgMjYxIDAgUi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNDcgMCBSPj4KZW5kb2JqCgo1MSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDUyIDAgUj4+CmVuZG9iagoKNTYgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA1NyAwIFI+PgplbmRvYmoKCjYxIDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMjE0IDAgUi9SZXNvdXJjZXMgMjYxIDAgUi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNjIgMCBSPj4KZW5kb2JqCgo2NiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDY3IDAgUj4+CmVuZG9iagoKNzEgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA3MiAwIFI+PgplbmRvYmoKCjc2IDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMjE0IDAgUi9SZXNvdXJjZXMgMjYxIDAgUi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNzcgMCBSPj4KZW5kb2JqCgo4MSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDgyIDAgUj4+CmVuZG9iagoKODYgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA4NyAwIFI+PgplbmRvYmoKCjkxIDAgb2JqCjw8L1R5cGUvUGFnZS9QYXJlbnQgMjE0IDAgUi9SZXNvdXJjZXMgMjYxIDAgUi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vQW5ub3RzWwoyMTIgMCBSIF0KL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDkyIDAgUj4+CmVuZG9iagoKOTYgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyA5NyAwIFI+PgplbmRvYmoKCjEwMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDEwMiAwIFI+PgplbmRvYmoKCjEwNiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDEwNyAwIFI+PgplbmRvYmoKCjExMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDExMiAwIFI+PgplbmRvYmoKCjExNiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDExNyAwIFI+PgplbmRvYmoKCjEyMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDEyMiAwIFI+PgplbmRvYmoKCjEyNiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDEyNyAwIFI+PgplbmRvYmoKCjEzMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDEzMiAwIFI+PgplbmRvYmoKCjEzNiAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDIxNCAwIFIvUmVzb3VyY2VzIDI2MSAwIFIvTWVkaWFCb3hbMCAwIDYxMiA3OTJdL0Fubm90c1sKMjExIDAgUiBdCi9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAxMzcgMCBSPj4KZW5kb2JqCgoxNDEgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCAyMTQgMCBSL1Jlc291cmNlcyAyNjEgMCBSL01lZGlhQm94WzAgMCA2MTIgNzkyXS9Bbm5vdHNbCjIxMCAwIFIgXQovR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMTQyIDAgUj4+CmVuZG9iagoKMjYyIDAgb2JqCjw8L0NvdW50IDY0L0ZpcnN0IDI2MyAwIFIvTGFzdCAzMjYgMCBSCj4+CmVuZG9iagoKMjYzIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNDkwMDZFMDA3NDAwNzIwMDZGMDA2NDAwNzUwMDYzMDA3NDAwNjkwMDZGMDA2RTAwM0E+Ci9EZXN0WzE2IDAgUi9YWVogNTYuNyA3MjMuMyAwXS9QYXJlbnQgMjYyIDAgUi9OZXh0IDI2NCAwIFI+PgplbmRvYmoKCjI2NCAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDQ2MDA2NTAwNjEwMDc0MDA3NTAwNzIwMDY1MDA3MzAwM0E+Ci9EZXN0WzE2IDAgUi9YWVogNTYuNyA1MTAuNyAwXS9QYXJlbnQgMjYyIDAgUi9QcmV2IDI2MyAwIFIvTmV4dCAyNjUgMCBSPj4KZW5kb2JqCgoyNjUgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNjUwMDcyMDA3NjAwNjUwMDcyMDAyMDAwNTIwMDY1MDA3MTAwNzUwMDY5MDA3MjAwNjUwMDZEMDA2NTAwNkUwMDc0MDA3MzAwM0E+Ci9EZXN0WzE2IDAgUi9YWVogNTYuNyAyMDAgMF0vUGFyZW50IDI2MiAwIFIvUHJldiAyNjQgMCBSL05leHQgMjY2IDAgUj4+CmVuZG9iagoKMjY2IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEIwMDZFMDA2RjAwNzcwMDZFMDAyMDAwNEMwMDY5MDA2RDAwNjkwMDc0MDA2MTAwNzQwMDY5MDA2RjAwNkUwMDczMDAzQT4KL0Rlc3RbMjEgMCBSL1hZWiA1Ni43IDUxNC43IDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMjY1IDAgUi9OZXh0IDI2NyAwIFI+PgplbmRvYmoKCjI2NyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDU0MDA2RjAwMjAwMDQyMDA2NTAwMjAwMDQzMDA2RjAwNkQwMDcwMDA2QzAwNjUwMDc0MDA2NTAwNjQwMDNBPgovRGVzdFsyNiAwIFIvWFlaIDU2LjcgNjYzLjggMF0vUGFyZW50IDI2MiAwIFIvUHJldiAyNjYgMCBSL05leHQgMjY4IDAgUj4+CmVuZG9iagoKMjY4IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNTMwMDY1MDA3NDAwNzUwMDcwMDAyMDAwNDcwMDc1MDA2OTAwNjQwMDY1MDAzQT4KL0Rlc3RbMjYgMCBSL1hZWiA1Ni43IDI5NS41IDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMjY3IDAgUi9OZXh0IDI2OSAwIFI+PgplbmRvYmoKCjI2OSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDQyMDA2MTAwNzMwMDY1MDAyMDAwNTUwMDUyMDA0QzAwM0E+Ci9EZXN0WzMxIDAgUi9YWVogNTYuNyA0MTIuNSAwXS9QYXJlbnQgMjYyIDAgUi9QcmV2IDI2OCAwIFIvTmV4dCAyNzAgMCBSPj4KZW5kb2JqCgoyNzAgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNjUwMDYzMDA3NTAwNzIwMDY5MDA3NDAwNzkwMDNBPgovRGVzdFszMSAwIFIvWFlaIDU2LjcgMzMyLjcgMF0vUGFyZW50IDI2MiAwIFIvUHJldiAyNjkgMCBSL05leHQgMjcxIDAgUj4+CmVuZG9iagoKMjcxIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNDEwMDc1MDA3NDAwNjgwMDY1MDA2RTAwNzQwMDY5MDA2MzAwNjEwMDc0MDA2OTAwNkYwMDZFMDAzQT4KL0Rlc3RbMzYgMCBSL1hZWiA1Ni43IDczNS4zIDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMjcwIDAgUi9OZXh0IDI3MiAwIFI+PgplbmRvYmoKCjI3MiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDUwMDA2MTAwNzIwMDYxMDA2RDAwNjUwMDc0MDA2NTAwNzIwMDczMDAzQT4KL0Rlc3RbMzYgMCBSL1hZWiA1Ni43IDY1NS41IDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMjcxIDAgUi9OZXh0IDI3MyAwIFI+PgplbmRvYmoKCjI3MyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDUyMDA2NTAwNzQwMDc1MDA3MjAwNkUwMDIwMDA0NDAwNjEwMDc0MDA2MTAwM0E+Ci9EZXN0WzM2IDAgUi9YWVogNTYuNyA1NzUuNyAwXS9QYXJlbnQgMjYyIDAgUi9QcmV2IDI3MiAwIFIvTmV4dCAyNzQgMCBSPj4KZW5kb2JqCgoyNzQgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNjEwMDZEMDA3MDAwNkMwMDY1MDAyMDAwNTIwMDY1MDA3MTAwNzUwMDY1MDA3MzAwNzQwMDNBPgovRGVzdFszNiAwIFIvWFlaIDU2LjcgNDY4LjMgMF0vUGFyZW50IDI2MiAwIFIvUHJldiAyNzMgMCBSL05leHQgMjc1IDAgUj4+CmVuZG9iagoKMjc1IDAgb2JqCjw8L0NvdW50IDgvRmlyc3QgMjc2IDAgUi9MYXN0IDI4MyAwIFIKL1RpdGxlPEZFRkYwMDU1MDA3MzAwNjUwMDcyMDA3MzAwMjAwMDQxMDA1MDAwNDkwMDNBPgovRGVzdFs0MSAwIFIvWFlaIDU2LjcgNTAxLjkgMF0vUGFyZW50IDI2MiAwIFIvUHJldiAyNzQgMCBSL05leHQgMjg0IDAgUj4+CmVuZG9iagoKMjc2IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDUyMDA0NTAwNDcwMDQ5MDA1MzAwNTQwMDQ1MDA1Mj4KL0Rlc3RbNDEgMCBSL1hZWiA3MS4xIDQ3OS44IDBdL1BhcmVudCAyNzUgMCBSL05leHQgMjc3IDAgUj4+CmVuZG9iagoKMjc3IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDRDMDA0RjAwNDcwMDQ5MDA0RT4KL0Rlc3RbNDEgMCBSL1hZWiA3MS4xIDE2OS44IDBdL1BhcmVudCAyNzUgMCBSL1ByZXYgMjc2IDAgUi9OZXh0IDI3OCAwIFI+PgplbmRvYmoKCjI3OCAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA1MDAwNDkwMDRFMDA0Nz4KL0Rlc3RbNDYgMCBSL1hZWiA3MS4xIDUxNi42IDBdL1BhcmVudCAyNzUgMCBSL1ByZXYgMjc3IDAgUi9OZXh0IDI3OSAwIFI+PgplbmRvYmoKCjI3OSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0QzAwNEYwMDQ3MDA0RjAwNTUwMDU0PgovRGVzdFs0NiAwIFIvWFlaIDcxLjEgMjcxLjUgMF0vUGFyZW50IDI3NSAwIFIvUHJldiAyNzggMCBSL05leHQgMjgwIDAgUj4+CmVuZG9iagoKMjgwIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQ3MDA0NTAwNTQwMDQ5MDA0RTAwNDYwMDRGPgovRGVzdFs1MSAwIFIvWFlaIDcxLjEgNjc4LjcgMF0vUGFyZW50IDI3NSAwIFIvUHJldiAyNzkgMCBSL05leHQgMjgxIDAgUj4+CmVuZG9iagoKMjgxIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDUzMDA0NTAwNTQwMDUwMDA1MjAwNEYwMDUwMDA1Mz4KL0Rlc3RbNTEgMCBSL1hZWiA3MS4xIDQwMS43IDBdL1BhcmVudCAyNzUgMCBSL1ByZXYgMjgwIDAgUi9OZXh0IDI4MiAwIFI+PgplbmRvYmoKCjI4MiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0QzAwNDkwMDUzMDA1ND4KL0Rlc3RbNTYgMCBSL1hZWiA3MS4xIDY3OC43IDBdL1BhcmVudCAyNzUgMCBSL1ByZXYgMjgxIDAgUi9OZXh0IDI4MyAwIFI+PgplbmRvYmoKCjI4MyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0MjAwNDEwMDQ0MDA0NzAwNDUwMDUzPgovRGVzdFs1NiAwIFIvWFlaIDcxLjIgMzMxLjkgMF0vUGFyZW50IDI3NSAwIFIvUHJldiAyODIgMCBSPj4KZW5kb2JqCgoyODQgMCBvYmoKPDwvQ291bnQgNy9GaXJzdCAyODUgMCBSL0xhc3QgMjkxIDAgUgovVGl0bGU8RkVGRjAwNDYwMDcyMDA2OTAwNjUwMDZFMDA2NDAwNzMwMDIwMDA0MTAwNTAwMDQ5MDAzQT4KL0Rlc3RbNjEgMCBSL1hZWiA1Ni43IDczNS4zIDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMjc1IDAgUi9OZXh0IDI5MiAwIFI+PgplbmRvYmoKCjI4NSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA1MjAwNDUwMDUxMDA1NTAwNDUwMDUzMDA1NDAwNEMwMDQ5MDA1MzAwNTQ+Ci9EZXN0WzYxIDAgUi9YWVogNzEuMSA3MTMuMiAwXS9QYXJlbnQgMjg0IDAgUi9OZXh0IDI4NiAwIFI+PgplbmRvYmoKCjI4NiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA1MjAwNDUwMDUxMDA1NTAwNDUwMDUzMDA1ND4KL0Rlc3RbNjEgMCBSL1hZWiA3MS4xIDQ2Mi42IDBdL1BhcmVudCAyODQgMCBSL1ByZXYgMjg1IDAgUi9OZXh0IDI4NyAwIFI+PgplbmRvYmoKCjI4NyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0MTAwNTAwMDUwMDA1MjAwNEYwMDU2MDA0NT4KL0Rlc3RbNjEgMCBSL1hZWiA3MS4xIDIzMS4zIDBdL1BhcmVudCAyODQgMCBSL1ByZXYgMjg2IDAgUi9OZXh0IDI4OCAwIFI+PgplbmRvYmoKCjI4OCAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0NDAwNDUwMDRFMDA1OT4KL0Rlc3RbNjYgMCBSL1hZWiA3MS4xIDY0MC4yIDBdL1BhcmVudCAyODQgMCBSL1ByZXYgMjg3IDAgUi9OZXh0IDI4OSAwIFI+PgplbmRvYmoKCjI4OSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA1MzAwNTUwMDQ3MDA0NzAwNDUwMDUzMDA1ND4KL0Rlc3RbNjYgMCBSL1hZWiA3MS4xIDQwOC45IDBdL1BhcmVudCAyODQgMCBSL1ByZXYgMjg4IDAgUi9OZXh0IDI5MCAwIFI+PgplbmRvYmoKCjI5MCAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0NDAwNDUwMDRDPgovRGVzdFs2NiAwIFIvWFlaIDcxLjEgMTk2LjggMF0vUGFyZW50IDI4NCAwIFIvUHJldiAyODkgMCBSL05leHQgMjkxIDAgUj4+CmVuZG9iagoKMjkxIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDRDMDA0OTAwNTMwMDU0PgovRGVzdFs3MSAwIFIvWFlaIDcxLjEgNTg1LjkgMF0vUGFyZW50IDI4NCAwIFIvUHJldiAyOTAgMCBSPj4KZW5kb2JqCgoyOTIgMCBvYmoKPDwvQ291bnQgOS9GaXJzdCAyOTMgMCBSL0xhc3QgMzAxIDAgUgovVGl0bGU8RkVGRjAwNEMwMDZGMDA2MzAwNjEwMDc0MDA2OTAwNkYwMDZFMDA3MzAwMjAwMDQxMDA1MDAwNDkwMDNBPgovRGVzdFs3MSAwIFIvWFlaIDU2LjcgMjk0LjYgMF0vUGFyZW50IDI2MiAwIFIvUHJldiAyODQgMCBSL05leHQgMzAyIDAgUj4+CmVuZG9iagoKMjkzIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQ4MDA0OTAwNDUwMDUyMDA0MTAwNTIwMDQzMDA0ODAwNTk+Ci9EZXN0WzcxIDAgUi9YWVogNzEuMSAyNzIuNSAwXS9QYXJlbnQgMjkyIDAgUi9OZXh0IDI5NCAwIFI+PgplbmRvYmoKCjI5NCAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0MzAwNDEwMDU0MDA0NTAwNDcwMDRGMDA1MjAwNDkwMDQ1MDA1Mz4KL0Rlc3RbNzYgMCBSL1hZWiA3MS4xIDczNS4zIDBdL1BhcmVudCAyOTIgMCBSL1ByZXYgMjkzIDAgUi9OZXh0IDI5NSAwIFI+PgplbmRvYmoKCjI5NSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0QzAwNDkwMDUzMDA1ND4KL0Rlc3RbNzYgMCBSL1hZWiA3MS4xIDUzOC4yIDBdL1BhcmVudCAyOTIgMCBSL1ByZXYgMjk0IDAgUi9OZXh0IDI5NiAwIFI+PgplbmRvYmoKCjI5NiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0MTAwNDQwMDQ0PgovRGVzdFs4MSAwIFIvWFlaIDcxLjEgNTA1LjEgMF0vUGFyZW50IDI5MiAwIFIvUHJldiAyOTUgMCBSL05leHQgMjk3IDAgUj4+CmVuZG9iagoKMjk3IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQ1MDA0NDAwNDkwMDU0PgovRGVzdFs4NiAwIFIvWFlaIDcxLjEgNDk3LjQgMF0vUGFyZW50IDI5MiAwIFIvUHJldiAyOTYgMCBSL05leHQgMjk4IDAgUj4+CmVuZG9iagoKMjk4IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDUwMDA0ODAwNEYwMDU0MDA0RjAwNTUwMDUwMDA0QzAwNEYwMDQxMDA0ND4KL0Rlc3RbOTEgMCBSL1hZWiA3MS4xIDQ1OC45IDBdL1BhcmVudCAyOTIgMCBSL1ByZXYgMjk3IDAgUi9OZXh0IDI5OSAwIFI+PgplbmRvYmoKCjI5OSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA1MDAwNDgwMDRGMDA1NDAwNEYwMDQ0MDA0NTAwNEMwMDQ1MDA1NDAwNDU+Ci9EZXN0WzkxIDAgUi9YWVogNzEuMSAxMzguMSAwXS9QYXJlbnQgMjkyIDAgUi9QcmV2IDI5OCAwIFIvTmV4dCAzMDAgMCBSPj4KZW5kb2JqCgozMDAgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA0RjAwNTAwMDNBMDAyMDAwNDQwMDQ1MDA0QzAwNDUwMDU0MDA0NT4KL0Rlc3RbOTYgMCBSL1hZWiA3MS4xIDUyNy40IDBdL1BhcmVudCAyOTIgMCBSL1ByZXYgMjk5IDAgUi9OZXh0IDMwMSAwIFI+PgplbmRvYmoKCjMwMSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0NzAwNDUwMDU0PgovRGVzdFs5NiAwIFIvWFlaIDcxLjEgNDU5LjMgMF0vUGFyZW50IDI5MiAwIFIvUHJldiAzMDAgMCBSPj4KZW5kb2JqCgozMDIgMCBvYmoKPDwvQ291bnQgMS9GaXJzdCAzMDMgMCBSL0xhc3QgMzAzIDAgUgovVGl0bGU8RkVGRjAwNDEwMDYzMDA3NDAwNjkwMDc2MDA2OTAwNzQwMDY5MDA2NTAwNzMwMDIwMDA0MTAwNTAwMDQ5MDAzQT4KL0Rlc3RbOTYgMCBSL1hZWiA1Ni43IDI4Ni40IDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMjkyIDAgUi9OZXh0IDMwNCAwIFI+PgplbmRvYmoKCjMwMyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0QzAwNDkwMDUzMDA1ND4KL0Rlc3RbOTYgMCBSL1hZWiA3MS4xIDI2NC4zIDBdL1BhcmVudCAzMDIgMCBSPj4KZW5kb2JqCgozMDQgMCBvYmoKPDwvQ291bnQgOC9GaXJzdCAzMDUgMCBSL0xhc3QgMzEyIDAgUgovVGl0bGU8RkVGRjAwNDMwMDY4MDA2NTAwNjMwMDZCMDA2OTAwNkUwMDczMDAyMDAwNDEwMDUwMDA0OTAwM0E+Ci9EZXN0WzEwMSAwIFIvWFlaIDU2LjcgNzM1LjMgMF0vUGFyZW50IDI2MiAwIFIvUHJldiAzMDIgMCBSL05leHQgMzEzIDAgUj4+CmVuZG9iagoKMzA1IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQyMDA1OTAwNEMwMDRGMDA0MzAwNDEwMDU0MDA0OTAwNEYwMDRFPgovRGVzdFsxMDEgMCBSL1hZWiA3MS4xIDcxMy4yIDBdL1BhcmVudCAzMDQgMCBSL05leHQgMzA2IDAgUj4+CmVuZG9iagoKMzA2IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQ2MDA1MjAwNDkwMDQ1MDA0RTAwNDQwMDUzPgovRGVzdFsxMDEgMCBSL1hZWiA3MS4xIDI5NC41IDBdL1BhcmVudCAzMDQgMCBSL1ByZXYgMzA1IDAgUi9OZXh0IDMwNyAwIFI+PgplbmRvYmoKCjMwNyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0NTAwNDQwMDQ5MDA1ND4KL0Rlc3RbMTA2IDAgUi9YWVogNzEuMSA2NTIuMiAwXS9QYXJlbnQgMzA0IDAgUi9QcmV2IDMwNiAwIFIvTmV4dCAzMDggMCBSPj4KZW5kb2JqCgozMDggMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA0RjAwNTAwMDNBMDAyMDAwNEQwMDU5MDA0MzAwNDgwMDQ1MDA0MzAwNEIwMDQ5MDA0RTAwNTM+Ci9EZXN0WzEwNiAwIFIvWFlaIDcxLjEgMzU4LjkgMF0vUGFyZW50IDMwNCAwIFIvUHJldiAzMDcgMCBSL05leHQgMzA5IDAgUj4+CmVuZG9iagoKMzA5IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQ0MDA0NTAwNEM+Ci9EZXN0WzExMSAwIFIvWFlaIDcxLjEgNjk5LjEgMF0vUGFyZW50IDMwNCAwIFIvUHJldiAzMDggMCBSL05leHQgMzEwIDAgUj4+CmVuZG9iagoKMzEwIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQ3MDA0NTAwNTQ+Ci9EZXN0WzExMSAwIFIvWFlaIDcxLjEgNDgyLjcgMF0vUGFyZW50IDMwNCAwIFIvUHJldiAzMDkgMCBSL05leHQgMzExIDAgUj4+CmVuZG9iagoKMzExIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQxMDA0NDAwNDQ+Ci9EZXN0WzExMSAwIFIvWFlaIDcxLjEgMjU2LjkgMF0vUGFyZW50IDMwNCAwIFIvUHJldiAzMTAgMCBSL05leHQgMzEyIDAgUj4+CmVuZG9iagoKMzEyIDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNEYwMDUwMDAzQTAwMjAwMDQxMDA1MDAwNTAwMDUyMDA0RjAwNTYwMDQ1PgovRGVzdFsxMTYgMCBSL1hZWiA3MS4xIDUzNS42IDBdL1BhcmVudCAzMDQgMCBSL1ByZXYgMzExIDAgUj4+CmVuZG9iagoKMzEzIDAgb2JqCjw8L0NvdW50IDMvRmlyc3QgMzE0IDAgUi9MYXN0IDMxNiAwIFIKL1RpdGxlPEZFRkYwMDRDMDA2NTAwNjEwMDY0MDA2NTAwNzIwMDYyMDA2RjAwNjEwMDcyMDA2NDAwMjAwMDQxMDA1MDAwNDkwMDNBPgovRGVzdFsxMTYgMCBSL1hZWiA1Ni43IDI3MC41IDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMzA0IDAgUi9OZXh0IDMxNyAwIFI+PgplbmRvYmoKCjMxNCAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0QzAwNDkwMDUzMDA1ND4KL0Rlc3RbMTE2IDAgUi9YWVogNzEuMSAyNDguNCAwXS9QYXJlbnQgMzEzIDAgUi9OZXh0IDMxNSAwIFI+PgplbmRvYmoKCjMxNSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0NzAwNDUwMDU0PgovRGVzdFsxMjEgMCBSL1hZWiA3MS4xIDcxNy4yIDBdL1BhcmVudCAzMTMgMCBSL1ByZXYgMzE0IDAgUi9OZXh0IDMxNiAwIFI+PgplbmRvYmoKCjMxNiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0QzAwNDUwMDQxMDA0NDAwNDUwMDUyMDA1Mz4KL0Rlc3RbMTIxIDAgUi9YWVogNzEuMSA1MzEuNCAwXS9QYXJlbnQgMzEzIDAgUi9QcmV2IDMxNSAwIFI+PgplbmRvYmoKCjMxNyAwIG9iago8PC9Db3VudCAzL0ZpcnN0IDMxOCAwIFIvTGFzdCAzMjAgMCBSCi9UaXRsZTxGRUZGMDA0MjAwNjEwMDY0MDA2NzAwNjUwMDczMDAyMDAwNDEwMDUwMDA0OT4KL0Rlc3RbMTIxIDAgUi9YWVogNTYuNyAyODUuNiAwXS9QYXJlbnQgMjYyIDAgUi9QcmV2IDMxMyAwIFIvTmV4dCAzMjEgMCBSPj4KZW5kb2JqCgozMTggMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA0RjAwNTAwMDNBMDAyMDAwNEMwMDQ5MDA1MzAwNTQ+Ci9EZXN0WzEyMSAwIFIvWFlaIDcxLjEgMjYzLjUgMF0vUGFyZW50IDMxNyAwIFIvTmV4dCAzMTkgMCBSPj4KZW5kb2JqCgozMTkgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA0RjAwNTAwMDNBMDAyMDAwNDcwMDQ1MDA1ND4KL0Rlc3RbMTI2IDAgUi9YWVogNzEuMSA3MzUuMyAwXS9QYXJlbnQgMzE3IDAgUi9QcmV2IDMxOCAwIFIvTmV4dCAzMjAgMCBSPj4KZW5kb2JqCgozMjAgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA0RjAwNTAwMDNBMDAyMDAwNEQwMDQ1MDA0RDAwNDIwMDQ1MDA1MjAwNTM+Ci9EZXN0WzEyNiAwIFIvWFlaIDcxLjEgNTQ5LjUgMF0vUGFyZW50IDMxNyAwIFIvUHJldiAzMTkgMCBSPj4KZW5kb2JqCgozMjEgMCBvYmoKPDwvQ291bnQgMy9GaXJzdCAzMjIgMCBSL0xhc3QgMzI0IDAgUgovVGl0bGU8RkVGRjAwNTMwMDZGMDA2MzAwNjkwMDYxMDA2QzAwMjAwMDQxMDA1MDAwNDkwMDNBPgovRGVzdFsxMjYgMCBSL1hZWiA1Ni43IDMxNy41IDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMzE3IDAgUi9OZXh0IDMyNSAwIFI+PgplbmRvYmoKCjMyMiAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0QzAwNDkwMDUzMDA1ND4KL0Rlc3RbMTI2IDAgUi9YWVogNzEuMSAyNzUuNiAwXS9QYXJlbnQgMzIxIDAgUi9OZXh0IDMyMyAwIFI+PgplbmRvYmoKCjMyMyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA0NzAwNDUwMDU0MDA0QjAwNDUwMDU5PgovRGVzdFsxMzEgMCBSL1hZWiA3MS4xIDczNS4zIDBdL1BhcmVudCAzMjEgMCBSL1ByZXYgMzIyIDAgUi9OZXh0IDMyNCAwIFI+PgplbmRvYmoKCjMyNCAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDRGMDA1MDAwM0EwMDIwMDA1MzAwNDUwMDU0MDA0QjAwNDUwMDU5PgovRGVzdFsxMzEgMCBSL1hZWiA3MS4xIDUwNCAwXS9QYXJlbnQgMzIxIDAgUi9QcmV2IDMyMyAwIFI+PgplbmRvYmoKCjMyNSAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDQzMDA2ODAwNjUwMDYzMDA2QjAwNjkwMDZFMDAyMDAwNDEwMDcwMDA3MDAwNzIwMDZGMDA3NjAwNjEwMDZDMDA3MzAwM0E+Ci9EZXN0WzEzMSAwIFIvWFlaIDU2LjcgMjYwLjcgMF0vUGFyZW50IDI2MiAwIFIvUHJldiAzMjEgMCBSL05leHQgMzI2IDAgUj4+CmVuZG9iagoKMzI2IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNTMwMDYxMDA2RDAwNzAwMDZDMDA2NTAwMjAwMDQzMDA2QzAwNjkwMDY1MDA2RTAwNzQwMDNBPgovRGVzdFsxMzYgMCBSL1hZWiA1Ni43IDMxOC4zIDBdL1BhcmVudCAyNjIgMCBSL1ByZXYgMzI1IDAgUj4+CmVuZG9iagoKMjE0IDAgb2JqCjw8L1R5cGUvUGFnZXMKL1Jlc291cmNlcyAyNjEgMCBSCi9NZWRpYUJveFsgMCAwIDYxMiA3OTIgXQovS2lkc1sgMSAwIFIgNiAwIFIgMTEgMCBSIDE2IDAgUiAyMSAwIFIgMjYgMCBSIDMxIDAgUiAzNiAwIFIgNDEgMCBSIDQ2IDAgUiA1MSAwIFIgNTYgMCBSIDYxIDAgUiA2NiAwIFIgNzEgMCBSIDc2IDAgUgo4MSAwIFIgODYgMCBSIDkxIDAgUiA5NiAwIFIgMTAxIDAgUiAxMDYgMCBSIDExMSAwIFIgMTE2IDAgUiAxMjEgMCBSIDEyNiAwIFIgMTMxIDAgUiAxMzYgMCBSIDE0MSAwIFIgXQovQ291bnQgMjk+PgplbmRvYmoKCjE0NiAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNzAuMiA0NzMuMSA1NTUuNSA0ODYuOV0vRGVzdFsxMzYgMCBSL1hZWiA1Ni43IDMxOC4zIDBdPj4KZW5kb2JqCgoxNDcgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgNDg2LjkgNTU1LjUgNTAwLjddL0Rlc3RbMTMxIDAgUi9YWVogNTYuNyAyNjAuNyAwXT4+CmVuZG9iagoKMTQ4IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDUwMC43IDU1NS41IDUxNC41XS9EZXN0WzEzMSAwIFIvWFlaIDcxLjEgNTA0IDBdPj4KZW5kb2JqCgoxNDkgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgNTE0LjUgNTU1LjUgNTI4LjNdL0Rlc3RbMTMxIDAgUi9YWVogNzEuMSA3MzUuMyAwXT4+CmVuZG9iagoKMTUwIDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDUyOC4zIDU1NS41IDU0Mi4xXS9EZXN0WzEyNiAwIFIvWFlaIDcxLjEgMjc1LjYgMF0+PgplbmRvYmoKCjE1MSAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNzAuMiA1NDIuMSA1NTUuNSA1NTUuOV0vRGVzdFsxMjYgMCBSL1hZWiA1Ni43IDMxNy41IDBdPj4KZW5kb2JqCgoxNTIgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgNTU1LjkgNTU1LjUgNTY5LjddL0Rlc3RbMTI2IDAgUi9YWVogNzEuMSA1NDkuNSAwXT4+CmVuZG9iagoKMTUzIDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDU2OS43IDU1NS41IDU4My41XS9EZXN0WzEyNiAwIFIvWFlaIDcxLjEgNzM1LjMgMF0+PgplbmRvYmoKCjE1NCAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyA1ODMuNSA1NTUuNSA1OTcuM10vRGVzdFsxMjEgMCBSL1hZWiA3MS4xIDI2My41IDBdPj4KZW5kb2JqCgoxNTUgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgNTk3LjMgNTU1LjUgNjExLjFdL0Rlc3RbMTIxIDAgUi9YWVogNTYuNyAyODUuNiAwXT4+CmVuZG9iagoKMTU2IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDYxMS4xIDU1NS41IDYyNC45XS9EZXN0WzEyMSAwIFIvWFlaIDcxLjEgNTMxLjQgMF0+PgplbmRvYmoKCjE1NyAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyA2MjQuOSA1NTUuNSA2MzguN10vRGVzdFsxMjEgMCBSL1hZWiA3MS4xIDcxNy4yIDBdPj4KZW5kb2JqCgoxNTggMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgNjM4LjcgNTU1LjUgNjUyLjVdL0Rlc3RbMTE2IDAgUi9YWVogNzEuMSAyNDguNCAwXT4+CmVuZG9iagoKMTU5IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs3MC4yIDY1Mi41IDU1NS41IDY2Ni4zXS9EZXN0WzExNiAwIFIvWFlaIDU2LjcgMjcwLjUgMF0+PgplbmRvYmoKCjE2MCAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyA2NjYuMyA1NTUuNSA2ODAuMV0vRGVzdFsxMTYgMCBSL1hZWiA3MS4xIDUzNS42IDBdPj4KZW5kb2JqCgoxNjEgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgNjgwLjEgNTU1LjUgNjkzLjldL0Rlc3RbMTExIDAgUi9YWVogNzEuMSAyNTYuOSAwXT4+CmVuZG9iagoKMTYyIDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDY5My45IDU1NS41IDcwNy43XS9EZXN0WzExMSAwIFIvWFlaIDcxLjEgNDgyLjcgMF0+PgplbmRvYmoKCjE2MyAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyA3MDcuNyA1NTUuNSA3MjEuNV0vRGVzdFsxMTEgMCBSL1hZWiA3MS4xIDY5OS4xIDBdPj4KZW5kb2JqCgoxNjQgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgNzIxLjUgNTU1LjUgNzM1LjNdL0Rlc3RbMTA2IDAgUi9YWVogNzEuMSAzNTguOSAwXT4+CmVuZG9iagoKMTY1IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDk1LjggNTU1LjUgMTA5LjZdL0Rlc3RbMTA2IDAgUi9YWVogNzEuMSA2NTIuMiAwXT4+CmVuZG9iagoKMTY2IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDEwOS42IDU1NS41IDEyMy40XS9EZXN0WzEwMSAwIFIvWFlaIDcxLjEgMjk0LjUgMF0+PgplbmRvYmoKCjE2NyAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyAxMjMuNCA1NTUuNSAxMzcuMl0vRGVzdFsxMDEgMCBSL1hZWiA3MS4xIDcxMy4yIDBdPj4KZW5kb2JqCgoxNjggMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgMTM3LjIgNTU1LjUgMTUxXS9EZXN0WzEwMSAwIFIvWFlaIDU2LjcgNzM1LjMgMF0+PgplbmRvYmoKCjE2OSAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyAxNTEgNTU1LjUgMTY0LjhdL0Rlc3RbOTYgMCBSL1hZWiA3MS4xIDI2NC4zIDBdPj4KZW5kb2JqCgoxNzAgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgMTY0LjggNTU1LjUgMTc4LjZdL0Rlc3RbOTYgMCBSL1hZWiA1Ni43IDI4Ni40IDBdPj4KZW5kb2JqCgoxNzEgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgMTc4LjYgNTU1LjUgMTkyLjRdL0Rlc3RbOTYgMCBSL1hZWiA3MS4xIDQ1OS4zIDBdPj4KZW5kb2JqCgoxNzIgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgMTkyLjQgNTU1LjUgMjA2LjJdL0Rlc3RbOTYgMCBSL1hZWiA3MS4xIDUyNy40IDBdPj4KZW5kb2JqCgoxNzMgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgMjA2LjIgNTU1LjUgMjIwXS9EZXN0WzkxIDAgUi9YWVogNzEuMSAxMzguMSAwXT4+CmVuZG9iagoKMTc0IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDIyMCA1NTUuNSAyMzMuOF0vRGVzdFs5MSAwIFIvWFlaIDcxLjEgNDU4LjkgMF0+PgplbmRvYmoKCjE3NSAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyAyMzMuOCA1NTUuNSAyNDcuNl0vRGVzdFs4NiAwIFIvWFlaIDcxLjEgNDk3LjQgMF0+PgplbmRvYmoKCjE3NiAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyAyNDcuNiA1NTUuNSAyNjEuNF0vRGVzdFs4MSAwIFIvWFlaIDcxLjEgNTA1LjEgMF0+PgplbmRvYmoKCjE3NyAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyAyNjEuNCA1NTUuNSAyNzUuMl0vRGVzdFs3NiAwIFIvWFlaIDcxLjEgNTM4LjIgMF0+PgplbmRvYmoKCjE3OCAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyAyNzUuMiA1NTUuNSAyODldL0Rlc3RbNzYgMCBSL1hZWiA3MS4xIDczNS4zIDBdPj4KZW5kb2JqCgoxNzkgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgMjg5IDU1NS41IDMwMi44XS9EZXN0WzcxIDAgUi9YWVogNzEuMSAyNzIuNSAwXT4+CmVuZG9iagoKMTgwIDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs3MC4yIDMwMi44IDU1NS41IDMxNi42XS9EZXN0WzcxIDAgUi9YWVogNTYuNyAyOTQuNiAwXT4+CmVuZG9iagoKMTgxIDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDMxNi42IDU1NS41IDMzMC40XS9EZXN0WzcxIDAgUi9YWVogNzEuMSA1ODUuOSAwXT4+CmVuZG9iagoKMTgyIDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDMzMC40IDU1NS41IDM0NC4yXS9EZXN0WzY2IDAgUi9YWVogNzEuMSAxOTYuOCAwXT4+CmVuZG9iagoKMTgzIDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDM0NC4yIDU1NS41IDM1OF0vRGVzdFs2NiAwIFIvWFlaIDcxLjEgNDA4LjkgMF0+PgplbmRvYmoKCjE4NCAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyAzNTggNTU1LjUgMzcxLjhdL0Rlc3RbNjYgMCBSL1hZWiA3MS4xIDY0MC4yIDBdPj4KZW5kb2JqCgoxODUgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgMzcxLjggNTU1LjUgMzg1LjZdL0Rlc3RbNjEgMCBSL1hZWiA3MS4xIDIzMS4zIDBdPj4KZW5kb2JqCgoxODYgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgMzg1LjYgNTU1LjUgMzk5LjRdL0Rlc3RbNjEgMCBSL1hZWiA3MS4xIDQ2Mi42IDBdPj4KZW5kb2JqCgoxODcgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgMzk5LjQgNTU1LjUgNDEzLjJdL0Rlc3RbNjEgMCBSL1hZWiA3MS4xIDcxMy4yIDBdPj4KZW5kb2JqCgoxODggMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgNDEzLjIgNTU1LjUgNDI3XS9EZXN0WzYxIDAgUi9YWVogNTYuNyA3MzUuMyAwXT4+CmVuZG9iagoKMTg5IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDQyNyA1NTUuNSA0NDAuOF0vRGVzdFs1NiAwIFIvWFlaIDcxLjIgMzMxLjkgMF0+PgplbmRvYmoKCjE5MCAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyA0NDAuOCA1NTUuNSA0NTQuNl0vRGVzdFs1NiAwIFIvWFlaIDcxLjEgNjc4LjcgMF0+PgplbmRvYmoKCjE5MSAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyA0NTQuNiA1NTUuNSA0NjguNF0vRGVzdFs1MSAwIFIvWFlaIDcxLjEgNDAxLjcgMF0+PgplbmRvYmoKCjE5MiAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyA0NjguNCA1NTUuNSA0ODIuMl0vRGVzdFs1MSAwIFIvWFlaIDcxLjEgNjc4LjcgMF0+PgplbmRvYmoKCjE5MyAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbODQuMyA0ODIuMiA1NTUuNSA0OTZdL0Rlc3RbNDYgMCBSL1hZWiA3MS4xIDI3MS41IDBdPj4KZW5kb2JqCgoxOTQgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0Wzg0LjMgNDk2IDU1NS41IDUwOS44XS9EZXN0WzQ2IDAgUi9YWVogNzEuMSA1MTYuNiAwXT4+CmVuZG9iagoKMTk1IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDUwOS44IDU1NS41IDUyMy42XS9EZXN0WzQxIDAgUi9YWVogNzEuMSAxNjkuOCAwXT4+CmVuZG9iagoKMTk2IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs4NC4zIDUyMy42IDU1NS41IDUzNy40XS9EZXN0WzQxIDAgUi9YWVogNzEuMSA0NzkuOCAwXT4+CmVuZG9iagoKMTk3IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs3MC4yIDUzNy40IDU1NS41IDU1MS4yXS9EZXN0WzQxIDAgUi9YWVogNTYuNyA1MDEuOSAwXT4+CmVuZG9iagoKMTk4IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs3MC4yIDU1MS4yIDU1NS41IDU2NV0vRGVzdFszNiAwIFIvWFlaIDU2LjcgNDY4LjMgMF0+PgplbmRvYmoKCjE5OSAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNzAuMiA1NjUgNTU1LjUgNTc4LjhdL0Rlc3RbMzYgMCBSL1hZWiA1Ni43IDU3NS43IDBdPj4KZW5kb2JqCgoyMDAgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgNTc4LjggNTU1LjUgNTkyLjZdL0Rlc3RbMzYgMCBSL1hZWiA1Ni43IDY1NS41IDBdPj4KZW5kb2JqCgoyMDEgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgNTkyLjYgNTU1LjUgNjA2LjRdL0Rlc3RbMzYgMCBSL1hZWiA1Ni43IDczNS4zIDBdPj4KZW5kb2JqCgoyMDIgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgNjA2LjQgNTU1LjUgNjIwLjJdL0Rlc3RbMzEgMCBSL1hZWiA1Ni43IDMzMi43IDBdPj4KZW5kb2JqCgoyMDMgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgNjIwLjIgNTU1LjUgNjM0XS9EZXN0WzMxIDAgUi9YWVogNTYuNyA0MTIuNSAwXT4+CmVuZG9iagoKMjA0IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs3MC4yIDYzNCA1NTUuNSA2NDcuOF0vRGVzdFsyNiAwIFIvWFlaIDU2LjcgMjk1LjUgMF0+PgplbmRvYmoKCjIwNSAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNzAuMiA2NDcuOCA1NTUuNSA2NjEuNl0vRGVzdFsyNiAwIFIvWFlaIDU2LjcgNjYzLjggMF0+PgplbmRvYmoKCjIwNiAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNzAuMiA2NjEuNiA1NTUuNSA2NzUuNF0vRGVzdFsyMSAwIFIvWFlaIDU2LjcgNTE0LjcgMF0+PgplbmRvYmoKCjIwNyAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNzAuMiA2NzUuNCA1NTUuNSA2ODkuMl0vRGVzdFsxNiAwIFIvWFlaIDU2LjcgMjAwIDBdPj4KZW5kb2JqCgoyMDggMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzcwLjIgNjg5LjIgNTU1LjUgNzAzXS9EZXN0WzE2IDAgUi9YWVogNTYuNyA1MTAuNyAwXT4+CmVuZG9iagoKMjA5IDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFs3MC4yIDcwMyA1NTUuNSA3MTYuOF0vRGVzdFsxNiAwIFIvWFlaIDU2LjcgNzIzLjMgMF0+PgplbmRvYmoKCjIxMCAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbMTY4LjQgNzAzLjQgMzA4LjYgNzE3LjJdL0E8PC9UeXBlL0FjdGlvbi9TL1VSSS9VUkkobWFpbHRvOnNvbWVib2R5QHNvbWV3aGVyZS5jb20pPj4KPj4KZW5kb2JqCgoyMTEgMCBvYmoKPDwvVHlwZS9Bbm5vdC9TdWJ0eXBlL0xpbmsvQm9yZGVyWzAgMCAwXS9SZWN0WzE4OC40IDEwMi4yIDMyOC42IDExNl0vQTw8L1R5cGUvQWN0aW9uL1MvVVJJL1VSSShtYWlsdG86c29tZWJvZHlAc29tZXdoZXJlLmNvbSk+Pgo+PgplbmRvYmoKCjIxMiAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbMTU2LjQgMzE4LjUgMzg1LjIgMzMyLjNdL0E8PC9UeXBlL0FjdGlvbi9TL1VSSS9VUkkoaHR0cDovL2JsdWVpbXAuZ2l0aHViLmNvbS9qUXVlcnktRmlsZS1VcGxvYWQvKT4+Cj4+CmVuZG9iagoKMjEzIDAgb2JqCjw8L1R5cGUvQW5ub3QvU3VidHlwZS9MaW5rL0JvcmRlclswIDAgMF0vUmVjdFsyMTcuOCAxNzIuMyAzNjMuNyAxODRdL0E8PC9UeXBlL0FjdGlvbi9TL1VSSS9VUkkoaHR0cDovL215c2l0ZS5jb20vYXBwL3YxKT4+Cj4+CmVuZG9iagoKMzI3IDAgb2JqCjw8L1R5cGUvQ2F0YWxvZy9QYWdlcyAyMTQgMCBSCi9PcGVuQWN0aW9uWzEgMCBSIC9YWVogbnVsbCBudWxsIDBdCi9PdXRsaW5lcyAyNjIgMCBSCi9MYW5nKGVuLVVTKQo+PgplbmRvYmoKCjMyOCAwIG9iago8PC9BdXRob3I8RkVGRjAwNTIwMDZGMDA2MjAwNjUwMDcyMDA3NDAwMjAwMDQzMDA2MTAwNkQwMDcwMDA2MjAwNjUwMDZDMDA2Qz4KL0NyZWF0b3I8RkVGRjAwNTcwMDcyMDA2OTAwNzQwMDY1MDA3Mj4KL1Byb2R1Y2VyPEZFRkYwMDRDMDA2OTAwNjIwMDcyMDA2NTAwNEYwMDY2MDA2NjAwNjkwMDYzMDA2NTAwMjAwMDMzMDAyRTAwMzY+Ci9DcmVhdGlvbkRhdGUoRDoyMDEyMTIxNzEzMDgxOS0wNycwMCcpPj4KZW5kb2JqCgp4cmVmCjAgMzI5CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDE1MjY2OCAwMDAwMCBuIAowMDAwMDAwMDE5IDAwMDAwIG4gCjAwMDAwMDA2ODQgMDAwMDAgbiAKMDAwMDAwMDcwNCAwMDAwMCBuIAowMDAwMDAwODgxIDAwMDAwIG4gCjAwMDAxNTI4MTQgMDAwMDAgbiAKMDAwMDAwMDkyMSAwMDAwMCBuIAowMDAwMDAyODYwIDAwMDAwIG4gCjAwMDAwMDI4ODEgMDAwMDAgbiAKMDAwMDAwMzA1OCAwMDAwMCBuIAowMDAwMTUzMzMxIDAwMDAwIG4gCjAwMDAwMDMwOTkgMDAwMDAgbiAKMDAwMDAwMzk3NiAwMDAwMCBuIAowMDAwMDAzOTk3IDAwMDAwIG4gCjAwMDAwMDQxNzUgMDAwMDAgbiAKMDAwMDE1MzY0MiAwMDAwMCBuIAowMDAwMDA0MjE2IDAwMDAwIG4gCjAwMDAwMDY4MDUgMDAwMDAgbiAKMDAwMDAwNjgyNyAwMDAwMCBuIAowMDAwMDA3MDA1IDAwMDAwIG4gCjAwMDAxNTM3OTAgMDAwMDAgbiAKMDAwMDAwNzA0NiAwMDAwMCBuIAowMDAwMDA5NTk2IDAwMDAwIG4gCjAwMDAwMDk2MTggMDAwMDAgbiAKMDAwMDAwOTc5NiAwMDAwMCBuIAowMDAwMTUzOTM4IDAwMDAwIG4gCjAwMDAwMDk4MzcgMDAwMDAgbiAKMDAwMDAxMjExMiAwMDAwMCBuIAowMDAwMDEyMTM0IDAwMDAwIG4gCjAwMDAwMTIzMTIgMDAwMDAgbiAKMDAwMDE1NDA4NiAwMDAwMCBuIAowMDAwMDEyMzUzIDAwMDAwIG4gCjAwMDAwMTQ0MTMgMDAwMDAgbiAKMDAwMDAxNDQzNSAwMDAwMCBuIAowMDAwMDE0NjEzIDAwMDAwIG4gCjAwMDAxNTQyMzQgMDAwMDAgbiAKMDAwMDAxNDY1NCAwMDAwMCBuIAowMDAwMDE3NDA2IDAwMDAwIG4gCjAwMDAwMTc0MjggMDAwMDAgbiAKMDAwMDAxNzYwNiAwMDAwMCBuIAowMDAwMTU0NDAxIDAwMDAwIG4gCjAwMDAwMTc2NDcgMDAwMDAgbiAKMDAwMDAxOTYzNSAwMDAwMCBuIAowMDAwMDE5NjU3IDAwMDAwIG4gCjAwMDAwMTk4MzUgMDAwMDAgbiAKMDAwMDE1NDU0OSAwMDAwMCBuIAowMDAwMDE5ODc2IDAwMDAwIG4gCjAwMDAwMjEyMjAgMDAwMDAgbiAKMDAwMDAyMTI0MiAwMDAwMCBuIAowMDAwMDIxNDIwIDAwMDAwIG4gCjAwMDAxNTQ2OTcgMDAwMDAgbiAKMDAwMDAyMTQ2MSAwMDAwMCBuIAowMDAwMDIzMTk3IDAwMDAwIG4gCjAwMDAwMjMyMTkgMDAwMDAgbiAKMDAwMDAyMzM5NyAwMDAwMCBuIAowMDAwMTU0ODQ1IDAwMDAwIG4gCjAwMDAwMjM0MzggMDAwMDAgbiAKMDAwMDAyNTE0MSAwMDAwMCBuIAowMDAwMDI1MTYzIDAwMDAwIG4gCjAwMDAwMjUzNDEgMDAwMDAgbiAKMDAwMDE1NDk5MyAwMDAwMCBuIAowMDAwMDI1MzgyIDAwMDAwIG4gCjAwMDAwMjY2NzEgMDAwMDAgbiAKMDAwMDAyNjY5MyAwMDAwMCBuIAowMDAwMDI2ODcxIDAwMDAwIG4gCjAwMDAxNTUxNDEgMDAwMDAgbiAKMDAwMDAyNjkxMiAwMDAwMCBuIAowMDAwMDI4MTIzIDAwMDAwIG4gCjAwMDAwMjgxNDUgMDAwMDAgbiAKMDAwMDAyODMyMyAwMDAwMCBuIAowMDAwMTU1Mjg5IDAwMDAwIG4gCjAwMDAwMjgzNjQgMDAwMDAgbiAKMDAwMDAyOTgwNyAwMDAwMCBuIAowMDAwMDI5ODI5IDAwMDAwIG4gCjAwMDAwMzAwMDcgMDAwMDAgbiAKMDAwMDE1NTQzNyAwMDAwMCBuIAowMDAwMDMwMDQ4IDAwMDAwIG4gCjAwMDAwMzE4NjIgMDAwMDAgbiAKMDAwMDAzMTg4NCAwMDAwMCBuIAowMDAwMDMyMDYyIDAwMDAwIG4gCjAwMDAxNTU1ODUgMDAwMDAgbiAKMDAwMDAzMjEwMyAwMDAwMCBuIAowMDAwMDM0MTkxIDAwMDAwIG4gCjAwMDAwMzQyMTMgMDAwMDAgbiAKMDAwMDAzNDM5MSAwMDAwMCBuIAowMDAwMTU1NzMzIDAwMDAwIG4gCjAwMDAwMzQ0MzIgMDAwMDAgbiAKMDAwMDAzNjI4NyAwMDAwMCBuIAowMDAwMDM2MzA5IDAwMDAwIG4gCjAwMDAwMzY0ODcgMDAwMDAgbiAKMDAwMDE1NTg4MSAwMDAwMCBuIAowMDAwMDM2NTI4IDAwMDAwIG4gCjAwMDAwMzg1MTggMDAwMDAgbiAKMDAwMDAzODU0MCAwMDAwMCBuIAowMDAwMDM4NzE4IDAwMDAwIG4gCjAwMDAxNTYwNDggMDAwMDAgbiAKMDAwMDAzODc1OSAwMDAwMCBuIAowMDAwMDQwMTg4IDAwMDAwIG4gCjAwMDAwNDAyMTAgMDAwMDAgbiAKMDAwMDA0MDM4OCAwMDAwMCBuIAowMDAwMTU2MTk2IDAwMDAwIG4gCjAwMDAwNDA0MzAgMDAwMDAgbiAKMDAwMDA0MjQxMyAwMDAwMCBuIAowMDAwMDQyNDM2IDAwMDAwIG4gCjAwMDAwNDI2MTUgMDAwMDAgbiAKMDAwMDE1NjM0NiAwMDAwMCBuIAowMDAwMDQyNjU3IDAwMDAwIG4gCjAwMDAwNDQ0NTIgMDAwMDAgbiAKMDAwMDA0NDQ3NSAwMDAwMCBuIAowMDAwMDQ0NjU0IDAwMDAwIG4gCjAwMDAxNTY0OTYgMDAwMDAgbiAKMDAwMDA0NDY5NiAwMDAwMCBuIAowMDAwMDQ2MDY3IDAwMDAwIG4gCjAwMDAwNDYwOTAgMDAwMDAgbiAKMDAwMDA0NjI2OSAwMDAwMCBuIAowMDAwMTU2NjQ2IDAwMDAwIG4gCjAwMDAwNDYzMTEgMDAwMDAgbiAKMDAwMDA0ODE4NiAwMDAwMCBuIAowMDAwMDQ4MjA5IDAwMDAwIG4gCjAwMDAwNDgzODggMDAwMDAgbiAKMDAwMDE1Njc5NiAwMDAwMCBuIAowMDAwMDQ4NDMwIDAwMDAwIG4gCjAwMDAwNDk3NzQgMDAwMDAgbiAKMDAwMDA0OTc5NyAwMDAwMCBuIAowMDAwMDQ5OTc2IDAwMDAwIG4gCjAwMDAxNTY5NDYgMDAwMDAgbiAKMDAwMDA1MDAxOCAwMDAwMCBuIAowMDAwMDUxNjQ0IDAwMDAwIG4gCjAwMDAwNTE2NjcgMDAwMDAgbiAKMDAwMDA1MTg0NiAwMDAwMCBuIAowMDAwMTU3MDk2IDAwMDAwIG4gCjAwMDAwNTE4ODggMDAwMDAgbiAKMDAwMDA1MzkyMiAwMDAwMCBuIAowMDAwMDUzOTQ1IDAwMDAwIG4gCjAwMDAwNTQxMjQgMDAwMDAgbiAKMDAwMDE1NzI0NiAwMDAwMCBuIAowMDAwMDU0MTY2IDAwMDAwIG4gCjAwMDAwNTY1NjAgMDAwMDAgbiAKMDAwMDA1NjU4MyAwMDAwMCBuIAowMDAwMDU2NzYyIDAwMDAwIG4gCjAwMDAxNTc0MTUgMDAwMDAgbiAKMDAwMDA1NjgwNCAwMDAwMCBuIAowMDAwMDU3NDM1IDAwMDAwIG4gCjAwMDAwNTc0NTcgMDAwMDAgbiAKMDAwMDA1NzYzNiAwMDAwMCBuIAowMDAwMTY4MTQ4IDAwMDAwIG4gCjAwMDAxNjgyNjkgMDAwMDAgbiAKMDAwMDE2ODM5MCAwMDAwMCBuIAowMDAwMTY4NTA5IDAwMDAwIG4gCjAwMDAxNjg2MzAgMDAwMDAgbiAKMDAwMDE2ODc1MSAwMDAwMCBuIAowMDAwMTY4ODcyIDAwMDAwIG4gCjAwMDAxNjg5OTMgMDAwMDAgbiAKMDAwMDE2OTExNCAwMDAwMCBuIAowMDAwMTY5MjM1IDAwMDAwIG4gCjAwMDAxNjkzNTYgMDAwMDAgbiAKMDAwMDE2OTQ3NyAwMDAwMCBuIAowMDAwMTY5NTk4IDAwMDAwIG4gCjAwMDAxNjk3MTkgMDAwMDAgbiAKMDAwMDE2OTg0MCAwMDAwMCBuIAowMDAwMTY5OTYxIDAwMDAwIG4gCjAwMDAxNzAwODIgMDAwMDAgbiAKMDAwMDE3MDIwMyAwMDAwMCBuIAowMDAwMTcwMzI0IDAwMDAwIG4gCjAwMDAxNzA0NDUgMDAwMDAgbiAKMDAwMDE3MDU2NSAwMDAwMCBuIAowMDAwMTcwNjg2IDAwMDAwIG4gCjAwMDAxNzA4MDcgMDAwMDAgbiAKMDAwMDE3MDkyNiAwMDAwMCBuIAowMDAwMTcxMDQ0IDAwMDAwIG4gCjAwMDAxNzExNjQgMDAwMDAgbiAKMDAwMDE3MTI4NCAwMDAwMCBuIAowMDAwMTcxNDA0IDAwMDAwIG4gCjAwMDAxNzE1MjIgMDAwMDAgbiAKMDAwMDE3MTY0MCAwMDAwMCBuIAowMDAwMTcxNzYwIDAwMDAwIG4gCjAwMDAxNzE4ODAgMDAwMDAgbiAKMDAwMDE3MjAwMCAwMDAwMCBuIAowMDAwMTcyMTE4IDAwMDAwIG4gCjAwMDAxNzIyMzYgMDAwMDAgbiAKMDAwMDE3MjM1NiAwMDAwMCBuIAowMDAwMTcyNDc2IDAwMDAwIG4gCjAwMDAxNzI1OTYgMDAwMDAgbiAKMDAwMDE3MjcxNCAwMDAwMCBuIAowMDAwMTcyODMyIDAwMDAwIG4gCjAwMDAxNzI5NTIgMDAwMDAgbiAKMDAwMDE3MzA3MiAwMDAwMCBuIAowMDAwMTczMTkyIDAwMDAwIG4gCjAwMDAxNzMzMTAgMDAwMDAgbiAKMDAwMDE3MzQyOCAwMDAwMCBuIAowMDAwMTczNTQ4IDAwMDAwIG4gCjAwMDAxNzM2NjggMDAwMDAgbiAKMDAwMDE3Mzc4OCAwMDAwMCBuIAowMDAwMTczOTA2IDAwMDAwIG4gCjAwMDAxNzQwMjQgMDAwMDAgbiAKMDAwMDE3NDE0NCAwMDAwMCBuIAowMDAwMTc0MjY0IDAwMDAwIG4gCjAwMDAxNzQzODQgMDAwMDAgbiAKMDAwMDE3NDUwMiAwMDAwMCBuIAowMDAwMTc0NjIwIDAwMDAwIG4gCjAwMDAxNzQ3NDAgMDAwMDAgbiAKMDAwMDE3NDg2MCAwMDAwMCBuIAowMDAwMTc0OTgwIDAwMDAwIG4gCjAwMDAxNzUwOTggMDAwMDAgbiAKMDAwMDE3NTIxNiAwMDAwMCBuIAowMDAwMTc1MzM2IDAwMDAwIG4gCjAwMDAxNzU0NTYgMDAwMDAgbiAKMDAwMDE3NTU3NCAwMDAwMCBuIAowMDAwMTc1NjkyIDAwMDAwIG4gCjAwMDAxNzU4MTAgMDAwMDAgbiAKMDAwMDE3NTk2MSAwMDAwMCBuIAowMDAwMTc2MTEwIDAwMDAwIG4gCjAwMDAxNzYyNzcgMDAwMDAgbiAKMDAwMDE2Nzg0MSAwMDAwMCBuIAowMDAwMDU3Njc4IDAwMDAwIG4gCjAwMDAwNjg4NzQgMDAwMDAgbiAKMDAwMDA2ODg5OCAwMDAwMCBuIAowMDAwMDY5MTEyIDAwMDAwIG4gCjAwMDAwNjk1NzQgMDAwMDAgbiAKMDAwMDA2OTkwMiAwMDAwMCBuIAowMDAwMDc0MzgzIDAwMDAwIG4gCjAwMDAwNzQ0MDYgMDAwMDAgbiAKMDAwMDA3NDYxMiAwMDAwMCBuIAowMDAwMDc0OTQzIDAwMDAwIG4gCjAwMDAwNzUxNDUgMDAwMDAgbiAKMDAwMDA4MTM3OCAwMDAwMCBuIAowMDAwMDgxNDAxIDAwMDAwIG4gCjAwMDAwODE1OTggMDAwMDAgbiAKMDAwMDA4MTkwMyAwMDAwMCBuIAowMDAwMDgyMDc1IDAwMDAwIG4gCjAwMDAwOTE4NTYgMDAwMDAgbiAKMDAwMDA5MTg3OSAwMDAwMCBuIAowMDAwMDkyMDgxIDAwMDAwIG4gCjAwMDAwOTI0OTEgMDAwMDAgbiAKMDAwMDA5Mjc2MSAwMDAwMCBuIAowMDAwMTAwMTIzIDAwMDAwIG4gCjAwMDAxMDAxNDYgMDAwMDAgbiAKMDAwMDEwMDM1NSAwMDAwMCBuIAowMDAwMTAwNzI5IDAwMDAwIG4gCjAwMDAxMDA5NzQgMDAwMDAgbiAKMDAwMDEyMjg1NSAwMDAwMCBuIAowMDAwMTIyODc5IDAwMDAwIG4gCjAwMDAxMjMwNzggMDAwMDAgbiAKMDAwMDEyMzcxNiAwMDAwMCBuIAowMDAwMTI0MjAyIDAwMDAwIG4gCjAwMDAxMzQwNzggMDAwMDAgbiAKMDAwMDEzNDEwMSAwMDAwMCBuIAowMDAwMTM0MzA2IDAwMDAwIG4gCjAwMDAxMzQ3NDcgMDAwMDAgbiAKMDAwMDEzNTA0OSAwMDAwMCBuIAowMDAwMTQ3ODQ5IDAwMDAwIG4gCjAwMDAxNDc4NzMgMDAwMDAgbiAKMDAwMDE0ODA3MiAwMDAwMCBuIAowMDAwMTQ4NjYxIDAwMDAwIG4gCjAwMDAxNDkwOTQgMDAwMDAgbiAKMDAwMDE1MDk4OCAwMDAwMCBuIAowMDAwMTUxMDExIDAwMDAwIG4gCjAwMDAxNTEyMDUgMDAwMDAgbiAKMDAwMDE1MTUwNyAwMDAwMCBuIAowMDAwMTUxNjc1IDAwMDAwIG4gCjAwMDAxNTE3OTkgMDAwMDAgbiAKMDAwMDE1NzU4NCAwMDAwMCBuIAowMDAwMTU3NjQ0IDAwMDAwIG4gCjAwMDAxNTc3OTggMDAwMDAgbiAKMDAwMDE1Nzk0OSAwMDAwMCBuIAowMDAwMTU4MTQyIDAwMDAwIG4gCjAwMDAxNTgzMjkgMDAwMDAgbiAKMDAwMDE1ODUwOCAwMDAwMCBuIAowMDAwMTU4NjcxIDAwMDAwIG4gCjAwMDAxNTg4MjIgMDAwMDAgbiAKMDAwMDE1ODk3MyAwMDAwMCBuIAowMDAwMTU5MTQ4IDAwMDAwIG4gCjAwMDAxNTkzMDcgMDAwMDAgbiAKMDAwMDE1OTQ3MCAwMDAwMCBuIAowMDAwMTU5NjQ1IDAwMDAwIG4gCjAwMDAxNTk4MjggMDAwMDAgbiAKMDAwMDE1OTk3OCAwMDAwMCBuIAowMDAwMTYwMTI5IDAwMDAwIG4gCjAwMDAxNjAyNzYgMDAwMDAgbiAKMDAwMDE2MDQzMSAwMDAwMCBuIAowMDAwMTYwNTkwIDAwMDAwIG4gCjAwMDAxNjA3NTMgMDAwMDAgbiAKMDAwMDE2MDkwMCAwMDAwMCBuIAowMDAwMTYxMDQyIDAwMDAwIG4gCjAwMDAxNjEyMzMgMDAwMDAgbiAKMDAwMDE2MTM5NSAwMDAwMCBuIAowMDAwMTYxNTU0IDAwMDAwIG4gCjAwMDAxNjE3MTMgMDAwMDAgbiAKMDAwMDE2MTg2MCAwMDAwMCBuIAowMDAwMTYyMDE5IDAwMDAwIG4gCjAwMDAxNjIxNjIgMDAwMDAgbiAKMDAwMDE2MjI5NiAwMDAwMCBuIAowMDAwMTYyNDk1IDAwMDAwIG4gCjAwMDAxNjI2NDkgMDAwMDAgbiAKMDAwMDE2MjgyMCAwMDAwMCBuIAowMDAwMTYyOTY3IDAwMDAwIG4gCjAwMDAxNjMxMTAgMDAwMDAgbiAKMDAwMDE2MzI1NyAwMDAwMCBuIAowMDAwMTYzNDMyIDAwMDAwIG4gCjAwMDAxNjM2MDcgMDAwMDAgbiAKMDAwMDE2Mzc2MiAwMDAwMCBuIAowMDAwMTYzODkyIDAwMDAwIG4gCjAwMDAxNjQwOTUgMDAwMDAgbiAKMDAwMDE2NDIxNiAwMDAwMCBuIAowMDAwMTY0NDEyIDAwMDAwIG4gCjAwMDAxNjQ1NzEgMDAwMDAgbiAKMDAwMDE2NDczMSAwMDAwMCBuIAowMDAwMTY0ODc5IDAwMDAwIG4gCjAwMDAxNjUwNTEgMDAwMDAgbiAKMDAwMDE2NTE5NSAwMDAwMCBuIAowMDAwMTY1MzM5IDAwMDAwIG4gCjAwMDAxNjU0ODMgMDAwMDAgbiAKMDAwMDE2NTYzMCAwMDAwMCBuIAowMDAwMTY1ODM4IDAwMDAwIG4gCjAwMDAxNjU5NzMgMDAwMDAgbiAKMDAwMDE2NjExNyAwMDAwMCBuIAowMDAwMTY2MjY0IDAwMDAwIG4gCjAwMDAxNjY0NDggMDAwMDAgbiAKMDAwMDE2NjU4MyAwMDAwMCBuIAowMDAwMTY2NzI3IDAwMDAwIG4gCjAwMDAxNjY4NzQgMDAwMDAgbiAKMDAwMDE2NzA2MiAwMDAwMCBuIAowMDAwMTY3MTk3IDAwMDAwIG4gCjAwMDAxNjczNTMgMDAwMDAgbiAKMDAwMDE2NzQ5NCAwMDAwMCBuIAowMDAwMTY3NjgyIDAwMDAwIG4gCjAwMDAxNzY0MjEgMDAwMDAgbiAKMDAwMDE3NjUzOSAwMDAwMCBuIAp0cmFpbGVyCjw8L1NpemUgMzI5L1Jvb3QgMzI3IDAgUgovSW5mbyAzMjggMCBSCi9JRCBbIDw5NDY1MTg1QTA4N0JFMzA4OEZBRjFCMTRFMzIzNUU1MD4KPDk0NjUxODVBMDg3QkUzMDg4RkFGMUIxNEUzMjM1RTUwPiBdCi9Eb2NDaGVja3N1bSAvRjJBOEJDQjFBRjIzREJCRTk3MkU3MERERTYyMjVEMUMKPj4Kc3RhcnR4cmVmCjE3Njc4OQolJUVPRgo=]]></data>
	</file>
	<file>
	  <filename>/doc/checkin_approval.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R29hbAogLSBsb2NhdGlvbiBzdGFmZiBjYW4gJ2FwcHJvdmUnIGEgY2hlY2tpbgogICAobGlrZSBmb3IgZXhhbXBsZSBkcmlua2luZyBhIGJlZXIsIHRoaW5rIG9mIGl0IGFzIGEgJ2xveWFsdHkgcHJvZ3JhbScKCiAtIGNoZWNraW5zIGNhbiBiZSBmb3IgYW4gJ2l0ZW0nIG9yIGEgJ2xvY2F0aW9uJwogLSB1c2VyIHdvdWxkIGhhdmUgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb2NhdGlvbgoKCiAgIC0gd291bGQgaGF2ZSB0byBlbnRlciBhIHBhc3N3b3Jk]]></data>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/event.FrontEndUsers.OnDeleteUser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgovLyBkZWxldGUgY2hlY2tpbnM/CmlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmV1X29uZGVsZXRlX2NsZWFuY2hlY2tpbnMnLDEpICkgewogICRxdWVyeSA9IG5ldyBjZ3NhX2NoZWNraW5fcXVlcnkoYXJyYXkoJ293bmVyJy0+JHBhcmFtc1snaWQnXSkpOwogICRycyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwogIGlmKCAkcnMgKSB7CiAgICB3aGlsZSggISRycy0+RU9GICkgewogICAgICAkb2IgPSAkcnMtPmZpZWxkczsKICAgICAgJG9iLT5kZWxldGUoKTsKICAgIH0KICB9Cn0KCi8vIEB0b2RvOiBkZWxldGUgZmF2b3JpdGVzCgovLyBkZWxldGUgdGhpcyB1c2VyIGZyb20gYWxsIHBlb3BsZSB3aG8gaGF2ZSB0aGlzIGd1eSBhcyBhIGZyaWVuZAokZnJpZW5kcyA9IGNnc2FfZnJpZW5kczo6Z2V0X2ZyaWVuZHMoJHBhcmFtc1snaWQnXSk7CmlmKCBpc19hcnJheSgkZnJpZW5kcykgJiYgY291bnQoJGZyaWVuZHMpICkgewogIGZvcmVhY2goICRmcmllbmRzIGFzICRvbmUgKSB7CiAgICBjZ3NhX2ZyaWVuZHM6OnJlbW92ZV9mcmllbmRzaGlwKCRvbmUsJHBhcmFtc1snaWQnXSk7CiAgfQp9Ci8vIGRlbGV0ZSB0aGlzIHVzZXJzIGZyaWVuZCBkYXRhCmNnc2FfZnJpZW5kczo6ZGVsZXRlX2FsbCgkcGFyYW1zWydpZCddKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_activities_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCi8vCi8vIGluaXRpYWxpemF0aW9uCi8vCgovLwovLyBnZXQgdGhlIGRhdGEKLy8KJGFjdGl2aXRpZXMgPSBjZ3NhX2FjdGl2aXR5Ojpsb2FkX2FsbF9hc19hcnJheSgpOwppZiggaXNfYXJyYXkoJGFjdGl2aXRpZXMpICYmIGNvdW50KCRhY3Rpdml0aWVzKSApCiAgewogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGFjdGl2aXRpZXMpOyAkaSsrICkKICAgICAgewoJJHJlYyA9JiAkYWN0aXZpdGllc1skaV07CgkkcmVjWydkZXB0aCddID0gbWF4KDAsY291bnQoZXhwbG9kZSgnLicsJHJlY1snaGllcmFyY2h5J10pKS0xKTsKCSRyZWNbJ2VkaXRfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnYWRtaW5fYWRkYWN0aXZpdHknLCRyZXR1cm5pZCwKCQkJCQkgICAgYXJyYXkoJ2FjdGlkJz0+JHJlY1snaWQnXSkpOwoJJHJlY1snZWRpdF9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fYWRkYWN0aXZpdHknLCRyZXR1cm5pZCwKCQkJCQkJICAgJHRoaXMtPkxhbmcoJ2VkaXQnKSwKCQkJCQkJICAgJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsCgkJCQkJCSAgIGFycmF5KCdhY3RpZCc9PiRyZWNbJ2lkJ10pKTsKCSRyZWNbJ2RlbGV0ZV9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZGVsYWN0aXZpdHknLCRyZXR1cm5pZCwKCQkJCQkJICAgICAkdGhpcy0+TGFuZygnZGVsZXRlJyksCgkJCQkJCSAgICAgJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJICAgICBhcnJheSgnYWN0aWQnPT4kcmVjWydpZCddKSk7CiAgICAgIH0KICAgICRzbWFydHktPmFzc2lnbignYWN0aXZpdGllcycsJGFjdGl2aXRpZXMpOwogIH0KCi8vCi8vIGdpdmUgZXZlcnl0aGluZyB0byBzbWFydHkKLy8KJHNtYXJ0eS0+YXNzaWduKCdhZGRsaW5rJywKCQkkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fYWRkYWN0aXZpdHknLCRyZXR1cm5pZCwKCQkJCSAgICAgICAkdGhpcy0+TGFuZygnYWRkX2FjdGl2aXR5JyksCgkJCQkgICAgICAgJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywKCQkJCSAgICAgICBhcnJheSgpLCcnLCcnLCdGQUxTRScpKTsKaWYoIGNvdW50KCRhY3Rpdml0aWVzKSkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ29yZGVybGluaycsCgkJICAgICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9vcmRlcmFjdGl2aXR5JywkcmV0dXJuaWQsCgkJCQkJICAgJHRoaXMtPkxhbmcoJ3Jlb3JkZXJfYWN0aXZpdHknKSwKCQkJCQkgICAnaWNvbnMvc3lzdGVtL3Jlb3JkZXIuZ2lmJywKCQkJCQkgICBhcnJheSgpLCcnLCcnLCdGQUxTRScpKTsKICB9CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fYWN0aXZpdGllc190YWIudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_default_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgcmV0dXJuOwoKZWNobyBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zdGFydF90ZW1wbGF0ZV9mb3JtKCR0aGlzLCRpZCwnJywKCQkJCQkJICdkZWZhdWx0X2xpc3RfY2hlY2tpbl90ZW1wbGF0ZV9jb250ZW50cycsCgkJCQkJCSAnYWRtaW5fdGVtcGxhdGVzJywnZGVmYXVsdF90ZW1wbGF0ZXMnLAoJCQkJCQkgJHRoaXMtPkxhbmcoJ3N5c2RmbHRfbGlzdF9jaGVja2luc190ZW1wbGF0ZScpLAoJCQkJCQkgJ29yaWdfbGlzdF9jaGVja2lucy50cGwnKTsKCmVjaG8gY2dlX3RlbXBsYXRlX2FkbWluOjpnZXRfc3RhcnRfdGVtcGxhdGVfZm9ybSgkdGhpcywkaWQsJycsCgkJCQkJCSAnZGVmYXVsdF9saXN0X2FjdGl2aXRpZXNfdGVtcGxhdGVfY29udGVudHMnLAoJCQkJCQkgJ2FkbWluX3RlbXBsYXRlcycsJ2RlZmF1bHRfdGVtcGxhdGVzJywKCQkJCQkJICR0aGlzLT5MYW5nKCdzeXNkZmx0X2xpc3RfYWN0aXZpdGllc190ZW1wbGF0ZScpLAoJCQkJCQkgJ29yaWdfbGlzdF9hY3Rpdml0aWVzLnRwbCcpOwoKZWNobyBjZ2VfdGVtcGxhdGVfYWRtaW46OmdldF9zdGFydF90ZW1wbGF0ZV9mb3JtKCR0aGlzLCRpZCwnJywKCQkJCQkJICdkZWZhdWx0X3ZpZXdfYWN0aXZpdHlfdGVtcGxhdGVfY29udGVudHMnLAoJCQkJCQkgJ2FkbWluX3RlbXBsYXRlcycsJ2RlZmF1bHRfdGVtcGxhdGVzJywKCQkJCQkJICR0aGlzLT5MYW5nKCdzeXNkZmx0X3ZpZXdfYWN0aXZpdHlfdGVtcGxhdGUnKSwKCQkJCQkJICdvcmlnX3ZpZXdfYWN0aXZpdHkudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_keys_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLy8KLy8gaW5pdGlhbGl6ZQovLwokcXBhcm1zID0gYXJyYXkoKTsKCi8vIAovLyBoYW5kbGUgZm9ybSBzdWJtaXNzaW9uCi8vIAoKLy8gCi8vIGdpdmUgZXZlcnl0aGluZyB0byBzbWFydHkKLy8KJGRhdGEgPSBjZ3NhX2FwaWtleTo6bG9hZF9ieV9jcml0ZXJpYSgkcGFyYW1zKTsKaWYoIGNvdW50KCRkYXRhKSApCiAgewogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrICkKICAgICAgewoJJHJvdyA9JiAkZGF0YVskaV07CglpZiggJHJvd1snYWN0aXZlJ10gKQoJICB7CgkgICAgJHJvd1snYWN0aXZlX2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl90b2dnbGVhY3RpdmVfYXBpa2V5JywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ3NldF9pbmFjdGl2ZScpLAoJCQkJCQkJICdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLGFycmF5KCdhaWQnPT4kcm93WydpZCddLCdzdGF0dXMnPT4wKSwnJywkdGhpcy0+TGFuZygnYXNrX3NldGluYWN0aXZlJykpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkcm93WydhY3RpdmVfbGluayddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX3RvZ2dsZWFjdGl2ZV9hcGlrZXknLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnc2V0X2FjdGl2ZScpLAoJCQkJCQkJICdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLGFycmF5KCdhaWQnPT4kcm93WydpZCddLCdzdGF0dXMnPT4xKSk7CgkgIH0KCSRyb3dbJ2VkaXRfdXJsJ10gPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX2VkaXRfYXBpa2V5JywkcmV0dXJuaWQsYXJyYXkoJ2FpZCc9PiRyb3dbJ2lkJ10pKTsKCSRyb3dbJ2VkaXRfbGluayddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2VkaXRfYXBpa2V5JywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2VkaXQnKSwnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKCQkJCQkJICAgYXJyYXkoJ2FpZCc9PiRyb3dbJ2lkJ10pKTsKCSRyb3dbJ2RlbGV0ZV9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZGVsZXRlX2FwaWtleScsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdkZWxldGUnKSwnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLAoJCQkJCQkgICAgIGFycmF5KCdhaWQnPT4kcm93WydpZCddKSwnJywkdGhpcy0+TGFuZygnYXNrX2RlbGV0ZScpKTsKICAgICAgfQogICAgJHNtYXJ0eS0+YXNzaWduKCdhcGlrZXlzJywkZGF0YSk7CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCdhZGRfbGluaycsJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2VkaXRfYXBpa2V5JywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FkZF9hcGlrZXknKSwKCQkJCQkJICAnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLGFycmF5KCksJycsJycsZmFsc2UpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fa2V5c190YWIudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_leaderboardsettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlbGVhZGVyYm9hcmRzZXR0aW5ncycpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnRlcnZhbF91cGRhdGVsZWFkZXJib2FyZHMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnRlcnZhbF91cGRhdGVsZWFkZXJib2FyZHMnLDE1KSk7CiRzbWFydHktPmFzc2lnbignaW50ZXJ2YWxfdXBkYXRlYmFkZ2VzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW50ZXJ2YWxfdXBkYXRlYmFkZ2VzJywzMCkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2xlYWRlcmJvYXJkc2V0dGluZ3NfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_leaderboards_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CgokbGVhZGVyYm9hcmRzID0gY2dzYV9sZWFkZXJib2FyZDo6Z2V0X2FsbCgpOwppZiggaXNfYXJyYXkoJGxlYWRlcmJvYXJkcykgJiYgY291bnQoJGxlYWRlcmJvYXJkcykgKSB7CiAgJHNtYXJ0eS0+YXNzaWduKCdsZWFkZXJib2FyZHMnLCRsZWFkZXJib2FyZHMpOwp9CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2xlYWRlcmJvYXJkc190YWIudHBsJyk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_list_activities_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgcmV0dXJuOwoKZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJycsJ2xpc3RfYWN0aXZpdGllcycsCgkJCSAgICAgJ2RlZmF1bHRfbGlzdF9hY3Rpdml0aWVzX3RlbXBsYXRlX2NvbnRlbnRzJywKCQkJICAgICAnbGlzdF9hY3Rpdml0aWVzJywKCQkJICAgICAnY3VycmVudF9saXN0X2FjdGl2aXRpZXNfdGVtcGxhdGUnLAoJCQkgICAgICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRlZGl0X2xpc3RhY3Rpdml0aWVzX3RlbXBsYXRlJyksJycsJ2FkbWluX3RlbXBsYXRlcycpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_list_checkins_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgcmV0dXJuOwoKZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJycsJ2xpc3RfY2hlY2tpbnMnLAoJCQkgICAgICdkZWZhdWx0X2xpc3RfY2hlY2tpbl90ZW1wbGF0ZV9jb250ZW50cycsCgkJCSAgICAgJ2xpc3RfY2hlY2tpbnMnLAoJCQkgICAgICdjdXJyZW50X2xpc3RfY2hlY2tpbnNfdGVtcGxhdGUnLAoJCQkgICAgICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRlZGl0X2xpc3RjaGVja2luc190ZW1wbGF0ZScpLCcnLCdhZG1pbl90ZW1wbGF0ZXMnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_locationsettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlbG9jYXRpb25zZXR0aW5ncycpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0dXNlcycsCgkJYXJyYXkoJ2RyYWZ0Jz0+JHRoaXMtPkxhbmcoJ2RyYWZ0JyksCgkJICAgICAgJ3B1Ymxpc2hlZCc9PiR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ25ld2xvY2F0aW9uX3N0YXR1cycsCgkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX3N0YXR1cycsJ2RyYWZ0JykpOwokc21hcnR5LT5hc3NpZ24oJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl9ncm91cHMnLAoJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCduZXdsb2NhdGlvbl9ub3RpZmljYXRpb25fZ3JvdXBzJykpOwokc21hcnR5LT5hc3NpZ24oJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl9zdWJqZWN0JywKCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3N1YmplY3QnKSk7CiRzbWFydHktPmFzc2lnbignbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX2lzaHRtbCcsCgkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl9pc2h0bWwnKSk7CiRzbWFydHktPmFzc2lnbignbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3RlbXBsYXRlJywKCQkkdGhpcy0+R2V0VGVtcGxhdGUoJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl90ZW1wbGF0ZScpKTsKJHNtYXJ0eS0+YXNzaWduKCduZXdsb2NhdGlvbl9hbGxvdycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ25ld2xvY2F0aW9uX2FsbG93JywxKSk7CiRzbWFydHktPmFzc2lnbignbmV3bG9jYXRpb25fYWxsb3dlZGl0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbmV3bG9jYXRpb25fYWxsb3dlZGl0JywxKSk7CiRzbWFydHktPmFzc2lnbignbmV3bG9jYXRpb25fdGltZWxpbWl0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbmV3bG9jYXRpb25fdGltZWxpbWl0Jyw2MCkpOwokc21hcnR5LT5hc3NpZ24oJ25ld2xvY2F0aW9uX251bWxpbWl0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbmV3bG9jYXRpb25fbnVtbGltaXQnLDApKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fbG9jYXRpb25zZXR0aW5nc3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_settings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCi8vCi8vIGluaXRpYWxpemUKLy8KCgovLwovLyBoYW5kbGUgZm9ybSBkYXRhCi8vCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXRfc2V0dGluZ3MnXSkgKSB7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScsdHJpbSgkcGFyYW1zWydmcmllbmRseW5hbWUnXSkpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsb2NhdGlvbnJlcXVpcmVkJywoaW50KSRwYXJhbXNbJ2xvY2F0aW9ucmVxdWlyZWQnXSk7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NoZWNraW5yYXRlbGltaXRpbmcnXSkgKSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2hlY2tpbnJhdGVsaW1pdGluZycsaW1wbG9kZSgnLCcsJHBhcmFtc1snY2hlY2tpbnJhdGVsaW1pdGluZyddKSk7CiAgfQogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjaGVja2lucmF0ZWxpbWl0aW5nX2J5bG9jYXRpb24nLHRyaW0oJHBhcmFtc1snY2hlY2tpbnJhdGVsaW1pdGluZ19ieWxvY2F0aW9uJ10pKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2hlY2tpbnJhdGVsaW1pdGluZ19ieXRpbWUnLHRyaW0oJHBhcmFtc1snY2hlY2tpbnJhdGVsaW1pdGluZ19ieXRpbWUnXSkpOwogIGlmKCBpc3NldCgkcGFyYW1zWydjZF9jYXRlZ29yaWVzX2FwcHJvdmVkY2hlY2tpbnMnXSkgKSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2RfY2F0ZWdvcmllc19hcHByb3ZlZGNoZWNraW5zJyxzZXJpYWxpemUoJHBhcmFtc1snY2RfY2F0ZWdvcmllc19hcHByb3ZlZGNoZWNraW5zJ10pKTsKICB9CiAgZWxzZSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2RfY2F0ZWdvcmllc19hcHByb3ZlZGNoZWNraW5zJywnJyk7CiAgfQogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjZF9hcHByb3ZlX3B3ZmllbGQnLChpbnQpJHBhcmFtc1snY2RfYXBwcm92ZV9wd2ZpZWxkJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjZF9hcHByb3ZlX3VzZXJmaWVsZCcsKGludCkkcGFyYW1zWydjZF9hcHByb3ZlX3VzZXJmaWVsZCddKTsKfQoKLy8KLy8gZ2l2ZSB2ZXJ5dGhpbmcgdG8gc21hcnR5Ci8vCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zZXR0aW5ncycpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdmcmllbmRseW5hbWUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcmllbmRseW5hbWUnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2xvY2F0aW9ucmVxdWlyZWQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdsb2NhdGlvbnJlcXVpcmVkJywwKSk7CiRzbWFydHktPmFzc2lnbignY2hlY2tpbnJhdGVsaW1pdGluZycsZXhwbG9kZSgnLCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NoZWNraW5yYXRlbGltaXRpbmcnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2NoZWNraW5yYXRlbGltaXRpbmdfb3B0aW9ucycsCgkJYXJyYXkoJ2J5bG9jYXRpb24nPT4kdGhpcy0+TGFuZygnY2hlY2tpbnJhdGVsaW1pdGluZ19ieWxvY2F0aW9uJyksCgkJICAgICAgJ2J5dGltZSc9PiR0aGlzLT5MYW5nKCdjaGVja2lucmF0ZWxpbWl0aW5nX2J5dGltZScpKSk7CiRzbWFydHktPmFzc2lnbignY2hlY2tpbnJhdGVsaW1pdGluZ19ieWxvY2F0aW9uJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2hlY2tpbnJhdGVsaW1pdGluZ19ieWxvY2F0aW9uJywxKSk7CiRzbWFydHktPmFzc2lnbignY2hlY2tpbnJhdGVsaW1pdGluZ19ieXRpbWUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjaGVja2lucmF0ZWxpbWl0aW5nX2J5dGltZScsMTApKTsKCi8vIENvbXBhbnlEaXJlY3RvcnkgQ2F0ZWdvcmllcwokdG1wID0gY2RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKFRSVUUsVFJVRSk7CmlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAkc21hcnR5LT5hc3NpZ24oJ2NkX2NhdGVnb3JpZXMnLCR0bXApOwogfQoKJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjZF9jYXRlZ29yaWVzX2FwcHJvdmVkY2hlY2tpbnMnKTsKaWYoICR0bXAgKSAkdG1wID0gdW5zZXJpYWxpemUoJHRtcCk7IGVsc2UgJHRtcCA9IGFycmF5KCk7CiRzbWFydHktPmFzc2lnbignY2RfY2F0ZWdvcmllc19hcHByb3ZlZGNoZWNraW5zJywkdG1wKTsKCi8vIENvbXBhbnlEaXJlY3RvcnkgZmllbGRkZWZzCiR0bXAgPSBjZF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhGQUxTRSxGQUxTRSk7CmlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAkdG1wMiA9IGFycmF5KCk7CiAgJHRtcDJbLTFdID0gJHRoaXMtPkxhbmcoJ25vbmUnKTsKICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKICAgIGlmKCAkdG1wWyRpXVsndHlwZSddICE9ICd0ZXh0Ym94JyApIGNvbnRpbnVlOwogICAgaWYoICR0bXBbJGldWydwdWJsaWMnXSApIGNvbnRpbnVlOwogICAgJHRtcDJbJHRtcFskaV1bJ2lkJ11dID0gJHRtcFskaV1bJ25hbWUnXTsKICB9CiAgaWYoIGNvdW50KCR0bXAyKSApIHsKICAgICRzbWFydHktPmFzc2lnbignY2RfZmllbGRkZWZzJywkdG1wMik7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2NkX2FwcHJvdmVfcHdmaWVsZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NkX2FwcHJvdmVfcHdmaWVsZCcsLTEpKTsKICAgICRzbWFydHktPmFzc2lnbignY2RfYXBwcm92ZV91c2VyZmllbGQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjZF9hcHByb3ZlX3VzZXJmaWVsZCcsLTEpKTsKICB9Cn0KCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fc2V0dGluZ3NfdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_usersettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIHJldHVybjsKCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZldXNlcnNldHRpbmdzJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiRzbWFydHktPmFzc2lnbignZmV1Z3JvdXBzJyxhcnJheV9mbGlwKCRmZXUtPkdldEdyb3VwTGlzdCgpKSk7CiRzbWFydHktPmFzc2lnbignZmV1X3VzZXJncm91cCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZldV91c2VyZ3JvdXAnLC0xKSk7CiRzbWFydHktPmFzc2lnbignZmV1X29uZGVsZXRlX2NsZWFuY2hlY2tpbnMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmZXVfb25kZWxldGVfY2xlYW5jaGVja2lucycsMSkpOwokc21hcnR5LT5hc3NpZ24oJ2ZldV90YWdnZWRfcHJpb3JpdHknLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmZXVfdGFnZ2VkX3ByaW9yaXR5Jyxub3RpZmljYXRpb25fbWVzc2FnZTo6UFJJT1JJVFlfTk9STUFMKSk7CiRzbWFydHktPmFzc2lnbignZmV1X3RhZ2dlZF9zdWJqZWN0JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmV1X3RhZ2dlZF9zdWJqZWN0JykpOwokc21hcnR5LT5hc3NpZ24oJ2ZldV90YWdnZWRfdHBsJywkdGhpcy0+R2V0VGVtcGxhdGUoJ2ZldV90YWdnZWRfdHBsJykpOwoKJHByaW9yaXRpZXMgPSBhcnJheSgpOwokcHJpb3JpdGllc1stMV0gPSAkdGhpcy0+TGFuZygnb2ZmJyk7CiRwcmlvcml0aWVzW25vdGlmaWNhdGlvbl9tZXNzYWdlOjpQUklPUklUWV9ISUdIXSA9ICR0aGlzLT5MYW5nKCdoaWdoJyk7CiRwcmlvcml0aWVzW25vdGlmaWNhdGlvbl9tZXNzYWdlOjpQUklPUklUWV9OT1JNQUxdID0gJHRoaXMtPkxhbmcoJ25vcm1hbCcpOwokcHJpb3JpdGllc1tub3RpZmljYXRpb25fbWVzc2FnZTo6UFJJT1JJVFlfTE9XXSA9ICR0aGlzLT5MYW5nKCdsb3cnKTsKJHNtYXJ0eS0+YXNzaWduKCdwcmlvcml0aWVzJywkcHJpb3JpdGllcyk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX3VzZXJzZXR0aW5nc190YWIudHBsJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_view_activity_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDEyIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkgcmV0dXJuOwoKZWNobyAkdGhpcy0+U2hvd1RlbXBsYXRlTGlzdCgkaWQsJycsJ3ZpZXdfYWN0aXZpdHknLAoJCQkgICAgICdkZWZhdWx0X3ZpZXdfYWN0aXZpdHlfdGVtcGxhdGVfY29udGVudHMnLAoJCQkgICAgICd2aWV3X2FjdGl2aXR5JywKCQkJICAgICAnY3VycmVudF92aWV3X2FjdGl2aXR5X3RlbXBsYXRlJywKCQkJICAgICAkdGhpcy0+TGFuZygndGl0bGVfYWRkZWRpdF92aWV3YWN0aXZpdHlfdGVtcGxhdGUnKSwnJywnYWRtaW5fdGVtcGxhdGVzJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/help.html.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGlzIGEgc29jaWFsIGFwcGxpY2F0aW9uIGZyYW1ld29yayBidWlsdCBvbiB0b3Agb2YgQ01TTVMuICBJdCBpcyBkZXNpZ25lZCB0byBhbGxvdyBtb2JpbGUgZGV2ZWxvcGVycyB0byBidWlsZCBzbWFsbCB0byBtZWRpdW0gc2NhbGUgc3BlY2lhbGl6ZWQgc29jaWFsIGFwcGxpY2F0aW9ucyBhbmQgd2Vic2l0ZXMuICBpdCBjYW4gYmUgdXNlZCBmb3IgYWxsb3dpbmcgbW9iaWxlIHVzZXJzIHRvIGFkZCBvciBlZGl0IGxvY2F0aW9uIGluZm9ybWF0aW9uLCBtYW5hZ2UgZnJpZW5kc2hpcHMsIGFuZCBjcmVhdGUgdGltZSByZWxhdGVkIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gYSBsb2NhdGlvbi48L3A+CjxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgUkVTVEZVTCBBUEkgdG8gYWxsb3cgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHNvY2lhbCBkYXRhLCBhbmQgZm9yIGRpc3BsYXlpbmcgc29tZSBvZiB0aGF0IGRhdGEgb24gdGhlIENNU01TIHBvd2VyZWQgd2Vic2l0ZS48L3A+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGhhdmUgbXVjaCBmdW5jdGlvbmFsaXR5IG9mIGl0cyBvd24sIGl0IGlzIGRlc2lnbmVkIHRvIHByaW1hcmx5IHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCBhIGN1c3RvbSBkZXZlbG9wZWQgbW9iaWxlIGFwcGxpY2F0aW9uICh3aGljaCB5b3UgYXJlIGZyZWUgdG8gY3JlYXRlKS48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiA8bGk+T25lIEluc3RhbGwgLSBNYW55IEFQUFMKICAgPHVsPgogICAgIDxsaT5VbmlxdWUgQVBJIEtleXMsIHdpdGggZXhwaXJ5PC9saT4KICAgICA8bGk+QWR2YW5jZWQgU2VjdXJpdHkuPC9saT4KICAgICA8bGk+QXRvbWljIHBlcm1pc3Npb25zIG1vZGVsLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPlVzZXJzIEFQSQogICA8cD5UaGUgVXNlcnMgQVBJIGFsbG93cyBxdWVyeWluZywgcmVnaXN0ZXJpbmcsIGxvZ2dpbmcgaW4sIGxvZ2dpbmcgb3V0LCBhbmQgbW9kaWZ5aW5nIG9mIGEgdXNlciBhY2NvdW50LiAgSXQgdXNlcyB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUgZm9yIGF1dGhlbnRpY2F0aW9uLiAgVGhpcyBpcyB0aGUgcHJpbWFyeSBtZWNoYW5pc20gZm9yIGF1dGhlbnRpY2F0aW5nIHRvIHRoZSBzeXN0ZW0gKG90aGVyIHRoYW4gdGhlIEFQSSBrZXkpLiAgT25seSBhdXRoZW50aWNhdGVkIHVzZXJzIGNhbiBjcmVhdGUgbG9jYXRpb25zLCBhZGQgY2hlY2tpbmdzLCBlZGl0IGZyaWVuZCByZWxhdGlvbnNoaXBzIGV0Yy48L3A+CiAgIDx1bD4KICAgICA8bGk+UmVnaXN0ZXIgYSBuZXcgdXNlciA8ZW0+KFJFR0lTVEVSKTwvZW0+PC9saT4KICAgICA8bGk+TG9naW4gYW4gZXhpc3RpbmcgdXNlciA8ZW0+KExPR0lOKTwvZW0+PC9saT4KICAgICA8bGk+UElORyB0aGUgc2VydmVyIChrZWVwIGxvZ2luIHNlc3Npb24gYWxpdmUpIDxlbT4oUElORyk8L2VtPjwvbGk+CiAgICAgPGxpPkxvZ291dCBmcm9tIHRoZSBzeXN0ZW0gPGVtPihMT0dPVVQpPC9lbT48L2xpPgogICAgIDxsaT5SZXRyaWV2ZSB1c2VyIGluZm9ybWF0aW9uIChjdXJyZW50IHVzZXIpIDxlbT4oR0VUSU5GTyk8L2VtPjwvbGk+CiAgICAgPGxpPlJldHJpZXZlIHVzZXIgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIChjdXJyZW50IHVzZXIpIDxlbT4oUFJPUEVSVElFUyk8L2VtPjwvbGk+CiAgICAgPGxpPlNldCB1c2VyIGluZm9ybWF0aW9uIG9yIHByb3BlcnRpZXMgKGN1cnJlbnQgdXNlcikgPGVtPihTRVRQUk9QUyk8L2VtPjwvbGk+CiAgICAgPGxpPlJldHJpZXZlIHVzZXIgaGlzdG9yeSAoY3VycmVudCB1c2VyKSA8ZW0+KEhJU1RPUlkpPC9lbT48L2xpPgogICAgIDxsaT5MaXN0IFVzZXJzICh3aXRoIGJhc2ljIGZpbHRlcmluZykgPGVtPihMSVNUKTwvZW0+PC9saT4KICAgICA8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij5UT0RPOjwvc3Bhbj4gRGVsZXRlIGN1cnJlbnQgdXNlciA8ZW0+KERFTEVURSk8L2VtPjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPkxvY2F0aW9ucyBBUEkKICAgICA8cD5UaGUgbG9jYXRpb25zIG1lY2hhbmlzbSB1c2VzIHRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSB0byBtYW5hZ2UgYW5kIHN0b3JlIGRhdGEuICBMb2NhdGlvbnMgYWRkZWQgdmlhIHRoZSBSRVNURlVMIGFwaSBjYW4gYmUgbGlzdGVkIHVzaW5nIHRoZSBub3JtYWwgbWVjaGFuaXNtcyBpbiBDb21wYW55RGlyZWN0b3J5LiBTb21lIG9mIHRoZSBiYXNpYyBmZWF0dXJlcyBhcmU6PC9wPgogIDx1bD4KICAgICA8bGk+RmVhdHVyZTogUmF0ZSBMaW1pdGluZzwvbGk+CiAgICAgPGxpPkZlYXR1cmU6IFBob3RvIFVwbG9hZHM8L2xpPgogICAgIDxsaT5GZWF0dXJlOiBPcHRpb25hbCBBcHByb3ZhbDwvbGk+CiAgICAgPGxpPlJldHJpZXZlIGhpZXJhcmNoeSBsaXN0IDxlbT4oSElFUkFSQ0hZIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPlJldHJpZXZlIGNhdGVnb3J5IGxpc3QgPGVtPihDQVRFR09SSUVTIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkxpc3QgbG9jYXRpb25zICh3aXRoIGZpbHRlcmluZykgPGVtPihMSVNUIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkdldCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGxvY2F0aW9uIDxlbT4oR0VUIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkFkZCBhIGxvY2F0aW9uIDxlbT4oQUREIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkVkaXQgaW5mb3JtYXRpb24gYWJvdXQgYSBsb2NhdGlvbiA8ZW0+KEVESVQgQVBJIEZ1bmN0aW9uKTwvZW0+PC9saT4KICAgICA8bGk+QXR0YWNoIGEgcGhvdG8gdG8gYSBsb2NhdGlvbiA8ZW0+KFBIT1RPVVBMT0FEIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPlJlbW92ZSBhIHBob3RvIGZyb20gYSBsb2NhdGlvbiA8ZW0+KFBIT1RPREVMRVRFIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+ICAgICAKICAgICA8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij5UT0RPOjwvc3Bhbj4gRGVsZXRlIGEgbG9jYXRpb24gPGVtPihERUxFVEUpPC9lbT48L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPkNoZWNraW5zIEFQSQogIDxwPlRoZSBDaGVja2lucyBtZWNoYW5pc20gYWxsb3dzIGEgbG9nZ2VkIGluIHVzZXIgdG8gc2F5IHRoYXQgdGhleSB3ZXJlIEFUIGEgc3BlY2lmaWMgbG9jYXRpb24gYXQgYSBzcGVjaWZpYyB0aW1lLjwvcD4KICA8dWw+CiAgICAgPGxpPkZlYXR1cmU6IEFjdGl2aXR5IGNhcGFiaWxpdGllcy48L2xpPgogICAgIDxsaT5GZWF0dXJlOiBPcHRpb25hbCBBcHByb3ZhbDwvbGk+CiAgICAgPGxpPkZlYXR1cmU6IEVuaGFuY2VkIHNlY3VyaXR5PC9saT4KICAgICA8bGk+RmVhdHVyZTogUmF0ZSBMaW1pdGluZyBhbmQgU3BhbSBwcm90ZWN0aW9uPC9saT4KICAgICA8bGk+QWRkIGEgY2hlY2tpbiA8ZW0+KEFERCBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5SZXRyaWV2ZSBhIHNpbmdsZSBjaGVja2luIDxlbT4oR0VUIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkRlbGV0ZSBhIHNpbmdsZSBjaGVja2luIDxlbT4oREVMIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkFwcHJvdmUgYSBkcmFmdCBjaGVja2luIDxlbT4oQVBQUk9WRSBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5FZGl0IGEgc2luZ2xlIGNoZWNraW4gPGVtPihFRElUIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkZpbmQgY2hlY2tpbnMgZm9yIGEgY2VydGFpbiBsb2NhdGlvbiAod2l0aCBwYWdpbmF0aW9uIGFuZCB0aW1lIGxpbWl0aW5nKSA8ZW0+KEJZTE9DQVRJT04gQVBJIEZ1bmN0aW9uKTwvZW0+PC9saT4KICAgICA8bGk+RmluZCBjaGVja2lucyBmcm9tIGZyaWVuZHMgKHdpdGggcGFnaW5hdGlvbiBhbmQgdGltZSBsaW1pdGluZykgPGVtPihGUklFTkRTIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+VE9ETzo8L3NwYW4+IEZpbmQgY2hlY2tpbnMgYnkgYWN0aXZpdHkuPC9saT4KICA8L3VsPgogPC9saT4KIDxsaT5GcmllbmRzIEFQSQogIDxwPlRoZSBmcmllbmRzIG1lY2hhbmlzbSBhZGRzIHRoZSBzb2NpYWwgcGFydCB0byB0aGUgQVBJLiAgVXNlcnMgY2FuIG1hbmFnZSBhIGZyaWVuZHMgbGlzdCwgYXBwcm92ZSBhbmQgZGVueSBmcmllbmQgcmVxdWVzdHMsIGFuZCBzZWUgd2hhdCB0aGVpciBmcmllbmRzIGFyZSBkb2luZyB3aXRoIHRoZSBhcHBsaWNhdGlvbi48L3A+CiAgPHVsPgogICAgIDxsaT5MaXN0IEZyaWVuZHMgKGZvciB0aGUgY3VycmVudCB1c2VyKSA8ZW0+KExJU1QgQVBJIEZ1bmN0aW9uKTwvZW0+PC9saT4KICAgICA8bGk+UmVtb3ZlIGEgY3VycmVudCBmcmllbmQgZnJvbSB0aGUgbGlzdCAoZm9yIHRoZSBjdXJyZW50IHVzZXIpIDxlbT4oREVMIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPlN1Z2dlc3QgRnJpZW5kcyAoZm9yIHRoZSBjdXJyZW50IHVzZXIpIDxlbT4oU1VHR0VTVCBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5WaWV3IGEgbGlzdCBvZiBmcmllbmRzaGlwIHJlcXVlc3RzIChmb3IgdGhlIGN1cnJlbnQgdXNlcikgPGVtPihSRVFVRVNUTElTVCBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5TZW5kIGEgZnJpZW5kIHJlcXVlc3QgdG8gYW5vdGhlciB1c2VyIDxlbT4oUkVRVUVTVCBBUEkgRnVuY3Rpb24pPC9lbT48L2xpPgogICAgIDxsaT5BcHByb3ZlIGEgZnJpZW5kIHJlcXVlc3QgZnJvbSBhbm90aGVyIHVzZXIgPGVtPihBUFBST1ZFIEFQSSBGdW5jdGlvbik8L2VtPjwvbGk+CiAgICAgPGxpPkRlbnkgYSBmcmllbmQgcmVxdWVzdCBmcm9tIGFub3RoZXIgdXNlciA8ZW0+KERFTlkgQVBJIEZ1bmN0aW9uKTwvZW0+PC9saT4KICA8L3VsPgogPC9saT4KIDxsaT5MZWFkZXJib2FyZCAvIEJhZGdlcwogICA8cD5UaGUgTGVhZGVyYm9hcmQgLyBCYWRnZXMgZnVuY3Rpb25hbGl0eSBhbGxvd3MgcmV3YXJkaW5nIHVzZXJzIGZvciB1c2luZyB5b3VyIGFwcGxpY2F0aW9uLjwvcD4KICAgPHVsPgogICA8bGk+Q3JlYXRlIG51bWVyb3VzIGxlYWRlcmJvYXJkcyBiYXNlZCBvbiBudW1lcm91cyBjcml0ZXJpdW0sIGluY2x1ZGluZyBsb2NhdGlvbiBhbmQgYWN0aXZpdHkuPC9saT4KICAgPGxpPlNjb3JlcyBmb3IgZWFjaCBsZWFkZXJib2FyZCBhcmUgY2FsY3VsYXRlZCByZWd1bGFybHkgZnJvbSB1bnByb2Nlc3NlZCBjaGVja2lucywgdXNpbmcgdGhlIENHSm9ibWdyPC9saT4KICAgPGxpPkNyZWF0ZSBudW1lcm91cyBiYWRnZXMgb24gYW55IGxlYWRlcmJvYXJkLjwvbGk+CiAgIDxsaT5CYWRnZXMgY2FuIGJlIHVuaXF1ZSAob25seSBvbmUgbWVtYmVyIGNhbiBwb3Nlc3MgdGhlIGJhZGdlIGF0IGFueSBvbmUgdGltZSksIG9yIG5vbiB1bmlxdWUgYWxsb3dpbmcgbnVtZXJvdXMgbWVtYmVycy48L2xpPgogICA8bGk+QmFkZ2VzIGFyZSBiYXNlZCBvbiBzY29yZSBmcm9tIGEgbGVhZGVyYm9hcmQsIGFuZCBjYW4gaGF2ZSBhIG1pbmltdW0sIGFuZCBvcHRpb25hbGx5IGEgbWF4aW11bSBzY29yZS48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5Ob3RpZmljYXRpb25zIGFuZCBFdmVudHM6CiAgIDxwPlRoaXMgbW9kdWxlIGlzIGNhcGFiaWxlIG9mIHNlbmRpbmcgbm90aWZpY2F0aW9ucyAodXNpbmcgdGhlIENHTm90aWZpZXIgYW5kIG90aGVyIHN1cHBvcnRpbmcgbW9kdWxlcykgdG8gcHVibGlzaCB3aGVuIGJhZGdlcyBhcmUgYXdhcmRlZC48L3A+CiAgIDxwPlRoZSBtb2R1bGUgc2VuZHMgZXZlbnRzIGxvZ2ljYWwgcGxhY2VzIGluIHRoZSBjb2RlIGFsbG93aW5nIG90aGVyIG1vZHVsZXMgb3IgdXNlciBkZWZpbmVkIHRhZ3MgdG8gcGVyZm9ybSBtb3JlIGZ1bmN0aW9uYWxpdHkuPC9wPgogPC9saT4KIDxsaT5Gcm9udGVuZCBkYXRhIGRpc3BsYXk6IDwvZW0+KHRvZG8pPC9lbT4KIDwvbGk+CjwvdWw+CjxoMz5Ib3cgZG8gSSB1c2UgaXQ6PC9oMz4KPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIG1vZHVsZSBpcyBmb3IgYWR2YW5jZWQgdXNlcnMgb25seS4gIEluIG9yZGVyIHRvIHByb3Blcmx5IHVzZSB0aGlzIG1vZHVsZSB5b3Ugd2lsbCBwcm9iYWJseSBoYXZlIHRvIGNyZWF0ZSAob3IgaGF2ZSBjcmVhdGVkKSBBIG1vYmlsZSBjbGllbnQgdGhhdCBpbnRlcmFjdHMgd2l0aCB0aGlzIG1vZHVsZXMgUkVTVEZVTCBBUEkuIEEgU2FtcGxlIFBIUCBjb21tYW5kIGxpbmUgY2xpZW50IGFwcGxpY2F0aW9uIGlzIGluY2x1ZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLjwvcD4KPHA+QWZ0ZXIgaW5zdGFsbGF0aW9uIGFuZCBjb25maWd1cmF0aW9uIG9mIHRoaXMgbW9kdWxlLCB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUsIFRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSwgYW5kIGFueSBvdGhlciBkZXBlbmRhbnRzIHRoZXJlIGFyZSBhIGZldyBzdGVwcyB0byBmb2xsb3c6PC9wPgo8dWw+CiAgPGxpPkNyZWF0ZSBhbiBBUEkga2V5PC9saT4KICA8bGk+TW9kaWZ5IHRoZSBjbGllbnQucGhwIGFuZCBpbnNlcnQgdGhlIEFQSSBrZXkgY3JlYXRlZCBhYm92ZSBpbnRvIHRoZSBhcHByb3ByaWF0ZSBzZWN0aW9uIG9mIHRoZSBjb2RlLjwvbGk+CiAgPGxpPkNyZWF0ZSBhdCBsZWFzdCBvbmUgdXNlciBpbiBGRVU8L2xpPgogIDxsaT5DcmVhdGUgYXQgbGVhc3Qgb25lIHB1YmxpYyBsb2NhdGlvbiBpbiBDb21wYW55RGlyZWN0b3J5LCBmb3IgdGVzdGluZzwvbGk+CiAgPGxpPkxhdW5jaCB0aGUgcGhwIGNsaWVudCBhcHBsaWNhdGlvbi48L2xpPgo8L3VsPgo8aDM+U21hcnR5IEZ1bmN0aW9uczwvaDM+CjxwPlRPRE88L3A+CjxoMz5SZXF1aXJlbWVudHM8L2gzPgo8dWw+CiAgPGxpPkZFVSAtIExvZ2luIG1vcmUgdGhhbiBvbmNlIG11c3QgYmUgZW5hYmxlZC48L2xpPgogIDxsaT5QcmV0dHkgVVJMUyAobW9kX3Jld3JpdGUgb3IgaW50ZXJuYWwpIG11c3QgYmUgY29uZmlndXJlZC48L2xpPgogIDxsaT5UaGUgbW9iaWxlIGNsaWVudCBtdXN0IGhhdmUgY29va2llcyBjYXBhYmlsaXRpZXMuPC9saT4KICA8bGk+VGhlIENHSm9iTWdyIG1vZHVsZSBpcyByZXF1aXJlZCBmb3IgdGhlIGJhZGdlIGZ1bmN0aW9uYWxpdGllcy4gV2UgcmVjb21tZW5kIHRoYXQgbGVhZGVyYm9hcmRzIGJlIHVwZGF0ZWQgbW9yZSBmcmVxdWVudGx5IHRoYW4gYmFkZ2VzLiAgQnV0IG5vIG1vcmUgdGhhbiAzIG9yIDQgdGltZXMgcGVyIGhvdXIuICBJZGVhbCBpbnRlcnZhbHMgYXJlIGFwcHJveGltYXRlbHkgMjAgbWludXRlcyB0byB1cGRhdGUgbGVhZGVyYm9hcmRzLCBhbmQgMzAgbWludXRlcyBmb3IgdXBkYXRpbmcgYmFkZ2VzLjwvbGk+CiAgPGxpPlRoZSBDR0ZhdnMgbW9kdWxlIGlzIHJlcXVpcmVkIGZvciBtYWludGFpbmluZyBmcmllbmQgcmVsYXRpb25zaGlwcy48L2xpPgogIDxsaT5UaGUgZGVmYXVsdCAoc2FtcGxlKSB0ZW1wbGF0ZXMgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIHttb2R1bGVfYWN0aW9uX2xpbmt9IHBsdWdpbiBmcm9tIHRoZSBDR1NpbXBsZVNtYXJ0eSBsaWJyYXJ5LjwvbGk+CiAgPGxpPk51bWVyb3VzIGZpZWxkcyBtYXkgYmUgcmVxdWlyZWQgaW4gdGhlIENvbXBhbnlEaXJlY3RvcnkgYW5kL29yIEZFVSBtb2R1bGVzIHRvIGFsbG93IGNlcnRhaW4gZnVuY3Rpb25hbGl0eS4gIGkuZTogQW4gQWxidW0gZmllbGQgaXMgcmVxdWlyZWQgaW4gdGhlIENvbXBhbnlEaXJlY3RvcnkgbW9kdWxlIHRvIGFsbG93IHRoZSBQSE9UT1VQTE9BRCBhY3Rpb24gdG8gd29yay48L3A+CiAgPGxpPlRoZSBzYW1wbGUgUEhQIGNsaWVudCByZWxpZXMgb24gdGhlIGN1cmwgcGhwIGV4dGVuc2lvbnMuPC9saT4KICA8bGk+Rm9yIE5vdGlmaWNhdGlvbnMgdG8gd29yayB0aGUgQ0dOb3RpZmllciBtb2R1bGUsIGFuZCBvdGhlciBzdXBwb3J0aW5nIG1vZHVsZXMgbGlrZSAoQ0dUd2VldCwgYW5kIENHU01TKSBhcmUgbmVlZGVkLCBhbmQgbXVzdCBiZSBwcm9wZXJseSBjb25maWd1cmVkLjwvbGk+CjwvdWw+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIApzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgY2FsZ3V5XCdzCm1vZHVsZSBob21lcGFnZSBhdCA8YSBocmVmPSJodHRwOi8vY2FsZ3V5MTAwMC5jb20iPmNhbGd1eTEwMDAuY29tPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuPC9saT4gIAo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/asterisk.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKKSURBVDjLpZNdSBRRGIbnzOzubSxBRReBYhTRDziQQlKxbmoKItp0YVRUsBB2UVQsWdkfilHaj6GuZqEkhJaSf6knISqUYIgooogWS2uRwjFd25yZ3Xn7NlKS3bzp4jDMzHne73zPfCMAEP5nzbux6gU5UifwsE+AWSMos89DVczz4xpD8ArjkxUsMW4AwZ7InSWwetJh8Vzo1YzPviNYjfTmQL8rY+KSqI1fFJWYAKrsjjSvgPV4F/DsAGbqFyF0nSVOX2Xu0M3lwKMdCHdlgGDtW5kox23BqGFes2UdBeyD2ZYKgn1Tlcynt6YAPB/TDUkg2PNPB9H1s4pxozWZTlIIgjX9XipVL0CoaW0U9sVINGsF2ahm8l/9OkmWZg3shNWXC/TnwnzgwtdSUR27IDpn942cluSPxZIsRGXpt5eCTINg7Y9pNdy1DejbDjzMhNm+BQSrgXMS/1wi+UdOSQiUOeH32rgwc4PxSH8eMFSECC+A2Z0Ns5PAgXygNxPoTqdrFoz2dMy0bKLTuCk0B6HmjXh3hALINCdZCFYyTFaIKn0mTqa50baZNmZQgAvG/TSMlkjqp5MSHz4h+T8ct+HtYRteFdl5jMTxctFJsjSrLw/hDtfvEL01DQSrBDsXnMToIphPN66H0ZGJL2ckf7ApGejJglazCu+P2XwLBpDp8smG1dS/gonalSDTHjLtm7q1AehyIXA5AS8P2r1xAwhWvtcm0Bjn08Rlg0xrBDvJtHukdBnQuRU6SXxzdDGG9jpiJ3HsvKgEzkpasDEZE3VrMFwszVV6fciuTjWmYLQ8CYN7HNrTQocStwUynUiyWkgWJ9Nzf90Lj115vt/BB3c7vE8KHfNE/gKM7aCNx0eNYwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0EKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGl2ZSc7CiRsYW5nWydhZGRfYWN0aXZpdHknXSA9ICdBZGQgQWN0aXZpdHknOwokbGFuZ1snYWRkX2FwaWtleSddID0gJ0FkZCBuZXcgQVBJIEtleSc7CiRsYW5nWydhZGRfYmFkZ2UnXSA9ICdBZGQgYSBuZXcgQmFkZ2UnOwokbGFuZ1snYWRkX2JhZGdlX2Zvcl9sZWFkZXJib2FyZCddID0gJ0FkZCBCYWRnZSBmb3IgTGVhZGVyYm9hcmQnOwokbGFuZ1snYWRkX2xlYWRlcmJvYXJkJ10gPSAnQWRkIGEgbmV3IExlYWRlcmJvYXJkJzsKJGxhbmdbJ2FwaWtleSddID0gJ0FQSSBLZXknOwokbGFuZ1snYXBwbmFtZSddID0gJ0FwcCBOYW1lJzsKJGxhbmdbJ2Fza19kZWxldGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgaXRlbT8nOwokbGFuZ1snYXNrX2RlbGV0ZV9iYWRnZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBiYWRnZSwgYW5kIGFsbCBjb2xsZWN0ZWQgaW5mb3JtYXRpb24/JzsKJGxhbmdbJ2Fza19kZWxldGVfbGVhZGVyYm9hcmQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbGVhZGVyYm9hcmQsIGFuZCBhbGwgY29sbGVjdGVkIGluZm9ybWF0aW9uPyc7CgojQgokbGFuZ1snYm9keV90ZW1wbGF0ZSddID0gJ05vdGlmaWNhdGlvbiBCb2R5IFRlbXBsYXRlJzsKCiNDCiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY2hlY2tpbnJhdGVsaW1pdGluZ19ieWxvY2F0aW9uJ10gPSAnTGltaXQgQ2hlY2tpbnMgdG8gcHJveGltaXR5JzsKJGxhbmdbJ2NoZWNraW5yYXRlbGltaXRpbmdfYnl0aW1lJ10gPSAnTGltaXQgQ2hlY2tpbnMgYnkgZnJlcXVlbmN5JzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdDcmVhdGVkJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdDdXJyZW50IFZhbHVlJzsKCiNECiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snZGVsZXRlX2JhZGdlJ10gPSAnRGVsZXRlIEJhZGdlJzsKJGxhbmdbJ2Rlc2NyaWJlX2V2ZW50X09uQ2hlY2tpbiddID0gJ0V2ZW50IHNlbnQgYWZ0ZXIgYSBuZXcgY2hlY2tpbiBpcyBzYXZlZC4nOwokbGFuZ1snZGVzY3JpYmVfZXZlbnRfT25VcGRhdGVDaGVja2luJ10gPSAnRXZlbnQgc2VudCBhZnRlciBhbiBleGlzdGluZyBjaGVja2luIGlzIG1vZGlmaWVkIGFuZCBzYXZlZC4nOwokbGFuZ1snZGVzY3JpYmVfZXZlbnRfUHJlRGVsZXRlQ2hlY2tpbiddID0gJ0V2ZW50IHNlbnQgaW1tZWRpYXRlbHkgYmVmb3JlIGEgY2hlY2tpbiBpcyBwZXJtYW5lbnRseSBkZWxldGVkJzsKJGxhbmdbJ2Rlc2NyaWJlX2V2ZW50X1Bvc3REZWxldGVDaGVja2luJ10gPSAnRXZlbnQgc2VudCBpbW1lZGlhdGVseSBhZnRlciBhIGNoZWNraW4gaXMgcGVybWFuZW50bHkgZGVsZXRlZCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGlzYWJsZWQnOwokbGFuZ1snZHJhZnQnXSA9ICdEcmFmdCc7CgojRQokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZWRpdF9hcGlrZXknXSA9ICdFZGl0IEFQSSBLZXknOwokbGFuZ1snZWRpdF9iYWRnZXMnXSA9ICdFZGl0IEJhZGdlcyc7CiRsYW5nWydlZGl0X2JhZGdlJ10gPSAnRWRpdCBCYWRnZSc7CiRsYW5nWydlZGl0X2JhZGdlX2Zvcl9sZWFkZXJib2FyZCddID0gJ0VkaXQgQmFkZ2UgZm9yIExlYWRlcmJvYXJkJzsKJGxhbmdbJ2VkaXRfbGVhZGVyYm9hcmQnXSA9ICdFZGl0IExlYWRlcmJvYXJkJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRW1haWwnOwokbGFuZ1snZXJyb3JfYWN0aXZpdHlub3Rmb3VuZCddID0gJ0FjdGl2aXR5IG5vdCBmb3VuZCc7CiRsYW5nWydlcnJvcl9mYWlsZWQnXSA9ICdPcGVyYXRpb24gRmFpbGVkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0EgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3Jfbm9hY3Rpdml0aWVzJ10gPSAnVGhlcmUgYXJlIG5vIGFjdGl2aXRpZXMgZGVmaW5lZCc7CiRsYW5nWydlcnJvcl91cGxvYWQnXSA9ICdBIHByb2JsZW0gb2NjdXJyZWQgd2l0aCB0aGUgdXBsb2FkZWQgZmlsZSc7CiRsYW5nWydleHBpcmVzJ10gPSAnRXhwaXJlcyc7CgojRgokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBTb2NpYWwgQXBwIEZyYW1ld29yayc7CgojRwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVyYWwgU2V0dGluZ3MnOwoKI0gKJGxhbmdbJ2hlbHAnXSA9IDw8PEVPVApUT0RPCkVPVDsKJGxhbmdbJ2hpZ2gnXSA9ICdIaWdoJzsKCiNJCiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snaW5mb19hcHBuYW1lJ10gPSAnU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGhhdCBpcyBhbGxvd2VkIHRvIHVzZSB0aGlzIEFQSSc7CiRsYW5nWydpbmZvX2NkcHdmaWVsZCddID0gJ1NlbGVjdCB0aGUgQ29tcGFueURpcmVjdG9yeSBjdXN0b20gZmllbGQgdGhhdCBjb250YWlucyB0aGUgcGFzc3dvcmQgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHByb3ZlIGNoZWNraW5zIGZvciB0aGF0IGNvbXBhbnkuICBUaGlzIGZpZWxkIG11c3Qgbm90IGJlIHB1YmxpYy4gIElmIHRoZXJlIGlzIG5vIGZpZWxkIGxpc3QgYmVsb3cgaXQgY291bGQgYmUgYmVjYXVzZSB5b3UgaGF2ZSBub3QgY3JlYXRlZCBhIHN1aXRhYmxlIGZpZWxkIGRlZmluaXRpb24gaW4gdGhlIENvbXBhbnlEaXJlY3RvcnkgbW9kdWxlLiAgSWYgJnF1b3Q7Tm9uZSZxdW90OyBpcyBzZWxlY3RlZCwgdGhlbiBubyBhcHByb3ZhbCB3aWxsIGJlIHJlcXVpcmVkLic7CiRsYW5nWydpbmZvX2NoZWNraW5yYXRlbGltaXRpbmdfYnlsb2NhdGlvbiddID0gJ1doZW4gc3BlY2lmaWVkLCBhbmQgZ3JlYXRlciB0aGFuIHplcm8sIGRpc2FsbG93IGNoZWNraW5zIHRoYXQgYXJlIGZ1dGhlciBhd2F5IHRoYW4gdGhlIHNwZWNpZmllZCBkaXN0YW5jZSBmcm9tIHRoZSBsb2NhdGlvbic7CiRsYW5nWydpbmZvX2NoZWNraW5yYXRlbGltaXRpbmdfYnl0aW1lJ10gPSAnV2hlbiBzcGVjaWZpZWQsIGFuZCBncmVhdGVyIHRoYW4gemVybywgZGlzYWxsb3cgY2hlY2tpbnMgbW9yZSBmcmVxdWVudCB0aGFuIHRoZSBzcGVjaWZpZWQgdGltZSBsaW1pdCAoaW4gbWludXRlcykuJzsKJGxhbmdbJ2luZm9fZW1haWxhZGRyJ10gPSAnU3BlY2lmeSB0aGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgY29udGFjdCBwZXJzb25lbGwgZm9yIHRoaXMgYXBwJzsKJGxhbmdbJ2luZm9fZmV1X3VzZXJncm91cCddID0gJ1NlbGVjdCBhbiBGRVUgdXNlciBncm91cCBmb3IgbmV3bHkgcmVnaXN0ZXJlZCB1c2Vycy4gIFRoaXMgZ3JvdXAgd2lsbCBiZSB1c2VkIHRvIHNlbGVjdCB3aGljaCBwcm9wZXJ0aWVzIGFyZSBhdmFpbGFibGUgZm9yIHNldHRpbmcgYW5kIHJldHJpZXZhbC4gIEl0IGlzIG5vdCByZWNvbW1lbmRlZCB0aGF0IHlvdSBjaGFuZ2UgdGhpcyBzZXR0aW5nIGFmdGVyIHN0YXJ0aW5nIHRvIHJlZ2lzdGVyIHVzZXJzJzsKJGxhbmdbJ2luZm9fZnJpZW5kbHluYW1lJ10gPSAnU3BlY2lmeSB0aGUgbmFtZSBieSB3aGljaCB0aGlzIG1vZHVsZSBzaG91bGQgYXBwZWFyIGluIHRoZSBhZG1pbiBtZW51LiAgSWYgbm90IHNwZWNpZmllZCBhIGRlZmF1bHQgbmFtZSB3aWxsIGJlIHVzZWQnOwokbGFuZ1snaXRlbV9kZWxldGVkJ10gPSAnSXRlbSBEZWxldGVkJzsKJGxhbmdbJ2l0ZW1fZWRpdGVkJ10gPSAnSXRlbSBFZGl0ZWQnOwokbGFuZ1snaW5mb19pbnRlcnZhbF9sZWFkZXJib2FyZHMnXSA9ICdTcGVjaWZ5IHRoZSBpbnRlcnZhbCAoaW4gbWludXRlcykgaW4gd2hpY2ggbGVhZGVyYm9hcmRzIHNob3VsZCBiZSB1cGRhdGVkLiAgVGhpcyBpbnRlcnZhbCBpcyBvbmx5IGFwcHJveGltYXRlLCBhbmQgZGVwZW5kcyBvbiBob3cgb2Z0ZW4gdGhlIENHSm9iTWdyIHByb2Nlc3MgYWN0aW9uIGlzIGNhbGxlZCc7CiRsYW5nWydpbmZvX2ludGVydmFsX3VwZGF0ZWJhZGdlcyddID0gJ1NwZWNpZnkgdGhlIGludGVydmFsIChpbiBtaW51dGVzKSBpbiB3aGljaCBiYWRnZXMgc2hvdWxkIGJlIHVwZGF0ZWQuICBUaGlzIGludGVydmFsIGlzIG9ubHkgYXBwcm94aW1hdGUsIGFuZCBkZXBlbmRzIG9uIGhvdyBvZnRlbiB0aGUgQ0dKb2JNZ3IgcHJvY2VzcyBhY3Rpb24gaXMgY2FsbGVkJzsKJGxhbmdbJ2luZm9fbG9jYXRpb25fbm90aWZpY2F0aW9ucyddID0gJ0NvbmZpZ3VyZSBob3csIGlmIGFueSwgbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgc2VudCB3aGVuIGEgbG9jYXRpb24gaXMgYWRkZWQgb3IgZWRpdGVkJzsKJGxhbmdbJ2luZm9fbWF4X3Njb3JlJ10gPSAnPGVtPihvcHRpb25hbCk8L2VtPiBTcGVjaWZ5IGFuIG9wdGlvbmFsIG1heGltdW0gc2NvcmUgdGhhdCB1c2VycyBjYW4gaGF2ZSB0byBwb3Nlc3MgdGhpcyBiYWRnZSc7CiRsYW5nWydpbmZvX211bHRpcGxlYmFkZ2VzJ10gPSAnSWYgZW5hYmxlZCwgdXNlcnMgY2FuIHBvc2VzcyBtdWx0aXBsZSBiYWRnZXMgZnJvbSB0aGlzIGxlYWRlcmJvYXJkJzsKJGxhbmdbJ2luZm9fbWluX3Njb3JlJ10gPSAnU3BlY2lmeSBhIG1pbmltdW0gc2NvcmUgdGhhdCB1c2VycyBtdXN0IG9idGFpbiBmb3IgdGhpcyBsZWFkZXJib2FyZCBpbiBvcmRlciB0byByZWNlaXZlIHRoaXMgYmFkZ2UnOwokbGFuZ1snaW5mb19uZXdsb2NhdGlvbl9ncm91cHMnXSA9ICdTcGVjaWZ5IGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWRtaW4gZ3JvdXBzLiAgVGhlIG1lbWJlcnMgb2YgdGhlc2UgZ3JvdXBzICh3aG8gaGF2ZSB2YWxpZCBlbWFpbCBhZGRyZXNzZXMpIHdpbGwgYmUgbm90aWZpZWQgb2YgbmV3IGxvY2F0aW9ucyc7CiRsYW5nWydpbmZvX25vdGlmaWNhdGlvbiddID0gJzxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogTm90aWZpY2F0aW9ucyBjYW4gYmUgc2VudCB3aGVuIGEgdXNlciBpcyBhd2FyZGVkIGEgYmFkZ2UuIFBsZWFzZSBmaWxsIGluIHRoZSBkZXRhaWxzIG9mIHRoZSBub3RpZmljYXRpb24gKGlmIGRlc2lyZWQpLiAgTm8gbm90aWZpY2F0aW9uIHdpbGwgYmUgc2VudCBpZiB0aGUgcHJpb3JpdHkgaXMgc2V0IHRvICZxdW90O29mZiZxdW90OyBvciB0aGUgYm9keSBpcyBlbXB0eS4gIEFkZGl0aW9uYWxseSwgdGhlIENHTm90aWZpZXIgbW9kdWxlLCBhbmQgb25lIG9yIG1vcmUgbm90aWZpZXIgY2xpZW50IG1vZHVsZXMgKGkuZTogQ0dUd2VldCkgbXVzdCBiZSBpbnN0YWxsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQuICBTZWNvbmRseSwgc29tZSBub3RpZmljYXRpb24gbWV0aG9kcyBhcmUgb25seSBjYXBhYmxlIG9mIHNlbmRpbmcgYSBsaW1pdGVkIGFtb3VudCBvZiBjaGFyYWN0ZXJzLic7CiRsYW5nWydpbmZvX25vdGlmeV90byddID0gJ1NlbGVjdCBhIHVzZXIgcHJvZmlsZSB0byBzZW5kIHRoZSBub3RpZmljYXRpb24gdG8uICBJZiBhIHByb2ZpbGUgY2Fubm90IGJlIGZvdW5kIHRoYXQgbWF0Y2hlcyB0aGUgc2VsZWN0aW9uIG5vIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHNlbnQuICBTZWxlY3RpbmcgJnF1b3Q7RGVmYXVsdCBQcm9maWxlJnF1b3Q7IHdpbGwgdXNlIHRoZSBkZWZhdWx0IHByb2ZpbGUgZnJvbSB0aGUgQ0dOb3RpZmllciBtb2R1bGUuICBTZWxlY3RpbmcgJnF1b3Q7VXNlciBQcm9maWxlJnF1b3Q7IHdpbGwgdXNlIHRoZSB1c2VycyBwcm9maWxlIGlmIG9uZSBjYW4gYmUgZm91bmQuJzsKJGxhbmdbJ2luZm9fc2VsY29tcGFueSddID0gJ0VudGVyIGEgcG9ydGlvbiBvZiBhIGxvY2F0aW9uIG5hbWUgdG8gZmluZCBtYXRjaGluZyBlbnRyaWVzJzsKJGxhbmdbJ2luZm9fc2VsZWN0Y2RjYXRlZ29yaWVzX2FwcHJvdmFsJ10gPSAnU2VsZWN0IHdoaWNoIENvbXBhbnlEaXJlY3RvcnkgY2F0ZWdvcmllcyBmb3Igd2hpY2ggY2hlY2tpbiBhcHByb3ZhbCBpcyByZXF1aXJlZC4gSWYgbm8gY2F0ZWdvcmllcyBhcmUgc2VsZWN0ZWQsIHRoZW4gY2hlY2tpbiBhcHByb3ZhbCB3aWxsIG5vdCBiZSByZXF1aXJlZC4nOwokbGFuZ1snaW5mb19zdWJqZWN0J10gPSAnTm90IGFsbCBub3RpZmljYXRpb24gbWVjaGFuaXNtcyBzdXBwb3J0IHN1YmplY3RzLiAgSG93ZXZlciBpdCBpcyBhbHdheXMgYSBnb29kIGlkZWEgdG8gc3BlY2lmeSBvbmUnOwokbGFuZ1snaW5mb190YWdnZWR1c2VyX25vdGlmaWNhdGlvbnMnXSA9ICdTcGVjaWZ5IHRoZSBpbmZvcm1hdGlvbiBhcyB0byBob3cgdG8gbm90aWZ5IHVzZXJzIHRoYXQgd2VyZSB0YWdnZWQgaW4gYSBjaGVja2luJzsKJGxhbmdbJ2luZm9fdW5pcXVlJ10gPSAnSWYgc2VsZWN0ZWQsIG9ubHkgb25lIHVzZXIgY2FuIHBvc2VzcyB0aGlzIGJhZGdlIGZvciB0aGlzIGxlYWRlcmJvYXJkLiAgVGhlIHVzZXIgd2l0aCB0aGUgbWF4aW11bSBzY29yZSc7CiRsYW5nWydpbmZvX3VwbG9hZF9kaXNhYmxlZF9vbm5ldyddID0gJ1VwbG9hZGluZyBkaXNhYmxlZCB1bnRpbCB0aGUgaXRlbSBoYXMgYmVlbiBjcmVhdGVkIGluIHRoZSBkYXRhYmFzZSc7CgojSgoKCiNLCgoKI0wKJGxhbmdbJ2xibF9iYWNrJ10gPSAnQmFjayc7CiRsYW5nWydsYmxfaW50ZWdlciddID0gJ0ludGVnZXInOwokbGFuZ1snbGJsX25vdGlmeV9kZWZhdWx0X3Byb2ZpbGUnXSA9ICdEZWZhdWx0IFByb2ZpbGUnOwokbGFuZ1snbGJsX25vdGlmeV91c2VyX3Byb2ZpbGUnXSA9ICdVc2VyIFByb2ZpbGUnOwokbGFuZ1snbGJsX29iamVjdCddID0gJ09iamVjdCc7CiRsYW5nWydsYmxfc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWydsYmxfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMnOwokbGFuZ1snbGVhZGVyYm9hcmRzJ10gPSAnTGVhZGVyYm9hcmRzJzsKJGxhbmdbJ2xlYWRlcmJvYXJkX2FjdGl2aXR5J10gPSAnQWN0aXZpdHkgYmFzZWQgbGVhZGVyYm9hcmQnOwokbGFuZ1snbGVhZGVyYm9hcmRfY2hlY2tpbnMnXSA9ICdDaGVja2luIGJhc2VkIGxlYWRlcmJvYXJkJzsKJGxhbmdbJ2xlYWRlcmJvYXJkX2RlbGV0ZWQnXSA9ICdMZWFkZXJib2FyZCBkZWxldGVkJzsKJGxhbmdbJ2xlYWRlcmJvYXJkX2ZyaWVuZHMnXSA9ICdGcmllbmRzIGJhc2VkIGxlYWRlcmJvYXJkJzsKJGxhbmdbJ2xlYWRlcmJvYXJkX2xvY2F0aW9uJ10gPSAnTG9jYXRpb24gYmFzZWQgbGVhZGVyYm9hcmQnOwokbGFuZ1snbGlzdF9iYWRnZXMnXSA9ICdMaXN0IEJhZGdlcyBmb3IgTGVhZGVyYm9hcmQnOwokbGFuZ1snbG93J10gPSAnTG93JzsKCiNNCiRsYW5nWydtYXRjaF9hY3Rpdml0aWVzJ10gPSAnTWF0Y2ggdGhlc2UgYWN0aXZpdGllcyc7CiRsYW5nWydtYXRjaF9hY3Rpdml0eWNoaWxkcmVuJ10gPSAnQW5kIHRoZSBjaGlsZCBhY3Rpdml0aWVzJzsKJGxhbmdbJ21hdGNoX2hpZXJjaGlsZHJlbiddID0gJ0luY2x1ZGUgY2hpbGQgaGllcmFyY2hpZXM/JzsKJGxhbmdbJ21hdGNoX2xvY2F0aW9uaGllciddID0gJ0NoZWNraW4gbG9jYXRpb24gbXVzdCBiZSBpbiB0aGlzIGhpZXJhcmNoeSc7CiRsYW5nWydtYXRjaF9sb2NhdGlvbmNhdGVnb3J5J10gPSAnQ2hlY2tpbiBsb2NhdGlvbiBtdXN0IGJlIGluIG9uZSBvZiB0aGVzZSBjYXRlZ29yaWVzJzsKJGxhbmdbJ21hdGNoX2xvY2F0aW9uaWQnXSA9ICdDaGVja2luIG11c3QgYmUgZm9yIHRoaXMgbG9jYXRpb24nOwokbGFuZ1snbWF4X3Njb3JlJ10gPSAnTWF4IFNjb3JlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIGVuYWJsaW5nIGEgbW9iaWxlIHNvY2lhbCBzaXRlJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnTW9kaWZpZWQnOwokbGFuZ1snbWlsZXMnXSA9ICdNaWxlcyc7CiRsYW5nWydtaW51dGVzJ10gPSAnTWludXRlcyc7CiRsYW5nWydtaW5fc2NvcmUnXSA9ICdNaW4gU2NvcmUnOwokbGFuZ1snbXNnX2xlYWRlcmJvYXJkX3VwZGF0ZWQnXSA9ICdMZWFkZXJib2FyZCBVcGRhdGVkJzsKJGxhbmdbJ21zZ19iYWRnZWNyZWF0ZWQnXSA9ICdCYWRnZSBDcmVhdGVkJzsKJGxhbmdbJ21zZ19iYWRnZXVwZGF0ZWQnXSA9ICdCYWRnZSBVcGRhdGVkJzsKJGxhbmdbJ21zZ19zdWNjZXNzJ10gPSAnT3BlcmF0aW9uIFN1Y2Nlc3NmdWwnOwoKI04KJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ25ld2xvY2F0aW9uX3Byb3hpbWl0eWxpbWl0J10gPSAnTGltaXQgY3JlYXRpb24gYnkgcHJveGltaXR5JzsKJGxhbmdbJ25ld2xvY2F0aW9uX3RpbWVsaW1pdCddID0gJ0xpbWl0IGxvY2F0aW9uIGJ5IHRpbWUgZnJlcXVlbmN5JzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ25vcm1hbCddID0gJ05vcm1hbCc7CiRsYW5nWydub3RlJ10gPSAnTm90ZSc7CiRsYW5nWydub3RpZmljYXRpb25fdGVtcGxhdGUnXSA9ICdOb3RpZmljYXRpb24gVGVtcGxhdGUnOwoKI08KJGxhbmdbJ29mJ10gPSAnT2YnOwokbGFuZ1snb2ZmJ10gPSAnT2ZmJzsKJGxhbmdbJ29wZXJhdGlvbl9jYW5jZWxsZWQnXSA9ICdPcGVyYXRpb24gQ2FuY2VsbGVkJzsKCiNQCiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9IDw8PEVPVApTcGVjaWZ5IHRoZSBiZWhhdmlvciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgY2hlY2tpbnM8L2xpPgogIDxsaT5saXN0X2FjdGl2aXRpZXMgLSBEaXNwbGF5IGEgbmVzdGVkIGxpc3Qgb2YgYWN0aXZpdGllcy48L2xpPgogIDxsaT52aWV3X2FjdGl2aXR5IC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc3BlY2lmaWMgYWN0aXZpdHkuPC9saT4KPC91bD4KRU9UOwokbGFuZ1sncGFyYW1fbG9jYXRpb24nXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBsaW1pdCB0aGUgcmVzdWx0cyB0byBhIHNwZWNpZmljIGxvY2F0aW9uLic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8ZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gbGltaXQgdGhlIGNoZWNraW4gcmVzdWx0cyB0byBhIHNwZWNpZmljIGFjdGl2aXR5JzsKJGxhbmdbJ3BhcmFtX3RpbWVsaW1pdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGxpbWl0IHRoZSBjaGVja2luIHJlc3VsdHMgdG8gYSBzcGVjaWZpYyB0aW1lIHJhbmdlLiAgQSBwb3NpdGl2ZSAgdmFsdWUgc3BlY2lmaWVzIGFuIGFic29sdXRlIHVuaXggdGltZXN0YW1wLiAgQSBuZWdhdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgc2Vjb25kcyByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB0aW1lLic7CiRsYW5nWydwYXJhbV9vd25lciddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGxpbWl0IHRoZSByZXN1bHRzIHRvIGEgc3BlY2lmaWMgb3duZXIgaWQnOwokbGFuZ1sncGFyYW1fbGltaXQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBsaW1pdCB0aGUgcmVzdWx0cyB0byBhIHNwZWNpZmllZCBudW1iZXInOwokbGFuZ1sncGFyYW1fb2Zmc2V0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgY2FuYmUgdXNlZCBmb3IgcGFnaW5hdGlvbiB0byBzcGVjaWZ5IHRoZSBzdGFydCBvZmZzZXQgb2YgbWF0Y2hlcyB0byByZXR1cm4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnU3BlY2lmeSBhIGRpZmZlcmVudCBzb3J0aW5nIHRvIHRoZSBvdXRwdXQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBpZCwgcGFyZW50X2lkLCBvd25lciwgbG9jYXRpb24sIGFjdGl2aXR5LCBjcmVhdGVkIChkZWZhdWx0KSc7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IGEgZGlmZmVyZW50IHNvcnQgb3JkZXIuICBQb3NzaWJsZSB2YWx1ZXMgYXJlIGFzYywgYW5kIGRlc2MnOwokbGFuZ1sncGFyYW1fdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIHRvIHRoZSBkZWZhdWx0LCBhbmQgdmlld19hY3Rpdml0eSBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLic7CiRsYW5nWydwYXJhbV9zdGFydCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgbGlzdF9hY3Rpdml0aWVzIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIG5hbWUgb2YgYSBzdGFydCBhY3Rpdml0eSc7CiRsYW5nWydwYXJhbV9saXN0X3RlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBsaXN0X2FjdGl2aXRpZXMgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlJzsKJGxhbmdbJ3BlciddID0gJ3Blcic7CiRsYW5nWydwZXJtaXNzaW9ucyddID0gJ1Blcm1pc3Npb25zJzsKJGxhbmdbJ3Blcm1fYWN0aXZpdGllc19yZWFkJ10gPSAnUmVhZCBBY3Rpdml0eSBMaXN0JzsKJGxhbmdbJ3Blcm1fYmFkZ2VzX3JlYWQnXSA9ICdSZWFkIEJhZGdlIEluZm9ybWF0aW9uJzsKJGxhbmdbJ3Blcm1fY2hlY2tpbnNfcmVhZCddID0gJ1JlYWQgQ2hlY2tpbiBJbmZvcm1hdGlvbic7CiRsYW5nWydwZXJtX2NoZWNraW5zX2FkZCddID0gJ0FkZCBDaGVja2luIEluZm9ybWF0aW9uJzsKJGxhbmdbJ3Blcm1fY2hlY2tpbnNfYXBwcm92ZSddID0gJ0FwcHJvdmUgQ2hlY2tpbnMnOwokbGFuZ1sncGVybV9jaGVja2luc19kZWwnXSA9ICdEZWxldGUgQ2hlY2tpbiBJbmZvcm1hdGlvbic7CiRsYW5nWydwZXJtX2NoZWNraW5zX2VkaXQnXSA9ICdFZGl0IENoZWNraW4gSW5mb3JtYXRpb24nOwokbGFuZ1sncGVybV9mcmllbmRzX3JlYWQnXSA9ICdSZWFkIEZyaWVuZHNoaXAgUmVsYXRpb25zJzsKJGxhbmdbJ3Blcm1fZnJpZW5kc193cml0ZSddID0gJ1dyaXRlIEZyaWVuZHNoaXAgSW5mb3JtYXRpb24nOwokbGFuZ1sncGVybV9sZWFkZXJib2FyZHNfcmVhZCddID0gJ1JlYWQgTGVhZGVyYm9hcmQgSW5mb3JtYXRpb24nOwokbGFuZ1sncGVybV9sb2NhdGlvbnNfcmVhZCddID0gJ1JlYWQgTG9jYXRpb24gSW5mb3JtYXRpb24nOwokbGFuZ1sncGVybV9sb2NhdGlvbnNfd3JpdGUnXSA9ICdXcml0ZSBMb2NhdGlvbiBJbmZvcm1hdGlvbic7CiRsYW5nWydwZXJtX25vdGlmaWNhdGlvbnNfc2VuZCddID0gJ1NlbmQgbm90aWZpY2F0aW9ucyc7CiRsYW5nWydwZXJtX3NvY2lhbF9yZWFkJ10gPSAnUmVhZCBTb2NpYWwgTmV0d29ya2luZyBWYWx1ZXMnOwokbGFuZ1sncGVybV9zb2NpYWxfd3JpdGUnXSA9ICdXcml0ZSBTb2NpYWwgTmV0d29ya2luZyBWYWx1ZXMnOwokbGFuZ1sncGVybV9zb2NpYWxfc2VuZCddID0gJ1NlbmQgTWVzc2FnZXMgdG8gU29jaWFsIE5ldHdvcmtzJzsKJGxhbmdbJ3Blcm1fdXNlcnNfcmVnaXN0ZXInXSA9ICdSZWdpc3RlciBOZXcgVXNlcnMnOwokbGFuZ1sncGVybV91c2Vyc19sb2dpbiddID0gJ0xvZ2luIFVzZXJzJzsKJGxhbmdbJ3Blcm1fdXNlcnNfcmVhZCddID0gJ1JlYWQgVXNlciBJbmZvcm1hdGlvbic7CiRsYW5nWydwZXJtX3VzZXJzX3dyaXRlJ10gPSAnTW9kaWZ5IFVzZXIgSW5mb3JtYXRpb24nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGUgQ0dTb2NpYWxBcHAgbW9kdWxlIGlzIG5vdyBpbnN0YWxsZWQuICBQbGVhc2UgdmlzaXQgdGhlIG1vZHVsZXMgYWRtaW4gcGFuZWwgYW5kIHN0YXJ0IHlvdXIgY29uZmlndXJhdGlvbiBhbmQgYnVpbGRpbmcgcHJvY2Vzcyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIENHU29jbGFsQXBwIG1vZHVsZSBpcyBub3cgdW5pbnN0YWxsZWQgYW5kIGFsbCBkYXRhIHJlbW92ZWQuICAgWW91IGNhbiBub3cgcmVtb3ZlIHRoZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIG1vZHVsZSc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIG1vZHVsZS4gIENvbnRpbnVpbmcgd2lsbCByZW1vdmUgYWxsIGRhdGEgYW5kIHNldHRpbmdzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbW9kdWxlIGFuZCBtYXkgc2VyaW91c2x5IGhhcm0gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgeW91ciBzaXRlJzsKJGxhbmdbJ3ByaW9yaXR5J10gPSAnUHJpb3JpdHknOwokbGFuZ1sncHJvbXB0X2FjdGl2ZSddID0gJ0FjdGl2ZSc7CiRsYW5nWydwcm9tcHRfYXBpa2V5J10gPSAnQVBJIEtleSc7CiRsYW5nWydwcm9tcHRfYXBwbmFtZSddID0gJ0FwcGxpY2F0aW9uIE5hbWUnOwokbGFuZ1sncHJvbXB0X2FwcHJvdmVjaGVja2lucyddID0gJ1JlcXVpcmUgY2hlY2tpbnMgdG8gYmUgYXBwcm92ZWQnOwokbGFuZ1sncHJvbXB0X2NkcHdmaWVsZCddID0gJ0NvbXBhbnlEaXJlY3RvcnkgUGFzc3dvcmQgRmllbGQnOwokbGFuZ1sncHJvbXB0X2NoZWNraW5yYXRlbGltaXRpbmcnXSA9ICdDaGVja2luIFJhdGUgTGltaXRpbmcgT3B0aW9ucyc7CiRsYW5nWydwcm9tcHRfY2hlY2tpbnJhdGVsaW1pdGluZ19ieWxvY2F0aW9uJ10gPSAnQ2hlY2tpbiBQcm94aW1pdHkgTGltaXQnOwokbGFuZ1sncHJvbXB0X2NoZWNraW5yYXRlbGltaXRpbmdfYnl0aW1lJ10gPSAnQ2hlY2tpbiBUaW1lIExpbWl0JzsKJGxhbmdbJ3Byb21wdF9jaGVja2luc2V0dGluZ3MnXSA9ICdDaGVja2luIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXVzZXJzJ10gPSAnVXNlciBEZWxldGlvbic7CiRsYW5nWydwcm9tcHRfZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydwcm9tcHRfZXhwaXJlcyddID0gJ0V4cGlyZXMnOwokbGFuZ1sncHJvbXB0X2ZldWdyb3VwJ10gPSAnRnJvbnRFbmRVc2VycyBHcm91cCBmb3IgTmV3IFVzZXJzJzsKJGxhbmdbJ3Byb21wdF9mcmllbmRseW5hbWUnXSA9ICdGcmllbmRseSBOYW1lIGZvciB0aGlzIE1vZHVsZSc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbHNldHRpbmdzJ10gPSAnR2VuZXJhbCBTZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhdGUnXSA9ICdHZW5lcmF0ZSc7CiRsYW5nWydwcm9tcHRfaW50ZXJ2YWxfdXBkYXRlbGVhZGVyYm9hcmRzJ10gPSAnSW50ZXJ2YWwgdG8gcmVmcmVzaCBsZWFkZXJib2FyZHMnOwokbGFuZ1sncHJvbXB0X2ludGVydmFsX3VwZGF0ZWJhZGdlcyddID0gJ0ludGVydmFsIHRvIHJlZnJlc2ggYmFkZ2VzJzsKJGxhbmdbJ3Byb21wdF9pbWFnZSddID0gJ0ltYWdlJzsKJGxhbmdbJ3Byb21wdF9sb2NhdGlvbl9ub3RpZmljYXRpb24nXSA9ICdMb2NhdGlvbiBjcmVhdGlvbiBub3RpZmljYXRpb25zJzsKJGxhbmdbJ3Byb21wdF9sb2NhdGlvbnJlcXVpcmVkJ10gPSAnTG9jYXRpb24gaW5mb3JtYXRpb24gaXMgcmVxdWlyZWQgZm9yIGFsbCBjaGVja2lucyc7CiRsYW5nWydwcm9tcHRfbXVsdGlwbGViYWRnZXMnXSA9ICdBbGxvdyBtdWx0aXBsZSBiYWRnZXMgcGVyIHVzZXInOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ3Byb21wdF9uZXdsb2NhdGlvbiddID0gJ0xvY2F0aW9uIEhhbmRsaW5nJzsKJGxhbmdbJ3Byb21wdF9uZXdsb2NhdGlvbl9hbGxvdyddID0gJ0FsbG93IGNyZWF0aW5nIG5ldyBsb2NhdGlvbnMnOwokbGFuZ1sncHJvbXB0X25ld2xvY2F0aW9uX2FsbG93ZWRpdCddID0gJ0FsbG93IGVkaXRpbmcgbG9jYXRpb25zJzsKJGxhbmdbJ3Byb21wdF9uZXdsb2NhdGlvbl9ncm91cHMnXSA9ICdHcm91cCBsaXN0IHRvIHJlY2VpdmUgZW1haWwgd2hlbiBuZXcgbG9jYXRpb24gaXMgY3JlYXRlZCc7CiRsYW5nWydwcm9tcHRfbmV3bG9jYXRpb25faXNodG1sJ10gPSAnTm90aWZpY2F0aW9uIGVtYWlsIGlzIGFuIGh0bWwgZW1haWwnOwokbGFuZ1sncHJvbXB0X25ld2xvY2F0aW9uX3JhdGVsaW1pdGluZyddID0gJ0xpbWl0aW5nIG9mIGxvY2F0aW9uIGFkZGluZyc7CiRsYW5nWydwcm9tcHRfbmV3bG9jYXRpb25fc3RhdHVzJ10gPSAnU3RhdHVzIGZvciB1c2VyIGNyZWF0ZWQgbG9jYXRpb25zJzsKJGxhbmdbJ3Byb21wdF9uZXdsb2NhdGlvbl9zdWJqZWN0J10gPSAnTm90aWZpY2F0aW9uIEVtYWlsIFN1YmplY3QnOwokbGFuZ1sncHJvbXB0X25ld2xvY2F0aW9uX3RlbXBsYXRlJ10gPSAnTm90aWZpY2F0aW9uIEVtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9uZXd1c2VycyddID0gJ1VzZXIgQ3JlYXRpb24nOwokbGFuZ1sncHJvbXB0X29uZGVsZXRlX2NsZWFuY2hlY2tpbnMnXSA9ICdEZWxldGUgYWxsIHVzZXIgY2hlY2tpbnMgd2hlbiBhIHVzZXIgaXMgZGVsZXRlZCc7CiRsYW5nWydwcm9tcHRfcGFnZSddID0gJ1BhZ2UnOwokbGFuZ1sncHJvbXB0X3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwcm9tcHRfdW5pcXVlJ10gPSAnVW5pcXVlJzsKJGxhbmdbJ3Byb21wdF91c2Vyc2V0dGluZ3MnXSA9ICdVc2VyIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF90YWdnZWR1c2VyX25vdGlmaWNhdGlvbnMnXSA9ICdUYWdnZWQgVXNlciBOb3RpZmljYXRpb25zJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpc2hlZCc7CgojUQoKCiNSCiRsYW5nWydyZW9yZGVyX2FjdGl2aXR5J10gPSAnUmVvcmRlciBBY3Rpdml0aWVzJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXQnOwokbGFuZ1sncmVzZXRfZGZsdCddID0gJ1Jlc2V0IHRvIERlZmF1bHQnOwokbGFuZ1sncmV0dXJuJ10gPSAnUmV0dXJuJzsKCiNTCiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnU2VsZWN0IGFsbCc7CiRsYW5nWydzbWFydHlfdmFyX2FjdGlvbiddID0gJ0luZGljYXRlcyB0aGUgYWN0aW9uIGZvciB0aGUgYmFkZ2UuICBFaXRoZXIgJnF1b3Q7Z3JhbnRlZCZxdW90OyBvciAmcXVvdDtyZXZva2VkJnF1b3Q7JzsKJGxhbmdbJ3NtYXJ0eV92YXJfYmFkZ2UnXSA9ICdUaGUgY2dzYV9iYWRnZSBvYmplY3QgcmVsYXRlZCB0byB0aGUgZ3JhbnRlZCwgb3IgcmV2b2tlZCBiYWRnZSc7CiRsYW5nWydzbWFydHlfdmFyX3VpZCddID0gJ1RoZSB1c2VycyBGRVUgdWlkJzsKJGxhbmdbJ3NtYXJ0eV92YXJfdXNlcm5hbWUnXSA9ICdUaGUgdXNlcnMgdXNlcm5hbWUnOwokbGFuZ1snc21hcnR5X3Zhcl9lbWFpbCddID0gJ1RoZSBVc2VycyBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydzdWJqZWN0J10gPSAnU3ViamVjdCc7CiRsYW5nWydzeXNkZmx0X2xpc3RfYWN0aXZpdGllc190ZW1wbGF0ZSddID0gJ1N5c3RlbSBkZWZhdWx0IExpc3QgQWN0aXZpdGllcyB0ZW1wbGF0ZSc7CiRsYW5nWydzeXNkZmx0X2xpc3RfY2hlY2tpbnNfdGVtcGxhdGUnXSA9ICdTeXN0ZW0gZGVmYXVsdCBMaXN0IENoZWNraW5zIHRlbXBsYXRlJzsKJGxhbmdbJ3N5c2RmbHRfdmlld19hY3Rpdml0eV90ZW1wbGF0ZSddID0gJ1N5c3RlbSBkZWZhdWx0IFZpZXcgQWN0aXZpdHkgdGVtcGxhdGUnOwoKI1QKJGxhbmdbJ3RhYl9hY3Rpdml0aWVzJ10gPSAnQWN0aXZpdGllcyc7CiRsYW5nWyd0YWJfYXBpa2V5cyddID0gJ0FwaSBLZXlzJzsKJGxhbmdbJ3RhYl9iYWRnZSddID0gJ0JhZGdlJzsKJGxhbmdbJ3RhYl9kZWZhdWx0X3RlbXBsYXRlcyddID0gJ0RlZmF1bHQgVGVtcGxhdGVzJzsKJGxhbmdbJ3RhYl9nZW5lcmFsc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9sZWFkZXJib2FyZHNldHRpbmdzJ10gPSAnTGVhZGVyYm9hcmQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2xpc3RfYWN0aXZpdGllc190ZW1wbGF0ZXMnXSA9ICdMaXN0IEFjdGl2aXRpZXMgVGVtcGxhdGVzJzsKJGxhbmdbJ3RhYl9saXN0X2NoZWNraW5zX3RlbXBsYXRlcyddID0gJ0xpc3QgQ2hlY2tpbiBUZW1wbGF0ZXMnOwokbGFuZ1sndGFiX2xvY2F0aW9uc2V0dGluZ3MnXSA9ICdMb2NhdGlvbiBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfbm90aWZpY2F0aW9uJ10gPSAnTm90aWZpY2F0aW9uJzsKJGxhbmdbJ3RhYl91c2Vyc2V0dGluZ3MnXSA9ICdVc2VyIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl92aWV3X2FjdGl2aXR5X3RlbXBsYXRlcyddID0gJ1ZpZXcgQWN0aXZpdHkgVGVtcGxhdGVzJzsKJGxhbmdbJ3RpdGxlX2FkZF9hY3Rpdml0eSddID0gJ0FkZCBBY3Rpdml0eSc7CiRsYW5nWyd0aXRsZV9hZGRlZGl0X2xpc3RhY3Rpdml0aWVzX3RlbXBsYXRlJ10gPSAnQWRkIG9yIEVkaXQgYW4gQWN0aXZpdHkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRlZGl0X2xpc3RjaGVja2luc190ZW1wbGF0ZSddID0gJ0FkZCBvciBFZGl0IGEgQ2hlY2tpbnMgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRlZGl0X3ZpZXdhY3Rpdml0eV90ZW1wbGF0ZSddID0gJ0FkZCBvciBFZGl0IGFuIFZpZXcgQWN0aXZpdHkgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZWRpdF9hY3Rpdml0eSddID0gJ0VkaXQgQWN0aXZpdHknOwokbGFuZ1sndGl0bGVfbm90aWZpY2F0aW9uX2JvZHlfaGVscCddID0gJ0F2YWlsYWJsZSBTbWFydHkgVmFyaWFibGVzJzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwoKI1UKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CgojVgoKCiNXCiRsYW5nWyd3YXJuaW5nJ10gPSAnV2FybmluZyc7CiRsYW5nWyd3YXJuaW5nX25vY2RmaWVsZHMnXSA9ICdObyBzdWl0YWJsZSB0ZXh0IGZpZWxkcyBkZXRlY3RlZCBpbiBDb21wYW55RGlyZWN0b3J5IG1vZHVsZS4gIENoZWNraW5zIGNhbm5vdCBiZSBhcHByb3ZlZCc7CgojWAoKCiNZCgoKI1oKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.cgsa_activity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ3NhX2FjdGl2aXR5CnsKICBwcml2YXRlIHN0YXRpYyAkX2tleXMgPSBhcnJheSgnaWQnLCduYW1lJywncGFyZW50X2lkJywnaXRlbV9vcmRlcicsJ2hpZXJhcmNoeScsJ2ljb24nLCdpbWFnZScsJ2Rlc2NyaXB0aW9uJywnY2hpbGRyZW4nKTsKICBwcml2YXRlIHN0YXRpYyAkX2NhY2hlZF9hY3Rpdml0aWVzOwogIHByaXZhdGUgJF9ybzsKICBwcml2YXRlICRfZGF0YTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAkdGhpcy0+X2RhdGEgPSBhcnJheSgpOwogICAgJHRoaXMtPl9kYXRhWydwYXJlbnRfaWQnXSA9IC0xOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgewogICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gcmV0cmlldmUgaW52YWxpZCBrZXkgZnJvbSBjZ3NhX2FjdGl2aXR5IG9iamVjdCcpOwogICAgfQogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSB7CiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgICB9CiAgfQogICAKICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGtleSwkdmFsdWUpCiAgewogICAgaWYoICR0aGlzLT5fcm8gKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gYWRqdXN0IGEgY2dzYV9hY3Rpdml0eSBvYmplY3QgaW4gcmVhZG9ubHkgbW9kZS4nKTsKICAgIH0KICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHN0b3JlIGludmFsaWQgdmFsaWQgaW50byBjZ3NhX2FjdGl2aXR5IG9iamVjdCcpOwogICAgfQogICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBfX2lzc2V0KCRrZXkpCiAgewogICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiBUUlVFOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcmVhZG9ubHkoJGZsYWcgPSBUUlVFKQogIHsKICAgICR0aGlzLT5fcm8gPSAkZmxhZzsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoKQogIHsKICAgIGlmKCAkdGhpcy0+bmFtZSA9PSAnJyB8fCAkdGhpcy0+cGFyZW50X2lkIDwgLTEgKSByZXR1cm4gRkFMU0U7CiAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gc2F2ZSgpCiAgewogICAgaWYoICEkdGhpcy0+dmFsaWRhdGUoKSApIHJldHVybiBGQUxTRTsKCiAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgfHwgJHRoaXMtPl9kYXRhWydpZCddIDwgMSApIHsKICAgICAgcmV0dXJuICR0aGlzLT5faW5zZXJ0KCk7CiAgICB9CiAgICByZXR1cm4gJHRoaXMtPl91cGRhdGUoKTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBfaW5zZXJ0KCkKICB7CiAgICBpZiggJHRoaXMtPl9ybyApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBzYXZlIGEgY2dzYV9hY3Rpdml0eSBvYmplY3QgaW4gcmVhZG9ubHkgbW9kZS4nKTsKICAgIH0KCiAgICAkdG1wID0gc2VyaWFsaXplKCR0aGlzLT5fZGF0YSk7CgogICAgLy8gY2hlY2sgaWYgYW4gaXRlbSBvZiB0aGUgc2FtZSBuYW1lIGV4aXN0cyB3aXRoIHRoZSBzYW1lIHBhcmVudAogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FDVElWSVRJRVMuJyBXSEVSRSBuYW1lID0gPyc7CiAgICAkdG1wMiA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpcy0+bmFtZSkpOwogICAgaWYoICR0bXAyICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBbiBhY3Rpdml0eSB3aXRoIHRoZSBzYW1lIG5hbWUgYWxyZWFkeSBleGlzdHMgd2l0aCB0aGlzIHBhcmVudCcpOwogICAgfQoKICAgIC8vIGdldCB0aGUgYXBwcm9wcmlhdGUgaXRlbSBvcmRlciAoaWYgdW5zZXQpCiAgICBpZiggIWlzc2V0KCR0aGlzLT5pdGVtX29yZGVyKSApIHsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBNQVgoaXRlbV9vcmRlcikgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FDVElWSVRJRVMuJyBXSEVSRSBwYXJlbnRfaWQgPSA/JzsKICAgICAgJGl0ZW1fb3JkZXIgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRoaXMtPnBhcmVudF9pZCkpOwogICAgICBpZiggISRpdGVtX29yZGVyICkgJGl0ZW1fb3JkZXIgPSAwOwogICAgICAkdGhpcy0+aXRlbV9vcmRlciA9ICRpdGVtX29yZGVyKzE7CiAgICB9CgogICAgLy8gc2V0IHRoZSBoaWVyYXJjaHkuCiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5DR1NPQ0lBTF9UQUJMRV9BQ1RJVklUSUVTLicgKG5hbWUscGFyZW50X2lkLGl0ZW1fb3JkZXIsZGF0YSkKICAgICAgIFZBTFVFUyg/LD8sPyw/KSc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpcy0+bmFtZSwkdGhpcy0+cGFyZW50X2lkLCR0aGlzLT5pdGVtX29yZGVyLCR0bXApKTsKICAgIGlmKCAhJGRiciApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignUHJvYmxlbSBpbnNlcnRpbmcgYWN0aXZpdHkgcmVjb3JkIGludG8gZGF0YWJhc2UgJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKICAgIH0KICAgICR0aGlzLT5pZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CiAgICBzZWxmOjpfdXBkYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBfdXBkYXRlKCkKICB7CiAgICBpZiggJHRoaXMtPl9ybyApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBzYXZlIGEgY2dzYV9hY3Rpdml0eSBvYmplY3QgaW4gcmVhZG9ubHkgbW9kZS4nKTsKICAgIH0KCiAgICAkdG1wID0gc2VyaWFsaXplKCR0aGlzLT5fZGF0YSk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FDVElWSVRJRVMuJyBXSEVSRSBuYW1lID0gPyBBTkQgaWQgIT0gPyc7CiAgICAkdG1wMiA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpcy0+bmFtZSwkdGhpcy0+aWQpKTsKICAgIGlmKCAkdG1wMiApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQW4gYWN0aXZpdHkgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzIHdpdGggdGhpcyBwYXJlbnQnKTsKICAgIH0KCiAgICAkcXVlcnkgPSAnVVBEQVRFICcuQ0dTT0NJQUxfVEFCTEVfQUNUSVZJVElFUy4nIAogICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgcGFyZW50X2lkID0gPywgaXRlbV9vcmRlciA9ID8sIGRhdGEgPSA/CiAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5uYW1lLCR0aGlzLT5wYXJlbnRfaWQsJHRoaXMtPml0ZW1fb3JkZXIsJHRtcCwkdGhpcy0+aWQpKTsKICAgIGlmKCAhJGRiciApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignUHJvYmxlbSBpbnNlcnRpbmcgaGllcmFyY2h5IHJlY29yZCBpbnRvIGRhdGFiYXNlJyk7CiAgICB9CiAgICBzZWxmOjpfdXBkYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWRfYnlfaWQoJGlkKQogIHsKICAgICRyb3cgPSBudWxsOwogICAgaWYoIGlzX2FycmF5KHNlbGY6OiRfY2FjaGVkX2FjdGl2aXRpZXMpICkgewogICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzKTsgJGkrKyApIHsKCWlmKCBzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzWyRpXVsnaWQnXSA9PSAkaWQgKSB7CgkgICRyb3cgPSBzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzWyRpXTsKCSAgYnJlYWs7Cgl9CiAgICAgIH0KICAgIH0KICAgIGlmKCAhaXNfYXJyYXkoJG51bGwpICkgewogICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FDVElWSVRJRVMuJyBXSEVSRSBpZCA9ID8nOwogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KChpbnQpJGlkKSk7CiAgICAgIGlmKCAkcm93ICkgewoJaWYoICFpc19hcnJheShzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzKSApIHNlbGY6OiRfY2FjaGVkX2FjdGl2aXRpZXMgPSBhcnJheSgpOwoJc2VsZjo6JF9jYWNoZWRfYWN0aXZpdGllc1tdID0gJHJvdzsKICAgICAgfQogICAgfQoKICAgICRvYmogPSBudWxsOwogICAgaWYoICRyb3cgKSB7CiAgICAgICRvYmogPSBzZWxmOjpfZnJvbV9hcnJheSgkcm93KTsKICAgIH0KICAgIHJldHVybiAkb2JqOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZF9ieV9uYW1lKCRuYW1lKQogIHsKICAgICRyb3cgPSBudWxsOwogICAgaWYoIGlzX2FycmF5KHNlbGY6OiRfY2FjaGVkX2FjdGl2aXRpZXMpICkgewogICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzKTsgJGkrKyApIHsKCWlmKCBzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzWyRpXVsnbmFtZSddID09ICRuYW1lICkgewoJICAkcm93ID0gc2VsZjo6JF9jYWNoZWRfYWN0aXZpdGllc1skaV07CgkgIGJyZWFrOwoJfQogICAgICB9CiAgICB9CiAgICBpZiggISRyb3cgKSB7CiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQUNUSVZJVElFUy4nIFdIRVJFIE5BTUUgPSA/JzsKICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkbmFtZSkpOwogICAgICBpZiggJHJvdyApIHsKCWlmKCAhaXNfYXJyYXkoc2VsZjo6JF9jYWNoZWRfYWN0aXZpdGllcykgKSBzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzID0gYXJyYXkoKTsKCXNlbGY6OiRfY2FjaGVkX2FjdGl2aXRpZXNbXSA9ICRyb3c7CiAgICAgIH0KICAgIH0KCiAgICAkb2JqID0gbnVsbDsKICAgIGlmKCAkcm93ICkgewogICAgICAkb2JqID0gc2VsZjo6X2Zyb21fYXJyYXkoJHJvdyk7CiAgICB9CiAgICByZXR1cm4gJG9iajsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZF9hbGxfYXNfdHJlZSgkcGFyZW50X2lkID0gLTEsJGFzX29iamVjdHMgPSBUUlVFKQogIHsKICAgICRkYXRhID0gJyc7CiAgICBpZiggJGFzX29iamVjdHMgKSB7CiAgICAgICRkYXRhID0gc2VsZjo6bG9hZF9hbGwoJHBhcmVudF9pZCk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJGRhdGEgPSBzZWxmOjpsb2FkX2FsbF9hc19hcnJheSgkcGFyZW50X2lkKTsKICAgIH0KICAgIGlmKCAhY291bnQoJGRhdGEpICkgcmV0dXJuOwoKICAgIGZvciggJG4gPSAwOyAkbiA8IGNvdW50KCRkYXRhKTsgJG4rKyApIHsKICAgICAgaWYoIGlzX29iamVjdCgkZGF0YVskbl0pICkgJGlkID0gJGRhdGFbJG5dLT5pZDsgZWxzZSAkaWQgPSAkZGF0YVskbl1bJ2lkJ107CiAgICAgICR0bXAgPSBzZWxmOjpsb2FkX2FsbF9hc190cmVlKCRpZCwkYXNfb2JqZWN0cyk7CiAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCWlmKCAkYXNfb2JqZWN0cyApIHsKCSAgJGRhdGFbJG5dLT5jaGlsZHJlbiA9ICR0bXA7Cgl9CgllbHNlIHsKCSAgJGRhdGFbJG5dWydjaGlsZHJlbiddID0gJHRtcDsKCX0KICAgICAgfQogICAgfQogICAgcmV0dXJuICRkYXRhOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZF9hbGwoJHBhcmVudF9pZCA9ICcnKQogIHsKICAgICR0bXAgPSBzZWxmOjpsb2FkX2FsbF9hc19hcnJheSgkcGFyZW50X2lkKTsKICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSByZXR1cm47CgogICAgJHJlcyA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKICAgICAgJHJlc1tdID0gc2VsZjo6X2Zyb21fYXJyYXkoJHRtcFskaV0pOwogICAgfQogICAgcmV0dXJuICRyZXM7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWRfYWxsX2FzX2FycmF5KCRwYXJlbnRfaWQgPSAnJykKICB7CiAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfY2FjaGVkX2FjdGl2aXRpZXMpICkgewogICAgICAvLyBnZXQgdGhlbSBhbGwgYW5kIGNhY2hlIGVtLi4uIGFzIGFuIGFycmF5LgogICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FDVElWSVRJRVMuJyBPUkRFUiBCWSBoaWVyYXJjaHkscGFyZW50X2lkLGl0ZW1fb3JkZXInOwogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU29jaWFsQXBwJyk7CiAgICAgIAogICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7Cglmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKCSAgJHJvdyA9JiAkdG1wWyRpXTsKCSAgJGRhdGEgPSB1bnNlcmlhbGl6ZSgkcm93WydkYXRhJ10pOwoJICBpZiggaXNfYXJyYXkoJGRhdGEpICkgewoJICAgIGlmKCBpc3NldCgkZGF0YVsnaWNvbiddKSApICRyb3dbJ2ljb24nXSA9ICRkYXRhWydpY29uJ107CgkgICAgaWYoIGlzc2V0KCRkYXRhWydpbWFnZSddKSApICRyb3dbJ2ltYWdlJ10gPSAkZGF0YVsnaW1hZ2UnXTsKCSAgICAkcm93WydkZXNjcmlwdGlvbiddID0gJGRhdGFbJ2Rlc2NyaXB0aW9uJ107CgoJICAgIGlmKCBpc3NldCgkcm93WydpbWFnZSddKSAmJiAkcm93WydpbWFnZSddICE9ICcnICkgewoJICAgICAgLy8gYWRkIGltYWdlX3VybCBmaWVsZC4uLgoJICAgICAgJHJvd1snaW1hZ2VfdXJsJ10gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvJy4kbW9kLT5HZXROYW1lKCkuJy9hY3R2aXRpZXMvJy4kcm93WydpZCddLicvJy4kcm93WydpbWFnZSddOwoJICAgIH0KCSAgfQoJICB1bnNldCgkcm93WydkYXRhJ10pOwoJfQogICAgICB9CgogICAgICBzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzID0gJHRtcDsKICAgIH0KCiAgICAkcmVzID0gc2VsZjo6JF9jYWNoZWRfYWN0aXZpdGllczsKICAgIGlmKCAkcGFyZW50X2lkICE9ICcnICkgewogICAgICAkcGFyZW50X2lkID0gKGludCkkcGFyZW50X2lkOwogICAgICAkcmVzID0gYXJyYXkoKTsKCQogICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudChzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzKTsgJGkrKyApIHsKCWlmKCBzZWxmOjokX2NhY2hlZF9hY3Rpdml0aWVzWyRpXVsncGFyZW50X2lkJ10gPT0gJHBhcmVudF9pZCB8fCAkcGFyZW50X2lkID09PSAnJyApIHsKCSAgJHJlc1tdID0gc2VsZjo6JF9jYWNoZWRfYWN0aXZpdGllc1skaV07Cgl9CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJHJlczsKICB9CgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uICZfZnJvbV9hcnJheSgkcm93KQogIHsKICAgICRvYmogPSBuZXcgY2dzYV9hY3Rpdml0eTsKICAgIGlmKCBpc3NldCgkcm93WydkYXRhJ10pICkgewogICAgICAkb2JqLT5fZGF0YSA9IHVuc2VyaWFsaXplKCRyb3dbJ2RhdGEnXSk7CiAgICB9CiAgICAkb2JqLT5fZGF0YVsnaWQnXSA9ICRyb3dbJ2lkJ107CiAgICAkb2JqLT5fZGF0YVsnbmFtZSddID0gJHJvd1snbmFtZSddOwogICAgJG9iai0+X2RhdGFbJ3BhcmVudF9pZCddID0gJHJvd1sncGFyZW50X2lkJ107CiAgICAkb2JqLT5fZGF0YVsnaXRlbV9vcmRlciddID0gJHJvd1snaXRlbV9vcmRlciddOwogICAgJG9iai0+X2RhdGFbJ2hpZXJhcmNoeSddID0gJHJvd1snaGllcmFyY2h5J107CiAgICByZXR1cm4gJG9iajsKICB9CgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF91cGRhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdVUERBVEUgJy5DR1NPQ0lBTF9UQUJMRV9BQ1RJVklUSUVTLicgU0VUIGhpZXJhcmNoeSA9ID8gV0hFUkUgaWQgPSA/JzsKCiAgICAkYWN0aXZpdGllcyA9IHNlbGY6OmxvYWRfYWxsX2FzX2FycmF5KCk7CiAgICAvLyBudWxsaWZ5IGFsbCBoaWVyYXJjaGllcwogICAgLy8gbG9vcAogICAgLy8gICAKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRhY3Rpdml0aWVzKTsgJGkrKyApCiAgICAgIHsKCSRhY3Rpdml0aWVzWyRpXVsnaGllcmFyY2h5J10gPSAnJzsKICAgICAgfQogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGFjdGl2aXRpZXMpOyAkaSsrICkKICAgICAgewoJJGhpZXJhcmNoeSA9ICcnOwoJJHJvdyA9ICRhY3Rpdml0aWVzWyRpXTsKCSRjcGkgPSAkcm93WydpZCddOwoKCXdoaWxlKCAkY3BpID4gLTEgKQoJICB7CgkgICAgLy8gYnVpbGQgdGhlIGhpZXJhcmNoeSBiYWNrIHVwIHRvIHRoZSB0b3AuCgkgICAgLy8gZ2V0IHJvdyB3aXRoIGlkIGlmICdjcGknCgkgICAgJHJvdzIgPSAnJzsKICAgICAgICAgICAgZm9yKCAkaiA9IDA7ICRqIDwgY291bnQoJGFjdGl2aXRpZXMpOyAkaisrICkKCSAgICAgIHsKCQlpZiggJGFjdGl2aXRpZXNbJGpdWydpZCddICE9ICRjcGkgKSBjb250aW51ZTsKCQkkcm93MiA9ICRhY3Rpdml0aWVzWyRqXTsKCQlicmVhazsKCSAgICAgIH0KCSAgICBpZiggJHJvdzIgKQoJICAgICAgewoJCSRoaWVyYXJjaHkgPSBzdHJfcGFkKCRyb3cyWydpZCddLCA1LCAnMCcsIFNUUl9QQURfTEVGVCkuJy4nLiRoaWVyYXJjaHk7CgkJJGNwaSA9ICRyb3cyWydwYXJlbnRfaWQnXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJGNwaSA9IDA7CgkgICAgICB9CgkgIH0KCgkkaGllcmFyY2h5ID0gcnRyaW0oJGhpZXJhcmNoeSwnLicpOwoJJGFjdGl2aXRpZXNbJGldWydoaWVyYXJjaHknXSA9ICRoaWVyYXJjaHk7CgkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRoaWVyYXJjaHksJGFjdGl2aXRpZXNbJGldWydpZCddKSk7CiAgICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfZmlsZXMoKQogIHsKICAgIGlmKCAkdGhpcy0+X3JvICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGFkanVzdCBhIGNnc2FfYWN0aXZpdHkgb2JqZWN0IGluIHJlYWRvbmx5IG1vZGUuJyk7CiAgICB9CgogICAgaWYoICR0aGlzLT5pZCA8IDEgKSByZXR1cm47CiAgICBpZiggJHRoaXMtPmltYWdlID09ICcnICkgcmV0dXJuOwoKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU29jaWFsQXBwJyk7CiAgICAkZGVzdGRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJG1vZC0+R2V0TmFtZSgpLCdhY3Rpdml0aWVzJywkdGhpcy0+aWQpOwoKICAgICR0bXAgPSBhcnJheSgncHJldmlld18nLiR0aGlzLT5pbWFnZSwndGh1bWJfJy4kdGhpcy0+aW1hZ2UsJHRoaXMtPmltYWdlKTsKICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgJGZuID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkb25lKTsKICAgICAgQHVubGluaygkZm4pOwogICAgfQogICAgJHRoaXMtPmltYWdlID0gJyc7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZSgpCiAgewogICAgaWYoICR0aGlzLT5fcm8gKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gYWRqdXN0IGEgY2dzYV9hY3Rpdml0eSBvYmplY3QgaW4gcmVhZG9ubHkgbW9kZS4nKTsKICAgIH0KCiAgICBpZiggJHRoaXMtPmlkID09ICcnICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBEZWxldGUgYW4gaW52YWxpZCBhY3Rpdml0eScpOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkdGhpcy0+ZGVsZXRlX2ZpbGVzKCk7CgogICAgLy8gdXBkYXRlIGFueSBkaXJlY3QgY2hpbGRyZW4gdG8gaGF2ZSAtMSBhcyBhIHBhcmVudCBpZC4KICAgICRxdWVyeSA9ICdVUERBVEUgJy5DR1NPQ0lBTF9UQUJMRV9BQ1RJVklUSUVTLicgU0VUIHBhcmVudF9pZCA9ID8gV0hFUkUgcGFyZW50X2lkID0gPyc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgtMSwkdGhpcy0+aWQpKTsKCiAgICAvLyBkZWxldGUgdGhlIGFjdGl2aXR5IHJlY29yZCBpdHNlbGYgKHJlZmVyZW50aWFsIGludGVncml0eSB0byBvdGhlciB0YWJsZXMgbWF5IGJlIGJyb2tlbikKICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FDVElWSVRJRVMuJyBXSEVSRSBpZCA9ID8nOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPmlkKSk7CgogICAgJHRoaXMtPl91cGRhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpOwoKICAgIC8vIHRvZG86IHNlbmQgYSBtZXNzYWdlL2V2ZW50CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_apikey.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgY2dzYV9hcGlrZXkgaW1wbGVtZW50cyBBcnJheUFjY2Vzcwp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzID0gYXJyYXkoJ2lkJywnYXBpa2V5JywnYXBwbmFtZScsJ2VtYWlsJywnYWN0aXZlJywnY3JlYXRlZCcsJ2V4cGlyZXMnLCdtb2RpZmllZCcpOwogIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoKTsKCgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgJHRoaXMtPl9kYXRhWydhY3RpdmUnXSA9IDE7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgka2V5LCR2YWx1ZSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHJldHVybjsKICAgIGlmKCAka2V5ID09ICdpZCcgKSByZXR1cm47IC8vIGNhbid0IHNldCB0aGUgaWQgdGhpcyB3YXkuCiAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEV4aXN0cygka2V5KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgcmV0dXJuIEZBTFNFOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgka2V5KQogIHsKICAgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKQogICAgICB7CglpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApCgkgIHsKCSAgICByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwoJICB9CiAgICAgIH0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJGtleSkKICB7CiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDYW5ub3QgdW5zZXQgYSBtZW1iZXIgb2YgYW4gYXBpa2V5IG9iamVjdCcpOwogIH0KCgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGF1ZGl0KCRtc2cpCiAgewogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgIGF1ZGl0KCcnLCdBcHAnLCRtc2cpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZW5lcmF0ZV9hcGlfa2V5KCkKICB7CiAgICAkdGhpcy0+dmFsaWRhdGUoVFJVRSxUUlVFKTsKICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2FwaWtleSddKSAmJiAkdGhpcy0+X2RhdGFbJ2FwaWtleSddICE9ICcnICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnYXBpa2V5J107CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgYXBpa2V5IEZST00gJy5DR1NPQ0lBTF9UQUJMRV9BUElLRVlTOwogICAgJGtleXMgPSAkZGItPkdldENvbCgkcXVlcnkpOwoKICAgICRjb3VudCA9ICcnOwogICAgJG1hc3RlciA9ICR0aGlzLT5fZGF0YVsnYXBwbmFtZSddLiR0aGlzLT5fZGF0YVsnZW1haWwnXTsKICAgIHdoaWxlKCAkY291bnQgPCAxMDAgKQogICAgICB7Cgkka2V5ID0gc3Vic3RyKHN0cl9zaHVmZmxlKG1kNSgkbWFzdGVyLiRjb3VudCkpLDAsOCk7CglpZiggIWlzX2FycmF5KCRrZXlzKSApIHJldHVybiAka2V5OwoJaWYoICFpbl9hcnJheSgka2V5LCRrZXlzKSApIHJldHVybiAka2V5OwoKCWlmKCAkY291bnQgPT0gJycgKSAkY291bnQgPSAxOwoJJGNvdW50Kys7CiAgICAgIH0KCiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyB2YWxpZCBBUEkga2V5IGNvdWxkIGJlIGNhbGN1bGF0ZWQnKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoJG5vX21ldGFkYXRhID0gRkFMU0UsJG5vX2RhdGFiYXNlID0gRkFMU0UpCiAgewogICAgZm9yZWFjaCggc2VsZjo6JF9rZXlzIGFzICRrZXkgKQogICAgICB7Cglzd2l0Y2goICRrZXkgKQoJICB7Ci8vIAkgIGNhc2UgJ2lkJzoKLy8gCSAgICBpZiggJG5vX21ldGFkYXRhICkgYnJlYWs7Ci8vIAkgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pIHx8ICgkdGhpcy0+X2RhdGFbJGtleV0gIT0gJycgJiYgIWlzX251bWVyaWMoJHRoaXMtPl9kYXRhWyRrZXldKSkgKQovLyAJICAgICAgewovLyAJCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgZGF0YTogaWQgaXMgJy4kdGhpcy0+X2RhdGFbJGtleV0pOwovLyAJICAgICAgfQovLyAJICAgIGJyZWFrOwoKCSAgY2FzZSAnYXBpa2V5JzoKCSAgICBpZiggJG5vX21ldGFkYXRhICkgYnJlYWs7CgoJICBjYXNlICdhcHBuYW1lJzoKCSAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgfHwgJHRoaXMtPl9kYXRhWyRrZXldID09ICcnICkKCSAgICAgIHsKCQl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGRhdGE6ICcuJGtleS4nIGlzIGVtcHR5Jyk7CgkgICAgICB9CgkgICAgYnJlYWs7CgkgICAgCgkgIGNhc2UgJ2VtYWlsJzoKCSAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgfHwgIWlzX2VtYWlsKCR0aGlzLT5fZGF0YVska2V5XSkgKQoJICAgICAgewoJCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgZGF0YTogJy4ka2V5LicgaXMgaW52YWxpZCcpOwoJICAgICAgfQoJICAgIGJyZWFrOwoKCSAgY2FzZSAnYWN0aXZlJzoKCSAgICAkdG1wID0gY2dlX3V0aWxzOjp0b19ib29sKCR0aGlzLT5fZGF0YVska2V5XSxUUlVFKTsKCSAgICBpZiggaXNfbnVsbCgkdG1wKSApCgkgICAgICB7CgkJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCBkYXRhOiAnLiRrZXkuJyBpcyBpbnZhbGlkJyk7CgkgICAgICB9CgkgICAgYnJlYWs7CgoJICBjYXNlICdleHBpcmVzJzoKCSAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgfHwgJHRoaXMtPl9kYXRhWyRrZXldID09ICcnIHx8ICFpc19udW1lcmljKCR0aGlzLT5fZGF0YVska2V5XSkgKQoJICAgICAgewoJCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBpbiBhcGlrZXk6ICcuJGtleS4nIGlzIGludmFsaWQnKTsKCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgLy8gZGF0YWJhc2UgdmFsaWRhdGlvbi4KICAgIGlmKCAkbm9fZGF0YWJhc2UgKSByZXR1cm47CgogICAgJHRtcCA9IG51bGw7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgJHRoaXMtPl9kYXRhWydpZCddICE9ICcnICkKICAgICAgewoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQVBJS0VZUy4nIFdIRVJFIChhcGlrZXkgPSA/IE9SIGFwcG5hbWUgPSA/KSBBTkQgaWQgIT0gPyc7CgkkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5fZGF0YVsnYXBpa2V5J10sJHRoaXMtPl9kYXRhWydhcHBuYW1lJ10sJHRoaXMtPl9kYXRhWydpZCddKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQVBJS0VZUy4nIFdIRVJFIGFwaWtleSA9ID8gT1IgYXBwbmFtZSA9ID8nOwoJJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ2FwaWtleSddLCR0aGlzLT5fZGF0YVsnYXBwbmFtZSddKSk7CiAgICAgIH0KICAgIGlmKCAkdG1wICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQW4gaXRlbSB3aXRoIHRoZSBzYW1lIG5hbWUgb3Iga2V5IGFscmVhZHkgZXhpc3RzJyk7CiAgICAgIH0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZXhwaXJlZCgpCiAgewogICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2V4cGlyZXMnXSkgKSByZXR1cm4gVFJVRTsKICAgIGlmKCAkdGhpcy0+X2RhdGFbJ2V4cGlyZXMnXSA9PSAnJyApIHJldHVybiBUUlVFOwogICAgaWYoICR0aGlzLT5fZGF0YVsnZXhwaXJlcyddIDwgdGltZSgpICkgcmV0dXJuIFRSVUU7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGNoZWNrX3Blcm1pc3Npb24oJHBlcm0pCiAgewogICAgaWYoICFjZ3NhX2FwaWtleV9wZXJtczo6aXNfcGVybSgkcGVybSkgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZGF0YVsncGVybXMnXSkgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggIWluX2FycmF5KCRwZXJtLCR0aGlzLT5fZGF0YVsncGVybXMnXSkgKSByZXR1cm4gRkFMU0U7CiAgICByZXR1cm4gVFJVRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcGVybWlzc2lvbigkcGVybSkKICB7CiAgICBpZiggISRwZXJtICkgcmV0dXJuOwogICAgaWYoICFjZ3NhX2FwaWtleV9wZXJtczo6aXNfcGVybSgkcGVybSkgKSByZXR1cm47CiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZGF0YVsncGVybXMnXSkgKSAkdGhpcy0+X2RhdGFbJ3Blcm1zJ10gPSBhcnJheSgpOwogICAgaWYoICFpbl9hcnJheSgkcGVybSwkdGhpcy0+X2RhdGFbJ3Blcm1zJ10pICkgCiAgICAgICR0aGlzLT5fZGF0YVsncGVybXMnXVtdID0gJHBlcm07CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX3Blcm1pc3Npb24oJHBlcm0pCiAgewogICAgaWYoICEkcGVybSApIHJldHVybjsKICAgIGlmKCAhY2dzYV9hcGlrZXlfcGVybXM6OmlzX3Blcm0oJHBlcm0pICkgcmV0dXJuOwogICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2RhdGFbJ3Blcm1zJ10pICkgcmV0dXJuOwogICAgaWYoICFpbl9hcnJheSgkcGVybSwkdGhpcy0+X2RhdGFbJ3Blcm1zJ10pICkgcmV0dXJuOwogICAgJHRtcCA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+X2RhdGFbJ3Blcm1zJ10pOyAkaSsrICkKICAgICAgewoJaWYoICR0aGlzLT5fZGF0YVsncGVybXMnXVskaV0gPT0gJHBlcm0gKSBjb250aW51ZTsKCSR0bXBbXSA9ICR0aGlzLT5fZGF0YVsncGVybXMnXVskaV07CiAgICAgIH0KICAgICR0aGlzLT5fZGF0YVsncGVybXMnXSA9ICR0bXA7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2F2ZSgpCiAgewogICAgJHRoaXMtPl9kYXRhWydhcGlrZXknXSA9ICR0aGlzLT5nZW5lcmF0ZV9hcGlfa2V5KCk7CiAgICAkdGhpcy0+dmFsaWRhdGUoKTsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJGRiciA9IG51bGw7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gKQogICAgICB7CgkvLyB1cGRhdGUKCSRxdWVyeSA9ICdVUERBVEUgJy5DR1NPQ0lBTF9UQUJMRV9BUElLRVlTLicgCiAgICAgICAgICAgICAgICAgIFNFVCBhcGlrZXkgPSA/LCBhcHBuYW1lID0gPywgZW1haWwgPSA/LCBhY3RpdmUgPSA/LAogICAgICAgICAgICAgICAgICBleHBpcmVzID0gPywgcGVybXMgPSA/LCBtb2RpZmllZCA9IE5PVygpIFdIRVJFIGlkID0gPyc7CgkkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ2FwaWtleSddLCR0aGlzLT5fZGF0YVsnYXBwbmFtZSddLCR0aGlzLT5fZGF0YVsnZW1haWwnXSwKCQkJCQkgJHRoaXMtPl9kYXRhWydhY3RpdmUnXSwkdGhpcy0+X2RhdGFbJ2V4cGlyZXMnXSwgc2VyaWFsaXplKCR0aGlzLT5fZGF0YVsncGVybXMnXSksCgkJCQkJIChpbnQpJHRoaXMtPl9kYXRhWydpZCddKSk7CgoJc2VsZjo6YXVkaXQoJ1VwZGF0ZWQgYXBwICcuJHRoaXMtPl9kYXRhWydhcHBuYW1lJ10uJygnLiR0aGlzLT5fZGF0YVsnYXBpa2V5J10uJyknKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkvLyBpbnNlcnQuCgkkcXVlcnkgPSAnSU5TRVJUICcuQ0dTT0NJQUxfVEFCTEVfQVBJS0VZUy4iIChhcGlrZXksYXBwbmFtZSxlbWFpbCxhY3RpdmUsZXhwaXJlcyxwZXJtcyxjcmVhdGVkLG1vZGlmaWVkKQogICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPykiOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydhcGlrZXknXSwkdGhpcy0+X2RhdGFbJ2FwcG5hbWUnXSwkdGhpcy0+X2RhdGFbJ2VtYWlsJ10sCgkJCQkJICR0aGlzLT5fZGF0YVsnYWN0aXZlJ10sJHRoaXMtPl9kYXRhWydleHBpcmVzJ10sc2VyaWFsaXplKCR0aGlzLT5fZGF0YVsncGVybXMnXSksCgkJCQkJIHRpbWUoKSx0aW1lKCkpKTsKCSR0aGlzLT5fZGF0YVsnaWQnXSA9ICRkYi0+SW5zZXJ0X0lEKCk7CgkkdGhpcy0+X2RhdGFbJ2NyZWF0ZWQnXSA9ICR0aGlzLT5fZGF0YVsnbW9kaWZpZWQnXSA9IHRpbWUoKTsKCglzZWxmOjphdWRpdCgnQWRkZWQgYXBwICcuJHRoaXMtPl9kYXRhWydhcHBuYW1lJ10uJygnLiR0aGlzLT5fZGF0YVsnYXBpa2V5J10uJyknKTsKICAgICAgfQogIH0KCgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uICZsb2FkX2Zyb21fcm93KCRyb3cpCiAgewogICAgaWYoICFpc19hcnJheSgkcm93KSApIHJldHVybjsKCiAgICAkb2JqID0gbmV3IGNnc2FfYXBpa2V5OwogICAgZm9yZWFjaCggc2VsZjo6JF9rZXlzIGFzICRrZXkgKQogICAgICB7CglpZiggaXNzZXQoJHJvd1ska2V5XSkgKQoJICB7CgkgICAgJG9iai0+X2RhdGFbJGtleV0gPSAkcm93WyRrZXldOwoJICB9CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcm93WydwZXJtcyddKSAmJiAkcm93WydwZXJtcyddICkKICAgICAgewoJJG9iai0+X2RhdGFbJ3Blcm1zJ10gPSB1bnNlcmlhbGl6ZSgkcm93WydwZXJtcyddKTsKICAgICAgfQoKICAgICRvYmotPnZhbGlkYXRlKEZBTFNFLFRSVUUpOwogICAgcmV0dXJuICRvYmo7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKCRpZCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9BUElLRVlTLicgV0hFUkUgaWQgPSA/JzsKICAgICR0bXAgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoKGludCkkaWQpKTsKICAgIGlmKCBpc19hcnJheSgkdG1wKSApCiAgICAgIHsKCXJldHVybiBzZWxmOjpsb2FkX2Zyb21fcm93KCR0bXApOwogICAgICB9CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsb2FkX2J5X2FwaWtleSgkYXBpa2V5KQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FQSUtFWVMuJyBXSEVSRSBhcGlrZXkgPSA/JzsKICAgICR0bXAgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGFwaWtleSkpOwogICAgaWYoIGlzX2FycmF5KCR0bXApICkKICAgICAgewoJcmV0dXJuIHNlbGY6OmxvYWRfZnJvbV9yb3coJHRtcCk7CiAgICAgIH0KICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWRfYnlfY3JpdGVyaWEoJHBhcmFtcywkYXNfb2JqZWN0cyA9IEZBTFNFKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0FQSUtFWVM7CiAgICAkd2hlcmUgPSBhcnJheSgpOwogICAgJGxpbWl0ID0gLTE7CiAgICAkb2Zmc2V0ID0gLTE7CiAgICBpZiggaXNfYXJyYXkoJHBhcmFtcykgKQogICAgICB7Cglmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkKCSAgewoJICAgICRrZXkgPSBzdHJ0b2xvd2VyKCRrZXkpOwoJICAgIHN3aXRjaCggJGtleSApCgkgICAgICB7CgkgICAgICBjYXNlICdhcGlrZXknOgoJICAgICAgY2FzZSAnYXBwbmFtZSc6CgkgICAgICBjYXNlICdlbWFpbCc6CgkJaWYoIGlzX2FycmF5KCR2YWx1ZSkgKQoJCSAgewoJCSAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdmFsdWUpOyAkaSsrICkKCQkgICAgICB7CgkJCSR2YWx1ZVskaV0gPSAkZGItPnFzdHIoJHZhbHVlWyRpXSk7CgkJICAgICAgfQoJCSAgICAkd2hlcmVbXSA9ICIka2V5IElOICgiLmltcGxvZGUoJywnLCR2YWx1ZSkuJyknOwoJCSAgfQoJCWVsc2UKCQkgIHsKCQkgICAgJHdoZXJlW10gPSAiJGtleSA9ICIuJGRiLT5xc3RyKCR2YWx1ZSk7CgkJICB9CgkJYnJlYWs7CgoJICAgICAgY2FzZSAnY3JlYXRlZCc6CgkgICAgICBjYXNlICdtb2RpZmllZCc6CgkgICAgICBjYXNlICdleHBpcmVzJzoKCQkvLyBkYXRlIGZpZWxkCgkJaWYoIGlzX2FycmF5KCR2YWx1ZSkgKQoJCSAgewoJCSAgICBpZiggY291bnQoJHZhbHVlKSA9PSAyICkKCQkgICAgICB7CgkJCWZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR2YWx1ZSk7ICRpKysgKQoJCQkgIHsKCQkJICAgIGlmKCAhaXNfbnVtZXJpYygkdmFsdWVbJGldKSApCgkJCSAgICAgIHsKCQkJCSR2YWx1ZVskaV0gPSAkZGItPlVuaXhUaW1lU3RhbXAoJHZhbHVlWyRpXSk7CgkJCSAgICAgIH0KCQkJICB9CgkJCSR3aGVyZVtdID0gIiRrZXkgQkVUV0VFTiB7JHZhbHVlWzBdfSBBTkQgeyR2YWx1ZVsxXX0iOwoJCSAgICAgIH0KCQkgICAgLy8gbm90IDIsIHdlIGRvbid0IGNhcmUuCgkJICB9CgkJZWxzZQoJCSAgewoJCSAgICBpZiggIWlzX251bWVyaWMoJHZhbHVlKSApICR2YWx1ZSA9ICRkYi0+VW5peFRpbWVTdGFtcCgkdmFsdWUpOwoJCSAgICBpZiggJHZhbHVlWzBdID09ICctJyApCgkJICAgICAgewoJCQkkdmFsdWUgPSBhYnMoJHZhbHVlKTsKCQkJJHdoZXJlW10gPSAiJGtleSA8PSAiLiRkYi0+cXN0cigkdmFsdWUpOwoJCSAgICAgIH0KCQkgICAgZWxzZQoJCSAgICAgIHsKCQkJJHdoZXJlW10gPSAiJGtleSA+PSAiLiRkYi0+cXN0cigkdmFsdWUpOwoJCSAgICAgIH0KCQkgIH0KCQlicmVhazsKCgkgICAgICBjYXNlICdvcmRlcic6CgkJaWYoIGluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApCgkJICB7CgkJICAgICRvcmRlciA9ICR2YWx1ZTsKCQkgIH0KCQlicmVhazsKCgkgICAgICBjYXNlICdvcmRlcmJ5JzoKCQkkdmFsdWUgPSBzdHJ0b2xvd2VyKCR2YWx1ZSk7CgkJc3dpdGNoKCAkdmFsdWUgKQoJCSAgewoJCSAgY2FzZSAnYXNjJzoKCQkgIGNhc2UgJ2Rlc2MnOgoJCSAgICAkb3JkZXJieSA9ICR2YWx1ZTsKCQkgICAgYnJlYWs7CgkJICB9CgkJYnJlYWs7CgoJICAgICAgY2FzZSAnbGltaXQnOgoJCSRsaW1pdCA9IGFicygoaW50KSRsaW1pdCk7CgkJYnJlYWs7CgoJICAgICAgY2FzZSAnb2Zmc2V0JzoKCQkkb2Zmc2V0ID0gYWJzKChpbnQpJGxpbWl0KTsKCQlicmVhazsKCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgLy8gYXNzZW1ibGUgcXVlcnkuCiAgICBpZiggY291bnQoJHdoZXJlKSApCiAgICAgIHsKCSRxdWVyeSAuPSAnIFdIRVJFICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZSk7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkb3JkZXIpICYmICRvcmRlciApCiAgICAgIHsKCSRxdWVyeSAuPSAnIE9SREVSIEJZICcuJG9yZGVyOwoJaWYoIGlzc2V0KCRvcmRlcmJ5KSAmJiAkb3JkZXJieSApCgkgIHsKCSAgICAkcXVlcnkgLj0gJyAnLiRvcmRlcmJ5OwoJICB9CiAgICAgIH0KCiAgICAkcmVzID0gbnVsbDsKICAgICR0bXAgPSAkZGItPlNlbGVjdExpbWl0KCAkcXVlcnksICRsaW1pdCwgJG9mZnNldCApOwogICAgaWYoICEkdG1wICkgcmV0dXJuICRyZXM7CiAgICAkZGJyID0gJHRtcC0+R2V0QXJyYXkoKTsKICAgICR0bXAtPkNsb3NlKCk7CgogICAgaWYoICEkYXNfb2JqZWN0cyApCiAgICAgIHsKCS8vIGp1c3QgcmV0dXJuIHRoZSBhcnJheSBhcyByb3dzLgoJcmV0dXJuICRkYnI7CiAgICAgIH0KCiAgICAkcmVzID0gYXJyYXkoKTsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRkYnIpOyAkaSsrICkKICAgICAgewoJJHJlc1tdID0gc2VsZjo6bG9hZF9mcm9tX3JvdygkZGJyWyRpXSk7CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwogIH0KCiAgCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfYnlfaWQoJGlkKQogIHsKICAgICRpZCA9IChpbnQpJGlkOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9BUElLRVlTLicgV0hFUkUgaWQgPSA/JzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpZCkpOwoKICAgIHNlbGY6OmF1ZGl0KCdEZWxldGVkIEFwcCAnLiRpZCk7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_apikey_perms.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKZmluYWwgY2xhc3MgY2dzYV9hcGlrZXlfcGVybXMKewogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICBjb25zdCBQRVJNX1VTRVJTX1JFR0lTVEVSID0gJ3Blcm1fdXNlcnNfcmVnaXN0ZXInOwogIGNvbnN0IFBFUk1fVVNFUlNfTE9HSU4gICAgPSAncGVybV91c2Vyc19sb2dpbic7CiAgY29uc3QgUEVSTV9VU0VSU19SRUFEICAgICA9ICdwZXJtX3VzZXJzX3JlYWQnOwogIGNvbnN0IFBFUk1fVVNFUlNfV1JJVEUgICAgPSAncGVybV91c2Vyc193cml0ZSc7CgogIGNvbnN0IFBFUk1fQUNUSVZJVElFU19SRUFEID0gJ3Blcm1fYWN0aXZpdGllc19yZWFkJzsKCiAgY29uc3QgUEVSTV9CQURHRVNfUkVBRCA9ICdwZXJtX2JhZGdlc19yZWFkJzsKCiAgY29uc3QgUEVSTV9DSEVDS0lOU19SRUFEICAgICA9ICdwZXJtX2NoZWNraW5zX3JlYWQnOwogIGNvbnN0IFBFUk1fQ0hFQ0tJTlNfQUREICAgICAgPSAncGVybV9jaGVja2luc19hZGQnOwogIGNvbnN0IFBFUk1fQ0hFQ0tJTlNfREVMICAgICAgPSAncGVybV9jaGVja2luc19kZWwnOwogIGNvbnN0IFBFUk1fQ0hFQ0tJTlNfRURJVCAgICAgPSAncGVybV9jaGVja2luc19lZGl0JzsKICBjb25zdCBQRVJNX0NIRUNLSU5TX0FQUFJPVkUgPSAncGVybV9jaGVja2luc19hcHByb3ZlJzsKCiAgY29uc3QgUEVSTV9GUklFTkRTX1JFQUQgICAgPSAncGVybV9mcmllbmRzX3JlYWQnOwogIGNvbnN0IFBFUk1fRlJJRU5EU19XUklURSAgID0gJ3Blcm1fZnJpZW5kc193cml0ZSc7CgogIGNvbnN0IFBFUk1fTEVBREVSQk9BUkRTX1JFQUQgPSAncGVybV9sZWFkZXJib2FyZHNfcmVhZCc7CgogIGNvbnN0IFBFUk1fTE9DQVRJT05TX1JFQUQgID0gJ3Blcm1fbG9jYXRpb25zX3JlYWQnOwogIGNvbnN0IFBFUk1fTE9DQVRJT05TX1dSSVRFID0gJ3Blcm1fbG9jYXRpb25zX3dyaXRlJzsKCiAgY29uc3QgUEVSTV9OT1RJRklDQVRJT05fU0VORCA9ICdwZXJtX25vdGlmaWNhdGlvbl9zZW5kJzsKCiAgY29uc3QgUEVSTV9TT0NJQUxfUkVBRCAgICAgPSAncGVybV9zb2NpYWxfcmVhZCc7CiAgY29uc3QgUEVSTV9TT0NJQUxfV1JJVEUgICAgPSAncGVybV9zb2NpYWxfcmVhZCc7CiAgY29uc3QgUEVSTV9TT0NJQUxfU0VORCAgICAgPSAncGVybV9zb2NpYWxfc2VuZCc7CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9hbGxfcGVybXMoKQogIHsKICAgICRyZXMgPSBhcnJheSgpOwogICAgJHJlc1tdID0gc2VsZjo6UEVSTV9VU0VSU19SRUdJU1RFUjsKICAgICRyZXNbXSA9IHNlbGY6OlBFUk1fVVNFUlNfTE9HSU47CiAgICAkcmVzW10gPSBzZWxmOjpQRVJNX1VTRVJTX1JFQUQ7CiAgICAkcmVzW10gPSBzZWxmOjpQRVJNX1VTRVJTX1dSSVRFOwogICAgJHJlc1tdID0gc2VsZjo6UEVSTV9BQ1RJVklUSUVTX1JFQUQ7CiAgICAkcmVzW10gPSBzZWxmOjpQRVJNX0JBREdFU19SRUFEOwogICAgJHJlc1tdID0gc2VsZjo6UEVSTV9DSEVDS0lOU19SRUFEOwogICAgJHJlc1tdID0gc2VsZjo6UEVSTV9DSEVDS0lOU19BREQ7CiAgICAkcmVzW10gPSBzZWxmOjpQRVJNX0NIRUNLSU5TX0RFTDsKICAgICRyZXNbXSA9IHNlbGY6OlBFUk1fQ0hFQ0tJTlNfRURJVDsKICAgICRyZXNbXSA9IHNlbGY6OlBFUk1fQ0hFQ0tJTlNfQVBQUk9WRTsKICAgICRyZXNbXSA9IHNlbGY6OlBFUk1fRlJJRU5EU19SRUFEOwogICAgJHJlc1tdID0gc2VsZjo6UEVSTV9GUklFTkRTX1dSSVRFOwogICAgJHJlc1tdID0gc2VsZjo6UEVSTV9MRUFERVJCT0FSRFNfUkVBRDsKICAgICRyZXNbXSA9IHNlbGY6OlBFUk1fTE9DQVRJT05TX1JFQUQ7CiAgICAkcmVzW10gPSBzZWxmOjpQRVJNX0xPQ0FUSU9OU19XUklURTsKICAgICRyZXNbXSA9IHNlbGY6OlBFUk1fTk9USUZJQ0FUSU9OX1NFTkQ7IC8vIGRvYyB0aGlzCiAgICAkcmVzW10gPSBzZWxmOjpQRVJNX1NPQ0lBTF9SRUFEOyAgLy8gZG9jIHRoaXMKICAgICRyZXNbXSA9IHNlbGY6OlBFUk1fU09DSUFMX1dSSVRFOyAvLyBkb2MgdGhpcwogICAgJHJlc1tdID0gc2VsZjo6UEVSTV9TT0NJQUxfU0VORDsgIC8vIGRvYyB0aGlzCiAgICByZXR1cm4gJHJlczsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfcGVybSgkcGVybSkKICB7CiAgICBpZiggIWluX2FycmF5KCRwZXJtLHNlbGY6OmdldF9hbGxfcGVybXMoKSkgKSByZXR1cm4gRkFMU0U7CiAgICByZXR1cm4gVFJVRTsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_badge.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ3NhX2JhZGdlIAp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9maWVsZHMgPSBhcnJheSgnaWQnLCdsZWFkZXJib2FyZF9pZCcsJ25hbWUnLCdkZXNjcmlwdGlvbicsJ2ltYWdlJywnbm90ZXMnLCdtaW5fc2NvcmUnLCdtYXhfc2NvcmUnLCdpc191bmlxdWUnLCdjcmVhdGVkJywnbm90aWZ5X3RvJywnbm90aWZ5X3ByaW9yaXR5Jywnbm90aWZ5X3N1YmplY3QnLCdub3RpZnlfdHBsJyk7CiAgcHJpdmF0ZSBzdGF0aWMgJF9yb2tleXMgPSBhcnJheSgnaWQnLCdsZWFkZXJib2FyZF9pZCcsJ2NyZWF0ZWQnKTsKICBwcml2YXRlIHN0YXRpYyAkX2NhY2hlOwoKICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCk7CiAgcHJpdmF0ZSAkX2RpcnR5OwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogIHsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgkaykKICB7CiAgICBpZiggIWluX2FycmF5KCRrLHNlbGY6OiRfZmllbGRzKSApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkay4nIGdldDogaXMgbm90IGEgdmFsaWQgZmllbGQgZm9yIGEgY2dzYV9iYWRnZScpOwogICAgfQoKICAgIHN3aXRjaCggJGsgKSB7CiAgICBjYXNlICdub3RpZnlfcHJpb3JpdHknOgogICAgY2FzZSAnbm90aWZ5X3N1YmplY3QnOgogICAgY2FzZSAnbm90aWZ5X3RwbCc6CiAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2V4dHJhJ11bJGtdKSApCglyZXR1cm4gJHRoaXMtPl9kYXRhWydleHRyYSddWyRrXTsKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska10pICkKCXJldHVybiAkdGhpcy0+X2RhdGFbJGtdOwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrLCR2KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGssc2VsZjo6JF9maWVsZHMpICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkay4nIHNldDogaXMgbm90IGEgdmFsaWQgZmllbGQgZm9yIGEgY2dzYV9iYWRnZScpOwoKICAgIHN3aXRjaCggJGsgKSB7CiAgICBjYXNlICdub3RpZnlfcHJpb3JpdHknOgogICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnZXh0cmEnXSkgfHwgIWlzX2FycmF5KCR0aGlzLT5fZGF0YVsnZXh0cmEnXSkgKSAKCSR0aGlzLT5fZGF0YVsnZXh0cmEnXSA9IGFycmF5KCk7CiAgICAgICR0aGlzLT5fZGF0YVsnZXh0cmEnXVska10gPSAoaW50KSR2OwogICAgICBicmVhazsKCiAgICBjYXNlICdub3RpZnlfc3ViamVjdCc6CiAgICBjYXNlICdub3RpZnlfdHBsJzoKICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2V4dHJhJ10pIHx8ICFpc19hcnJheSgkdGhpcy0+X2RhdGFbJ2V4dHJhJ10pICkgCgkkdGhpcy0+X2RhdGFbJ2V4dHJhJ10gPSBhcnJheSgpOwogICAgICAkdGhpcy0+X2RhdGFbJ2V4dHJhJ11bJGtdID0gdHJpbSgkdik7CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgICR0aGlzLT5fZGF0YVska10gPSAkdjsKICAgICAgJHRoaXMtPl9kaXJ0eSA9IHRydWU7CiAgICAgIGJyZWFrOwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCkKICB7CiAgICBpZiggdHJpbSgkdGhpcy0+bmFtZSkgPT0gJycgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIG5hbWUgaW4gYmFkZ2UnKTsKICAgIAogICAgaWYoICR0aGlzLT5taW5fc2NvcmUgPD0gMCApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgbWluIHNjb3JlJyk7CgogICAgaWYoICR0aGlzLT5tYXhfc2NvcmUgPiAwICYmICR0aGlzLT5tYXhfc2NvcmUgPD0gJHRoaXMtPm1pbl9zY29yZSApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgbWF4IHNjb3JlJyk7CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICR0bXAgPSBudWxsOwogICAgaWYoICR0aGlzLT5pZCA+IDAgKSB7CiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0JBREdFUy4nIFdIRVJFIG5hbWUgPSA/IEFORCBpZCAhPSA/JzsKICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpcy0+bmFtZSwkdGhpcy0+aWQpKTsKICAgIH0KICAgIGVsc2UgewogICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9CQURHRVMuJyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRoaXMtPm5hbWUpKTsKICAgIH0KICAgIGlmKCAkdG1wICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBIGJhZGdlIHdpdGggdGhpcyBuYW1lIGFscmVhZHkgZXhpc3RzJyk7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2F2ZSgpCiAgewogICAgaWYoICEkdGhpcy0+X2RpcnR5ICkgcmV0dXJuOwogICAgJHRoaXMtPnZhbGlkYXRlKCk7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgewogICAgICByZXR1cm4gJHRoaXMtPl91cGRhdGUoKTsKICAgIH0KICAgIHJldHVybiAkdGhpcy0+X2luc2VydCgpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9pbnNlcnQoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9kaXJ0eSApIHJldHVybjsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJG5vdyA9IHRpbWUoKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLkNHU09DSUFMX1RBQkxFX0JBREdFUy4nCiAgICAgICAgICAgICAgKGxlYWRlcmJvYXJkX2lkLG5hbWUsZGVzY3JpcHRpb24saW1hZ2Usbm90ZXMsZGF0YSxtaW5fc2NvcmUsbWF4X3Njb3JlLGlzX3VuaXF1ZSxjcmVhdGVkKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyknOwogICAgJGV4dHJhID0gJyc7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydleHRyYSddKSApICRleHRyYSA9IHNlcmlhbGl6ZSgkdGhpcy0+X2RhdGFbJ2V4dHJhJ10pOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPmxlYWRlcmJvYXJkX2lkLCR0aGlzLT5uYW1lLCR0aGlzLT5kZXNjcmlwdGlvbiwkdGhpcy0+aW1hZ2UsCgkJCQkgICAgICR0aGlzLT5ub3RlcywkZXh0cmEsJHRoaXMtPm1pbl9zY29yZSwkdGhpcy0+bWF4X3Njb3JlLCR0aGlzLT5pc191bmlxdWUsJG5vdykpOwogICAgJHRoaXMtPl9kYXRhWydpZCddID0gJGRiLT5JbnNlcnRfSUQoKTsKICAgICR0aGlzLT5fZGlydHkgPSBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBfdXBkYXRlKCkKICB7CiAgICBpZiggISR0aGlzLT5fZGlydHkgKSByZXR1cm47CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJGV4dHJhID0gJyc7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydleHRyYSddKSApICRleHRyYSA9IHNlcmlhbGl6ZSgkdGhpcy0+X2RhdGFbJ2V4dHJhJ10pOwoKICAgICRxdWVyeSA9ICdVUERBVEUgJy5DR1NPQ0lBTF9UQUJMRV9CQURHRVMuJwogICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgZGVzY3JpcHRpb24gPSA/LCBpbWFnZSA9ID8sIG5vdGVzID0gPywgZGF0YSA9ID8sCiAgICAgICAgICAgICAgICAgIG1pbl9zY29yZSA9ID8sIG1heF9zY29yZSA9ID8sIGlzX3VuaXF1ZSA9ID8KICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksCgkJCWFycmF5KCR0aGlzLT5uYW1lLCR0aGlzLT5kZXNjcmlwdGlvbiwkdGhpcy0+aW1hZ2UsJHRoaXMtPm5vdGVzLAoJCQkgICAgICAkZXh0cmEsICR0aGlzLT5taW5fc2NvcmUsICR0aGlzLT5tYXhfc2NvcmUsICR0aGlzLT5pc191bmlxdWUsCgkJCSAgICAgICR0aGlzLT5pZCkpOwogICAgJHRoaXMtPl9kaXJ0eSA9IEZBTFNFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZSgpCiAgewogICAgaWYoICEkdGhpcy0+aWQgKSByZXR1cm47IC8vIGNhbid0IGRlbGV0ZSBpdC4KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgJGRpciA9IGNnc2FfdXRpbHM6OmdldF9iYWRnZV9maWxlcGF0aF9ieV9iYWRnZV9pZCgkdGhpcy0+aWQpOwogICAgaWYoIGlzX2RpcigkZGlyKSAmJiAkdGhpcy0+aW1hZ2UgKSB7CiAgICAgIGNnc2FfdXRpbHM6OmRlbGV0ZV9pbWFnZSgkZGlyLCR0aGlzLT5pbWFnZSk7CiAgICB9CgogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQkFER0VTLicgV0hFUkUgaWQgPSA/JzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5pZCkpOwoKICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0JBREdFU19VU0VSUy4nIFdIRVJFIGJhZGdlX2lkID0gPyc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpcy0+aWQpKTsKCiAgICB1bnNldChzZWxmOjokX2NhY2hlWyR0aGlzLT5pZF0pOwogICAgdW5zZXQoJHRoaXMtPl9kYXRhWydpZCddKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBjb3VudF9tZW1iZXJzKCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBjb3VudCh1aWQpIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9CQURHRVNfVVNFUlMuJyBXSEVSRSBiYWRnZV9pZCA9ID8nOwogICAgJGNvdW50ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5pZCkpOwogICAgcmV0dXJuICRjb3VudDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBpc19tZW1iZXIoJHVpZCkKICB7CiAgICAkdWlkID0gKGludCkkdWlkOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgdWlkIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9CQURHRVNfVVNFUlMuJyBXSEVSRSBiYWRnZV9pZCA9ID8gQU5EIHVpZCA9ID8nOwogICAgJGNvdW50ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5pZCwkdWlkKSk7CiAgICByZXR1cm4gJGNvdW50ICE9IDA7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYWRkX21lbWJlcigkdWlkKQogIHsKICAgICR1aWQgPSAoaW50KSR1aWQ7CiAgICBpZiggJHRoaXMtPmlzX21lbWJlcigkdWlkKSApIHJldHVybiBGQUxTRTsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuQ0dTT0NJQUxfVEFCTEVfQkFER0VTX1VTRVJTLicgKGJhZGdlX2lkLGxlYWRlcmJvYXJkX2lkLHVpZCxjcmVhdGVkKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyknOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPmlkLCR0aGlzLT5sZWFkZXJib2FyZF9pZCwkdWlkLHRpbWUoKSkpOwogICAgaWYoICRkYnIgKSByZXR1cm4gVFJVRTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBsaXN0X21lbWJlcnMoJGxpbWl0ID0gMjUsJG9mZnNldCA9IDApCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgdWlkIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9CQURHRVNfVVNFUlMuJyAKICAgICAgICAgICAgICBXSEVSRSBsZWFkZXJib2FyZF9pZCA9ID8gCiAgICAgICAgICAgICAgQU5EIGJhZGdlX2lkID0gPwogICAgICAgICAgICAgIE9SREVSIEJZIGNyZWF0ZWQgREVTQyc7CiAgICAkcnMgPSAkZGItPlNlbGVjdExpbWl0KCRxdWVyeSwkbGltaXQsJG9mZnNldCwKCQkJICAgYXJyYXkoJHRoaXMtPmxlYWRlcmJvYXJkX2lkLCR0aGlzLT5pZCkpOwogICAgJHJlcyA9IGFycmF5KCk7CiAgICB3aGlsZSggJHJzICYmICEkcnMtPkVPRiApIHsKICAgICAgJHJlc1tdID0gJHJzLT5maWVsZHNbJ3VpZCddOwogICAgfQogICAgcmV0dXJuICRyZXM7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX21lbWJlcigkdWlkKQogIHsKICAgICR1aWQgPSAoaW50KSR1aWQ7CiAgICBpZiggISR0aGlzLT5pc19tZW1iZXIoJHVpZCkgKSByZXR1cm4gRkFMU0U7CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0JBREdFU19VU0VSUy4nIAogICAgICAgICAgICAgIFdIRVJFIGJhZGdlX2lkID0gPyBBTkQgbGVhZGVyYm9hcmRfaWQgPSA/IEFORCB1aWQgPSA/JzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5pZCwkdGhpcy0+bGVhZGVyYm9hcmRfaWQsJHVpZCkpOwogICAgaWYoICRkYnIgKSByZXR1cm4gVFJVRTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWRfZnJvbV9kYXRhKCRkYXRhLCRkaXJ0eSA9IEZBTFNFKQogIHsKICAgIGlmKCAhaXNzZXQoJGRhdGFbJ2lkJ10pIHx8ICFpc3NldCgkZGF0YVsnbGVhZGVyYm9hcmRfaWQnXSkgfHwgIWlzc2V0KCRkYXRhWyduYW1lJ10pICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGRhdGEgaW4gYXJyYXkgLi4uIG1pc3NpbmcgZGF0YScpOwogICAgfQoKICAgIGZvcmVhY2goICRkYXRhIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9maWVsZHMpICYmICRrZXkgIT0gJ2RhdGEnICkgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCBkYXRhIGtleTogJy4ka2V5LicgaW4gYXJyYXkgLi4uLiBjYW5ub3QgbG9hZCcpOwogICAgICB9CiAgICB9CgogICAgJG9iaiA9IG5ldyBjZ3NhX2JhZGdlOwogICAgaWYoIGlzc2V0KCRkYXRhWydkYXRhJ10pICkgewogICAgICAkZGF0YVsnZXh0cmEnXSA9IHVuc2VyaWFsaXplKCRkYXRhWydkYXRhJ10pOwogICAgICB1bnNldCgkZGF0YVsnZGF0YSddKTsKICAgIH0KICAgICRvYmotPl9kYXRhID0gJGRhdGE7CiAgICAkb2JqLT5fZGlydHkgPSAkZGlydHk7CiAgICByZXR1cm4gJG9iajsKICB9CgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIF9nZXRfYWxsKCkKICB7CiAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfY2FjaGUpICkgewogICAgICBzZWxmOjokX2NhY2hlID0gYXJyYXkoKTsKCiAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQkFER0VTOwogICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CglzZWxmOjokX2NhY2hlID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ2lkJyk7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gc2VsZjo6JF9jYWNoZTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWRfYnlfaWQoJGlkLCRhc19vYmogPSBUclVFKQogIHsKICAgICRpZCA9IChpbnQpJGlkOwogICAgaWYoIChpbnQpJGlkIDw9IDAgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGlkIHNwZWNpZmllZCcpOwoKICAgIHNlbGY6Ol9nZXRfYWxsKCk7CiAgICBpZiggaXNzZXQoc2VsZjo6JF9jYWNoZVskaWRdKSApIHsKICAgICAgaWYoICRhc19vYmogKSB7CglyZXR1cm4gc2VsZjo6bG9hZF9mcm9tX2RhdGEoc2VsZjo6JF9jYWNoZVskaWRdKTsKICAgICAgfQogICAgICByZXR1cm4gc2VsZjo6JF9jYWNoZVskaWRdOwogICAgfQogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfYWxsKCRhc19vYmogPSBUUlVFKQogIHsKICAgIHNlbGY6Ol9nZXRfYWxsKCk7CgogICAgaWYoICEkYXNfb2JqICkgewogICAgICByZXR1cm4gc2VsZjo6JF9jYWNoZTsKICAgIH0KICAgIAogICAgJHJlcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCBzZWxmOjokX2NhY2hlIGFzICRvbmUgKSB7CiAgICAgICRyZXNbXSA9IHNlbGY6OmxvYWRfZnJvbV9kYXRhKCRvbmUpOwogICAgfQogICAgcmV0dXJuICRyZXM7CiAgfQoKCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_badge_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ3NhX2JhZGdlX3V0aWxzIAp7CiAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X21lbWJlcl9iYWRnZXMoJHVpZCkKICB7CiAgICAkdWlkID0gKGludCkkdWlkOwogICAgaWYoICR1aWQgPD0gMCApIHJldHVybjsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBESVNUSU5DVCBiYWRnZV9pZCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQkFER0VTX1VTRVJTLicKICAgICAgICAgICAgICBXSEVSRSB1aWQgPSA/JzsKICAgICR0bXAgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJHVpZCkpOwogICAgcmV0dXJuICR0bXA7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlbW92ZV9iYWRnZV9tZW1iZXIoY2dzYV9iYWRnZSYgJGJhZGdlLCR1aWQpCiAgewogICAgJGJhZGdlLT5yZW1vdmVfbWVtYmVyKCR1aWQpOwoKICAgIC8vIHNlbmQgb3V0IGEgbm90aWZpY2F0aW9uLgogICAgJG5vdGlmaWVyID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR05vdGlmaWVyJyk7CiAgICAkY2dzYSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgIGlmKCAkbm90aWZpZXIgJiYgJGJhZGdlLT5ub3RpZnlfcHJpb3JpdHkgPiAwICkgewogICAgICAkbXNnID0gbmV3IG5vdGlmaWNhdGlvbl9tZXNzYWdlKCk7CiAgICAgICRtc2ctPm1vZHVsZSA9ICRjZ3NhLT5HZXROYW1lKCk7CiAgICAgIGlmKCAkYmFkZ2UtPm5vdGlmeV90byA9PSAndXNlcicgKSB7CgkkbXNnLT50byA9ICR1aWQ7CiAgICAgIH0KICAgICAgJG1zZy0+c3ViamVjdCA9ICRiYWRnZS0+bm90aWZ5X3N1YmplY3Q7CiAgICAgICRtc2ctPnByaW9yaXR5ID0gJGJhZGdlLT5ub3RpZnlfcHJpb3JpdHk7CiAgICAgIAogICAgICAkc21hcnR5ID0gY21zX3V0aWxzOjpnZXRfc21hcnR5KCk7CiAgICAgICRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCdhY3Rpb24nLCdyZXZva2VkJyk7CiAgICAgICRzbWFydHktPmFzc2lnbignYmFkZ2UnLCRiYWRnZSk7CiAgICAgICRzbWFydHktPmFzc2lnbigndWlkJywkdWlkKTsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCd1c2VybmFtZScsJGZldS0+R2V0VXNlck5hbWUoJHVpZCkpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ2VtYWlsJywkZmV1LT5HZXRFbWFpbCgkdWlkKSk7CiAgICAgICRtc2ctPmJvZHkgPSAkbm90aWZpZXItPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRiYWRnZS0+bm90aWZ5X3RwbCk7CgogICAgICAkcmVzID0gJG5vdGlmaWVyLT5ub3RpZnkoJG1zZyk7CiAgICAgIGlmKCAhJHJlcyApIHsKCWF1ZGl0KCcnLCRjZ3NhLT5HZXROYW1lKCksJ05vdGlmaWNhdGlvbiBmb3IgYmFkZ2UgJy4kYmFkZ2UtPm5hbWUuJyBsZWFkZXJib2FyZCAoJy4kYmFkZ2UtPmxlYWRlcmJvYXJkX2lkLicpIGZhaWxlZCcpOwogICAgICB9CiAgICAgIGVsc2UgewoJYXVkaXQoJycsJGNnc2EtPkdldE5hbWUoKSwnTm90aWZpY2F0aW9uIHNlbnQgZm9yIGJhZGdlICcuJGJhZGdlLT5uYW1lLicgbGVhZGVyYm9hcmQgKCcuJGJhZGdlLT5sZWFkZXJib2FyZF9pZC4nKSBmYWlsZWQnKTsKICAgICAgfQogICAgfQoKICAgIC8vIHNlbmQgb3V0IHRoZSBldmVudC4KICAgICRwYXJtcyA9IGFycmF5KCdiYWRnZSc9PiRiYWRnZSwndWlkJz0+JHVpZCk7CiAgICAkY2dzYS0+U2VuZEV2ZW50KCdPbkJhZGdlUmV2b2tlZCcsJHBhcm1zKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gYWRkX2JhZGdlX21lbWJlcihjZ3NhX2JhZGdlJiAkYmFkZ2UsJHVpZCkKICB7CiAgICAvLyBhZGQgdGhlIHVzZXIgdG8gdGhlIGRhdGFiYXNlCiAgICAkYmFkZ2UtPmFkZF9tZW1iZXIoJHVpZCk7CiAgICAKICAgIC8vIHNlbmQgb3V0IGEgbm90aWZpY2F0aW9uLgogICAgJG5vdGlmaWVyID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR05vdGlmaWVyJyk7CiAgICAkY2dzYSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgIGlmKCAkbm90aWZpZXIgJiYgJGJhZGdlLT5ub3RpZnlfcHJpb3JpdHkgPiAwICkgewoKICAgICAgJG1zZyA9IG5ldyBub3RpZmljYXRpb25fbWVzc2FnZSgpOwogICAgICAkbXNnLT5tb2R1bGUgPSAkY2dzYS0+R2V0TmFtZSgpOwogICAgICBpZiggJGJhZGdlLT5ub3RpZnlfdG8gPT0gJ3VzZXInICkgewoJJG1zZy0+dG8gPSAkdWlkOwogICAgICB9CiAgICAgICRtc2ctPnN1YmplY3QgPSAkYmFkZ2UtPm5vdGlmeV9zdWJqZWN0OwogICAgICAkbXNnLT5wcmlvcml0eSA9ICRiYWRnZS0+bm90aWZ5X3ByaW9yaXR5OwogICAgICAKICAgICAgJHNtYXJ0eSA9IGNtc191dGlsczo6Z2V0X3NtYXJ0eSgpOwogICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICRzbWFydHktPmFzc2lnbignYWN0aW9uJywnZ3JhbnRlZCcpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ2JhZGdlJywkYmFkZ2UpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ3VpZCcsJHVpZCk7CiAgICAgICRzbWFydHktPmFzc2lnbigndXNlcm5hbWUnLCRmZXUtPkdldFVzZXJOYW1lKCR1aWQpKTsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCdlbWFpbCcsJGZldS0+R2V0RW1haWwoJHVpZCkpOwogICAgICAkbXNnLT5ib2R5ID0gJG5vdGlmaWVyLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkYmFkZ2UtPm5vdGlmeV90cGwpOwoKICAgICAgJHJlcyA9ICRub3RpZmllci0+bm90aWZ5KCRtc2cpOwogICAgICBpZiggISRyZXMgKSB7CglhdWRpdCgnJywkY2dzYS0+R2V0TmFtZSgpLCdOb3RpZmljYXRpb24gZm9yIGJhZGdlICcuJGJhZGdlLT5uYW1lLicgbGVhZGVyYm9hcmQgKCcuJGJhZGdlLT5sZWFkZXJib2FyZF9pZC4nKSBmYWlsZWQnKTsKICAgICAgfQogICAgICBlbHNlIHsKCWF1ZGl0KCcnLCRjZ3NhLT5HZXROYW1lKCksJ05vdGlmaWNhdGlvbiBzZW50IGZvciBiYWRnZSAnLiRiYWRnZS0+bmFtZS4nIGxlYWRlcmJvYXJkICgnLiRiYWRnZS0+bGVhZGVyYm9hcmRfaWQuJykgZmFpbGVkJyk7CiAgICAgIH0KICAgIH0KCiAgICAvLyBzZW5kIG91dCB0aGUgZXZlbnQuCiAgICAkcGFybXMgPSBhcnJheSgnYmFkZ2UnPT4kYmFkZ2UsJ3VpZCc9PiR1aWQpOwogICAgJGNnc2EtPlNlbmRFdmVudCgnT25CYWRnZUF3YXJkZWQnLCRwYXJtcyk7CiAgfQogIAp9IC8vIGVuZCBvZiBjbGFzcwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_checkin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmdW5jdGlvbiBzZXJpYWxpemVfbm90ZW1wdHkoJGRhdGEpCnsKICAkcmVzID0gbnVsbDsKICBpZiggKGlzX2FycmF5KCRkYXRhKSAmJiBjb3VudCgkZGF0YSkpIHx8IChpc19zdHJpbmcoJGRhdGEpICYmICRkYXRhICE9ICcnKSApIHsKICAgICRyZXMgPSBzZXJpYWxpemUoJGRhdGEpOwogIH0KICByZXR1cm4gJHJlczsKfQoKY2xhc3MgY2dzYV9jaGVja2luCnsKICBwcml2YXRlIHN0YXRpYyAkX2tleXMgPSBhcnJheSgnaWQnLCdvYmlkJywnb3duZXInLCdwYXJlbnRfaWQnLCdsb2NhdGlvbicsJ2FjdGl2aXR5JywnbXNnJywnbGF0JywnbG5nJywnY3JlYXRlZCcsJ2FwcHJvdmVkJywnZGF0YScsJ3Byb2Nlc3NlZCcpOwogIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoKTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRwYXJhbXMgPSAnJykKICB7CiAgICBpZiggIWlzX2FycmF5KCRwYXJhbXMpICkgcmV0dXJuOwogICAgJHRoaXMtPl9idWlsZF9mcm9tX2FycmF5KCRwYXJhbXMpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgewogICAgaWYoICRrZXkgPT0gJ29iaWQnICkgewogICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnb2JpZCddKSB8fCAkdGhpcy0+X2RhdGFbJ29iaWQnXSA9PSAnJyApIHsKCSR0aGlzLT5fZGF0YVsnb2JpZCddID0gc3RyX3JlcGxhY2UoJy4nLCdfJyx1bmlxaWQoJ2MnLHRydWUpKTsKICAgICAgfQogICAgfQoKICAgIHN3aXRjaCggJGtleSApIHsKICAgIGNhc2UgJ2lkJzoKICAgIGNhc2UgJ29iaWQnOgogICAgY2FzZSAnb3duZXInOgogICAgY2FzZSAncGFyZW50X2lkJzoKICAgIGNhc2UgJ2xvY2F0aW9uJzoKICAgIGNhc2UgJ2FjdGl2aXR5JzoKICAgIGNhc2UgJ21zZyc6CiAgICBjYXNlICdsYXQnOgogICAgY2FzZSAnbG5nJzoKICAgIGNhc2UgJ2NyZWF0ZWQnOgogICAgY2FzZSAnYXBwcm92ZWQnOgogICAgY2FzZSAncHJvY2Vzc2VkJzoKICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSB7CglyZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIGlmKCBzdGFydHN3aXRoKCRrZXksJ2V4dHJhXycpICkgewoJaWYoIGlzX2FycmF5KCR0aGlzLT5fZGF0YVsnZGF0YSddKSAmJiBpc19hcnJheSgkdGhpcy0+X2RhdGFbJ2RhdGEnXVska2V5XSkgKSB7CgkgIHJldHVybiAkdGhpcy0+X2RhdGFbJ2RhdGEnXVska2V5XTsKCX0KICAgICAgfQogICAgICBlbHNlIHsKCXRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0F0dGVtcHQgdG8gcmV0cmlldmUgaW52YWxpZCBmaWVsZCAnLiRrZXkuJyBmcm9tIGNnc2FfY2hlY2tpbiBvYmplY3QnKTsKICAgICAgfQogICAgICBicmVhazsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCR2YWx1ZSkKICB7CiAgICBpZiggJGtleSA9PSAnaWQnICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCBpZCBpbnRvIGNnc2FfYWN0aXZpdHkgb2JqZWN0Jyk7CiAgICB9CiAgICBpZiggJGtleSA9PSAnb2JpZCcgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IG9iaWQgaW50byBjZ3NhX2FjdGl2aXR5IG9iamVjdCcpOwogICAgfQoKICAgIHN3aXRjaCggJGtleSApIHsKICAgIGNhc2UgJ2lkJzoKICAgIGNhc2UgJ29iaWQnOgogICAgY2FzZSAnb3duZXInOgogICAgY2FzZSAncGFyZW50X2lkJzoKICAgIGNhc2UgJ2xvY2F0aW9uJzoKICAgIGNhc2UgJ2FjdGl2aXR5JzoKICAgIGNhc2UgJ21zZyc6CiAgICBjYXNlICdsYXQnOgogICAgY2FzZSAnbG5nJzoKICAgIGNhc2UgJ2NyZWF0ZWQnOgogICAgY2FzZSAnYXBwcm92ZWQnOgogICAgY2FzZSAncHJvY2Vzc2VkJzoKICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSB7CglyZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIGlmKCBzdGFydHN3aXRoKCRrZXksJ2V4dHJhXycpICkgewoJaWYoICFpc19hcnJheSgkdGhpcy0+X2RhdGFbJ2RhdGEnXSkgKSAkdGhpcy0+X2RhdGFbJ2RhdGEnXSA9IGFycmF5KCk7CgkkdGhpcy0+X2RhdGFbJ2RhdGEnXVska2V5XSA9ICR2YWx1ZTsKCXJldHVybjsKICAgICAgfQogICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCBpbnZhbGlkIGZpZWxkICcuJGtleS4nIGludG8gY2dzYV9jaGVja2luIG9iamVjdCcpOwogICAgfQogICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9faXNzZXQoJGtleSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byByZXRyaWV2ZSBpbnZhbGlkIGtleSAnLiRrZXkuJyBmcm9tIGNnc2FfY2hlY2tpbiBvYmplY3QnKTsKICAgIH0KCiAgICBzd2l0Y2goICRrZXkgKSB7CiAgICBjYXNlICdpZCc6CiAgICBjYXNlICdvYmlkJzoKICAgIGNhc2UgJ293bmVyJzoKICAgIGNhc2UgJ3BhcmVudF9pZCc6CiAgICBjYXNlICdsb2NhdGlvbic6CiAgICBjYXNlICdhY3Rpdml0eSc6CiAgICBjYXNlICdtc2cnOgogICAgY2FzZSAnbGF0JzoKICAgIGNhc2UgJ2xuZyc6CiAgICBjYXNlICdjcmVhdGVkJzoKICAgIGNhc2UgJ2FwcHJvdmVkJzoKICAgIGNhc2UgJ3Byb2Nlc3NlZCc6CiAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICkgcmV0dXJuIFRSVUU7CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2RhdGFbJ2RhdGEnXSkgJiYgaXNfYXJyYXkoJHRoaXMtPl9kYXRhWydkYXRhJ11bJGtleV0pICkgewoJcmV0dXJuIFRSdUU7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgkZGVlcCA9IGZhbHNlKQogIHsKICAgIGlmKCAkdGhpcy0+b3duZXIgPT0gJycgfHwgJHRoaXMtPm1zZyA9PSAnJyB8fCAkdGhpcy0+bG9jYXRpb24gPT0gJycgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdjZ3NhX2NoZWNraW4gb2JqZWN0IGRvZXMgbm90IHZhbGlkYXRlJyk7CgogICAgaWYoICRkZWVwICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdjZ3NhX2NoZWNraW4gb2JqZWN0IGRvZXMgbm90IHZhbGlkYXRlIChkZWVwIHZhbGlkYXRpb24gZmFpbGVkJyk7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gdGFnX3VzZXIoJG1peGVkX2luKQogIHsKICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWyd1c2VydGFncyddKSApIHsKICAgICAgJHRoaXMtPl9kYXRhWyd1c2VydGFncyddID0gYXJyYXkoKTsKICAgIH0KCiAgICAkbWl4ZWQgPSBhcnJheSgpOwogICAgaWYoICFpc19hcnJheSgkbWl4ZWRfaW4pICkgewogICAgICAkdG1wID0gZXhwbG9kZSgnLCcsJG1peGVkX2luKTsKICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewoJZm9yZWFjaCggJHRtcCBhcyAkdCApIHsKCSAgJHQgPSAoaW50KXRyaW0oJHQpOwoJICBpZiggJHQgPj0gMCApIHsKCSAgICAkbWl4ZWRbXSA9ICR0OwoJICB9Cgl9CiAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAkbWl4ZWQgPSAkbWl4ZWRfaW47CiAgICB9CiAgICAKICAgICRuID0gMDsKICAgIGZvcmVhY2goICRtaXhlZCBhcyAkb25ldXNlciApIHsKICAgICAgLy8gdmFsaWQgdXNlcj8KICAgICAgJG9uZXVzZXIgPSAoaW50KSRvbmV1c2VyOwogICAgICBpZiggJG9uZXVzZXIgPD0gMCApIGNvbnRpbnVlOwogICAgICBpZiggIWluX2FycmF5KCRvbmV1c2VyLCR0aGlzLT5fZGF0YVsndXNlcnRhZ3MnXSkgKSB7CgkkdGhpcy0+X2RhdGFbJ3VzZXJ0YWdzJ11bXSA9ICRvbmV1c2VyOwoJJG4rKzsKICAgICAgfQogICAgfQogICAgcmV0dXJuICRuOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF90YWdnZWRfdXNlcnMoKQogIHsKICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ3VzZXJ0YWdzJ10pICkgewogICAgICByZXR1cm4gJHRoaXMtPl9kYXRhWyd1c2VydGFncyddOwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNhdmUoKQogIHsKICAgICR0aGlzLT52YWxpZGF0ZSgpOwoKICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSB8fCAkdGhpcy0+X2RhdGFbJ2lkJ10gPCAxICkgewogICAgICByZXR1cm4gJHRoaXMtPl9pbnNlcnQoKTsKICAgIH0KICAgIHJldHVybiAkdGhpcy0+X3VwZGF0ZSgpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZSgpCiAgewogICAgaWYoICEkdGhpcy0+aWQgKSByZXR1cm47CgogICAgLy8gY2FuIG9ubHkgZGVsZXRlIGlmIGl0ZW0gZG9lcyBub3QgaGF2ZSBjaGlsZHJlbi4KICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9DSEVDS0lOUy4nIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpcy0+aWQpKTsKICAgIGlmKCAkdG1wICkgcmV0dXJuIEZBTFNFOwoKICAgIC8vIHNlbmQgYW4gZXZlbnQKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU29jaWFsQXBwJyk7CiAgICAkbW9kLT5TZW5kRXZlbnQoJ1ByZURlbGV0ZUNoZWNraW4nLGFycmF5KCdjaGVja2luJz0+JHRoaXMpKTsKCiAgICAvLyBkZWxldGUgYW55IGZpbGVzCiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPmRhdGEpICYmIGlzX2FycmF5KCR0aGlzLT5kYXRhWydmaWxlcyddKSAmJiBjb3VudCgkdGhpcy0+ZGF0YVsnZmlsZXMnXSkgKSB7CiAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgICAgZm9yZWFjaCggJHRoaXMtPmRhdGFbJ2ZpbGVzJ10gYXMgJGZpbGUgKSB7CgkkZmlsZXMgPSBnbG9iKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ18nLiRtb2QtPkdldE5hbWUoKSwnKicuJGZpbGUpKTsKCWlmKCBpc19hcnJheSgkZmlsZXMpICYmIGNvdW50KCRmaWxlcykgKSB7CgkgIGZvcmVhY2goJGZpbGVzIGFzICRvbmUpIHsKCSAgICBAdW5saW5rKCRvbmUpOwoJICB9Cgl9CiAgICAgIH0KICAgIH0KCiAgICAvLyBkZWxldGUgdGhlIGl0ZW0uCiAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9DSEVDS0lOUy4nIFdIRVJFIGlkID0gPyc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5pZCkpOwoKICAgIC8vIGxvZyBpdAogICAgY2dzYV9sb2c6OmFkZCgnY2hlY2tpbnMnLCdDaGVja2luIGRlbGV0ZWQgJyxudWxsLCR0aGlzLT5pZCk7CgogICAgLy8gc2VuZCBhbiBldmVudAogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgICRtb2QtPlNlbmRFdmVudCgnUG9zdERlbGV0ZUNoZWNraW4nLGFycmF5KCdjaGVja2luX2lkJz0+JHRoaXMtPmlkKSk7CgogICAgLy8gYW5kIGRvbmUuCiAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ2lkJ10pOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBwcml2YXRlIGZ1bmN0aW9uIF9pbnNlcnQoKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgJG5vdyA9IHRpbWUoKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLkNHU09DSUFMX1RBQkxFX0NIRUNLSU5TLiIgKHBhcmVudF9pZCwgb2JpZCwgb3duZXIsIGxvY2F0aW9uLCBhY3Rpdml0eSwgbXNnLCBjcmVhdGVkLCBhcHByb3ZlZCwgcHJvY2Vzc2VkLCBkYXRhKQogICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/LCRub3csPyw/LD8pIjsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5wYXJlbnRfaWQsJHRoaXMtPm9iaWQsJHRoaXMtPm93bmVyLCR0aGlzLT5sb2NhdGlvbiwkdGhpcy0+YWN0aXZpdHksJHRoaXMtPm1zZywkdGhpcy0+YXBwcm92ZWQsCgkJCQkgICAgICR0aGlzLT5wcm9jZXNzZWQsc2VyaWFsaXplX25vdGVtcHR5KCR0aGlzLT5fZGF0YVsnZGF0YSddKSkpOwogICAgaWYoICEkZGJyICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnNlcnQgb2YgY2hlY2tpbiBmYWlsZWQgJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKICAgIH0KICAgIGRlYnVnX3RvX2xvZygkZGItPnNxbCk7CiAgICAkdGhpcy0+X2RhdGFbJ2lkJ10gPSAkZGItPkluc2VydF9JRCgpOwoKICAgIC8vICBsb2cgaXQKICAgIGNnc2FfbG9nOjphZGQoJ2NoZWNraW5zJywnQ2hlY2tpbiBhZGRlZCcsJHRoaXMtPm93bmVyLCR0aGlzLT5fZGF0YVsnaWQnXSk7CgogICAgLy8gc2VuZCBhbiBldmVudAogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgICRtb2QtPlNlbmRFdmVudCgnT25DaGVja2luJyxhcnJheSgnY2hlY2tpbicsJHRoaXMpKTsKCiAgICByZXR1cm4gVFJVRTsKICB9CgogIHByaXZhdGUgZnVuY3Rpb24gX3VwZGF0ZSgpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgIAogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLkNHU09DSUFMX1RBQkxFX0NIRUNLSU5TLicKICAgICAgICAgICAgICBTRVQgcGFyZW50X2lkID0gPywgb3duZXIgPSA/LCBsb2NhdGlvbiA9ID8sIGFjdGl2aXR5ID0gPywgbXNnID0gPywgZGF0YSA9ID8sIGFwcHJvdmVkID0gPywgcHJvY2Vzc2VkID0gPwogICAgICAgICAgICAgIFdIRVJFIGlkID0gPyc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwKCQkJYXJyYXkoJHRoaXMtPnBhcmVudF9pZCwkdGhpcy0+b3duZXIsJHRoaXMtPmxvY2F0aW9uLCR0aGlzLT5hY3Rpdml0eSwKCQkJICAgICAgJHRoaXMtPm1zZyxzZXJpYWxpemVfbm90ZW1wdHkoJHRoaXMtPl9kYXRhWydkYXRhJ10pLAoJCQkgICAgICAkdGhpcy0+YXBwcm92ZWQsJHRoaXMtPnByb2Nlc3NlZCwkdGhpcy0+aWQpKTsKICAgIGlmKCAhJGRiciApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVXBkYXRlIG9mIGNoZWNraW4gZmFpbGVkICcpOwogICAgfQoKICAgIC8vIHRvZG86IGxvZyBpdAogICAgY2dzYV9sb2c6OmFkZCgnY2hlY2tpbnMnLCdDaGVja2luIG1vZGlmaWVkJywkdGhpcy0+b3duZXIsJHRoaXMtPmlkKTsKCiAgICAvLyB0b2RvOiBzZW5kIGV2ZW50CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NvY2lhbEFwcCcpOwogICAgJG1vZC0+U2VuZEV2ZW50KCdPblVwZGF0ZUNoZWNraW4nLGFycmF5KCdjaGVja2luJywkdGhpcykpOwoKICAgIHJldHVybiBUUlVFOwogIH0KCgogIC8vIGxvYWQgYSBzaW5nbGUgbWVzc2FnZQogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWRfYnlfaWQoJGlkLCRhc19hcnJheSA9IEZBTFNFKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9DSEVDS0lOUy4nIFdIRVJFIGlkID0gPyc7CiAgICAkcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KChpbnQpJGlkKSk7CiAgICBpZiggIWlzX2FycmF5KCRyb3cpICkgewogICAgICByZXR1cm47CiAgICB9CgogICAgZGVidWdfdG9fbG9nKCRyb3csJ3JvdycpOwogICAgaWYoIGlzc2V0KCRyb3dbJ2RhdGEnXSkgJiYgJHJvd1snZGF0YSddICE9ICcnICkgewogICAgICBkZWJ1Z190b19sb2coJHJvdywncm93ZGF0YScpOwogICAgICAkcm93WydkYXRhJ10gPSB1bnNlcmlhbGl6ZSgkcm93WydkYXRhJ10pOwogICAgfQogICAgaWYoICRhc19hcnJheSApIHJldHVybiAkcm93OwogICAgJG9iaiA9IHNlbGY6OmxvYWRfZnJvbV9hcnJheSgkcm93KTsKICAgIHJldHVybiAkb2JqOwogIH0KCgogIHByaXZhdGUgZnVuY3Rpb24gX2J1aWxkX2Zyb21fYXJyYXkoJGRhdGEpCiAgewogICAgZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgIGlmKCAka2V5ID09ICdkYXRhJyAmJiAhaXNfYXJyYXkoJHZhbHVlKSAmJiAkdmFsdWUgIT0gJycgKSAkdmFsdWUgPSB1bnNlcmlhbGl6ZSgkdmFsdWUpOwogICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICB9CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZsb2FkX2Zyb21fYXJyYXkoJGRhdGEpCiAgewogICAgJG9iaiA9IG5ldyBjZ3NhX2NoZWNraW47CiAgICAkb2JqLT5fYnVpbGRfZnJvbV9hcnJheSgkZGF0YSk7CiAgICByZXR1cm4gJG9iajsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdG9fYXJyYXkoJG9iaikKICB7CiAgICBpZiggaXNfYXJyYXkoJG9iaikgKSByZXR1cm4gJG9iajsKCiAgICAkZGF0YSA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCBzZWxmOjokX2tleXMgYXMgJGtleSApIHsKICAgICAgaWYoICRrZXkgPT0gJ2RhdGEnICkgewoJJGRhdGFbJGtleV0gPSAkb2JqLT5fZGF0YVsnZGF0YSddOwogICAgICB9CiAgICAgIGVsc2UgewoJJGRhdGFbJGtleV0gPSAkb2JqLT4ka2V5OwogICAgICB9CiAgICB9CiAgICByZXR1cm4gJGRhdGE7CiAgfQoKICAvLyBsb2FkIGEgdGhyZWFkCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBsb2FkX2J5X3VzZXIoJHVpZCwkbGltaXQgPSA1MCwkb2Zmc2V0ID0gMCkKICB7CiAgICAvLyB1aWQgY2FuIGJlIGEgc2luZ2xlIHVzZXIuLi4gb3IgYW4gYXJyYXkgb2YgdWlkcwogICAgaWYoICFpc19hcnJheSgkdWlkKSAmJiBpc19udW1lcmljKCR1aWQpICkgewogICAgICAkdWlkID0gYXJyYXkoKGludCkkdWlkKTsKICAgIH0KCiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdWlkKTsgJGkrKyApIHsKICAgICAgJHVpZFskaV0gPSAoaW50KSR1aWRbJGldOwogICAgfQogICAgJHVpZCA9IGFycmF5X3VuaXF1ZSgkdWlkKTsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9DSEVDS0lOUy4nCiAgICAgICAgICAgICAgV0hFUkUgb3duZXIgSU4gKCcuaW1wbG9kZSgnLCcsJHVpZCkuJykKICAgICAgICAgICAgICBPUkRFUiBCWSBjcmVhdGVkIERFU0MnOwogICAgJGRiciA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LCRsaW1pdCwkb2Zmc2V0KTsKICAgIGlmKCAhJGRiciApIHsKICAgICAgLy8gdG9kbzogdGhyb3cgYW4gZXhjZXB0aW9uCiAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgJHJlcyA9IGFycmF5KCk7CiAgICB3aGlsZSggISRkYnItPkVPRiApIHsKICAgICAgJHJlc1tdID0gc2VsZjo6bG9hZF9mcm9tX2FycmF5KCRkYnItPmZpZWxkcyk7CiAgICAgICRkYnItPk1vdmVOZXh0KCk7CiAgICB9CiAgICAkZGJyLT5DbG9zZSgpOwoKICAgIGlmKCBjb3VudCgkcmVzKSA9PSAxICkgcmV0dXJuICRyZXNbMF07CiAgICByZXR1cm4gJHJlczsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_checkin_pagination.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ3NhX2NoZWNraW5fcGFnaW5hdGlvbiAKewogIHByaXZhdGUgJF9pZCA9ICdjZ3NhXyc7CiAgcHJpdmF0ZSAkX2FjdGlvbiA9ICdkZWZhdWx0JzsKICBwcml2YXRlICRfcmV0dXJuaWQ7CiAgcHJpdmF0ZSAkX3F1ZXJ5OwogIHByaXZhdGUgJF9yczsKICBwcml2YXRlICRfZXh0cmFwYXJtczsKICBwcml2YXRlICRfaW5saW5lOwogIHByaXZhdGUgJF9ucGFnZXM7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChjZ3NhX2NoZWNraW5fcXVlcnkgJHF1ZXJ5LCBjZ3NhX2NoZWNraW5fcmVzdWx0c2V0ICRycykKICB7CiAgICAkdGhpcy0+X3F1ZXJ5ID0gJHF1ZXJ5OwogICAgJHRoaXMtPl9ycyA9ICRyczsKICAgICR0aGlzLT5fcmV0dXJuaWQgPSBjbXNtcygpLT5nZXRfdmFyaWFibGUoJ2NvbnRlbnRfaWQnKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWN0aW9uKCRhY3Rpb24pIAogIHsKICAgIGlmKCAkYWN0aW9uICkgJHRoaXMtPl9hY3Rpb24gPSAkYWN0aW9uOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9leHRyYXBhcmFtcygkcGFyYW1zKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHBhcmFtcykgKSByZXR1cm47CgogICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2V4dHJhcGFybXMpICkgJHRoaXMtPl9leHRyYXBhcm1zID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgIGlmKCBpc19udW1lcmljKCRrZXkpICkgY29udGludWU7CiAgICAgIGlmKCBpc19vYmplY3QoJHZhbHVlKSB8fCBpc19hcnJheSgkdmFsdWUpICkgY29udGludWU7CiAgICAgICR0aGlzLT5fZXh0cmFwYXJtc1ska2V5XSA9ICR2YWx1ZTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiByZXNldF9leHRyYXBhcmFtcygpCiAgewogICAgJHRoaXMtPl9leHRyYXBhcm1zID0gbnVsbDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfaW5saW5lKCRmbGFnID0gVFJVRSkKICB7CiAgICAkdGhpcy0+X2lubGluZSA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wYWdlX2NvdW50KCkKICB7CiAgICBpZiggaXNfbnVsbCgkdGhpcy0+X25wYWdlcykgKSB7CiAgICAgICRuaXRlbXMgPSAkdGhpcy0+X3JzLT5nZXRfZm91bmRfcm93cygpOwogICAgICAkbGltaXQgPSAkdGhpcy0+X3F1ZXJ5WydsaW1pdCddOwogICAgICAKICAgICAgJG5wYWdlcyA9IChpbnQpKCRuaXRlbXMgLyAkbGltaXQpOwogICAgICBpZiggJG5pdGVtcyAlICRsaW1pdCApICRucGFnZXMrKzsKCiAgICAgICR0aGlzLT5fbnBhZ2VzID0gJG5wYWdlczsKICAgIH0KICAgIHJldHVybiAkdGhpcy0+X25wYWdlczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY3VycmVudF9wYWdlKCkKICB7CiAgICAkbyA9IChpbnQpJHRoaXMtPl9xdWVyeVsnb2Zmc2V0J107CiAgICAkcGFnZSA9IChpbnQpKCRvIC8gJHRoaXMtPl9xdWVyeVsnbGltaXQnXSkgKyAxOwogICAgcmV0dXJuICRwYWdlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wYWdlbGltaXQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3F1ZXJ5WydsaW1pdCddOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9maXJzdHBhZ2VfdXJsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9wYWdlX3VybCgxKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJldnBhZ2VfdXJsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9wYWdlX3VybCgkdGhpcy0+Z2V0X2N1cnJlbnRfcGFnZSgpLTEpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmV4dHBhZ2VfdXJsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9wYWdlX3VybCgkdGhpcy0+Z2V0X2N1cnJlbnRfcGFnZSgpKzEpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGFzdHBhZ2VfdXJsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmdldF9wYWdlX3VybCgkdGhpcy0+Z2V0X3BhZ2VfY291bnQoKSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhZ2VfdXJsKCRwYWdlbnVtKQogIHsKICAgICRwYWdlbnVtID0gKGludCkkcGFnZW51bTsKICAgICRwYWdlbnVtID0gbWF4KDEsJHBhZ2VudW0pOwogICAgJHBhZ2VudW0gPSBtaW4oJHBhZ2VudW0sJHRoaXMtPmdldF9wYWdlX2NvdW50KCkpOwogICAgJHBhcm1zID0gJHRoaXMtPl9xdWVyeS0+Z2V0X3BhcmFtcygpOwogICAgJHBhcm1zWydvZmZzZXQnXSA9ICgkcGFnZW51bSAtIDEpICogJHRoaXMtPl9xdWVyeVsnbGltaXQnXTsKCiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NvY2lhbEFwcCcpOwogICAgJHVybCA9ICRtb2QtPmNyZWF0ZV91cmwoJHRoaXMtPl9pZCwkdGhpcy0+X2FjdGlvbiwkdGhpcy0+X3JldHVybmlkLCRwYXJtcywkdGhpcy0+X2lubGluZSk7CiAgICByZXR1cm4gJHVybDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcGFnZV9saW5rKCRwYWdlbnVtLCR0ZXh0KQogIHsKICAgICRwYWdlbnVtID0gKGludCkkcGFnZW51bTsKICAgICRwYWdlbnVtID0gbWF4KDEsJHBhZ2VudW0pOwogICAgJHBhZ2VudW0gPSBtaW4oJHBhZ2VudW0sJHRoaXMtPmdldF9wYWdlX2NvdW50KCkpOwogICAgJHBhcm1zID0gJHRoaXMtPl9xdWVyeS0+Z2V0X3BhcmFtcygpOwogICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fZXh0cmFwYXJtcykgKSB7CiAgICAgICRwYXJtcyA9IGFycmF5X21lcmdlKCR0aGlzLT5fZXh0cmFwYXJtcywkcGFybXMpOwogICAgfQogICAgJHBhcm1zWydvZmZzZXQnXSA9ICgkcGFnZW51bSAtIDEpICogJHRoaXMtPl9xdWVyeVsnbGltaXQnXTsKICAgIAogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgICRsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkdGhpcy0+X2lkLCR0aGlzLT5fYWN0aW9uLCR0aGlzLT5fcmV0dXJuaWQsJHRleHQsJHBhcm1zLCcnLGZhbHNlLCR0aGlzLT5faW5saW5lKTsKICAgIHJldHVybiAkbGluazsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_checkin_query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ3NhX2NoZWNraW5fcXVlcnkgaW1wbGVtZW50cyBBcnJheUFjY2Vzcwp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzID0gYXJyYXkoJ2xvY2F0aW9uJywnYWN0aXZpdHknLCd0aW1lbGltaXQnLCdvd25lcicsJ293bmVycycsJ2xpbWl0Jywnb2Zmc2V0Jywnc29ydGJ5Jywnc29ydG9yZGVyJywnYXBwcm92ZWQnKTsKICBwcml2YXRlIHN0YXRpYyAkX3NvcnRpbmdzID0gYXJyYXkoJ2lkJywnb3duZXInLCdsb2NhdGlvbicsJ2FjdGl2aXR5JywnY3JlYXRlZCcpOwogIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoKTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRwYXJhbXMgPSBhcnJheSgpKQogIHsKICAgICR0aGlzLT5fZGF0YVsnc29ydGJ5J10gPSAnY3JlYXRlZCc7CiAgICAkdGhpcy0+X2RhdGFbJ3NvcnRvcmRlciddID0gJ0RFU0MnOwogICAgJHRoaXMtPl9kYXRhWydvZmZzZXQnXSA9IDA7CiAgICAkdGhpcy0+X2RhdGFbJ2xpbWl0J10gPSA1MDA7CgogICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgJHRoaXNbJGtleV0gPSAkdmFsdWU7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRrZXkpCiAgewogICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gcmV0cmlldmUgaW52YWxpZCB2YWx1ZSBmcm9tIGNnc2FfY2hlY2tpbl9xdWVyeScpOwogICAgfQogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKQogICAgICByZXR1cm4gJHRoaXMtPl9kYXRhWyRrZXldOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgka2V5LCR2YWx1ZSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgaW52YWxpZCBrZXkgaW50byBjZ3NhX2NoZWNraW5fcXVlcnk6ICcuJGtleSk7CiAgICB9CgogICAgc3dpdGNoKCAka2V5ICkgewogICAgY2FzZSAnYXBwcm92ZWQnOgogICAgICAkdmFsdWUgPSBjZ2VfdXRpbHM6OnRvX2Jvb2woJHZhbHVlKTsKICAgICAgaWYoICR2YWx1ZSApIAoJJHZhbHVlID0gMTsKICAgICAgZWxzZQoJJHZhbHVlID0gMDsKICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogICAgICBicmVhazsKCiAgICBjYXNlICdsb2NhdGlvbic6CiAgICBjYXNlICdhY3Rpdml0eSc6CiAgICAgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwogICAgICAkdmFsdWUgPSBtYXgoMSwkdmFsdWUpOwogICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3RpbWVsaW1pdCc6CiAgICAgIC8vIHBvc2l0aXZlIHZhbHVlIGlzIGFic29sdXRlIHRpbWUgZnJvbSBlcG9jaAogICAgICAvLyBuZWdhdGl2ZSB2YWx1ZSBpcyByZWxhdGl2ZSB0byBub3cuCiAgICAgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwogICAgICBpZiggJHZhbHVlIDwgMCApIHsKCSR2YWx1ZSA9IHRpbWUoKSAtICgkdmFsdWUgKiAtMSk7CiAgICAgIH0KICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogICAgICBicmVhazsKCiAgICBjYXNlICdsaW1pdCc6CiAgICAgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwogICAgICAkdmFsdWUgPSBtYXgoMSwkdmFsdWUpOwogICAgICAkdmFsdWUgPSBtaW4oMTAwMDAsJHZhbHVlKTsKICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogICAgICBicmVhazsKCiAgICBjYXNlICdvZmZzZXQnOgogICAgICAkdmFsdWUgPSAoaW50KSR2YWx1ZTsKICAgICAgJHZhbHVlID0gbWF4KDAsJHZhbHVlKTsKICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogICAgICBicmVhazsKCiAgICBjYXNlICdzb3J0YnknOgogICAgICAvL2lmKCAkdmFsdWUgPT0gJ3NvcnRvcmRlcicgfHwgJHZhbHVlID09ICdzb3J0YnknIHx8ICR2YWx1ZSA9PSAndGltZWxpbWl0JyB8fCAhaW5fYXJyYXkoJHZhbHVlLHNlbGY6OiRfa2V5cykgKSB7CiAgICAgIGlmKCAhaW5fYXJyYXkoJHZhbHVlLHNlbGY6OiRfc29ydGluZ3MpICkgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byBzZXQgaW52YWxpZCBzb3J0aW5nIGludG8gY2dzYV9jaGVja2luX3F1ZXJ5OiAnLiR2YWx1ZSk7CiAgICAgIH0KICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbHVlOwogICAgICBicmVhazsKCiAgICBjYXNlICdzb3J0b3JkZXInOgogICAgICBzd2l0Y2goIHN0cnRvdXBwZXIoJHZhbHVlKSApIHsKICAgICAgY2FzZSAnQVNDJzoKICAgICAgY2FzZSAnREVTQyc6CgkkdmFsdWUgPSBzdHJ0b3VwcGVyKCR2YWx1ZSk7CgkkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CglicmVhazsKCiAgICAgIGRlZmF1bHQ6Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCBpbnZhbGlkIHNvcnQgb3JkZXIgaW50byBjZ3NhX2NoZWNraW5fcXVlcnknKTsKICAgICAgfQogICAgICBicmVhazsKCiAgICBjYXNlICdvd25lcic6CiAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ293bmVycyddKSApIHVuc2V0KCR0aGlzLT5fZGF0YVsnb3duZXJzJ10pOwogICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ293bmVycyc6CiAgICAgIGlmKCBpc19hcnJheSgkdmFsdWUpICYmIGNvdW50KCR2YWx1ZSkgKSB7CglpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydvd25lciddKSApIHVuc2V0KCR0aGlzLT5fZGF0YVsnb3duZXInXSk7CgkkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrZXkpCiAgewogICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gcmV0cmlldmUgaW52YWxpZCB2YWx1ZSBmcm9tIGNnc2FfY2hlY2tpbl9xdWVyeScpOwogICAgfQogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gVFJVRTsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgka2V5KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHNldCBpbnZhbGlkIGtleSBpbnRvIGNnc2FfY2hlY2tpbl9xdWVyeScpOwogICAgfQogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska2V5XSkgKSB1bnNldCgkdGhpcy0+X2RhdGFbJGtleV0pOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wYXJhbXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2RhdGE7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gJmV4ZWN1dGUoKQogIHsKICAgICRycyA9IG5ldyBjZ3NhX2NoZWNraW5fcmVzdWx0c2V0KCR0aGlzKTsKICAgIHJldHVybiAkcnM7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_checkin_resultset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTIgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ3NhX2NoZWNraW5fcmVzdWx0c2V0CnsKICBwcml2YXRlICRfcXVlcnk7CiAgcHJpdmF0ZSAkX2V4ZWN1dGVkOwogIHByaXZhdGUgJF9yczsKICBwcml2YXRlICRfZm91bmRfcm93czsKCgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChjZ3NhX2NoZWNraW5fcXVlcnkgJHF1ZXJ5KQogIHsKICAgICR0aGlzLT5fcXVlcnkgPSAkcXVlcnk7CiAgICAkdGhpcy0+X2V4ZWN1dGUoKTsKICB9CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9leGVjdXRlKCkKICB7CiAgICAkcXVlcnkgPSAkdGhpcy0+X3F1ZXJ5OwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkc3FsID0gJ1NFTEVDVCBTUUxfQ0FMQ19GT1VORF9ST1dTIGNpLiogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0NIRUNLSU5TLicgY2knOwogICAgJHdoZXJlID0gYXJyYXkoKTsKICAgICRxcGFybXMgPSBhcnJheSgpOwoKICAgIC8vIGJ1aWxkIHRoZSBxdWVyeQogICAgaWYoICRxdWVyeVsnbG9jYXRpb24nXSA+IDAgKSB7CiAgICAgICR3aGVyZVtdID0gJ2NpLmxvY2F0aW9uID0gPyc7CiAgICAgICRxcGFybXNbXSA9ICRxdWVyeVsnbG9jYXRpb24nXTsKICAgIH0KCiAgICBpZiggJHF1ZXJ5WydhY3Rpdml0eSddID4gMCApIHsKICAgICAgJHdoZXJlW10gPSAnY2kuYWN0aXZpdHkgPSA/JzsKICAgICAgJHFwYXJtc1tdID0gJHF1ZXJ5WydhY3Rpdml0eSddOwogICAgfQoKICAgIGlmKCAkcXVlcnlbJ3RpbWVsaW1pdCddID4gMCApIHsKICAgICAgJHdoZXJlW10gPSAnY2kuY3JlYXRlZCA+ID8nOwogICAgICAkcXBhcm1zW10gPSAkcXVlcnlbJ3RpbWVsaW1pdCddOwogICAgfQoKICAgIGlmKCAkcXVlcnlbJ2FwcHJvdmVkJ10gKSB7CiAgICAgICR3aGVyZVtdID0gJ2NpLmFwcHJvdmVkID0gPyc7CiAgICAgICRxcGFybXNbXSA9ICRxdWVyeVsnYXBwcm92ZWQnXTsKICAgIH0KCiAgICBpZiggJHF1ZXJ5Wydvd25lciddICE9ICcnICkgewogICAgICAkd2hlcmVbXSA9ICdjaS5vd25lciA9ID8nOwogICAgICAkcXBhcm1zW10gPSAkcXVlcnlbJ293bmVyJ107CiAgICB9CiAgICBlbHNlaWYoIGlzX2FycmF5KCRxdWVyeVsnb3duZXJzJ10pICYmIGNvdW50KCRxdWVyeVsnb3duZXJzJ10pICkgewogICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHF1ZXJ5Wydvd25lcnMnXSk7ICRpKysgKSB7CgkkdG1wW10gPSAkZGItPnFzdHIoJHF1ZXJ5Wydvd25lcnMnXVskaV0pOwogICAgICB9CiAgICAgICR3aGVyZVtdID0gJ2NpLm93bmVyIElOICgnLmltcGxvZGUoJywnLCR0bXApLicpJzsKICAgIH0KCiAgICBpZiggY291bnQoJHdoZXJlKSApIHsKICAgICAgJHNxbCAuPSAnIFdIRVJFICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZSk7CiAgICB9CgogICAgJHNxbCAuPSAnIE9SREVSIEJZICcuJHF1ZXJ5Wydzb3J0YnknXS4nICcuJHF1ZXJ5Wydzb3J0b3JkZXInXTsKICAgICR0aGlzLT5fcnMgPSAkZGItPlNlbGVjdExpbWl0KCRzcWwsJHF1ZXJ5WydsaW1pdCddLCRxdWVyeVsnb2Zmc2V0J10sJHFwYXJtcyk7CiAgICBpZiggISR0aGlzLT5fcnMgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0lOVEVSTkFMIEVSUk9SOiBRdWVyeSBmYWlsZWQgLSAnLiRkYi0+c3FsLicgLS0gJy4kZGItPkVycm9yTXNnKCkpOwogICAgfQoKICAgICR0aGlzLT5fZm91bmRfcm93cyA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgRk9VTkRfUk9XUygpJyk7CiAgICAkdGhpcy0+X2V4ZWN1dGVkID0gVFJVRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBSZWNvcmRDb3VudCgpCiAgewogICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+UmVjb3JkQ291bnQoKTsKICAgIHJldHVybiAwOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIE1vdmVGaXJzdCgpCiAgewogICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+TW92ZUZpcnN0KCk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gTW92ZU5leHQoKQogIHsKICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVOZXh0KCk7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gRU9GKCkKICB7CiAgICBpZiggJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5FT0YoKTsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIENsb3NlKCkKICB7CiAgICBpZiggJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5DbG9zZSgpOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICB7CiAgICBpZiggJGtleSA9PSAnRU9GJyAmJiAkdGhpcy0+X3JzICkgewogICAgICByZXR1cm4gJHRoaXMtPl9ycy0+RU9GOwogICAgfQogICAgaWYoICRrZXkgPT0gJ2ZpZWxkcycgJiYgJHRoaXMtPl9ycyApIHsKICAgICAgJG9iaiA9IG5ldyBjZ3NhX2NoZWNraW4oJHRoaXMtPl9ycy0+ZmllbGRzKTsKICAgICAgcmV0dXJuICRvYmo7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gJmdldF9jaGVja2luKCkKICB7CiAgICBpZiggISR0aGlzLT5fcnMgKSByZXR1cm47CgogICAgJG9iaiA9IG5ldyBjZ3NhX2NoZWNraW4oJHRoaXMtPl9ycy0+ZmllbGRzKTsKICAgIHJldHVybiAkb2JqOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uICZnZXRfcGFnaW5hdGlvbigpCiAgewogICAgJHJlcyA9IG51bGw7CiAgICBpZiggISR0aGlzLT5fcnMgKSByZXR1cm4gJHJlczsKICAgICRvYiA9IG5ldyBjZ3NhX2NoZWNraW5fcGFnaW5hdGlvbigkdGhpcy0+X3F1ZXJ5LCR0aGlzKTsKICAgIHJldHVybiAkb2I7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZvdW5kX3Jvd3MoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9ycyApIHJldHVybjsKICAgIHJldHVybiAkdGhpcy0+X2ZvdW5kX3Jvd3M7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_checkin_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ3NhX2NoZWNraW5fdXRpbHMgCnsKICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBub3RpZnlfdGFnZ2VkX3VzZXJzKGNnc2FfY2hlY2tpbiAkY2hlY2tpbikKICB7CiAgICAkbm90aWZpZXIgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHTm90aWZpZXInKTsKICAgICRjZ3NhID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NvY2lhbEFwcCcpOwogICAgJHVzZXJzID0gJGNoZWNraW4tPmdldF90YWdnZWRfdXNlcnMoKTsKICAgICRwcmlvcml0eSA9ICRjZ3NhLT5HZXRQcmVmZXJlbmNlKCdmZXVfdGFnZ2VkX3ByaW9yaXR5Jyk7CiAgICBpZiggJG5vdGlmaWVyICYmIGNvdW50KCR1c2VycykgPiAwICYmICRwcmlvcml0eSA+IDAgKSB7CiAgICAgIGZvcmVhY2goICR1c2VycyBhcyAkdWlkICkgewoJJG1zZyA9IG5ldyBub3RpZmljYXRpb25fbWVzc2FnZSgpOwoJJG1zZy0+bW9kdWxlID0gJGNnc2EtPkdldE5hbWUoKTsKCWlmKCAkYmFkZ2UtPm5vdGlmeV90byA9PSAndXNlcicgKSB7CgkgICRtc2ctPnRvID0gJHVpZDsKCX0KCSRtc2ctPnN1YmplY3QgPSAkY2dzYS0+R2V0UHJlZmVyZW5jZSgnZmV1X3RhZ2dlZF9zdWJqZWN0Jyk7CgkkbXNnLT5wcmlvcml0eSA9ICRjZ3NhLT5TZXRQcmVmZXJlbmNlKCdmZXVfdGFnZ2VkX3ByaW9yaXR5Jyk7CiAgICAgCgkkc21hcnR5ID0gY21zX3V0aWxzOjpnZXRfc21hcnR5KCk7Cgkkc21hcnR5LT5hc3NpZ24oJ2NoZWNraW4nLCRjaGVja2luKTsKCSRsb2NhdGlvbiA9IGNkX3V0aWxzOjpnZXRfY29tcGFueSgkY2hlY2tpbi0+bG9jYXRpb24pOwoJJHNtYXJ0eS0+YXNzaWduKCdsb2NhdGlvbicsJGxvY2F0aW9uKTsKCgkkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7Cgkkc21hcnR5LT5hc3NpZ24oJ3VpZCcsJHVpZCk7Cgkkc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lJywkZmV1LT5HZXRVc2VyTmFtZSgkdWlkKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2VtYWlsJywkZmV1LT5HZXRFbWFpbCgkdWlkKSk7CgkKCSRtc2ctPmJvZHkgPSAkY2dzYS0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdmZXVfdGFnZ2VkX3RwbCcpOwoJJG5vdGlmaWVyLT5ub3RpZnkoJG1zZyk7CiAgICAgIH0KCiAgICAgIGF1ZGl0KCRjaGVja2luLT5pZCwkY2dzYS0+R2V0TmFtZSgpLCdOb3RpZmljYXRpb25zIHNlbnQgZm9yIGNoZWNraW4nKTsKICAgIH0KICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_db_friend_manipulator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIGNnc2Ffc2ltcGxlX2ZyaWVuZF9tYW5pcHVsYXRvciBleHRlbmRzIGNnc2FfZnJpZW5kX21hbmlwdWxhdG9yCnsKICAvKioKICAgKiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGhlIHVzZXJzIGZyaWVuZHMKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHVzZXIgaWRlbnRpZmllcgogICAqIEBwYXJhbSBpbnRlZ2VyIFRoZSBsaW1pdCB0byB0aGUgbnVtYmVyIG9mIGZyaWVuZHMgKG5vdCBpbXBsZW1lbnRlZCkKICAgKiBAcGFyYW0gaW50ZWdlciBUaGUgb2Zmc2V0IChub3QgaW1wbGVtZW50ZWQpCiAgICogQHJldHVybiBhcnJheSBvZiB1aWRzIG9yIG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZyaWVuZHMoJHVpZCwkbGltaXQgPSAxMDAwMDAsJG9mZnNldCA9IDApCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgZnVpZCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfRlJJRU5EU0hJUFMuJyBXSEVSRSB1aWQgPSA/IEFORCByZWxuID0gMSc7CiAgICAkZGJyID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksJGxpbWl0LCRvZmZzZXQsYXJyYXkoJHVpZCkpOwogICAgaWYoICRkYnIgKSB7CiAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICB3aGlsZSggISRkYnItPkVPRiApIHsKCSRvdXRbXSA9ICRkYnItPmZpZWxkc1snZnVpZCddOwoJJGRici0+TW92ZU5leHQoKTsKICAgICAgfQogICAgICByZXR1cm4gJG91dDsKICAgIH0KICB9CgogIC8qKgogICAqIEFkZCBmdWlkIGFzIGEgZnJpZW5kIHRvIHVpZAogICAqIFRoaXMgaXMgYSBkYXRhYmFzZSBmdW5jdGlvbiBvbmx5LiAgTm8gZXZlbnRzIGFyZSBzZW50LgogICAqIFRoaXMgZnVuY3Rpb24gb25seSBlZmZlY3RzIG9uZSBzaWRlIG9mIHRoZSBmcmllbmQgcmVsYXRpb25zaGlwCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSB1c2VyIGlkIHRvIGFkZCB0bwogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGZyaWVuZHMgdXNlciBpZC4KICAgKiBAcmV0dXJuIG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gYWRkX2ZyaWVuZCgkdWlkLCRmdWlkKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgLy8gZGVsZXRlIGZyb20gbm90ZnJpZW5kcyBhbmQgcmVxdWVzdHMuLi4KICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0ZSSUVORFNISVBTLicgV0hFUkUgdWlkID0gPyBBTkQgZnVpZCA9ID8gQU5EIHJlbG4gIT0gMSc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR1aWQsJGZ1aWQpKTsKCiAgICAvLyBtYWtlIHN1cmUgbm90IGFscmVhZHkgYSBmcmllbmQKICAgICRxdWVyeSA9ICdTRUxFQ1QgdWlkIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9GUklFTkRTSElQUy4nIFdIRVJFIHVpZCA9ID8gQU5EIGZ1aWQgPSA/IEFORCByZWxuID0gMSc7CiAgICAkcjEgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHVpZCwkZnVpZCkpOwogICAgaWYoICRyMSApIHJldHVybjsgLy8gbm90aGluZyB0byBkby4KCiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5DR1NPQ0lBTF9UQUJMRV9GUklFTkRTSElQUy4nICh1aWQsZnVpZCxyZWxuKSBWQUxVRVMgKD8sPyw/KSc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdWlkLCRmdWlkLDEpOwogIH0KCiAgLyoqCiAgICogRGVsZXRlIGEgZnJpZW5kIHJlbGF0aW9uc2hpcAogICAqIFRoaXMgaXMgYSBkYXRhYmFzZSBmdW5jdGlvbiBvbmx5LCBubyBldmVudHMgYXJlIHRyaWdnZXJlZAogICAqIFRoaXMgbWV0aG9kIG9ubHkgZGVsZXRlcyBvbmUgc2lkZSBvZiB0aGUgZnJpZW5kIHJlbGF0aW9uc2hpcCwgbm90IGJvdGgKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHVzZXJpZAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGZyaWVuZHMgdXNlciBpZAogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBkZWxfZnJpZW5kKCR1aWQsJGZ1aWQpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAvLyBkZWxldGUgZnJvbSBub3RmcmllbmRzCiAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9GUklFTkRTSElQUy4nIFdIRVJFIHVpZCA9ID8gQU5EIGZ1aWQgPSA/IEFORCByZWxuID0gPyc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR1aWQsJGZ1aWQsMSkpOwogIH0KCiAgLyoqCiAgICogR2V0IGEgbGlzdCBvZiB0aGUgdWlkcyB0aGF0IHdlIGhhdmUgZGVuaWVkIGZyb20gYmVpbmcgZnJpZW5kcwogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgdXNlcmlkCiAgICogQHJldHVybiBhcnJheSBvZiB1c2VyIGlkcwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbm90ZnJpZW5kcygkdWlkKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIGZ1aWQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0ZSSUVORFNISVBTLicgV0hFUkUgdWlkID0gPyBBTkQgcmVsbiA9IC0xJzsKICAgICRkYnIgPSAkZGItPlNlbGVjdExpbWl0KCRxdWVyeSwkbGltaXQsJG9mZnNldCxhcnJheSgkdWlkKSk7CiAgICBpZiggJGRiciApIHsKICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgIHdoaWxlKCAhJGRici0+RU9GICkgewoJJG91dFtdID0gJGRici0+ZmllbGRzWydmdWlkJ107CgkkZGJyLT5Nb3ZlTmV4dCgpOwogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogICAgfQogIH0KCiAgLyoqCiAgICogQWRkIGEgdXNlciB0byBvdXIgbGlzdCBvZiBub3RmcmllbmRzCiAgICogVGhpcyBtZXRob2Qgb25seSBlZmZlY3RzIG9uZSBzaWRlIG9mIHRoZSBmcmllbmRzaGlwIHJlbGF0aW9uLCBhbmQgZG9lcyBub3QgZXhwbGljaXRseSByZW1vdmUgYSBmcmllbmQgZnJvbSB0aGUgZnJpZW5kc2xpc3QKICAgKiBJdCBpcyBwb3NzaWJsZSB1c2luZyB0aGlzIG1ldGhvZCB0byBoYXZlIGEgdWlkIGluIHRoZSBmcmllbmRzIGxpc3QgYW5kIG5vdCBmcmllbmRzIGxpc3QuICBEZXZlbG9wZXJzIG11c3QgdXNlIGNhdXRpb24uCiAgICogVGhpcyBtZXRob2QgZG9lcyB0aGUgZGF0YWJhc2Ugd29yayBvbmx5LCBubyBldmVudHMgYXJlIHNlbnQuCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSB1c2VyIGlkCiAgICogQHBhcmFtIHN0cmluZyBUaGUgZnJpZW5kcyB1c2VyIGlkCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGFkZF9ub3RmcmllbmQoJHVpZCwkZnVpZCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIC8vIGRlbGV0ZSBmcm9tIGZyaWVuZHMgb3IgZnJpZW5kIHJlcXVlc3RzLgogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfRlJJRU5EU0hJUFMuJyBXSEVSRSB1aWQgPSA/IEFORCBmdWlkID0gPyBBTkQgcmVsbiAhPSA/JzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHVpZCwkZnVpZCwtMSkpOwoKICAgIC8vIG1ha2Ugc3VyZSBub3QgYWxyZWFkeSBhIG5vdGZyaWVuZAogICAgJHF1ZXJ5ID0gJ1NFTEVDVCB1aWQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0ZSSUVORFNISVBTLicgV0hFUkUgdWlkID0gPyBBTkQgZnVpZCA9ID8gQU5EIHJlbG4gPSAtMSc7CiAgICAkcjEgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHVpZCwkZnVpZCkpOwogICAgaWYoICRyMSApIHJldHVybjsgLy8gbm90aGluZyB0byBkby4KCiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5DR1NPQ0lBTF9UQUJMRV9GUklFTkRTSElQUy4nICh1aWQsZnVpZCxyZWxuKSBWQUxVRVMgKD8sPyw/KSc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdWlkLCRmdWlkLC0xKTsKICB9CgoKICAvKioKICAgKiBSZW1vdmUgYSB1c2VyIGZyb20gb3VyIGxpc3Qgb2Ygbm90ZnJpZW5kcwogICAqIFRoaXMgbWV0aG9kIG9ubHkgZWZmZWN0cyBvbmUgc2lkZSBvZiB0aGUgZnJpZW5kc2hpcCByZWxhdGlvbi4gCiAgICogVGhpcyBtZXRob2QgZG9lcyB0aGUgZGF0YWJhc2Ugd29yayBvbmx5LCBubyBldmVudHMgYXJlIHNlbnQuCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSB1c2VyIGlkCiAgICogQHBhcmFtIHN0cmluZyBUaGUgZnJpZW5kcyB1c2VyIGlkCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGRlbF9ub3RmcmllbmQoJHVpZCwkZnVpZCkKICB7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgIC8vIGRlbGV0ZSBmcm9tIG5vdGZyaWVuZHMKICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0ZSSUVORFNISVBTLicgV0hFUkUgdWlkID0gPyBBTkQgZnVpZCA9ID8gQU5EIHJlbG4gPSA/JzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHVpZCwkZnVpZCwtMSkpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZnJpZW5kcmVxdWVzdHMoJHVpZCwkbGltaXQgPSAxMDAwLCRvZmZzZXQgPSAwKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIGZ1aWQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0ZSSUVORFNISVBTLicgV0hFUkUgdWlkID0gPyBBTkQgcmVsbiA9IC0yJzsKICAgICRkYnIgPSAkZGItPlNlbGVjdExpbWl0KCRxdWVyeSwkbGltaXQsJG9mZnNldCxhcnJheSgkdWlkKSk7CiAgICBpZiggJGRiciApIHsKICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgIHdoaWxlKCAhJGRici0+RU9GICkgewoJJG91dFtdID0gJGRici0+ZmllbGRzWydmdWlkJ107CgkkZGJyLT5Nb3ZlTmV4dCgpOwogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogICAgfQogIH0KCiAgLyoqCiAgICogQ3JlYXRlIGEgZnJpZW5kIHJlcXVlc3QgdG8gdGhlIHVzZXIgaWRlbnRpZmllZCBieSBmdWlkIGZyb20gdGhlIHVzZXIgaWRlbnRpZmllZCBieSB1aWQKICAgKiBUaGlzIGZ1bmN0aW9uIGRvZXMgdGhlIGRhdGFiYXNlIHdvcmsgb25seSwgbm90aWZpY2F0aW9ucyBhcmUgbm90IHNlbnQuCiAgICogCiAgICogQHBhcmFtIHN0cmluZyBUaGUgcG90ZW50aWFsIGZyaWVuZHMgdXNlciBpZAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGN1cnJlbnQgdXNlcnMgdWlkCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGFkZF9mcmllbmRyZXF1ZXN0KCRmdWlkLCR1aWQpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAvLyBtYWtlIHN1cmUgbm90IGFscmVhZHkgaW4gdGhlIGRiIHNvbWVob3cuCiAgICAkcXVlcnkgPSAnU0VMRUNUIHVpZCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfRlJJRU5EU0hJUFMuJyBXSEVSRSB1aWQgPSA/IEFORCBmdWlkID0gPyc7CiAgICAkcjEgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHVpZCwkZnVpZCkpOwogICAgaWYoICRyMSApIHJldHVybjsgLy8gbm90aGluZyB0byBkby4KCiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5DR1NPQ0lBTF9UQUJMRV9GUklFTkRTSElQUy4nICh1aWQsZnVpZCxyZWxuKSBWQUxVRVMgKD8sPyw/KSc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdWlkLCRmdWlkLC0yKTsKICB9CgoKICAvKioKICAgKiBEZWxldGUgYSBmcmllbmQgcmVxdWVzdCB0byB0aGUgdXNlciBpZGVudGlmaWVkIGJ5IGZ1aWQgZnJvbSB0aGUgdXNlciBpZGVudGlmaWVkIGJ5IHVpZAogICAqIFRoaXMgZnVuY3Rpb24gZG9lcyB0aGUgZGF0YWJhc2Ugd29yayBvbmx5LCBub3RpZmljYXRpb25zIGFyZSBub3Qgc2VudC4KICAgKiAKICAgKiBAcGFyYW0gc3RyaW5nIHRoZSBwb3RlbnRpYWwgZnJpZW5kcyB1c2VyIGlkCiAgICogQHBhcmFtIHN0cmluZyBUaGUgY3VycmVudCB1c2VycyBpZAogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBkZWxfZnJpZW5kcmVxdWVzdCgkZnVpZCwkdWlkKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgLy8gZGVsZXRlIGZyb20gbm90ZnJpZW5kcwogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfRlJJRU5EU0hJUFMuJyBXSEVSRSB1aWQgPSA/IEFORCBmdWlkID0gPyBBTkQgcmVsbiA9ID8nOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdWlkLCRmdWlkLC0yKSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2FsbCgkdWlkKQogIHsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9GUklFTkRTSElQUy4nIFdIRVJFIHVpZCA9ID8gQU5EIGZ1aWQgPSA/JzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHVpZCwkZnVpZCkpOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_friends.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBjZ3NhX2ZyaWVuZHMKewogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQogIHByaXZhdGUgc3RhdGljICRfbWFuaXB1bGF0b3I7CgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdldF9tYW5pcHVsYXRvcigpCiAgewogICAgaWYoIGlzX251bGwoc2VsZjo6JF9tYW5pcHVsYXRvcikgKSB7CiAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU29jaWFsQXBwJyk7CiAgICAgICRtYW5pcG5hbWUgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdmcmllbmRzX21hbmlwdWxhdG9yJywnY2dzYV9zaW1wbGVfZnJpZW5kX21hbmlwdWxhdG9yJyk7CiAgICAgIHNlbGY6OiRfbWFuaXB1bGF0b3IgPSBuZXcgJG1hbmlwbmFtZTsKICAgIH0KICAgIHJldHVybiBzZWxmOjokX21hbmlwdWxhdG9yOwogIH0KCgogIC8qKgogICAqIFJldHJpZXZlIGEgbGlzdCBvZiB0aGUgdXNlcnMgZnJpZW5kcwogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgdXNlciBpZGVudGlmaWVyCiAgICogQHBhcmFtIGludGVnZXIgVGhlIGxpbWl0IHRvIHRoZSBudW1iZXIgb2YgZnJpZW5kcyAobm90IGltcGxlbWVudGVkKQogICAqIEBwYXJhbSBpbnRlZ2VyIFRoZSBvZmZzZXQgKG5vdCBpbXBsZW1lbnRlZCkKICAgKiBAcmV0dXJuIGFycmF5IG9mIHVpZHMgb3IgbnVsbAogICAqLwogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZyaWVuZHMoJHVpZCwkbGltaXQgPSAxMDAwMDAsJG9mZnNldCA9IDApCiAgewogICAgcmV0dXJuIHNlbGY6OmdldF9tYW5pcHVsYXRvcigpLT5nZXRfZnJpZW5kcygkdWlkLCRsaW1pdCwkb2Zmc2V0KTsKICB9CgoKICAvKioKICAgKiBBZGQgZnVpZCBhcyBhIGZyaWVuZCB0byB1aWQKICAgKiBUaGlzIGlzIGEgZGF0YWJhc2UgZnVuY3Rpb24gb25seS4gIE5vIGV2ZW50cyBhcmUgc2VudC4KICAgKiBUaGlzIGZ1bmN0aW9uIG9ubHkgZWZmZWN0cyBvbmUgc2lkZSBvZiB0aGUgZnJpZW5kIHJlbGF0aW9uc2hpcAogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgdXNlciBpZCB0byBhZGQgdG8KICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBmcmllbmRzIHVzZXIgaWQuCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gYWRkX2ZyaWVuZCgkdWlkLCRmdWlkKQogIHsKICAgIHJldHVybiBzZWxmOjpnZXRfbWFuaXB1bGF0b3IoKS0+YWRkX2ZyaWVuZCgkdWlkLCRmdWlkKTsKICB9CgoKICAvKioKICAgKiBEZWxldGUgYSBmcmllbmQgcmVsYXRpb25zaGlwCiAgICogVGhpcyBpcyBhIGRhdGFiYXNlIGZ1bmN0aW9uIG9ubHksIG5vIGV2ZW50cyBhcmUgdHJpZ2dlcmVkCiAgICogVGhpcyBtZXRob2Qgb25seSBkZWxldGVzIG9uZSBzaWRlIG9mIHRoZSBmcmllbmQgcmVsYXRpb25zaGlwLCBub3QgYm90aAogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgdXNlcmlkCiAgICogQHBhcmFtIHN0cmluZyBUaGUgZnJpZW5kcyB1c2VyIGlkCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZGVsX2ZyaWVuZCgkdWlkLCRmdWlkKQogIHsKICAgIHJldHVybiBzZWxmOjpnZXRfbWFuaXB1bGF0b3IoKS0+ZGVsX2ZyaWVuZCgkdWlkLCRmdWlkKTsKICB9CgoKICAvKioKICAgKiBSZW1vdmUgYSBmcmllbmRzaGlwIHJlbGF0aW9uc2hpcAogICAqIFRoaXMgaXMgYSBoaWdoIGxldmVsIGZ1bmN0aW4gdGhhdCBtYXkgc2VuZCBldmVudHMgb3Igbm90aWZpY2F0aW9ucwogICAqIFRoaXMgbWV0aG9kIHdpbGwgZW5zdXJlIHRoYXQgdGhlIGZyaWVuZHNoaXAgcmVsYXRpb25zaGlwCiAgICogaXMgcmVtb3ZlZCBiZXR3ZWVuIGJvdGggcHRoZSBmdWlkIGFuZCB1aWQuCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBjdXJyZW50IHVpZAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGZyaWVuZHMgdWlkCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZW1vdmVfZnJpZW5kc2hpcCgkdWlkLCRmdWlkKQogIHsKICAgIHNlbGY6OmRlbF9mcmllbmQoJHVpZCwkZnVpZCk7CiAgICBzZWxmOjpkZWxfZnJpZW5kKCRmdWlkLCR1aWQpOwogIH0KCgogIC8qKgogICAqIEdldCBhIGxpc3Qgb2YgdGhlIHVpZHMgdGhhdCB3ZSBoYXZlIGRlbmllZCBmcm9tIGJlaW5nIGZyaWVuZHMKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHVzZXJpZAogICAqIEByZXR1cm4gYXJyYXkgb2YgdXNlciBpZHMKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9ub3RmcmllbmRzKCR1aWQpCiAgewogICAgcmV0dXJuIHNlbGY6OmdldF9tYW5pcHVsYXRvcigpLT5nZXRfbm90ZnJpZW5kcygkdWlkKTsKICB9CgogIAogIC8qKgogICAqIEFkZCBhIHVzZXIgdG8gb3VyIGxpc3Qgb2Ygbm90ZnJpZW5kcwogICAqIFRoaXMgbWV0aG9kIG9ubHkgZWZmZWN0cyBvbmUgc2lkZSBvZiB0aGUgZnJpZW5kc2hpcCByZWxhdGlvbiwgYW5kIGRvZXMgbm90IGV4cGxpY2l0bHkgcmVtb3ZlIGEgZnJpZW5kIGZyb20gdGhlIGZyaWVuZHNsaXN0CiAgICogSXQgaXMgcG9zc2libGUgdXNpbmcgdGhpcyBtZXRob2QgdG8gaGF2ZSBhIHVpZCBpbiB0aGUgZnJpZW5kcyBsaXN0IGFuZCBub3QgZnJpZW5kcyBsaXN0LiAgRGV2ZWxvcGVycyBtdXN0IHVzZSBjYXV0aW9uLgogICAqIFRoaXMgbWV0aG9kIGRvZXMgdGhlIGRhdGFiYXNlIHdvcmsgb25seSwgbm8gZXZlbnRzIGFyZSBzZW50LgogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgdXNlciBpZAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGZyaWVuZHMgdXNlciBpZAogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGFkZF9ub3RmcmllbmQoJHVpZCwkZnVpZCkKICB7CiAgICByZXR1cm4gc2VsZjo6Z2V0X21hbmlwdWxhdG9yKCktPmFkZF9ub3RmcmllbmQoJHVpZCwkZnVpZCk7CiAgfQoKICAKICAvKioKICAgKiBSZW1vdmUgYSB1c2VyIGZyb20gb3VyIGxpc3Qgb2Ygbm90ZnJpZW5kcwogICAqIFRoaXMgbWV0aG9kIG9ubHkgZWZmZWN0cyBvbmUgc2lkZSBvZiB0aGUgZnJpZW5kc2hpcCByZWxhdGlvbi4gCiAgICogVGhpcyBtZXRob2QgZG9lcyB0aGUgZGF0YWJhc2Ugd29yayBvbmx5LCBubyBldmVudHMgYXJlIHNlbnQuCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSB1c2VyIGlkCiAgICogQHBhcmFtIHN0cmluZyBUaGUgZnJpZW5kcyB1c2VyIGlkCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZGVsX25vdGZyaWVuZCgkdWlkLCRmdWlkKQogIHsKICAgIHJldHVybiBzZWxmOjpnZXRfbWFuaXB1bGF0b3IoKS0+ZGVsX25vdGZyaWVuZCgkdWlkLCRmdWlkKTsKICB9CgoKICAvKioKICAgKiBTdWdnZXN0IHBvc3NpYmxlIGZyaWVuZHMgdG8gYSB1c2VyLiAgVGhpcyBtZXRob2QgdXNlcyB0aGUgCiAgICogbWFuaXB1bGF0b3JzIHRvIGdhdGhlciBhIGxpc3Qgb2YgZnJpZW5kcyBvZiBmcmllbmRzIHRoYXQKICAgKiB3ZSBoYXZlIG5vdCBhbHJlYWR5IGFkZGVkIHRvIG91ciBmcmllbmRzIGxpc3QgYW5kIHRoYXQgaGF2ZQogICAqIG5vdCBleHBsaWNpdGx5IGRlbmllZCB1cywgb3Igd2UgaGF2ZSBub3QgZXhwbGljaXRpbHkgYWxyZWFkeSBkZW5pZWQKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHVzZXIgaWQKICAgKiBAcGFyYW0gaW50ZWdlciBBIGxpbWl0IHRvIHRoZSBudW1iZXIgb2YgZnJpZW5kcwogICAqIEByZXR1cm4gYXJyYXkgb2YgdXNlciBpZHMKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHN1Z2dlc3QoJHVpZCwkbGltaXQgPSA1MCkKICB7CiAgICAkZnJpZW5kcyA9IHNlbGY6OmdldF9mcmllbmRzKCR1aWQpOwogICAgJG5vdGZyaWVuZHMgPSBzZWxmOjpnZXRfbm90ZnJpZW5kcygkdWlkKTsKICAgIAogICAgLy8gdG9kbzogaXQgd291bGQgYmUgbmVhdCBoZXJlIGlmIHdlIGdhdGhlcmVkIHNvbWV0aGluZyBmcm9tIGludGVyZXN0cy4uLgoKICAgICRyZXN1bHRzID0gYXJyYXkoKTsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRmcmllbmRzKTsgJGkrKyApIHsKICAgICAgaWYoIGNvdW50KCRyZXN1bHRzKSA+PSAkbGltaXQgKSBicmVhazsKCiAgICAgICRoaXNmcmllbmRzID0gc2VsZjo6Z2V0X2ZyaWVuZHMoJGZyaWVuZHNbJGldKTsKICAgICAgaWYoIGlzX2FycmF5KCRoaXNmcmllbmRzKSAmJiBjb3VudCgkaGlzZnJpZW5kcykgKSB7Cglmb3IoICRqID0gMDsgJGogPCBjb3VudCgkaGlzZnJpZW5kcyk7ICRqKysgKSB7CgkgIGlmKCBpc19hcnJheSgkbm90ZnJpZW5kcykgJiYgY291bnQoJG5vdGZyaWVuZHMpICYmICFpbl9hcnJheSgkaGlzZnJpZW5kc1skaV0sJG5vdGZyaWVuZHMpICkgewoJICAgIC8vIHdlIGhhdmUgYWxyZWFkeSBkZWNsaW5lZCBhIHJlcXVlc3QgZnJvbSB0aGlzIGd1eQoJICAgIGJyZWFrOwoJICB9CgoJICAkaGlzcmVxdWVzdHMgPSBzZWxmOjpnZXRfZnJpZW5kcmVxdWVzdHMoJGhpc2ZyaWVuZHNbJGldKTsKCSAgaWYoIGlzX2FycmF5KCRoaXNyZXF1ZXN0cykgJiYgY291bnQoJGhpc3JlcXVlc3RzKSAmJiBpbl9hcnJheSgkdWlkLCRoaXNyZXF1ZXN0cykgKSB7CgkgICAgLy8gd2UndmUgYWxyZWFkeSBzZW50IHRoaXMgdXNlciBhIHJlcXVlc3QuLi4gbm8gbmVlZCB0byBzdWdnZXN0IGl0IGFnYWluLgoJICAgIGJyZWFrOwoJICB9CgoJICAkaGlzbm90ZnJpZW5kcyA9IHNlbGY6OmdldF9ub3RmcmllbmRzKCRoaXNmcmluZHNbJGldKTsKCSAgaWYoIGlzX2FycmF5KCRoaXNub3RmcmllbmRzKSAmJiBjb3VudCgkaGlzbm90ZnJpZW5kcykgJiYgaW5fYXJyYXkoJHVpZCwkaGlzbm90ZnJpZW5kcykgKSB7CgkgICAgLy8gdGhpcyB1c2VyIGhhcyBhbHJlYWR5IHJlamVjdGVkIHVzLi4uIG5vIG5lZWQgdG8gc3VnZ2VzdCBpdCBhZ2Fpbi4KCSAgICBicmVhazsKCSAgfQoKCSAgJHJlc3VsdHNbXSA9ICRoaXNmcmllbmRzWyRpXTsKCSAgaWYoIGNvdW50KCRyZXN1bHRzKSA+PSAkbGltaXQgKSBicmVhazsKCX0KICAgICAgfQogICAgfQoKICAgIGlmKCBjb3VudCgkcmVzdWx0cykgKSByZXR1cm4gJHJlc3VsdHM7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZnJpZW5kcmVxdWVzdHMoJHVpZCwkbGltaXQgPSAxMDAwLCRvZmZzZXQgPSAwKQogIHsKICAgIHJldHVybiBzZWxmOjpnZXRfbWFuaXB1bGF0b3IoKS0+Z2V0X2ZyaWVuZHJlcXVlc3RzKCR1aWQsJGxpbWl0LCRvZmZzZXQpOwogIH0KCgogIC8qKgogICAqIENyZWF0ZSBhIGZyaWVuZCByZXF1ZXN0IHRvIHRoZSB1c2VyIGlkZW50aWZpZWQgYnkgZnVpZCBmcm9tIHRoZSB1c2VyIGlkZW50aWZpZWQgYnkgdWlkCiAgICogVGhpcyBmdW5jdGlvbiBkb2VzIHRoZSBkYXRhYmFzZSB3b3JrIG9ubHksIG5vdGlmaWNhdGlvbnMgYXJlIG5vdCBzZW50LgogICAqIAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHBvdGVudGlhbCBmcmllbmRzIHVzZXIgaWQKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBjdXJyZW50IHVzZXJzIHVpZAogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGFkZF9mcmllbmRyZXF1ZXN0KCRmdWlkLCR1aWQpCiAgewogICAgcmV0dXJuIHNlbGY6OmdldF9tYW5pcHVsYXRvcigpLT5hZGRfZnJpZW5kcmVxdWVzdCgkZnVpZCwkdWlkKTsKICB9CgoKICAvKioKICAgKiBEZWxldGUgYSBmcmllbmQgcmVxdWVzdCB0byB0aGUgdXNlciBpZGVudGlmaWVkIGJ5IGZ1aWQgZnJvbSB0aGUgdXNlciBpZGVudGlmaWVkIGJ5IHVpZAogICAqIFRoaXMgZnVuY3Rpb24gZG9lcyB0aGUgZGF0YWJhc2Ugd29yayBvbmx5LCBub3RpZmljYXRpb25zIGFyZSBub3Qgc2VudC4KICAgKiAKICAgKiBAcGFyYW0gc3RyaW5nIHRoZSBwb3RlbnRpYWwgZnJpZW5kcyB1c2VyIGlkCiAgICogQHBhcmFtIHN0cmluZyBUaGUgY3VycmVudCB1c2VycyBpZAogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGRlbF9mcmllbmRyZXF1ZXN0KCRmdWlkLCR1aWQpCiAgewogICAgcmV0dXJuIHNlbGY6OmdldF9tYW5pcHVsYXRvcigpLT5kZWxfZnJpZW5kcmVxdWVzdCgkZnVpZCwkdWlkKTsKICB9CgoKICAvKioKICAgKiBDcmVhdGUgYSBuZXcgZnJpZW5kIHJlcXVlc3QuCiAgICogVGhpcyBtZXRob2Qgd2lsbCBjcmVhdGUgYSBuZXcgZnJpZW5kIHJlcXVlc3QgZnJvbSB1aWQgdG8gZnVpZAogICAqIFRoaXMgaXMgYSBoaWdoIGxldmVsIG1ldGhvZCB0aGF0IG1heSBzZW5kIGV2ZW50cyBvciBub3RpZmljYXRpb25zLgogICAqIFRoaXMgbWV0aG9kIG1heSBhbHNvIGNoZWNrIHBlcm1pc3Npb25zIGV0Yy4KICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGZyaWVuZHMgdWlkCiAgICogQHBhcmFtIHN0cmluZyBUaGUgY3VycmVudCB1aWQKICAgKiBAcmV0dXJuIG51bGwKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZV9mcmllbmRyZXF1ZXN0KCRmdWlkLCR1aWQpCiAgewogICAgcmV0dXJuIHNlbGY6OmdldF9tYW5pcHVsYXRvcigpLT5hZGRfZnJpZW5kcmVxdWVzdCgkZnVpZCwkdWlkKTsKICAgIC8vIHRvZG86IHNlbmQgbm90aWZpY2F0aW9ucyBoZXJlLi4uIChtYXliZSkuCiAgfQoKCiAgLyoqCiAgICogQXBwcm92ZSBhbiBleGlzdGluZyBmcmllbmQgcmVxdWVzdCBmcm9tIGZ1aWQgdG8gdWlkCiAgICogVGhpcyBtZXRob2QgaXMgbm9ybWFsbHkgY2FsbGVkIGJ5IHRoZSBmdWlkIHRvIGFwcHJvdmUgYSByZXF1ZXN0IG1hZGUgYnkgdWlkCiAgICogRGV2ZWxvcGVycyBtdXN0IHVzZSBjYXV0aW9uIHdoZW4gdXNpbmcgdGhpcyBtZXRob2QgYXMgaXQgbWF5IGFsbG93IHRoZW0gdG8gYXJiaXRyYXJpbHkKICAgKiBhcHByb3ZlIGZyaWVuZCByZXF1ZXN0cy4gIE9uY2UgYXBwcm92ZWQgdGhlIHVzZXJzIGFyZSBhc3NlcnRlZCBhcyBtdXR1YWwgZnJpZW5kcwogICAqIFRoaXMgaXMgYSBoaWdoIGxldmVsIG1ldGhvZCB0aGF0IG1heSBzZW5kIGV2ZW50cyBvciBub3RpZmljYXRpb25zLgogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgY3VycmVudCB1c2VycyB1aWQgCiAgICogQHBhcmFtIHN0cmluZyBUaGUgZnJpZW5kIHVzZXJzIHVpZC4KICAgKiBAcmV0dXJuIG51bGwKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGFwcHJvdmVfZnJpZW5kcmVxdWVzdCgkdWlkLCRmdWlkKQogIHsKICAgIGlmKCAhJHVpZCB8fCAhJGZ1aWQgKSByZXR1cm47CiAgICAkcmVxdWVzdHMgPSBzZWxmOjpnZXRfZnJpZW5kcmVxdWVzdHMoJHVpZCk7CiAgICBpZiggIWlzX2FycmF5KCRyZXF1ZXN0cykgfHwgY291bnQoJHJlcXVlc3RzKSA9PSAwICkgcmV0dXJuOwoKICAgIGlmKCBpbl9hcnJheSgkZnVpZCwkcmVxdWVzdHMpICkgewogICAgICBzZWxmOjpkZWxfZnJpZW5kcmVxdWVzdCgkZnVpZCwkdWlkKTsKCiAgICAgIC8vIGFkZCB0aGVtIHRvIGVhY2ggb3RoZXJzICdmcmllbmRzJyBsaXN0LgogICAgICBzZWxmOjphZGRfZnJpZW5kKCR1aWQsJGZ1aWQpOwogICAgICBzZWxmOjphZGRfZnJpZW5kKCRmdWlkLCR1aWQpOwoKICAgICAgLy8gdG9kbzogc2VuZCBzb21lIHNvcnQgb2Ygbm90aWZpY2F0aW9uIHRvIHVpZAogICAgfQogIH0KCgogIC8qKiAKICAgKiBEZW55IGFuIGV4aXN0aW5nIGZyaWVuZCByZXF1ZXN0IGZyb20gZnVpZCB0byB1aWQKICAgKiBUaGlzIG1ldGhvZCBpcyBhIGhpZ2ggbGV2ZWwgbWV0aG9kIHRoYXQgbWF5IHNlbmQgbm90aWZpY2F0aW9ucyBvciBldmVudHMKICAgKiBPbmNlIGNvbmZpcm1lZCB0aGUgZGVuaWVkIHVzZXIgKGZ1aWQpIGlzIGFkZGVkIHRvIHRoZSBjdXJyZW50IHVzZXJzIG5vdGZyaWVuZHMgbGlzdC4KICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGN1cnJlbnQgdXNlcnMgdWlkCiAgICogQHBhcmFtIHN0cmluZyBUaGUgZnJpZW5kcyB1aWQKICAgKiBAcmV0dXJuIG51bGwKICAgKi8KICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbnlfZnJpZW5kcmVxdWVzdCgkdWlkLCRmdWlkKQogIHsKICAgIGlmKCAhJHVpZCB8fCAhJGZ1aWQgKSByZXR1cm47CiAgICAkcmVxdWVzdHMgPSBzZWxmOjpnZXRfZnJpZW5kcmVxdWVzdHMoJHVpZCk7IC8vIGdldCBteSBmcmllbmQgcmVxdWVzdHMuCiAgICBpZiggIWlzX2FycmF5KCRyZXF1ZXN0cykgfHwgY291bnQoJHJlcXVlc3RzKSA9PSAwICkgcmV0dXJuOwoKICAgIGlmKCBpbl9hcnJheSgkZnVpZCwkcmVxdWVzdHMpICkgewogICAgICBzZWxmOjpkZWxfZnJpZW5kcmVxdWVzdCgkZnVpZCwkdWlkKTsKCiAgICAgIC8vIGFuZCBhZGQgZnVpZCB0byB0aGUgbm90ZnJpZW5kcyBsaXN0LgogICAgICBzZWxmOjphZGRfbm90ZnJpZW5kKCR1aWQsJGZ1aWQpOwoKICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIG5vdGlmaWNhdGlvbnMgaGVyZS4KICAgIH0KICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZV9hbGwoJHVpZCkKICB7CiAgICBpZiggISR1aWQgKSByZXR1cm47CiAgICByZXR1cm4gc2VsZjo6Z2V0X21hbmlwdWxhdG9yKCktPmRlbGV0ZV9hbGwoJHVpZCk7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_friend_manipulator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmFic3RyYWN0IGNsYXNzIGNnc2FfZnJpZW5kX21hbmlwdWxhdG9yCnsKICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZyaWVuZHMoJHVpZCwkbGltaXQgPSAxMDAwMDAsJG9mZnNldCA9IDApOwoKICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gYWRkX2ZyaWVuZCgkdWlkLCRmdWlkKTsKCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGRlbF9mcmllbmQoJHVpZCwkZnVpZCk7CgogIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBnZXRfbm90ZnJpZW5kcygkdWlkKTsKCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGFkZF9ub3RmcmllbmQoJHVpZCwkZnVpZCk7CgogIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBkZWxfbm90ZnJpZW5kKCR1aWQsJGZ1aWQpOwoKICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZyaWVuZHJlcXVlc3RzKCR1aWQsJGxpbWl0ID0gMTAwMCwkb2Zmc2V0ID0gMCk7CgogIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBhZGRfZnJpZW5kcmVxdWVzdCgkZnVpZCwkdWlkKTsKCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGRlbF9mcmllbmRyZXF1ZXN0KCRmdWlkLCR1aWQpOwoKICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2FsbCgkdWlkKTsKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_leaderboard.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ3NhX2xlYWRlcmJvYXJkIAp7CiAgcHJpdmF0ZSBzdGF0aWMgJF9maWVsZHMgPSBhcnJheSgnaWQnLCduYW1lJywndHlwZScsJ2ltYWdlJywnZGVzY3JpcHRpb24nLCdjcmVhdGVkJywnbW9kaWZpZWQnLCdtdWx0aXBsZWJhZGdlcycsJ21hdGNoX2xvY2F0aW9uJywnY3JpdGVyaWFfbG9jYXRpb25jYXRlZ29yeScsJ2NyaXRlcmlhX2xvY2F0aW9uaGllcicsJ2NyaXRlcmlhX2xvY2F0aW9uaGllcmNoaWxkcmVuJywnY3JpdGVyaWFfYWN0aXZpdHlpZCcsJ2NyaXRlcmlhX2FjdGl2aXR5Y2hpbGRyZW4nKTsKICBwcml2YXRlIHN0YXRpYyAkX3Jva2V5cyA9IGFycmF5KCdpZCcsJ2NyZWF0ZWQnLCdtb2RpZmllZCcpOwogIHByaXZhdGUgc3RhdGljICRfdHlwZXMgPSBhcnJheSgnbG9jYXRpb24nLCdjaGVja2lucycsJ2ZyaWVuZHMnLCdhY3Rpdml0eScpOwogIHByaXZhdGUgc3RhdGljICRfY2FjaGVkOwogIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoKTsKICBwcml2YXRlICRfZGlydHk7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgJHRoaXMtPl9kYXRhWydtYXRjaF9sb2NhdGlvbiddID0gJ2xvY2F0aW9uaWQnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF90eXBlcygpIAogIHsKICAgIHJldHVybiBzZWxmOjokX3R5cGVzOwogIH0KCiAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX3ZhbGlkX2tleSgka2V5KQogIHsKICAgIGlmKCBpbl9hcnJheSgka2V5LHNlbGY6OiRfZmllbGRzKSApIHJldHVybiBUUlVFOwogICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnY3JpdGVyaWFfJykgKSByZXR1cm4gVFJVRTsKICAgIGlmKCBzdGFydHN3aXRoKCRrZXksJ21hdGNoXycpICkgcmV0dXJuIFRSVUU7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGspCiAgewogICAgaWYoICFzZWxmOjpfdmFsaWRfa2V5KCRrKSApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJGsuJyBpcyBub3QgYSB2YWxpZCBmaWVsZCBmb3IgYSBsZWFkZXJib2FyZCcpOwoKICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtdKSApCiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtdOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRrLCR2KQogIHsKICAgIGlmKCAhc2VsZjo6X3ZhbGlkX2tleSgkaykgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRrLicgaXMgbm90IGEgdmFsaWQgZmllbGQgZm9yIHRoaXMgb2JqZWN0Jyk7CgogICAgaWYoICRrID09ICd0eXBlJyAmJiAhaW5fYXJyYXkoJHYsc2VsZjo6JF90eXBlcykgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR2LicgaXMgYW4gaW52YWxpZCBsZWFkZXJib2FyZCB0eXBlJyk7CgogICAgJHRoaXMtPl9kYXRhWyRrXSA9ICR2OwogICAgJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RpcnR5KCkKICB7CiAgICAkdGhpcy0+X2RpcnR5ID0gVFJVRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzYXZlKCkKICB7CiAgICAkdGhpcy0+dmFsaWRhdGUoKTsKCiAgICBpZiggISR0aGlzLT5fZGlydHkgKSByZXR1cm47CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSAmJiAkdGhpcy0+X2RhdGFbJ2lkJ10gPiAwICkgewogICAgICByZXR1cm4gJHRoaXMtPnVwZGF0ZSgpOwogICAgfQogICAgcmV0dXJuICR0aGlzLT5pbnNlcnQoKTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgewogICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ25hbWUnXSkgfHwgdHJpbSgkdGhpcy0+X2RhdGFbJ25hbWUnXSkgPT0gJycgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIG9iamVjdCBkYXRhOiBuYW1lIGlzIG5vdCBzcGVjaWZpZWQnKTsKCiAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsndHlwZSddKSApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgb2JqZWN0IGRhdGE6IHR5cGUgaXMgbm90IHNwZWNpZmllZCcpOwogICAgCiAgICBpZiggIWluX2FycmF5KCR0aGlzLT5fZGF0YVsndHlwZSddLHNlbGY6OiRfdHlwZXMpICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCBvYmplY3QgZGF0YTogdHlwZSBvZiAnLiR0aGlzLT5fZGF0YVsndHlwZSddLicgaXMgaW52YWxpZCcpOwoKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSApIHsKICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkQuJyBXSEVSRSBuYW1lID0gPyBBTkQgaWQgIT0gPyc7CiAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWyduYW1lJ10sJHRoaXMtPl9kYXRhWydpZCddKSk7CiAgICAgIGlmKCAkdG1wICkKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgb2JqZWN0IGRhdGE6IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UnKTsKICAgIH0KICAgIGVsc2UgewogICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9MRUFERVJCT0FSRC4nIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ25hbWUnXSkpOwogICAgICBpZiggJHRtcCApCgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIG9iamVjdCBkYXRhOiBuYW1lIGlzIGFscmVhZHkgaW4gdXNlJyk7CiAgICB9CiAgfQoKICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5zZXJ0KCkKICB7CiAgICBpZiggISR0aGlzLT5fZGlydHkgKSByZXR1cm47CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJG5vdyA9IHRpbWUoKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLkNHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJELiIKICAgICAgICAgICAgICAobmFtZSx0eXBlLGRlc2NyaXB0aW9uLGltYWdlLGRhdGEsY3JlYXRlZCxtb2RpZmllZCkgVkFMVUVTICg/LD8sPyw/LD8sPyw/KSI7CgogICAgJGRhdGEgPSAkdGhpcy0+X2RhdGE7CiAgICB1bnNldCgkZGF0YVsnaWQnXSk7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwKCQkJYXJyYXkoJHRoaXMtPm5hbWUsJHRoaXMtPnR5cGUsJHRoaXMtPmRlc2NyaXB0aW9uLCR0aGlzLT5pbWFnZSwKCQkJICAgICAgc2VyaWFsaXplKCRkYXRhKSwkbm93LCRub3cpKTsKICAgIGlmKCAhJGRiciApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignRGF0YWJhc2UgRXJyb3I6ICcuJGRiLT5zcWwuJyAtLSAnLiRkYi0+RXJyb3JNc2coKSk7CiAgICB9CiAgICAkdGhpcy0+X2RhdGFbJ2lkJ10gPSAkZGItPkluc2VydF9JRCgpOwogICAgJHRoaXMtPl9kaXJ0eSA9IGZhbHNlOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIHVwZGF0ZSgpCiAgewogICAgaWYoICEkdGhpcy0+X2RpcnR5ICkgcmV0dXJuOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRub3cgPSB0aW1lKCk7CiAgICAkcXVlcnkgPSAnVVBEQVRFICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkQuJwogICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgdHlwZSA9ID8sIGRlc2NyaXB0aW9uID0gPywgaW1hZ2UgPSA/LCBkYXRhID0gPywgbW9kaWZpZWQgPSA/CiAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKCiAgICAkZGF0YSA9ICR0aGlzLT5fZGF0YTsKICAgIHVuc2V0KCRkYXRhWydpZCddKTsKCiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwKCQkJYXJyYXkoJHRoaXMtPm5hbWUsJHRoaXMtPnR5cGUsJHRoaXMtPmRlc2NyaXB0aW9uLCR0aGlzLT5pbWFnZSwKCQkJICAgICAgc2VyaWFsaXplKCRkYXRhKSwkbm93LCR0aGlzLT5pZCkpOwogICAgaWYoICEkZGJyICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdEYXRhYmFzZSBFcnJvcjogJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKICAgIH0KICAgICR0aGlzLT5fZGlydHkgPSBmYWxzZTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmxvYWRfZnJvbV9kYXRhKCRkYXRhKQogIHsKICAgIGlmKCAhaXNzZXQoJGRhdGFbJ2lkJ10pIHx8ICFpc3NldCgkZGF0YVsnbmFtZSddKSApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCBkYXRhIGluIGFycmF5IC4uLiBtaXNzaW5nIGRhdGEnKTsKICAgIH0KCiAgICBmb3JlYWNoKCAkZGF0YSBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgaWYoICFzZWxmOjpfdmFsaWRfa2V5KCRrZXkpICYmICRrZXkgIT0gJ2RhdGEnICkgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCBkYXRhIGtleSAnLiRrZXkuJyBpbiBhcnJheSAuLi4gY2Fubm90IGxvYWQnKTsKICAgICAgfQogICAgfQoKICAgICRvYmogPSBuZXcgY2dzYV9sZWFkZXJib2FyZDsKICAgIGlmKCBpc3NldCgkZGF0YVsnZGF0YSddKSApIHsKICAgICAgJG9iai0+X2RhdGEgPSB1bnNlcmlhbGl6ZSgkZGF0YVsnZGF0YSddKTsKICAgICAgJG9iai0+X2RhdGFbJ2lkJ10gPSAkZGF0YVsnaWQnXTsKICAgIH0KICAgIGVsc2UgewogICAgICAkb2JqLT5fZGF0YSA9ICRkYXRhOwogICAgfQogICAgCiAgICByZXR1cm4gJG9iajsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVsZXRlX2J5X2lkKCRpZCkKICB7CiAgICBpZiggKGludCkkaWQgPD0gMCApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgaWQgc3BlY2lmaWVkJyk7CgogICAgJGRpciA9IGNnc2FfdXRpbHM6OmdldF9sZWFkZXJib2FyZF9maWxlcGF0aCgpOwogICAgJGxlYWRlcmJvYXJkID0gc2VsZjo6bG9hZF9ieV9pZCgkaWQpOwogICAgY2dzYV91dGlsczo6ZGVsZXRlX2ltYWdlKCRkaXIsJGxlYWRlcmJvYXJkLT5pbWFnZSk7CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0JBREdFUy4nIFdIRVJFIGxlYWRlcmJvYXJkX2lkID0gPyc7CiAgICAkYmFkZ2VzID0gJGRiLT5HZXRDb2woJHF1ZXJ5LGFycmF5KCRpZCkpOwogICAgaWYoIGlzX2FycmF5KCRiYWRnZXMpICYmIGNvdW50KCRiYWRnZXMpICkgewogICAgICBmb3JlYWNoKCAkYmFkZ2VzIGFzICRvbmUgKSB7CgkkZGlyID0gY2dzYV91dGlsczo6Z2V0X2JhZGdlX2ZpbGVwYXRoX2J5X2JhZGdlX2lkKCRvbmUpOwoJaWYoICRkaXIgJiYgaXNfZGlyKCRkaXIpICkgewoJICByZWN1cnNpdmVfZGVsZXRlKCRkaXIpOwoJfQogICAgICB9CiAgICB9CgogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQkFER0VTX1VTRVJTLicgV0hFUkUgbGVhZGVyYm9hcmRfaWQgPSA/JzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpZCkpOwogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQkFER0VTLicgV0hFUkUgbGVhZGVyYm9hcmRfaWQgPSA/JzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpZCkpOwogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkRfTUVNQkVSUy4nIFdIRVJFIGJvYXJkX2lkID0gPyc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkaWQpKTsKICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJELicgV0hFUkUgaWQgPSA/JzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpZCkpOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmbG9hZF9ieV9pZCgkaWQsJGFzX29iaiA9IFRSVUUpCiAgewogICAgaWYoIChpbnQpJGlkIDw9IDAgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGlkIHNwZWNpZmllZCcpOwoKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJELicgV0hFUkUgaWQgPSA/JzsKICAgICRvbmUgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGlkKSk7CgogICAgaWYoIGlzc2V0KCRvbmVbJ2RhdGEnXSkgfHwgaXNfbnVsbCgkb25lWydkYXRhJ10pICkgewogICAgICBpZiggJG9uZVsnZGF0YSddICE9ICcnICkgJG9uZVsnZGF0YSddID0gdW5zZXJpYWxpemUoJG9uZVsnZGF0YSddKTsKICAgICAgaWYoIGlzX2FycmF5KCRvbmVbJ2RhdGEnXSkgKSB7Cglmb3JlYWNoKCAkb25lWydkYXRhJ10gYXMgJGsgPT4gJHYgKSB7CgkgIGlmKCBpbl9hcnJheSgkayxzZWxmOjokX2ZpZWxkcykgKSB7CgkgICAgJG9uZVska10gPSAkdjsKCSAgfQoJfQogICAgICB9CiAgICAgIHVuc2V0KCRvbmVbJ2RhdGEnXSk7CiAgICB9CgogICAgaWYoICRhc19vYmogKSB7CiAgICAgIHJldHVybiBzZWxmOjpsb2FkX2Zyb21fZGF0YSgkb25lKTsKICAgIH0KICAgIHJldHVybiAkb25lOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfYWxsKCRhc19vYmogPSBUUlVFKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoc2VsZjo6JF9jYWNoZWQpICkgewogICAgICBzZWxmOjokX2NhY2hlZCA9IGFycmF5KCk7CiAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkQuJyBPUkRFUiBCWSBpZCBERVNDJzsKICAgICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgCiAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCWZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKCSAgaWYoIGlzc2V0KCRvbmVbJ2RhdGEnXSkgfHwgaXNfbnVsbCgkb25lWydkYXRhJ10pICkgewoJICAgIGlmKCAkb25lWydkYXRhJ10gIT0gJycgKSAkb25lWydkYXRhJ10gPSB1bnNlcmlhbGl6ZSgkb25lWydkYXRhJ10pOwoJICAgIGlmKCBpc19hcnJheSgkb25lWydkYXRhJ10pICkgewoJICAgICAgZm9yZWFjaCggJG9uZVsnZGF0YSddIGFzICRrID0+ICR2ICkgewoJCWlmKCBpbl9hcnJheSgkayxzZWxmOjokX2ZpZWxkcykgKSB7CgkJICAkb25lWyRrXSA9ICR2OwoJCX0KCSAgICAgIH0KCSAgICB9CgkgICAgdW5zZXQoJG9uZVsnZGF0YSddKTsKCSAgICBzZWxmOjokX2NhY2hlZFtdID0gJG9uZTsKCSAgfQoJfQogICAgICB9CiAgICB9CgogICAgJHJlcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCBzZWxmOjokX2NhY2hlZCBhcyAkb25lICkgewogICAgICBpZiggJGFzX29iaiApIHsKCSRyZXNbXSA9IHNlbGY6OmxvYWRfZnJvbV9kYXRhKCRvbmUpOwogICAgICB9CiAgICAgIGVsc2UgewoJJHJlc1tdID0gJG9uZTsKICAgICAgfQogICAgfQogICAgcmV0dXJuICRyZXM7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gbWF0Y2hlcyhjZ3NhX2NoZWNraW4gJGNoZWNraW4pCiAgewogICAgc3dpdGNoKCAkdGhpcy0+dHlwZSApIHsKICAgIGNhc2UgJ2ZyaWVuZHMnOgogICAgICByZXR1cm4gRkFMU0U7CgogICAgY2FzZSAnY2hlY2tpbnMnOgogICAgICByZXR1cm4gVFJVRTsKICAgICAgCiAgICBjYXNlICdsb2NhdGlvbic6CiAgICAgIHN3aXRjaCggJHRoaXMtPm1hdGNoX2xvY2F0aW9uICkgewogICAgICBjYXNlICdsb2NhdGlvbmlkJzoKCWlmKCAkY2hlY2tpbi0+bG9jYXRpb24gPT0gJHRoaXMtPmNyaXRlcmlhX2xvY2F0aW9uaWQgKSB7CgkgIHJldHVybiBUUlVFOwoJfQoJYnJlYWs7CgogICAgICBjYXNlICdjYXRlZ29yeSc6CgkkY2F0ZWdvcmllcyA9ICR0aGlzLT5jcml0ZXJpYV9sb2NhdGlvbmNhdGVnb3J5OwoJLy8gdGVzdCBpZiB0aGUgY2hlY2tpbiBsb2NhdGlvbiBpcyBpbiBvbmUgb2YgdGhlc2UgY2F0ZWdvcmllcy4KCSRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOyAvLyBtYWtlIHN1cmUgaXQncyBsb2FkZWQuCgkkY29tcGFueSA9IGNkX3V0aWxzOjpnZXRfY29tcGFueSgkY2hlY2tpbi0+bG9jYXRpb24sJycsVFJVRSxGQUxTRSk7CglpZiggaXNfb2JqZWN0KCRjb21wYW55KSApIHsKCSAgJGNvbXBfY2F0ZWdvcmllcyA9ICRjb21wYW55LT5saXN0X2NhdGVnb3JpZXMoRkFMU0UpOwoJICBpZiggaXNfYXJyYXkoJGNvbXBfY2F0ZWdvcmllcykgJiYgY291bnQoJGNvbXBfY2F0ZWdvcmllcykgKSB7CgkgICAgJGludGVyc2VjdCA9IGFycmF5X2ludGVyc2VjdCgkY2F0ZWdvcmllcywkY29tcF9jYXRlZ29yaWVzKTsKCSAgICBpZiggaXNfYXJyYXkoJGludGVyc2VjdCkgJiYgY291bnQoJGludGVyc2VjdCkgKSB7CgkgICAgICByZXR1cm4gVFJVRTsKCSAgICB9CgkgIH0KCX0KCXJldHVybiBGQUxTRTsKCiAgICAgIGNhc2UgJ2hpZXInOgoJJGhpZXIgPSAkdGhpcy0+Y3JpdGVyaWFfbG9jYXRpb25oaWVyOwoJJGhpZXJjaGlsZHJlbiA9ICR0aGlzLT5jcml0ZXJpYV9sb2NhdGlvbmhpZXJjaGlsZHJlbjsKCSRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOyAvLyBtYWtlIHN1cmUgaXQncyBsb2FkZWQuCgkkY29tcGFueSA9IGNkX3V0aWxzOjpnZXRfY29tcGFueSgkY2hlY2tpbi0+bG9jYXRpb24sJycsVFJVRSxGQUxTRSk7CglpZiggaXNfb2JqZWN0KCRjb21wYW55KSApIHsKCSAgaWYoICRoaWVyID09ICRjb21wYW55LT5oaWVyX2lkICkgcmV0dXJuIFRSVUU7CgkgIGlmKCAkaGllcmNoaWxkcmVuICkgewoJICAgIGlmKCBjZF91dGlsczo6aGllcmFyY2h5X21hdGNoX3BhcmVudCgkY29tcGFueS0+aGllcl9pZCwkaGllcikgKSB7CgkgICAgICByZXR1cm4gVFJVRTsKCSAgICB9CgkgIH0KCX0KICAgICAgfQogICAgICByZXR1cm4gRkFMU0U7CgogICAgY2FzZSAnYWN0aXZpdHknOgogICAgICByZXR1cm4gRkFMU0U7CiAgICB9CiAgICAKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZmluZF9tYXRjaGluZyhjZ3NhX2NoZWNraW4gJGNoZWNraW4pCiAgewogICAgJGFsbCA9IHNlbGY6OmdldF9hbGwoKTsKICAgIGlmKCAhaXNfYXJyYXkoJGFsbCkgfHwgY291bnQoJGFsbCkgPT0gMCApIHsKICAgICAgcmV0dXJuOwogICAgfQoKICAgICRyZXMgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJGFsbCBhcyAkb25lICkgewogICAgICBpZiggJG9uZS0+bWF0Y2hlcygkY2hlY2tpbikgKSB7CgkkcmVzW10gPSAkb25lOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gJHJlczsKICB9CgogIC8vCiAgLy8gbWVtYmVycyBzdHVmZgogIC8vCiAgcHVibGljIGZ1bmN0aW9uIGFkZF9tZW1iZXIoJHVpZCwkc2NvcmUsJG5vdGVzID0gJycpCiAgewogICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pIHx8ICR0aGlzLT5fZGF0YVsnaWQnXSA8PSAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IGFkZCBhIG1lbWJlciB0byBhbiB1bnNhdmVkIGxlYWRlcmJvYXJkJyk7CgogICAgJHVpZCA9IChpbnQpJHVpZDsKICAgICRzY29yZSA9IChpbnQpJHNjb3JlOwogICAgaWYoICR1aWQgPCAwIHx8ICRzY29yZSA8IDAgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDYW5ub3QgYWRkIG1lbWJlcnNoaXAuICBJbnZhbGlkIHVpZCBhbmQvb3Igc2NvcmUnKTsKCiAgICAvLyBtZW1iZXJzIGNhbiBvbmx5IGJlIGluIHRoZSB0YWJsZSBvbmNlLgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLkNHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJEX01FTUJFUlMuJwogICAgICAgICAgICAgIChib2FyZF9pZCx1aWQsc2NvcmUsbm90ZXMpIFZBTFVFUyAoPyw/LD8sPykKICAgICAgICAgICAgICBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBzY29yZSA9ID8nOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ2lkJ10sJHVpZCwkc2NvcmUsJG5vdGVzLCRzY29yZSkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGFkanVzdF9zY29yZSgkdWlkLCRkZWx0YSA9IDEpCiAgewogICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pIHx8ICR0aGlzLT5fZGF0YVsnaWQnXSA8PSAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IGFkZCBhIG1lbWJlciB0byBhbiB1bnNhdmVkIGxlYWRlcmJvYXJkJyk7CgogICAgJHVpZCA9IChpbnQpJHVpZDsKICAgICRkZWx0YSA9IChpbnQpJGRlbHRhOwogICAgaWYoICR1aWQgPCAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IGFkZCBtZW1iZXJzaGlwLiAgSW52YWxpZCB1aWQgYW5kL29yIHNjb3JlJyk7CgogICAgaWYoICRkZWx0YSA9PSAwICkgcmV0dXJuOwoKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJEX01FTUJFUlMuJyBXSEVSRSBib2FyZF9pZCA9ID8gQU5EIHVpZCA9ID8nOwogICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ2lkJ10sJHVpZCkpOwogICAgaWYoICFpc19hcnJheSgkcm93KSB8fCBjb3VudCgkcm93KSA9PSAwICkgewogICAgICByZXR1cm4gJHRoaXMtPmFkZF9tZW1iZXIoJHVpZCwkZGVsdGEpOwogICAgfQoKICAgICRxdWVyeSA9ICdVUERBVEUgJy5DR1NPQ0lBTF9UQUJMRV9MRUFERVJCT0FSRF9NRU1CRVJTLicgU0VUIHNjb3JlID0gc2NvcmUgKyA/IAogICAgICAgICAgICAgIFdIRVJFIGJvYXJkX2lkID0gPyBBTkQgdWlkID0gPyc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRkZWx0YSwkdGhpcy0+X2RhdGFbJ2lkJ10sJHVpZCkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHJlbW92ZV9tZW1iZXIoJHVpZCkKICB7CiAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgfHwgJHRoaXMtPl9kYXRhWydpZCddIDw9IDAgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDYW5ub3QgcmVtb3ZlIGEgbWVtYmVyIHRvIGFuIHVuc2F2ZWQgbGVhZGVyYm9hcmQnKTsKCiAgICAkdWlkID0gKGludCkkdWlkOwogICAgaWYoICR1aWQgPCAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHJlbW92ZSBtZW1iZXJzaGlwLiAgSW52YWxpZCB1aWQnKTsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkRfTUVNQkVSUy4nCiAgICAgICAgICAgICAgV0hFUkUgYm9hcmRfaWQgPSA/LCBBTkQgdWlkID0gPyc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5fZGF0YVsnaWQnXSwkdWlkKSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21lbWJlcl9yYW5rKCR1aWQpCiAgewogICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pIHx8ICR0aGlzLT5fZGF0YVsnaWQnXSA8PSAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IGdldCBtZW1iZXIgcmFuayBmcm9tIGFuIHVuc2F2ZWQgbGVhZGVyYm9hcmQnKTsKCiAgICAkdWlkID0gKGludCkkdWlkOwogICAgaWYoICR1aWQgPCAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHJlbW92ZSBtZW1iZXJzaGlwLiAgSW52YWxpZCB1aWQnKTsKCiAgICAkcXVlcnkgPSAnU0VUIEByYW5rID0gMDsgCiAgICAgICAgICAgICAgU0VMRUNUIEByYW5rOj1AcmFuaysxIEFTIHJhbmsKICAgICAgICAgICAgICBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkRfTUVNQkVSUy4nCiAgICAgICAgICAgICAgT1JERVIgQlkgc2NvcmUgREVTQyAKICAgICAgICAgICAgICBXSEVSRSBib2FyZF9pZCA9ID8gQU5EIHVpZCA9ID8nOwogICAgJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ2lkJ10sJHVpZCkpOwogICAgcmV0dXJuICR0bXA7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21lbWJlcl9pbmZvKCR1aWQpCiAgewogICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pIHx8ICR0aGlzLT5fZGF0YVsnaWQnXSA8PSAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHJlbW92ZSBhIG1lbWJlciB0byBhbiB1bnNhdmVkIGxlYWRlcmJvYXJkJyk7CgogICAgJHVpZCA9IChpbnQpJHVpZDsKICAgIGlmKCAkdWlkIDwgMCApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0Nhbm5vdCByZXRyaWV2ZSBtZW1iZXJzaGlwLiAgSW52YWxpZCB1aWQnKTsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9MRUFERVJCT0FSRF9NRU1CRVJTLicKICAgICAgICAgICAgICBXSEVSRSBib2FyZF9pZCA9ID8gQU5EIHVpZCA9ID8nOwogICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkdGhpcy0+X2RhdGFbJ2lkJ10sJHVpZCkpOwogICAgcmV0dXJuICRyb3c7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gY291bnRfbWVtYmVycygpCiAgewogICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pIHx8ICR0aGlzLT5fZGF0YVsnaWQnXSA8PSAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHJlbW92ZSBhIG1lbWJlciB0byBhbiB1bnNhdmVkIGxlYWRlcmJvYXJkJyk7CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgQ09VTlQodWlkKSBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkRfTUVNQkVSUy4nCiAgICAgICAgICAgICAgV0hFUkUgYm9hcmRfaWQgPSA/JzsKICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHRoaXMtPl9kYXRhWydpZCddKSk7CiAgICByZXR1cm4gJHRtcDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBjb3VudF9tZW1iZXJzX2J5X3Njb3JlKCRtaW5fc2NvcmUsJG1heF9zY29yZSA9IG51bGwpCiAgewogICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2lkJ10pIHx8ICR0aGlzLT5fZGF0YVsnaWQnXSA8PSAwICkKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQ2Fubm90IHJlbW92ZSBhIG1lbWJlciB0byBhbiB1bnNhdmVkIGxlYWRlcmJvYXJkJyk7CgogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRtaW5fc2NvcmUgPSAoaW50KSRtaW5fc2NvcmU7CiAgICBpZiggJG1pbl9zY29yZSA8IDAgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlIGZvciBtaW4gc2NvcmUnKTsKICAgIAogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBDT1VOVCh1aWQpIAogICAgICAgICAgICAgIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9MRUFERVJCT0FSRF9NRU1CRVJTLicgCiAgICAgICAgICAgICAgV0hFUkUgYm9hcmRfaWQgPSA/IEFORCBzY29yZSA+PSA/JzsKICAgICRwYXJtcyA9IGFycmF5KCR0aGlzLT5fZGF0YVsnaWQnXSk7CiAgICAkcGFybXNbXSA9ICRtaW5fc2NvcmU7CiAgICAKICAgIGlmKCAkbWF4X3Njb3JlICkgewogICAgICAkbWF4X3Njb3JlID0gKGludCkkbWF4X3Njb3JlOwogICAgICBpZiggJG1heF9zY29yZSA8IDAgKSAKCXRocm93IG5ldyBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWUgZm9yIG1heCBzY29yZScpOwoKICAgICAgaWYoICRtYXhfc2NvcmUgPiAkbWluX3Njb3JlICkgewoJJHF1ZXJ5IC49ICcgQU5EIHNjb3JlIDw9ID8nOwoJJHBhcm1zW10gPSAkbWF4X3Njb3JlOwogICAgICB9CiAgICB9CgogICAgJHJlc3VsdCA9ICRkYi0+R2V0T25lKCRxdWVyeSwkcGFybXMpOwogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX21lbWJlcnNfYnlfc2NvcmUoKQogIHsKICAgIC8vIEB0b2RvCiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X21lbWJlcl9zY29yZXMoJHVpZGxpc3QpCiAgewogICAgLy8gQHRvZG8KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbWVtYmVyX3JhbmtpbmdzKCR1aWRsaXN0KQogIHsKICAgIC8vIEB0b2RvCiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xlYWRlcnMoJGxpbWl0LCRvZmZzZXQgPSAwKQogIHsKICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydpZCddKSB8fCAkdGhpcy0+X2RhdGFbJ2lkJ10gPD0gMCApCiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0Nhbm5vdCBnZXQgbWVtYmVyIHJhbmsgZnJvbSBhbiB1bnNhdmVkIGxlYWRlcmJvYXJkJyk7CgogICAgJGxpbWl0ID0gKGludCkkbGltaXQ7CiAgICAkb2Zmc2V0ID0gKGludCkkb2Zmc2V0OwogICAgaWYoICRsaW1pdCA8IDAgfHwgJG9mZnNldCA8IDAgKQogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGxpbWl0IGFuZC9vciBvZmZzZXQnKTsKCiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCB1aWQKICAgICAgICAgICAgICBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkRfTUVNQkVSUy4nCiAgICAgICAgICAgICAgV0hFUkUgYm9hcmRfaWQgPSA/CiAgICAgICAgICAgICAgT1JERVIgQlkgc2NvcmUgREVTQyc7CiAgICAkdG1wID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksJGxpbWl0LCRvZmZzZXQsYXJyYXkoJHRoaXMtPl9kYXRhWydpZCddKSk7CiAgICAkcmVzID0gYXJyYXkoKTsKICAgIHdoaWxlKCAkdG1wICYmICEkdG1wLT5FT0YgKSB7CiAgICAgICRyZXNbXSA9ICR0bXAtPmZpZWxkc1sndWlkJ107CiAgICAgICR0bXAtPk1vdmVOZXh0KCk7CiAgICB9CiAgICByZXR1cm4gJHJlczsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfYmFkZ2VzKCRhc19vYmogPSBUUlVFKQogIHsKICAgIGlmKCAhJHRoaXMtPmlkICkgcmV0dXJuOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0JBREdFUy4nCiAgICAgICAgICAgICAgV0hFUkUgbGVhZGVyYm9hcmRfaWQgPSA/JzsKICAgICRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJHRoaXMtPmlkKSk7CiAgICBpZiggaXNfYXJyYXkoJGRhdGEpICYmIGNvdW50KCRkYXRhKSApIHsKICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgIGZvcmVhY2goICRkYXRhIGFzICRvbmUgKSB7CglpZiggJGFzX29iaiApIHsKCSAgJG9iaiA9IGNnc2FfYmFkZ2U6OmxvYWRfZnJvbV9kYXRhKCRvbmUpOwoJICBpZiggaXNfb2JqZWN0KCRvYmopICkgewoJICAgICRvdXRbXSA9ICRvYmo7CgkgIH0KCX0KCWVsc2UgewoJICAkb3V0W10gPSAkb25lOwoJfQogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uICZnZXRfYmFkZ2VfYnlfaWQoJGJhZGdlX2lkKQogIHsKICAgIGlmKCAhJHRoaXMtPmlkICkgcmV0dXJuOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0JBREdFUy4nCiAgICAgICAgICAgICAgV0hFUkUgbGVhZGVyYm9hcmRfaWQgPSA/IEFORCBpZCA9ID8nOwogICAgJGRhdGEgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJHRoaXMtPmlkLCRiYWRnZV9pZCkpOwogICAgaWYoIGlzX2FycmF5KCRkYXRhKSAmJiBjb3VudCgkZGF0YSkgKSB7CiAgICAgICRvYmogPSBjZ3NhX2JhZGdlOjpsb2FkX2Zyb21fZGF0YSgkZGF0YSk7CiAgICAgIGlmKCBpc19vYmplY3QoJG9iaikgKSByZXR1cm4gJG9iajsKICAgIH0KICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_leaderboard_tasks.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKICAvLyBpbnRlcm5hbC4KZmluYWwgY2xhc3MgY2dzYV9sZWFkZXJib2FyZF90YXNrcyAKewogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdXBkYXRlX2xlYWRlcmJvYXJkX3Njb3JlcyhjZ2pvYm1ncl90YXNrJiAkdGFzaykKICB7CiAgICAvLyBnZXQgYWxsIGxlYWRlcmJvYXJkcwogICAgLy8gZm9yIGVhY2ggbGVhZGVyYm9hcmQKICAgIC8vICAgY291bnQgKHByb2Nlc3NlZCkgY2hlY2tpbnMgdGhhdCBtYXRjaCBpdC4KICAgIC8vICAgICAob25lIHNlcmllcyBvZiBmdW5reSBhZHZhbmNlZCBxdWVyaWVzKQogICAgLy8gICAgIHJldHVybiBVSUQgYW5kIHNjb3JlCiAgICAvLyAgIGRlbGV0ZSBtZW1iZXJzIGZvciB0aGlzIGxlYWRlcmJvYXJkCiAgICAvLyAgIGZvcmVhY2ggdWlkCiAgICAvLyAgICAgaW5zZXJ0IHNjb3JlcwogIH0KCiAgLy8gQHRvZG86IHJlbmFtZSB0aGlzIGZ1bmN0aW9uCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1cGRhdGVfb25lX2xlYWRlcmJvYXJkKGNnam9ibWdyX3Rhc2smICR0YXNrKQogIHsKICAgIGF1ZGl0KCcnLCdDR1NvY2lhbEFwcCcsJ3VwZGF0ZV9vbmVfbGVhZGVyYm9hcmQnKTsKCiAgICAvLyBmaW5kIGNoZWNraW5zIHRoYXQgYXJlIG5vdCBwcm9jZXNzZWQKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0NIRUNLSU5TLicKICAgICAgICAgICAgICBXSEVSRSBDT0FMRVNDRShwcm9jZXNzZWQsMCkgPSAwIEFORCBhcHByb3ZlZCA9IDEgTElNSVQgNTAnOwogICAgJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgIGlmKCAhaXNfYXJyYXkoJGRicikgfHwgY291bnQoJGRicikgPT0gMCApIHsKICAgICAgcmV0dXJuIGNnam9ibWdyX3Rhc2s6OlNUQVRVU19DT01QTEVURTsKICAgIH0KCiAgICBmb3JlYWNoKCAkZGJyIGFzICRyb3cgKSB7CiAgICAgICRjaGVja2luID0gY2dzYV9jaGVja2luOjpsb2FkX2Zyb21fYXJyYXkoJHJvdyk7CgogICAgICAvLyBpZiB0aGVyZSBhcmUgdGFnZ2VkIHVzZXJzIAogICAgICAkdGFnZ2VkID0gJGNoZWNraW4tPmdldF90YWdnZWRfdXNlcnMoKTsKICAgICAgaWYoIGlzX2FycmF5KCR0YWdnZWQpICYmIGNvdW50KCR0YWdnZWQpICkgewoJLy8gbm90aWZ5IHVzZXIgdGhhdCBoZSB3YXMgdGFnZ2VkLgoJY2dzYV9jaGVja2luX3V0aWxzOjpub3RpZnlfdGFnZ2VkX3VzZXJzKCRjaGVja2luKTsKICAgICAgfQoKICAgICAgJHJlcyA9IGNnc2FfbGVhZGVyYm9hcmQ6OmZpbmRfbWF0Y2hpbmcoJGNoZWNraW4pOwogICAgICBpZiggaXNfYXJyYXkoJHJlcykgKSB7CgkvLyB3ZSBoYXZlIG9uZSBvciBtb3JlIG1hdGNoaW5nIGxlYWRlcmJvYXJkLgoJZm9yZWFjaCggJHJlcyBhcyAkbGVhZGVyYm9hcmQgKSB7CgkgIC8vIGFkZCBhIHNjb3JlIGZvciB0aGlzIGl0ZW0uCgkgICRsZWFkZXJib2FyZC0+YWRqdXN0X3Njb3JlKCRjaGVja2luLT5vd25lcik7CgkgIGF1ZGl0KCRjaGVja2luLT5vd25lciwnQ0dTb2NpYWxBcHAnLCdBZGp1c3RlZCBzY29yZSBmb3IgbGVhZGVyYm9hcmQgJy4kbGVhZGVyYm9hcmQtPmlkKTsKCX0KICAgICAgfQogICAgICAkY2hlY2tpbi0+cHJvY2Vzc2VkID0gMTsKICAgICAgJGNoZWNraW4tPnNhdmUoKTsKICAgIH0KCiAgICByZXR1cm4gY2dqb2JtZ3JfdGFzazo6U1RBVFVTX0lOQ09NUExFVEU7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZV9iYWRnZXNfZm9yX2xlYWRlcmJvYXJkKGNnam9ibWdyX3Rhc2smICR0YXNrKQogIHsKICAgIGF1ZGl0KCcnLCdDR1NvY2lhbEFwcCcsJ3VwZGF0ZV9iYWRnZXNfZm9yX2xlYWRlcmJvYXJkJyk7CgogICAgJG9mZnNldCA9ICR0YXNrLT5nZXRfcGVyc2lzdGVudF9kYXRhKCdsZWFkZXJib2FyZF9vZmZzZXQnLDApOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLkNHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJEOwogICAgJGRiciA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LDIwLCRvZmZzZXQpOwoKICAgICRucmVjb3JkcyA9ICRkYnItPlJlY29yZENvdW50KCk7CiAgICB3aGlsZSggJGRiciAmJiAhJGRici0+RU9GICkgewogICAgICAkbGVhZGVyYm9hcmQgPSBjZ3NhX2xlYWRlcmJvYXJkOjpsb2FkX2Zyb21fZGF0YSgkZGJyLT5maWVsZHMpOwogICAgICBpZiggIWlzX29iamVjdCgkbGVhZGVyYm9hcmQpICkgewoJLy8gc2hvdWxkIGF1ZGl0IHRoaXMuLgoJJGRici0+TW92ZU5leHQoKTsKCWNvbnRpbnVlOwogICAgICB9CgogICAgICAkYmFkZ2VzID0gJGxlYWRlcmJvYXJkLT5nZXRfYmFkZ2VzKCk7CiAgICAgIGlmKCAhaXNfYXJyYXkoJGJhZGdlcykgfHwgY291bnQoJGJhZGdlcykgPT0gMCApIHsKCSRkYnItPk1vdmVOZXh0KCk7Cgljb250aW51ZTsKICAgICAgfQoKICAgICAgZm9yZWFjaCggJGJhZGdlcyBhcyAkb25lX2JhZGdlICkgewoJJG1heF9zY29yZSA9ICRvbmVfYmFkZ2UtPm1heF9zY29yZTsKCWlmKCAkbWF4X3Njb3JlIDwgMSApICRtYXhfc2NvcmUgPSAxMDAwMDAwOwoKCS8vIGRlbGV0ZSBiYWRnZSBtZW1iZXJzIHdobyBubyBsb25nZXIgbWVldCB0aGUgY3JpdGVyaWEKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIEJVLnVpZCBGUk9NICcuQ0dTT0NJQUxfVEFCTEVfQkFER0VTX1VTRVJTLicgQlUKICAgICAgICAgICAgICAgICAgTEVGVCBKT0lOICcuQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkRfTUVNQkVSUy4nIExNCiAgICAgICAgICAgICAgICAgIE9OIEJVLnVpZCA9IExNLnVpZCAKICAgICAgICAgICAgICAgICAgQU5EIEJVLmxlYWRlcmJvYXJkX2lkID0gTE0uYm9hcmRfaWQgCiAgICAgICAgICAgICAgICAgIEFORCBCVS5iYWRnZV9pZCA9ID8KICAgICAgICAgICAgICAgICAgV0hFUkUgTE0uc2NvcmUgTk9UIEJFVFdFRU4gPyBBTkQgPyc7CgkkdWlkcyA9ICRkYi0+R2V0Q29sKCRxdWVyeSxhcnJheSgkb25lX2JhZGdlLT5pZCwkb25lX2JhZGdlLT5taW5fc2NvcmUsJG1heF9zY29yZSkpOwoJaWYoIGlzX2FycmF5KCR1aWRzKSAmJiBjb3VudCgkdWlkcykgKSB7CgkgIGZvcmVhY2goICR1aWRzIGFzICRvbmVfdWlkICkgewoJICAgIGNnc2FfYmFkZ2VfdXRpbHM6OnJlbW92ZV9iYWRnZV9tZW1iZXIoJG9uZV9iYWRnZSwkb25lX3VpZCk7CgkgIH0KCX0KCglpZiggJG9uZV9iYWRnZS0+aXNfdW5pcXVlICkgewoJICBpZiggJG9uZV9iYWRnZS0+Y291bnRfbWVtYmVycygpICE9IDAgKSB7CgkgICAgY29udGludWU7CgkgIH0KCX0KCgkvLyBnZXQgdXNlcnMgd2hvJ3Mgc2NvcmUgbWF0Y2hlcwoJJHF1ZXJ5ID0gJ1NFTEVDVCBMTS51aWQgRlJPTSAnLkNHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJEX01FTUJFUlMuJyBMTQogICAgICAgICAgICAgICAgICBXSEVSRSBMTS5ib2FyZF9pZCA9ID8gQU5EIExNLnNjb3JlIEJFVFdFRU4gPyBBTkQgPyc7CgkkdWlkczEgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJGxlYWRlcmJvYXJkLT5pZCwoaW50KSRvbmVfYmFkZ2UtPm1pbl9zY29yZSwKCQkJCQkgJG1heF9zY29yZSkpOwoJaWYoICFpc19hcnJheSgkdWlkczEpIHx8IGNvdW50KCR1aWRzMSkgPT0gMCApIHsKCSAgY29udGludWU7Cgl9CiAgICAgICAgCgkvLyBjaGVjayBpZiBhbnkgb2YgdGhlc2UgdXNlcnMgaGF2ZSB0aGlzIGJhZGdlIGFscmVhZHkKCSRxdWVyeSA9ICdTRUxFQ1QgQlUudWlkIEZST00gJy5DR1NPQ0lBTF9UQUJMRV9CQURHRVNfVVNFUlMuJyBCVQogICAgICAgICAgICAgICAgICBXSEVSRSBCVS5sZWFkZXJib2FyZF9pZCA9ID8gQU5EIEJVLmJhZGdlX2lkID0gPyBBTkQgQlUudWlkIElOICgnLmltcGxvZGUoJywnLCR1aWRzMSkuJyknOwoJJHVpZHMyID0gJGRiLT5HZXRDb2woJHF1ZXJ5LGFycmF5KChpbnQpJGxlYWRlcmJvYXJkLT5pZCwoaW50KSRvbmVfYmFkZ2UtPmlkKSk7CgoJaWYoICFpc19hcnJheSgkdWlkczIpIHx8IGNvdW50KCR1aWRzMikgPT0gMCApIHsKCSAgJG5ld19iYWRnZV91aWRzID0gJHVpZHMxOwoJfQoJZWxzZSB7CgkgICRuZXdfYmFkZ2VfdWlkcyA9IGFycmF5X2RpZmYoJHVpZHMxLCR1aWRzMik7Cgl9CgoJaWYoICFpc19hcnJheSgkbmV3X2JhZGdlX3VpZHMpIHx8IGNvdW50KCRuZXdfYmFkZ2VfdWlkcykgPT0gMCApIHsKCSAgY29udGludWU7Cgl9CgoJZm9yZWFjaCggJG5ld19iYWRnZV91aWRzIGFzICRuZXdtZW1iZXIgKSB7CgkgIGNnc2FfYmFkZ2VfdXRpbHM6OmFkZF9iYWRnZV9tZW1iZXIoJG9uZV9iYWRnZSwkbmV3bWVtYmVyKTsKCSAgYXVkaXQoJG5ld21lbWJlciwnQ0dTb2NpYWxBcHAnLCdBZGRlZCBiYWRnZSAnLiRvbmVfYmFkZ2UtPm5hbWUpOwoJfQogICAgICB9CiAgICAgICRkYnItPk1vdmVOZXh0KCk7CiAgICB9CiAgICBpZiggJG5yZWNvcmRzIDwgMjAgKSB7CiAgICAgIC8vIHRhc2sgaXMgY29tcGxldGUKICAgICAgJHRhc2stPnNldF9wZXJzaXN0ZW50X2RhdGEoJ2xlYWRlcmJvYXJkX29mZnNldCcsMCk7CiAgICAgIHJldHVybiBjZ2pvYm1ncl90YXNrOjpTVEFUVVNfQ09NUExFVEU7CiAgICB9CiAgICBlbHNlIHsKICAgICAgJHRhc2stPnNldF9wZXJzaXN0ZW50X2RhdGEoJ2xlYWRlcmJvYXJkX29mZnNldCcsJG9mZnNldCskbnJlY29yZHMpOwogICAgICByZXR1cm4gY2dqb2JtZ3JfdGFzazo6U1RBVFVTX0lOQ09NUExFVEU7CiAgICB9CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_log.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ3NhX2xvZ19lbnRyeQp7CiAgc3RhdGljIHByaXZhdGUgJF9rZXlzID0gYXJyYXkoJ3VpZCcsJ3doZW4nLCdpdGVtJywnaXRlbV9pZCcsJ2Rlc2NyaXB0aW9uJywnbm90ZXMnKTsKICBwcml2YXRlICRfZGF0YSA9IGFycmF5KCk7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgJHRoaXMtPl9kYXRhWyd3aGVuJ10gPSB0aW1lKCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGssJHYpCiAgewogICAgc3dpdGNoKCAkayApIHsKICAgIGNhc2UgJ3VpZCc6CiAgICBjYXNlICd3aGVuJzoKICAgIGNhc2UgJ2l0ZW1faWQnOgogICAgICBpZiggKGludCkkdiA9PSAwICkgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdDEgdG8gc3RvcmUgaW52YWxpZCB2YWx1ZSBmb3IgJy4kay4nICgnLiR2LicpIGludG8gY2dzYV9sb2dfZW50cnkgb2JqZWN0Jyk7CiAgICAgIH0KICAgICAgJHRoaXMtPl9kYXRhWyRrXSA9IChpbnQpJHY7CiAgICAgIGJyZWFrOwogICAgICAKICAgIGNhc2UgJ2l0ZW0nOgogICAgICBpZiggdHJpbSgkdikgPT0gJycgKSB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0MiB0byBzdG9yZSBpbnZhbGlkIHZhbHVlIGZvciAnLiRrLicgKCcuJHYuJykgaW50byBjZ3NhX2xvZ19lbnRyeSBvYmplY3QnKTsKICAgICAgfQogICAgICAkdGhpcy0+X2RhdGFbJGtdID0gdHJpbSgkdik7CiAgICAgIGJyZWFrOwogICAgICAKICAgIGNhc2UgJ2Rlc2NyaXB0aW9uJzoKICAgICAgJHRoaXMtPl9kYXRhWyRrXSA9IHRyaW0oJHYpOwogICAgICBicmVhazsKICAgICAgCiAgICBjYXNlICdub3Rlcyc6CiAgICAgICR0aGlzLT5fZGF0YVska10gPSAkdjsKICAgICAgYnJlYWs7CiAgICAgIAogICAgZGVmYXVsdDoKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdDMgdG8gc3RvcmUgaW52YWxpZCB2YWx1ZSBmb3IgJy4kay4nICgnLiR2LicpIGludG8gY2dzYV9sb2dfZW50cnkgb2JqZWN0Jyk7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGspCiAgewogICAgaWYoICFpbl9hcnJheSgkayxzZWxmOjokX2tleXMpICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHJldHJpZXZlIGludmFsaWQga2V5ICcuJGtleS4nIGZyb20gY2dzYV9sb2dfZW50cnkgb2JqZWN0Jyk7CiAgICB9CgogICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVska10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVska107CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gX19pc3NldCgkaykKICB7CiAgICBpZiggIWluX2FycmF5KCRrLHNlbGY6OiRfa2V5cykgKSB7CiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gcmV0cmlldmUgaW52YWxpZCBrZXkgJy4ka2V5LicgZnJvbSBjZ3NhX2xvZ19lbnRyeSBvYmplY3QnKTsKICAgIH0KCiAgICByZXR1cm4gKGlzc2V0KCR0aGlzLT5fZGF0YVska10pKT9UUlVFOkZBTFNFOwogIH0KCn0KCmNsYXNzIGNnc2FfbG9nCnsKICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhZGRFbnRyeShjZ3NhX2xvZ19lbnRyeSAkZW50cnkpCiAgewogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLkNHU09DSUFMX1RBQkxFX0xPRy4nICh3aGVuLGl0ZW0sZGVzY3JpcHRpb24sbm90ZXMpIFZBTFVFUyAoPyw/LD8sPyknOwogICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksCgkJCWFycmF5KCRlbnRyeS0+d2hlbiwkZW50cnktPml0ZW0sJGVudHJ5LT5kZXNjcmlwdGlvbiwkZW50cnktPm5vdGVzKSk7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGFkZCgkaXRlbSwkZGVzY3JpcHRpb24sJHVpZCA9IG51bGwsJGl0ZW1faWQgPSBudWxsLCRub3RlcyA9IG51bGwpCiAgewogICAgZGVidWdfdG9fbG9nKCJjZ3NhX2xvZzo6YWRkKCckaXRlbScsJyRkZXNjcmlwdGlvbicsJHVpZCwkaXRlbV9pZCwnJG5vdGVzJykiKTsKICAgICRlbnRyeSA9IG5ldyBjZ3NhX2xvZ19lbnRyeTsKICAgICRlbnRyeS0+aXRlbSA9ICRpdGVtOwogICAgJGVudHJ5LT5kZXNjcmlwdGlvbiA9ICRkZXNjcmlwdGlvbjsKICAgICRlbnRyeS0+aXRlbV9pZCA9ICRpdGVtX2lkOwogICAgJGVudHJ5LT51aWQgPSAkdWlkOwogICAgJGVudHJ5LT5ub3RlcyA9ICRub3RlczsKCiAgICByZXR1cm4gc2VsZjo6YWRkRW50cnkoJGVudHJ5KTsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_simple_friend_manipulator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIGNnc2Ffc2ltcGxlX2ZyaWVuZF9tYW5pcHVsYXRvciBleHRlbmRzIGNnc2FfZnJpZW5kX21hbmlwdWxhdG9yCnsKICAvKioKICAgKiBSZXRyaWV2ZSB0aGUgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZyaWVuZHMgbGlzdAogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgdXNlciBpZGVudGlmaWVyCiAgICogQHJldHVybiBhIGNnZmF2IG9iamVjdCBvciBudWxsCiAgICovCiAgcHJpdmF0ZSBmdW5jdGlvbiAmZ2V0X2ZyaWVuZHNfb2JqKCR1aWQpCiAgewogICAgcmV0dXJuIGNnZmF2X29wczo6bG9hZF9vbmUoJHVpZCwnQ0dTb2NpYWxBcHAnLCdmcmllbmRzJyk7CiAgfQoKCiAgLyoqCiAgICogUmV0cmlldmUgYSBsaXN0IG9mIHRoZSB1c2VycyBmcmllbmRzCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSB1c2VyIGlkZW50aWZpZXIKICAgKiBAcGFyYW0gaW50ZWdlciBUaGUgbGltaXQgdG8gdGhlIG51bWJlciBvZiBmcmllbmRzIChub3QgaW1wbGVtZW50ZWQpCiAgICogQHBhcmFtIGludGVnZXIgVGhlIG9mZnNldCAobm90IGltcGxlbWVudGVkKQogICAqIEByZXR1cm4gYXJyYXkgb2YgdWlkcyBvciBudWxsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9mcmllbmRzKCR1aWQsJGxpbWl0ID0gMTAwMDAwLCRvZmZzZXQgPSAwKQogIHsKICAgICRvYmogPSAkdGhpcy0+Z2V0X2ZyaWVuZHNfb2JqKCR1aWQpOwogICAgaWYoIGlzX29iamVjdCgkb2JqKSApIHsKICAgICAgLy8gdG9kbzogaGFuZGxlIGxpbWl0IGFuZCBvZmZzZXQuCiAgICAgIGlmKCAkb2JqLT5kYXRhICkgcmV0dXJuIHVuc2VyaWFsaXplKCRvYmotPmRhdGEpOwogICAgfQogIH0KCiAgLyoqCiAgICogQWRkIGZ1aWQgYXMgYSBmcmllbmQgdG8gdWlkCiAgICogVGhpcyBpcyBhIGRhdGFiYXNlIGZ1bmN0aW9uIG9ubHkuICBObyBldmVudHMgYXJlIHNlbnQuCiAgICogVGhpcyBmdW5jdGlvbiBvbmx5IGVmZmVjdHMgb25lIHNpZGUgb2YgdGhlIGZyaWVuZCByZWxhdGlvbnNoaXAKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHVzZXIgaWQgdG8gYWRkIHRvCiAgICogQHBhcmFtIHN0cmluZyBUaGUgZnJpZW5kcyB1c2VyIGlkLgogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBhZGRfZnJpZW5kKCR1aWQsJGZ1aWQpCiAgewogICAgaWYoICEkZnVpZCApIHJldHVybjsKICAgICRvYmogPSAkdGhpcy0+Z2V0X2ZyaWVuZHNfb2JqKCR1aWQpOwogICAgaWYoICFpc19vYmplY3QoJG9iaikgKSB7CiAgICAgICRvYmogPSBuZXcgY2dmYXY7CiAgICAgICRvYmotPnVpZCA9ICR1aWQ7CiAgICAgICRvYmotPmtleTEgPSAnQ0dTb2NpYWxBcHAnOwogICAgICAkb2JqLT5rZXkyID0gJ2ZyaWVuZHMnOwogICAgfQogICAgJGZyaWVuZHMgPSBhcnJheSgpOwogICAgaWYoICRvYmotPmRhdGEgKSB7CiAgICAgICRmcmllbmRzID0gdW5zZXJpYWxpemUoJG9iai0+ZGF0YSk7CiAgICB9CiAgICBpZiggIWluX2FycmF5KCRmdWlkLCRmcmllbmRzKSApIHsKICAgICAgJGZyaWVuZHNbXSA9ICRmdWlkOwogICAgICAkb2JqLT5kYXRhID0gc2VyaWFsaXplKCRmcmllbmRzKTsKICAgICAgJG9iai0+c2F2ZSgpOwogICAgfQogIH0KCiAgLyoqCiAgICogRGVsZXRlIGEgZnJpZW5kIHJlbGF0aW9uc2hpcAogICAqIFRoaXMgaXMgYSBkYXRhYmFzZSBmdW5jdGlvbiBvbmx5LCBubyBldmVudHMgYXJlIHRyaWdnZXJlZAogICAqIFRoaXMgbWV0aG9kIG9ubHkgZGVsZXRlcyBvbmUgc2lkZSBvZiB0aGUgZnJpZW5kIHJlbGF0aW9uc2hpcCwgbm90IGJvdGgKICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHVzZXJpZAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGZyaWVuZHMgdXNlciBpZAogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBkZWxfZnJpZW5kKCR1aWQsJGZ1aWQpCiAgewogICAgaWYoICEkZnVpZCApIHJldHVybjsKICAgICRvYmogPSAkdGhpcy0+Z2V0X2ZyaWVuZHNfb2JqKCR1aWQpOwogICAgaWYoIGlzX29iamVjdCgkb2JqKSAmJiAkb2JqLT5kYXRhICkKICAgICAgewoJJGZyaWVuZHMgPSB1bnNlcmlhbGl6ZSgkb2JqLT5kYXRhKTsKCSRmdW5jID0gY3JlYXRlX2Z1bmN0aW9uKCckaXRlbSwkZnVpZCcsJ3JldHVybiAkaXRlbSAhPSAkZnVpZCcpOwoJJGZyaWVuZHMgPSBhcnJheV9maWx0ZXIoJGZyaWVuZHMsJGZ1bmMpOwoJaWYoIGNvdW50KCRmcmllbmRzKSA9PSAwICkKCSAgewoJICAgICRvYmotPmRhdGEgPSAnJzsKCSAgfQoJZWxzZQoJICB7CgkgICAgJG9iai0+ZGF0YSA9IHNlcmlhbGl6ZSgkZnJpZW5kcyk7CgkgIH0KCSRvYmotPnNhdmUoKTsKICAgICAgfQogIH0KCiAgLyoqCiAgICogR2V0IHRoZSBvYmplY3QgY29udGFpbmluZyB0aGUgbGlzdCBvZiBkZW5pZWQgZnJpZW5kcwogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgdXNlcmlkCiAgICogQHJldHVybiBjZ2ZhdiBvYmplY3Qgb3IgbnVsbAogICAqLwogIHByaXZhdGUgZnVuY3Rpb24gJmdldF9ub3RmcmllbmRzX29iaigkdWlkKQogIHsKICAgIHJldHVybiBjZ2Zhdl9vcHM6OmxvYWRfb25lKCR1aWQsJ0NHU29jaWFsQXBwJywnbm90ZnJpZW5kcycpOwogIH0KCiAgLyoqCiAgICogR2V0IGEgbGlzdCBvZiB0aGUgdWlkcyB0aGF0IHdlIGhhdmUgZGVuaWVkIGZyb20gYmVpbmcgZnJpZW5kcwogICAqCiAgICogQHBhcmFtIHN0cmluZyBUaGUgdXNlcmlkCiAgICogQHJldHVybiBhcnJheSBvZiB1c2VyIGlkcwogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbm90ZnJpZW5kcygkdWlkKQogIHsKICAgICRvYmogPSAkdGhpcy0+Z2V0X25vdGZyaWVuZHNfb2JqKCR1aWQpOwogICAgaWYoIGlzX29iamVjdCgkb2JqKSApCiAgICAgIHsKCWlmKCAkb2JqLT5kYXRhICkgcmV0dXJuIHVuc2VyaWFsaXplKCRvYmotPmRhdGEpOwogICAgICB9CiAgfQoKICAvKioKICAgKiBBZGQgYSB1c2VyIHRvIG91ciBsaXN0IG9mIG5vdGZyaWVuZHMKICAgKiBUaGlzIG1ldGhvZCBvbmx5IGVmZmVjdHMgb25lIHNpZGUgb2YgdGhlIGZyaWVuZHNoaXAgcmVsYXRpb24sIGFuZCBkb2VzIG5vdCBleHBsaWNpdGx5IHJlbW92ZSBhIGZyaWVuZCBmcm9tIHRoZSBmcmllbmRzbGlzdAogICAqIEl0IGlzIHBvc3NpYmxlIHVzaW5nIHRoaXMgbWV0aG9kIHRvIGhhdmUgYSB1aWQgaW4gdGhlIGZyaWVuZHMgbGlzdCBhbmQgbm90IGZyaWVuZHMgbGlzdC4gIERldmVsb3BlcnMgbXVzdCB1c2UgY2F1dGlvbi4KICAgKiBUaGlzIG1ldGhvZCBkb2VzIHRoZSBkYXRhYmFzZSB3b3JrIG9ubHksIG5vIGV2ZW50cyBhcmUgc2VudC4KICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHVzZXIgaWQKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBmcmllbmRzIHVzZXIgaWQKICAgKiBAcmV0dXJuIG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gYWRkX25vdGZyaWVuZCgkdWlkLCRmdWlkKQogIHsKICAgIGlmKCAhJHVpZCB8fCAhJGZ1aWQgKSByZXR1cm47CiAgICAkb2JqID0gJHRoaXMtPmdldF9ub3RmcmllbmRzX29iaigkdWlkKTsKICAgIGlmKCAhaXNfb2JqZWN0KCRvYmopICkKICAgICAgewoJJG9iaiA9IG5ldyBjZ2ZhdjsKCSRvYmotPnVpZCA9ICR1aWQ7Cgkkb2JqLT5rZXkxID0gJ0NHU29jaWFsQXBwJzsKCSRvYmotPmtleTIgPSAnbm90ZnJpZW5kcyc7CiAgICAgIH0KICAgICRub3RmcmllbmRzID0gYXJyYXkoKTsKICAgIGlmKCAkb2JqLT5kYXRhICkKICAgICAgewoJJG5vdGZyaWVuZHMgPSB1bnNlcmlhbGl6ZSgkb2JqLT5kYXRhKTsKICAgICAgfQogICAgaWYoICFpbl9hcnJheSgkZnVpZCwkZnJpZW5kcykgKQogICAgICB7CgkvLyB0b2RvOiB0cmlnZ2VyIGFuIGV2ZW50IG9yIHNvbWV0aGluZy4uLiBtYXliZSBhIG1lc3NhZ2UuCgkkbm90ZnJpZW5kc1tdID0gJGZ1aWQ7Cgkkb2JqLT5kYXRhID0gc2VyaWFsaXplKCRub3RmcmllbmRzKTsKCSRvYmotPnNhdmUoKTsKICAgICAgfQogIH0KCgogIC8qKgogICAqIFJlbW92ZSBhIHVzZXIgZnJvbSBvdXIgbGlzdCBvZiBub3RmcmllbmRzCiAgICogVGhpcyBtZXRob2Qgb25seSBlZmZlY3RzIG9uZSBzaWRlIG9mIHRoZSBmcmllbmRzaGlwIHJlbGF0aW9uLiAKICAgKiBUaGlzIG1ldGhvZCBkb2VzIHRoZSBkYXRhYmFzZSB3b3JrIG9ubHksIG5vIGV2ZW50cyBhcmUgc2VudC4KICAgKgogICAqIEBwYXJhbSBzdHJpbmcgVGhlIHVzZXIgaWQKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBmcmllbmRzIHVzZXIgaWQKICAgKiBAcmV0dXJuIG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZGVsX25vdGZyaWVuZCgkdWlkLCRmdWlkKQogIHsKICAgIGlmKCAhJGZ1aWQgKSByZXR1cm47CiAgICAkb2JqID0gJHRoaXMtPmdldF9mcmllbmRzX29iaigkdWlkKTsKICAgIGlmKCBpc19vYmplY3QoJG9iaikgJiYgJG9iai0+ZGF0YSApCiAgICAgIHsKCSRub3RmcmllbmRzID0gdW5zZXJpYWxpemUoJG9iai0+ZGF0YSk7CgkkZnVuYyA9IGNyZWF0ZV9mdW5jdGlvbignJGl0ZW0sJGZ1aWQnLCdyZXR1cm4gJGl0ZW0gIT0gJGZ1aWQnKTsKCSRub3RmcmllbmRzID0gYXJyYXlfZmlsdGVyKCRub3RmcmllbmRzLCRmdW5jKTsKCWlmKCBjb3VudCgkbm90ZnJpZW5kcykgPT0gMCApCgkgIHsKCSAgICAkb2JqLT5kYXRhID0gJyc7CgkgIH0KCWVsc2UKCSAgewoJICAgICRvYmotPmRhdGEgPSBzZXJpYWxpemUoJG5vdGZyaWVuZHMpOwoJICB9Cgkkb2JqLT5zYXZlKCk7CiAgICAgIH0KICB9CgoKICAvKioKICAgKiBHZXQgdGhlIG9iamVjdCBjb250YWluaW5nIHRoZSBsaXN0IG9mIGN1cnJlbnQgZnJpZW5kIHJlcXVlc3RzCiAgICoKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSB1c2VyaWQKICAgKiBAcmV0dXJuIGNnZmF2IG9iamVjdCBvciBudWxsCiAgICovCiAgcHJpdmF0ZSBmdW5jdGlvbiAmZ2V0X2ZyaWVuZHJlcXVlc3RzX29iaigkdWlkKQogIHsKICAgIHJldHVybiBjZ2Zhdl9vcHM6OmxvYWRfb25lKCR1aWQsJ0NHU29jaWFsQXBwJywnZnJpZW5kcmVxdWVzdHMnKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZyaWVuZHJlcXVlc3RzKCR1aWQsJGxpbWl0ID0gMTAwMCwkb2Zmc2V0ID0gMCkKICB7CiAgICAkb2JqID0gJHRoaXMtPmdldF9mcmllbmRyZXF1ZXN0c19vYmooJHVpZCk7CiAgICBpZiggaXNfb2JqZWN0KCRvYmopICYmICRvYmotPmRhdGEgKQogICAgICB7CgkkdG1wID0gdW5zZXJpYWxpemUoJG9iai0+ZGF0YSk7CglyZXR1cm4gJHRtcDsKICAgICAgfQogIH0KCiAgLyoqCiAgICogQ3JlYXRlIGEgZnJpZW5kIHJlcXVlc3QgdG8gdGhlIHVzZXIgaWRlbnRpZmllZCBieSBmdWlkIGZyb20gdGhlIHVzZXIgaWRlbnRpZmllZCBieSB1aWQKICAgKiBUaGlzIGZ1bmN0aW9uIGRvZXMgdGhlIGRhdGFiYXNlIHdvcmsgb25seSwgbm90aWZpY2F0aW9ucyBhcmUgbm90IHNlbnQuCiAgICogCiAgICogQHBhcmFtIHN0cmluZyBUaGUgcG90ZW50aWFsIGZyaWVuZHMgdXNlciBpZAogICAqIEBwYXJhbSBzdHJpbmcgVGhlIGN1cnJlbnQgdXNlcnMgdWlkCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGFkZF9mcmllbmRyZXF1ZXN0KCRmdWlkLCR1aWQpCiAgewogICAgLy8gYWRkIGl0IHRvIHRoZSBmcmllbmRzIHJlcXVlc3RzIHRoaW5nCgogICAgaWYoICEkdWlkIHx8ICEkZnVpZCApIHJldHVybjsKICAgICRvYmogPSAkdGhpcy0+Z2V0X2ZyaWVuZHJlcXVlc3RzX29iaigkZnVpZCk7CiAgICBpZiggIWlzX29iamVjdCgkb2JqKSApCiAgICAgIHsKCSRvYmogPSBuZXcgY2dmYXY7Cgkkb2JqLT51aWQgPSAkZnVpZDsKCSRvYmotPmtleTEgPSAnQ0dTb2NpYWxBcHAnOwoJJG9iai0+a2V5MiA9ICdmcmllbmRyZXF1ZXN0cyc7CiAgICAgIH0KICAgICRyZXF1ZXN0cyA9IGFycmF5KCk7CiAgICBpZiggJG9iai0+ZGF0YSApCiAgICAgIHsKCSRyZXF1ZXN0cyA9IHVuc2VyaWFsaXplKCRvYmotPmRhdGEpOwogICAgICB9CiAgICBpZiggIWluX2FycmF5KCR1aWQsJHJlcXVlc3RzKSApCiAgICAgIHsKCSRyZXF1ZXN0c1tdID0gJHVpZDsKCSRvYmotPmRhdGEgPSBzZXJpYWxpemUoJHJlcXVlc3RzKTsKCSRvYmotPnNhdmUoKTsKICAgICAgfQogIH0KCgogIC8qKgogICAqIERlbGV0ZSBhIGZyaWVuZCByZXF1ZXN0IHRvIHRoZSB1c2VyIGlkZW50aWZpZWQgYnkgZnVpZCBmcm9tIHRoZSB1c2VyIGlkZW50aWZpZWQgYnkgdWlkCiAgICogVGhpcyBmdW5jdGlvbiBkb2VzIHRoZSBkYXRhYmFzZSB3b3JrIG9ubHksIG5vdGlmaWNhdGlvbnMgYXJlIG5vdCBzZW50LgogICAqIAogICAqIEBwYXJhbSBzdHJpbmcgdGhlIHBvdGVudGlhbCBmcmllbmRzIHVzZXIgaWQKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBjdXJyZW50IHVzZXJzIGlkCiAgICogQHJldHVybiBudWxsCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGRlbF9mcmllbmRyZXF1ZXN0KCRmdWlkLCR1aWQpCiAgewogICAgaWYoICEkdWlkIHx8ICEkZnVpZCApIHJldHVybjsKICAgICRvYmogPSAkdGhpcy0+Z2V0X2ZyaWVuZHJlcXVlc3RzX29iaigkdWlkKTsKICAgIGlmKCBpc19vYmplY3QoJG9iaikgJiYgJG9iai0+ZGF0YSApCiAgICAgIHsKCSRyZXF1ZXN0cyA9IHVuc2VyaWFsaXplKCRvYmotPmRhdGEpOwoJJGZ1bmMgPSBjcmVhdGVfZnVuY3Rpb24oJyRpdGVtLCRmdWlkJywncmV0dXJuICRpdGVtICE9ICRmdWlkJyk7CgkkcmVxdWVzdHMgPSBhcnJheV9maWx0ZXIoJHJlcXVlc3RzLCRmdW5jKTsKCWlmKCBjb3VudCgkcmVxdWVzdHMpID09IDAgKSB7CgkgICRvYmotPmRhdGEgPSAnJzsKCX0KCWVsc2UgewoJICAkb2JqLT5kYXRhID0gc2VyaWFsaXplKCRyZXF1ZXN0cyk7Cgl9Cgkkb2JqLT5zYXZlKCk7CiAgICAgIH0KICB9CgogIC8qKgogICAqIERlbGV0ZSBhbGwgZnJpZW5kIGluZm9ybWF0aW9uIChmcmllbmRzIGxpc3QsIG5vdGZyaWVuZHMgbGlzdCwgcmVxdWVzdCBsaXN0KSBmb3IgYSB1c2VyLgogICAqIFRoaXMgZnVuY3Rpb24gZG9lcyB0aGUgZGF0YWJhc2Ugd29yayBvbmx5LCBub3RpZmljYXRpb25zIGFyZSBub3Qgc2VudC4KICAgKiAKICAgKiBAcGFyYW0gc3RyaW5nIFRoZSB1c2VycyBpZAogICAqIEByZXR1cm4gbnVsbAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfYWxsKCR1aWQpCiAgewogICAgJG9iID0gJHRoaXMtPmdldF9mcmllbmRzX29iaigpOwogICAgaWYoIGlzX29iamVjdCgkb2IpICkgJG9iLT5kZWxldGUoKTsKICAgICRvYiA9ICR0aGlzLT5nZXRfbm90ZnJpZW5kc19vYmooKTsKICAgIGlmKCBpc19vYmplY3QoJG9iKSApICRvYi0+ZGVsZXRlKCk7CiAgICAkb2IgPSAkdGhpcy0+Z2V0X2ZyaWVuZHJlcXVlc3RzX29iaigpOwogICAgaWYoIGlzX29iamVjdCgkb2IpICkgJG9iLT5kZWxldGUoKTsKICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_social.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgY2dzYV9zb2NpYWwgewogIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICAvKioKICAgKiBMaXN0IGtub3duLCBhbmQgYXZhaWxhYmxlIHNvY2lhbCBuZXR3b3JrcwogICAqCiAgICogQHJldHVybiBoYXNoIG9mIE1vZHVsZSBOYW1lLCBhbmQgcHJpbnRhYmxlIG5hbWUuCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfbmV0d29ya19saXN0KCkKICB7CiAgICAkbW9kdWxlcyA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRfbW9kdWxlc193aXRoX2NhcGFiaWxpdHkoJ2NnX21lc3NhZ2luZ19jbGllbnQnKTsKICAgIGlmKCAhaXNfYXJyYXkoJG1vZHVsZXMpIHx8IGNvdW50KCRtb2R1bGVzKSA9PSAwICkgcmV0dXJuOwoKICAgICRvdXQgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJG1vZHVsZXMgYXMgJG9uZSApIHsKICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgkb25lKTsKICAgICAgaWYoICFpc19vYmplY3QoJG1vZCkgKSBjb250aW51ZTsKCiAgICAgIGlmKCBtZXRob2RfZXhpc3RzKCRvbmUsJ2dldF91c2VyX2tleScpICYmIG1ldGhvZF9leGlzdHMoJG9uZSwnc2V0X3VzZXJfa2V5JykgJiYKCSAgbWV0aG9kX2V4aXN0cygkb25lLCdnZXRfdHJhbnNwb3J0X25hbWUnKSkgewoJaWYoICFpc3NldCgkb3V0WyRtb2QtPkdldE5hbWUoKV0pICkgJG91dFskbW9kLT5HZXROYW1lKCldID0gJG1vZC0+Z2V0X3RyYW5zcG9ydF9uYW1lKCk7CiAgICAgIH0KICAgIH0KICAgIGlmKCBjb3VudCgkb3V0KSApIHJldHVybiAkb3V0OwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgsa_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKZmluYWwgY2xhc3MgY2dzYV91dGlscwp7CiAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXR1cm5fZXJyb3IoJG1zZykKICB7CiAgICAkbmFtZSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKS0+R2V0TmFtZSgpOwogICAgYXVkaXQoJycsJG5hbWUsJG1zZyk7CgogICAgJGRhdGEgPSBhcnJheSgnX3N0YXR1cyc9PidFUlJPUicsJ19tZXNzYWdlJz0+JG1zZyk7CiAgICBzZWxmOjpyZXR1cm5fc3VjY2VzcygkZGF0YSk7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXR1cm5fc3VjY2VzcygkZGF0YSkKICB7CiAgICAkY29kZSA9IDIwMDsKICAgICRyZXMgPSBhcnJheSgpOwogICAgaWYoIGlzX2FycmF5KCRkYXRhKSApIHsKICAgICAgLy8gaXRzIGFuIGFycmF5CiAgICAgIGlmKCBpc3NldCgkZGF0YVsnX3N0YXR1cyddKSApCgkkcmVzID0gJGRhdGE7CiAgICAgIGVsc2UKCSRyZXNbJ2RhdGEnXSA9ICRkYXRhOwogICAgfQogICAgZWxzZSBpZiggaXNfb2JqZWN0KCRkYXRhKSApIHsKICAgICAgLy8gaXRzIGFuIG9iamVjdAogICAgICAkcmVzWydkYXRhJ10gPSAkZGF0YTsKICAgIH0KICAgIGVsc2UgaWYoICRkYXRhICE9ICcnICkgewogICAgICAkcmVzWydkYXRhJ10gPSAkZGF0YTsKICAgIH0KICAgIGlmKCAhaXNzZXQoJHJlc1snX3N0YXR1cyddKSApIHsKICAgICAgJHJlc1snX3N0YXR1cyddID0gJ09LJzsKICAgIH0KCiAgICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7IAogICAgZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KICAgIGhlYWRlcigiSFRUUC8xLjAgJGNvZGUgT0siKTsKICAgIGhlYWRlcigiU3RhdHVzOiAkY29kZSBPSyIpOwogICAgJHRtcCA9IGpzb25fZW5jb2RlKCRyZXMpOwogICAgZWNobyAkdG1wOwogICAgZXhpdCgpOwogIH0KICAKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19nZXRfcmVxdWVzdCgpCiAgewogICAgaWYoIHN0cnRvdXBwZXIoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10pID09ICdHRVQnICkgCiAgICAgIHJldHVybiBUUlVFOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfcG9zdF9yZXF1ZXN0KCkKICB7CiAgICBpZiggc3RydG91cHBlcigkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSkgPT0gJ1BPU1QnICkgCiAgICAgIHJldHVybiBUUlVFOwogICAgcmV0dXJuIEZBTFNFOwogIH0KCiAgCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19yZXF1ZXN0X3NlY3VyZSgpCiAgewogICAgaWYoICFpc3NldCgkX1NFUlZFUlsnSFRUUFMnXSkgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggJF9TRVJWRVJbJ0hUVFBTJ10gPT0gJycgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggc3RydG91cHBlcigkX1NFUlZFUlsnSFRUUFMnXSkgPT0gJ09GRicgKSByZXR1cm4gRkFMU0U7CiAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZ2YWxpZGF0ZV9hcGlrZXkoJGtleSkKICB7CiAgICAkcmVzID0gbnVsbDsKICAgICRvYmogPSBjZ3NhX2FwaWtleTo6bG9hZF9ieV9hcGlrZXkoJGtleSk7CiAgICBpZiggIWlzX29iamVjdCgkb2JqKSApIHJldHVybiAkcmVzOwogICAgaWYoICRvYmotPmV4cGlyZWQoKSApIHJldHVybiAkcmVzOwogICAgcmV0dXJuICRvYmo7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdW5pcXVlX2ZpbGVuYW1lKCRrZXkpCiAgewogICAgZnVuY3Rpb24gX2NvdW50X2ZpbGVzKCRkaXIsJHN0b3BhdCA9IDEwMDAwMCkKICAgIHsKICAgICAgaWYoICFpc19kaXIoJGRpcikgKSByZXR1cm4gMDsKICAgICAgCiAgICAgICRuID0gMDsKICAgICAgJGl0ID0gbmV3IERpcmVjdG9yeUl0ZXJhdG9yKCRkaXIpOwogICAgICBmb3JlYWNoKCAkaXQgYXMgJGZpbGUgKQoJewoJICAkbisrOwoJICBpZiggJG4gPj0gJHN0b3BhdCApIGJyZWFrOwoJfQogICAgICByZXR1cm4gJG47CiAgICB9CgogICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgJHN1ZmZpeCA9ICcnOwogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgICRyb290ZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnXycsJG1vZC0+R2V0TmFtZSgpKTsKICAgICRmaWxlbGltaXQgPSAxMDAwMDsKCiAgICAvLyBub3cgZ2VuZXJhdGUgYSB1bmlxdWUgZmlsZW5hbWUKICAgICRmbiA9ICdmJy5tZDUoJGtleS4kc3VmZml4KTsKICAgIHdoaWxlKCAoaW50KSRzdWZmaXggPCAxMDAgKQogICAgICB7CgkkdG1wID0gY21zX2pvaW5fcGF0aCgkcm9vdGRpciwkZm4pOwoJJGZpbGVzID0gZ2xvYigkdG1wLicqJyk7CglpZiggIWlzX2FycmF5KCRmaWxlcykgfHwgY291bnQoJGZpbGVzKSA9PSAwICkKCSAgewoJICAgIHJldHVybiAkZm47CgkgIH0KCSRzdWZmaXggPSAoaW50KSRzdWZmaXggKyAxOwoJJGZuID0gJ2YnLm1kNSgka2V5LiRzdWZmaXgpOwogICAgICB9CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY2hlY2tpbl9hcHByb3ZhbF9wYXNzd29yZCgkbG9jYXRpb25faWQpCiAgewogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgIGlmKCAoJHB3ZmllbGQgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdjZF9hcHByb3ZlX3B3ZmllbGQnLC0xKSkgPT0gLTEgKSByZXR1cm47CgogICAgLy8gZ2V0IHRoZSBjb21wYW55IGRpcmVjdG9yeSBtb2R1bGUKICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoKICAgIC8vIGlzIHRoaXMgY29tcGFueSBpbiBvbmUgb2YgdGhlIGNhdGVnb3JpZXMgd2UncmUgY29uY2VybmVkIGFib3V0PwogICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2NkX2NhdGVnb3JpZXNfYXBwcm92ZWRjaGVja2lucycpOwogICAgaWYoICEkdG1wICkgcmV0dXJuOwogICAgJHRtcCA9IHVuc2VyaWFsaXplKCR0bXApOwogICAgaWYoICEkdG1wICkgcmV0dXJuOwogICAgJHRtcCA9IGFycmF5X2tleXMoJHRtcCk7CgogICAgLy8gZ2V0IHRoZSBjYXRlZ29yaWVzIGZvciB0aGlzIGNvbXBhbnkuCiAgICAkY2F0cyA9ICRjZG1vZC0+R2V0Q2F0ZWdvcmllc0ZvckNvbXBhbnkoJGxvY2F0aW9uX2lkKTsKICAgIGlmKCAhaXNfYXJyYXkoJGNhdHMpIHx8IGNvdW50KCRjYXRzKSA9PSAwICkgcmV0dXJuOwoKICAgICRmbmQgPSAwOwogICAgZm9yZWFjaCggJGNhdHMgYXMgJGtleSA9PiAkY2F0ICkgewogICAgICBpZiggaW5fYXJyYXkoJGtleSwkdG1wKSApIHsKCSRmbmQgPSAxOwoJYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIGlmKCAhJGZuZCApIHJldHVybjsKCiAgICAvLyBnZXQgdGhlIGZpZWxkIGRlZmluaXRpb25zIGZvciB0aGlzIGNvbXBhbnkuCiAgICAkZmllbGRkZWZzID0gJGNkbW9kLT5HZXRGaWVsZERlZnNGb3JDb21wYW55KCRpZCxmYWxzZSxmYWxzZSk7CiAgICBpZiggIWlzX2FycmF5KCRmaWVsZGRlZnMpIHx8IGNvdW50KCRmaWVsZGRlZnMpID09IDAgKSByZXR1cm47CgogICAgLy8gZ2V0IHRoZSBwYXNzd29yZC4KICAgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJGsgPT4gJG9uZWRlZiApIHsKICAgICAgaWYoICRvbmVkZWZbJ2lkJ10gPT0gJHB3ZmllbGQgKSB7CglyZXR1cm4gdHJpbSgkb25lZGVmWydkYXRhJ10pOwogICAgICB9CiAgICB9CgogICAgLy8gcGFzc3dvcmQgZmllbGQgbm90IGZvdW5kLgogICAgcmV0dXJuOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfY2hlY2tpbl9hcHByb3ZhbF9yZXF1aXJlZCgkbG9jYXRpb25faWQpCiAgewogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dTb2NpYWxBcHAnKTsKICAgICRjZG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ29tcGFueURpcmVjdG9yeScpOwoKICAgICR0bXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdjZF9jYXRlZ29yaWVzX2FwcHJvdmVkY2hlY2tpbnMnKTsKICAgIGlmKCAhJHRtcCApIHJldHVybiBGQUxTRTsKICAgICR0bXAgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgIGlmKCAhJHRtcCApIHJldHVybiBGQUxTRTsKICAgICR0bXAgPSBhcnJheV9rZXlzKCR0bXApOwogICAgCiAgICAkY2F0cyA9ICRjZG1vZC0+R2V0Q2F0ZWdvcmllc0ZvckNvbXBhbnkoJGxvY2F0aW9uX2lkKTsKICAgIGlmKCAhaXNfYXJyYXkoJGNhdHMpIHx8IGNvdW50KCRjYXRzKSA9PSAwICkgcmV0dXJuIEZBTFNFOwogICAgCiAgICBmb3JlYWNoKCAkY2F0cyBhcyAka2V5ID0+ICRjYXQgKSB7CiAgICAgIGlmKCBpbl9hcnJheSgka2V5LCR0bXApICYmICRjYXQtPnZhbHVlID09IDEgKSB7CglyZXR1cm4gVFJVRTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIEZBTFNFOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2hlY2tfdXNlcl90b19sb2NhdGlvbigkbG9jYXRpb25faWQsJHVpZCwkcHcgPSAnJykKICB7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NvY2lhbEFwcCcpOwogICAgJHVzZXJmaWVsZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2NkX2FwcHJvdmVfdXNlcmZpZWxkJywtMSk7CiAgICAkcHdmaWVsZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2NkX2FwcHJvdmVfcHdmaWVsZCcsLTEpOwogICAgaWYoICR1c2VyZmllbGQgPT0gLTEgJiYgJHB3ZmllbGQgPT0gLTEgKSByZXR1cm4gRkFMU0U7IC8vIG5vIHBhc3N3b3JkIG9yIHVzZXJmaWVsZCBzcGVjaWZpZWQuLi4gY2FuJ3QgYXBwcm92ZSBzaGl0LgoKICAgIC8vIGdldCB0aGUgY29tcGFueSBkaXJlY3RvcnkgbW9kdWxlCiAgICAkY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknKTsKCiAgICAvLyBnZXQgdGhlIGZpZWxkIGRlZmluaXRpb25zIGZvciB0aGlzIGNvbXBhbnkuCiAgICAkZmllbGRkZWZzID0gJGNkbW9kLT5HZXRGaWVsZERlZnNGb3JDb21wYW55KCRpZCxmYWxzZSxmYWxzZSk7CiAgICBpZiggIWlzX2FycmF5KCRmaWVsZGRlZnMpIHx8IGNvdW50KCRmaWVsZGRlZnMpID09IDAgKSByZXR1cm47CgogICAgaWYoICRwd2ZpZWxkID4gMCApIHsKICAgICAgLy8gZmluZCBhbmQgdmFsaWRhdGUgdGhlIHBhc3N3b2QuLi4KICAgICAgaWYoICRwdyA9PSAnJyApIHJldHVybiBGQUxTRTsgLy8gbm8gcGFzc3dvcmQgc3VwcGxpZWQuCiAgICAgICRmbmQgPSAwOwogICAgICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRrID0+ICRvbmVkZWYgKSB7CglpZiggJG9uZWRlZlsnaWQnXSAhPSAkcHdmaWVsZCApIGNvbnRpbnVlOwoJCglpZiggbWQ1KCRvbndkZWZbJ3ZhbHVlJ10pID09ICRwdyApIHsKCSAgJGZuZCA9IDE7Cgl9CglicmVhazsKICAgICAgfQogICAgICBpZiggISRmbmQgKSByZXR1cm4gRkFMU0U7IC8vIHBhc3N3b3JkIGZpZWxkIGVpdGhlciBub3QgZm91bmQsIG9yIGRpZCBub3QgbWF0Y2guCiAgICB9CgogICAgaWYoICR1c2VyZmllbGQgPiAwICkgewogICAgICAvLyB2YWxpZGF0ZSB1c2VybmFtZS91aWQKICAgICAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkayA9PiAkb25lZGVmICkgewoJaWYoICRvbmVkZWZbJ2lkJ10gIT0gJHVzZXJmaWVsZCApIGNvbnRpbnVlOwoJCgkvLyBmb3VuZCB0aGUgZmllbGQuCgkkZGF0YSA9ICRvbmVkZWZbJ3ZhbHVlJ107CglpZiggISRkYXRhICkgYnJlYWs7CgkkZGF0YSA9IGV4cGxvZGUoJywnLCRkYXRhKTsKCWlmKCAhaXNfYXJyYXkoJGRhdGEpIHx8IGNvdW50KCRkYXRhKSA9PSAwICkgcmV0dXJuIEZBTFNFOwoJCgkvLyBub3RlOiBleHBlbnNpdmUuLi4gYWxsIHVzZXJuYW1lcy91aWQgc2hvdWxkIGdvIGludG8gb25lIGxhcmdlIE9SIHF1ZXJ5Cglmb3JlYWNoKCAkZGF0YSBhcyAkb25lICkgewoJICAkb25lID0gdHJpbSgkb25lKTsKCSAgaWYoIGlzX2ludCgkb25lKSAmJiAkb25lID09ICR1aWQgKSB7CgkgICAgLy8gZm91bmQgbWF0Y2hpbmcgdXNlciB2aWEgdWlkCgkgICAgcmV0dXJuIFRSVUU7CgkgIH0KCSAgCgkgICRxdWVyeSA9IG5ldyBmZXVfdXNlcl9xdWVyeSgxKTsKCSAgJHF1ZXJ5LT5hZGRfYW5kX29wdChmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1VTRVJOQU1FLCRvbmUpOwoJICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKCSAgaWYoICRycy0+Z2V0X2ZvdW5kX3Jvd3MoKSApIHsKCSAgICAvLyBmb3VuZCBtYXRjaGluZyB1c2VyIHZpYSB1c2VybmFtZQoJICAgIHJldHVybiBUUlVFOwoJICB9Cgl9CglicmVhazsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dzYV9zZWx1dGlsaXR5KCRwYXJhbXMsJHNtYXJ0eSkKICB7CgkkcHJlZml4ID0gJyc7CgkkaWQgPSAnJzsKCSRuYW1lID0gJ2NkX3NlbGhpZXJhcmNoeSc7CgkkY2xhc3MgPSAnY2Rfc2VsaGllcmFyY2h5JzsKCSRzZWxlY3RlZCA9ICcnOwoJJG5vbmUgPSAxOwoKCWlmKCBpc3NldCgkcGFyYW1zWydwcmVmaXgnXSkgKSB7CgkgICRwcmVmaXggPSB0cmltKCRwYXJhbXNbJ3ByZWZpeCddKTsKCX0KCWlmKCBpc3NldCgkcGFyYW1zWydpZCddKSApIHsKCSAgJGlkID0gdHJpbSgkcGFyYW1zWydpZCddKTsKCX0KCWlmKCBpc3NldCgkcGFyYW1zWyduYW1lJ10pICkgewoJICAkbmFtZSA9IHRyaW0oJHBhcmFtc1snbmFtZSddKTsKCX0KCWlmKCBpc3NldCgkcGFyYW1zWydzZWxlY3RlZCddKSApIHsKCSAgJHNlbGVjdGVkID0gdHJpbSgkcGFyYW1zWydzZWxlY3RlZCddKTsKCX0KCWlmKCBpc3NldCgkcGFyYW1zWydub25lJ10pICkgewoJICAkbm9uZSA9IChpbnQpJHBhcmFtc1snbm9uZSddOwoJfQoKCS8vIGdldCB0aGUgaGllcmFyY2h5IGFzIGEgZmxhdCBsaXN0LgoJJGl0ZW1zID0gc2VsZjo6Z2V0X2hpZXJhcmNoeV9saXN0KC0xLCRub25lKTsKCWlmKCAhaXNfYXJyYXkoJGl0ZW1zKSB8fCBjb3VudCgkaXRlbXMpID09IDAgKSByZXR1cm47CgkkaXRlbXMgPSBhcnJheV9mbGlwKCRpdGVtcyk7CgoJLy8gYnVpbGQgdGhlIG91dHB1dC4KCSRvdXQgPSAnPHNlbGVjdCBuYW1lPSInLiRwcmVmaXguJG5hbWUuJyInOwogICAgaWYoICRjbGFzcyApICRvdXQgLj0gJyBjbGFzcz0iJy4kY2xhc3MuJyInOwogICAgaWYoICRpZCApICRvdXQgLj0gJyBpZD0iJy4kaWQuJyInOwoJJG91dCAuPSAnPic7Cglmb3JlYWNoKCAkaXRlbXMgYXMgJGlkID0+ICRsYWJlbCApIHsKCSAgJG91dCAuPSAnPG9wdGlvbiB2YWx1ZT0iJy4kaWQuJyInOwoJICBpZiggJGlkID09ICRzZWxlY3RlZCApICRvdXQgLj0gJyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzsKCSAgJG91dCAuPSAnPicuJGxhYmVsLic8L29wdGlvbj4nOwoJfQoJJG91dCAuPSAnPC9zZWxlY3Q+JzsKCglpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewoJICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJG91dCk7CgkgIHJldHVybjsKCX0KCXJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzbWFydHlfc2VsYWN0aXZpdHkoJHBhcmFtcywkc21hcnR5KQogIHsKCSRwcmVmaXggPSAnJzsKCSRpZCA9ICcnOwoJJG5hbWUgPSAnY2dzYV9zZWxhY3Rpdml0eSc7CgkkY2xhc3MgPSAnY2dzYV9zZWxhY3Rpdml0eSc7Cgkkc2VsZWN0ZWQgPSAnJzsKCSRub25lID0gMTsKCglpZiggaXNzZXQoJHBhcmFtc1sncHJlZml4J10pICkgewoJICAkcHJlZml4ID0gdHJpbSgkcGFyYW1zWydwcmVmaXgnXSk7Cgl9CglpZiggaXNzZXQoJHBhcmFtc1snaWQnXSkgKSB7CgkgICRpZCA9IHRyaW0oJHBhcmFtc1snaWQnXSk7Cgl9CglpZiggaXNzZXQoJHBhcmFtc1snbmFtZSddKSApIHsKCSAgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7Cgl9CglpZiggaXNzZXQoJHBhcmFtc1snc2VsZWN0ZWQnXSkgKSB7CgkgICRzZWxlY3RlZCA9IHRyaW0oJHBhcmFtc1snc2VsZWN0ZWQnXSk7Cgl9CglpZiggaXNzZXQoJHBhcmFtc1snbm9uZSddKSApIHsKCSAgJG5vbmUgPSAoaW50KSRwYXJhbXNbJ25vbmUnXTsKCX0KCgkvLyBnZXQgdGhlIGhpZXJhcmNoeSBhcyBhIGZsYXQgbGlzdC4KCSRpdGVtcyA9IGNnc2FfYWN0aXZpdHk6OmxvYWRfYWxsX2FzX2FycmF5KCk7CglpZiggIWlzX2FycmF5KCRpdGVtcykgfHwgY291bnQoJGl0ZW1zKSA9PSAwICkgcmV0dXJuOwoJJHRtcCA9IGFycmF5KCk7Cglmb3JlYWNoKCAkaXRlbXMgYXMgJHJvdyApIHsKCSAgJHQyID0gZXhwbG9kZSgnLicsJHJvd1snaGllcmFyY2h5J10pOwoJICAkZGVwdGggPSBjb3VudCgkdDIpOwoJICAkdG1wWyRyb3dbJ2lkJ11dID0gc3RyX3JlcGVhdCgnJm5ic3AmbmJzcDsnLCRkZXB0aC0xKS4kcm93WyduYW1lJ107Cgl9CgkkaXRlbXMgPSAkdG1wOwoKCS8vIGJ1aWxkIHRoZSBvdXRwdXQuCgkkb3V0ID0gJzxzZWxlY3QgbmFtZT0iJy4kcHJlZml4LiRuYW1lLiciJzsKCWlmKCAkY2xhc3MgKSAkb3V0IC49ICcgY2xhc3M9IicuJGNsYXNzLiciJzsKCWlmKCAkaWQgKSAkb3V0IC49ICcgaWQ9IicuJGlkLiciJzsKCSRvdXQgLj0gJz4nOwoJZm9yZWFjaCggJGl0ZW1zIGFzICRpZCA9PiAkbGFiZWwgKSB7CgkgICRvdXQgLj0gJzxvcHRpb24gdmFsdWU9IicuJGlkLiciJzsKCSAgaWYoICRpZCA9PSAkc2VsZWN0ZWQgKSAkb3V0IC49ICcgc2VsZWN0ZWQ9InNlbGVjdGVkIic7CgkgICRvdXQgLj0gJz4nLiRsYWJlbC4nPC9vcHRpb24+JzsKCX0KCSRvdXQgLj0gJzwvc2VsZWN0Pic7CgoJaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApIHsKCSAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRvdXQpOwoJICByZXR1cm47Cgl9CglyZXR1cm4gJG91dDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2xlYWRlcmJvYXJkX2ZpbGVwYXRoKCkKICB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR1NvY2lhbEFwcCcpOwogICAgJGRpciA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJ18nLiRtb2QtPkdldE5hbWUoKSwnbGVhZGVyYm9hcmRzJyk7CiAgICByZXR1cm4gJGRpcjsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2xlYWRlcmJvYXJkX2ZpbGV1cmwoKQogIHsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU29jaWFsQXBwJyk7CiAgICAkdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nL18nLiRtb2QtPkdldE5hbWUoKS4nL2xlYWRlcmJvYXJkcyc7CiAgICByZXR1cm4gJHVybDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2JhZGdlX2ZpbGVwYXRoX2J5X2JhZGdlX2lkKCRpZCkKICB7CiAgICBpZiggJGlkIDwgMSApIHJldHVybjsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU29jaWFsQXBwJyk7CiAgICAkZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwnXycuJG1vZC0+R2V0TmFtZSgpLCdiYWRnZXMnLCdiJy4kaWQpOwogICAgcmV0dXJuICRkaXI7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9iYWRnZV9maWxlcGF0aChjZ3NhX2JhZGdlICRiYWRnZSkKICB7CiAgICBpZiggJGJhZGdlLT5pZCA8IDEgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdDYW5ub3QgY3JlYXRlIGEgZmlsZXBhdGggZm9yIGEgYmFkZ2Ugd2l0aCBubyBpZCcpOwogICAgcmV0dXJuIHNlbGY6OmdldF9iYWRnZV9maWxlcGF0aF9ieV9iYWRnZV9pZCgkYmFkZ2UtPmlkKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2JhZGdlX2ZpbGV1cmwoY2dzYV9iYWRnZSAkYmFkZ2UpCiAgewogICAgaWYoICRiYWRnZS0+aWQgPCAxICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignQ2Fubm90IGNyZWF0ZSBhIGZpbGVwYXRoIGZvciBhIGJhZGdlIHdpdGggbm8gaWQnKTsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHU29jaWFsQXBwJyk7CiAgICAkdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nL18nLiRtb2QtPkdldE5hbWUoKS4nL2JhZGdlcy9iJy4kYmFkZ2UtPmlkOwogICAgcmV0dXJuICR1cmw7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbGV0ZV9pbWFnZSgkZGlyLCRuYW1lKQogIHsKICAgIGlmKCAkZGlyID09ICcnIHx8ICRuYW1lID09ICcnICkgcmV0dXJuIEZBTFNFOwogICAgaWYoICFpc19kaXIoJGRpcikgKSByZXR1cm4gRkFMU0U7CgogICAgJGZpbGVzID0gZ2xvYihjbXNfam9pbl9wYXRoKCRkaXIsJyonLiRuYW1lKSk7CiAgICBpZiggIWlzX2FycmF5KCRmaWxlcykgfHwgY291bnQoJGZpbGVzKSA9PSAwICkgcmV0dXJuIEZBTFNFOwoKICAgIGZvcmVhY2goICRmaWxlcyBhcyAkb25lICkgewogICAgICBAdW5saW5rKCRvbmUpOwogICAgfQogICAgcmV0dXJuIFRSVUU7CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLy8KLy8gY3JlYXRlIHRhYmxlcwovLwokZGIgPSBjbXNtcygpLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgokZmxkcyA9ICdpZCBJIEtFWSBBVVRPIE5PVCBOVUxMLAogICAgICAgICBhcGlrZXkgQygxMCkgS0VZIE5PVCBOVUxMLAogICAgICAgICBhcHBuYW1lIEMoMjU1KSBLRVkgTk9UIE5VTEwsCiAgICAgICAgIGVtYWlsICAgQygyNTUpIE5PVCBOVUxMLAogICAgICAgICBhY3RpdmUgIEkxLAogICAgICAgICBwZXJtcyAgIFgsCiAgICAgICAgIGNyZWF0ZWQgSSwKICAgICAgICAgbW9kaWZpZWQgSSwKICAgICAgICAgZXhwaXJlcyBJJzsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENHU09DSUFMX1RBQkxFX0FQSUtFWVMsJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiaWQgSSBLRVkgQVVUTywKICAgICAgICAgbmFtZSBDKDI1NSkgTk9UIE5VTEwsCiAgICAgICAgIHBhcmVudF9pZCBJLAogICAgICAgICBpdGVtX29yZGVyIEksCiAgICAgICAgIGhpZXJhcmNoeSBDKDI1NSksCiAgICAgICAgIGRhdGEgWCI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChDR1NPQ0lBTF9UQUJMRV9BQ1RJVklUSUVTLCRmbGRzLCR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRmbGRzID0gImlkIEkgS0VZIEFVVE8sCiAgICAgICAgIG9iaWQgQygyNTUpLAogICAgICAgICBwYXJlbnRfaWQgSSwKICAgICAgICAgb3duZXIgSSwKICAgICAgICAgbG9jYXRpb24gSSwKICAgICAgICAgYWN0aXZpdHkgSSwKICAgICAgICAgbGF0IEYsCiAgICAgICAgIGxuZyBGLAogICAgICAgICBtc2cgQygyNTUpIE5PVCBOVUxMLAogICAgICAgICBjcmVhdGVkIEksCiAgICAgICAgIGFwcHJvdmVkIEkxLAogICAgICAgICBwcm9jZXNzZWQgSTEsCiAgICAgICAgIGRhdGEgWCI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChDR1NPQ0lBTF9UQUJMRV9DSEVDS0lOUywkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICJpZCBJIEtFWSBBVVRPLAogICAgICAgICB1aWQgIEkgTk9UIE5VTEwsCiAgICAgICAgIHdoZW4gSSBOT1QgTlVMTCwKICAgICAgICAgaXRlbSBDKDUwKSwKICAgICAgICAgaXRlbV9pZCBJLAogICAgICAgICBkZXNjcmlwdGlvbiBDKDI1NSksCiAgICAgICAgIG5vdGVzIFgiOyAgICAgCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChDR1NPQ0lBTF9UQUJMRV9MT0csJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiaWQgSSBLRVkgQVVUTywKICAgICAgICAgbmFtZSBDKDI1NSkgTk9UIE5VTEwsCiAgICAgICAgIGRlc2NyaXB0aW9uIFgsCiAgICAgICAgIGltYWdlIEMoMjU1KSwKICAgICAgICAgdHlwZSBDKDI1KSwKICAgICAgICAgZGF0YSBYLAogICAgICAgICBjcmVhdGVkIEksCiAgICAgICAgIG1vZGlmaWVkIEkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkQsJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiYm9hcmRfaWQgSSBLRVksCiAgICAgICAgIHVpZCAgIEkgS0VZLAogICAgICAgICBzY29yZSBJLAogICAgICAgICBub3RlcyBYIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJEX01FTUJFUlMsJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiaWQgSSBLRVkgQVVUTywKICAgICAgICAgbGVhZGVyYm9hcmRfaWQgSSBOT1QgTlVMTCwKICAgICAgICAgbmFtZSBDKDI1NSkgTk9UIE5VTEwsCiAgICAgICAgIGRlc2NyaXB0aW9uIFgsCiAgICAgICAgIGltYWdlIEMoMjU1KSwKICAgICAgICAgbm90ZXMgWCwKICAgICAgICAgZGF0YSAgWCwKICAgICAgICAgbWluX3Njb3JlIEksCiAgICAgICAgIG1heF9zY29yZSBJLAogICAgICAgICBpc191bmlxdWUgSTEsCiAgICAgICAgIGNyZWF0ZWQgICBJIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENHU09DSUFMX1RBQkxFX0JBREdFUywkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICJiYWRnZV9pZCBJIE5PVCBOVUxMLAogICAgICAgICBsZWFkZXJib2FyZF9pZCBJIE5PVCBOVUxMLAogICAgICAgICB1aWQgSSBOT1QgTlVMTCwKICAgICAgICAgY3JlYXRlZCBJIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENHU09DSUFMX1RBQkxFX0JBREdFU19VU0VSUywkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICJ1aWQgSSBOT1QgTlVMTCwKICAgICAgICAgZnVpZCBJIE5PVCBOVUxMLAogICAgICAgICByZWxuIEkgTk9UIE5VTEwiOyAgLyogMSBmb3IgZnJpZW5kc2hpcCwgLTEgZm9yIG5vdCBhIGZyaWVuZCAocmVqZWN0ZWQgcmVxdWVzdCksIC0yIGZvciBmcmllbmQgcmVxdWVzdCAqLwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ0dTT0NJQUxfVEFCTEVfRlJJRU5EU0hJUFMsJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy8KLy8gY3JlYXRlIGV2ZW50cwovLwokdGhpcy0+Q3JlYXRlRXZlbnQoJ09uQ2hlY2tpbicpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ09uVXBkYXRlQ2hlY2tpbicpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ1ByZURlbGV0ZUNoZWNraW4nKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdQb3N0RGVsZXRlQ2hlY2tpbicpOwokdGhpcy0+Q3JlYXRlRXZlbnQoJ09uQmFkZ2VBd2FyZGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnT25CYWRnZVJldm9rZWQnKTsKLy8gdG9kbzogYWRkIGV2ZW50IGZvciBMZWFkZXJib2FyZFNjb3JlTWF0Y2ggb3Igc29tZXRoaW5nIGxpa2UgdGhhdAovLyB0b2RvOiBhZGQgZXZlbnQgZm9yIEJhZGdlc0NoYW5nZWQgb3Igc29tZXRoaW5nIGxpa2UgdGhhdAoKLy8KLy8gY3JlYXRlIHBlcm1pc3Npb25zCi8vCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKENHU29jaWFsQXBwOjpQRVJNSVNTSU9OLENHU29jaWFsQXBwOjpQRVJNSVNTSU9OKTsKCi8vCi8vIGNyZWF0ZSB0ZW1wbGF0ZXMKLy8KJHR4dCA9IEBmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9vcmlnX25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl90ZW1wbGF0ZScpOwppZiggJHR4dCApIHsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ25ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl90ZW1wbGF0ZScsJHR4dCk7CiB9CiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfbGlzdF9jaGVja2lucy50cGwnOwppZiggZmlsZV9leGlzdHMoJGZuKSApIHsKICAkc3JjID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZWZhdWx0X2xpc3RfY2hlY2tpbl90ZW1wbGF0ZV9jb250ZW50cycsJHNyYyk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdsaXN0X2NoZWNraW5zU2FtcGxlJywkc3JjKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3VycmVudF9saXN0X2NoZWNraW5zX3RlbXBsYXRlJywnU2FtcGxlJyk7CiB9CgokZm4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9vcmlnX2xpc3RfYWN0aXZpdGllcy50cGwnOwppZiggZmlsZV9leGlzdHMoJGZuKSApIHsKICAkc3JjID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZWZhdWx0X2xpc3RfYWN0aXZpdGllc190ZW1wbGF0ZV9jb250ZW50cycsJHNyYyk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCdsaXN0X2FjdGl2aXRpZXNTYW1wbGUnLCRzcmMpOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW50X2xpc3RfYWN0aXZpdGllc190ZW1wbGF0ZScsJ1NhbXBsZScpOwogfQoKJGZuID0gZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvb3JpZ192aWV3X2FjdGl2aXR5LnRwbCc7CmlmKCBmaWxlX2V4aXN0cygkZm4pICkgewogICRzcmMgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2RlZmF1bHRfdmlld19hY3Rpdml0eV90ZW1wbGF0ZV9jb250ZW50cycsJHNyYyk7CiAgJHRoaXMtPlNldFRlbXBsYXRlKCd2aWV3X2FjdGl2aXR5U2FtcGxlJywkc3JjKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3VycmVudF92aWV3X2FjdGl2aXR5X3RlbXBsYXRlJywnU2FtcGxlJyk7CiB9CgovLwovLyBjcmVhdGUgcHJlZmVyZW5jZXMKLy8KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ZyaWVuZGx5bmFtZScsJHRoaXMtPkdldE5hbWUoKSk7CiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfdGFnZ2VkX25vdGlmaWNhdGlvbi50cGwnOwokdHBsID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnZmV1X3RhZ2dlZF90cGwnLCR0cGwpOwoKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uRGVsZXRlVXNlcicpOwoKJHRoaXMtPlNldHVwSm9icygpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMTEgYnkgUm9iZXJ0IENhbXBiZWxsIAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbiAKIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLwovLyByZW1vdmUgdGFibGVzCi8vCiRkYiA9IGNtc21zKCktPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggQ0dTT0NJQUxfVEFCTEVfQVBJS0VZUyApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENHU09DSUFMX1RBQkxFX0FDVElWSVRJRVMgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBDR1NPQ0lBTF9UQUJMRV9DSEVDS0lOUyApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENHU09DSUFMX1RBQkxFX0xPRyApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJEICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkRfTUVNQkVSUyApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENHU09DSUFMX1RBQkxFX0JBREdFUyApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENHU09DSUFMX1RBQkxFX0JBREdFU19VU0VSUyApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENHU09DSUFMX1RBQkxFX0ZSSUVORFNISVBTICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgovLwovLyByZW1vdmUgZXZlbnRzCi8vCgovLwovLyByZW1vdmUgcGVybWlzc2lvbnMKLy8KJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oQ0dTb2NpYWxBcHA6OlBFUk1JU1NJT04pOwoKLy8KLy8gcmVtb3ZlIHRlbXBsYXRlcwovLwokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKCi8vCi8vIHJlbW92ZSBwcmVmZXJlbmNlcwovLwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKLy8KLy8gcmVtb3ZlIGV2ZW50cwovLwokdGhpcy0+UmVtb3ZlRXZlbnQoJ09uQ2hlY2tpbicpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ09uVXBkYXRlQ2hlY2tpbicpOwokdGhpcy0+UmVtb3ZlRXZlbnQoJ1ByZURlbGV0ZUNoZWNraW4nKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdQb3N0RGVsZXRlQ2hlY2tpbicpOwoKLy8KLy8gUmVtb3ZlIGpvYnMKLy8KJGpvYnMgPSBjZ2pvYm1ncl91dGlsczo6Z2V0X2pvYnMoYXJyYXkoJ25hbWUnPT4kdGhpcy0+R2V0TmFtZSgpLicqJykpOwppZiggaXNfYXJyYXkoJGpvYnMpICYmIGNvdW50KCRqb2JzKSApIHsKICBmb3JlYWNoKCAkam9icyBhcyAmJGpvYiApIHsKICAgICRqb2ItPmRlbGV0ZSgpOwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU29jaWFsQXBwIChjKSAyMDExIGJ5IFJvYmVydCBDYW1wYmVsbCAKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojIAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4gCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjAuMScpIDwgMCApCiAgewogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChDR1NPQ0lBTF9UQUJMRV9DSEVDS0lOUywnYXBwcm92ZWQgSTEnKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICB9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMC4yJykgPCAwICkKICB7CiAgICAkdHh0ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3RlbXBsYXRlJyk7CiAgICBpZiggJHR4dCApCiAgICAgIHsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgnbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3RlbXBsYXRlJywkdHh0KTsKICAgICAgfQogIH0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4wLjMnKSA8IDAgKQogIHsKICAgICRmbGRzID0gImlkIEkgS0VZIEFVVE8sCiAgICAgICAgIG5hbWUgQygyNTUpIE5PVCBOVUxMLAogICAgICAgICBkZXNjcmlwdGlvbiBYLAogICAgICAgICBpbWFnZSBDKDI1NSksCiAgICAgICAgIHR5cGUgQygyNSksCiAgICAgICAgIGNyZWF0ZWQgSSwKICAgICAgICAgbW9kaWZpZWQgSSI7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ0dTT0NJQUxfVEFCTEVfTEVBREVSQk9BUkQsJGZsZHMsJHRhYm9wdGFycmF5KTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAkZmxkcyA9ICJib2FyZF9pZCBJIEtFWSwKICAgICAgICAgdWlkICAgSSBLRVksCiAgICAgICAgIHNjb3JlIEksCiAgICAgICAgIG5vdGVzIFgiOwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJEX01FTUJFUlMsJGZsZHMsJHRhYm9wdGFycmF5KTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICB9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMC40JykgPCAwICkKICB7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKENHU09DSUFMX1RBQkxFX0xFQURFUkJPQVJELCdkYXRhIFgnKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICB9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMC42JykgPCAwICkgewogICR0aGlzLT5TZXR1cEpvYnMoKTsKfQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjAuNycpIDwgMCApIHsKICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKENHU09DSUFMX1RBQkxFX0NIRUNLSU5TLCdwcm9jZXNzZWQgSTEnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRmbGRzID0gImlkIEkgS0VZIEFVVE8sCiAgICAgICAgICAgbGVhZGVyYm9hcmRfaWQgSSBOT1QgTlVMTCwKICAgICAgICAgICBuYW1lIEMoMjU1KSBOT1QgTlVMTCwKICAgICAgICAgICBkZXNjcmlwdGlvbiBYLAogICAgICAgICAgIGltYWdlIEMoMjU1KSwKICAgICAgICAgICBub3RlcyBYLAogICAgICAgICAgIGRhdGEgIFgsCiAgICAgICAgICAgbWluX3Njb3JlIEksCiAgICAgICAgICAgbWF4X3Njb3JlIEksCiAgICAgICAgICAgaXNfdW5pcXVlIEkxLAogICAgICAgICAgIGNyZWF0ZWQgICBJIjsKICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ0dTT0NJQUxfVEFCTEVfQkFER0VTLCRmbGRzLCR0YWJvcHRhcnJheSk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAkZmxkcyA9ICJiYWRnZV9pZCBJIE5PVCBOVUxMLAogICAgICAgICAgIGxlYWRlcmJvYXJkX2lkIEkgTk9UIE5VTEwsCiAgICAgICAgICAgdWlkIEkgTk9UIE5VTEwsCiAgICAgICAgICAgY3JlYXRlZCBJIjsKICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ0dTT0NJQUxfVEFCTEVfQkFER0VTX1VTRVJTLCRmbGRzLCR0YWJvcHRhcnJheSk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAkdGhpcy0+Q3JlYXRlRXZlbnQoJ09uQmFkZ2VBd2FyZGVkJyk7CiAgJHRoaXMtPkNyZWF0ZUV2ZW50KCdPbkJhZGdlUmV2b2tlZCcpOwp9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMS4xJykgPCAwICkgewogICRmbGRzID0gInVpZCBJIE5PVCBOVUxMLAogICAgICAgICAgIGZ1aWQgSSBOT1QgTlVMTCwKICAgICAgICAgICByZWxuIEkgTk9UIE5VTEwiOyAgLyogMSBmb3IgZnJpZW5kc2hpcCwgLTEgZm9yIG5vdCBhIGZyaWVuZCAocmVqZWN0ZWQgcmVxdWVzdCkgKi8KICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ0dTT0NJQUxfVEFCTEVfRlJJRU5EU0hJUFMsJGZsZHMsJHRhYm9wdGFycmF5KTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICRmbiA9IGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL29yaWdfdGFnZ2VkX25vdGlmaWNhdGlvbi50cGwnOwogICR0cGwgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZldV90YWdnZWRfdHBsJywkdHBsKTsKCiAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uRGVsZXRlVXNlcicpOwp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_activities_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRhY3Rpdml0aWVzKSAmJiBjb3VudCgkYWN0aXZpdGllcykgPiAxMH0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogeyRhZGRsaW5rfSZuYnNwO3skb3JkZXJsaW5rfGRlZmF1bHQ6Jyd9CjwvZGl2Pgp7L2lmfQoKe2lmIGlzc2V0KCRhY3Rpdml0aWVzKX0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiIGNlbGxzcGFjaW5nPSIwIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygncHJvbXB0X25hbWUnKX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCBmcm9tPSRhY3Rpdml0aWVzIGl0ZW09J29uZSd9CiAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICAgPHRyIGNsYXNzPSJ7JHJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JHJvd2NsYXNzfSc7Ij4KICAgICAgIDx0ZD57cmVwZWF0IHN0cmluZz0nJm5ic3A7Jm5ic3A7JyB0aW1lcz0kb25lLmRlcHRofTxhIGhyZWY9Inskb25lLmVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JG9uZS5uYW1lfTwvYT48L3RkPgogICAgICAgPHRkPnskb25lLmVkaXRfbGlua308L3RkPgogICAgICAgPHRkPnskb25lLmRlbGV0ZV9saW5rfTwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgp7L2lmfQoKCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4KIHskYWRkbGlua30mbmJzcDt7JG9yZGVybGlua3xkZWZhdWx0OicnfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_addactivity.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRhY3Rpdml0eS0+aWQgPiAwfQogIDxoMz57JG1vZC0+TGFuZygndGl0bGVfZWRpdF9hY3Rpdml0eScpfTwvaDM+CntlbHNlfQogIDxoMz57JG1vZC0+TGFuZygndGl0bGVfYWRkX2FjdGl2aXR5Jyl9PC9oMz4Key9pZn0KCnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9uYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW5hbWUiIHZhbHVlPSJ7JGFjdGl2aXR5LT5uYW1lfSIvPgogIDwvcD4KPC9kaXY+Cgp7aWYgaXNzZXQoJGFjdGl2aXRpZXMpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9wYXJlbnQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXBhcmVudF9pZCI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kYWN0aXZpdGllcyBzZWxlY3RlZD0kYWN0aXZpdHktPnBhcmVudF9pZH0KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZXNjcmlwdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3d5c2l3eWcgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWRlc2NyaXB0aW9uIHZhbHVlPSRhY3Rpdml0eS0+ZGVzY3JpcHRpb259CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ltYWdlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHskbW9kLT5MYW5nKCd1cGxvYWQnKX06IDxpbnB1dCB0eXBlPSJmaWxlIiBzaXplPSI1MCIgbmFtZT0ieyRhY3Rpb25pZH1pbWFnZSIgdmFsdWU9InskYWN0aXZpdHktPmltYWdlfSIvPgogICAge2lmICRhY3Rpdml0eS0+aW1hZ2UgIT0gJyd9CiAgICA8YnIvPnskbW9kLT5MYW5nKCdjdXJyZW50X3ZhbHVlJyl9OiB7JGFjdGl2aXR5LT5pbWFnZX0KICAgIDxici8+eyRtb2QtPkxhbmcoJ2RlbGV0ZScpfTogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWRlbGV0ZV9pbWFnZSIgdmFsdWU9IjEiIHRpdGxlPSJ7JG1vZC0+TGFuZygnZGVsZXRlJyl9Ii8+CiAgICB7L2lmfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_addedit_badge.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICEkYmFkZ2UtPmlkfQo8aDM+eyRtb2QtPkxhbmcoJ2FkZF9iYWRnZV9mb3JfbGVhZGVyYm9hcmQnKX06ICZxdW90OzxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPnskbGVhZGVyYm9hcmQtPm5hbWV9PC9zcGFuPiZxdW90OzwvaDM+CntlbHNlfQo8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfYmFkZ2VfZm9yX2xlYWRlcmJvYXJkJyl9OiAmcXVvdDs8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57JGxlYWRlcmJvYXJkLT5uYW1lfTwvc3Bhbj4mcXVvdDs8L2gzPgp7L2lmfQoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJyNyZXNldF9kZmx0JykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICBhbGVydCgndG9kbzogYWpheCBnZXQgZGZsdCB0ZW1wbGF0ZScpOwogICAgcmV0dXJuIGZhbHNlOwogIH0pOwogICQoJ2ltZy5ub3RpZnlfdHBsX2hlbHAnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgICQoJyNub3RpZnlfdHBsX2hlbHAnKS5kaWFsb2coKTsKICB9KTsKfSk7CnsvbGl0ZXJhbH08L3NjcmlwdD4KCnskZm9ybXN0YXJ0fQp7Y2dlX3N0YXJ0X3RhYnN9CntjZ2VfdGFiaGVhZGVyIG5hbWU9J2JhZGdlJyBsYWJlbD0kbW9kLT5MYW5nKCd0YWJfYmFkZ2UnKX0Ke2NnZV90YWJoZWFkZXIgbmFtZT0nbm90aWZpY2F0aW9uJyBsYWJlbD0kbW9kLT5MYW5nKCd0YWJfbm90aWZpY2F0aW9uJyl9Cgp7Y2dlX3RhYmNvbnRlbnRfc3RhcnQgbmFtZT0nYmFkZ2UnfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+KnskbW9kLT5MYW5nKCduYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW5hbWUiIHZhbHVlPSJ7JGJhZGdlLT5uYW1lfSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRtb2QtPkxhbmcoJ21pbl9zY29yZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1taW5fc2NvcmUiIHZhbHVlPSJ7JGJhZGdlLT5taW5fc2NvcmV9IiBzaXplPSI0IiBtYXhsZW5ndGg9IjQiLz4KICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fbWluX3Njb3JlJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbWF4X3Njb3JlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1heF9zY29yZSIgdmFsdWU9InskYmFkZ2UtPm1heF9zY29yZX0iIHNpemU9IjQiIG1heGxlbmd0aD0iNCIvPgogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19tYXhfc2NvcmUnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfdW5pcXVlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9aXNfdW5pcXVlIHNlbGVjdGVkPSRiYWRnZS0+aXNfdW5pcXVlfQogICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb191bmlxdWUnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1hZ2UnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2lmICRiYWRnZS0+aWQgPCAxfQogICAgICA8c3Ryb25nPnskbW9kLT5sYW5nKCd3YXJuaW5nJyl9Ojwvc3Ryb25nPiZuYnNwO3skbW9kLT5MYW5nKCdpbmZvX3VwbG9hZF9kaXNhYmxlZF9vbm5ldycpfQogICAge2Vsc2V9CiAgICAgIHtpZiAkYmFkZ2UtPmltYWdlICE9ICcnfQogICAgICAgIDxzdHJvbmc+eyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06PC9zdHJvbmc+Jm5ic3A7eyRiYWRnZS0+aW1hZ2V9PGJyLz4KICAgICAgICB7JG1vZC0+TGFuZygnZGVsZXRlJyl9OiZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1kZWxldGVfaW1hZ2UiIHZhbHVlPSIxIi8+CiAgICAgICAgPGJyLz4KICAgICAgey9pZn0KICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9aW1hZ2UiLz4KICAgIHsvaWZ9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZGVzY3JpcHRpb24nKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZGVzY3JpcHRpb24gY29udGVudD0kYmFkZ2UtPmRlc2NyaXB0aW9uIHd5c2l3eWc9MX0KICA8L3A+CjwvZGl2PgoKe2NnZV90YWJjb250ZW50X3N0YXJ0IG5hbWU9J25vdGlmaWNhdGlvbid9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiB7JG1vZC0+TGFuZygnaW5mb19ub3RpZmljYXRpb24nKX0KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3RvJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1ub3RpZnlfdG8iPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHRvX29wdHMgc2VsZWN0ZWQ9JGJhZGdlLT5ub3RpZnlfdG99CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19ub3RpZnlfdG8nKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcmlvcml0eScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9bm90aWZ5X3ByaW9yaXR5Ij4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRwcmlvcml0aWVzIHNlbGVjdGVkPSRiYWRnZS0+bm90aWZ5X3ByaW9yaXR5fQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc3ViamVjdCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1ub3RpZnlfc3ViamVjdCIgdmFsdWU9InskYmFkZ2UtPm5vdGlmeV9zdWJqZWN0fSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3N1YmplY3QnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdib2R5X3RlbXBsYXRlJyl9OiZuYnNwO3tjZ2ltYWdlIGNsYXNzPSJub3RpZnlfdHBsX2hlbHAiIGltYWdlPSJpY29ucy9zeXN0ZW0vaW5mby5naWYifQo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1ub3RpZnlfdHBsIiByb3dzPSIxMCIgY29scz0iODAiPnskYmFkZ2UtPm5vdGlmeV90cGx9PC90ZXh0YXJlYT4KICA8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0icmVzZXRfZGZsdCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldF9kZmx0Jyl9IiBuYW1lPSJyZXNldF9kZmx0Ii8+CiAgPC9wPgogIDxkaXYgaWQ9Im5vdGlmeV90cGxfaGVscCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RpdGxlX25vdGlmaWNhdGlvbl9ib2R5X2hlbHAnKX0iPgogICAgPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgogICAgICA8dGhlYWQ+CiAgICAgICAgPHRyPgogICAgICAgICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgICAgICAgIDx0aD57JG1vZC0+TGFuZygndHlwZScpfTwvdGg+CiAgICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2Rlc2NyaXB0aW9uJyl9PC90aD4KICAgICAgICA8L3RyPgogICAgICA8L3RoZWFkPgogICAgICA8dGJvZHk+CiAgICAgICAgPHRyPgogICAgICAgICAgPHRkPmFjdGlvbjwvdGQ+CiAgICAgICAgICA8dGQ+eyRtb2QtPkxhbmcoJ2xibF9zdHJpbmcnKX08L3RkPgogICAgICAgICAgPHRkPnskbW9kLT5MYW5nKCdzbWFydHlfdmFyX2FjdGlvbicpfTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQ+YmFkZ2U8L3RkPgogICAgICAgICAgPHRkPnskbW9kLT5MYW5nKCdsYmxfb2JqZWN0Jyl9PC90ZD4KICAgICAgICAgIDx0ZD57JG1vZC0+TGFuZygnc21hcnR5X3Zhcl9iYWRnZScpfTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQ+dWlkPC90ZD4KICAgICAgICAgIDx0ZD57JG1vZC0+TGFuZygnbGJsX2ludGVnZXInKX08L3RkPgogICAgICAgICAgPHRkPnskbW9kLT5MYW5nKCdzbWFydHlfdmFyX3VpZCcpfTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQ+dXNlcm5hbWU8L3RkPgogICAgICAgICAgPHRkPnskbW9kLT5MYW5nKCdsYmxfc3RyaW5nJyl9PC90ZD4KICAgICAgICAgIDx0ZD57JG1vZC0+TGFuZygnc21hcnR5X3Zhcl91c2VybmFtZScpfTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICA8dGQ+ZW1haWw8L3RkPgogICAgICAgICAgPHRkPnskbW9kLT5MYW5nKCdsYmxfc3RyaW5nJyl9PC90ZD4KICAgICAgICAgIDx0ZD57JG1vZC0+TGFuZygnc21hcnR5X3Zhcl9lbWFpbCcpfTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CiAgPC9kaXY+CjwvZGl2PgoKe2NnZV90YWJjb250ZW50X2VuZH0Ke2NnZV9lbmRfdGFic30KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_addedit_leaderboard.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/admin_addedit_leaderboard.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9InRleHQvY3NzIj57bGl0ZXJhbH0KZGl2LnR5cGVhcmVhIHsKICBkaXNwbGF5OiBub25lOwp9CnsvbGl0ZXJhbH08L3N0eWxlPgoKe2NvbXBkaXJfaW5pdGpzfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+e2xpdGVyYWx9CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgdmFyIHYgPSAnI3R5cGVfJyskKCcjYm9hcmR0eXBlJykudmFsKCk7CiAgJCh2KS5zaG93KCk7CgogICQoJyNib2FyZHR5cGUnKS5jaGFuZ2UoZnVuY3Rpb24oKXsKICAgICQoJ2Rpdi50eXBlYXJlYScpLmhpZGUoKTsKICAgIHZhciB2ID0gJyN0eXBlXycrJCh0aGlzKS52YWwoKTsKICAgICQodikuc2hvdygpOwogIH0pOwoKICAkKCcjY2Rfc2VsY29tcGFueScpLmNvbXBkaXJfY2hvb3NlY29tcGFueSgpOwp9KTsKey9saXRlcmFsfTwvc2NyaXB0PgoKe2lmICRsZWFkZXJib2FyZC0+aWQgJiYgJGxlYWRlcmJvYXJkLT5pZCA+IDAgfQo8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfbGVhZGVyYm9hcmQnKX08L2gzPgp7ZWxzZX0KPGgzPnskbW9kLT5MYW5nKCdhZGRfbGVhZGVyYm9hcmQnKX08L2gzPgp7L2lmfQoKeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbmFtZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1uYW1lIiB2YWx1ZT0ieyRsZWFkZXJib2FyZC0+bmFtZX0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndHlwZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9dHlwZSIgaWQ9ImJvYXJkdHlwZSI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGJvYXJkdHlwZXMgc2VsZWN0ZWQ9JGxlYWRlcmJvYXJkLT50eXBlfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IHR5cGVhcmVhIiBpZD0idHlwZV9sb2NhdGlvbiI+CiAgeyogY3JpdGVyaWEgZm9yIGxvY2F0aW9uIG1hdGNoZXMgKn0KICA8ZGl2IGNsYXNzPSJwYWdldGV4dCI+CiAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InskYWN0aW9uaWR9bWF0Y2hfbG9jYXRpb24iIHZhbHVlPSJsb2NhdGlvbmlkIiBpZD0ibWF0Y2hfbG9jYXRpb25pZCIge2lmICRsZWFkZXJib2FyZC0+bWF0Y2hfbG9jYXRpb24gPT0gJ2xvY2F0aW9uaWQnfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0vPgogICAgPGxhYmVsIGZvcj0ibWF0Y2hfbG9jYXRpb25pZCI+eyRtb2QtPkxhbmcoJ21hdGNoX2xvY2F0aW9uaWQnKX06PC9sYWJlbD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIDxpbnB1dCBpZD0iY2Rfc2VsY29tcGFueSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jcml0ZXJpYV9sb2NhdGlvbmlkIiBzaXplPSI1MCIgdmFsdWU9IjciLz4KICAgICB7KjxpbnB1dCBpZD0iY2Rfc2VsY29tcGFueSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jcml0ZXJpYV9sb2NhdGlvbmlkIiBzaXplPSI1MCIgdmFsdWU9InskbGVhZGVyYm9hcmQtPmNyaXRlcmlhX2xvY2F0aW9uaWR9Ii8+Kn0KICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3NlbGNvbXBhbnknKX0KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZXRleHQiPgogICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7JGFjdGlvbmlkfW1hdGNoX2xvY2F0aW9uIiB2YWx1ZT0iY2F0ZWdvcnkiIGlkPSJtYXRjaF9sb2NhdGlvbmNhdGVnb3J5IiB7aWYgJGxlYWRlcmJvYXJkLT5tYXRjaF9sb2NhdGlvbiA9PSAnY2F0ZWdvcnknfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0vPgogICAgPGxhYmVsIGZvcj0ibWF0Y2hfbG9jYXRpb25jYXRlZ29yeSI+eyRtb2QtPkxhbmcoJ21hdGNoX2xvY2F0aW9uY2F0ZWdvcnknKX06PC9sYWJlbD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHtjZF9zZWxjYXRlZ29yeSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2NyaXRlcmlhX2xvY2F0aW9uY2F0ZWdvcnknIG11bHRpcGxlPTEgc2l6ZT01IHNlbGVjdGVkPSRsZWFkZXJib2FyZC0+Y3JpdGVyaWFfbG9jYXRpb25jYXRlZ29yeX0KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZXRleHQiPgogICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7JGFjdGlvbmlkfW1hdGNoX2xvY2F0aW9uIiB2YWx1ZT0iaGllciIgaWQ9Im1hdGNoX2xvY2F0aW9uaGllciIge2lmICRsZWFkZXJib2FyZC0+bWF0Y2hfbG9jYXRpb24gPT0gJ2hpZXInfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0vPgogICAgPGxhYmVsIGZvcj0ibWF0Y2hfbG9jYXRpb25oaWVyIj57JG1vZC0+TGFuZygnbWF0Y2hfbG9jYXRpb25oaWVyJyl9OjwvbGFiZWw+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KICAgICB7Y2Rfc2VsaGllcmFyY2h5IHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nY3JpdGVyaWFfbG9jYXRpb25oaWVyJyBzZWxlY3RlZD0kbGVhZGVyYm9hcmQtPmNyaXRlcmlhX2xvY2F0aW9uaGllcn08YnIvPgogICAgIHskbW9kLT5MYW5nKCdtYXRjaF9oaWVyY2hpbGRyZW4nKX06Jm5ic3A7e2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nY3JpdGVyaWFfbG9jYXRpb25oaWVyY2hpbGRyZW4nIHNlbGVjdGVkPSRsZWFkZXJib2FyZC0+Y3JpdGVyaWFfbG9jYXRpb25oaWVyY2hpbGRyZW59CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3cgdHlwZWFyZWEiIGlkPSJ0eXBlX2FjdGl2aXR5Ij4KICA8ZGl2IGNsYXNzPSJwYWdldGV4dCI+CiAgICB7JG1vZC0+TGFuZygnbWF0Y2hfYWN0aXZpdGllcycpfToKICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHtjZ3NhX3NlbGFjdGl2aXR5IHByZWZpeD0kYWN0aW9uaWQgbmFtZT1jcml0ZXJpYV9hY3Rpdml0eWlkIHNlbGVjdGVkPSRsZWFkZXJib2FyZC0+Y3JpdGVyaWFfYWN0aXZpdHlpZH08YnIvPgogICAgIHskbW9kLT5MYW5nKCdtYXRjaF9hY3Rpdml0eWNoaWxkcmVuJyl9OiZuYnNwO3tjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J2NyaXRlcmlhX2FjdGl2aXR5Y2hpbGRyZW4nIHNlbGVjdGVkPSRsZWFkZXJib2FyZC0+Y3JpdGVyaWFfYWN0aXZpdHljaGlsZHJlbn0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X211bHRpcGxlYmFkZ2VzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9bXVsdGlwbGViYWRnZXMgc2VsZWN0ZWQ9JGxlYWRlcmJvYXJkLT5tdWx0aXBsZWJhZGdlc30KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19tdWx0aXBsZWJhZGdlcycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZGVzY3JpcHRpb24nKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV90ZXh0YXJlYSBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZGVzY3JpcHRpb24gd3lzaXd5Zz0xIGNvbnRlbnQ9JGxlYWRlcmJvYXJkLT5kZXNjcmlwdGlvbn0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2ltYWdlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtpZiAkbGVhZGVyYm9hcmQtPmlkIDwgMX0KICAgICAgPHN0cm9uZz57JG1vZC0+bGFuZygnd2FybmluZycpfTo8L3N0cm9uZz4mbmJzcDt7JG1vZC0+TGFuZygnaW5mb191cGxvYWRfZGlzYWJsZWRfb25uZXcnKX0KICAgIHtlbHNlfQogICAgICB7aWYgJGxlYWRlcmJvYXJkLT5pbWFnZSAhPSAnJ30KICAgICAgICA8c3Ryb25nPnskbW9kLT5MYW5nKCdjdXJyZW50X3ZhbHVlJyl9Ojwvc3Ryb25nPiZuYnNwO3skbGVhZGVyYm9hcmQtPmltYWdlfTxici8+CiAgICAgICAgeyRtb2QtPkxhbmcoJ2RlbGV0ZScpfTombmJzcDs8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9ZGVsZXRlX2ltYWdlIiB2YWx1ZT0iMSIvPgogICAgICAgIDxici8+CiAgICAgIHsvaWZ9CiAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWltYWdlIi8+CiAgICB7L2lmfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_apikey.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJyNzZWxhbGwnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciB4ID0gJCh0aGlzKS5hdHRyKCdjaGVja2VkJyk7CiAgICBpZiggeCA9PSAnY2hlY2tlZCcgKSB7CiAgICAgICQoJy5wZXJtYm94JykuYXR0cignY2hlY2tlZCcsJ2NoZWNrZWQnKTsKICAgIH0gZWxzZSB7CiAgICAgICQoJy5wZXJtYm94JykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwogICAgfQogIH0pOwogICQoJy5wZXJtYm94JykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICAkKCcjc2VsYWxsJykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwogIH0pOwp9KTsKPC9zY3JpcHQ+Cgp7aWYgJGFwaWtleS5pZCAhPSAnJ30KICA8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfYXBpa2V5Jyl9PC9oMz4Ke2Vsc2V9CiAgPGgzPnskbW9kLT5MYW5nKCdhZGRfYXBpa2V5Jyl9PC9oMz4Key9pZn0KCnskZm9ybXN0YXJ0fQo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2dlbmVyYWxfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2FwcG5hbWUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9YXBwbmFtZSIgdmFsdWU9InskYXBpa2V5LmFwcG5hbWV9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19hcHBuYW1lJyl9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWVtYWlsIiB2YWx1ZT0ieyRhcGlrZXkuZW1haWx9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19lbWFpbGFkZHInKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYXBpa2V5Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHskYXBpa2V5LmFwaWtleX0KICAgIHtpZiAkYXBpa2V5LmFwaWtleSA9PSAnJ30KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Byb21wdF9nZW5lcmF0ZScpfSIvPgogICAge2Vsc2V9CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWFwaWtleSIgdmFsdWU9InskYXBpa2V5LmFwaWtleX0iLz4KICAgIHsvaWZ9CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2FjdGl2ZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWFjdGl2ZSBzZWxlY3RlZD0kYXBpa2V5LmFjdGl2ZX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZXhwaXJlcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7Y2FwdHVyZSBhc3NpZ249dG1wfXskYWN0aW9uaWR9ZXhwaXJlc197L2NhcHR1cmV9CiAgICB7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9JHRtcCBzdGFydF95ZWFyPS0xIGVuZF95ZWFyPSsxNSB0aW1lPSRhcGlrZXkuZXhwaXJlc30KICA8L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGJyLz4KPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdwZXJtaXNzaW9ucycpfTo8L2xlZ2VuZD4KPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMGVtOyBvdmVyZmxvdzogYXV0bzsiPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ic2VsYWxsIiB2YWx1ZT0iMSIvPiZuYnNwOzxsYWJlbCBmb3I9InNlbGFsbCI+eyRtb2QtPkxhbmcoJ3NlbGVjdF9hbGwnKX08L2xhYmVsPjxici8+PGJyLz4Ke2ZvcmVhY2ggZnJvbT0kYWxscGVybXMgaXRlbT0ncGVybSd9CiAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9InBlcm1ib3giIGlkPSJ7JHBlcm19IiBuYW1lPSJ7JGFjdGlvbmlkfXskcGVybX0iIHZhbHVlPSIxIntpZiAkYXBpa2V5LT5jaGVja19wZXJtaXNzaW9uKCRwZXJtKSB9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfS8+Jm5ic3A7CiAgICAgIDxsYWJlbCBmb3I9InskcGVybX0iPnskbW9kLT5MYW5nKCRwZXJtKX08L2xhYmVsPjxici8+CnsvZm9yZWFjaH0KICAgIDwvcD4KICA8L2Rpdj4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_keys_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRhcGlrZXlzKX0Ke2lmICRhcGlrZXlzfEBjb3VudCBndCAyMH0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkX2xpbmt9PC9kaXY+CnsvaWZ9Cgo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdhcHBuYW1lJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdlbWFpbCcpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnYXBpa2V5Jyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdhY3RpdmUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2NyZWF0ZWQnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ21vZGlmaWVkJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdleHBpcmVzJyl9PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD57KiBlZGl0ICp9CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+eyogZGVsZXRlICp9CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAge2ZvcmVhY2ggZnJvbT0kYXBpa2V5cyBpdGVtPSdyb3cnfQogICAgPHRyPgogICAgICA8dGQ+PGEgaHJlZj0ieyRyb3cuZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskcm93LmFwcG5hbWV9PC9hPjwvdGQ+CiAgICAgIDx0ZD57JHJvdy5lbWFpbH08L3RkPgogICAgICA8dGQ+eyRyb3cuYXBpa2V5fTwvdGQ+CiAgICAgIDx0ZD57JHJvdy5hY3RpdmVfbGlua308L3RkPgogICAgICA8dGQ+eyRyb3cuY3JlYXRlZHxjbXNfZGF0ZV9mb3JtYXR9PC90ZD4KICAgICAgPHRkPnskcm93Lm1vZGlmaWVkfGNtc19kYXRlX2Zvcm1hdH08L3RkPgogICAgICA8dGQ+eyRyb3cuZXhwaXJlc3xjbXNfZGF0ZV9mb3JtYXQ6JyV4J308L3RkPgogICAgICA8dGQ+eyRyb3cuZWRpdF9saW5rfTwvdGQ+CiAgICAgIDx0ZD57JHJvdy5kZWxldGVfbGlua308L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRfbGlua308L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_leaderboardsettings_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW50ZXJ2YWxfdXBkYXRlbGVhZGVyYm9hcmRzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWludGVydmFsX3VwZGF0ZWxlYWRlcmJvYXJkcyIgdmFsdWU9InskaW50ZXJ2YWxfdXBkYXRlbGVhZGVyYm9hcmRzfSIgc2l6ZT0iMyIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2ludGVydmFsX2xlYWRlcmJvYXJkcycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ludGVydmFsX3VwZGF0ZWJhZGdlcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1pbnRlcnZhbF91cGRhdGViYWRnZXMiIHZhbHVlPSJ7JGludGVydmFsX3VwZGF0ZWJhZGdlc30iIHNpemU9IjMiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19pbnRlcnZhbF91cGRhdGViYWRnZXMnKX0KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_leaderboards_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRsZWFkZXJib2FyZHMpfQo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPgogPHRoZWFkPgogIDx0cj4KICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD57KiBsZWFkZXJib2FyZHMgKn0KICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PC90aD57KiBlZGl0ICp9CiAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+eyogZGVsZXRlICp9CiAgPC90cj4KIDwvdGhlYWQ+CiA8dGJvZHk+CiB7Zm9yZWFjaCBmcm9tPSRsZWFkZXJib2FyZHMgaXRlbT0nb25lJ30KICA8dHI+CiAgIDx0ZD57bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ0dTb2NpYWxBcHAnIGFjdGlvbj0nYWRtaW5fYWRkZWRpdF9sZWFkZXJib2FyZCcgbGVhZGVyYm9hcmQ9JG9uZS0+aWQgdGV4dD0kb25lLT5uYW1lfTwvdGQ+CiAgIDx0ZD57bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ0dTb2NpYWxBcHAnIGFjdGlvbj0nYWRtaW5fbGlzdGJhZGdlcycgbGVhZGVyYm9hcmQ9JG9uZS0+aWQgaW1hZ2U9J2FzdGVyaXNrLnBuZycgaW1hZ2Vvbmx5PTEgdGV4dD0kbW9kLT5MYW5nKCdlZGl0X2JhZGdlcycpfTwvdGQ+CiAgIDx0ZD57bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ0dTb2NpYWxBcHAnIGFjdGlvbj0nYWRtaW5fYWRkZWRpdF9sZWFkZXJib2FyZCcgbGVhZGVyYm9hcmQ9JG9uZS0+aWQgaW1hZ2U9J2ljb25zL3N5c3RlbS9lZGl0LmdpZicgaW1hZ2Vvbmx5PTEgdGV4dD0kbW9kLT5MYW5nKCdlZGl0Jyl9PC90ZD4KICAgPHRkPnttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDR1NvY2lhbEFwcCcgYWN0aW9uPSdhZG1pbl9kZWxldGVfbGVhZGVyYm9hcmQnIGxlYWRlcmJvYXJkPSRvbmUtPmlkIGltYWdlPSdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicgaW1hZ2Vvbmx5PTEgdGV4dD0kbW9kLT5MYW5nKCdkZWxldGUnKSBjb25mbWVzc2FnZT0kbW9kLT5MYW5nKCdhc2tfZGVsZXRlX2xlYWRlcmJvYXJkJyl9PC90ZD4KICA8L3RyPgogey9mb3JlYWNofQogPC90Ym9keT4KPC90YWJsZT4Key9pZn0KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgp7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ0dTb2NpYWxBcHAnIGFjdGlvbj0nYWRtaW5fYWRkZWRpdF9sZWFkZXJib2FyZCcgaW1hZ2U9J25ld29iamVjdC5naWYnIHRleHQ9JG1vZC0+TGFuZygnYWRkX2xlYWRlcmJvYXJkJyl9CjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_listbadges.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdsaXN0X2JhZGdlcycpfTogJnF1b3Q7PHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+eyRsZWFkZXJib2FyZC0+bmFtZX0mcXVvdDs8L3NwYW4+PC9oMz4KCntpZiBpc3NldCgkYmFkZ2VzKX0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoIHdpZHRoPSI1JSI+eyRtb2QtPkxhbmcoJ2lkJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdtaW5fc2NvcmUnKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ21heF9zY29yZScpfTwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+eyogZWRpdCAqfQogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPnsqIGRlbGV0ZSAqfQogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCBmcm9tPSRiYWRnZXMgaXRlbT0nYmFkZ2UnfQogICAgPHRyPgogICAgICA8dGQ+eyRiYWRnZS0+aWR9PC90ZD4KICAgICAgPHRkPnttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDR1NvY2lhbEFwcCcgYWN0aW9uPSdhZG1pbl9hZGRlZGl0X2JhZGdlJyBsZWFkZXJib2FyZD0kbGVhZGVyYm9hcmQtPmlkIGJhZGdlPSRiYWRnZS0+aWQgdGV4dD0kYmFkZ2UtPm5hbWUgdGl0bGU9JG1vZC0+TGFuZygnZWRpdF9iYWRnZScpfTwvdGQ+CiAgICAgIDx0ZD57JGJhZGdlLT5taW5fc2NvcmV9PC90ZD4KICAgICAgPHRkPntpZiAkYmFkZ2UtPm1heF9zY29yZSBndCAwfXskYmFkZ2UtPm1heF9zY29yZX17ZWxzZX1OL0F7L2lmfTwvdGQ+CiAgICAgIDx0ZD57bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ0dTb2NpYWxBcHAnIGFjdGlvbj0nYWRtaW5fYWRkZWRpdF9iYWRnZScgbGVhZGVyYm9hcmQ9JGxlYWRlcmJvYXJkLT5pZCBiYWRnZT0kYmFkZ2UtPmlkIGltYWdlPSdpY29ucy9zeXN0ZW0vZWRpdC5naWYnIGltYWdlb25seT0xIHRleHQ9JG1vZC0+TGFuZygnZWRpdF9iYWRnZScpfTwvdGQ+CiAgICAgIDx0ZD57bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ0dTb2NpYWxBcHAnIGFjdGlvbj0nYWRtaW5fZGVsZXRlX2JhZGdlJyBsZWFkZXJib2FyZD0kbGVhZGVyYm9hcmQtPmlkIGJhZGdlPSRiYWRnZS0+aWQgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBpbWFnZW9ubHk9MSB0ZXh0PSRtb2QtPkxhbmcoJ2RlbGV0ZV9iYWRnZScpIGNvbmZtZXNzYWdlPSRtb2QtPkxhbmcoJ2Fza19kZWxldGVfYmFkZ2UnKX08L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4Ke21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J0NHU29jaWFsQXBwJyBhY3Rpb249J2FkbWluX2FkZGVkaXRfYmFkZ2UnIGxlYWRlcmJvYXJkPSRsZWFkZXJib2FyZC0+aWQgaW1hZ2U9J2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJyB0ZXh0PSRtb2QtPkxhbmcoJ2FkZF9iYWRnZScpfSZuYnNwOwp7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ0dTb2NpYWxBcHAnIGFjdGlvbj0nZGVmYXVsdGFkbWluJyBpbWFnZT0naWNvbnMvc3lzdGVtL2JhY2suZ2lmJyB0ZXh0PSRtb2QtPkxhbmcoJ3JldHVybicpIGNnX2FjdGl2ZXRhYj0nbGVhZGVyYm9hcmRzJ30KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/admin_locationsettingstab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KPC9kaXY+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9uZXdsb2NhdGlvbicpfTo8L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbmV3bG9jYXRpb25fYWxsb3cnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1uZXdsb2NhdGlvbl9hbGxvdyBzZWxlY3RlZD0kbmV3bG9jYXRpb25fYWxsb3d9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbmV3bG9jYXRpb25fYWxsb3dlZGl0Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9bmV3bG9jYXRpb25fYWxsb3dlZGl0IHNlbGVjdGVkPSRuZXdsb2NhdGlvbl9hbGxvd2VkaXR9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbmV3bG9jYXRpb25fcmF0ZWxpbWl0aW5nJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXhUIiBuYW1lPSJ7JGFjdGlvbmlkfW5ld2xvY2F0aW9uX251bWxpbWl0IiB2YWx1ZT0ieyRuZXdsb2NhdGlvbl9udW1saW1pdH0iIHNpemU9IjIiIG1heGxlbmd0aD0iMiIvPgogICAgJm5ic3A7eyRtb2QtPkxhbmcoJ3BlcicpfSZuYnNwOwogICAgPGlucHV0IHR5cGU9InRleFQiIG5hbWU9InskYWN0aW9uaWR9bmV3bG9jYXRpb25fdGltZWxpbWl0IiB2YWx1ZT0ieyRuZXdsb2NhdGlvbl90aW1lbGltaXR9IiBzaXplPSIzIiBtYXhsZW5ndGg9IjMiLz4KICAgICZuYnNwLnskbW9kLT5MYW5nKCdtaW51dGVzJyl9PGJyLz4KICA8L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfbG9jYXRpb25fbm90aWZpY2F0aW9uJyl9OjwvbGVnZW5kPgo8cCBjbGFzcz0icGFnZW92ZXJmbG93Ij57JG1vZC0+TGFuZygnaW5mb19sb2NhdGlvbl9ub3RpZmljYXRpb25zJyl9PC9wPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9uZXdsb2NhdGlvbl9zdGF0dXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfW5ld2xvY2F0aW9uX3N0YXR1cyI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kc3RhdHVzZXMgc2VsZWN0ZWQ9JG5ld2xvY2F0aW9uX3N0YXR1c30KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25ld2xvY2F0aW9uX2dyb3VwcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1uZXdsb2NhdGlvbl9ub3RpZmljYXRpb25fZ3JvdXBzIiB2YWx1ZT0ieyRuZXdsb2NhdGlvbl9ub3RpZmljYXRpb25fZ3JvdXBzfSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fbmV3bG9jYXRpb25fZ3JvdXBzJyl9OgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X25ld2xvY2F0aW9uX3N1YmplY3QnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3N1YmplY3QiIHZhbHVlPSJ7JG5ld2xvY2F0aW9uX25vdGlmaWNhdGlvbl9zdWJqZWN0fSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbmV3bG9jYXRpb25faXNodG1sJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1uZXdsb2NhdGlvbl9ub3RpZmljYXRpb25faXNodG1sIj4KICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRuZXdsb2NhdGlvbl9ub3RpZmljYXRpb25faXNodG1sfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbmV3bG9jYXRpb25fdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9bmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3RlbXBsYXRlIiBjb2xzPSI4MCIgcm93cz0iMjAiPnskbmV3bG9jYXRpb25fbm90aWZpY2F0aW9uX3RlbXBsYXRlfTwvdGV4dGFyZWE+CiAgICA8YnIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1uZXdsb2NhdGlvbl9ub3RpZmljYXRpb25fdGVtcGxhdGVfcmVzZXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygncmVzZXQnKX0iLz4KICA8L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_orderactivity.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9ClRlbXBsYXRlIGlzOiB7JHNtYXJ0eS50ZW1wbGF0ZX08YnIvPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KCnthc3NpZ24gdmFyPSdkZXB0aCcgdmFsdWU9MH0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiIGNlbGxzcGFjaW5nPSIwIj4KPHRoZWFkPgogIDx0cj4KICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CiAgPC90cj4KPC90aGVhZD4KPHRib2R5Pgp7Y2FwdHVyZSBhc3NpZ249J3RtcCd9bW9kdWxlX2ZpbGVfdHBsOnskbW9kLT5HZXROYW1lKCl9O2FkbWluX29yZGVyYWN0aXZpdHlfc3ViLnRwbHsvY2FwdHVyZX0Ke2luY2x1ZGUgZmlsZT0kdG1wIGFjdGl2aXRpZXM9JGFjdGl2aXRpZXMgZGVwdGg9JGRlcHRoKzF9CjwvdGJvZHk+CjwvdGFibGU+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_orderactivity_sub.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ZvcmVhY2ggZnJvbT0kYWN0aXZpdGllcyBpdGVtPSdvbmUnfQo8dHI+CiAgPHRkPntyZXBlYXQgdGltZXM9JGRlcHRoIHN0cmluZz0nJm5ic3A7Jm5ic3A7J30oeyRvbmUtPmhpZXJhcmNoeX0pJm5ic3A7eyRvbmUtPm5hbWV9PC90ZD4KICB7aWYgaXNzZXQoJG9uZS0+Y2hpbGRyZW4pfQogICAge2luY2x1ZGUgZmlsZT0kc21hcnR5LnRlbXBsYXRlIGFjdGl2aXRpZXM9JG9uZS0+Y2hpbGRyZW4gZGVwdGg9JGRlcHRoKzF9CiAgey9pZn0KPC90cj4Key9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_settings_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJyNzZWxlY3RfYWxsJykuY2xpY2soZnVuY3Rpb24oKXsKICAgICQoJy5jZF9jYXRlZ29yaWVzX2FwcHJvdmVkY2hlY2tpbnMnKS5hdHRyKCdjaGVja2VkJyx0aGlzLmNoZWNrZWQpOwogIH0pOwp9KTsKey9saXRlcmFsfTwvc2NyaXB0PgoKeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXRfc2V0dGluZ3MiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CjwvZGl2PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfZ2VuZXJhbHNldHRpbmdzJyl9OjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mcmllbmRseW5hbWUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZnJpZW5kbHluYW1lIiB2YWx1ZT0ieyRmcmllbmRseW5hbWV9IiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19mcmllbmRseW5hbWUnKX0KICA8L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0Pjxici8+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9jaGVja2luc2V0dGluZ3MnKX06PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2xvY2F0aW9ucmVxdWlyZWQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nbG9jYXRpb25yZXF1aXJlZCcgc2VsZWN0ZWQ9JGxvY2F0aW9ucmVxdWlyZWR9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY2hlY2tpbnJhdGVsaW1pdGluZycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2hlY2tpbnJhdGVsaW1pdGluZ1tdIHNpemU9IjIiIG11bHRpcGxlPSJtdWx0aXBsZSIiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNoZWNraW5yYXRlbGltaXRpbmdfb3B0aW9ucyBzZWxlY3RlZD0kY2hlY2tpbnJhdGVsaW1pdGluZ30KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NoZWNraW5yYXRlbGltaXRpbmdfYnlsb2NhdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jaGVja2lucmF0ZWxpbWl0aW5nX2J5bG9jYXRpb24iIHZhbHVlPSJ7JGNoZWNraW5yYXRlbGltaXRpbmdfYnlsb2NhdGlvbn0iIHNpemU9IjUiLz57JG1vZC0+TGFuZygnbWlsZXMnKX0KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19jaGVja2lucmF0ZWxpbWl0aW5nX2J5bG9jYXRpb24nKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jaGVja2lucmF0ZWxpbWl0aW5nX2J5dGltZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jaGVja2lucmF0ZWxpbWl0aW5nX2J5dGltZSIgdmFsdWU9InskY2hlY2tpbnJhdGVsaW1pdGluZ19ieXRpbWV9IiBzaXplPSI1Ii8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fY2hlY2tpbnJhdGVsaW1pdGluZ19ieXRpbWUnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jZHB3ZmllbGQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHN0cm9uZz57JG1vZC0+TGFuZygnbm90ZScpfTo8L3N0cm9uZz4mbmJzcDt7JG1vZC0+TGFuZygnaW5mb19jZHB3ZmllbGQnKX0KICAgIHtpZiBpc3NldCgkY2RfYXBwcm92ZV9wd2ZpZWxkKX08YnIvPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNkX2FwcHJvdmVfcHdmaWVsZCI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNkX2ZpZWxkZGVmcyBzZWxlY3RlZD0kY2RfYXBwcm92ZV9wd2ZpZWxkfQogICAgPC9zZWxlY3Q+CiAgICB7L2lmfSAgICAKICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jZHB3ZmllbGQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHN0cm9uZz57JG1vZC0+TGFuZygnbm90ZScpfTo8L3N0cm9uZz4mbmJzcDt7JG1vZC0+TGFuZygnaW5mb19jZHB3ZmllbGQnKX0KICAgIHtpZiBpc3NldCgkY2RfYXBwcm92ZV91c2VyZmllbGQpfTxici8+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfYXBwcm92ZV91c2VyZmllbGQiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjZF9maWVsZGRlZnMgc2VsZWN0ZWQ9JGNkX2FwcHJvdmVfdXNlcmZpZWxkfQogICAgPC9zZWxlY3Q+CiAgICB7ZWxzZX0KICAgIDxkaXYgY2xhc3M9InBhZ2V3YXJuaW5nIj57JG1vZC0+TGFuZygnd2FybmluZ19ub2NkZmllbGRzJyl9PC9wPgogICAgey9pZn0gICAgCiAgPC9wPgo8L2Rpdj4Ke2lmIGlzc2V0KCRjZF9jYXRlZ29yaWVzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYXBwcm92ZWNoZWNraW5zJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3NlbGVjdGNkY2F0ZWdvcmllc19hcHByb3ZhbCcpfTxici8+CiAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJzZWxlY3RfYWxsIiB2YWx1ZT0iMSI+Jm5ic3A7PGxhYmVsIGZvcj0ic2VsZWN0X2FsbCI+PHN0cm9uZz57JG1vZC0+TGFuZygnc2VsZWN0X2FsbCcpfTwvc3Ryb25nPjwvbGFiZWw+Ojxici8+CiAgICB7Zm9yZWFjaCBmcm9tPSRjZF9jYXRlZ29yaWVzIGtleT0nbmFtZScgaXRlbT0naXRlbSd9e2Fzc2lnbiB2YXI9J3RtcCcgdmFsdWU9JGl0ZW0tPmlkfQogICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2RfY2F0ZWdvcnlfYXBwcm92ZWRjaGVja2luc197JGl0ZW0tPmlkfSIgY2xhc3M9ImNkX2NhdGVnb3JpZXNfYXBwcm92ZWRjaGVja2lucyIgbmFtZT0ieyRhY3Rpb25pZH1jZF9jYXRlZ29yaWVzX2FwcHJvdmVkY2hlY2tpbnNbeyRpdGVtLT5pZH1dIiB2YWx1ZT0iMSIge2lmIGlzc2V0KCRjZF9jYXRlZ29yaWVzX2FwcHJvdmVkY2hlY2tpbnNbJHRtcF0pfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0+Jm5ic3A7PGxhYmVsIGZvcj0iY2RfY2F0ZWdvcmllc19hcHByb3ZlZGNoZWNraW5zX3skaXRlbS0+aWR9Ij57JG5hbWV9PC9sYWJlbD48YnIvPgogICAgey9mb3JlYWNofQogIDwvcD4KPC9kaXY+CnsvaWZ9CjwvZmllbGRzZXQ+Cgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_usersettings_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CjwvZGl2PgoKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9uZXd1c2VycycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZmV1Z3JvdXAnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1mZXVfdXNlcmdyb3VwIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRmZXVncm91cHMgc2VsZWN0ZWQ9JGZldV91c2VyZ3JvdXB9CiAgICAgIDwvc2VsZWN0PgogICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2ZldV91c2VyZ3JvdXAnKX0KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9tcHRfZGVsZXRldXNlcnMnKX08L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X29uZGVsZXRlX2NsZWFuY2hlY2tpbnMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZmV1X29uZGVsZXRlX2NsZWFuY2hlY2tpbnMgc2VsZWN0ZWQ9JGZldV9vbmRlbGV0ZV9jbGVhbmNoZWNraW5zfQogICAgPC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3Byb21wdF90YWdnZWR1c2VyX25vdGlmaWNhdGlvbnMnKX06PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3RhZ2dlZHVzZXJfbm90aWZpY2F0aW9ucycpfTwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcmlvcml0eScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZldV90YWdnZWRfcHJpb3JpdHkiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kcHJpb3JpdGllcyBzZWxlY3RlZD0kZmV1X3RhZ2dlZF9wcmlvcml0eX0KICAgICAgPC9zZWxlY3Q+CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX25vdGlmaWNhdGlvbl9wcmlvcml0eScpfQogICAgPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc3ViamVjdCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZmV1X3RhZ2dlZF9zdWJqZWN0IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JGZldV90YWdnZWRfc3ViamVjdH0iLz4KICAgICAgPGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fc3ViamVjdCcpfQogICAgPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbm90aWZpY2F0aW9uX3RlbXBsYXRlJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1mZXVfdGFnZ2VkX3RwbCIgcm93cz0iMjAiIGNvbHVtbnM9IjgwIj57JGZldV90YWdnZWRfdHBsfTwvdGV4dGFyZWE+CiAgICAgIDxici8+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygncmVzZXQnKX0iLz4KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_list_activities.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogYWN0aXZpdHkgbGlzdCB0ZW1wbGF0ZSAqfQp7c3RyaXB9CntpZiAhaXNzZXQoJGFkZXB0aCl9e2Fzc2lnbiB2YXI9J2FkZXB0aCcgdmFsdWU9MH17L2lmfQoKPHVsIGNsYXNzPSJhY3Rpdml0eV9saXN0X2x2bHskYWRlcHRofSIvPgp7Zm9yZWFjaCBmcm9tPSR0cmVlIGtleT0na2V5JyBpdGVtPSdpdGVtJ30KICA8bGkge2lmIGlzc2V0KCRhY3RpdmVfYWN0aXZpdHkpIGFuZCAkaXRlbS0+aWQgPT0gJGFjdGl2ZV9hY3Rpdml0eX1jbGFzcz0iYWN0aXZlInsvaWZ9PiAKICB7KiBkaXNwbGF5IGEgbGluayB0byBhIGRldGFpbCB2aWV3IGZvciB0aGlzIGFjdGl2aXR5ICp9CiAge21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q0dTb2NpYWxBcHAgYWN0aW9uPXZpZXdfYWN0aXZpdHkgYWN0aXZpdHk9JGl0ZW0tPmlkIHVybG9ubHk9MSBhc3NpZ249J2R0bF91cmwnfQogIDxhIGhyZWY9InskZHRsX3VybH0iPnskaXRlbS0+bmFtZX08L2E+CgogIHsqIGRpc3BsYXkgZnVydGhlciBpdGVtcyBpbiB0aGUgdHJlZSAqfQogIHtpZiBpc3NldCgkaXRlbS0+Y2hpbGRyZW4pfQogICAge2luY2x1ZGUgZmlsZT0kc21hcnR5LnRlbXBsYXRlIHRyZWU9JGl0ZW0tPmNoaWxkcmVuIGFkZXB0aD0kYWRlcHRoKzF9CiAgey9pZn0KICA8L2xpPgp7L2ZvcmVhY2h9CjwvdWw+Cnsvc3RyaXB9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_list_checkins.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGlzcGxheSBhIGxpc3Qgb2YgY2hlY2tpbnMgbWF0Y2hpbmcgc29tZSBjcml0ZXJpYSAqfQoKe2lmICRwYWdpbmF0aW9uLT5nZXRfcGFnZV9jb3VudCgpID4gMX17c3RyaXB9CiAge2Fzc2lnbiB2YXI9J2N1cl9wYWdlJyB2YWx1ZT0kcGFnaW5hdGlvbi0+Z2V0X2N1cnJlbnRfcGFnZSgpfQogIHtpZiAkY3VyX3BhZ2UgPiAxfQogICAgPGEgaHJlZj0ieyRwYWdpbmF0aW9uLT5nZXRfZmlyc3RwYWdlX3VybCgpfSIgdGl0bGU9InskbW9kLT5MYW5nKCdwcm9tcHRfZmlyc3RwYWdlJyl9Ij4mbHQ7Jmx0OzwvYT4mbmJzcDsKICAgIDxhIGhyZWY9InskcGFnaW5hdGlvbi0+Z2V0X3ByZXZwYWdlX3VybCgpfSIgdGl0bGU9InskbW9kLT5MYW5nKCdwcm9tcHRfcHJldnBhZ2UnKX0iPiZsdDs8L2E+Jm5ic3A7CiAgey9pZn0KICB7JG1vZC0+TGFuZygncHJvbXB0X3BhZ2UnKX0mbmJzcDt7JGN1cl9wYWdlfSZuYnNwO3skbW9kLT5MYW5nKCdvZicpfSZuYnNwO3skcGFnaW5hdGlvbi0+Z2V0X3BhZ2VfY291bnQoKX0KICB7aWYgJGN1cl9wYWdlIDwgJHBhZ2luYXRpb24tPmdldF9wYWdlX2NvdW50KCl9CiAgICAgJm5ic3A7PGEgaHJlZj0ieyRwYWdpbmF0aW9uLT5nZXRfbmV4dHBhZ2VfdXJsKCl9Ij4mZ3Q7PC9hPgogICAgICZuYnNwOzxhIGhyZWY9InskcGFnaW5hdGlvbi0+Z2V0X2xhc3RwYWdlX3VybCgpfSI+Jmd0OyZndDs8L2E+CiAgey9pZn0Key9zdHJpcH17L2lmfQoKe3N0cmlwfXt1cGxvYWRzX3VybCBhc3NpZ249J3VwbG9hZHNfdXJsJ30KPGRpdiBjbGFzcz0iY2dzYV9saXN0Ij4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT0nY2dzYV9lbnRyeSd9CiAgPGRpdiBjbGFzcz0iY2dzYV9zdW1tYXJ5X2VudHJ5Ij4KICAgIHsqIGdldCB0aGUgb3duZXIgaW5mbywgYW5kIGNyZWF0ZSBhIHVybCAqfQogICAge2Fzc2lnbiB2YXI9J3VpbmZvJyB2YWx1ZT0kdXNlcmluZm9bJGNnc2FfZW50cnktPm93bmVyXX0KICAgIHsqICRmZXVfc21hcnR5LT5nZXRfdXNlcmluZm8oJGNnc2FfZW50cnktPm93bmVyLCd1aW5mbycpICp9CiAgICB7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Gcm9udEVuZFVzZXJzIGFjdGlvbj12aWV3dXNlciBwYWdlPWhvbWUgdWlkPSRjZ3NhX2VudHJ5LT5vd25lciB1cmxvbmx5PTEgYXNzaWduPSd1c2VyaHJlZid9CgogICAgeyogY3JlYXRlIGEgbGluayB3aXRoIHRoZSAgdXNlciBuYW1lLCBhbmQgYW4gb3B0aW9uYWwgYXZhdGFyIChub3RlIHRoZSBoYXJkY29kZWQgcHJvcGVydHkgbmFtZS4gIAogICAgICAgSWYgdGhlIGltYWdlIGlzIGEgZGlmZmVyZW50IHByb3BlcnR5IHlvdSB3aWxsIG5lZWQgdG8gY2hhbmdlIGl0IGhlcmUgKn0KICAgIHtjYXB0dXJlIGFzc2lnbj0ndXNlcl9pbWdsaW5rJ317c3RyaXB9CiAgICAgIDxhIGhyZWY9InskdXNlcmhyZWZ9IiB0aXRsZT0iVmlldyBVc2VyIERldGFpbHMiPiAgICAKICAgICAge2lmIGlzc2V0KCR1aW5mby5wcm9wcy5hdmF0YXIpICYmICR1aW5mby5wcm9wcy5hdmF0YXIgIT0gJyd9CiAgICAgICAge0NHU21hcnRJbWFnZSBzcmMxPSR1cGxvYWRzX3VybCBzcmMyPWZldXNlcnMgc3JjMz0kdWluZm8ucHJvcHMuYXZhdGFyIG1heF93aWR0aD0xMDAgbWF4X2hlaWdodD0xMDB9CiAgICAgIHtlbHNlfQogICAgICAgIHtDR1NtYXJ0SW1hZ2Ugc3JjMT0kdXBsb2Fkc191cmwgc3JjMj0nbWlzc2luZ19hdmF0YXIuanBnJyBtYXhfd2lkdGg9MTAwIG1heF9oZWlnaHQ9MTAwfQogICAgICB7L2lmfQogICAgICA8L2E+CiAgICB7L3N0cmlwfXsvY2FwdHVyZX0KCiAgICB7Y2FwdHVyZSBhc3NpZ249J3Vzcl9saW5rJ308YSBocmVmPSJ7JHVzcmhyZWZ9Ij57JHVpbmZvLnVzZXJuYW1lfTwvYT57L2NhcHR1cmV9CgogICAgeyogZ2V0IGEgbGluayB0byB0aGUgbG9jYXRpb24gZGV0YWlsIHZpZXcgKn0KICAgIHtjZF9nZXRjb21wYW55IGlkPSRjZ3NhX2VudHJ5LT5sb2NhdGlvbiBhc3NpZ249J2xvYyd9CiAgICB7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ29tcGFueURpcmVjdG9yeScgYWN0aW9uPWRldGFpbHMgY29tcGFueWlkPSRjZ3NhX2VudHJ5LT5sb2NhdGlvbiBwYWdlPSdob21lJyB0ZXh0PSRsb2MtPmNvbXBhbnlfbmFtZSBhc3NpZ249J2xvY2xpbmsnfQoKICAgIHsqIHB1dCBpdCBhbGwgdG9nZXRoZXIsIGFuZCBkaXNwbGF5IGl0ICp9CiAgICA8ZGl2IGNsYXNzPSJjZ3NhX2F2YXRhciIgc3R5bGU9ImZsb2F0OiBsZWZ0OyI+eyR1c2VyX2ltZ2xpbmt9PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjZ3NhX3dobyI+V2hvOiA8YSBocmVmPSJ7JHVzZXJocmVmfSI+e2lmIGlzc2V0KCR1aW5mby5wcm9wcy5mdWxsX25hbWUpICYmICR1aW5mby5wcm9wcy5mdWxsX25hbWUgIT0gJyd9eyR1aW5mby5wcm9wcy5mdWxsX25hbWV9e2Vsc2V9eyR1aW5mby51c2VybmFtZX08L2E+ey9pZn08L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNnc2Ffd2hlcmUiPiB7JGNnc2FfZW50cnktPmxvY2F0aW9ufTwvZGl2PgogICAge2lmICRjZ3NhX2VudHJ5LT5hY3Rpdml0eSAhPSAnJ30KICAgIDxkaXYgY2xhc3M9ImNnc2Ffd2hhdCI+IHskY2dzYV9lbnRyeS0+YWN0aXZpdHl9PC9kaXY+CiAgICB7L2lmfQogICAgPGRpdiBjbGFzcz0iY2dzYV9kYXRlIj5XaGVuOiB7JGNnc2FfZW50cnktPmNyZWF0ZWR8ZGF0ZV9mb3JtYXQ6JyV4ICVYJ308L2Rpdj4KICAgIHtpZiAkY2dzYV9lbnRyeS0+bXNnICE9ICcnfQogICAgPGRpdiBjbGFzcz0iY2dzYV9tc2ciPk1lc3NhZ2U6IHskY2dzYV9lbnRyeS0+bXNnfTwvZGl2PgogICAgey9pZn0KICA8L2Rpdj4Key9mb3JlYWNofQo8L2Rpdj57L3N0cmlwfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_newlocation_notification_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZW1haWwgdGVtcGxhdGUsIHNlbnQgd2hlbiBhIG5ldyBsb2NhdGlvbiBpcyBjcmVhdGVkIHZpYSB0aGUgYXBpICp9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_tagged_notification.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGFnZ2VkIG5vdGlmaWNhdGlvbiB0ZW1wbGF0ZSAqfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_view_activity.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogb3JpZ2luYWwgdmlldyBhY3Rpdml0eSAqfXtzdHJpcH0KCjxkaXYgY2xhc3M9ImNnc2FfYWN0aXZpdHkiPgogIDxwPntpZiAkYWN0aXZpdHktPmltYWdlfTxpbWcgc3JjPSJ7JGFjdGl2aXR5LT5maWxlX2xvY2F0aW9ufS97JGFjdGl2aXR5LT5pbWFnZX0iIGFsdD0ieyRhY3Rpdml0eS0+aW1hZ2V9Ii8+Jm5ic3A7ey9pZn17JGFjdGl2aXR5LT5uYW1lfTwvcD4KICB7aWYgJGFjdGl2aXR5LT5kZXNjcmlwdGlvbn08ZGl2PnskYWN0aXZpdHktPmRlc2NyaXB0aW9ufTwvZGl2PnsvaWZ9CiAgPC9wPgo8L2RpdgoKPGg0PlJlY2VudCBDaGVja2luczo8L2g0Pgp7Y21zX21vZHVsZSBtb2R1bGU9J0NHU29jaWFsQXBwJyBhY3Rpdml0eT0kYWN0aXZpdHktPmlkIGxpbWl0PTIwfQp7L3N0cmlwfQ==]]></data>
	</file>
	<file>
	  <filename>/todo.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VXNlcnMKIC0gU2VhcmNoCgpMb2NhdGlvbnMKIC0gT24gbGlzdAogICAtIEFkZCBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgKGRvaW5nIGEgc2VhcmNoKQogLSBBZGQvRWRpdC9EZWxldGUKICAgLSBSZXF1aXJlcyBhIHNldHRpbmcgKG1heWJlIGluIENEKSBhbmQgYXBwcm9wcmlhdGUgcGVybWlzc2lvbgogICAKCkZyaWVuZHMKIC0gT24gYWRkIHZlcmlmeSBmdWlkCiAtIE9uIGRlbCB2ZXJpZnkgZnVpZAogKiogQWJzdHJhY3Rpb24gc28gdGhhdCBmcmllbmRzIGNhbiBiZSBmcm9tIGZhY2Vib29rICoqCgpDaGVja2lucwogLSBCWUxPQ0FUSU9OIAogICAtIHJlc3RyaWN0IHRvIGZyaWVuZHMgKG9wdGlvbmFsKQogLSBUYWcgZnJpZW5kcy4KCgpMZWFkZXJib2FyZAo=]]></data>
	</file>
</module>
