<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#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>
  <name>Archiver</name>
  <version>0.1</version>
  <help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlLCBvbmNlIGl0J3MgaW5zdGFsbGVkLCBrZWVwcyBhcm91bmQgYSBjb3B5IG9mIGV2ZXJ5IENvbnRlbnQgUGFnZSwgSFRNTCBCbG9iLCBvciBUZW1wbGF0ZSBhcyB5b3UgZWRpdCBpdCAoc3R5bGVzaGVldHMgd2lsbCBzb29uIGJlIGFkZGVkIHRvIHRoaXMgbGlzdCkuIEl0IGFsc28gcHJvdmlkZXMgYW4gaW50ZXJmYWNlIHNvIHRoYXQgYW4gYWRtaW5pc3RyYXRvciBjYW4gcmVzdG9yZSBhbnl0aGluZyBpbiB0aGUgYXJjaGl2ZSB0byBiZSB0aGUgY3VycmVudCBzdGF0ZS48L3A+CjxwPldoYXQgdGhpcyBtZWFucyBpcyB0aGF0IHlvdSBjYW4gZWRpdCB2YXJpb3VzIGFzcGVjdHMgb2YgdGhlIHNpdGUgYW5kIHRoZW4gcmV2ZXJzZSB0aG9zZSBjaGFuZ2VzIGF0IGEgbGF0ZXIgZGF0ZS48L3A+CjxwPllvdSBjYW4gYXV0b21hdGljYWxseSBwdXJnZSBhcmNoaXZlcyBlaXRoZXIgYnkgcmV2aXNpb24gY291bnQgKGkuZS4sIGtlZXAgb25seSBhIHNldCBudW1iZXIgb2YgcmV2aXNpb25zIG9mIGVhY2ggcGFnZSwgSFRNTCBCbG9iLCBhbmQgVGVtcGxhdGUpIG9yIGJ5IGRhdGUgKGkuZS4sIGtlZXAgb25seSByZXZpc2lvbnMgZnJvbSB0aGUgbGFzdCBuIGRheXMpLiBZb3UgZG8gbm90IGhhdmUgdG8gcHVyZ2UgYXJjaGl2ZXMsIHRob3VnaCwgYW5kIGNhbiBrZWVwIGFjY3VtdWxhdGluZyB0aGVtIHVudGlsIHlvdXIgZGF0YWJhc2Ugb3ZlcmZsb3dzLjwvcD4KPGgzPldoYXQgRG9lcyB0aGlzIE5PVCBkbz88L2gzPgo8cD5UaGlzIGlzIG5vdCBhIHRydWUgcmV2aXNpb24gY29udHJvbCBzeXN0ZW0uIER1ZSB0byB0aGUgZGF0YSBzdHJ1Y3R1cmVzIG9mIENNUyBNYWRlIFNpbXBsZSwgaW1wbGVtZW50aW5nIGEgdHJ1ZSBSQ1MgcHJvdmVkIHRvbyBtdWNoIG9mIGEgY2hhbGxlbmdlIGZvciBteSBwdW55IGludGVsbGVjdC4gVGhpcyB3YXMgdGhlIG5leHQgYmVzdCBzb2x1dGlvbi48L1A+Cjx1bD4KPGxpPlN0eWxlc2hlZXRzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCwgcGVuZGluZyBzb21lIGNoYW5nZXMgdG8gdGhlIGNvcmUuPC9saT4KPGxpPk5vdCBhbGwgbWV0YWRhdGEgaXMgYXJjaGl2ZWQuIEF0dHJpYnV0ZXMgZm9yIGNvbnRlbnQgcGFnZXMsIHN1Y2ggYXMgaGllcmFyY2h5IHBvc2l0aW9uLCBvd25lciwgYWN0aXZlLCBzaG93IGluIG1lbnUsIGV0YywgYXJlIG5vdCBhcmNoaXZlZC4gU2ltaWxhcmx5LCBzdHlsZXNoZWV0IGFuZCB0ZW1wbGF0ZSBhc3NvY2lhdGlvbnMgYXJlIG5vdCBhcmNoaXZlZC48L2xpPgo8bGk+U25hcHNob3RzIChlLmcuLCBhbiBhcmNoaXZlIG9mIHRoZSBleGFjdCBzdGF0ZSBvZiB0aGUgZW50aXJlIHdlYnNpdGUgYXQgc29tZSBpbnN0YW50IGluIHRpbWUpIGFyZSBub3QgeWV0IGltcGxlbWVudGVkLCBidXQgcHJvYmFibHkgd2lsbCBiZSBldmVudHVhbGx5LjwvbGk+CjxsaT5UaGUgc3lzdGVtIGRvZXMgbm90IHN0b3JlIGRlbHRhcywgYnV0IGVudGlyZSBjb3BpZXMgb2YgZWFjaCBhcmNoaXZlLiBUaGlzIGlzIHdhc3RlZnVsIG9mIGRhdGFiYXNlIHNwYWNlLCBidXQgbXVjaCBlYXNpZXIgdG8gaW1wbGVtZW50LjwvbGk+CjwvdWw+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8aDQ+R2VuZXJhbDwvaDQ+CjxwPkFmdGVyIGluc3RhbGxhdGlvbiwgdGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgc3RhcnQgc2F2aW5nIGNoYW5nZXMgaW50byB0aGUgYXJjaGl2ZXMuIFlvdSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuPC9wPgo8aDQ+RXhwaXJhdGlvbiBvZiBBcmNoaXZlczwvaDQ+CjxwPkFueSBhZG1pbiB3aG8gaGFzICJNYW5hZ2UgQXJjaGl2ZXMiIHBlcm1pc3Npb24gbWF5IGdvIGludG8gdGhlIGFyY2hpdmUgYWRtaW4sIGFuZCBzZXQgQXJjaGl2ZSBleHBpcmF0aW9uIHBhcmFtZXRlcnMuIGluIHRoZSAiQXJjaGl2ZSBQcmVmZXJlbmNlcyIgcGFnZS4gVGhpcyBzaG91bGQgYmUgc2VsZi1leHBsYW5hdG9yeS4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIDxzdHJvbmc+c2hvcnRlcjwvc3Ryb25nPiBvZiB0aGUgZXhwaXJhdGlvbiBwYXJhbWV0ZXJzIHlvdSBzZXQgd2lsbCBiZSB1c2VkIC0tIGlmIHlvdSBzZXQgIktlZXAgUmV2aXNpb25zIEZvcmV2ZXIiIGluIHRoZSB0aW1lLWJhc2VkIGV4cGlyYXRpb24sIGJ1dCBvbmx5ICJrZWVwIHRoZSBtb3N0IHJlY2VudCA1IHJldmlzaW9ucyIgZnJvbSB0aGUgcmV2aXNpb24gY291bnQgZXhwaXJhdGlvbiwgeW91IHdpbGwgb25seSBrZWVwIHRoZSBmaXZlIG1vc3QgcmVjZW50LjwvcD4KPGg0PlJlc3RvcmluZyBmcm9tIEFyY2hpdmVzPC9oND4KPHA+QW55IGFkbWluIHdobyBoYXMgIk1hbmFnZSBBcmNoaXZlcyIgcGVybWlzc2lvbnMgY2FuIHZpZXcgdGhlIHJldmlzaW9uIGhpc3Rvcmllcy4gVGhlcmUgYXJlIHR3byBpbnRlcmZhY2VzLCBzaW1wbGUgYW5kIGFkdmFuY2VkLiBTaW1wbGUgbGlzdHMgZWFjaCBleHRhbnQgb2JqZWN0IGluIHRoZSBhcmNoaXZlLCB3aGljaCB5b3UgY2FuIHNvcnQgYnkgbmFtZSBvciB0eXBlLiBUaGUgYWR2YW5jZWQgaW50ZXJmYWNlIHNob3dzIGFsbCByZXZpc2lvbnMgb2YgYWxsIG9iamVjdHMgaW4gdGhlIGFyY2hpdmU7IHlvdSBjYW4gc29ydCB0aGlzIGxpc3QgYnkgbmFtZSwgdHlwZSwgZGF0ZSwgb3IgcmV2aXNpb24gbnVtYmVyLjwvcD4KPHA+VHlwaWNhbGx5LCB5b3UnbGwgZmluZCB0aGUgb2JqZWN0IGluIHRoZSBhcmNoaXZlIHZpYSB0aGUgc2ltcGxlIGludGVyZmFjZS4gVXNpbmcgdGhlIHB1bGxkb3duIG1lbnUsIHlvdSBjYW4gZmlsdGVyIHRvIHNob3cgb25seSBvbmUgdHlwZSBvZiBhcmNoaXZlIG9iamVjdCAoQ29udGVudCwgVGVtcGxhdGUsIEhUTUwgQmxvYiwgb3IgU3R5bGVzaGVldCkuIENsaWNraW5nIG9uIHRoZSBpdGVtJ3MgbmFtZSB3aWxsIHRha2UgeW91IHRvIHRoYXQgb2JqZWN0J3MgaGlzdG9yeSBwYWdlLiBZb3UgY2FuIHRoZW4gcHJldmlldyB0aGUgb2JqZWN0IChpbiB0aGUgY2FzZSBvZiBDb250ZW50KSBieSBjbGlja2luZyBvbiB0aGUgcHJldmlldyBpY29uLjwvcD4KPFA+UmVzdG9yZSBhbiBpdGVtIGJ5IGNsaWNraW5nIG9uIHRoZSAicmVzdG9yZSIgaWNvbiBvbiB0aGUgZmFyIHJpZ2h0LiBUaGF0J3MgYWxsIHRoZXJlIGlzIHRvIGl0ITwvcD4KPGgzPlBsYW5uZWQgSW1wcm92ZW1lbnRzPC9oMz4KPHVsPgo8bGk+SW1wbGVtZW50aW5nIFN0eWxlc2hlZXQgYXJjaGl2ZXMuPC9saT4KPGxpPlByZXZpZXcgb2YgVGVtcGxhdGVzPzwvbGk+CjxsaT5QcmV2aWV3IG9mIEhUTUwgQmxvYnM/PC9saT4KPGxpPlNuYXBzaG90cyAoZS5nLiwgYW4gYXJjaGl2ZSBvZiB0aGUgZXhhY3Qgc3RhdGUgb2YgdGhlIGVudGlyZSB3ZWJzaXRlIGF0IHNvbWUgaW5zdGFudCBpbiB0aW1lKSAuPC9saT4KPGxpPkJldHRlci9tb3JlIGVmZmljaWVudCBzdG9yYWdlPyBTdG9yZSBkZWx0YXM/PC9saT4KPC91bD4KPGgzPkZlYXR1cmVzIFRoYXQgTWlnaHQgQmUgTWlzaW50ZXJwcmV0ZWQgYXMgQnVnczwvaDM+Cjx1bD4KPGxpPlJlc3RvcmluZyBDb250ZW50IGNyZWF0ZXMgYW4gYWRkaXRpb25hbCByZXZpc2lvbi4gU28gaWYgeW91IGhhdmUgdmVyc2lvbnMgMSAtIDQsIGFuZCB5b3UgcmVzdG9yZSB0byB2ZXJzaW9uIDEsIHlvdSdsbCBnZXQgYW4gYWRkaXRpb25hbCBjb3B5IG9mIHJldmlzaW9uIDEgY2FsbGVkICJyZXZpc2lvbiA1IiB0aHJvd24gaW4gdG8geW91ciBhcmNoaXZlLjwvbGk+CjxsaT5JZiB5b3UgaGF2ZSBjaGFuZ2VkIHRoZSBuYW1lIG9mIGEgUGFnZSwgaXQgd2lsbCBzaG93IHVwIHVuZGVyIGJvdGggbmFtZXMgaW4gdGhlIFNpbXBsZSBBcmNoaXZlIFZpZXcuIENsaWNraW5nIG9uIGVpdGhlciBuYW1lIHdpbGwgc2hvdyB5b3UgYWxsIHJldmlzaW9ucyBvZiB0aGF0IHBhZ2UsIHdpdGhvdXQgcmVnYXJkIHRvIHRoZSBuYW1lLjwvbGk+CjwvdWw+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCBvciBidXkgY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2UgdmlzaXQgU2pHJ3MKbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuY21zbW9kdWxlcy5jb20iPkNNU01vZHVsZXMuY29tPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBTakcsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgCjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA1LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgo8aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48L3VsPg==</help>
  <about>PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjE8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+PGxpPlZlcnNpb24gMC4xIC0gMjkgRGVjZW1iZXIgMjAwNS4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+PGJyIC8+</about>
  <file>
    <filename>/</filename>
    <isdir>1</isdir>
  </file>
  <file>
    <filename>/Archiver.module.php</filename>
    <isdir>0</isdir>
    <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEFyY2hpdmVyIC0ga2VlcC9yb2xsLWJhY2sgaGlzdG9yaWNhbCB2ZXJzaW9ucyBvZiBDb250ZW50CiMgVmVyc2lvbjogMC4xLCBTakcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKY2xhc3MgQXJjaGl2ZXIgZXh0ZW5kcyBDTVNNb2R1bGUKewoKCXZhciAkVFlQRV9DT05URU5UID0gMTsKCXZhciAkVFlQRV9IVE1MQkxPQiA9IDI7Cgl2YXIgJFRZUEVfU1RZTEVTSEVFVCA9IDM7Cgl2YXIgJFRZUEVfVEVNUExBVEUgPSA0OwoKCWZ1bmN0aW9uIEdldE5hbWUoKQoJewoJCXJldHVybiAnQXJjaGl2ZXInOwoJfQoKCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCX0KCQoJZnVuY3Rpb24gR2V0VmVyc2lvbigpCgl7CgkJcmV0dXJuICcwLjEnOwoJfQoKCWZ1bmN0aW9uIEdldEhlbHAoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvcigpCgl7CgkJcmV0dXJuICdTakcnOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKCXsKCQlyZXR1cm4gJ3NqZ0BjbXNtb2R1bGVzLmNvbSc7Cgl9CgoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwoJfQoKCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKCXsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gSGFzQWRtaW4oKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCgl7CgkJcmV0dXJuICdjb250ZW50JzsKCX0KCglmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCgl7CgkJcmV0dXJuICcwLjExLjInOwoJfQoKCWZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsKCX0KCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewogICAgICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgQXJjaGl2ZXMnKTsKCX0KCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQoJewoJCXJldHVybiBhcnJheSgpOwoJfQoKCWZ1bmN0aW9uIEluc3RhbGwoKQoJewoJCSRkYiA9ICYkdGhpcy0+Y21zLT5kYjsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKCQkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgkJCiAgICAgICAgLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiAgICAgICAgJGZsZHMgPSAiCiAgICAgICAgICAgIGFyY2hpdmVfaWQgSSBLRVksCiAgICAgICAgICAgIGl0ZW1faWQgSSwKICAgICAgICAgICAgaXRlbV90eXBlIEksCiAgICAgICAgICAgIGl0ZW1fbmFtZSBDKDMyKSwKICAgICAgICAgICAgaXRlbV9oYXNoIEMoMzIpLAogICAgICAgICAgICByZXZpc2lvbl9udW1iZXIgSSwKICAgICAgICAgICAgYXJjaGl2ZV9kYXRlIFQiOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYXJjaGl2ZXJfaXRlbV9pbmZvIiwKCQkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2FyY2hpdmVyX2l0ZW1faW5mb19zZXEiKTsKCiAgICAgICAgJGZsZHMgPSAiCiAgICAgICAgICAgIGFyY2hpdmVfaWQgSSBLRVksCiAgICAgICAgICAgIHNlcmlhbGl6ZWRfaXRlbSBYIjsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2FyY2hpdmVyX2l0ZW0iLAoJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZmxkcyA9ICIKCQkgICAgdHlwZV9pZCBJIEtFWSwKCQkgICAgbmFtZSBDKDQwKSI7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9hcmNoaXZlcl9pdGVtX3R5cGVzIiwKCQkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9hcmNoaXZlcl9pdGVtX3R5cGVzICh0eXBlX2lkLCBuYW1lKSAiLgoJCQkiVkFMVUVTICg/LD8pIjsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5UWVBFX0NPTlRFTlQsJHRoaXMtPkxhbmcoJ2NvbnRlbnQnKSkpOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPlRZUEVfSFRNTEJMT0IsJHRoaXMtPkxhbmcoJ2h0bWxibG9iJykpKTsKCQkkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5UWVBFX1NUWUxFU0hFRVQsJHRoaXMtPkxhbmcoJ3N0eWxlc2hlZXQnKSkpOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRoaXMtPlRZUEVfVEVNUExBVEUsJHRoaXMtPkxhbmcoJ3RlbXBsYXRlJykpKTsKCQkJCiAgICAgICAgJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBBcmNoaXZlcycsICdNYW5hZ2UgQXJjaGl2ZXMnKTsKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoJfQoKCWZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwoJfQoKCWZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsKCX0KCglmdW5jdGlvbiBVcGdyYWRlKCRvbGR2ZXJzaW9uLCAkbmV3dmVyc2lvbikKCXsKCQkkY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247CgkJc3dpdGNoKCRjdXJyZW50X3ZlcnNpb24pCgkJewoJCQljYXNlICIwLjEiOgoJCQkgICAgIGJyZWFrOwoJCX0KCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgl9CgkKCQoJZnVuY3Rpb24gVW5pbnN0YWxsKCkKCXsKCQkkZGIgPSAmJHRoaXMtPmNtcy0+ZGI7CgkJCgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYXJjaGl2ZXJfaXRlbSIgKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYXJjaGl2ZXJfaXRlbV9pbmZvIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9hcmNoaXZlcl9pdGVtX3R5cGVzIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2FyY2hpdmVyX2l0ZW1faW5mb19zZXEiICk7CgoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNYW5hZ2UgQXJjaGl2ZXMnKTsKCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCX0KCgoJZnVuY3Rpb24gRG9BY3Rpb24oJGFjdGlvbiwgJGlkLCAmJHBhcmFtcywgJHJldHVybl9pZD0tMSkKCXsKICAgIAkkdGhpcy0+RGlzcGxheUFkbWluTmF2KCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCk7CgkJc3dpdGNoICgkYWN0aW9uKQoJCXsKICAgICAgICAgICAgY2FzZSAnZGVmYXVsdGFkbWluJzoKICAgICAgICAgICAgY2FzZSAnc2ltcGxlbGlzdCc6CiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAlpZiAoJHRoaXMtPkNoZWNrQWNjZXNzKCkpCiAgICAgICAgICAgIAkJewogICAgICAgICAgICAJCSR0aGlzLT5EaXNwbGF5QXJjaGl2ZXNTaW1wbGUoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKTsKICAgICAgICAgICAgCQl9CiAgICAgICAgICAgIAlicmVhazsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgY2FzZSAnYWRtaW5wcmVmcyc6CiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAkvLyBvbmx5IGxldCBwZW9wbGUgYWNjZXNzIG1vZHVsZSBwcmVmZXJlbmNlcyBpZiB0aGV5IGhhdmUgcGVybWlzc2lvbgogICAgICAgICAgICAJaWYgKCR0aGlzLT5DaGVja0FjY2VzcygpKQogICAgICAgICAgICAJCXsKICAgICAgICAgICAgCQkkdGhpcy0+RGlzcGxheUFkbWluUHJlZnMoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKTsKICAgICAgICAgICAgCQl9CiAgICAgICAgICAgIAlicmVhazsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgY2FzZSAnbGlzdHNuYXBzaG90cyc6CiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAlpZiAoJHRoaXMtPkNoZWNrQWNjZXNzKCkpCiAgICAgICAgICAgIAkJewogICAgICAgICAgICAJCSR0aGlzLT5EaXNwbGF5U25hcHNob3RzKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCk7CiAgICAgICAgICAgIAkJfQogICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgIAl9CiAgICAgICAgICAgIGNhc2UgJ3ByZXZpZXcnOgogICAgICAgICAgICBjYXNlICdsaXN0aXRlbXMnOgogICAgICAgICAgICAJewogICAgICAgICAgICAJaWYgKCR0aGlzLT5DaGVja0FjY2VzcygpKQogICAgICAgICAgICAJCXsKICAgICAgICAgICAgCQkkdGhpcy0+RGlzcGxheUFyY2hpdmVzKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCk7CiAgICAgICAgICAgIAkJfQogICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgIAl9CiAgICAgICAgICAgIGNhc2UgJ3NhdmVfYWRtaW5fcHJlZnMnOgogICAgICAgICAgICAJewogICAgICAgICAgICAJLy8gb25seSBsZXQgcGVvcGxlIHNhdmUgbW9kdWxlIHByZWZlcmVuY2VzIGlmIHRoZXkgaGF2ZSBwZXJtaXNzaW9uCiAgICAgICAgICAgIAlpZiAoJHRoaXMtPkNoZWNrQWNjZXNzKCkpCiAgICAgICAgICAgIAkJewogICAgICAgICAgICAJCSR0aGlzLT5TYXZlQWRtaW5QcmVmcygkaWQsICRwYXJhbXMsICRyZXR1cm5faWQpOwogICAgICAgICAgICAJCX0KICAgICAgICAgICAgCWJyZWFrOwogICAgICAgICAgICAJfQogICAgICAgICAgICBjYXNlICdyZXN0b3JlJzoKICAgICAgICAgICAgCXsKICAgICAgICAgICAgCWlmICgkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKICAgICAgICAgICAgCQl7CiAgICAgICAgICAgIAkJJHRoaXMtPlJlc3RvcmVPYmplY3QoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkKTsKICAgICAgICAgICAgCQl9CiAgICAgICAgICAgIAlicmVhazsKICAgICAgICAgICAgCX0gICAgICAgICAgICAKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgCXsKICAgICAgICAgICAgCWlmICgkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKICAgICAgICAgICAgCQl7CiAgICAgICAgICAgIAkJJHRoaXMtPkRpc3BsYXlBZG1pblBhbmVsKCRpZCwgJHBhcmFtcywgJHJldHVybl9pZCk7CiAgICAgICAgICAgIAkJfQogICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgIAl9CgkJfQoJfQoKCWZ1bmN0aW9uIENoZWNrQWNjZXNzKCRwZXJtID0gJ01hbmFnZSBBcmNoaXZlcycpCgkJewoJCWlmICghICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm0pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLAogICAgICAgICAgICAJCQkkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwoJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQlyZXR1cm4gdHJ1ZTsKCQl9CgoJZnVuY3Rpb24gQ29udGVudEVkaXRQb3N0KCYkY29udGVudCkKCXsKCQkkdGhpcy0+QXJjaGl2ZU9iamVjdCgkY29udGVudCwkdGhpcy0+VFlQRV9DT05URU5ULHRydWUpOwoJfQoKCWZ1bmN0aW9uIENvbnRlbnRFZGl0UHJlKCYkY29udGVudCkKCXsKCQlpZiAoJGNvbnRlbnQtPklkKCkgIT0gLTEpCgkJCXsKCQkJJHRoaXMtPkFyY2hpdmVPYmplY3QoJGNvbnRlbnQsJHRoaXMtPlRZUEVfQ09OVEVOVCk7CgkJCX0KCX0KCglmdW5jdGlvbiBFZGl0VGVtcGxhdGVQcmUoJiR0ZW1wbGF0ZSkKCXsKCQkkdGhpcy0+QXJjaGl2ZU9iamVjdCgkdGVtcGxhdGUsJHRoaXMtPlRZUEVfVEVNUExBVEUpOwoJfQoKCWZ1bmN0aW9uIEFkZFRlbXBsYXRlUG9zdCgmJHRlbXBsYXRlKQoJewoJCSR0aGlzLT5BcmNoaXZlT2JqZWN0KCR0ZW1wbGF0ZSwkdGhpcy0+VFlQRV9URU1QTEFURSk7Cgl9CgoJZnVuY3Rpb24gRWRpdFN0eWxlc2hlZXRQcmUoJiRzdHlsZXNoZXQpCgl7CgkJJHRoaXMtPkFyY2hpdmVPYmplY3QoJHN0eWxlc2hlZXQsJHRoaXMtPlRZUEVfU1RZTEVTSEVFVCk7Cgl9CgoJZnVuY3Rpb24gQWRkU3R5bGVzaGVldFBvc3QoJiRzdHlsZXNoZWV0KQoJewoJCSR0aGlzLT5BcmNoaXZlT2JqZWN0KCRzdHlsZXNoZWV0LCR0aGlzLT5UWVBFX1NUWUxFU0hFRVQpOwoJfQoKCWZ1bmN0aW9uIEVkaXRIdG1sQmxvYlByZSgmJGh0bWxibG9iKQoJewoJCSR0aGlzLT5BcmNoaXZlT2JqZWN0KCRodG1sYmxvYiwkdGhpcy0+VFlQRV9IVE1MQkxPQik7Cgl9CgoJZnVuY3Rpb24gQWRkSHRtbEJsb2JQb3N0KCYkaHRtbGJsb2IpCgl7CgkJJHRoaXMtPkFyY2hpdmVPYmplY3QoJGh0bWxibG9iLCR0aGlzLT5UWVBFX0hUTUxCTE9CKTsKCX0KCiAgICBmdW5jdGlvbiBBcmNoaXZlT2JqZWN0KCYkb2JqZWN0LCAkb2JqZWN0VHlwZSwgJG9ubHlJZk5ldz1mYWxzZSkKICAgIHsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0gJiRnQ21zLT5kYjsKCQkkY2hhbmdlZCA9IGZhbHNlOwoJCSRyZXZpc2lvbl9udW1iZXIgPSAxOwoJCSRvYmplY3RJZCA9ICRvYmplY3QtPklkKCk7CgkJaWYgKCRvYmplY3RJZCA9PSAtMSkKCQkJewoJCQlyZXR1cm47CgkJCX0KCQkkb2JqZWN0TmFtZSA9ICRvYmplY3QtPk5hbWUoKTsKCQkkcXVlcnkgPSAiU0VMRUNUIGl0ZW1faGFzaCwgcmV2aXNpb25fbnVtYmVyIEZST00gIi4KCQkJY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYXJjaGl2ZXJfaXRlbV9pbmZvIHdoZXJlIGl0ZW1faWQ9PyBhbmQgaXRlbV90eXBlID0gPyBPUkRFUiBCWSBhcmNoaXZlX2RhdGUgREVTQyI7CgkJJHJzID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksMSwwLGFycmF5KCRvYmplY3RJZCwgJG9iamVjdFR5cGUpKTsKCQkkaGFzaCA9IG1kNShTZXJpYWxpemVPYmplY3QoJG9iamVjdCkpOwoJCWlmKCRycy0+Um93Q291bnQoKSA9PSAwKQoJCQl7CgkJCS8vIG5vIHJlY29yZCBleGlzdHMgeWV0LCBzbyB3ZSdsbCBzdG9yZSBvbmUuCgkJCSRjaGFuZ2VkID0gdHJ1ZTsKCQkJfQoJCWVsc2UgaWYgKCEgJG9ubHlJZk5ldykKCQkJewoJCQkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJCQlpZiAoJHJlc3VsdFsnaXRlbV9oYXNoJ10gIT0gJGhhc2gpCgkJCQl7CgkJCQkkY2hhbmdlZCA9IHRydWU7CgkJCQkkcmV2aXNpb25fbnVtYmVyID0gJHJlc3VsdFsncmV2aXNpb25fbnVtYmVyJ10rMTsKCQkJCX0KCQkJfQoJCWlmICgkY2hhbmdlZCkKCQkJewoJCQkkYXJjaGl2ZV9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfYXJjaGl2ZV9pdGVtX2luZm9fc2VxJyk7CgkJCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2FyY2hpdmVyX2l0ZW1faW5mbyAoYXJjaGl2ZV9pZCwgIi4KCQkJCSJpdGVtX2lkLCBpdGVtX2hhc2gsIGl0ZW1fdHlwZSwgaXRlbV9uYW1lLCByZXZpc2lvbl9udW1iZXIsIGFyY2hpdmVfZGF0ZSkgIi4KCQkJCSJWQUxVRVMgKD8sPyw/LD8sPyw/LD8pIjsKCgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGFyY2hpdmVfaWQsJG9iamVjdElkLCRoYXNoLAoJCQkJJG9iamVjdFR5cGUsICRvYmplY3ROYW1lLCAkcmV2aXNpb25fbnVtYmVyLCAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkpKTsKCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYXJjaGl2ZXJfaXRlbSAoYXJjaGl2ZV9pZCwgIi4KCQkJCSJzZXJpYWxpemVkX2l0ZW0pIFZBTFVFUyAoPyw/KSI7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGFyY2hpdmVfaWQsU2VyaWFsaXplT2JqZWN0KCRvYmplY3QpKSk7CgkJCX0KCQkJCgkJJHRoaXMtPlB1cmdlQXJjaGl2ZSgkb2JqZWN0SWQsICRvYmplY3RUeXBlKTsKICAgIH0KCglmdW5jdGlvbiBQdXJnZUFyY2hpdmUoJG9iamVjdElELCAkb2JqZWN0VHlwZSkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0gJiRnQ21zLT5kYjsKCQkvLyRkYi0+ZGVidWcgPSB0cnVlOwoJCSRwYyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwdXJnZV9jb3VudCcsJy0xJyk7CgkJJHB0ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3B1cmdlX3RpbWUnLCctMScpOwoJCSRwdXJnZV9pZHMgPSBhcnJheSgpOwoJCWlmICgkcGMgIT0gLTEpCgkJCXsKCQkJLy8gcHVyZ2Ugb2xkIGFyY2hpdmVzIGJ5IGNvdW50CgkJCSRxdWVyeSA9ICdTRUxFQ1QgbWF4KHJldmlzaW9uX251bWJlcikgYXMgdG9wcmV2IEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2FyY2hpdmVyX2l0ZW1faW5mbyB3aGVyZSBpdGVtX2lkPT8gYW5kIGl0ZW1fdHlwZT0/JzsKICAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkb2JqZWN0SUQsICRvYmplY3RUeXBlKSk7CiAgICAgICAgCWlmICgkZGJyZXN1bHQgIT09IGZhbHNlKQogICAgICAgICAgICAJewogICAgICAgICAgICAJJHJldnNfdG9fcHVyZ2UgPSAkZGJyZXN1bHQgLSAkcGMgKyAxOwogICAgICAgICAgICAJJHB1cmdlcXVlcnkgPSAnU0VMRUNUIGFyY2hpdmVfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2FyY2hpdmVyX2l0ZW1faW5mbyAnLgogICAgICAgICAgICAJCSdXSEVSRSByZXZpc2lvbl9udW1iZXIgPCA/IEFORCBpdGVtX2lkPT8gQU5EIGl0ZW1fdHlwZT0/JzsKICAgICAgICAgICAgCSRzdWJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHB1cmdlcXVlcnksIGFycmF5KCRyZXZzX3RvX3B1cmdlLCRvYmplY3RJRCwkb2JqZWN0VHlwZSkpOwogICAgICAgICAgICAJd2hpbGUgKCRzdWJyZXN1bHQgIT09IGZhbHNlICYmICR0aGlzT25lID0gJHN1YnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgICAgICAgCQl7CiAgICAgICAgICAgIAkJLy8gd2VpcmQgcHVzaCwgYmVjYXVzZSB3ZSdyZSB1c2luZyBBRE9EQidzIGJ1bGsgZXhlY3V0ZQogICAgICAgICAgICAJCWFycmF5X3B1c2goJHB1cmdlX2lkcywgYXJyYXkoJHRoaXNPbmVbJ2FyY2hpdmVfaWQnXSkpOwogICAgICAgICAgICAJCX0KICAgICAgICAgICAgCX0KICAgICAgICAgICAgfQoJCWlmICgkcHQgIT0gLTEpCgkJCXsKCQkJLy8gcHVyZ2Ugb2xkIGFyY2hpdmVzIGJ5IHRpbWUKCQkJJHF1ZXJ5ID0gJ1NFTEVDVCBhcmNoaXZlX2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2FyY2hpdmVyX2l0ZW1faW5mbyB3aGVyZSBpdGVtX2lkPT8gYW5kIGl0ZW1fdHlwZT0/IGFuZCBhcmNoaXZlX2RhdGU8Pyc7CiAKIAkJCSRjdXRvZmYgPSBta3RpbWUoMCwgMCwgMCwgZGF0ZSgibSIpLCBkYXRlKCJkIiktJHB0LCBkYXRlKCJZIikpOwogICAgICAgIAkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkb2JqZWN0SUQsICRvYmplY3RUeXBlLCRkYi0+REJUaW1lU3RhbXAoJGN1dG9mZikpKTsKICAgICAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAhPT0gZmFsc2UgJiYgJHRoaXNPbmUgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAlhcnJheV9wdXNoKCRwdXJnZV9pZHMsIGFycmF5KCR0aGlzT25lWydhcmNoaXZlX2lkJ10pKTsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgfQogIAkgICAgaWYgKGNvdW50KCRwdXJnZV9pZHMpID4gMCkKICAJICAgIAl7CgkJCSRkZWxxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2FyY2hpdmVyX2l0ZW1faW5mbyB3aGVyZSBhcmNoaXZlX2lkPT8iOwoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJGRlbHF1ZXJ5LCRwdXJnZV9pZHMpOwoJCQkkZGVscXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9hcmNoaXZlcl9pdGVtIHdoZXJlIGFyY2hpdmVfaWQ9PyI7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkZGVscXVlcnksJHB1cmdlX2lkcyk7CgkJCX0KCX0KCglmdW5jdGlvbiAmcmV0cmlldmVTZXJpYWxpemVkT2JqZWN0KCRhcmNoaXZlX2lkKQoJewoJCWdsb2JhbCAkZ0NtczsKICAgICAgICAkZGIgPSAmJHRoaXMtPmNtcy0+ZGI7CiAgICAgICAgCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBzZXJpYWxpemVkX2l0ZW0gRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJJ21vZHVsZV9hcmNoaXZlcl9pdGVtIFdIRVJFIGFyY2hpdmVfaWQ9Pyc7CiAgICAgICAgICRzZXJvYmogPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRhcmNoaXZlX2lkKSk7CiAgICAgICAgICRyZXN0b3JlID0gVW5zZXJpYWxpemVPYmplY3QoJHNlcm9iaik7CgkJIHJldHVybiAkcmVzdG9yZTsKCX0KCglmdW5jdGlvbiBSZXN0b3JlT2JqZWN0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCgl7Ci8qICAgIAlnbG9iYWwgJGdDbXM7CiAgICAgICAgJGRiID0gJiR0aGlzLT5jbXMtPmRiOwogICAgICAgIAogICAgICAgICRxdWVyeSA9ICdTRUxFQ1Qgc2VyaWFsaXplZF9pdGVtIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICAgCSdtb2R1bGVfYXJjaGl2ZXJfaXRlbSBXSEVSRSBhcmNoaXZlX2lkPT8nOwogICAgICAgICAkc2Vyb2JqID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydhcmNoaXZlX2lkJ10pKTsKICAgICAgICAgJHJlc3RvcmUgPSBVbnNlcmlhbGl6ZU9iamVjdCgkc2Vyb2JqKTsKKi8KCQkkcmVzdG9yZSA9ICR0aGlzLT5yZXRyaWV2ZVNlcmlhbGl6ZWRPYmplY3QoJHBhcmFtc1snYXJjaGl2ZV9pZCddKTsKCQkvLyBnZXQgdGhlIGN1cnJlbnQgb2JqZWN0LCBhbmQgdXBkYXRlIHNlbGVjdCBhdHRyaWJ1dGVzLiBUaGF0IHdheSwgd2UgZG9uJ3Qgc2NyZXcgdXAgaGllcmFyY2h5LCBldGMuCgkJaWYgKCRwYXJhbXNbJ3R5cGVfaWQnXSA9PSAkdGhpcy0+VFlQRV9DT05URU5UKQoJCQl7CgkJCSRjdXJyZW50ID0gQ29udGVudE1hbmFnZXI6OkxvYWRDb250ZW50RnJvbUlkKCRwYXJhbXNbJ2l0ZW1faWQnXSx0cnVlKTsKCQkJJGN1cnJlbnQtPlNldE5hbWUoJHJlc3RvcmUtPk5hbWUoKSk7CgkJCSRjdXJyZW50LT5TZXRUZW1wbGF0ZUlkKCRyZXN0b3JlLT5UZW1wbGF0ZUlkKCkpOwoJCQkkY3VycmVudC0+U2V0TWVudVRleHQoJHJlc3RvcmUtPk1lbnVUZXh0KCkpOwoJCQkkdG1wID0gJHJlc3RvcmUtPlByb3BlcnRpZXMoKTsKCQkJZm9yZWFjaCAoJHRtcC0+bVByb3BlcnR5VmFsdWVzIGFzICRrZXk9PiR2YWwpCgkJCQkJewoJCQkJCSRjdXJyZW50LT5TZXRQcm9wZXJ0eVZhbHVlKCRrZXksJHZhbCk7CgkJCQkJfQoJCQkkY3VycmVudC0+U2F2ZSgpOwoJCQkkbXNnID0gJHRoaXMtPkxhbmcoJ3Jlc3RvcmVkX2NvbnRlbnQnLGFycmF5KCRjdXJyZW50LT5OYW1lKCksJHBhcmFtc1sncmV2aXNpb25fbnVtYmVyJ10pKTsKCQkJfQkKCQllbHNlaWYgKCRwYXJhbXNbJ3R5cGVfaWQnXSA9PSAkdGhpcy0+VFlQRV9TVFlMRVNIRUVUKQoJCQl7CgkJCS8vIEZJWE1FCgkJCSRjdXJyZW50ID0gJyc7CgkJCX0KCQllbHNlaWYgKCRwYXJhbXNbJ3R5cGVfaWQnXSA9PSAkdGhpcy0+VFlQRV9IVE1MQkxPQikKCQkJewoJCQkkY3VycmVudCA9IEh0bWxCbG9iT3BlcmF0aW9uczo6TG9hZEh0bWxCbG9iQnlJRCgkcGFyYW1zWydpdGVtX2lkJ10pOwoJCQkkY3VycmVudC0+bmFtZSA9ICRyZXN0b3JlLT5uYW1lOwoJCQkkY3VycmVudC0+Y29udGVudCA9ICRyZXN0b3JlLT5jb250ZW50OwoJCQkkY3VycmVudC0+U2F2ZSgpOwoJCQkkbXNnID0gJHRoaXMtPkxhbmcoJ3Jlc3RvcmVkX2h0bWxibG9iJyxhcnJheSgkY3VycmVudC0+bmFtZSwkcGFyYW1zWydyZXZpc2lvbl9udW1iZXInXSkpOwoJCQl9CgkJZWxzZWlmICgkcGFyYW1zWyd0eXBlX2lkJ10gPT0gJHRoaXMtPlRZUEVfVEVNUExBVEUpCgkJCXsKCQkJJGN1cnJlbnQgPSBUZW1wbGF0ZU9wZXJhdGlvbnM6OkxvYWRUZW1wbGF0ZUJ5SUQoJHBhcmFtc1snaXRlbV9pZCddKTsKCQkJJGN1cnJlbnQtPmNvbnRlbnQgPSAkcmVzdG9yZS0+Y29udGVudDsKCQkJJGN1cnJlbnQtPm5hbWUgPSAkcmVzdG9yZS0+bmFtZTsKCQkJJGN1cnJlbnQtPnN0eWxlc2hlZXQgPSAkcmVzdG9yZS0+c3R5bGVzaGVldDsKCQkJJGN1cnJlbnQtPmVuY29kaW5nID0gJHJlc3RvcmUtPmVuY29kaW5nOwoJCQkkY3VycmVudC0+U2F2ZSgpOwoJCQkkbXNnID0gJHRoaXMtPkxhbmcoJ3Jlc3RvcmVkX3RlbXBsYXRlJyxhcnJheSgkY3VycmVudC0+bmFtZSwkcGFyYW1zWydyZXZpc2lvbl9udW1iZXInXSkpOwoJCQl9CgkJaWYgKCRjdXJyZW50ID09PSBmYWxzZSkKCQkJewoJCQlyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX2luZm8nKSk7CgkJCX0KCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJG1zZyk7CgkJcmV0dXJuICR0aGlzLT5EaXNwbGF5QXJjaGl2ZXMoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICRtc2cpOwoJfQoKCWZ1bmN0aW9uIERpc3BsYXlBcmNoaXZlcygkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQoJewogICAgCWdsb2JhbCAkZ0NtczsKICAgICAgICAkZGIgPSAmJHRoaXMtPmNtcy0+ZGI7CgkJJGNvbmZpZyA9ICYkdGhpcy0+Y21zLT5jb25maWc7CgkJCiAgICAgICAgJGVudHJ5YXJyYXkgPSBhcnJheSgpOwogICAgICAgICR0b3RhbCA9IDA7CiAgICAgICAgJHN0ZXAgPSAyNTsKICAgICAgICBpZiAgKCFpc3NldCgkcGFyYW1zWydzdGFydCddKSkKICAgICAgICAJewogICAgICAgIAkkcGFyYW1zWydzdGFydCddID0gMDsKICAgICAgICAJfQogICAgICAgIGlmICghaXNzZXQoJHBhcmFtc1snaXRlbV9pZCddKSkKICAgICAgICAJewogICAgICAgIAkkcGFyYW1zWydpdGVtX2lkJ10gPSAtMTsKICAgICAgICAJfQogICAgICAgIGlmICghaXNzZXQoJHBhcmFtc1sncHJldmlldyddKSkKICAgICAgICAJewogICAgICAgIAkkcGFyYW1zWydwcmV2aWV3J10gPSBmYWxzZTsKICAgICAgICAJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmV2aWV3JywwKTsKICAgICAgICAJfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkkcGFyYW1zWydwcmV2aWV3J10gPSB0cnVlOwogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ByZXZpZXcnLDEpOwogICAgICAgIAl9CgkJaWYgKCFpc3NldCgkcGFyYW1zWydzb3J0X29yZGVyJ10pKQogICAgICAgIAl7CiAgICAgICAgCWlmICgkcGFyYW1zWydpdGVtX2lkJ10gPT0gLTEpCiAgICAgICAgCQl7CiAgICAgICAgCQkkcGFyYW1zWydzb3J0X29yZGVyJ10gPSAnbmFtZSc7CiAgICAgICAgCQl9CiAgICAgICAgCWVsc2UKICAgICAgICAJCXsKICAgICAgICAJCSRwYXJhbXNbJ3NvcnRfb3JkZXInXSA9ICdkYXRlJzsKICAgICAgICAJCX0KICAgICAgICAJfQoKICAgICAgICBpZiAoIWlzc2V0KCRwYXJhbXNbJ3NvcnRfZGlyJ10pKQogICAgICAgIAl7CiAgICAgICAgCSRwYXJhbXNbJ3NvcnRfZGlyJ10gPSAnQVNDJzsKICAgICAgICAJfQogICAgICAgICRxdWVyeSA9ICJTRUxFQ1QgY291bnQoYXJjaGl2ZV9pZCkgYXMgdG90YWwgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJIm1vZHVsZV9hcmNoaXZlcl9pdGVtX2luZm8iOwoJCSRyZXN0cmljdGlvbiA9IGFycmF5KCk7CgkJJHdoZXJlQ2xhdXNlID0gJyc7CiAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3R5cGVfZmlsdGVyJ10pICYmICRwYXJhbXNbJ3R5cGVfZmlsdGVyJ10gIT0gLTEpCiAgICAgICAgCXsKICAgICAgICAJCWlmICgkd2hlcmVDbGF1c2UgPT0gJycpCiAgICAgICAgCQkJewogICAgICAgIAkJCSR3aGVyZUNsYXVzZSA9ICcgV0hFUkUnOwogICAgICAgIAkJCX0KICAgICAgICAJCSRxdWVyeSAuPSAiIGl0ZW1fdHlwZT0/IjsKICAgICAgICAJCWFycmF5X3B1c2goJHJlc3RyaWN0aW9uLCAkcGFyYW1zWyd0eXBlX2ZpbHRlciddKTsKICAgICAgICAJfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkkcGFyYW1zWyd0eXBlX2ZpbHRlciddID0gLTE7CiAgICAgICAgCX0KICAgICAgICBpZiAoJHBhcmFtc1snaXRlbV9pZCddICE9IC0xKQogICAgICAgIAl7CiAgICAgICAgCQlpZiAoJHdoZXJlQ2xhdXNlID09ICcnICkKICAgICAgICAJCQl7CiAgICAgICAgCQkJJHdoZXJlQ2xhdXNlID0gJyBXSEVSRSc7CiAgICAgICAgCQkJfQogICAgICAgIAkJJHF1ZXJ5IC49ICIgaXRlbV9pZD0/IjsKICAgICAgICAJCWFycmF5X3B1c2goJHJlc3RyaWN0aW9uLCRwYXJhbXNbJ2l0ZW1faWQnXSk7CiAgICAgICAgCX0KICAgICAgICAkcXVlcnkgLj0gJHdoZXJlQ2xhdXNlOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+R2V0T25lKCRxdWVyeSwgJHJlc3RyaWN0aW9uKTsKICAgICAgICBpZiAoJGRicmVzdWx0ICE9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAkdG90YWw9JGRicmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0b3RhbD0gMDsKICAgICAgICAgICAgfQoKICAgICAgICAkcXVlcnkgPSAiU0VMRUNUIGFpLmFyY2hpdmVfaWQsIGFpLml0ZW1fbmFtZSwgYWkuaXRlbV9pZCwgYWkuaXRlbV90eXBlLCIuCiAgICAgICAgCSIgYWkucmV2aXNpb25fbnVtYmVyLCBhaS5hcmNoaXZlX2RhdGUsICIuCiAgICAgICAgCSJ0Lm5hbWUgYXMgdHlwZV9uYW1lIEZST00gIi4KICAgICAgICAJY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfYXJjaGl2ZXJfaXRlbV9pbmZvIGFpLCAiLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJIm1vZHVsZV9hcmNoaXZlcl9pdGVtX3R5cGVzIHQgV0hFUkUgYWkuaXRlbV90eXBlID0gdC50eXBlX2lkIjsKCQkkcmVzdHJpY3Rpb24gPSBhcnJheSgpOwogICAgICAgIGlmICgkcGFyYW1zWyd0eXBlX2ZpbHRlciddICE9IC0xKQogICAgICAgIAl7CiAgICAgICAgCQkkcXVlcnkgLj0gIiBBTkQgYWkuaXRlbV90eXBlPT8iOwogICAgICAgIAkJYXJyYXlfcHVzaCgkcmVzdHJpY3Rpb24sJHBhcmFtc1sndHlwZV9maWx0ZXInXSk7CiAgICAgICAgCX0KICAgICAgICBpZiAoJHBhcmFtc1snaXRlbV9pZCddICE9IC0xKQogICAgICAgIAl7CiAgICAgICAgCS8vIHNob3dpbmcgYSBzcGVjaWZpYyBpdGVtIGhpc3RvcnkKICAgICAgICAJJHF1ZXJ5IC49ICIgQU5EIGFpLml0ZW1faWQ9PyI7CiAgICAgICAgCWFycmF5X3B1c2goJHJlc3RyaWN0aW9uLCRwYXJhbXNbJ2l0ZW1faWQnXSk7CiAgICAgICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZV9maWx0ZXJzJywxKTsgICAgICAgIAkKICAgICAgICAJfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGVfZmlsdGVycycsMCk7CiAgICAgICAgCX0KICAgICAgICAgICAgCQogICAgICAgICAgICAkZGF0ZUljb24gPSAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sicm9vdF91cmwiXS4nL21vZHVsZXMvQXJjaGl2ZXIvaW1hZ2VzL3NvcnRfYXNjLmdpZiIgY2xhc3M9InN5c3RlbWljb24iIGFsdD0iJy4kdGhpcy0+TGFuZygnc29ydF9hc2MnKS4nIiB0aXRsZT0iJy4kdGhpcy0+TGFuZygnc29ydF9hc2MnKS4nIi8+JzsKICAgICAgICAgICAgJG5hbWVJY29uID0gJGRhdGVJY29uOwogICAgICAgICAgICAkcmV2SWNvbiA9ICRkYXRlSWNvbjsKICAgICAgICAgICAgJHR5cGVJY29uID0gJGRhdGVJY29uOwogICAgICAgICAgICAkZGF0ZVNvcnREaXIgPSAnQVNDJzsKICAgICAgICAgICAgJHR5cGVTb3J0RGlyID0gJ0FTQyc7CiAgICAgICAgICAgICRuYW1lU29ydERpciA9ICdBU0MnOwogICAgICAgIAkkcmV2U29ydERpciA9ICdBU0MnOwogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWVfc29ydCcsJycpOwogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3R5cGVfc29ydCcsJycpOwogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RhdGVfc29ydCcsJycpOwogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Jldl9zb3J0JywnJyk7CgogICAgICAgIGlmICgkcGFyYW1zWydzb3J0X29yZGVyJ10gPT0gJ2RhdGUnICkKICAgICAgICAgICAgewogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RhdGVfc29ydCcsJyBjbGFzcz0iYWN0aXZlIicpOwogICAgICAgICAgICAkcXVlcnkgLj0gJyBPUkRFUiBieSBhaS5hcmNoaXZlX2RhdGUgJy4kcGFyYW1zWydzb3J0X2RpciddLicsIGFpLml0ZW1fdHlwZSwgYWkuaXRlbV9uYW1lJzsKICAgICAgICAgICAgaWYgKCRwYXJhbXNbJ3NvcnRfZGlyJ10gPT0gJ0RFU0MnKQogICAgICAgICAgICAJewogICAgICAgICAgICAJJGRhdGVJY29uID0gJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbInJvb3RfdXJsIl0uJy9tb2R1bGVzL0FyY2hpdmVyL2ltYWdlcy9zb3J0X2Rlc2MuZ2lmIiBjbGFzcz0ic3lzdGVtaWNvbiIgYWx0PSInLiR0aGlzLT5MYW5nKCdzb3J0X2Rlc2MnKS4nIiB0aXRsZT0iJy4kdGhpcy0+TGFuZygnc29ydF9kZXNjJykuJyIvPic7CiAgICAgICAgICAgIAkkZGF0ZVNvcnREaXIgPSAnQVNDJzsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAJewogICAgICAgICAgICAJJGRhdGVTb3J0RGlyID0gJ0RFU0MnOwogICAgICAgICAgICAJfQogICAgICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoJHBhcmFtc1snc29ydF9vcmRlciddID09ICduYW1lJykKICAgICAgICAgICAgewogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWVfc29ydCcsJyBjbGFzcz0iYWN0aXZlIicpOwogICAgICAgICAgICAkcXVlcnkgLj0gJyBPUkRFUiBieSBsb3dlcihhaS5pdGVtX25hbWUpICcuJHBhcmFtc1snc29ydF9kaXInXS4nLCBhaS5pdGVtX3R5cGUsIGFpLmFyY2hpdmVfZGF0ZSc7CiAgICAgICAgICAgIGlmICgkcGFyYW1zWydzb3J0X2RpciddID09ICdERVNDJykKICAgICAgICAgICAgCXsKICAgICAgICAgICAgCSRuYW1lSWNvbiA9ICc8aW1nIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWyJyb290X3VybCJdLicvbW9kdWxlcy9BcmNoaXZlci9pbWFnZXMvc29ydF9kZXNjLmdpZiIgY2xhc3M9InN5c3RlbWljb24iIGFsdD0iJy4kdGhpcy0+TGFuZygnc29ydF9kZXNjJykuJyIgdGl0bGU9IicuJHRoaXMtPkxhbmcoJ3NvcnRfZGVzYycpLiciLz4nOwogICAgICAgICAgICAJJG5hbWVTb3J0RGlyID0gJ0FTQyc7CiAgICAgICAgICAgIAl9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgCXsKICAgICAgICAgICAgCSRuYW1lU29ydERpciA9ICdERVNDJzsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKCRwYXJhbXNbJ3NvcnRfb3JkZXInXSA9PSAncmV2aXNpb24nKQogICAgICAgIAl7CiAgICAgICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmV2X3NvcnQnLCcgY2xhc3M9ImFjdGl2ZSInKTsKICAgICAgICAJJHF1ZXJ5IC49ICcgT1JERVIgYnkgYWkucmV2aXNpb25fbnVtYmVyICcuJHBhcmFtc1snc29ydF9kaXInXS4nLCBsb3dlcihhaS5pdGVtX25hbWUpLCBhaS5pdGVtX3R5cGUnOwogICAgICAgICAgICBpZiAoJHBhcmFtc1snc29ydF9kaXInXSA9PSAnREVTQycpCiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAkkcmV2SWNvbiA9ICc8aW1nIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWyJyb290X3VybCJdLicvbW9kdWxlcy9BcmNoaXZlci9pbWFnZXMvc29ydF9kZXNjLmdpZiIgY2xhc3M9InN5c3RlbWljb24iIGFsdD0iJy4kdGhpcy0+TGFuZygnc29ydF9kZXNjJykuJyIgdGl0bGU9IicuJHRoaXMtPkxhbmcoJ3NvcnRfZGVzYycpLiciLz4nOwogICAgICAgICAgICAJJHJldlNvcnREaXIgPSAnQVNDJzsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAJewogICAgICAgICAgICAJJHJldlNvcnREaXIgPSAnREVTQyc7CiAgICAgICAgICAgIAl9CiAgICAgICAgCX0KICAgICAgICBlbHNlIGlmICgkcGFyYW1zWydzb3J0X29yZGVyJ10gPT0gJ3R5cGUnKQogICAgICAgIAl7CiAgICAgICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbigndHlwZV9zb3J0JywnIGNsYXNzPSJhY3RpdmUiJyk7CiAgICAgICAgCSRxdWVyeSAuPSAnIE9SREVSIGJ5IGFpLml0ZW1fdHlwZSAnLiRwYXJhbXNbJ3NvcnRfZGlyJ10uJywgbG93ZXIoYWkuaXRlbV9uYW1lKSwgYWkuYXJjaGl2ZV9kYXRlJzsKICAgICAgICAgICAgaWYgKCRwYXJhbXNbJ3NvcnRfZGlyJ10gPT0gJ0RFU0MnKQogICAgICAgICAgICAJewogICAgICAgICAgICAJJHR5cGVJY29uID0gJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbInJvb3RfdXJsIl0uJy9tb2R1bGVzL0FyY2hpdmVyL2ltYWdlcy9zb3J0X2Rlc2MuZ2lmIiBjbGFzcz0ic3lzdGVtaWNvbiIgYWx0PSInLiR0aGlzLT5MYW5nKCdzb3J0X2Rlc2MnKS4nIiB0aXRsZT0iJy4kdGhpcy0+TGFuZygnc29ydF9kZXNjJykuJyIvPic7CiAgICAgICAgICAgIAkkdHlwZVNvcnREaXIgPSAnQVNDJzsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAJewogICAgICAgICAgICAJJHR5cGVTb3J0RGlyID0gJ0RFU0MnOwogICAgICAgICAgICAJfQogICAgICAgIAl9CQkJCiAgICAgICAgCQogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+U2VsZWN0TGltaXQoJHF1ZXJ5LCRzdGVwLCRwYXJhbXNbJ3N0YXJ0J10sJHJlc3RyaWN0aW9uKTsKCiAgICAgICAgJHJvd2NsYXNzID0gJ3JvdzEnOwogICAgICAgICRkYXRlRm10ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RhdGVfZm9ybWF0JywnbCwgaiBGIFkgSDppJyk7CgogICAgICAgIHdoaWxlICgkZGJyZXN1bHQgIT09IGZhbHNlICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgewoJICAgICAgICRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCgkgICAgICAgJG9uZXJvdy0+aWQgPSAkcm93WydhcmNoaXZlX2lkJ107CgkgICAgICAgJG9uZXJvdy0+aXRlbV9pZCA9ICRyb3dbJ2l0ZW1faWQnXTsKCSAgICAgICAkb25lcm93LT5uYW1lID0gJHJvd1snaXRlbV9uYW1lJ107CgoJICAgICAgICRvbmVyb3ctPnR5cGUgPSAkcm93Wyd0eXBlX25hbWUnXTsKCSAgICAgICAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCSAgICAgICAkb25lcm93LT5yZXZpc2lvbiA9ICRyb3dbJ3JldmlzaW9uX251bWJlciddOwoJICAgICAgICRvbmVyb3ctPmRhdGUgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydhcmNoaXZlX2RhdGUnXSkpOwoKCSAgICAgICAkb25lcm93LT5yZXN0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ3Jlc3RvcmUnLCAkcmV0dXJuaWQsCgkgICAgICAgCQknPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sicm9vdF91cmwiXS4nL21vZHVsZXMvQXJjaGl2ZXIvaW1hZ2VzL3Jlc3RvcmUuZ2lmIiBjbGFzcz0ic3lzdGVtaWNvbiIgYWx0PSInLiR0aGlzLT5MYW5nKCdyZXN0b3JlJykuJyIgdGl0bGU9IicuJHRoaXMtPkxhbmcoJ3Jlc3RvcmUnKS4nIi8+JywKCSAgICAgICAJCSAJYXJyYXkoJ2FyY2hpdmVfaWQnPT4kcm93WydhcmNoaXZlX2lkJ10sICdzdGFydCc9PiRwYXJhbXNbJ3N0YXJ0J10sCgkgICAgICAgCQkgCQkndHlwZV9maWx0ZXInPT4kcGFyYW1zWyd0eXBlX2ZpbHRlciddLCd0eXBlX2lkJz0+JHJvd1snaXRlbV90eXBlJ10sJ3NvcnRfb3JkZXInPT4kcGFyYW1zWydzb3J0X29yZGVyJ10sJ2l0ZW1faWQnPT4kcm93WydpdGVtX2lkJ10sJ3JldmlzaW9uX251bWJlcic9PiRyb3dbJ3JldmlzaW9uX251bWJlciddKSwkdGhpcy0+TGFuZygnc3VyZXJlc3RvcmUnLCRyb3dbJ3JldmlzaW9uX251bWJlciddKSk7CgkgICAgICAgaWYgKCRyb3dbJ2l0ZW1fdHlwZSddID09ICR0aGlzLT5UWVBFX0NPTlRFTlQpCgkgICAgICAgCQl7CgkgICAgICAgCQkkb25lcm93LT52aWV3bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ3ByZXZpZXcnLCAkcmV0dXJuaWQsCgkgICAgICAgCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3ZpZXcuZ2lmJywKCSAgICAgICAJCQkkdGhpcy0+TGFuZygncHJldmlldycpLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkgICAgICAgCQkgCWFycmF5KCdhcmNoaXZlX2lkJz0+JHJvd1snYXJjaGl2ZV9pZCddLCAnc3RhcnQnPT4kcGFyYW1zWydzdGFydCddLAoJICAgICAgIAkJIAkJJ3R5cGVfZmlsdGVyJz0+JHBhcmFtc1sndHlwZV9maWx0ZXInXSwndHlwZV9pZCc9PiRyb3dbJ2l0ZW1fdHlwZSddLCdzb3J0X29yZGVyJz0+JHBhcmFtc1snc29ydF9vcmRlciddLCdpdGVtX2lkJz0+JHJvd1snaXRlbV9pZCddLCdwcmV2aWV3Jz0+dHJ1ZSwncmV2aXNpb25fbnVtYmVyJz0+JHJvd1sncmV2aXNpb25fbnVtYmVyJ10pKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJG9uZXJvdy0+dmlld2xpbmsgPSAnJzsKCQkJCX0KCSAgICAgICBhcnJheV9wdXNoKCRlbnRyeWFycmF5LCAkb25lcm93KTsKCgkgICAgICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHBhcmFtc1snc3RhcnQnXSA+PSAkc3RlcCkKICAgICAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ByZXZfcGFnZScsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2xpc3RpdGVtcycsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ3ByZXYnKSwgYXJyYXkoJ3N0YXJ0Jz0+KCRwYXJhbXNbJ3N0YXJ0J10gLSAkc3RlcCksJ3R5cGVfZmlsdGVyJz0+JHBhcmFtc1sndHlwZV9maWx0ZXInXSwnc29ydF9vcmRlcic9PiRwYXJhbXNbJ3NvcnRfb3JkZXInXSwnaXRlbV9pZCc9PiRwYXJhbXNbJ2l0ZW1faWQnXSkpKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ByZXZfcGFnZScsJycpOwogICAgICAgIAl9CiAgICAgICAgaWYgKCRwYXJhbXNbJ3N0YXJ0J10gKyAkc3RlcCA8ICR0b3RhbCkKICAgICAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25leHRfcGFnZScsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2xpc3RpdGVtcycsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ25leHQnKSwgYXJyYXkoJ3N0YXJ0Jz0+KCRwYXJhbXNbJ3N0YXJ0J10gKyAkc3RlcCksJ3R5cGVfZmlsdGVyJz0+JHBhcmFtc1sndHlwZV9maWx0ZXInXSwnc29ydF9vcmRlcic9PiRwYXJhbXNbJ3NvcnRfb3JkZXInXSwnaXRlbV9pZCc9PiRwYXJhbXNbJ2l0ZW1faWQnXSkpKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25leHRfcGFnZScsJycpOwogICAgICAgIAl9CgogICAgICAgIGlmIChjZWlsKCR0b3RhbC8kc3RlcCkgPiAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRjdXJwZyA9IGZsb29yKCRwYXJhbXNbJ3N0YXJ0J10vJHN0ZXApICsgMTsKICAgICAgICAgICAgJGxpbmtzdHIgPSAnJzsKICAgICAgICAgICAgJGZpcnN0ID0gMTsKICAgICAgICAgICAgZm9yICgkaT0wOyRpPCR0b3RhbDskaSs9JHN0ZXApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkdGhpc1BnID0gZmxvb3IoJGkvJHN0ZXApICsgMTsKICAgICAgICAgICAgICAgIGlmICgkZmlyc3QpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRmaXJzdCA9IDA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkbGlua3N0ciAuPSAnIDogJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoJGkgPT0gJHBhcmFtc1snc3RhcnQnXSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJGxpbmtzdHIgLj0gJ1snLiR0aGlzUGcuJ10nOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJGxpbmtzdHIgLj0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbGlzdGl0ZW1zJywgJHJldHVybmlkLCAkdGhpc1BnLCBhcnJheSgnc3RhcnQnPT4kaSwndHlwZV9maWx0ZXInPT4kcGFyYW1zWyd0eXBlX2ZpbHRlciddLCdzb3J0X29yZGVyJz0+JHBhcmFtc1snc29ydF9vcmRlciddLCdpdGVtX2lkJz0+JHBhcmFtc1snaXRlbV9pZCddKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3BhZ2Vfbm8nLCAnUGFnZSAnLiRjdXJwZy4nIG9mICcuY2VpbCgkdG90YWwvJHN0ZXApKTsKICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZigncGFnZV9saW5rcycsICRsaW5rc3RyKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYWdlX25vJywgJycpOwogICAgICAgIAl9CiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjb2x1bW5fbmFtZScsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKICAgICAgICAJJ2xpc3RpdGVtcycsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdjb2x1bW5fbmFtZScpLiRuYW1lSWNvbixhcnJheSgnc29ydF9vcmRlcic9PiduYW1lJywnc3RhcnQnPT4kcGFyYW1zWydzdGFydCddLCd0eXBlX2ZpbHRlcic9PiRwYXJhbXNbJ3R5cGVfZmlsdGVyJ10sJ2l0ZW1faWQnPT4kcGFyYW1zWydpdGVtX2lkJ10sJ3NvcnRfZGlyJz0+JG5hbWVTb3J0RGlyKSkpOwogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignY29sdW1uX3R5cGUnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsCiAgICAgICAgCSdsaXN0aXRlbXMnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnY29sdW1uX3R5cGUnKS4kdHlwZUljb24sYXJyYXkoJ3NvcnRfb3JkZXInPT4ndHlwZScsJ3N0YXJ0Jz0+JHBhcmFtc1snc3RhcnQnXSwndHlwZV9maWx0ZXInPT4kcGFyYW1zWyd0eXBlX2ZpbHRlciddLCdpdGVtX2lkJz0+JHBhcmFtc1snaXRlbV9pZCddLCdzb3J0X2Rpcic9PiR0eXBlU29ydERpcikpKTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvbHVtbl9yZXZpc2lvbicsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKICAgICAgICAJJ2xpc3RpdGVtcycsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdjb2x1bW5fcmV2aXNpb24nKS4kcmV2SWNvbixhcnJheSgnc29ydF9vcmRlcic9PidyZXZpc2lvbicsJ3N0YXJ0Jz0+JHBhcmFtc1snc3RhcnQnXSwndHlwZV9maWx0ZXInPT4kcGFyYW1zWyd0eXBlX2ZpbHRlciddLCdpdGVtX2lkJz0+JHBhcmFtc1snaXRlbV9pZCddLCdzb3J0X2Rpcic9PiRyZXZTb3J0RGlyKSkpOwogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignY29sdW1uX2RhdGUnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsCiAgICAgICAgCSdsaXN0aXRlbXMnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnY29sdW1uX2RhdGUnKS4kZGF0ZUljb24sYXJyYXkoJ3NvcnRfb3JkZXInPT4nZGF0ZScsJ3N0YXJ0Jz0+JHBhcmFtc1snc3RhcnQnXSwndHlwZV9maWx0ZXInPT4kcGFyYW1zWyd0eXBlX2ZpbHRlciddLCdpdGVtX2lkJz0+JHBhcmFtc1snaXRlbV9pZCddLCdzb3J0X2Rpcic9PiRkYXRlU29ydERpcikpKTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvbHVtbl9hY3Rpb24nLCAkdGhpcy0+TGFuZygnY29sdW1uX2FjdGlvbicpKTsKCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWx0ZXJfdHlwZScsJHRoaXMtPkxhbmcoJ3RpdGxlX2ZpbHRlcl90eXBlJykpOwoKCQkkZmlsdGVycyA9IGFycmF5KCR0aGlzLT5MYW5nKCd0aXRsZV9maWx0ZXJfbm9uZScpPT4tMSwKCQkJCSR0aGlzLT5MYW5nKCd0aXRsZV9maWx0ZXJfY29udGVudCcpPT4kdGhpcy0+VFlQRV9DT05URU5ULAoJCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX2ZpbHRlcl9odG1sYmxvYicpPT4kdGhpcy0+VFlQRV9IVE1MQkxPQiwKCQkJCSR0aGlzLT5MYW5nKCd0aXRsZV9maWx0ZXJfc3R5bGVzaGVldCcpPT4kdGhpcy0+VFlQRV9TVFlMRVNIRUVULAoJCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX2ZpbHRlcl90ZW1wbGF0ZScpPT4kdGhpcy0+VFlQRV9URU1QTEFURSk7CiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWx0ZXJfdHlwZScsCiAgICAgICAgCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3R5cGVfZmlsdGVyJywgJGZpbHRlcnMsCiAgICAgICAgCQkgLTEsICRwYXJhbXNbJ3R5cGVfZmlsdGVyJ10sIm9uY2hhbmdlPSd0aGlzLmZvcm0uc3VibWl0KCknIikpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywKCQkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdsaXN0aXRlbXMnLCAkcmV0dXJuaWQpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsCgkJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAnRmlsdGVyJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3N0YXJ0JywkcGFyYW1zWydzdGFydCddKS4KCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3NvcnRfb3JkZXInLCRwYXJhbXNbJ3NvcnRfb3JkZXInXSkuCgkJCSR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2l0ZW1faWQnLCRwYXJhbXNbJ2l0ZW1faWQnXSkpOwoJCQoKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdpdGVtcycsICRlbnRyeWFycmF5KTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ3ByZXZpZXcnXSAmJiAkcGFyYW1zWyd0eXBlX2lkJ10gPT0gJHRoaXMtPlRZUEVfQ09OVEVOVCkKICAgICAgICAJewoJCQkkY29udGVudG9iaiA9ICR0aGlzLT5yZXRyaWV2ZVNlcmlhbGl6ZWRPYmplY3QoJHBhcmFtc1snYXJjaGl2ZV9pZCddKTsJCQkKICAgICAgIAkJJGRhdGEgPSBhcnJheSgpOwoJCQkkZGF0YVsiY29udGVudF9pZCJdID0gJGNvbnRlbnRvYmotPklkKCk7CgkJCSRkYXRhWyJ0aXRsZSJdID0gJGNvbnRlbnRvYmotPk5hbWUoKTsKCQkJJGRhdGFbIm1lbnV0ZXh0Il0gPSAkY29udGVudG9iai0+TWVudVRleHQoKTsKCQkJJGRhdGFbImNvbnRlbnQiXSA9ICRjb250ZW50b2JqLT5TaG93KCk7CgkJCSRkYXRhWyJ0ZW1wbGF0ZV9pZCJdID0gJGNvbnRlbnRvYmotPlRlbXBsYXRlSWQoKTsKCQkJJGRhdGFbImhpZXJhcmNoeSJdID0gJGNvbnRlbnRvYmotPkhpZXJhcmNoeSgpOwoJCQkJCgkJCSR0ZW1wbGF0ZW9iaiA9IFRlbXBsYXRlT3BlcmF0aW9uczo6TG9hZFRlbXBsYXRlQnlJZCgkY29udGVudG9iai0+VGVtcGxhdGVJZCgpKTsKCQkJJGRhdGFbJ3RlbXBsYXRlJ10gPSAkdGVtcGxhdGVvYmotPmNvbnRlbnQ7CgkKCQkJJHN0eWxlc2hlZXRvYmogPSBnZXRfc3R5bGVzaGVldCgkY29udGVudG9iai0+VGVtcGxhdGVJZCgpKTsKCQkJJGRhdGFbJ2VuY29kaW5nJ10gPSAkc3R5bGVzaGVldG9ialsnZW5jb2RpbmcnXTsKCQkJJGRhdGFbJ3N0eWxlc2hlZXQnXSA9ICRzdHlsZXNoZWV0b2JqWydzdHlsZXNoZWV0J107CgoJCQkkdG1wZm5hbWUgPSAnJzsKCQkJaWYgKGlzX3dyaXRhYmxlKCRjb25maWdbInByZXZpZXdzX3BhdGgiXSkpCgkJCXsKCQkJCSR0bXBmbmFtZSA9IHRlbXBuYW0oJGNvbmZpZ1sicHJldmlld3NfcGF0aCJdLCAiY21zcHJldmlldyIpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJHRtcGZuYW1lID0gdGVtcG5hbShUTVBfQ0FDSEVfTE9DQVRJT04sICJjbXNwcmV2aWV3Iik7CgkJCX0KCQkJJGhhbmRsZSA9IGZvcGVuKCR0bXBmbmFtZSwgInciKTsKCQkJZndyaXRlKCRoYW5kbGUsIHNlcmlhbGl6ZSgkZGF0YSkpOwoJCQlmY2xvc2UoJGhhbmRsZSk7CiAgICAgICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbigncHJldmlld19maWxlJywKICAgICAgICAJCSRjb25maWdbInJvb3RfdXJsIl0gLicvcHJldmlldy5waHA/dG1wZmlsZT0nLnVybGVuY29kZShiYXNlbmFtZSgkdG1wZm5hbWUpKSk7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfcHJldmlldycsICR0aGlzLT5MYW5nKCd0aXRsZV9wcmV2aWV3JywkcGFyYW1zWydyZXZpc2lvbl9udW1iZXInXSkpOwogIAogICAgICAgIAl9CgogICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfc2VjdGlvbicsICR0aGlzLT5MYW5nKCdsaXN0aXRlbXMnKSk7CiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdsaXN0YXJjaGl2ZXMudHBsJyk7CgkKCX0KCglmdW5jdGlvbiBEaXNwbGF5QXJjaGl2ZXNTaW1wbGUoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkLCAkbWVzc2FnZT0nJykKCXsKICAgIAlnbG9iYWwgJGdDbXM7CiAgICAgICAgJGRiID0gJiR0aGlzLT5jbXMtPmRiOwoKICAgICAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7CiAgICAgICAgJHRvdGFsID0gMDsKICAgICAgICAkc3RlcCA9IDI1OwogICAgICAgIGlmICAoIWlzc2V0KCRwYXJhbXNbJ3N0YXJ0J10pKQogICAgICAgIAl7CiAgICAgICAgCSRwYXJhbXNbJ3N0YXJ0J10gPSAwOwogICAgICAgIAl9CiAgICAgICAgaWYgKCFpc3NldCgkcGFyYW1zWydzb3J0X29yZGVyJ10pKQogICAgICAgIAl7CiAgICAgICAgCSRwYXJhbXNbJ3NvcnRfb3JkZXInXSA9ICduYW1lJzsKICAgICAgICAJfQogICAgICAgIGlmICghaXNzZXQoJHBhcmFtc1snc29ydF9kaXInXSkpCiAgICAgICAgCXsKICAgICAgICAJJHBhcmFtc1snc29ydF9kaXInXSA9ICdBU0MnOwogICAgICAgIAl9CiAgCiAgICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCBjb3VudChkaXN0aW5jdCBpdGVtX2lkKSBhcyB0b3RhbCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkibW9kdWxlX2FyY2hpdmVyX2l0ZW1faW5mbyI7CgkJJHJlc3RyaWN0aW9uID0gYXJyYXkoKTsKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1sndHlwZV9maWx0ZXInXSkgJiYgJHBhcmFtc1sndHlwZV9maWx0ZXInXSAhPSAtMSkKICAgICAgICAJewogICAgICAgIAkJJHF1ZXJ5IC49ICIgV0hFUkUgaXRlbV90eXBlPT8iOwogICAgICAgIAkJJHJlc3RyaWN0aW9uWzBdID0gJHBhcmFtc1sndHlwZV9maWx0ZXInXTsKICAgICAgICAJfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkkcGFyYW1zWyd0eXBlX2ZpbHRlciddID0gLTE7CiAgICAgICAgCX0KICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkdldE9uZSgkcXVlcnksICRyZXN0cmljdGlvbik7CiAgICAgICAgaWYgKCRkYnJlc3VsdCAhPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHRvdGFsPSRkYnJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkdG90YWw9IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgJHF1ZXJ5ID0gInNlbGVjdCBkaXN0aW5jdCBhaS5pdGVtX25hbWUsIGFpLml0ZW1faWQsIGFpLml0ZW1fdHlwZSwgdC5uYW1lIGFzIHR5cGVfbmFtZSwgIi4KICAgICAgICAJIiBsb3dlcihhaS5pdGVtX25hbWUpIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9hcmNoaXZlcl9pdGVtX2luZm8gYWksICIuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkibW9kdWxlX2FyY2hpdmVyX2l0ZW1fdHlwZXMgdCBXSEVSRSBhaS5pdGVtX3R5cGUgPSB0LnR5cGVfaWQiOwoJCSRyZXN0cmljdGlvbiA9IGFycmF5KCk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ3R5cGVfZmlsdGVyJ10gIT0gLTEpCiAgICAgICAgCXsKICAgICAgICAJCSRxdWVyeSAuPSAiIEFORCBhaS5pdGVtX3R5cGU9PyI7CiAgICAgICAgCQlhcnJheV9wdXNoKCRyZXN0cmljdGlvbiwkcGFyYW1zWyd0eXBlX2ZpbHRlciddKTsKICAgICAgICAJfQoKICAgICAgICAgICAgJG5hbWVJY29uID0gJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbInJvb3RfdXJsIl0uJy9tb2R1bGVzL0FyY2hpdmVyL2ltYWdlcy9zb3J0X2FzYy5naWYiIGNsYXNzPSJzeXN0ZW1pY29uIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ3NvcnRfYXNjJykuJyIgdGl0bGU9IicuJHRoaXMtPkxhbmcoJ3NvcnRfYXNjJykuJyIvPic7CiAgICAgICAgICAgICR0eXBlSWNvbiA9ICRuYW1lSWNvbjsKICAgICAgICAgICAgJHR5cGVTb3J0RGlyID0gJ0FTQyc7CiAgICAgICAgICAgICRuYW1lU29ydERpciA9ICdBU0MnOwogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWVfc29ydCcsJycpOwogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3R5cGVfc29ydCcsJycpOwoKCQkgaWYgKCRwYXJhbXNbJ3NvcnRfb3JkZXInXSA9PSAnbmFtZScpCiAgICAgICAgICAgIHsKICAgICAgICAJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduYW1lX3NvcnQnLCcgY2xhc3M9ImFjdGl2ZSInKTsKICAgICAgICAgICAgJHF1ZXJ5IC49ICcgT1JERVIgYnkgbG93ZXIoYWkuaXRlbV9uYW1lKSAnLiRwYXJhbXNbJ3NvcnRfZGlyJ10uJywgYWkuaXRlbV90eXBlJzsKICAgICAgICAgICAgaWYgKCRwYXJhbXNbJ3NvcnRfZGlyJ10gPT0gJ0RFU0MnKQogICAgICAgICAgICAJewogICAgICAgICAgICAJJG5hbWVJY29uID0gJzxpbWcgc3JjPSInLiRnQ21zLT5jb25maWdbInJvb3RfdXJsIl0uJy9tb2R1bGVzL0FyY2hpdmVyL2ltYWdlcy9zb3J0X2Rlc2MuZ2lmIiBjbGFzcz0ic3lzdGVtaWNvbiIgYWx0PSInLiR0aGlzLT5MYW5nKCdzb3J0X2Rlc2MnKS4nIiB0aXRsZT0iJy4kdGhpcy0+TGFuZygnc29ydF9kZXNjJykuJyIvPic7CiAgICAgICAgICAgIAkkbmFtZVNvcnREaXIgPSAnQVNDJzsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAJewogICAgICAgICAgICAJJG5hbWVTb3J0RGlyID0gJ0RFU0MnOwogICAgICAgICAgICAJfQogICAgICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoJHBhcmFtc1snc29ydF9vcmRlciddID09ICd0eXBlJykKICAgICAgICAJewogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3R5cGVfc29ydCcsJyBjbGFzcz0iYWN0aXZlIicpOwogICAgICAgIAkkcXVlcnkgLj0gJyBPUkRFUiBieSBhaS5pdGVtX3R5cGUgJy4kcGFyYW1zWydzb3J0X2RpciddLicsIGxvd2VyKGFpLml0ZW1fbmFtZSknOwogICAgICAgICAgICBpZiAoJHBhcmFtc1snc29ydF9kaXInXSA9PSAnREVTQycpCiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAkkdHlwZUljb24gPSAnPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sicm9vdF91cmwiXS4nL21vZHVsZXMvQXJjaGl2ZXIvaW1hZ2VzL3NvcnRfZGVzYy5naWYiIGNsYXNzPSJzeXN0ZW1pY29uIiBhbHQ9IicuJHRoaXMtPkxhbmcoJ3NvcnRfZGVzYycpLiciIHRpdGxlPSInLiR0aGlzLT5MYW5nKCdzb3J0X2Rlc2MnKS4nIi8+JzsKICAgICAgICAgICAgCSR0eXBlU29ydERpciA9ICdBU0MnOwogICAgICAgICAgICAJfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAkkdHlwZVNvcnREaXIgPSAnREVTQyc7CiAgICAgICAgICAgIAl9CiAgICAgICAgCX0JCQkKCiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksJHN0ZXAsJHBhcmFtc1snc3RhcnQnXSwkcmVzdHJpY3Rpb24pOwoKICAgICAgICAkcm93Y2xhc3MgPSAncm93MSc7CgogICAgICAgIHdoaWxlICgkZGJyZXN1bHQgIT09IGZhbHNlICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCiAgICAgICAgewoJICAgICAgICRvbmVyb3cgPSBuZXcgc3RkQ2xhc3MoKTsKCgkgICAgICAgJG9uZXJvdy0+aWQgPSAkcm93WydpdGVtX2lkJ107CgkgICAgICAgJG9uZXJvdy0+bmFtZSA9ICRyb3dbJ2l0ZW1fbmFtZSddOwoJICAgICAgICRvbmVyb3ctPm5hbWVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbGlzdGl0ZW1zJywgJHJldHVybmlkLCcnLGFycmF5KCdpdGVtX2lkJz0+JHJvd1snaXRlbV9pZCddLCAnc3RhcnQnPT4kcGFyYW1zWydzdGFydCddLCdzb3J0X29yZGVyJz0+J2RhdGUnLCdzb3J0X2Rpcic9PidERVNDJywndHlwZV9maWx0ZXInPT4kcGFyYW1zWyd0eXBlX2ZpbHRlciddKSwnJyx0cnVlKTsKCgkgICAgICAgJG9uZXJvdy0+dHlwZSA9ICRyb3dbJ3R5cGVfbmFtZSddOwoJICAgICAgICRvbmVyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoKCSAgICAgICBhcnJheV9wdXNoKCRlbnRyeWFycmF5LCAkb25lcm93KTsKCgkgICAgICAgKCRyb3djbGFzcz09InJvdzEiPyRyb3djbGFzcz0icm93MiI6JHJvd2NsYXNzPSJyb3cxIik7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHBhcmFtc1snc3RhcnQnXSA+PSAkc3RlcCkKICAgICAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3ByZXZfcGFnZScsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ3NpbXBsZWxpc3QnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdwcmV2JyksIGFycmF5KCdzdGFydCc9PigkcGFyYW1zWydzdGFydCddIC0gJHN0ZXApLCd0eXBlX2ZpbHRlcic9PiRwYXJhbXNbJ3R5cGVfZmlsdGVyJ10sJ3NvcnRfb3JkZXInPT4kcGFyYW1zWydzb3J0X29yZGVyJ10pKSk7CiAgICAgICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgCXsKICAgICAgICAJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcmV2X3BhZ2UnLCcnKTsKICAgICAgICAJfQoKICAgICAgICBpZiAoJHBhcmFtc1snc3RhcnQnXSArICRzdGVwIDwgJHRvdGFsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbmV4dF9wYWdlJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnc2ltcGxlbGlzdCcsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ25leHQnKSwgYXJyYXkoJ3N0YXJ0Jz0+KCRwYXJhbXNbJ3N0YXJ0J10gKyAkc3RlcCksJ3R5cGVfZmlsdGVyJz0+JHBhcmFtc1sndHlwZV9maWx0ZXInXSwnc29ydF9vcmRlcic9PiRwYXJhbXNbJ3NvcnRfb3JkZXInXSkpKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25leHRfcGFnZScsJycpOwogICAgICAgIAl9CiAgICAgICAgaWYgKGNlaWwoJHRvdGFsLyRzdGVwKSA+IDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJGN1cnBnID0gZmxvb3IoJHBhcmFtc1snc3RhcnQnXS8kc3RlcCkgKyAxOwogICAgICAgICAgICAkbGlua3N0ciA9ICcnOwogICAgICAgICAgICAkZmlyc3QgPSAxOwogICAgICAgICAgICBmb3IgKCRpPTA7JGk8JHRvdGFsOyRpKz0kc3RlcCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICR0aGlzUGcgPSBmbG9vcigkaS8kc3RlcCkgKyAxOwogICAgICAgICAgICAgICAgaWYgKCRmaXJzdCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJGZpcnN0ID0gMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRsaW5rc3RyIC49ICcgOiAnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgkaSA9PSAkcGFyYW1zWydzdGFydCddKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkbGlua3N0ciAuPSAnWycuJHRoaXNQZy4nXSc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkbGlua3N0ciAuPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdzaW1wbGVsaXN0JywgJHJldHVybmlkLCAkdGhpc1BnLCBhcnJheSgnc3RhcnQnPT4kaSwndHlwZV9maWx0ZXInPT4kcGFyYW1zWyd0eXBlX2ZpbHRlciddLCdzb3J0X29yZGVyJz0+JHBhcmFtc1snc29ydF9vcmRlciddKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3BhZ2Vfbm8nLCAnUGFnZSAnLiRjdXJwZy4nIG9mICcuY2VpbCgkdG90YWwvJHN0ZXApKTsKICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZigncGFnZV9saW5rcycsICRsaW5rc3RyKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwYWdlX25vJywgJycpOwogICAgICAgIAl9CiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjb2x1bW5fbmFtZScsICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKICAgICAgICAJJ3NpbXBsZWxpc3QnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnY29sdW1uX25hbWUnKS4kbmFtZUljb24sYXJyYXkoJ3NvcnRfb3JkZXInPT4nbmFtZScsJ3N0YXJ0Jz0+JHBhcmFtc1snc3RhcnQnXSwndHlwZV9maWx0ZXInPT4kcGFyYW1zWyd0eXBlX2ZpbHRlciddLCdzb3J0X2Rpcic9PiRuYW1lU29ydERpcikpKTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvbHVtbl90eXBlJywgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAogICAgICAgIAknc2ltcGxlbGlzdCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdjb2x1bW5fdHlwZScpLiR0eXBlSWNvbixhcnJheSgnc29ydF9vcmRlcic9Pid0eXBlJywnc3RhcnQnPT4kcGFyYW1zWydzdGFydCddLCd0eXBlX2ZpbHRlcic9PiRwYXJhbXNbJ3R5cGVfZmlsdGVyJ10sJ3NvcnRfZGlyJz0+JHR5cGVTb3J0RGlyKSkpOwoKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpbHRlcl90eXBlJywkdGhpcy0+TGFuZygndGl0bGVfZmlsdGVyX3R5cGUnKSk7CgoJCSRmaWx0ZXJzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3RpdGxlX2ZpbHRlcl9ub25lJyk9Pi0xLAoJCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX2ZpbHRlcl9jb250ZW50Jyk9PiR0aGlzLT5UWVBFX0NPTlRFTlQsCgkJCQkkdGhpcy0+TGFuZygndGl0bGVfZmlsdGVyX2h0bWxibG9iJyk9PiR0aGlzLT5UWVBFX0hUTUxCTE9CLAoJCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX2ZpbHRlcl9zdHlsZXNoZWV0Jyk9PiR0aGlzLT5UWVBFX1NUWUxFU0hFRVQsCgkJCQkkdGhpcy0+TGFuZygndGl0bGVfZmlsdGVyX3RlbXBsYXRlJyk9PiR0aGlzLT5UWVBFX1RFTVBMQVRFKTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpbHRlcl90eXBlJywKICAgICAgICAJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndHlwZV9maWx0ZXInLCAkZmlsdGVycywKICAgICAgICAJCSAtMSwgJHBhcmFtc1sndHlwZV9maWx0ZXInXSwib25jaGFuZ2U9J3RoaXMuZm9ybS5zdWJtaXQoKSciKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLAoJCQkkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ3NpbXBsZWxpc3QnLCAkcmV0dXJuaWQpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsCgkJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAnRmlsdGVyJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3N0YXJ0JywkcGFyYW1zWydzdGFydCddKS4KCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3NvcnRfb3JkZXInLCRwYXJhbXNbJ3NvcnRfb3JkZXInXSkpOwoJCQoKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdpdGVtcycsICRlbnRyeWFycmF5KTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CiAgICAJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zZWN0aW9uJywgJHRoaXMtPkxhbmcoJ3NpbXBsZWxpc3QnKSk7CiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdsaXN0YXJjaGl2ZXNzaW1wbGUudHBsJyk7CgkKCX0KCgogICAgZnVuY3Rpb24gRGlzcGxheUFkbWluUHJlZnMoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkLCAkbWVzc2FnZT0nJykKICAgIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3NlY3Rpb24nLCAkdGhpcy0+TGFuZygndGl0bGVfYWRtaW5fcHJlZnMnKSk7CgoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywKCQkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdzYXZlX2FkbWluX3ByZWZzJywgJHJldHVybmlkKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJ1N1Ym1pdCcpKTsKCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9wdXJnZV9jb3VudCcsICR0aGlzLT5MYW5nKCd0aXRsZV9wdXJnZV9jb3VudCcpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3B1cmdlX3RpbWUnLCAkdGhpcy0+TGFuZygndGl0bGVfcHVyZ2VfdGltZScpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3B1cmdlX3dhcm5pbmcnLCAkdGhpcy0+TGFuZygndGl0bGVfcHVyZ2Vfd2FybmluZycpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3B1cmdlX3dhcm5pbmcyJywgJHRoaXMtPkxhbmcoJ3RpdGxlX3B1cmdlX3dhcm5pbmcyJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZGF0ZV9mb3JtYXQnLCAkdGhpcy0+TGFuZygndGl0bGVfZGF0ZV9mb3JtYXQnKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkYXRlX2Zvcm1hdF9oZWxwJywgJHRoaXMtPkxhbmcoJ2RhdGVfZm9ybWF0X2hlbHAnKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignbWVzc2FnZScsICRtZXNzYWdlKTsKCgkJJHB1cmdlY291bnQgPSBhcnJheSgkdGhpcy0+TGFuZygndGl0bGVfcHVyZ2VfdW5saW1pdGVkJyk9Pi0xLCAKCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX3B1cmdlXzVfcmV2aXNpb25zJyk9PjUsCgkJCSR0aGlzLT5MYW5nKCd0aXRsZV9wdXJnZV8xMF9yZXZpc2lvbnMnKT0+MTAsCgkJCSR0aGlzLT5MYW5nKCd0aXRsZV9wdXJnZV8yMF9yZXZpc2lvbnMnKT0+MjAsCgkJCSR0aGlzLT5MYW5nKCd0aXRsZV9wdXJnZV81MF9yZXZpc2lvbnMnKT0+NTApOwoKCQkkcHVyZ2V0aW1lID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3RpdGxlX3B1cmdlX2ZvcmV2ZXInKT0+LTEsIAoJCQkkdGhpcy0+TGFuZygndGl0bGVfcHVyZ2VfMV9kYXlzJyk9PjEsCgkJCSR0aGlzLT5MYW5nKCd0aXRsZV9wdXJnZV83X2RheXMnKT0+NywKCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX3B1cmdlXzE0X2RheXMnKT0+MTQsCgkJCSR0aGlzLT5MYW5nKCd0aXRsZV9wdXJnZV8zMF9kYXlzJyk9PjMwLAoJCQkkdGhpcy0+TGFuZygndGl0bGVfcHVyZ2VfOTBfZGF5cycpPT45MCwKCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX3B1cmdlXzE4MF9kYXlzJyk9PjE4MCwKCQkJJHRoaXMtPkxhbmcoJ3RpdGxlX3B1cmdlXzM2NV9kYXlzJyk9PjM2NSk7CgkJCQogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfcHVyZ2VfY291bnQnLAogICAgICAgIAkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdpbnB1dF9wdXJnZV9jb3VudCcsICRwdXJnZWNvdW50LAogICAgICAgIAkJIC0xLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHVyZ2VfY291bnQnLCctMScpKSk7CiAgICAgICAgCQkgCiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kYXRlX2Zvcm1hdCcsCiAgICAgICAgCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9kYXRlX2Zvcm1hdCcsCiAgICAgICAgCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGF0ZV9mb3JtYXQnLCdsLCBqIEYgWSBIOmknKSkpOwoKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3B1cmdlX3RpbWUnLAogICAgICAgIAkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdpbnB1dF9wdXJnZV90aW1lJywgJHB1cmdldGltZSwKICAgICAgICAJCSAtMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3B1cmdlX3RpbWUnLCctMScpKSk7CgogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5wcmVmcy50cGwnKTsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gRGlzcGxheVNuYXBzaG90cygkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogICAgewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfc2VjdGlvbicsICR0aGlzLT5MYW5nKCd0aXRsZV9hZG1pbl9zbmFwcycpKTsKCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLAoJCQkkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJycsICRyZXR1cm5pZCkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywKCQkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsICdTdWJtaXQnKSk7CgoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfc25hcHNob3RfbmFtZScsICR0aGlzLT5MYW5nKCd0aXRsZV9zbmFwc2hvdF9uYW1lJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfc25hcHNob3Rfbm90X3lldCcsICR0aGlzLT5MYW5nKCd0aXRsZV9zbmFwc2hvdF9ub3RfeWV0JykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ21lc3NhZ2UnLCAkbWVzc2FnZSk7CgogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfc25hcHNob3RfbmFtZScsCiAgICAgICAgCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnc25hcHNob3RfbmFtZScsICcnLCAnJykpOwoKICAgICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3NuYXBzaG90cy50cGwnKTsKICAgIH0KICAgIAoKICAgIGZ1bmN0aW9uIFNhdmVBZG1pblByZWZzKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICAgIHsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHVyZ2VfY291bnQnLCBpc3NldCgkcGFyYW1zWydpbnB1dF9wdXJnZV9jb3VudCddKT8kcGFyYW1zWydpbnB1dF9wdXJnZV9jb3VudCddOictMScpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwdXJnZV90aW1lJywgaXNzZXQoJHBhcmFtc1snaW5wdXRfcHVyZ2VfdGltZSddKT8kcGFyYW1zWydpbnB1dF9wdXJnZV90aW1lJ106Jy0xJyk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RhdGVfZm9ybWF0Jyxpc3NldCgkcGFyYW1zWydpbnB1dF9kYXRlX2Zvcm1hdCddKT8kcGFyYW1zWydpbnB1dF9kYXRlX2Zvcm1hdCddOidsLCBqIEYgWSBIOmknKTsKICAgICAgICAKCiAgICAgICAgcmV0dXJuICR0aGlzLT5EaXNwbGF5QWRtaW5QcmVmcygkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpKTsKICAgIH0KCgkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICAgRGlzcGxheU1vZHVsZU91dHB1dCgkaWQsICRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlKQoJICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCgkgICBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgYSBzaW1wbGUgbWV0aG9kIHRvIGRpc3BsYXkKCSAgIHNvbWV0aGluZyB3aGVyZSBhIHBhZ2Ugb3IgdGVtcGxhdGUgaGFzIGEgdGFnIGNhbGxpbmcKCSAgIHRoaXMgbW9kdWxlLgoJICAgCgkgICBOb3RlIHRoYXQgaXQgdXNlcyBhIHRlbXBsYXRlLCBhbmQgaXMgdGh1cyB2ZXJ5IHBvd2VyZnVsLAoJICAgZXZlbiBpZiBpdCdzIHNpbXBsZS4KCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAgIGZ1bmN0aW9uIERpc3BsYXlNb2R1bGVPdXRwdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogICAgewoJCWlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2luZ19sb3VkbHknLDEpID09IDEpCgkJCXsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsb3VkbmVzcycsICR0aGlzLT5MYW5nKCdsb3VkJykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbG91ZG5lc3MnLCAkdGhpcy0+TGFuZygncXVpZXQnKSk7CgkJCX0KCiAgICAgICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwbHVnaW4udHBsJyk7CiAgICB9CgoJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgIERpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuX2lkLCAkbWVzc2FnZSkKCSAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgoJICAgVGhpcyBpcyBhbiBleGFtcGxlIG9mIGEgc2ltcGxlIG1ldGhvZCB0byBkaXNwbGF5CgkgICBlcnJvciBpbmZvcm1hdGlvbiBvbiB0aGUgYWRtaW4gc2lkZS4KCSAgIAkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgICBmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCiAgICB7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9lcnJvcicsICR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQlpZiAoJG1lc3NhZ2UgIT0gJycpCgkJCXsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignbWVzc2FnZScsICRtZXNzYWdlKTsKCQkJfQoKICAgICAgICAvLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKICAgICAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwogICAgfQoKICAgIGZ1bmN0aW9uIERpc3BsYXlBZG1pblBhbmVsKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCiAgICB7CiAgICAJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zZWN0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2FkbWluX3BhbmVsJykpOwogICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbignd2VsY29tZV90ZXh0JywgJHRoaXMtPkxhbmcoJ3dlbGNvbWVfdGV4dCcpKTsKICAgIAogICAgICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5wYW5lbC50cGwnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBEaXNwbGF5QWRtaW5OYXYoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogICAgICAgIHsKICAgICAgICBnbG9iYWwgJGdDbXM7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZG1pbl9uYXYnLAoJCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdzaW1wbGVsaXN0JywgJHJldHVybmlkLAonPGltZyBzcmM9IicuJGdDbXMtPmNvbmZpZ1sicm9vdF91cmwiXS4nL21vZHVsZXMvQXJjaGl2ZXIvaW1hZ2VzL3NpbXBsZWxpc3QuZ2lmIiBjbGFzcz0ic3lzdGVtaWNvbiIgYWx0PSInLiR0aGlzLT5MYW5nKCdzaW1wbGVsaXN0JykuJyIgdGl0bGU9IicuJHRoaXMtPkxhbmcoJ3NpbXBsZWxpc3QnKS4nIi8+JywgYXJyYXkoKSkgLgoJCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdzaW1wbGVsaXN0JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnc2ltcGxlbGlzdCcpLCBhcnJheSgpKSAuCgkJCScgOiAnIC4KCQkJJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbGlzdGl0ZW1zJywgJHJldHVybmlkLAoJCQkJJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3RvcGZpbGVzL2NvbnRlbnQuZ2lmJywKICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdsaXN0aXRlbXMnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgpKSAuCgkJCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2xpc3RpdGVtcycsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2xpc3RpdGVtcycpLCBhcnJheSgpKSAuCgkJCScgOiAnIC4KCQkJJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnbGlzdHNuYXBzaG90cycsICRyZXR1cm5pZCwKCQkJCSc8aW1nIHNyYz0iJy4kZ0Ntcy0+Y29uZmlnWyJyb290X3VybCJdLicvbW9kdWxlcy9BcmNoaXZlci9pbWFnZXMvc25hcHNob3QuZ2lmIiBjbGFzcz0ic3lzdGVtaWNvbiIgYWx0PSInLiR0aGlzLT5MYW5nKCdsaXN0c25hcHNob3RzJykuJyIgdGl0bGU9IicuJHRoaXMtPkxhbmcoJ2xpc3RzbmFwc2hvdHMnKS4nIi8+JywgYXJyYXkoKSkgLgoJCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdsaXN0c25hcHNob3RzJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnbGlzdHNuYXBzaG90cycpLCBhcnJheSgpKSAuCgkJCScgOiAnIC4KCQkJJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5wcmVmcycsICRyZXR1cm5pZCwKCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy90b3BmaWxlcy9zaXRlcHJlZnMuZ2lmJywKICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdhZG1pbnByZWZzJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSkgLgoJCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZG1pbnByZWZzJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRtaW5wcmVmcycpLCBhcnJheSgpKSk7CiAgICAgICAgfQoKCn0KCj8+Cg==]]></data>
  </file>
  <file>
    <filename>/images/</filename>
    <isdir>1</isdir>
  </file>
  <file>
    <filename>/images/restore.gif</filename>
    <isdir>0</isdir>
    <data><![CDATA[R0lGODlhEAAQAPd/AN7t9XSWuFeQw+Xw9eHs83GhzommwN3x/97v/9ry/5S208nX4/3+//b7/+35/+b4/+by/1qItpKjvFaPw/v+//v8//X6/+j0/+f0/+Pz/+Hw/3Wbvdnr9YmjvoSgvPb//26StvH3/+31/+Px/9fx/9rv/9ns/22gzmyfz26WvP39/vH4/9fr/+Tx/46owez2/+32//D4/+r0/9rt/3CYvcvZ5V2JtfP8/7bN40dxmvj7//L5/+nv9ISs0Ze40/D5/9DY4uP2/0lok4Oivuz3/0h6qtPq/2qh0en5/+n8/+D1+5mov3Oew+7+/63F3W6OsHecvWCLtmOOuPP6/7re8/D6/12BppWtxOHy//D0+O/3/+jx9er2/+Tz/3KZvbXV7bjW7bzY7cje7eL6/1N9pF98oNDl/9Lo/7LI4N/1/8/c51iHteD0/+H3//D8/6q/0/P+/3CYvuDv/3OavsDa7Yeet4CeutDj7t/6/+33/8Tc7TBmm0Z1pG+XvP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAH8ALAAAAAAQABAAAAjfAP/8AUJmTp+DCPuk6BPHikAJOPxInEjRj4+HaCoyqNDAQggKCgQucaKipAoGDBpMiSHig4I6ZYSAuOKiZocFFGLkkQGnxxMCBNQsqFFDzRs7WX7IwOCmQIeKEgkY4CEEQwsHBTxMpODxxp0hW4QI0YAkq0QKYtOqFfLALNe1a4Oc0KpjBVy1bOb62QHjQgsEGcJ4ASDWyIETAfxowZBBzowDYGhwEGLkTAIUIPyIgKABAYsSXySbOGOGBIrEH5okeZBmDBUmStokIIHnSA4pUWxEiLAmQpE9AiYIF8AnIAA7]]></data>
  </file>
  <file>
    <filename>/images/simplelist.gif</filename>
    <isdir>0</isdir>
    <data><![CDATA[R0lGODlhIAAgAOZtAP///+vr6+rq6uzs7OPj4+/v7/Dw8Obm5vHx8efn5+jo6O7u7szMzJSUlPLy8u3t7fPz8+Tk5KysrOnp6fT09Pb29vj4+OHh4eLi4uXl5eDg4Pz8/NTU1K2trfX19ZeXl/f399bW1tzc3Pr6+tfX15aWlt7e3tjY2HV1dfv7+/39/aurq5WVlf7+/s3Nzfn5+dXV1bW1tcvLy7i4uJubm52dnb+/v9HR0dnZ2WpqanFxcXJycrGxsW9vb8jIyN3d3d/f37S0tLu7u3R0dLy8vNLS0sXFxXBwcG1tbdvb27a2tpGRkb29va+vr2FhYcHBwZqamre3t8rKypOTk7Ozs2ZmZqOjo8/Pz5iYmJKSkm5ubrKysrm5udDQ0HNzc4SEhLq6usLCwqmpqWtra5mZmYmJiaKiomhoaKioqJycnMTExH9/f2dnZ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAG0ALAAAAAAgACAAAAf/gG2Cg4SFhoeIiYqLjI2Oj5CRjUQyDJaXDC6XLlZBFo8iAKKjoy0qIwA+KAePJwAjLxYVHhAOBgULARVhRwSPJACxILO1Bga5FU9eCb8AFsMUtQi4DwIeNmcnAwEFKYshANDS1AMTFERfRlIyYGoLijAAHtEO0wsDAwIKDlw2IAYQRKwRAg8AhWgIbj3IJyABghlCNgCMgEKCIg4AHNRTuE3fAQNKZozgpgFFh4stECRc8CCAgAkTDkQwEEOJhQAPSp5MVESFsQILXyo4kIHAAiqeBAwwMWQnoiIbFhToOEFBApkXHvDYUkFBABE7nB66EXVhgKoJMkQgcGFAEx4e7xIIEKHDYqIuKQJsU2BVJgEMGgR0aELhwIQkR+wiujJCQACraddiuPBDgAQJEDIkwNFD8dgWUvOhVUtAw4AOYhwQOHBCi2dDUQ4QmG3iBAkSIThwuGFiyQoEBCKEQPK6UIMdPXSwKWOmRhoa0KF8KJHkAAbhxBUlYBLDRpYZDhoS/avh8WQMMMasUNRiQwoVOGRsqFcA6LaikzVwyLG+kQ8XFZw1lF8XXADEDybs1x8jRjAAgAopCDMPBAkVgIAITqDhiAY1fEAGFh+EWMKILLDQwAdDVBGDIxuEUMMUDcQoo4wlLsEEEJLkqOOOPAYCADs=]]></data>
  </file>
  <file>
    <filename>/images/snapshot.gif</filename>
    <isdir>0</isdir>
    <data><![CDATA[R0lGODlhIAAgAPfoADY2NoODgzc3N6ampjU1Na6uri8vLzg4OGtra8DAwCoqKm1tbdjY2DAwMAEBAQAAADIyMoqKii0tLd7e3qysq4+Pj76+vjQ0NMHBwaqqqpubm6WlpCsrK4eHh46Ojufn52BgYCgoKCYmJg0NDQwMDBEREaampRwcHJSUlK6urX9/f+np6YmJiYiIh29vbxkZGYiIiDc3OEhISIuLi6ysrKCgn3Nzcnp6eoeHhry8vHh4eLe3t2xsbL+/v52dnHt7evn5+XBwcJSUk+np6CAgIICAf8PDw1lZWRAQECkpKZiYlzExMYSEhCwsLHt7exQUFF5eXri4uGZmZq+vrkRERHV1dBISEh0dHbCwsNfX16enpwUFBRcXFzk5Oa2trYCAgHx8e4WFhNbV1VRUVOjo6P39/ZeWl05OTXV1dWNjY7S0s4qKi6KioRgYGHV2dtvb26iop8zMzDw8PK2trPX19XNzcxoaGkVFRdzb22RkZCMjI1VVVRgZGIyMjFBQUI2NjScnJoWFg01NTo+PjiEhIJubmnx8fB8fHywtLeXl5aioqDIyMampqAYGBsnJyWdnZqOjo3l5eeTk5K+vrx4eHdra2YqKiRYWFtXV1V1dXby7vE1NTW9vbsXFxYGBgQQEBAsLCz8/P7KyssjIySIiIn5+fqqqqWxsa/////j49wgICJqamlZWVuPj435+fRsbG66vr8/Pz4iIibOzs4yMi319fZiYmPr6+tHS0V9fX0NDQ6urq+7u7uvr69bW1ampqXl5ePDw8AICAg8PD9DQ0GRjZNzc24SEgywsK7W1tVhYWeDg4L29vWhnaHd3d1hYV6SkpXR0c25ubkJCQZ2dnWFhYCwrLFhYWFdXV4mJiMrKyltbW4uLjB8fHnZ2du3t7XJycsTExDU1NFJSUUBAQCAgH5ycnC4uLf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAOgALAAAAAAgACAAAAj/ANEJHEiwoMGDCBMqXMiwocOHECNKnEixosWIHxho1PjhosAsGmygieYli0Q4wQpicTKjAzdvUQimWjGETkEgvIZMsCDOwwYT4dAtAwMjgFEWTioNpFUNSqCCOwQ04cAhiYKrCnwViWC0awRXQNBhunD1grGBKzwMalEEjI4qVX6E4cS1a1cYkXw8OjJm3JlTRgS2omDEQo8EiBP0sGBDll2vwBJjmDzKlMA3GjIM2Mx5wKobTGpd69JATqYvHVx03kyDkUA1MQTIni17SYcjSFRZA3DCAZc8zi7QFnAggMANAAgoX65cwCYHQSZ8w5MjgAgH2xowJwCAicBCAgCI/x8vvssDM6jK9BLDTMuaJp8gLCIvoIVAIQfIj5fA5RmZRB9MEEcyGngixQhXIEMfCwJVkJ9+AFDiACSOEIOLNppoUYEbuSDSCBH09SHQDA/qd8kL0MCyQxSiDICCCs34AcEDL5B3QAUCWVIieW2c4AEK5lBjyx+lIIDNNEk8YIeNQgiEw47jXUGCCzeo8IUhdUjBChUQvCJMN+TFoISTUIoHCAm6gJBGMSAoIwg5S+gBihUi0OeDQNlAYMCefO5JxDBUyCDDHaEAwMEhJTxQjgR9NlCDQCaAE4Q0C/CwwKU8gEBKCec0IEEIhPAxggMiIGDqqQvsItAENbBhwi80ZEKgCAVeUKBDCFsg8UQJJGzxQANKFCCssFhk0IlAt8SSwyxTDFtAChRs8MMeIVgxwhMSQHFMsykMO8kckngk7rgWBQQAOw==]]></data>
  </file>
  <file>
    <filename>/images/sort_asc.gif</filename>
    <isdir>0</isdir>
    <data><![CDATA[R0lGODlhDAAMAPcAAMzM/5mZ/2ZmzAAAALu7u4iIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAMALAAAAAAMAAwAAAgtAAcIHEiwoMGDCA3+Szjgn4CFBx0GCACRoMSJFC0GAMCxI8R/IEOKrMiwpMmAADs=]]></data>
  </file>
  <file>
    <filename>/images/sort_desc.gif</filename>
    <isdir>0</isdir>
    <data><![CDATA[R0lGODlhDAAMAPcAAMzM/5mZ/2ZmzAAAALu7u4iIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAMALAAAAAAMAAwAAAgxAAcIHEiwoMGDCBMqNPivocOH/wT+A0CxYoCIA/8F2BhAAEaCGjt+LPjPo8KRCwUGBAA7]]></data>
  </file>
  <file>
    <filename>/index.html</filename>
    <isdir>0</isdir>
    <data><![CDATA[]]></data>
  </file>
  <file>
    <filename>/lang/</filename>
    <isdir>1</isdir>
  </file>
  <file>
    <filename>/lang/en_US/</filename>
    <isdir>1</isdir>
  </file>
  <file>
    <filename>/lang/en_US/en_US.php</filename>
    <isdir>0</isdir>
    <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0FyY2hpdmUgTWFuYWdlciBNb2R1bGUnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQb3N0IEluc3RhbGwgTWVzc2FnZSwgZS5nLiwgQmUgc3VyZSB0byBzZXQgIlVzZSBBcmNoaXZlIiBwZXJtaXNzaW9ucyB0byB1c2UgdGhpcyBtb2R1bGUhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNb2R1bGUgUmVtb3ZlZCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ3RpdGxlX21vZF9wcmVmcyddID0gJ01vZHVsZSBQcmVmZXJlbmNlcyc7CgokbGFuZ1snY29udGVudCddID0gJ0NvbnRlbnQgT2JqZWN0JzsKJGxhbmdbJ2h0bWxibG9iJ10gPSAnSFRNTCBCbG9iJzsKJGxhbmdbJ3N0eWxlc2hlZXQnXSA9ICdTdHlsZXNoZWV0JzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwoKJGxhbmdbJ3ByZXYnXSA9ICcmbHQ7IFByZXZpb3VzIFBhZ2UnOwokbGFuZ1snbmV4dCddID0gJ05leHQgUGFnZSAmZ3Q7JzsKCiRsYW5nWydjb2x1bW5fdHlwZSddID0gJ1R5cGUnOwokbGFuZ1snY29sdW1uX25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ2NvbHVtbl9yZXZpc2lvbiddID0gJ1JldmlzaW9uJzsKJGxhbmdbJ2NvbHVtbl9kYXRlJ10gPSAnRGF0ZSc7CiRsYW5nWydjb2x1bW5fYWN0aW9uJ109J09wZXJhdGlvbic7CgokbGFuZ1sndGl0bGVfYWRtaW5fcGFuZWwnXSA9ICdBcmNoaXZlcyBNYW5hZ2VyJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3ByZWZzJ10gPSAnQXJjaGl2ZSBQcmVmZXJlbmNlcyc7CiRsYW5nWyd0aXRsZV9hZG1pbl9zbmFwcyddID0gJ1NuYXBzaG90IE1hbmFnZW1lbnQnOwokbGFuZ1snbGlzdGl0ZW1zJ10gPSAnRXhwYW5kZWQgQXJjaGl2ZSBWaWV3JzsKJGxhbmdbJ3NpbXBsZWxpc3QnXSA9ICdTaW1wbGUgQXJjaGl2ZSBWaWV3JzsKJGxhbmdbJ2xpc3RzbmFwc2hvdHMnXSA9ICdTbmFwc2hvdHMnOwokbGFuZ1snYWRtaW5wcmVmcyddID0gJ0FyY2hpdmUgUHJlZmVyZW5jZXMnOwokbGFuZ1snd2VsY29tZV90ZXh0J10gPSAnUGxlYXNlIHNlbGVjdCBhbiBvcGVyYXRpb24gaW4gdGhlIEFyY2hpdmVzLic7CgokbGFuZ1sncmVzdG9yZSddID0gJ1Jlc3RvcmUgdG8gQ3VycmVudCc7CiRsYW5nWydwcmV2aWV3J10gPSAnUHJldmlldyc7CiRsYW5nWyd0aXRsZV9wcmV2aWV3J10gPSAnUHJldmlldyBvZiByZXZpc2lvbiAlcyc7CgokbGFuZ1sndGl0bGVfc2F2ZV9zbmFwc2hvdCddID0gJ1NhdmUgYSBzbmFwc2hvdCBvZiB5b3VyIHNpdGUnOwokbGFuZ1sndGl0bGVfc25hcHNob3RfbmFtZSddID0gJ1NuYXBzaG90IG5hbWUnOwokbGFuZ1sndGl0bGVfc25hcHNob3Rfbm90X3lldCddID0gJ1NuYXBzaG90cyBhcmUgbm90IHlldCBpbXBsZW1lbnRlZC4nOwoKJGxhbmdbJ3RpdGxlX2ZpbHRlcl90eXBlJ109J1Nob3cgJzsKJGxhbmdbJ3RpdGxlX2ZpbHRlcl9ub25lJ109J0FsbCBBcmNoaXZlIFR5cGVzJzsKJGxhbmdbJ3RpdGxlX2ZpbHRlcl9jb250ZW50J10gPSAnT25seSBDb250ZW50JzsKJGxhbmdbJ3RpdGxlX2ZpbHRlcl9odG1sYmxvYiddID0gJ09ubHkgSFRNTCBCbG9icyc7CiRsYW5nWyd0aXRsZV9maWx0ZXJfc3R5bGVzaGVldCddID0gJ09ubHkgU3R5bGVzaGVldHMnOwokbGFuZ1sndGl0bGVfZmlsdGVyX3RlbXBsYXRlJ10gPSAnT25seSBUZW1wbGF0ZXMnOwoKJGxhbmdbJ3NvcnRfZGVzYyddID0gJ1NvcnQgRGVzY2VuZGluZyc7CiRsYW5nWydzb3J0X2FzYyddID0gJ1NvcnQgQXNjZW5kaW5nJzsKCiRsYW5nWydzdXJlcmVzdG9yZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXN0b3JlIHRvIHJldmlzaW9uICVzPyc7CgokbGFuZ1sndGl0bGVfcHVyZ2VfY291bnQnXSA9ICdIb3cgbWFueSByZXZpc2lvbnMgb2YgZWFjaCBwYWdlIHNob3VsZCBiZSBrZXB0Pyc7CiRsYW5nWyd0aXRsZV9wdXJnZV91bmxpbWl0ZWQnXSA9ICdLZWVwIHVubGltaXRlZCByZXZpc2lvbnMgb2YgZWFjaCBwYWdlJzsKJGxhbmdbJ3RpdGxlX3B1cmdlXzVfcmV2aXNpb25zJ10gPSAnS2VlcCBtb3N0IHJlY2VudCBmaXZlIHJldmlzaW9ucyBvZiBlYWNoIHBhZ2UnOwokbGFuZ1sndGl0bGVfcHVyZ2VfMTBfcmV2aXNpb25zJ10gPSAnS2VlcCBtb3N0IHJlY2VudCB0ZW4gcmV2aXNpb25zIG9mIGVhY2ggcGFnZSc7CiRsYW5nWyd0aXRsZV9wdXJnZV8yMF9yZXZpc2lvbnMnXSA9ICdLZWVwIG1vc3QgcmVjZW50IHR3ZW50eSByZXZpc2lvbnMgb2YgZWFjaCBwYWdlJzsKJGxhbmdbJ3RpdGxlX3B1cmdlXzUwX3JldmlzaW9ucyddID0gJ0tlZXAgbW9zdCByZWNlbnQgZmlmdHkgcmV2aXNpb25zIG9mIGVhY2ggcGFnZSc7CgokbGFuZ1sndGl0bGVfcHVyZ2VfdGltZSddID0gJ0hvdyBsb25nIHNob3VsZCByZXZpc2lvbnMgYmUga2VwdD8nOwokbGFuZ1sndGl0bGVfcHVyZ2VfZm9yZXZlciddID0gJ0tlZXAgcmV2aXNpb25zIGZvcmV2ZXInOwokbGFuZ1sndGl0bGVfcHVyZ2VfMV9kYXlzJ10gPSAnS2VlcCByZXZpc2lvbnMgb25seSBmcm9tIHRoZSBsYXN0IGRheSc7CiRsYW5nWyd0aXRsZV9wdXJnZV83X2RheXMnXSA9ICdLZWVwIHJldmlzaW9ucyBvbmx5IGZyb20gdGhlIGxhc3QgNyBkYXlzJzsKJGxhbmdbJ3RpdGxlX3B1cmdlXzE0X2RheXMnXSA9ICdLZWVwIHJldmlzaW9ucyBvbmx5IGZyb20gdGhlIGxhc3QgMTQgZGF5cyc7CiRsYW5nWyd0aXRsZV9wdXJnZV8zMF9kYXlzJ10gPSAnS2VlcCByZXZpc2lvbnMgb25seSBmcm9tIHRoZSBsYXN0IDMwIGRheXMnOwokbGFuZ1sndGl0bGVfcHVyZ2VfOTBfZGF5cyddID0gJ0tlZXAgcmV2aXNpb25zIG9ubHkgZnJvbSB0aGUgbGFzdCA5MCBkYXlzJzsKJGxhbmdbJ3RpdGxlX3B1cmdlXzE4MF9kYXlzJ10gPSAnS2VlcCByZXZpc2lvbnMgb25seSBmcm9tIHRoZSBsYXN0IDE4MCBkYXlzJzsKJGxhbmdbJ3RpdGxlX3B1cmdlXzM2NV9kYXlzJ10gPSAnS2VlcCByZXZpc2lvbnMgb25seSBmcm9tIHRoZSBsYXN0IDM2NSBkYXlzJzsKCiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0JzsKJGxhbmdbJ2RhdGVfZm9ybWF0X2hlbHAnXSA9ICdEYXRlIEZvcm1hdHMgYXJlIGJ1aWx0IHVzaW5nIHN0YW5kYXJkIFBIUCAiZGF0ZSIgZm9ybWF0IGNvZGVzLiBGb3IgYSByZWZlcmVuY2UsIHBsZWFzZSB2aWV3IDxhIGhyZWY9Imh0dHA6Ly91czQucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPmh0dHA6Ly91czQucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHA8L2E+LiBSZW1lbWJlciB0byBlc2NhcGUgYW55IGNoYXJhY3RlcnMgeW91IGRvblwndCB3YW50IGludGVycHJldGVkIGFzIGRhdGUgZm9ybWF0IGNvZGVzITxiciAvPic7CgokbGFuZ1snZXJyb3JfaW52YWxpZF9pbmZvJ10gPSAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIFRyeWluZyB0byByZXN0b3JlIG9iamVjdCBvZiB1bmtub3duIHR5cGUuJzsKJGxhbmdbJ3Jlc3RvcmVkX3RlbXBsYXRlJ10gPSAnUmVzdG9yZWQgdGVtcGxhdGUgJXMgdG8gcmV2aXNpb24gJXMnOwokbGFuZ1sncmVzdG9yZWRfY29udGVudCddID0gJ1Jlc3RvcmVkIHBhZ2UgJXMgdG8gcmV2aXNpb24gJXMnOwokbGFuZ1sncmVzdG9yZWRfc3R5bGVzaGVldCddID0gJ1Jlc3RvcmVkIHN0eWxlc2hlZXQgJXMgdG8gcmV2aXNpb24gJXMnOwokbGFuZ1sncmVzdG9yZWRfaHRtbGJsb2InXSA9ICdSZXN0b3JlZCBIVE1MIEJsb2IgJXMgdG8gcmV2aXNpb24gJXMnOwoKJGxhbmdbJ3RpdGxlX3B1cmdlX3dhcm5pbmcnXSA9ICdXYXJuaW5nISBJZiB5b3Ugc2VsZWN0IGJvdGggYSByZXZpc2lvbiBjb3VudCBhbmQgYSByZXZpc2lvbiB0aW1lLCB0aGUgTEVTU0VSIG9mIHRob3NlIHR3byB2YWx1ZXMgd2lsbCB3aW4gd2hlbiB0aGUgc3lzdGVtIGRlY2lkZXMgd2hldGhlciBvciBub3QgdG8ga2VlcCBhIHJldmlzaW9uLic7CiRsYW5nWyd0aXRsZV9wdXJnZV93YXJuaW5nMiddID0gJ1dhcm5pbmchIFlvdXIgc2VsZWN0aW9uIHRha2VzIGVmZmVjdCB0aGUgbmV4dCB0aW1lIHlvdSBlZGl0IGEgcGFnZS4gSXQgb25seSBhZmZlY3RzIGFyY2hpdmVzIHdoZW4gdGhlaXIgY29ycmVzcG9uZGluZyBwYWdlIGlzIGVkaXRlZCAoc28gaWYgeW91IHByZXZpb3VzbHkgaGFzIHNlbGVjdGVkICJLZWVwIGFyY2hpdmVzIGZvcmV2ZXIiIGFuZCB0aGVuIGNoYW5nZWQgaXQgdG8gIktlZXAgbW9zdCByZWNlbnQgZml2ZSByZXZpc2lvbnMiLCB5b3VyIGRhdGFiYXNlIHdpbGwgaGF2ZSBhbGwgaGlzdG9yaWNhbCBjb3BpZXMgb2YgZXZlcnkgcGFnZSB1bnRpbCB5b3UgZWRpdCBhIHBhZ2U7IGFmdGVyIGVkaXRpbmcgdGhlIHBhZ2UsIHRoZSBkYXRhYmFzZSB3aWxsIG9ubHkgaGF2ZSBmaXZlIHByZXZpb3VzIHJldmlzaW9ucy4nOwoKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQXJjaGl2ZSBhbmQgcmVzdG9yZSBDb250ZW50LCBTdHlsZSBTaGVldHMsIEhUTUwgQmxvYnMsIGFuZCBUZW1wbGF0ZXMuJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD48bGk+VmVyc2lvbiAwLjEgLSAyOSBEZWNlbWJlciAyMDA1LiBJbml0aWFsIFJlbGVhc2UuPC9saT4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGlzIG1vZHVsZSwgb25jZSBpdFwncyBpbnN0YWxsZWQsIGtlZXBzIGFyb3VuZCBhIGNvcHkgb2YgZXZlcnkgQ29udGVudCBQYWdlLCBIVE1MIEJsb2IsIG9yIFRlbXBsYXRlIGFzIHlvdSBlZGl0IGl0IChzdHlsZXNoZWV0cyB3aWxsIHNvb24gYmUgYWRkZWQgdG8gdGhpcyBsaXN0KS4gSXQgYWxzbyBwcm92aWRlcyBhbiBpbnRlcmZhY2Ugc28gdGhhdCBhbiBhZG1pbmlzdHJhdG9yIGNhbiByZXN0b3JlIGFueXRoaW5nIGluIHRoZSBhcmNoaXZlIHRvIGJlIHRoZSBjdXJyZW50IHN0YXRlLjwvcD4KPHA+V2hhdCB0aGlzIG1lYW5zIGlzIHRoYXQgeW91IGNhbiBlZGl0IHZhcmlvdXMgYXNwZWN0cyBvZiB0aGUgc2l0ZSBhbmQgdGhlbiByZXZlcnNlIHRob3NlIGNoYW5nZXMgYXQgYSBsYXRlciBkYXRlLjwvcD4KPHA+WW91IGNhbiBhdXRvbWF0aWNhbGx5IHB1cmdlIGFyY2hpdmVzIGVpdGhlciBieSByZXZpc2lvbiBjb3VudCAoaS5lLiwga2VlcCBvbmx5IGEgc2V0IG51bWJlciBvZiByZXZpc2lvbnMgb2YgZWFjaCBwYWdlLCBIVE1MIEJsb2IsIGFuZCBUZW1wbGF0ZSkgb3IgYnkgZGF0ZSAoaS5lLiwga2VlcCBvbmx5IHJldmlzaW9ucyBmcm9tIHRoZSBsYXN0IG4gZGF5cykuIFlvdSBkbyBub3QgaGF2ZSB0byBwdXJnZSBhcmNoaXZlcywgdGhvdWdoLCBhbmQgY2FuIGtlZXAgYWNjdW11bGF0aW5nIHRoZW0gdW50aWwgeW91ciBkYXRhYmFzZSBvdmVyZmxvd3MuPC9wPgo8aDM+V2hhdCBEb2VzIHRoaXMgTk9UIGRvPzwvaDM+CjxwPlRoaXMgaXMgbm90IGEgdHJ1ZSByZXZpc2lvbiBjb250cm9sIHN5c3RlbS4gRHVlIHRvIHRoZSBkYXRhIHN0cnVjdHVyZXMgb2YgQ01TIE1hZGUgU2ltcGxlLCBpbXBsZW1lbnRpbmcgYSB0cnVlIFJDUyBwcm92ZWQgdG9vIG11Y2ggb2YgYSBjaGFsbGVuZ2UgZm9yIG15IHB1bnkgaW50ZWxsZWN0LiBUaGlzIHdhcyB0aGUgbmV4dCBiZXN0IHNvbHV0aW9uLjwvUD4KPHVsPgo8bGk+U3R5bGVzaGVldHMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLCBwZW5kaW5nIHNvbWUgY2hhbmdlcyB0byB0aGUgY29yZS48L2xpPgo8bGk+Tm90IGFsbCBtZXRhZGF0YSBpcyBhcmNoaXZlZC4gQXR0cmlidXRlcyBmb3IgY29udGVudCBwYWdlcywgc3VjaCBhcyBoaWVyYXJjaHkgcG9zaXRpb24sIG93bmVyLCBhY3RpdmUsIHNob3cgaW4gbWVudSwgZXRjLCBhcmUgbm90IGFyY2hpdmVkLiBTaW1pbGFybHksIHN0eWxlc2hlZXQgYW5kIHRlbXBsYXRlIGFzc29jaWF0aW9ucyBhcmUgbm90IGFyY2hpdmVkLjwvbGk+CjxsaT5TbmFwc2hvdHMgKGUuZy4sIGFuIGFyY2hpdmUgb2YgdGhlIGV4YWN0IHN0YXRlIG9mIHRoZSBlbnRpcmUgd2Vic2l0ZSBhdCBzb21lIGluc3RhbnQgaW4gdGltZSkgYXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQsIGJ1dCBwcm9iYWJseSB3aWxsIGJlIGV2ZW50dWFsbHkuPC9saT4KPGxpPlRoZSBzeXN0ZW0gZG9lcyBub3Qgc3RvcmUgZGVsdGFzLCBidXQgZW50aXJlIGNvcGllcyBvZiBlYWNoIGFyY2hpdmUuIFRoaXMgaXMgd2FzdGVmdWwgb2YgZGF0YWJhc2Ugc3BhY2UsIGJ1dCBtdWNoIGVhc2llciB0byBpbXBsZW1lbnQuPC9saT4KPC91bD4KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+CjxoND5HZW5lcmFsPC9oND4KPHA+QWZ0ZXIgaW5zdGFsbGF0aW9uLCB0aGUgc3lzdGVtIHdpbGwgYXV0b21hdGljYWxseSBzdGFydCBzYXZpbmcgY2hhbmdlcyBpbnRvIHRoZSBhcmNoaXZlcy4gWW91IGRvblwndCBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuPC9wPgo8aDQ+RXhwaXJhdGlvbiBvZiBBcmNoaXZlczwvaDQ+CjxwPkFueSBhZG1pbiB3aG8gaGFzICJNYW5hZ2UgQXJjaGl2ZXMiIHBlcm1pc3Npb24gbWF5IGdvIGludG8gdGhlIGFyY2hpdmUgYWRtaW4sIGFuZCBzZXQgQXJjaGl2ZSBleHBpcmF0aW9uIHBhcmFtZXRlcnMuIGluIHRoZSAiQXJjaGl2ZSBQcmVmZXJlbmNlcyIgcGFnZS4gVGhpcyBzaG91bGQgYmUgc2VsZi1leHBsYW5hdG9yeS4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIDxzdHJvbmc+c2hvcnRlcjwvc3Ryb25nPiBvZiB0aGUgZXhwaXJhdGlvbiBwYXJhbWV0ZXJzIHlvdSBzZXQgd2lsbCBiZSB1c2VkIC0tIGlmIHlvdSBzZXQgIktlZXAgUmV2aXNpb25zIEZvcmV2ZXIiIGluIHRoZSB0aW1lLWJhc2VkIGV4cGlyYXRpb24sIGJ1dCBvbmx5ICJrZWVwIHRoZSBtb3N0IHJlY2VudCA1IHJldmlzaW9ucyIgZnJvbSB0aGUgcmV2aXNpb24gY291bnQgZXhwaXJhdGlvbiwgeW91IHdpbGwgb25seSBrZWVwIHRoZSBmaXZlIG1vc3QgcmVjZW50LjwvcD4KPGg0PlJlc3RvcmluZyBmcm9tIEFyY2hpdmVzPC9oND4KPHA+QW55IGFkbWluIHdobyBoYXMgIk1hbmFnZSBBcmNoaXZlcyIgcGVybWlzc2lvbnMgY2FuIHZpZXcgdGhlIHJldmlzaW9uIGhpc3Rvcmllcy4gVGhlcmUgYXJlIHR3byBpbnRlcmZhY2VzLCBzaW1wbGUgYW5kIGFkdmFuY2VkLiBTaW1wbGUgbGlzdHMgZWFjaCBleHRhbnQgb2JqZWN0IGluIHRoZSBhcmNoaXZlLCB3aGljaCB5b3UgY2FuIHNvcnQgYnkgbmFtZSBvciB0eXBlLiBUaGUgYWR2YW5jZWQgaW50ZXJmYWNlIHNob3dzIGFsbCByZXZpc2lvbnMgb2YgYWxsIG9iamVjdHMgaW4gdGhlIGFyY2hpdmU7IHlvdSBjYW4gc29ydCB0aGlzIGxpc3QgYnkgbmFtZSwgdHlwZSwgZGF0ZSwgb3IgcmV2aXNpb24gbnVtYmVyLjwvcD4KPHA+VHlwaWNhbGx5LCB5b3VcJ2xsIGZpbmQgdGhlIG9iamVjdCBpbiB0aGUgYXJjaGl2ZSB2aWEgdGhlIHNpbXBsZSBpbnRlcmZhY2UuIFVzaW5nIHRoZSBwdWxsZG93biBtZW51LCB5b3UgY2FuIGZpbHRlciB0byBzaG93IG9ubHkgb25lIHR5cGUgb2YgYXJjaGl2ZSBvYmplY3QgKENvbnRlbnQsIFRlbXBsYXRlLCBIVE1MIEJsb2IsIG9yIFN0eWxlc2hlZXQpLiBDbGlja2luZyBvbiB0aGUgaXRlbVwncyBuYW1lIHdpbGwgdGFrZSB5b3UgdG8gdGhhdCBvYmplY3RcJ3MgaGlzdG9yeSBwYWdlLiBZb3UgY2FuIHRoZW4gcHJldmlldyB0aGUgb2JqZWN0IChpbiB0aGUgY2FzZSBvZiBDb250ZW50KSBieSBjbGlja2luZyBvbiB0aGUgcHJldmlldyBpY29uLjwvcD4KPFA+UmVzdG9yZSBhbiBpdGVtIGJ5IGNsaWNraW5nIG9uIHRoZSAicmVzdG9yZSIgaWNvbiBvbiB0aGUgZmFyIHJpZ2h0LiBUaGF0XCdzIGFsbCB0aGVyZSBpcyB0byBpdCE8L3A+CjxoMz5QbGFubmVkIEltcHJvdmVtZW50czwvaDM+Cjx1bD4KPGxpPkltcGxlbWVudGluZyBTdHlsZXNoZWV0IGFyY2hpdmVzLjwvbGk+CjxsaT5QcmV2aWV3IG9mIFRlbXBsYXRlcz88L2xpPgo8bGk+UHJldmlldyBvZiBIVE1MIEJsb2JzPzwvbGk+CjxsaT5TbmFwc2hvdHMgKGUuZy4sIGFuIGFyY2hpdmUgb2YgdGhlIGV4YWN0IHN0YXRlIG9mIHRoZSBlbnRpcmUgd2Vic2l0ZSBhdCBzb21lIGluc3RhbnQgaW4gdGltZSkgLjwvbGk+CjxsaT5CZXR0ZXIvbW9yZSBlZmZpY2llbnQgc3RvcmFnZT8gU3RvcmUgZGVsdGFzPzwvbGk+CjwvdWw+CjxoMz5GZWF0dXJlcyBUaGF0IE1pZ2h0IEJlIE1pc2ludGVycHJldGVkIGFzIEJ1Z3M8L2gzPgo8dWw+CjxsaT5SZXN0b3JpbmcgQ29udGVudCBjcmVhdGVzIGFuIGFkZGl0aW9uYWwgcmV2aXNpb24uIFNvIGlmIHlvdSBoYXZlIHZlcnNpb25zIDEgLSA0LCBhbmQgeW91IHJlc3RvcmUgdG8gdmVyc2lvbiAxLCB5b3VcJ2xsIGdldCBhbiBhZGRpdGlvbmFsIGNvcHkgb2YgcmV2aXNpb24gMSBjYWxsZWQgInJldmlzaW9uIDUiIHRocm93biBpbiB0byB5b3VyIGFyY2hpdmUuPC9saT4KPGxpPklmIHlvdSBoYXZlIGNoYW5nZWQgdGhlIG5hbWUgb2YgYSBQYWdlLCBpdCB3aWxsIHNob3cgdXAgdW5kZXIgYm90aCBuYW1lcyBpbiB0aGUgU2ltcGxlIEFyY2hpdmUgVmlldy4gQ2xpY2tpbmcgb24gZWl0aGVyIG5hbWUgd2lsbCBzaG93IHlvdSBhbGwgcmV2aXNpb25zIG9mIHRoYXQgcGFnZSwgd2l0aG91dCByZWdhcmQgdG8gdGhlIG5hbWUuPC9saT4KPC91bD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0IG9yIGJ1eSBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSB2aXNpdCBTakdcJ3MKbW9kdWxlIGhvbWVwYWdlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuY21zbW9kdWxlcy5jb20iPkNNU01vZHVsZXMuY29tPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBTakcsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS48L2xpPiAgCjwvdWw+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA1LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgonOwo/Pgo=]]></data>
  </file>
  <file>
    <filename>/templates/</filename>
    <isdir>1</isdir>
  </file>
  <file>
    <filename>/templates/adminpanel.tpl</filename>
    <isdir>0</isdir>
    <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD57JGFkbWluX25hdn08L3A+Cnskd2VsY29tZV90ZXh0fQ==]]></data>
  </file>
  <file>
    <filename>/templates/adminprefs.tpl</filename>
    <isdir>0</isdir>
    <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD57JGFkbWluX25hdn08L3A+CntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQp7JHN0YXJ0Zm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2RhdGVfZm9ybWF0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kYXRlX2Zvcm1hdH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRkYXRlX2Zvcm1hdF9oZWxwfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij48c3Ryb25nPnskdGl0bGVfcHVyZ2Vfd2FybmluZ308L3N0cm9uZz48L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3B1cmdlX2NvdW50fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9wdXJnZV9jb3VudH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3B1cmdlX3RpbWV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3B1cmdlX3RpbWV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfcHVyZ2Vfd2FybmluZzJ9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
  </file>
  <file>
    <filename>/templates/error.tpl</filename>
    <isdir>0</isdir>
    <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4KPHA+eyRhZG1pbl9uYXZ9PC9wPgp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0=]]></data>
  </file>
  <file>
    <filename>/templates/listarchives.tpl</filename>
    <isdir>0</isdir>
    <data><![CDATA[eyRhZG1pbl9uYXZ9CjxoMz57JHRpdGxlX3NlY3Rpb259PC9oMz4KPHN0eWxlIAp7aWYgJG1lc3NhZ2UgIT0gIiJ9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQp7aWYgJHByZXZpZXcgIT0gIiJ9CjxwIGNsYXNzPSJwYWdlaGVhZGVyIj57JHRpdGxlX3ByZXZpZXd9PC9wPgo8aWZyYW1lIG5hbWU9InByZXZpZXdmcmFtZSIgY2xhc3M9InByZXZpZXciIHNyYz0ieyRwcmV2aWV3X2ZpbGV9Ij48L2lmcmFtZT57L2lmfQp7aWYgJGl0ZW1jb3VudCA+IDB9CntpZiAkcGFnZV9ubyAhPScnfTx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+PHRyPjx0ZD57JHByZXZfcGFnZX08L3RkPjx0ZD57JHBhZ2Vfbm99PC90ZD48dGQ+eyRuZXh0X3BhZ2V9PC90ZD48L3RyPjwvdGFibGU+ey9pZn0Ke2lmICRoaWRlX2ZpbHRlcnMgPT0gMH08dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPjx0cj48dGQ+eyRzdGFydGZvcm19eyR0aXRsZV9maWx0ZXJfdHlwZX17JGlucHV0X2ZpbHRlcl90eXBlfXskc3VibWl0fXskaGlkZGVufXskZW5kZm9ybX08L3RkPjwvdHI+PC90YWJsZT57L2lmfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoeyRuYW1lX3NvcnR9PnskY29sdW1uX25hbWV9PC90aD4KCQkJPHRoeyR0eXBlX3NvcnR9PnskY29sdW1uX3R5cGV9PC90aD4KCQkJPHRoeyRyZXZfc29ydH0+eyRjb2x1bW5fcmV2aXNpb259PC90aD4KCQkJPHRoeyRkYXRlX3NvcnR9PnskY29sdW1uX2RhdGV9PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiIgY29sc3Bhbj0iMiI+eyRjb2x1bW5fYWN0aW9ufTwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cgl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc30nOyI+CiAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JGVudHJ5LT50eXBlfTwvdGQ+CiAgICAgICAgICAgIDx0ZD57JGVudHJ5LT5yZXZpc2lvbn08L3RkPgogICAgICAgICAgICA8dGQ+eyRlbnRyeS0+ZGF0ZX08L3RkPgoJCQk8dGQ+eyRlbnRyeS0+dmlld2xpbmt9PC90ZD4KCQkJPHRkPnskZW50cnktPnJlc3RsaW5rfTwvdGQ+CgkJPC90cj4KCXsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CntpZiAkcGFnZV9ubyAhPScnfTx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+PHRyPjx0ZD57JHByZXZfcGFnZX08L3RkPjx0ZD5QYWdlIHskcGFnZV9saW5rc308L3RkPjx0ZD57JG5leHRfcGFnZX08L3RkPjwvdHI+PC90YWJsZT57L2lmfQp7ZWxzZX0KPHA+Tm8gcmV2aXNpb25zIGFyZSBpbiB0aGUgZGF0YWJhc2UuPC9wPgp7L2lmfQo=]]></data>
  </file>
  <file>
    <filename>/templates/listarchivessimple.tpl</filename>
    <isdir>0</isdir>
    <data><![CDATA[eyRhZG1pbl9uYXZ9CjxoMz57JHRpdGxlX3NlY3Rpb259PC9oMz4Ke2lmICRtZXNzYWdlICE9ICIifTxwPnskbWVzc2FnZX08L3A+ey9pZn0Ke2lmICRpdGVtY291bnQgPiAwfQp7aWYgJHBhZ2Vfbm8gIT0nJ308dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPjx0cj48dGQ+eyRwcmV2X3BhZ2V9PC90ZD48dGQ+eyRwYWdlX25vfTwvdGQ+PHRkPnskbmV4dF9wYWdlfTwvdGQ+PC90cj48L3RhYmxlPnsvaWZ9Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+PHRyPjx0ZD57JHN0YXJ0Zm9ybX17JHRpdGxlX2ZpbHRlcl90eXBlfXskaW5wdXRfZmlsdGVyX3R5cGV9eyRzdWJtaXR9eyRoaWRkZW59eyRlbmRmb3JtfTwvdGQ+PC90cj48L3RhYmxlPgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoeyRuYW1lX3NvcnR9PnskY29sdW1uX25hbWV9PC90aD4KCQkJPHRoeyR0eXBlX3NvcnR9PnskY29sdW1uX3R5cGV9PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KICAgICAgICAgICAgPHRkPjxhIGhyZWY9InskZW50cnktPm5hbWVsaW5rfSI+eyRlbnRyeS0+bmFtZX08L2E+PC90ZD4KICAgICAgICAgICAgPHRkPnskZW50cnktPnR5cGV9PC90ZD4KCQk8L3RyPgoJey9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Ke2lmICRwYWdlX25vICE9Jyd9PHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj48dHI+PHRkPnskcHJldl9wYWdlfTwvdGQ+PHRkPlBhZ2UgeyRwYWdlX2xpbmtzfTwvdGQ+PHRkPnskbmV4dF9wYWdlfTwvdGQ+PC90cj48L3RhYmxlPnsvaWZ9CntlbHNlfQo8cD5ObyByZXZpc2lvbnMgYXJlIGluIHRoZSBkYXRhYmFzZS48L3A+CnsvaWZ9Cg==]]></data>
  </file>
  <file>
    <filename>/templates/plugin.tpl</filename>
    <isdir>0</isdir>
    <data><![CDATA[PGgzPnskbG91ZG5lc3N9PC9oMz4=]]></data>
  </file>
  <file>
    <filename>/templates/snapshots.tpl</filename>
    <isdir>0</isdir>
    <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD57JGFkbWluX25hdn08L3A+CntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQp7JHN0YXJ0Zm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+PHN0cm9uZz57JHRpdGxlX3NuYXBzaG90X25vdF95ZXR9PC9zdHJvbmc+PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zbmFwc2hvdF9uYW1lfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zbmFwc2hvdF9uYW1lfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+Cgk8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
  </file>
</module>
