<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>CGEcommerceBase</name>
	<version>1.6.2</version>
  <mincmsversion>1.12.1</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBjb21tb24gYmFzZSBvZiBjb21tdW5pY2F0aW9ucyBmb3IgYWxsIGVjb21tZXJjZSBtb2R1bGVzLiAgSXQgYWxsb3dzIHNwZWNpZnlpbmcgd2hpY2ggYXZhaWxhYmxlIHN1cHBsaWVycyB5b3Ugd291IHdvdWxkIGxpa2UgdG8gdXNlLCBhcyB3ZWxsIGFzIGNhcnQsIHRheCwgc2hpcHBpbmcsIGFuZCBwYXltZW50IGdhdGV3YXlzLiAgSXQgYWxzbyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwaXMgZm9yIGNvbW11bmljYXRpb24gb2YgZGF0YSBiZXR3ZWVuIHRoZSB2YXJpb3VzIG1vZHVsZXMuPC9wPgo8aDM+RmVhdHVyZXM6PC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgbm8gcGx1Z2luIGludGVyZmFjZSBvZiBpdHMgb3duICh3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIHRhZyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFkZCBpdGVtcyB0byB0aGUgY2FydC4uLi4gc2VlIGJlbG93LjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPgo8cD5BZnRlciBpbnN0YWxsYXRpb24gb2YgYWxsIG9mIHRoZSBkZXNpcmVkIGVjb21tZXJjZSBtb2R1bGVzIHlvdSBzaG91bGQgZW50ZXIgdGhlIENHRWNvbW1lcmNlQmFzZSBhZG1pbiBwYW5lbCBhbmQgY29uZmlndXJlIHRoZSB2YXJpb3VzIG9wdGlvbnMuPC9wPgo8aDM+U21hcnR5IFRhZ3M8L2gzPgo8dWw+CiAgPGxpPjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ2Vjb21tX2Zvcm1fYWRkdG9jYXJ0IHNvdXJjZT1Qcm9kdWN0cyBwcm9kdWM9XCRudW19PC9zcGFuPgogICA8cD5UaGlzIHRhZyB1c2VzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY2FydCBtb2R1bGUgYW5kIGRpc3BsYXlzIGEgZm9ybSB0byBhbGxvdyB0aGUgdXNlciB0byBhZGQgYW4gaXRlbSB0byB0aGUgY2FydC48YnIvPlBhcmFtZXRlcnM6PC9wPgogICA8dWw+CiAgICA8bGk+c291cmNlIC0gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgc291cmNlIG1vZHVsZS4gIFRoaXMgbW9kdWxlIG11c3QgYmUgc2VsZWN0ZWQgYXMgYSBzdXBwbGllciBpbiB0aGUgQ0dFY29tbWVyY2VCYXNlIGFkbWluIHBhbmVsLjwvbGk+CiAgICA8bGk+cHJvZHVjdCAtIHNwZWNpZnkgdGhlIHVuaXF1ZSA8ZW0+KGludGVnZXIpPC9lbT4gaWRlbnRpZmllciBvZiB0aGUgcHJvZHVjdCB3aXRoaW4gdGhlIHNvdXJjZSBtb2R1bGUuPC9saT4KICAgPC91bD4KICAgPHA+QW55IG90aGVyIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhpcyB0YWcgYXJlIHBhc3NlZCB0byB0aGUgYXBwcm9wcmlhdGUgbW9kdWxlLCBmb3IgZXhhbXBsZSBmb3Igc3BlY2lmeWluZyBhIGRpZmZlcmVudCB0ZW1wbGF0ZSB5b3UgbWF5IHdhbnQgdG8gYWRkIGFuICZxdW90O2FkZHRvY2FydHRlbXBsYXRlPWZvbyZxdW90OyBhcmd1bWVudC48L3A+CiAgPC9saT4KICA8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NnZWNvbW1fZXJhc2VjYXJ0fTwvc3Bhbj4KICAgIDxwPlRoaXMgdGFnIGVtcHRpZXMgYWxsIGluZm9ybWF0aW9uIGZyb20gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYXJ0LCBhbmQgc2V0cyB0aGUgdmlzaXRvcnMgYmFza2V0IGJhY2sgdG8gYSBjb21wbGV0ZWx5IGVtcHR5IHN0YXRlLjwvcD4KICA8L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jb21wYW55X2FkZHJlc3MgW2Fzc2lnbj0nc3RyaW5nJ119PC9zcGFuPgogICA8cD5UaGlzIHRhZyByZXRyaWV2ZXMgdGhlIGNvbXBhbnkgYWRkcmVzcyBmcm9tIHRoZSBkYXRhYmFzZSwgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L3A+CiAgPC9saT4KICA8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NnZWNvbW1fY3VycmVuY3lfY29kZSBbYXNzaWduPXN0cmluZ119PC9zcGFuPiAtIFJldHVybnMgdGhlIGN1cnJlbnRseSBzZXQgY3VycmVuY3kgY29kZS48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jdXJyZW5jeV9zeW1ib2wgW2Fzc2lnbj1zdHJpbmddfTwvc3Bhbj4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IGN1cnJlbmN5IHN5bWJvbC48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV93ZWlnaHRfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvc3Bhbj4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IHdlaWdodCB1bml0cy48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV93ZWlnaHRfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvc3Bhbj4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IHdlaWdodCB1bml0cy48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9sZW5ndGhfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvc3Bhbj4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IGxlbmd0aCB1bml0cy48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jYXJ0aXRlbV9leGlzdHMgW3NvdXJjZT1zdHJpbmddIFtwcm9kdWN0PWludGVnZXJ8c2t1PXN0cmluZ10gW2V4dHJhPW1peGVkXSBhc3NpZ249c3RyaW5nXX08L3NwYW4+IC0gUmV0dXJucyB0aGUgY3VycmVudGx5IHNldCB3ZWlnaHQgdW5pdHMuCiAgICA8cD5SZXR1cm5zIGVpdGhlciAwIG9yIDEgZGVwZW5kaW5nIG9uIGlmIHRoZSBpdGVtIChpZGVudGlmaWVkIGJ5IGVpdGhlciB0aGUgcHJvdWN0IGlkLCBvciBza3UgZXhpc3RzIGluIHRoZSBjYXJ0LjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByaXZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2dlY29tYmFzZSI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjUzLjE8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuNi4yPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgogPGxpPnYxLjAgLSBBcHJpbCAyMDEwCiAgIDx1bD4KICAgICA8bGk+SW5pdGlhbCBSZWxlYXNlLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPnYxLjAuMSAtIEFwcmlsIDIwMTAKICAgPHVsPgogICAgIDxsaT5NaW5vciBmaXggdG8gdGhlIGdldCBjYXJ0IGZvcm0gc3R1ZmYuPC9saT4KICAgICA8bGk+QWRkcyB0aGUge2NnZWNvbW1fZXJhc2VjYXJ0fSB0YWcuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+djEuMC4yIC0gTWF5IDIwMTAKICAgPHVsPgogICAgIDxsaT5BZGRzIHRoZSBTdG9yZSBJbmZvcm1hdGlvbiB0YWIgYW5kIHJlbGF0ZWQgc21hcnR5IHBsdWdpbnMgYW5kIGFwaSBmdW5jdGlvbnMuPC9saT4KICAgICA8bGk+QWRkcyBwYWNrYWdlIHN0dWZmIHRvIHRoZSBzaGlwcGluZyB0YWIgdG8gYmUgdXNlZCBieSB1cGNvbWluZyBzaGlwcGluZyBtb2R1bGVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPnYxLjEgLSBNYXkgMjAxMAogICA8dWw+CiAgICAgPGxpPkFkZHMgcGFja2FnZSBzdHVmZiB0byB0aGUgc2hpcHBpbmcgdGFiIHRvIGJlIHVzZWQgYnkgdXBjb21pbmcgc2hpcHBpbmcgbW9kdWxlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT52MS4yIC0gSnVuZSAyMDEwCiAgIDx1bD4KICAgICA8bGk+QWRkcyBjYXJ0IHBvbGljeSBmdW5jdGlvbnMsIGFuZCBvdGhlciBtaW5vciBlbmhhbmNtZW50cy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT52MS4yLjEgLSBBdWd1c3QgMjAxMAogICA8dWw+CiAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgZm9yIGEgY2FydCBpdGVtIHRvIGluZGljYXRlIHRoYXQgcXVhbnRpdHkgY2Fubm90IGJlIGFkanVzdGVkICh1c2VmdWwgZm9yIHN1YnNjcmlwdGlvbnMpPC9saT4KICAgICA8bGk+TWlub3IgZW5oYW5jZW1lbnRzIGFuZCBmaXhlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT52MS4yLjIgLSBBdWd1c3QgMjAxMAogICA8dWw+CiAgICAgPGxpPlJlbW92ZSBhbiBlcnJhbnQgZGllIHN0YXRlbWVudC48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT52MS4yLjMgLSBEZWNlbWJlciAyMDEwCiAgIDx1bD4KICAgICA8bGk+QWRkcyBhbiBldmVudCBmb3IgYmVmb3JlIGNhcnQgaXRlbSBhZGQuPC9saT4KICAgICA8bGk+RW5haGNuZXMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgY2dfZWNvbW1fY2FydGl0ZW0gb2JqZWN0LjwvbGk+CiAgICAgPGxpPlJlLW9yZ2FuaXpleiB0aGUgY2dfZWNvbW1fY2FydCBtZXRob2Qgd2l0aCBzdHVmZiBmcm9tIGNnX2Vjb21tPC9saT4KICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICAgPGxpPlNvbWUgbWlub3IgYnVnIGZpeGVzIHJlbGF0ZWQgdG8gRV9TVFJJQ1QgYW5kIEVfREVQUkVDQVRFRC48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMi40IC0gRmVicnVhcnkgMjAxMQogIDx1bD4KICAgIDxsaT5GaXhlcyBtaW5vciBwcmVmZXJlbmNlIGlzc3VlcyBvbiBpbnN0YWxsLjwvbGk+CiAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjMgLSBNYXkgMjAxMQogIDx1bD4KICAgIDxsaT5BZHMgYSBuZXcgc21hcnR5IHBsdWdpbiB0byBhbGxvdyBjaGVja2luZyBpZiBhbiBpdGVtIGlzIGluIHRoZSBjYXJ0Li4gYW5kIGEgYnVuY2ggb2Ygb3RoZXJzLjwvbGk+CiAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjMuMSAtIE1heSAyMDExCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcywgYW5kIGVuaGFuY2VtZW50cy48L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4zLjIgLSBKdWx5IDIwMTEKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeC48L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4zLjMgLSBKdWx5IDIwMTEKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeC48L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4zLjUgLSBBdWd1c3QgMjAxMQogIDx1bD48bGk+QnVnIGZpeC48L2xpPjwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4zLjExIC0gTWF5IDIwMTIKICA8dWw+PGxpPkFkZHMgdGF4IHNoaXBwaW5nIG9wdGlvbi48L2xpPjwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS40LnggLSBBcHJpbCAyMDEzCiAgPHA+PHN0cm9uZz5OT1RFOiBDT01QQVRJQklMSVRZIEJST0tFTi4gIFNPTUUgQ0hBTkdFUyBSRVFVSVJFRC48L3N0cm9uZz48L3A+CiAgPHA+PHN0cm9uZz5OT1RFOiBQSFAgNS4zLnggSVMgUkVRVUlSRUQuPC9zdHJvbmc+PC9wPgogIDx1bD4KICA8bGk+UmVtb3ZlcyBzdXBwb3J0IGZvciBhdHRyaWJ1dGVzLCBhbmQgcmVwbGFjZXMgdGhhdCB3aXRoIG9wdGlvbnMuPC9saT4KICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KICA8L2xpPgoKICA8bGk+VmVyc2lvbiAxLjUueAogIDx1bD4KICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGhhbmRsaW5nIG1vZHVsZXMuPC9saT4KICAgIDxsaT5Nb3JlIHdvcmsgd2l0aCBza3UgYW5kIG9wdGlvbnMgaW4gdmFyaW91cyBjbGFzc2VzICgxLjUuNSk8L2xpPgogIDwvdWw+CgogIDxsaT5WZXJzaW9uIDEuNi54CiAgICA8YnIvPgogICAgPGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5XQVJOSU5HOjwvc3Ryb25nPiBUaGlzIHZlcnNpb24gb2YgdGhlIENHRWNvbW1lcmNlQmFzZSBtb2R1bGUgYW5kIGl0J3MgZGVwZW5kZW50IG1vZHVsdWVzIGltcGxlbWVudHMgbWFueSBjaGFuZ2VzLiAgVGhlcmUgd2lsbCBsaWtlbHkgYmUgY29tcGF0aWJpbGl0eSBpc3N1ZXMuPC9saT4KICAgIDx1bD4KCgk8bEk+QWRkcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBwYXltZW50IGdhdGV3YXlzIC0gQWxsIGdhdGV3YXlzIG11c3QgYmUgdXBkYXRlZCB0byB3b3JrIHdpdGggdGhlIG5ldyBtZWNoYW5pc20uPC9saT4KCTxsaT5BdHRlbXB0IHRvIGltcHJvdmUgYmVoYXZpb3Igd2l0aCBsb2NhbGVzIHRoYXQgZG8gbm90IHVzZXMgLiBhcyBhIGRlY2ltYWwgcG9pbnQgKHZhbHVlcyBzdGlsbCBuZWVkIHRvIGJlIGVudGVyZWQgd2l0aCAuIGFzIGEgZGVjaW1hbCBwb2ludCB0aG91Z2gpPC9saT4KICAgICAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBhIGhhbmRsaW5nIG1vZHVsZS48L2xpPgogICAgICAgIDxsaT5Mb3RzIG9mIGludGVybmFsIGluZnJhc3RydWN0dXJlIHdvcmsuPC9saT4KCTxsaT5Ob3cgcmVxdWlyZSBQSFAgNS40LjExPC9saT4KCTwvdWw+CiAgICAgICAgPC9saT4KICAgIDwvdWw+CjwvdWw+CjxiciAvPg==]]></about>
	<description><![CDATA[A base class for all e-commerce modules this utility also provides common preferences and connectors for the various portions of the ecommerce suite]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.53.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_save_myinfo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYignbXlpbmZvJyk7CgppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkYWRkcmVzcyA9IG5ldyBjZ19lY29tbV9jb21wYW55X2FkZHJlc3MoKTsKICAgICRhZGRyZXNzLT5mcm9tX2FycmF5KCRwYXJhbXMsJycpOwogICAgaWYoICEkYWRkcmVzcy0+aXNfdmFsaWQoKSApCiAgICAgIHsKCSR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZGFkZHJlc3MnKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ215aW5mb19hZGRyZXNzJyxzZXJpYWxpemUoJGFkZHJlc3MpKTsKICAgICAgfQogIH0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_policy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3BvbGljeScpOwoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BvbGljeV9tYXhzZXJ2aWNlcycsJHBhcmFtc1sncG9saWN5X21heHNlcnZpY2VzJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncG9saWN5X21heHByb2R1Y3RzJywkcGFyYW1zWydwb2xpY3lfbWF4cHJvZHVjdHMnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwb2xpY3lfbWF4c3Vic2NyaXB0aW9ucycsJHBhcmFtc1sncG9saWN5X21heHN1YnNjcmlwdGlvbnMnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwb2xpY3lfbWl4ZWRzdWJzY3JpcHRpb25zJywkcGFyYW1zWydwb2xpY3lfbWl4ZWRzdWJzY3JpcHRpb25zJ10pOwoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_prefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CgokdGhlX3RhYiA9ICdjYXJ0JzsKaWYoIGlzc2V0KCRwYXJhbXNbJ3RoZXRhYiddKSApICR0aGVfdGFiID0gdHJpbSgkcGFyYW1zWyd0aGV0YWInXSk7CmVjaG8gJHRoaXMtPlNldEN1cnJlbnRUYWIoJHRoZV90YWIpOwoKJHByZWZtYXAgPSBhcnJheSgpOwokcHJlZm1hcFsnY2FydF9tb2R1bGUnXSA9IGFycmF5KCdjYXJ0X21vZHVsZScsJ3N0cmluZycpOwokcHJlZm1hcFsnc2VsX3BheW1lbnRfbW9kdWxlcyddID0gYXJyYXkoJ3NlbF9wYXltZW50X21vZHVsZXMnLCdhcnJheV9vZl9zdHJpbmdzJyk7CiRwcmVmbWFwWydwcm9tb3Rpb25zX21vZHVsZSddID0gYXJyYXkoJ3Byb21vdGlvbnNfbW9kdWxlJywnc3RyaW5nJyk7CiRwcmVmbWFwWyd0YXhfbW9kdWxlJ10gPSBhcnJheSgndGF4X21vZHVsZScsJ3N0cmluZycpOwokcHJlZm1hcFsndGF4X3NoaXBwaW5nJ10gPSBhcnJheSgndGF4X3NoaXBwaW5nJywnaW50Jyk7CiRwcmVmbWFwWydjdXJyZW5jeV9jb2RlJ10gPSBhcnJheSgnY3VycmVuY3lfY29kZScsJ3N0cmluZycpOwokcHJlZm1hcFsnY3VycmVuY3lfc3ltYm9sJ10gPSBhcnJheSgnY3VycmVuY3lfc3ltYm9sJywnc3RyaW5nJyk7CiRwcmVmbWFwWyd3ZWlnaHRfdW5pdHMnXSA9IGFycmF5KCd3ZWlnaHRfdW5pdHMnLCdzdHJpbmcnKTsKJHByZWZtYXBbJ2xlbmd0aF91bml0cyddID0gYXJyYXkoJ2xlbmd0aF91bml0cycsJ3N0cmluZycpOwokcHJlZm1hcFsnc3VwcGxpZXJfbW9kdWxlcyddID0gYXJyYXkoJ3N1cHBsaWVyX21vZHVsZXMnLCdhcnJheV9vZl9zdHJpbmdzJywnLTEnKTsKJHByZWZtYXBbJ2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJ10gPSBhcnJheSgnYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nLCdzdHJpbmcnKTsKJHByZWZtYXBbJ2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnXSA9IGFycmF5KCdsaW5laXRlbV9kZXNjX3RlbXBsYXRlJywndGVtcGxhdGUnKTsKCiRidXR0b25zID0gYXJyYXkoKTsKJGJ1dHRvbnNbJ3Jlc2V0X2xpbmVpdGVtX2Rlc2MnXSA9ICdyZXNldF9saW5laXRlbV9kZXNjJzsKCi8vIHByb2Nlc3MgYnV0dG9ucwpmb3JlYWNoKCAkYnV0dG9ucyBhcyAkYnV0dG9uX25hbWUgPT4gJG1ldGhvZCApIHsKICAgIGlmKCBpc3NldCgkcGFyYW1zWyRidXR0b25fbmFtZV0pICkgewogICAgICAgIGlmKCBtZXRob2RfZXhpc3RzKCdjZ19lY29tbScsJG1ldGhvZCkgKQl7CiAgICAgICAgICAgIGNhbGxfdXNlcl9mdW5jKGFycmF5KCdjZ19lY29tbScsJG1ldGhvZCksJHBhcmFtcyk7CiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9Cn0KCi8vIGFzc3VtZSBzdWJtaXQgd2FzIHByZXNzZWQuCmZvcmVhY2goICRwcmVmbWFwIGFzICRwYXJhbW5hbWUgPT4gJGRhdGEgKSB7CiAgICAkcHJlZm5hbWUgPSAkZGF0YVswXTsKICAgICR0eXBlID0gJGRhdGFbMV07CgogICAgc3dpdGNoKCR0eXBlKSB7CiAgICBjYXNlICdhcnJheV9vZl9zdHJpbmdzJzoKICAgICAgICAkbm9uZSA9IGlzc2V0KCRkYXRhWzJdKSA/ICRkYXRhWzJdIDogJyc7CiAgICAgICAgJHRtcCA9ICcnOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWyRwYXJhbW5hbWVdKSApIHsKICAgICAgICAgICAgaWYoIGluX2FycmF5KCRub25lLCRwYXJhbXNbJHBhcmFtbmFtZV0pICkgewogICAgICAgICAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJHByZWZuYW1lLCcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICR0bXAgPSBpbXBsb2RlKCcsJywkcGFyYW1zWyRwYXJhbW5hbWVdKTsKICAgICAgICAgICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCRwcmVmbmFtZSx0cmltKCR0bXApKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBicmVhazsKCiAgICBjYXNlICd0ZW1wbGF0ZSc6CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWyRwYXJhbW5hbWVdKSApIGNvbnRpbnVlOwogICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgkcHJlZm5hbWUsdHJpbSgkcGFyYW1zWyRwYXJhbW5hbWVdKSk7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnc3RyaW5nJzoKICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJHBhcmFtbmFtZV0pICkgY29udGludWU7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJHByZWZuYW1lLHRyaW0oJHBhcmFtc1skcGFyYW1uYW1lXSkpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnZmxvYXQnOgogICAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1skcGFyYW1uYW1lXSkgKSBjb250aW51ZTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkcHJlZm5hbWUsKGZsb2F0KSRwYXJhbXNbJHBhcmFtbmFtZV0pOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ2ludCc6CiAgICBkZWZhdWx0OgogICAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1skcGFyYW1uYW1lXSkgKSBjb250aW51ZTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkcHJlZm5hbWUsKGludCkkcGFyYW1zWyRwYXJhbW5hbWVdKTsKICAgICAgICBicmVhazsKICAgIH0KfQoKJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19wcmVmc19zYXZlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbXlpbmZvJywkdGhpcy0+TGFuZygndGFiX215aW5mb19zZXR0aW5ncycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdnZW5lcmFsJywkdGhpcy0+TGFuZygndGFiX2dlbmVyYWxfc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncG9saWN5JywkdGhpcy0+TGFuZygndGFiX3BvbGljeScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzdXBwbGllcnMnLCR0aGlzLT5MYW5nKCd0YWJfc3VwcGxpZXJfc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignY2FydCcsJHRoaXMtPkxhbmcoJ3RhYl9jYXJ0X3NldHRpbmdzJykpOwplY2hvICR0aGlzLT5TZXRUYWJoZWFkZXIoJ3RheGVzJywkdGhpcy0+TGFuZygndGFiX3RheF9zZXR0aW5ncycpKTsKLy9lY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3BhY2thZ2luZycsJHRoaXMtPkxhbmcoJ3RhYl9wYWNrYWdpbmdfc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignaGFuZGxpbmcnLCR0aGlzLT5MYW5nKCd0YWJfaGFuZGxpbmdfc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignc2hpcHBpbmcnLCR0aGlzLT5MYW5nKCd0YWJfc2hpcHBpbmdfc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncHJvbW90aW9ucycsJHRoaXMtPkxhbmcoJ3RhYl9wcm9tb3Rpb25fc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncGF5bWVudCcsJHRoaXMtPkxhbmcoJ3RhYl9wYXltZW50X3NldHRpbmdzJykpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ215aW5mbycpOwppbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fbXlpbmZvX3RhYi5waHAnOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdnZW5lcmFsJyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9nZW5lcmFsX3RhYi5waHAnOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwb2xpY3knKTsKaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3BvbGljeV90YWIucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignc3VwcGxpZXJzJyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9zdXBwbGllcnNfdGFiLnBocCc7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2NhcnQnKTsKaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2NhcnRfdGFiLnBocCc7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3RheGVzJyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl90YXhlc190YWIucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgovLyBlY2hvICR0aGlzLT5TdGFydFRhYigncGFja2FnaW5nJyk7Ci8vIGluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9wYWNrYWdpbmdfdGFiLnBocCc7Ci8vIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2hhbmRsaW5nJyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9oYW5kbGluZ190YWIucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignc2hpcHBpbmcnKTsKaW5jbHVkZSBkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3NoaXBwaW5nX3RhYi5waHAnOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwcm9tb3Rpb25zJyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9wcm9tb3Rpb25zX3RhYi5waHAnOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwYXltZW50Jyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9wYXltZW50c190YWIucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/CGEcommerceBase.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCiRjZ2V4dGVuc2lvbnMgPSBjbXNfam9pbl9wYXRoKCRnQ21zLT5jb25maWdbJ3Jvb3RfcGF0aCddLCdtb2R1bGVzJywnQ0dFeHRlbnNpb25zJywnQ0dFeHRlbnNpb25zLm1vZHVsZS5waHAnKTsKaWYoICFpc19yZWFkYWJsZSggJGNnZXh0ZW5zaW9ucyApICkgewogIGVjaG8gJzxoMT48Zm9udCBjb2xvcj0icmVkIj5FUlJPUjogVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLjwvZm9udD48L2gxPic7CiAgcmV0dXJuOwp9CnJlcXVpcmVfb25jZSgkY2dleHRlbnNpb25zKTsKCmRlZmluZSgnQ0dFQ09NQl9BVFRSSUJfSVRFTV9ERVNDUklQVElPTicsJ3skYXR0cmliX3RleHR9ICh7JGN1cnJlbmN5X3N5bWJvbH17JGF0dHJpYl9hZGp1c3R8bnVtYmVyX2Zvcm1hdDoyfSknKTsKCmNsYXNzIENHRWNvbW1lcmNlQmFzZSBleHRlbmRzIENHRXh0ZW5zaW9ucwp7CiAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgICAgICR0aGlzLT5jYWNoZWRfcmVzb3VyY2VzID0gTlVMTDsKICAgICAgICAkdGhpcy0+Y2FjaGVkX2V2ZW50X3R5cGVzID0gTlVMTDsKICAgICAgICAkdGhpcy0+YWRtaW5mdW5jc19sb2FkZWQgPSBmYWxzZTsKICAgICAgICAkdGhpcy0+ZmVmdW5jc19sb2FkZWQgPSBmYWxzZTsKICAgICAgICAkdGhpcy0+Y29tbW9uZnVuY3NfbG9hZGVkID0gZmFsc2U7CiAgICAgICAgJHRoaXMtPnNlYXJjaGZ1bmNzX2xvYWRlZCA9IGZhbHNlOwogICAgfQoKICAgIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQogICAgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBmdW5jdGlvbiBHZXROYW1lKCkgeyByZXR1cm4gJ0NHRWNvbW1lcmNlQmFzZSc7IH0KICAgIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgfQogICAgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcxLjYuMic7IH0KICAgIGZ1bmN0aW9uIEdldEF1dGhvcigpIHsgcmV0dXJuICdjYWxndXkxMDAwJzsgfQogICAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7IHJldHVybiAnY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyc7IH0KICAgIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpIHsgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvY2hhbmdlbG9nLmluYycpOyB9CiAgICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIHRydWU7IH0KICAgIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgcmV0dXJuICdlY29tbWVyY2UnOyB9CiAgICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZHVsZV9kZXNjcmlwdGlvbicpOyB9CiAgICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKTsgfQogICAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjUzLjEnKTsgfQogICAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMS4xMi4xJzsgfQogICAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7IH0KICAgIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQogICAgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdhc2tfcmVhbGx5X3VuaW5zdGFsbCcpOyB9CiAgICBmdW5jdGlvbiBHZXRFdmVudEhlbHAoJGV2ZW50X25hbWUpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycuJGV2ZW50X25hbWUpOyB9CiAgICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uKCRldmVudF9uYW1lKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZXZlbnRfZGVzY18nLiRldmVudF9uYW1lKTsgfQogICAgZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KICAgIGZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKSB7IHJldHVybiBUUlVFOyB9CgogICAgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgICB7CiAgICAgICAgJHR4dCA9IHBhcmVudDo6R2V0SGVhZGVySFRNTCgpOwogICAgICAgICRvYmogPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0pRdWVyeVRvb2xzJyk7CiAgICAgICAgaWYoIGlzX29iamVjdCgkb2JqKSApIHsKICAgICAgICAgICAgJHRtcGwgPSA8PDxFT1QKe0pRdWVyeVRvb2xzIGFjdGlvbj0naW5janMnIGV4Y2x1ZGU9J2Zvcm0nfQp7SlF1ZXJ5VG9vbHMgYWN0aW9uPSdyZWFkeSd9CkVPVDsKICAgICAgICAgICAgJHR4dCAuPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRtcGwpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICR0eHQ7CiAgICB9CgogICAgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCiAgICB7CiAgICAgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogICAgICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgICAgICR0aGlzLT5BZGRJbWFnZURpcignaWNvbnMnKTsKCiAgICAgICAgY2dlY29tbV9zbWFydHk6OmluaXQoKTsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgovKioKICogQmFzZSBlLWNvbW1lcmNlIGV4Y2VwdGlvbiBjbGFzcwogKi8KY2xhc3MgQ0dFY29tbWVyY2VFeGNlcHRpb24gZXh0ZW5kcyBDbXNFeGNlcHRpb24ge30KCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogPGxpPnYxLjAgLSBBcHJpbCAyMDEwCiAgIDx1bD4KICAgICA8bGk+SW5pdGlhbCBSZWxlYXNlLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPnYxLjAuMSAtIEFwcmlsIDIwMTAKICAgPHVsPgogICAgIDxsaT5NaW5vciBmaXggdG8gdGhlIGdldCBjYXJ0IGZvcm0gc3R1ZmYuPC9saT4KICAgICA8bGk+QWRkcyB0aGUge2NnZWNvbW1fZXJhc2VjYXJ0fSB0YWcuPC9saT4KICAgPC91bD4KIDwvbGk+CiA8bGk+djEuMC4yIC0gTWF5IDIwMTAKICAgPHVsPgogICAgIDxsaT5BZGRzIHRoZSBTdG9yZSBJbmZvcm1hdGlvbiB0YWIgYW5kIHJlbGF0ZWQgc21hcnR5IHBsdWdpbnMgYW5kIGFwaSBmdW5jdGlvbnMuPC9saT4KICAgICA8bGk+QWRkcyBwYWNrYWdlIHN0dWZmIHRvIHRoZSBzaGlwcGluZyB0YWIgdG8gYmUgdXNlZCBieSB1cGNvbWluZyBzaGlwcGluZyBtb2R1bGVzLjwvbGk+CiAgIDwvdWw+CiA8L2xpPgogPGxpPnYxLjEgLSBNYXkgMjAxMAogICA8dWw+CiAgICAgPGxpPkFkZHMgcGFja2FnZSBzdHVmZiB0byB0aGUgc2hpcHBpbmcgdGFiIHRvIGJlIHVzZWQgYnkgdXBjb21pbmcgc2hpcHBpbmcgbW9kdWxlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT52MS4yIC0gSnVuZSAyMDEwCiAgIDx1bD4KICAgICA8bGk+QWRkcyBjYXJ0IHBvbGljeSBmdW5jdGlvbnMsIGFuZCBvdGhlciBtaW5vciBlbmhhbmNtZW50cy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT52MS4yLjEgLSBBdWd1c3QgMjAxMAogICA8dWw+CiAgICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgZm9yIGEgY2FydCBpdGVtIHRvIGluZGljYXRlIHRoYXQgcXVhbnRpdHkgY2Fubm90IGJlIGFkanVzdGVkICh1c2VmdWwgZm9yIHN1YnNjcmlwdGlvbnMpPC9saT4KICAgICA8bGk+TWlub3IgZW5oYW5jZW1lbnRzIGFuZCBmaXhlcy48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT52MS4yLjIgLSBBdWd1c3QgMjAxMAogICA8dWw+CiAgICAgPGxpPlJlbW92ZSBhbiBlcnJhbnQgZGllIHN0YXRlbWVudC48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT52MS4yLjMgLSBEZWNlbWJlciAyMDEwCiAgIDx1bD4KICAgICA8bGk+QWRkcyBhbiBldmVudCBmb3IgYmVmb3JlIGNhcnQgaXRlbSBhZGQuPC9saT4KICAgICA8bGk+RW5haGNuZXMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgY2dfZWNvbW1fY2FydGl0ZW0gb2JqZWN0LjwvbGk+CiAgICAgPGxpPlJlLW9yZ2FuaXpleiB0aGUgY2dfZWNvbW1fY2FydCBtZXRob2Qgd2l0aCBzdHVmZiBmcm9tIGNnX2Vjb21tPC9saT4KICAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICAgPGxpPlNvbWUgbWlub3IgYnVnIGZpeGVzIHJlbGF0ZWQgdG8gRV9TVFJJQ1QgYW5kIEVfREVQUkVDQVRFRC48L2xpPgogICA8L3VsPgogPC9saT4KIDxsaT5WZXJzaW9uIDEuMi40IC0gRmVicnVhcnkgMjAxMQogIDx1bD4KICAgIDxsaT5GaXhlcyBtaW5vciBwcmVmZXJlbmNlIGlzc3VlcyBvbiBpbnN0YWxsLjwvbGk+CiAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjMgLSBNYXkgMjAxMQogIDx1bD4KICAgIDxsaT5BZHMgYSBuZXcgc21hcnR5IHBsdWdpbiB0byBhbGxvdyBjaGVja2luZyBpZiBhbiBpdGVtIGlzIGluIHRoZSBjYXJ0Li4gYW5kIGEgYnVuY2ggb2Ygb3RoZXJzLjwvbGk+CiAgPC91bD4KIDwvbGk+CiA8bGk+VmVyc2lvbiAxLjMuMSAtIE1heSAyMDExCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcywgYW5kIGVuaGFuY2VtZW50cy48L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4zLjIgLSBKdWx5IDIwMTEKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeC48L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4zLjMgLSBKdWx5IDIwMTEKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeC48L2xpPgogIDwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4zLjUgLSBBdWd1c3QgMjAxMQogIDx1bD48bGk+QnVnIGZpeC48L2xpPjwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS4zLjExIC0gTWF5IDIwMTIKICA8dWw+PGxpPkFkZHMgdGF4IHNoaXBwaW5nIG9wdGlvbi48L2xpPjwvdWw+CiA8L2xpPgogPGxpPlZlcnNpb24gMS40LnggLSBBcHJpbCAyMDEzCiAgPHA+PHN0cm9uZz5OT1RFOiBDT01QQVRJQklMSVRZIEJST0tFTi4gIFNPTUUgQ0hBTkdFUyBSRVFVSVJFRC48L3N0cm9uZz48L3A+CiAgPHA+PHN0cm9uZz5OT1RFOiBQSFAgNS4zLnggSVMgUkVRVUlSRUQuPC9zdHJvbmc+PC9wPgogIDx1bD4KICA8bGk+UmVtb3ZlcyBzdXBwb3J0IGZvciBhdHRyaWJ1dGVzLCBhbmQgcmVwbGFjZXMgdGhhdCB3aXRoIG9wdGlvbnMuPC9saT4KICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KICA8L2xpPgoKICA8bGk+VmVyc2lvbiAxLjUueAogIDx1bD4KICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGhhbmRsaW5nIG1vZHVsZXMuPC9saT4KICAgIDxsaT5Nb3JlIHdvcmsgd2l0aCBza3UgYW5kIG9wdGlvbnMgaW4gdmFyaW91cyBjbGFzc2VzICgxLjUuNSk8L2xpPgogIDwvdWw+CgogIDxsaT5WZXJzaW9uIDEuNi54CiAgICA8YnIvPgogICAgPGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5XQVJOSU5HOjwvc3Ryb25nPiBUaGlzIHZlcnNpb24gb2YgdGhlIENHRWNvbW1lcmNlQmFzZSBtb2R1bGUgYW5kIGl0J3MgZGVwZW5kZW50IG1vZHVsdWVzIGltcGxlbWVudHMgbWFueSBjaGFuZ2VzLiAgVGhlcmUgd2lsbCBsaWtlbHkgYmUgY29tcGF0aWJpbGl0eSBpc3N1ZXMuPC9saT4KICAgIDx1bD4KCgk8bEk+QWRkcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBwYXltZW50IGdhdGV3YXlzIC0gQWxsIGdhdGV3YXlzIG11c3QgYmUgdXBkYXRlZCB0byB3b3JrIHdpdGggdGhlIG5ldyBtZWNoYW5pc20uPC9saT4KCTxsaT5BdHRlbXB0IHRvIGltcHJvdmUgYmVoYXZpb3Igd2l0aCBsb2NhbGVzIHRoYXQgZG8gbm90IHVzZXMgLiBhcyBhIGRlY2ltYWwgcG9pbnQgKHZhbHVlcyBzdGlsbCBuZWVkIHRvIGJlIGVudGVyZWQgd2l0aCAuIGFzIGEgZGVjaW1hbCBwb2ludCB0aG91Z2gpPC9saT4KICAgICAgICA8bGk+QWRkcyBzdXBwb3J0IGZvciBhIGhhbmRsaW5nIG1vZHVsZS48L2xpPgogICAgICAgIDxsaT5Mb3RzIG9mIGludGVybmFsIGluZnJhc3RydWN0dXJlIHdvcmsuPC9saT4KCTxsaT5Ob3cgcmVxdWlyZSBQSFAgNS40LjExPC9saT4KCTwvdWw+CiAgICAgICAgPC9saT4KICAgIDwvdWw+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_cart_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfcHJlZnMnLCRyZXR1cm5pZCwKCQkJCQkJICAgICBhcnJheSgndGhldGFiJz0+J2NhcnQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJG1vZHVsZV9saXN0ID0gbW9kdWxlX2hlbHBlcjo6Z2V0X21vZHVsZXNfd2l0aF9tZXRob2QoJ0lzQ2FydE1vZHVsZScpOwokbW9kdWxlX2xpc3QgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkbW9kdWxlX2xpc3QsLTEsJHRoaXMtPkxhbmcoJ25vbmUnKSk7CiRzbWFydHktPmFzc2lnbignY2FydF9tb2R1bGVzJywkbW9kdWxlX2xpc3QpOwokc21hcnR5LT5hc3NpZ24oJ2NhcnRfbW9kdWxlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FydF9tb2R1bGUnLC0xKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2NhcnRfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_general_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfcHJlZnMnLCRyZXR1cm5pZCwKCQkJCQkJICAgICBhcnJheSgndGhldGFiJz0+J2dlbmVyYWwnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9zeW1ib2wnKSk7CiRzbWFydHktPmFzc2lnbignY3VycmVuY3lfY29kZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbmN5X2NvZGUnKSk7CiRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnd2VpZ2h0X3VuaXRzJykpOwokc21hcnR5LT5hc3NpZ24oJ2xlbmd0aF91bml0cycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2xlbmd0aF91bml0cycsJ2luJykpOwokdW5pdHMgPSBhcnJheSgpOwokdW5pdHNbJ2luJ10gPSAkdGhpcy0+TGFuZygndW5pdHNfaW5jaGVzJyk7CiR1bml0c1snY20nXSA9ICR0aGlzLT5MYW5nKCd1bml0c19jZW50aW1ldGVycycpOwokc21hcnR5LT5hc3NpZ24oJ3VuaXRzJywkdW5pdHMpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2dlbmVyYWxfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_handling_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMyBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHdlaWdodF91bml0cyA9IGNnX2Vjb21tOjpnZXRfd2VpZ2h0X3VuaXRzKCk7CiRsZW5ndGhfdW5pdHMgPSBjZ19lY29tbTo6Z2V0X2xlbmd0aF91bml0cygpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZGVmYXVsdGFkbWluJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHRtcCA9IG1vZHVsZV9oZWxwZXI6OmdldF9tb2R1bGVzX3dpdGhfbWV0aG9kKCdDYWxjdWxhdGVIYW5kbGluZycpOwokbW9kdWxlX2xpc3QgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkdG1wLC0xLCR0aGlzLT5MYW5nKCdub25lJykpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2hhbmRsaW5nX3N1Ym1pdCddKSApICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdoYW5kbGluZ19tb2R1bGUnLHRyaW0oJHBhcmFtc1snaGFuZGxpbmdfbW9kdWxlJ10pKTsKCiRzbWFydHktPmFzc2lnbignaGFuZGxpbmdfbW9kdWxlcycsJG1vZHVsZV9saXN0KTsKJHNtYXJ0eS0+YXNzaWduKCdoYW5kbGluZ19tb2R1bGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoYW5kbGluZ19tb2R1bGUnLC0xKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2hhbmRsaW5nX3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_myinfo_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdteWluZm9fYWRkcmVzcycsJycpOwokbXlfYWRkcmVzcyA9ICcnOwppZiggJHRtcCApCiAgewogICAgJG15X2FkZHJlc3MgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICB9CmVsc2UKICB7CiAgICAkbXlfYWRkcmVzcyA9IG5ldyBjZ19lY29tbV9jb21wYW55X2FkZHJlc3M7CiAgfQoKLy8KLy8gZ2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eQovLwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2F2ZV9teWluZm8nKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignbXlfYWRkcmVzcycsJG15X2FkZHJlc3MpOwokc3RhdGVfbGlzdCA9IGNnZV9hcnJheTo6aGFzaF9wcmVwZW5kKCR0aGlzLT5nZXRfc3RhdGVfbGlzdF9vcHRpb25zKCksJy0xJywkdGhpcy0+TGFuZygnbm90X2FwcGxpY2FibGUnKSk7CiRzbWFydHktPmFzc2lnbignc3RhdGVfbGlzdCcsJHN0YXRlX2xpc3QpOwokc21hcnR5LT5hc3NpZ24oJ2NvdW50cnlfbGlzdCcsJHRoaXMtPmdldF9jb3VudHJ5X2xpc3Rfb3B0aW9ucygpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fbXlpbmZvX3RhYi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_packaging_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHdlaWdodF91bml0cyA9IGNnX2Vjb21tOjpnZXRfd2VpZ2h0X3VuaXRzKCk7CiRsZW5ndGhfdW5pdHMgPSBjZ19lY29tbTo6Z2V0X2xlbmd0aF91bml0cygpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZGVmYXVsdGFkbWluJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHRtcCA9IG1vZHVsZV9oZWxwZXI6OmdldF9tb2R1bGVzX3dpdGhfbWV0aG9kKCdDYWxjdWxhdGVQYWNrYWdlcycpOwokbW9kdWxlX2xpc3QgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkdG1wLC0xLCR0aGlzLT5MYW5nKCdub25lJykpOwokc21hcnR5LT5hc3NpZ24oJ3BhY2thZ2luZ19tb2R1bGVzJywkbW9kdWxlX2xpc3QpOwokc21hcnR5LT5hc3NpZ24oJ3BhY2thZ2luZ19tb2R1bGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWNrYWdpbmdfbW9kdWxlJywtMSkpOwoKJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWNrYWdpbmdfcHJvZmlsZScpOwokcGFja2FnaW5nX3Byb2ZpbGUgPSBuZXcgY2dfZWNvbW1fcGFja2FnaW5nX3Byb2ZpbGUoKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ3BhY2thZ2luZ19zdWJtaXQnXSkgKQogIHsKICAgICRvdmVyd2VpZ2h0X2xpbWl0ID0gKGZsb2F0KSRwYXJhbXNbJ292ZXJ3ZWlnaHRfbGltaXQnXTsKICAgIGlmKCAhY2dlX3VuaXRzOjppc193ZWlnaHRfbWV0cmljKCR3ZWlnaHRfdW5pdHMpICkKICAgICAgewoJJG92ZXJ3ZWlnaHRfbGltaXQgKj0gY2dlX3VuaXRzOjpMQlNfVE9fS0c7CiAgICAgIH0KICAgICRwYWNrYWdpbmdfcHJvZmlsZS0+c2V0X292ZXJ3ZWlnaHRfbGltaXQoJG92ZXJ3ZWlnaHRfbGltaXQpOwoKICAgICRib3hlcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkcGFyYW1zWydib3hfbmFtZSddIGFzICRrZXkgPT4gJG5hbWUgKQogICAgICB7CgkkbmFtZSA9IHRyaW0oJHBhcmFtc1snYm94X25hbWUnXVska2V5XSk7Cgkkd2lkdGggPSAgKGZsb2F0KSRwYXJhbXNbJ2JveF93aWR0aCddWyRrZXldOwoJJGhlaWdodCA9IChmbG9hdCkkcGFyYW1zWydib3hfaGVpZ2h0J11bJGtleV07CgkkbGVuZ3RoID0gKGZsb2F0KSRwYXJhbXNbJ2JveF9sZW5ndGgnXVska2V5XTsKCSR3ZWlnaHQgPSAoZmxvYXQpJHBhcmFtc1snYm94X3dlaWdodCddWyRrZXldOwoJJHNjb3JlID0gKGludCkkcGFyYW1zWydib3hfc2NvcmUnXVska2V5XTsKCglpZiggIWVtcHR5KCRuYW1lKSAmJiAkd2lkdGggPiAwICYmICRoZWlnaHQgPiAwICYmICRsZW5ndGggPiAwICYmICR3ZWlnaHQgPiAwICkKCSAgewoJICAgIGlmKCAhY2dlX3VuaXRzOjppc19sZW5ndGhfbWV0cmljKCRsZW5ndGhfdW5pdHMpICkKCSAgICAgIHsKCQkkd2lkdGggKj0gY2dlX3VuaXRzOjpJTkNIRVNfVE9fQ007CgkJJGhlaWdodCAqPSBjZ2VfdW5pdHM6OklOQ0hFU19UT19DTTsKCQkkbGVuZ3RoICo9IGNnZV91bml0czo6SU5DSEVTX1RPX0NNOwoJICAgICAgfQoJICAgIGlmKCAhY2dlX3VuaXRzOjppc193ZWlnaHRfbWV0cmljKCR3ZWlnaHRfdW5pdHMpICkKCSAgICAgIHsKCQkkd2VpZ2h0ICo9IGNnZV91bml0czo6TEJTX1RPX0tHOwoJICAgICAgfQoJICAgICRib3ggPSBuZXcgY2dfZWNvbW1fcGFja2FnaW5nX2JveCgkbmFtZSwkd2VpZ2h0LCRzY29yZSk7CgkgICAgJGJveFsnd2lkdGgnXSA9ICR3aWR0aDsKCSAgICAkYm94WydoZWlnaHQnXSA9ICRoZWlnaHQ7CgkgICAgJGJveFsnbGVuZ3RoJ10gPSAkbGVuZ3RoOwoJICAgICRib3hbJ3dlaWdodCddID0gJHdlaWdodDsKCSAgICBpZiggJGJveC0+aXNfdmFsaWQoKSApCgkgICAgICB7CgkJJGJveGVzW10gPSAkYm94OwoJICAgICAgfQoJICB9CgoJLy8gc29ydCB0aGUgYm94ZXMuCgl1YXNvcnQoJGJveGVzLGFycmF5KCdjZ19lY29tbV9wYWNrYWdpbmdfYm94JywnY21wJykpOwoJJHBhY2thZ2luZ19wcm9maWxlLT5zZXRfYm94ZXMoJGJveGVzKTsKICAgICAgfQoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydzaGlwX3NlcGVyYXRlbHknXSkgKQogICAgICB7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hpcF9zZXBlcmF0ZWx5Jyx0cmltKCRwYXJhbXNbJ3NoaXBfc2VwZXJhdGVseSddKSk7CiAgICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydzaGlwX2RpbWVuc2lvbnMnXSkgKQogICAgICB7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hpcF9kaW1lbnNpb25zJyx0cmltKCRwYXJhbXNbJ3NoaXBfZGltZW5zaW9ucyddKSk7CiAgICAgIH0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYWNrYWdpbmdfbW9kdWxlJyx0cmltKCRwYXJhbXNbJ3BhY2thZ2luZ19tb2R1bGUnXSkpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhY2thZ2luZ19wcm9maWxlJyxzZXJpYWxpemUoJHBhY2thZ2luZ19wcm9maWxlKSk7CiAgfQplbHNlIGlmKCR0bXApCiAgewogICAgJHBhY2thZ2luZ19wcm9maWxlID0gdW5zZXJpYWxpemUoJHRtcCk7CiAgICBkZWJ1Z19kaXNwbGF5KCRwYWNrYWdpbmdfcHJvZmlsZSk7CiAgfQoKLy8gY29udmVydCB0aGUgc2hpcHBpbmcgcHJvZmlsZSBiYWNrIGludG8gZGlzcGxheSB1bml0cy4KaWYoICFjZ2VfdW5pdHM6OmlzX3dlaWdodF9tZXRyaWMoJHdlaWdodF91bml0cykgKQogIHsKICAgICRwYWNrYWdpbmdfcHJvZmlsZS0+c2V0X292ZXJ3ZWlnaHRfbGltaXQoJHBhY2thZ2luZ19wcm9maWxlLT5nZXRfb3ZlcndlaWdodF9saW1pdCgpKmNnZV91bml0czo6S0dfVE9fTEJTKTsKICB9CmZvciggJGkgPSAwOyAkaSA8ICRwYWNrYWdpbmdfcHJvZmlsZS0+Z2V0X2JveF9jb3VudCgpOyAkaSsrICkKICB7CiAgICAkaXRlbSA9ICRwYWNrYWdpbmdfcHJvZmlsZS0+Z2V0X2JveF9hdCgkaSk7CiAgICBpZiggIWNnZV91bml0czo6aXNfd2VpZ2h0X21ldHJpYygkd2VpZ2h0X3VuaXRzKSApCiAgICAgIHsKCSRpdGVtWyd3ZWlnaHQnXSA9ICRpdGVtWyd3ZWlnaHQnXSAqIGNnZV91bml0czo6S0dfVE9fTEJTOwogICAgICB9CiAgICBpZiggIWNnZV91bml0czo6aXNfbGVuZ3RoX21ldHJpYygkbGVuZ3RoX3VuaXRzKSApCiAgICAgIHsKCSRpdGVtWyd3aWR0aCddID0gJGl0ZW1bJ3dpZHRoJ10gKiBjZ2VfdW5pdHM6OkNNX1RPX0lOQ0hFUzsKCSRpdGVtWydoZWlnaHQnXSA9ICRpdGVtWydoZWlnaHQnXSAqIGNnZV91bml0czo6Q01fVE9fSU5DSEVTOwoJJGl0ZW1bJ2xlbmd0aCddID0gJGl0ZW1bJ2xlbmd0aCddICogY2dlX3VuaXRzOjpDTV9UT19JTkNIRVM7CiAgICAgIH0KICB9CgovLyBhZGQgYSBkdW1teSBib3guCiRib3ggPSBuZXcgY2dfZWNvbW1fcGFja2FnaW5nX2JveCgnJywwLjAsJHBhY2thZ2luZ19wcm9maWxlLT5nZXRfYm94X2NvdW50KCkrMSk7CiRwYWNrYWdpbmdfcHJvZmlsZS0+YWRkX2JveCgkYm94KTsKCi8vIGhhY2sgc2hvdWxkIGJlIHNvdXJjZSBtb2R1bGUgaW5kZXBlbmRhbnQKaWYoIGNsYXNzX2V4aXN0cygncHJvZHVjdF9vcHMnKSApCiAgewogICAgJHByb2R1Y3RfZmllbGRzID0gYXJyYXkoJy0xJz0+JHRoaXMtPkxhbmcoJ25vbmUnKSk7CiAgICAkdG1wID0gcHJvZHVjdF9vcHM6OmdldF9maWVsZF9vcHRpb25zKCdjaGVja2JveCcpOwogICAgaWYoICR0bXAgKQogICAgICB7CgkkcHJvZHVjdF9maWVsZHMgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkdG1wLC0xLCR0aGlzLT5MYW5nKCdub25lJykpOwogICAgICB9CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3RzX2NoZWNrYm94ZXMnLCRwcm9kdWN0X2ZpZWxkcyk7CgogICAgJHByb2R1Y3RfZmllbGRzID0gYXJyYXkoJy0xJz0+JHRoaXMtPkxhbmcoJ25vbmUnKSk7CiAgICAkdG1wID0gcHJvZHVjdF9vcHM6OmdldF9maWVsZF9vcHRpb25zKCdkaW1lbnNpb25zJyk7CiAgICBpZiggJHRtcCApCiAgICAgIHsKICAgICAgICAkcHJvZHVjdF9maWVsZHMgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkdG1wLC0xLCR0aGlzLT5MYW5nKCdub25lJykpOwogICAgICB9CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3RzX2RpbWVuc2lvbnMnLCRwcm9kdWN0X2ZpZWxkcyk7CiAgfQovLyBoYWNrCgokc21hcnR5LT5hc3NpZ24oJ3NoaXBfc2VwZXJhdGVseScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NoaXBfc2VwZXJhdGVseScsLTEpKTsKJHNtYXJ0eS0+YXNzaWduKCdzaGlwX2RpbWVuc2lvbnMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaGlwX2RpbWVuc2lvbnMnLC0xKSk7CiRzbWFydHktPmFzc2lnbignc2hpcHBpbmdfcHJvZmlsZScsJHBhY2thZ2luZ19wcm9maWxlKTsKJHNtYXJ0eS0+YXNzaWduKCdsZW5ndGhfdW5pdHMnLCRsZW5ndGhfdW5pdHMpOwokc21hcnR5LT5hc3NpZ24oJ3dlaWdodF91bml0cycsJHdlaWdodF91bml0cyk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fcGFja2FnaW5nX3RhYi50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_payments_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfcHJlZnMnLCRyZXR1cm5pZCxhcnJheSgndGhldGFiJz0+J3BheW1lbnQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHRtcF9tb2R1bGVfbGlzdCA9IG1vZHVsZV9oZWxwZXI6OmdldF9tb2R1bGVzX3dpdGhfY2FwYWJpbGl0eSgncGF5bWVudF9nYXRld2F5JyxhcnJheSgnYmFzZXZlcnNpb24nPT4nMS42JykpOwppZiggY291bnQoJHRtcF9tb2R1bGVfbGlzdCkgKSB7CiAgICAkbW9kdWxlX2xpc3QgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHRtcF9tb2R1bGVfbGlzdCBhcyAkbW9kdWxlX25hbWUgKSB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggJG1vZCAmJiAkbW9kLT5Jc0NvbmZpZ3VyZWQoKSApICRtb2R1bGVfbGlzdFskbW9kdWxlX25hbWVdID0gJG1vZHVsZV9uYW1lOwogICAgfQogICAgaWYoIGNvdW50KCRtb2R1bGVfbGlzdCkgKSAkc21hcnR5LT5hc3NpZ24oJ21vZHVsZV9saXN0JywkbW9kdWxlX2xpc3QpOwp9CgokcGF5bWVudF9tb2R1bGVzID0gYXJyYXkoKTsKJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZWxfcGF5bWVudF9tb2R1bGVzJyk7CmlmKCAkdG1wICkgJHBheW1lbnRfbW9kdWxlcyA9IGV4cGxvZGUoJywnLCR0bXApOwokc21hcnR5LT5hc3NpZ24oJ3NlbF9wYXltZW50X21vZHVsZXMnLCAkcGF5bWVudF9tb2R1bGVzKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fcGF5bWVudHNfdGFiLnRwbCcpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_policy_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfcG9saWN5JykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdG1wID0gYXJyYXkoKTsKZm9yKCAkaSA9IDA7ICRpIDwgNTA7ICRpKysgKSB7CiAgICAkdG1wWyRpXSA9ICRpOwp9CiR0bXBbMTAwMDAwMF0gPSAkdGhpcy0+TGFuZygndW5saW1pdGVkJyk7CiRzbWFydHktPmFzc2lnbignbnVtX29wdGlvbnMnLCR0bXApOwokc21hcnR5LT5hc3NpZ24oJ3N5c3BvbGljeScsY2dfZWNvbW06OmdldF9zeXN0ZW1fY2FydGl0ZW1fcG9saWN5KCkpOwokc21hcnR5LT5hc3NpZ24oJ3BheXBvbGljeScsY2dfZWNvbW06OmdldF9wYXltZW50X2NhcnRpdGVtX3BvbGljeSgpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9wb2xpY3lfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_promotions_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfcHJlZnMnLCRyZXR1cm5pZCwKCQkJCQkJICAgICBhcnJheSgndGhldGFiJz0+J3Byb21vdGlvbnMnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKLy8kdG1wID0gbW9kdWxlX2hlbHBlcjo6Z2V0X21vZHVsZXNfd2l0aF9jYXBhYmlsaXR5KCdwYXltZW50X2dhdGV3YXknLGFycmF5KCdiYXNldmVyc2lvbic9PicxLjAuNScpKTsKJHRtcCA9IG1vZHVsZV9oZWxwZXI6OmdldF9tb2R1bGVzX3dpdGhfY2FwYWJpbGl0eSgncHJvbW90aW9uc19jYWxjdWxhdGlvbicpOwokbW9kdWxlX2xpc3QgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkdG1wLC0xLCR0aGlzLT5MYW5nKCdub25lJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21vdGlvbnNfbW9kdWxlcycsJG1vZHVsZV9saXN0KTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tb3Rpb25zX21vZHVsZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb21vdGlvbnNfbW9kdWxlJywtMSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9wcm9tb3Rpb25zX3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_shipping_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHdlaWdodF91bml0cyA9IGNnX2Vjb21tOjpnZXRfd2VpZ2h0X3VuaXRzKCk7CiRsZW5ndGhfdW5pdHMgPSBjZ19lY29tbTo6Z2V0X2xlbmd0aF91bml0cygpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZGVmYXVsdGFkbWluJykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHRtcCA9IG1vZHVsZV9oZWxwZXI6OmdldF9tb2R1bGVzX3dpdGhfbWV0aG9kKCdDYWxjdWxhdGVTaGlwcGluZycpOwokbW9kdWxlX2xpc3QgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkdG1wLC0xLCR0aGlzLT5MYW5nKCdub25lJykpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3NoaXBwaW5nX3N1Ym1pdCddKSApICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaGlwcGluZ19tb2R1bGUnLHRyaW0oJHBhcmFtc1snc2hpcHBpbmdfbW9kdWxlJ10pKTsKCiRzbWFydHktPmFzc2lnbignc2hpcHBpbmdfbW9kdWxlcycsJG1vZHVsZV9saXN0KTsKJHNtYXJ0eS0+YXNzaWduKCdzaGlwcGluZ19tb2R1bGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaGlwcGluZ19tb2R1bGUnLC0xKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkbWluX3NoaXBwaW5nX3RhYi50cGwnKTsKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_suppliers_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfcHJlZnMnLCRyZXR1cm5pZCwKCQkJCQkJICAgICBhcnJheSgndGhldGFiJz0+J3N1cHBsaWVycycpKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgokbW9kdWxlX2xpc3QgPSBtb2R1bGVfaGVscGVyOjpnZXRfbW9kdWxlc193aXRoX21ldGhvZCgnZ2V0X3Byb2R1Y3RfaW5mbycpOwokbW9kdWxlX2xpc3QgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkbW9kdWxlX2xpc3QsLTEsJHRoaXMtPkxhbmcoJ25vbmUnKSk7CiRzbWFydHktPmFzc2lnbignc3VwcGxpZXJfYWxsX21vZHVsZXMnLCRtb2R1bGVfbGlzdCk7CiR0bXAgPSBjZ19lY29tbTo6Z2V0X3N1cHBsaWVyX21vZHVsZXMoKTsKJHNtYXJ0eS0+YXNzaWduKCdzdXBwbGllcl9tb2R1bGVzJywkdG1wKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfbGluZWl0ZW1fZGVzY190ZW1wbGF0ZScsCgkJJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwKCQkJCSAgICAgICR0aGlzLT5HZXRUZW1wbGF0ZSgnbGluZWl0ZW1fZGVzY190ZW1wbGF0ZScpLAoJCQkJICAgICAgJ2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJywKCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nLENHRUNPTUJfQVRUUklCX0lURU1fREVTQ1JJUFRJT04pKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9zdXBwbGllcnNfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_taxes_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfcHJlZnMnLCRyZXR1cm5pZCwKCQkJCQkJICAgICBhcnJheSgndGhldGFiJz0+J3RheGVzJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCi8vJHRtcCA9IG1vZHVsZV9oZWxwZXI6OmdldF9tb2R1bGVzX3dpdGhfY2FwYWJpbGl0eSgncGF5bWVudF9nYXRld2F5JyxhcnJheSgnYmFzZXZlcnNpb24nPT4nMS4wLjUnKSk7CiR0bXAgPSBtb2R1bGVfaGVscGVyOjpnZXRfbW9kdWxlc193aXRoX21ldGhvZCgnR2V0VGF4ZXNGb3JQcm9kdWN0Jyk7CiRtb2R1bGVfbGlzdCA9IGNnZV9hcnJheTo6aGFzaF9wcmVwZW5kKCR0bXAsLTEsJHRoaXMtPkxhbmcoJ25vbmUnKSk7CiRzbWFydHktPmFzc2lnbigndGF4X21vZHVsZXMnLCRtb2R1bGVfbGlzdCk7CiRzbWFydHktPmFzc2lnbigndGF4X21vZHVsZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3RheF9tb2R1bGUnLC0xKSk7CiRzbWFydHktPmFzc2lnbigndGF4X3NoaXBwaW5nJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGF4X3NoaXBwaW5nJywxKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fdGF4ZXNfdGFiLnRwbCcpOwojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBjb21tb24gYmFzZSBvZiBjb21tdW5pY2F0aW9ucyBmb3IgYWxsIGVjb21tZXJjZSBtb2R1bGVzLiAgSXQgYWxsb3dzIHNwZWNpZnlpbmcgd2hpY2ggYXZhaWxhYmxlIHN1cHBsaWVycyB5b3Ugd291IHdvdWxkIGxpa2UgdG8gdXNlLCBhcyB3ZWxsIGFzIGNhcnQsIHRheCwgc2hpcHBpbmcsIGFuZCBwYXltZW50IGdhdGV3YXlzLiAgSXQgYWxzbyBwcm92aWRlcyBhIHN1aXRlIG9mIGFwaXMgZm9yIGNvbW11bmljYXRpb24gb2YgZGF0YSBiZXR3ZWVuIHRoZSB2YXJpb3VzIG1vZHVsZXMuPC9wPgo8aDM+RmVhdHVyZXM6PC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgbm8gcGx1Z2luIGludGVyZmFjZSBvZiBpdHMgb3duICh3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIHRhZyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFkZCBpdGVtcyB0byB0aGUgY2FydC4uLi4gc2VlIGJlbG93LjwvcD4KPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPgo8cD5BZnRlciBpbnN0YWxsYXRpb24gb2YgYWxsIG9mIHRoZSBkZXNpcmVkIGVjb21tZXJjZSBtb2R1bGVzIHlvdSBzaG91bGQgZW50ZXIgdGhlIENHRWNvbW1lcmNlQmFzZSBhZG1pbiBwYW5lbCBhbmQgY29uZmlndXJlIHRoZSB2YXJpb3VzIG9wdGlvbnMuPC9wPgo8aDM+U21hcnR5IFRhZ3M8L2gzPgo8dWw+CiAgPGxpPjxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ2Vjb21tX2Zvcm1fYWRkdG9jYXJ0IHNvdXJjZT1Qcm9kdWN0cyBwcm9kdWM9XCRudW19PC9zcGFuPgogICA8cD5UaGlzIHRhZyB1c2VzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY2FydCBtb2R1bGUgYW5kIGRpc3BsYXlzIGEgZm9ybSB0byBhbGxvdyB0aGUgdXNlciB0byBhZGQgYW4gaXRlbSB0byB0aGUgY2FydC48YnIvPlBhcmFtZXRlcnM6PC9wPgogICA8dWw+CiAgICA8bGk+c291cmNlIC0gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgc291cmNlIG1vZHVsZS4gIFRoaXMgbW9kdWxlIG11c3QgYmUgc2VsZWN0ZWQgYXMgYSBzdXBwbGllciBpbiB0aGUgQ0dFY29tbWVyY2VCYXNlIGFkbWluIHBhbmVsLjwvbGk+CiAgICA8bGk+cHJvZHVjdCAtIHNwZWNpZnkgdGhlIHVuaXF1ZSA8ZW0+KGludGVnZXIpPC9lbT4gaWRlbnRpZmllciBvZiB0aGUgcHJvZHVjdCB3aXRoaW4gdGhlIHNvdXJjZSBtb2R1bGUuPC9saT4KICAgPC91bD4KICAgPHA+QW55IG90aGVyIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhpcyB0YWcgYXJlIHBhc3NlZCB0byB0aGUgYXBwcm9wcmlhdGUgbW9kdWxlLCBmb3IgZXhhbXBsZSBmb3Igc3BlY2lmeWluZyBhIGRpZmZlcmVudCB0ZW1wbGF0ZSB5b3UgbWF5IHdhbnQgdG8gYWRkIGFuICZxdW90O2FkZHRvY2FydHRlbXBsYXRlPWZvbyZxdW90OyBhcmd1bWVudC48L3A+CiAgPC9saT4KICA8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NnZWNvbW1fZXJhc2VjYXJ0fTwvc3Bhbj4KICAgIDxwPlRoaXMgdGFnIGVtcHRpZXMgYWxsIGluZm9ybWF0aW9uIGZyb20gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYXJ0LCBhbmQgc2V0cyB0aGUgdmlzaXRvcnMgYmFza2V0IGJhY2sgdG8gYSBjb21wbGV0ZWx5IGVtcHR5IHN0YXRlLjwvcD4KICA8L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jb21wYW55X2FkZHJlc3MgW2Fzc2lnbj0nc3RyaW5nJ119PC9zcGFuPgogICA8cD5UaGlzIHRhZyByZXRyaWV2ZXMgdGhlIGNvbXBhbnkgYWRkcmVzcyBmcm9tIHRoZSBkYXRhYmFzZSwgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L3A+CiAgPC9saT4KICA8bGk+PHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NnZWNvbW1fY3VycmVuY3lfY29kZSBbYXNzaWduPXN0cmluZ119PC9zcGFuPiAtIFJldHVybnMgdGhlIGN1cnJlbnRseSBzZXQgY3VycmVuY3kgY29kZS48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jdXJyZW5jeV9zeW1ib2wgW2Fzc2lnbj1zdHJpbmddfTwvc3Bhbj4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IGN1cnJlbmN5IHN5bWJvbC48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV93ZWlnaHRfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvc3Bhbj4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IHdlaWdodCB1bml0cy48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV93ZWlnaHRfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvc3Bhbj4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IHdlaWdodCB1bml0cy48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9sZW5ndGhfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvc3Bhbj4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IGxlbmd0aCB1bml0cy48L2xpPgogIDxsaT48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jYXJ0aXRlbV9leGlzdHMgW3NvdXJjZT1zdHJpbmddIFtwcm9kdWN0PWludGVnZXJ8c2t1PXN0cmluZ10gW2V4dHJhPW1peGVkXSBhc3NpZ249c3RyaW5nXX08L3NwYW4+IC0gUmV0dXJucyB0aGUgY3VycmVudGx5IHNldCB3ZWlnaHQgdW5pdHMuCiAgICA8cD5SZXR1cm5zIGVpdGhlciAwIG9yIDEgZGVwZW5kaW5nIG9uIGlmIHRoZSBpdGVtIChpZGVudGlmaWVkIGJ5IGVpdGhlciB0aGUgcHJvdWN0IGlkLCBvciBza3UgZXhpc3RzIGluIHRoZSBjYXJ0LjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByaXZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2dlY29tYmFzZSI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0EKJGxhbmdbJ2Fza19yZWFsbHlfdW5pbnN0YWxsJ10gPSAnQXJlIHlvdSByZWFsbHkgc3VyZSB0aGF0IHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIG1vZHVsZSc7CiRsYW5nWydhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbiddID0gJ1Byb2R1Y3QgQXR0cmlidXRlIERpc3BsYXkgVGVtcGxhdGUnOwoKI0IKCgojQwokbGFuZ1snY2FydF9tb2R1bGUnXSA9ICdDYXJ0IE1vZHVsZSc7CiRsYW5nWydjdXJyZW5jeV9jb2RlJ10gPSAnQ3VycmVuY3kgQ29kZSc7CiRsYW5nWydjdXJyZW5jeV9zeW1ib2wnXSA9ICdDdXJyZW5jeSBTeW1ib2wnOwoKI0QKCiNFCiRsYW5nWydlcnJfZ2F0ZXdheXNfbm90Zm91bmQnXSA9ICdXZSBjb3VsZCBub3QgZmluZCBhbnkgdmFsaWQgcGF5bWVudCBnYXRld2F5cyBpbnN0YWxsZWQgaW4gdGhpcyBzeXN0ZW0uICBQbGVhc2UgZW5zdXJlIHRoYXQgeW91IGhhdmUgaW5zdGFsbGVkLCBhbmQgY29uZmlndXJlZCBhdCBsZWFzdCBvbmUgY29tcGF0aWJsZSBnYXRld2F5IG1vZHVsZS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGFkZHJlc3MnXSA9ICdBZGRyZXNzIHNwZWNpZmllZCBpcyBpbnZhbGlkIChtaXNzaW5nIG9uZSBvciBtb3JlIHJlcXVpcmVkIGZpZWxkcz8nOwokbGFuZ1snZXZlbnRfZGVzY19DYXJ0QWRqdXN0ZWQnXSA9ICdDYWxsZWQgd2hlbiBidWxrIGFkanVzdG1lbnRzIGFyZSBkb25lIHRvIHRoZSBjYXJ0LCBvciBvbmUgb2YgaXRzIGJhc2tldHMnOwokbGFuZ1snZXZlbnRfZGVzY19DYXJ0SXRlbUFkZFByZSddID0gJ0NhbGxlZCBwcmlvciB0byBhbiBpdGVtIGJlaW5nIGFkZGVkIHRvIHRoZSBjYXJ0JzsKJGxhbmdbJ2V2ZW50X2Rlc2NfQ2FydEl0ZW1BZGRlZCddID0gJ0NhbGxlZCB3aGVuIGEgc2luZ2xlIHByb2R1Y3Qgb3Igc2VydmljZSBpcyBhZGRlZCB0byB0aGUgY2FydCc7CiRsYW5nWydldmVudF9kZXNjX09yZGVyQ3JlYXRlZCddID0gJ0NhbGxlZCBhZnRlciBhbiBvcmRlciBpcyBpbml0aWFsbHkgaW5zZXJ0ZWQgaW50byB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZXZlbnRfZGVzY19PcmRlckRlbGV0ZWQnXSA9ICdDYWxsZWQgYWZ0ZXIgYW4gb3JkZXIgaGFzIGJlZW4gY29tcGxldGVseSByZW1vdmVkJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfT3JkZXJVcGRhdGVkJ10gPSAnQ2FsbGVkIGFmdGVyIGFuIGV4aXN0aW5nIG9yZGVyIGhhcyBiZWVuIHNhdmVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfQ2FydEl0ZW1BZGRQcmUnXSA9IDw8PEVPVAo8cD5TZW50IHByaW9yIHRvIGFuIGl0ZW0gYmVpbmcgYWRkZWQgdG8gdGhlIGNhcnQsIHRoaXMgZXZlbnQgaXMgY2FsbGVkIGFmdGVyIHRoZSBjYXJ0IHBvbGljeSBpcyBjaGVja2VkLCBhbmQgY2FuIGJlIHVzZWQgdG8gYWx0ZXIgdGhlIGl0ZW0uPC9wPgo8aDQ+UGFyYW1ldGVyczo8L2g0Pgo8dWw+CjxsaT4mcXVvdDtleGlzdGluZ19pdGVtcyZxdW90OyAtIDxlbT4ocmVhZCBvbmx5KTwvZW0+ICBBbiBhcnJheSBvZiBjZ19lY29tbV9jYXJ0aXRlbSBpdGVtcyByZXByZXNlbnRpbmcgdGhlIGV4aXN0aW5nIGl0ZW1zIGluIHRoZSBjYXJ0LjwvbGk+CjxsaT4mcXVvdDtjYXJ0X2l0ZW0mcXVvdDsgLSA8ZW0+KG1vZGlmaWFibGUpPC9lbT4gQSByZWZlcmVuY2UgKG1vZGlmaWFibGUpIHRvIGEgY2dfZWNvbW1fY2FydGl0ZW0gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgaXRlbSB0aGF0IGlzIHByb3Bvc2VkIHRvIGFkZCB0byB0aGUgY2FydC48L2xpPgo8L3VsPgpFT1Q7CiRsYW5nWydldmVudF9oZWxwX0NhcnRBZGp1c3RlZCddID0gPDw8RU9UCjxwPlNlbnQgd2hlbiBidWxrIGFkanVzdG1lbnRzIGFyZSBkb25lIHRvIHRoZSBjYXJ0LCBvciBvbmUgb2YgaXRzIGJhc2tldHMuPC9wPgo8aDQ+UGFyYW1ldGVyczo8L2g0Pgo8dWw+CjxsaT4mcXVvdDtjYXJ0X2l0ZW1zJnF1b3Q7IC0gQW4gaGFzaCBvZiBiYXNrZXRzLCBlYWNoIGNvbnRhaW5pbmcgYW4gYXJyYXkgb2YgY2FydCBpdGVtIG9iamVjdHMgYW5kIHNvbWUgc3VtbWFyeSBpbmZvcm1hdGlvbi48L2xpPgo8bGk+JnF1b3Q7c3RhdHVzJnF1b3Q7IC0gQSBzdGF0dXMgc3RyaW5nLCBpbmRpY2F0aW5nIHdldGhlciB0aGlzIGlzIGJlZm9yZSwgb3IgYWZ0ZXIgdGhlIGl0ZW1zIGhhdmUgY2hhbmdlZC48L2xpPgo8bGk+JnF1b3Q7ZXh0cmEmcXVvdDsgLSBBbiBhZGRpdGlvbmFsIHN0cmluZyB0aGF0IG1heSBwcm92aWRlIHNvbWUgc3RhdGUgaW5mb3JtYXRpb24gYXMgdG8gd2hlbiB0aGlzIGFjdGlvbiB3YXMgY2FsbGVkJzsKPC91bD4KRU9UOwokbGFuZ1snZXZlbnRfaGVscF9DYXJ0SXRlbUFkZGVkJ10gPSA8PDxFT1QKPHA+U2VudCB3aGVuIGJ1bGsgYWRqdXN0bWVudHMgYXJlIGRvbmUgdG8gdGhlIGNhcnQsIG9yIG9uZSBvZiBpdHMgYmFza2V0cy48L3A+CjxoND5QYXJhbWV0ZXJzOjwvaDQ+Cjx1bD4KPGxpPiZxdW90O2NhcnRfaXRlbSZxdW90OyAtIFRoZSBzaW5nbGUgY2FydCBpdGVtIG9iamVjdCB0aGF0IHdhcyBhZGRlZC48L2xpPgo8L3VsPgpFT1Q7CiRsYW5nWydldmVudF9oZWxwX09yZGVyQ3JlYXRlZCddID0gPDw8RU9UCjxwPlNlbnQgYWZ0ZXIgYW4gb3JkZXIgaXMgaW5pdGlhbGx5IGluc2VydGVkIGludG8gdGhlIGRhdGFiYXNlLjwvcD4KPGg0PlBhcmFtZXRlcnM6PC9oND4KPHVsPgo8bGk+JnF1b3Q7b3JkZXJfaWQmcXVvdDsgLSBUaGUgbmV3bHkgY3JlYXRlZCBvcmRlciBpZC48L2xpPgo8L3VsPgpFT1Q7CiRsYW5nWydldmVudF9oZWxwX09yZGVyRGVsZXRlZCddID0gPDw8RU9UCjxwPlNlbnQgYWZ0ZXIgYW4gb3JkZXIgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CjxoND5QYXJhbWV0ZXJzOjwvaDQ+Cjx1bD4KPGxpPiZxdW90O29yZGVyX2lkJnF1b3Q7IC0gVGhlIGRlbGV0ZWQgb3JkZXIgaWQuPC9saT4KPC91bD4KRU9UOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlclVwZGF0ZWQnXSA9IDw8PEVPVAo8cD5TZW50IGFmdGVyIGFuIG9yZGVyIGlzIHVwZGF0ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzOjwvaDQ+Cjx1bD4KPGxpPiZxdW90O29yZGVyX2lkJnF1b3Q7IC0gVGhlIG9yZGVyIGlkLjwvbGk+CjwvdWw+CkVPVDsKCiNGCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdDYWxndXlzIEVjb21tZXJjZSBCYXNlJzsKCiNHCiRsYW5nWydnYXRld2F5X3BvbGljeSddID0gJ0dhdGV3YXkgUG9saWN5JzsKCiNICiRsYW5nWydoYW5kbGluZ19tb2R1bGUnXSA9ICdIYW5kbGluZyBNb2R1bGUnOwoKI0kKJGxhbmdbJ2luZm9fYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nXSA9ICdUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyBhdHRyaWJ1dGUgZHJvcGRvd25zLiAgUG9zc2libGUgdmFyaWFibGVzIGFyZSB7JGN1cnJlbmN5X3N5bWJvbH0seyR3ZWlnaHRfdW5pdHN9LHskYXR0cmliX2FkanVzdH0seyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfc2t1fSc7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlJ10gPSAnTnVtZXJvdXMgbW9kdWxlcyB0aGF0IGFjdCBhcyAmcXVvdDtTaG9wcGluZyBDYXJ0cyZxdW90OyBtYXkgYmUgZG93bmxvYWRlZC4gIEVhY2ggb2YgdGhlbSB3aXRoIGRpZmZlcmVudCBiZWhhdmlvdXJzLiAgUGxlYXNlIHNlbGVjdCBvbmUgb2YgdGhlIGluc3RhbGxlZCBjYXJ0IG1vZHVsZXMgZnJvbSB0aGlzIGxpc3QnOwokbGFuZ1snaW5mb19jYXJ0X3BvbGljeSddID0gJ1RoZSBjYXJ0IHBvbGljeSBpcyBpbmZsdWVuY2VkIGJ5IHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhlIHBheW1lbnQgZ2F0ZXdheSwgYW5kIGRldGVybWluZXMgaG93IG1hbnksIGFuZCB3aGF0IHR5cGUgb2YgaXRlbXMgbWF5IGJlIGFkZGVkIHRvIGhlIGNhcnQocykuICBZb3UgbWF5IGZ1cnRoZXIgcmVzdHJpY3QgdGhlIGNhcnQgcG9saWN5LCBidXQgY2Fubm90IGJ5cGFzcyB0aGUgcmVzdHJpY3Rpb25zIHBsYWNlZCBieSB0aGUgZ2F0ZXdheS4nOwokbGFuZ1snaW5mb19saW5laXRlbV9kZXNjX3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgc2luZ2xlIGxpbmUgZGVzY3JpcHRpb24gZm9yIGEgY2FydCBpdGVtLiAgVGhpcyBzYW1lIGRlc2NyaXB0aW9uIGlzIHVzZWQgZm9yIHRoZSBsaW5lIGl0ZW0gaW4gb3JkZXIgcHJvY2Vzc2luZy4nOwokbGFuZ1snaW5mb19oYW5kbGluZ19tb2R1bGUnXSAgPSAnTnVtZXJvdXMgbW9kdWxlcyB0aGF0IHBlcmZvcm0gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgY2FsY3VsYXRpbmcgYSBoYW5kbGluZyBjaGFyZ2UgbWF5IGJlIGRvd25sb2FkZWQuICBFYWNoIG9mIHRoZW0gd2l0aCBkaWZmZXJlbnQgYmVoYXZpb3JzLiAgUGxlYXNlIHNlbGVjdCBvbmUgb2YgdGhlIGluc3RhbGxlZCBoYW5kbGluZyBtb2R1bGVzIGZyb20gdGhpcyBsaXN0JzsKJGxhbmdbJ2luZm9fb3ZlcndlaWdodF9saW1pdCddID0gJ1RoZSB3ZWlnaHQgYXQgd2hpY2ggYW4gaXRlbSBzaG91bGQgYmUgc2hpcHBlZCBpbiBpdHMgb3duIHBhY2thZ2UnOwokbGFuZ1snaW5mb19wYWNrYWdpbmdfbW9kdWxlJ10gPSAnU2VsZWN0IGEgbW9kdWxlIHJlc3BvbnNpYmxlIGZvciBhcnJhbmdpbmcgdGhlIHZhcmlvdXMgaXRlbXMgc2VsZWN0ZWQgaW4gYW4gb3JkZXIgZm9yIHBhY2thZ2luZy4gIElmIG5vbmUgaXMgc2VsZWN0ZWQsIHRoZW4gdGhlIHNoaXBwaW5nIG1heWNhbGN1bGF0ZSBjb3N0cyBpbmRlcGVuZGFudGx5IG9uIGVhY2ggb3JkZXIgaXRlbS4nOwokbGFuZ1snaW5mb19wYXltZW50X21vZHVsZXMyJ10gPSAnVGhlIGUtY29tbWVyY2Ugc3lzdGVtIGFsbG93cyBjaGVja291dCB2aWEgbnVtZXJvdXMgcGF5bWVudCBnYXRld2F5cy4gIEVhY2ggd2l0aCB0aGVpciBvd24gZmVhdHVyZXMgYW5kIGNhcGFiaWxpdGllcy4gIFRoZSBpbnB1dCBiZWxvdyBzaG93cyB0aGUgZ2F0ZXdheSBtb2R1bGVzIHRoYXQgYXJlIGluc3RhbGxlZCBhbmQgY29uZmlndXJlZC4gIFBsZWFzZSBzZWxlY3QgdGhlIGdhdGV3YXlzIHRoYXQgY3VzdG9tZXJzIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBhdCBjaGVja291dC4nOwokbGFuZ1snaW5mb19wcm9tb3Rpb25zX21vZHVsZSddID0gJ051bWVyb3VzIG1vZHVsZXMgdGhhdCBwZXJmb3JtIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHByb3ZpZGluZyBjb3Vwb25zIG9yIHZhcmlvdXMgZm9ybXMgb2YgZGlzY291bnRzIG1heSBiZSBkb3dubG9hZGVkLiAgRWFjaCBvZiB0aGVtIHdpdGggZGlmZmVyZW50IGJlaGF2aW91cnMuICBQbGVhc2Ugc2VsZWN0IG9uZSBvZiB0aGUgaW5zdGFsbGVkIHByb21vdGlvbnMgbW9kdWxlcyBmcm9tIHRoaXMgbGlzdCc7CiRsYW5nWydpbmZvX3NoaXBfZGltZW5zaW9ucyddID0gJ0ZpZWxkIChvZiB0eXBlIGRpbWVuc2lvbnMpIGZyb20gdGhlIFByb2R1Y3RzIG1vZHVsZSB0aGF0IGluZGljYXRlcyB0aGUgc2hpcHBhYmxlIGRpbWVuc2lvbnMgZm9yIHRoaXMgcHJvZHVjdCc7CiRsYW5nWydpbmZvX3NoaXBfc2VwZXJhdGVseSddID0gJ0ZpZWxkIChvZiB0eXBlIGNoZWNrYm94KSBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhpcyB2YWx1ZSBzaG91bGQgYmUgc2hpcHBlZCBhcyBpdHMgb3duIHBhY2thZ2UnOwokbGFuZ1snaW5mb19zaGlwcGluZ19tb2R1bGUnXSA9ICdOdW1lcm91cyBtb2R1bGVzIHRoYXQgcGVyZm9ybSBzaGlwcGluZyBjb3N0IGNhbGN1bGF0aW9ucyBtYXkgYmUgZG93bmxvYWRlZC4gIEVhY2ggb2YgdGhlbSB3aXRoIGRpZmZlcmVudCBiZWhhdmlvdXJzLiAgUGxlYXNlIHNlbGVjdCBvbmUgb2YgdGhlIGluc3RhbGxlZCAgbW9kdWxlcyBmcm9tIHRoaXMgbGlzdCc7CiRsYW5nWydpbmZvX3N1cHBsaWVyX21vZHVsZXMnXSA9ICdTdXBwbGllciBtb2R1bGVzIGFyZSBjYXBhYmxlIG9mIGludGVyYWN0aW5nIHdpdGggdGhlIGNhcnQgYW5kIGFuc3dlcmluZyByZXF1ZXN0cyBmcm9tIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlcy4gIFlvdSBtYXkgc2VsZWN0IG11bHRpcGxlIHN1cHBsaWVyIG1vZHVsZXMuJzsKJGxhbmdbJ2luZm9fdGF4X21vZHVsZSddID0gJ051bWVyb3VzIG1vZHVsZXMgdGhhdCBwZXJmb3JtIHRheCBjYWxjdWxhdGlvbiBtYXkgYmUgZG93bmxvYWRlZC4gIEVhY2ggb2YgdGhlc2Ugd2l0aCBkaWZmZXJlbnQgYmVoYXZpb3Vycy4gIFBsZWFzZSBzZWxlY3Qgb25lIG9mIHRoZSBpbnN0YWxsZWQgdGF4IG1vZHVsZXMgZnJvbSB0aGlzIGxpc3QnOwokbGFuZ1snaW5mb190YXhfc2hpcHBpbmcnXSA9ICdJbiBzb21lIGxvY2F0aW9ucyBzaGlwcGluZyBtYXkgbm90IGJlIHRheGFibGUuICBVc2UgdGhpcyBvcHRpb24gdG8gZW5zdXJlIHRoYXQgbm8gc2hpcHBpbmcgY29zdHMgYXJlIHRheGVkJzsKCiNKCgoKI0sKCgojTAokbGFuZ1snbGVuZ3RoX3VuaXRzJ10gPSAnTGVuZ3RoIFVuaXRzJzsKJGxhbmdbJ2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnXSA9ICdMaW5lIEl0ZW0gRGVzY3JpcHRpb24gVGVtcGxhdGUnOwoKCiNNCiRsYW5nWydtYXhfcHJvZHVjdHMnXSA9ICdNYXhpbXVtIE51bWJlciBvZiBQcm9kdWN0cyBpbiBvbmUgQ2FydCc7CiRsYW5nWydtYXhfc2VydmljZXMnXSA9ICdNYXhpbXVtIE51bWJlciBvZiBTZXJ2aWNlcyBpbiBvbmUgQ2FydCc7CiRsYW5nWydtYXhfc3Vic2NyaXB0aW9ucyddID0gJ01heGltdW0gTnVtYmVyIG9mIFN1YnNjcmlwdGlvbnMgaW4gb25lIENhcnQnOwokbGFuZ1snbWl4ZWRfc3Vic2NyaXB0aW9ucyddID0gJ0FsbG93IGEgbWl4dHVyZSBvZiBwcm9kdWN0cywgc2VydmljZXMgYW5kIHN1YnNjcmlwdGlvbnMgaW4gb25lIGNhcnQ/JzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0EgYmFzZSBjbGFzcyBmb3IgYWxsIGUtY29tbWVyY2UgbW9kdWxlcyB0aGlzIHV0aWxpdHkgYWxzbyBwcm92aWRlcyBjb21tb24gcHJlZmVyZW5jZXMgYW5kIGNvbm5lY3RvcnMgZm9yIHRoZSB2YXJpb3VzIHBvcnRpb25zIG9mIHRoZSBlY29tbWVyY2Ugc3VpdGUnOwokbGFuZ1snbXNnX3ByZWZzX3NhdmVkJ10gPSAnUHJlZmVyZW5jZXMgdXBkYXRlZCc7CgojTgokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydub3RfYXBwbGljYWJsZSddID0gJ05vdCBBcHBsaWNhYmxlJzsKCiNPCgoKI1AKJGxhbmdbJ3BhY2thZ2luZ19tb2R1bGUnXSA9ICdQYWNrYWdpbmcgTW9kdWxlJzsKJGxhbmdbJ3BheW1lbnRfbW9kdWxlcyddID0gJ09ubGluZSBQYXltZW50IEdhdGV3YXkgTW9kdWxlcyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBDR0Vjb21tZXJjZUJhc2UgbW9kdWxlIGlzIG5vdyBpbnN0YWxsZWQsIHlvdSBtYXkgbm93IHByb2NlZWQgdG8gaW5zdGFsbCBtb3JlIGNvbXBvbmVudHMgdG8gdGhlIGVjb21tZXJjZSBzdWl0ZSB0byBmaWxsIG91dCB5b3VyIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHkuICBPbmNlIHRoZXkgYXJlIGluc3RhbGxlZCByZXR1cm4gdG8gdGhpcyBtb2R1bGVzIGFkbWluaXN0cmF0aW9uIHBhbmVsIHRvIGNvbnRpbnVlIHRoZSBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGlzIG1vZHVsZSBhbmQgYWxsIGFzc29jaWF0ZWQgZGF0YSBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBDTVNNUyBkYXRhYmFzZS4gIFlvdSBhcmUgbm93IHNhZmUgdG8gcmVtb3ZlIGl0cyBmaWxlcyc7CiRsYW5nWydwcm9tb3Rpb25zX21vZHVsZSddID0gJ1Byb21vdGlvbnMgTW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9jb21wYW55J10gPSAnQ29tcGFueSc7CiRsYW5nWydwcm9tcHRfZmlyc3RuYW1lJ10gPSAnRmlyc3QgTmFtZSc7CiRsYW5nWydwcm9tcHRfbGFzdG5hbWUnXSA9ICdMYXN0IE5hbWUnOwokbGFuZ1sncHJvbXB0X21heHdlaWdodCddID0gJ01heCBXZWlnaHQnOwokbGFuZ1sncHJvbXB0X2FkZHJlc3MxJ10gPSAnQWRkcmVzcyBMaW5lIDEnOwokbGFuZ1sncHJvbXB0X2FkZHJlc3MyJ10gPSAnQWRkcmVzcyBMaW5lIDInOwokbGFuZ1sncHJvbXB0X2NpdHknXSA9ICdDaXR5JzsKJGxhbmdbJ3Byb21wdF9zdGF0ZSddID0gJ1N0YXRlIC8gUHJvdmluY2UnOwokbGFuZ1sncHJvbXB0X3Bvc3RhbCddID0gJ1Bvc3RhbCAvIFppcCBDb2RlJzsKJGxhbmdbJ3Byb21wdF9jb3VudHJ5J10gPSAnQ291bnRyeSc7CiRsYW5nWydwcm9tcHRfZmF4J10gPSAnRmF4JzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X3Bob25lJ10gPSAnUGhvbmUnOwokbGFuZ1sncHJvbXB0X292ZXJ3ZWlnaHRfbGltaXQnXSA9ICdPdmVyd2VpZ2h0IExpbWl0JzsKJGxhbmdbJ3Byb21wdF9zaGlwcGluZ19ib3hlcyddID0gJ1NoaXBwaW5nIEJveGVzJzsKJGxhbmdbJ3Byb21wdF93aWR0aCddID0gJ1dpZHRoJzsKJGxhbmdbJ3Byb21wdF9oZWlnaHQnXSA9ICdIZWlnaHQnOwokbGFuZ1sncHJvbXB0X2xlbmd0aCddID0gJ0xlbmd0aCc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0J10gPSAnV2VpZ2h0JzsKJGxhbmdbJ3Byb21wdF9zb3J0aW5nJ10gPSAnUHJpb3JpdHknOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOYW1lJzsKCgojUQoKCiNSCiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKCgojUwokbGFuZ1snc2hpcF9kaW1lbnNpb25zX2ZpZWxkJ10gPSAnUHJvZHVjdHMgU2hpcCBEaW1lbnNpb25zIEZpZWxkJzsKJGxhbmdbJ3NoaXBfc2VwZXJhdGVseV9maWVsZCddID0gJ1Byb2R1Y3RzIFNoaXAgU2VwZXJhdGVseSBGaWVsZCc7CiRsYW5nWydzaGlwcGluZ19tb2R1bGUnXSA9ICdTaGlwcGluZyBNb2R1bGUnOwokbGFuZ1snc3VwcGxpZXJfbW9kdWxlcyddID0gJ1N1cHBsaWVyIE1vZHVsZXMnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ3N5c3RlbV9wb2xpY3knXSA9ICdTeXN0ZW0gUG9saWN5JzsKCiNUCiRsYW5nWyd0YWJfY2FydF9zZXR0aW5ncyddID0gJ0NhcnQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9oYW5kbGluZ19zZXR0aW5ncyddID0gJ0hhbmRsaW5nIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9teWluZm9fc2V0dGluZ3MnXSA9ICdTdG9yZSBBZGRyZXNzJzsKJGxhbmdbJ3RhYl9wYWNrYWdpbmdfc2V0dGluZ3MnXSA9ICdQYWNrYWdpbmcgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3BheW1lbnRfc2V0dGluZ3MnXSA9ICdQYXltZW50IFNldHRpbmdzJzsKCQkJCQkJCSRsYW5nWyd0YWJfcG9saWN5J10gPSAnUG9saWN5JzsKJGxhbmdbJ3RhYl9wcm9tb3Rpb25fc2V0dGluZ3MnXSA9ICdQcm9tb3Rpb24gU2V0dGluZ3MnOwokbGFuZ1sndGFiX3NoaXBwaW5nX3NldHRpbmdzJ10gPSAnU2hpcHBpbmcgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1cHBsaWVyX3NldHRpbmdzJ10gPSAnU3VwcGxpZXIgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RheF9zZXR0aW5ncyddID0gJ1RheCBTZXR0aW5ncyc7CiRsYW5nWyd0YXhfbW9kdWxlJ10gPSAnVGF4IENhbGN1bGF0aW9uIE1vZHVsZSc7CiRsYW5nWyd0YXhfc2hpcHBpbmcnXSA9ICdUYXggc2hpcHBpbmcgY2FsY3VsYXRpb25zJzsKCiNVCiRsYW5nWyd1bml0c19jZW50aW1ldGVycyddID0gJ0NlbnRpbWV0ZXJzJzsKJGxhbmdbJ3VuaXRzX2luY2hlcyddID0gJ0luY2hlcyc7CiRsYW5nWyd1bmxpbWl0ZWQnXSA9ICdVbmxpbWl0ZWQnOwoKI1YKCgojVwokbGFuZ1snd2VpZ2h0X3VuaXRzJ10gPSAnV2VpZ2h0IFVuaXRzJzsKCiNYCgoKI1kKJGxhbmdbJ3llcyddID0gJ1llcyc7CgojWgoKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Fza19yZWFsbHlfdW5pbnN0YWxsJ10gPSAnV29sbGVuIFNpZSB3aXJrbGljaCBkaWVzZXMgTW9kdWwgZGVpbnN0YWxsaWVyZW4/JzsKJGxhbmdbJ2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgUHJvZHVrdC1BdHRyaWJ1dC1BbnplaWdlJzsKJGxhbmdbJ2NhcnRfbW9kdWxlJ10gPSAnV2FyZW5rb3JiLU1vZHVsJzsKJGxhbmdbJ2N1cnJlbmN5X2NvZGUnXSA9ICdXJmF1bWw7aHJ1bmdzc2NobCZ1dW1sO3NzZWwnOwokbGFuZ1snY3VycmVuY3lfc3ltYm9sJ10gPSAnVyZhdW1sO2hydW5nc3N5bWJvbCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkYWRkcmVzcyddID0gJ0RpZSBhbmdlZ2ViZW5lIEFkcmVzc2UgaXN0IHVuZyZ1dW1sO2x0aWcuIEVpbmVzIG9kZXIgbWVocmVyZSBiZW4mb3VtbDt0aWd0ZSBGZWxkZXIgZmVobGVuLic7CiRsYW5nWydldmVudF9kZXNjX0NhcnRBZGp1c3RlZCddID0gJ1dpcmQgYXVmZ2VydWZlbiwgd2VubiBNYXNzZW4mYXVtbDtuZGVydW5nZW4gYW0gV2FyZW5rb3JiIHZvcmdlbm9tbWVuIHdlcmRlbic7CiRsYW5nWydldmVudF9kZXNjX0NhcnRJdGVtQWRkUHJlJ10gPSAnV2lyZCBhdWZnZXJ1ZmVuIHdlbm4gZWluIEFydGlrZWwgaW4gZGVuIFdhcmVua29yYiBnZWxlZ3Qgd2lyZCc7CiRsYW5nWydldmVudF9kZXNjX0NhcnRJdGVtQWRkZWQnXSA9ICdXaXJkIGF1ZmdlcnVmZW4sIHdlbm4gZGVtIFdhcmVua29yYiBlaW4gUHJvZHVrdCBvZGVyIGVpbmUgRGllbnN0bGVpc3R1bmcgaGluenVnZWYmdXVtbDtndCB3aXJkJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfT3JkZXJDcmVhdGVkJ10gPSAnV2lyZCBhdWZnZXJ1ZmVuLCB3ZW5uIGVpbmUgQmVzdGVsbHVuZyBlcnN0bWFsaWcgaW4gZGllIERhdGVuYmFuayBlaW5nZWYmdXVtbDtndCB3aXJkJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfT3JkZXJEZWxldGVkJ10gPSAnV2lyZCBhdWZnZXJ1ZmVuLCBuYWNoZGVtIGVpbmUgQmVzdGVsbHVuZyBrb21wbGV0dCBlbnRmZXJudCB3dXJkZSc7CiRsYW5nWydldmVudF9kZXNjX09yZGVyVXBkYXRlZCddID0gJ1dpcmQgYXVmZ2VydWZlbiwgbmFjaGRlbSBlaW5lIEJlc3RlbGx1bmcgZ2VzcGVpY2hlcnQgd3VyZGUnOwokbGFuZ1snZXZlbnRfaGVscF9DYXJ0SXRlbUFkZFByZSddID0gJzxwPlNlbnQgcHJpb3IgdG8gYW4gaXRlbSBiZWluZyBhZGRlZCB0byB0aGUgY2FydCwgdGhpcyBldmVudCBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGNhcnQgcG9saWN5IGlzIGNoZWNrZWQsIGFuZCBjYW4gYmUgdXNlZCB0byBhbHRlciB0aGUgaXRlbS48L3A+DQo8aDQ+UGFyYW1ldGVyOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7ZXhpc3RpbmdfaXRlbXMmcXVvdDsgLSA8ZW0+KHJlYWQgb25seSk8L2VtPiAgQW4gYXJyYXkgb2YgY2dfZWNvbW1fY2FydGl0ZW0gaXRlbXMgcmVwcmVzZW50aW5nIHRoZSBleGlzdGluZyBpdGVtcyBpbiB0aGUgY2FydC48L2xpPg0KPGxpPiZxdW90O2NhcnRfaXRlbSZxdW90OyAtIDxlbT4obW9kaWZpYWJsZSk8L2VtPiBBIHJlZmVyZW5jZSAobW9kaWZpYWJsZSkgdG8gYSBjZ19lY29tbV9jYXJ0aXRlbSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBpdGVtIHRoYXQgaXMgcHJvcG9zZWQgdG8gYWRkIHRvIHRoZSBjYXJ0LjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX0NhcnRBZGp1c3RlZCddID0gJzxwPlNlbnQgd2hlbiBidWxrIGFkanVzdG1lbnRzIGFyZSBkb25lIHRvIHRoZSBjYXJ0LCBvciBvbmUgb2YgaXRzIGJhc2tldHMuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCjxsaT4mcXVvdDtjYXJ0X2l0ZW1zJnF1b3Q7IC0gQW4gaGFzaCBvZiBiYXNrZXRzLCBlYWNoIGNvbnRhaW5pbmcgYW4gYXJyYXkgb2YgY2FydCBpdGVtIG9iamVjdHMgYW5kIHNvbWUgc3VtbWFyeSBpbmZvcm1hdGlvbi48L2xpPg0KPGxpPiZxdW90O3N0YXR1cyZxdW90OyAtIEEgc3RhdHVzIGZsYWcsIGluZGljYXRpbmcgd2V0aGVyIHRoaXMgaXMgYmVmb3JlLCBvciBhZnRlciB0aGUgaXRlbXMgaGF2ZSBjaGFuZ2VkLjwvbGk+DQo8bGk+JnF1b3Q7ZXh0cmEmcXVvdDsgLSBBbiBhZGRpdGlvbmFsIHN0cmluZyB0aGF0IG1heSBwcm92aWRlIHNvbWUgc3RhdGUgaW5mb3JtYXRpb24gYXMgdG8gd2hlbiB0aGlzIGFjdGlvbiB3YXMgY2FsbGVkJiMwMzk7Ow0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9DYXJ0SXRlbUFkZGVkJ10gPSAnPHA+U2VudCB3aGVuIGJ1bGsgYWRqdXN0bWVudHMgYXJlIGRvbmUgdG8gdGhlIGNhcnQsIG9yIG9uZSBvZiBpdHMgYmFza2V0cy48L3A+DQo8aDQ+UGFyYW1ldGVyczo8L2g0Pg0KPHVsPg0KPGxpPiZxdW90O2NhcnRfaXRlbSZxdW90OyAtIFRoZSBzaW5nbGUgY2FydCBpdGVtIG9iamVjdCB0aGF0IHdhcyBhZGRlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlckNyZWF0ZWQnXSA9ICc8cD5TZW50IGFmdGVyIGFuIG9yZGVyIGlzIGluaXRpYWxseSBpbnNlcnRlZCBpbnRvIHRoZSBkYXRhYmFzZS48L3A+DQo8aDQ+UGFyYW1ldGVyczo8L2g0Pg0KPHVsPg0KPGxpPiZxdW90O29yZGVyX2lkJnF1b3Q7IC0gVGhlIG5ld2x5IGNyZWF0ZWQgb3JkZXIgaWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT3JkZXJEZWxldGVkJ10gPSAnPHA+U2VudCBhZnRlciBhbiBvcmRlciBpcyByZW1vdmVkIGZyb20gdGhlIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7b3JkZXJfaWQmcXVvdDsgLSBUaGUgZGVsZXRlZCBvcmRlciBpZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlclVwZGF0ZWQnXSA9ICc8cD5TZW50IGFmdGVyIGFuIG9yZGVyIGlzIHVwZGF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczo8L2g0Pg0KPHVsPg0KPGxpPiZxdW90O29yZGVyX2lkJnF1b3Q7IC0gVGhlIG9yZGVyIGlkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdFLUNvbW1lcmNlIEJhc2lzbW9kdWwnOwokbGFuZ1snZ2F0ZXdheV9wb2xpY3knXSA9ICdHYXRld2F5LVJlZ2Vsbic7CiRsYW5nWydpbmZvX2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJ10gPSAnRGFzIFRlbWxhdGUgenVyIEFuemVpZ2Ugdm9uIEF0dHJpYnV0LUxpc3Rlbm1lbiZ1dW1sO3MuIE0mb3VtbDtnbGljaGUgVmFyaWFibGVuIHNpbmQgeyRjdXJyZW5jeV9zeW1ib2x9LHskd2VpZ2h0X3VuaXRzfSx7JGF0dHJpYl9hZGp1c3R9LHskYXR0cmliX3RleHR9LHskYXR0cmliX3NrdX0nOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZSddID0gJ1phaGxyZWljaGUgTW9kdWxlLCBkaWUgYWxzICZxdW90O1dhcmVuayZvdW1sO3JiZSZxdW90OyBmdW5rdGlvbmllcmVuLCBrJm91bWw7bm5lbiBoZXJ1bnRlcmdlbGFkZW4gd2VyZGVuLiBKZWRlcyB2b24gZGVuZW4gbWl0IHVudGVyc2NoaWVkbGljaGVuIFZlcmhhbHRlbnN3ZWlzZW4uIEJpdHRlIHcmYXVtbDtobGVuIFNpZSBlaW5lcyBkZXIgaW5zdGFsbGllcnRlbiBXYXJlbmtvcmItTW9kdWxlIGF1cyBkaWVzZXIgTGlzdGUnOwokbGFuZ1snaW5mb19jYXJ0X3BvbGljeSddID0gJ1RoZSBjYXJ0IHBvbGljeSBpcyBpbmZsdWVuY2VkIGJ5IHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhlIHBheW1lbnQgZ2F0ZXdheSwgYW5kIGRldGVybWluZXMgaG93IG1hbnksIGFuZCB3aGF0IHR5cGUgb2YgaXRlbXMgbWF5IGJlIGFkZGVkIHRvdCBoZSBjYXJ0KHMpLiAgWW91IG1hOHkgZnVydGhlciByZXN0cmljdCB0aGUgY2FydCBwb2xpY3ksIGJ1dCBjYW5ub3QgYnlwYXNzIHRoZSByZXN0cmljdGlvbnMgcGxhY2VkIGJ5IHRoZSBnYXRld2F5Lic7CiRsYW5nWydpbmZvX2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIHVzZWQgdG8gZm9ybWF0IHRoZSBzaW5nbGUgbGluZSBkZXNjcmlwdGlvbiBmb3IgYSBjYXJ0IGl0ZW0uICBUaGlzIHNhbWUgZGVzY3JpcHRpb24gaXMgdXNlZCBmb3IgdGhlIGxpbmUgaXRlbSBpbiBvcmRlciBwcm9jZXNzaW5nLic7CiRsYW5nWydpbmZvX292ZXJ3ZWlnaHRfbGltaXQnXSA9ICdEYXMgR2V3aWNodCwgYWIgZGVtIGVpbiBQcm9kdWt0IGluIGVpbmVtIGVpZ2VuZW4gUGFrZXQgZ2VsaWVmZXJ0IHdlcmRlbiBzb2xsJzsKJGxhbmdbJ2luZm9fcGFja2FnaW5nX21vZHVsZSddID0gJ1NlbGVjdCBhIG1vZHVsZSByZXNwb25zaWJsZSBmb3IgYXJyYW5naW5nIHRoZSB2YXJpb3VzIGl0ZW1zIHNlbGVjdGVkIGluIGFuIG9yZGVyIGZvciBwYWNrYWdpbmcuICBJZiBub25lIGlzIHNlbGVjdGVkLCB0aGVuIHRoZSBzaGlwcGluZyBtYXljYWxjdWxhdGUgY29zdHMgaW5kZXBlbmRhbnRseSBvbiBlYWNoIG9yZGVyIGl0ZW0uJzsKJGxhbmdbJ2luZm9fcGF5bWVudF9tb2R1bGUnXSA9ICdOdW1lcm91cyBtb2R1bGVzIHRoYXQgcGVyZm9ybSB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbGxvd2luZyBvbmxpbmUgcGF5bWVudHMgbWF5IGJlIGRvd25sb2FkZWQuICBFYWNoIG9mIHRoZW0gd2l0aCBkaWZmZXJlbnQgYmVoYXZpb3Vycy4gIFBsZWFzZSBzZWxlY3Qgb25lIG9mIHRoZSBpbnN0YWxsZWQgY2FydCBtb2R1bGVzIGZyb20gdGhpcyBsaXN0JzsKJGxhbmdbJ2luZm9fcHJvbW90aW9uc19tb2R1bGUnXSA9ICdOdW1lcm91cyBtb2R1bGVzIHRoYXQgcGVyZm9ybSB0aGUgZnVuY3Rpb25hbGl0eSBvZiBwcm92aWRpbmcgY291cG9ucyBvciB2YXJpb3VzIGZvcm1zIG9mIGRpc2NvdW50cyBtYXkgYmUgZG93bmxvYWRlZC4gIEVhY2ggb2YgdGhlbSB3aXRoIGRpZmZlcmVudCBiZWhhdmlvdXJzLiAgUGxlYXNlIHNlbGVjdCBvbmUgb2YgdGhlIGluc3RhbGxlZCBjYXJ0IG1vZHVsZXMgZnJvbSB0aGlzIGxpc3QnOwokbGFuZ1snaW5mb19zaGlwX2RpbWVuc2lvbnMnXSA9ICdGaWVsZCBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUgdGhhdCBpbmRpY2F0ZXMgdGhlIHNoaXBwYWJsZSBkaW1lbnNpb25zIGZvciB0aGlzIHByb2R1Y3QnOwokbGFuZ1snaW5mb19zaGlwX3NlcGVyYXRlbHknXSA9ICdGaWVsZCBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhpcyB2YWx1ZSBzaG91bGQgYmUgc2hpcHBlZCBhcyBpdHMgb3duIHBhY2thZ2UnOwokbGFuZ1snaW5mb19zaGlwcGluZ19tb2R1bGUnXSA9ICdOdW1lcm91cyBtb2R1bGVzIHRoYXQgcGVyZm9ybSBzaGlwcGluZyBjb3N0IGNhbGN1bGF0aW9ucyBtYXkgYmUgZG93bmxvYWRlZC4gIEVhY2ggb2YgdGhlbSB3aXRoIGRpZmZlcmVudCBiZWhhdmlvdXJzLiAgUGxlYXNlIHNlbGVjdCBvbmUgb2YgdGhlIGluc3RhbGxlZCBjYXJ0IG1vZHVsZXMgZnJvbSB0aGlzIGxpc3QnOwokbGFuZ1snaW5mb19zdXBwbGllcl9tb2R1bGVzJ10gPSAnU3VwcGxpZXIgbW9kdWxlcyBhcmUgY2FwYWJsZSBvZiBpbnRlcmFjdGluZyB3aXRoIHRoZSBjYXJ0IGFuZCBhbnN3ZXJpbmcgcmVxdWVzdHMgZnJvbSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZXMuICBZb3UgbWF5IHNlbGVjdCBtdWx0aXBsZSBzdXBwbGllciBtb2R1bGVzLic7CiRsYW5nWydpbmZvX3RheF9tb2R1bGUnXSA9ICdOdW1lcm91cyBtb2R1bGVzIHRoYXQgcGVyZm9ybSB0YXggY2FsY3VsYXRpb24gbWF5IGJlIGRvd25sb2FkZWQuICBFYWNoIG9mIHRoZXNlIHdpdGggZGlmZmVyZW50IGJlaGF2aW91cnMuICBQbGVhc2Ugc2VsZWN0IG9uZSBvZiB0aGUgaW5zdGFsbGVkIHRheCBtb2R1bGVzIGZyb20gdGhpcyBsaXN0JzsKJGxhbmdbJ2luZm9fdGF4X3NoaXBwaW5nJ10gPSAnSW4gc29tZSBsb2NhdGlvbnMgc2hpcHBpbmcgbWF5IG5vdCBiZSB0YXhhYmxlLiAgVXNlIHRoaXMgb3B0aW9uIHRvIGVuc3VyZSB0aGF0IG5vIHNoaXBwaW5nIGNvc3RzIGFyZSB0YXhlZCc7CiRsYW5nWydsZW5ndGhfdW5pdHMnXSA9ICdMJmF1bWw7bmdlbmVpbmhlaXRlbic7CiRsYW5nWydsaW5laXRlbV9kZXNjX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgZGllIEVpbnplbHBvc3Rlbi1CZXNjaHJlaWJ1bmcnOwokbGFuZ1snbWF4X3Byb2R1Y3RzJ10gPSAnbWF4aW1hbGUgQW56YWhsIGFuIFByb2R1a3RlbiBpbSBXYXJlbmtvcmInOwokbGFuZ1snbWF4X3NlcnZpY2VzJ10gPSAnbWF4aW1hbGUgQW56YWhsIGFuIERpZW5zdGxlaXN0dW5nZW4gaW0gV2FyZW5rb3JiJzsKJGxhbmdbJ21heF9zdWJzY3JpcHRpb25zJ10gPSAnbWF4aW1hbGUgQW56YWhsIGFuIEFib25uZW1lbnRzIGltIFdhcmVua29yYic7CiRsYW5nWydtaXhlZF9zdWJzY3JpcHRpb25zJ10gPSAnU29sbCBlaW5lIE1pc2NodW5nIGF1cyBQcm9kdWt0ZW4sIERpZW5zdGxlaXN0dW5nZW4gdW5kIEFib25uZW1lbnRzIGluIGVpbmVtIFdhcmVua29yYiBlcmxhdWJ0IHNlaW4/JzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0EgYmFzZSBjbGFzcyBmb3IgYWxsIGUtY29tbWVyY2UgbW9kdWxlcyB0aGlzIHV0aWlsaXR5IGFsc28gcHJvdmlkZXMgY29tbW9uIHByZWZlcmVuY2VzIGFuZCBjb25uZWN0b3JzIGZvciB0aGUgdmFyaW91cyBwb3J0aW9ucyBvZiB0aGUgZWNvbW1lcmNlIHN1aXRlJzsKJGxhbmdbJ25vJ10gPSAnTmVpbic7CiRsYW5nWydub25lJ10gPSAnTmljaHRzIGF1c2dldyZhdW1sO2hsdCc7CiRsYW5nWydub3RfYXBwbGljYWJsZSddID0gJ05pY2h0IGFud2VuZGJhcic7CiRsYW5nWydwYWNrYWdpbmdfbW9kdWxlJ10gPSAnVmVyc2FuZHZlcnBhY2t1bmdzLU1vZHVsJzsKJGxhbmdbJ3BheW1lbnRfbW9kdWxlJ10gPSAnU2Nobml0dHN0ZWxsZW5tb2R1bCBmJnV1bWw7ciBPbmxpbmUtQmV6YWhsdW5nZW4nOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdEYXMgQ0dFY29tbWVyY2VCYXNlIE1vZHVsIHd1cmRlIGluc3RhbGxpZXJ0LiBJbnN0YWxsaWVyZW4gU2llIGpldHp0IHdlaXRlcmUgRS1Db21tZXJjZSBNb2R1bGUsIHVtIGRpZSB2b24gSWhuZW4gYmVuJm91bWw7dGlndGVuIEZ1bmt0aW9uZW4genUgZXJoYWx0ZW4uIE5hY2hkZW0gU2llIGRpZSBNb2R1bGUgaW5zdGFsbGllcnQgaGFiZW4sIHJ1ZmVuIFNpZSBkaWVzZSBFaW5zdGVsbHVuZ3NzZWl0ZSB3aWVkZXIgYXVmLCB1bSBkaWUgS29uZmlndXJhdGlvbiB6dSB2ZXJ2b2xsc3QmYXVtbDtuZGlnZW4uJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEaWVzZXMgTW9kdWwgdW5kIGFsbGUgenVnZWgmb3VtbDtyaWdlbiBEYXRlbiB3dXJkZW4gYXVzIGRlciBEYXRlbmJhbmsgZW50ZmVybnQuIFNpZSBrJm91bWw7bm5lbiBqZXR6dCBkaWUgdmVyYmxpZWJlbmVuIERhdGVpZW4gbCZvdW1sO3NjaGVuLic7CiRsYW5nWydwcm9tb3Rpb25zX21vZHVsZSddID0gJ1dlcmJlbW9kdWwnOwokbGFuZ1sncHJvbXB0X2NvbXBhbnknXSA9ICdGaXJtYSc7CiRsYW5nWydwcm9tcHRfZmlyc3RuYW1lJ10gPSAnVm9ybmFtZSc7CiRsYW5nWydwcm9tcHRfbGFzdG5hbWUnXSA9ICdOYWNobmFtZSc7CiRsYW5nWydwcm9tcHRfbWF4d2VpZ2h0J10gPSAnTWF4aW1hbGdld2ljaHQnOwokbGFuZ1sncHJvbXB0X2FkZHJlc3MxJ10gPSAnQWRyZXNzemVpbGUgMSc7CiRsYW5nWydwcm9tcHRfYWRkcmVzczInXSA9ICdBZHJlc3N6ZWlsZSAyJzsKJGxhbmdbJ3Byb21wdF9jaXR5J10gPSAnU3RhZHQnOwokbGFuZ1sncHJvbXB0X3N0YXRlJ10gPSAnQnVuZGVzc3RhYXQvUHJvdmluei9LYW50b24nOwokbGFuZ1sncHJvbXB0X3Bvc3RhbCddID0gJ1Bvc3RsZWl0emFobCc7CiRsYW5nWydwcm9tcHRfY291bnRyeSddID0gJ0xhbmQnOwokbGFuZ1sncHJvbXB0X2ZheCddID0gJ0ZheCAnOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAnRW1haWwtQWRyZXNzZSc7CiRsYW5nWydwcm9tcHRfcGhvbmUnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3Byb21wdF9vdmVyd2VpZ2h0X2xpbWl0J10gPSAnJlV1bWw7YmVyZ2V3aWNodHNiZXNjaHImYXVtbDtua3VuZyc7CiRsYW5nWydwcm9tcHRfc2hpcHBpbmdfYm94ZXMnXSA9ICdMaWVmZXItQm94ZW4nOwokbGFuZ1sncHJvbXB0X3dpZHRoJ10gPSAnQnJlaXRlJzsKJGxhbmdbJ3Byb21wdF9oZWlnaHQnXSA9ICdIJm91bWw7aGUnOwokbGFuZ1sncHJvbXB0X2xlbmd0aCddID0gJ0wmYXVtbDtuZ2UnOwokbGFuZ1sncHJvbXB0X3dlaWdodCddID0gJ0dld2ljaHQnOwokbGFuZ1sncHJvbXB0X3NvcnRpbmcnXSA9ICdQcmlvcml0JmF1bWw7dCc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ05hbWUgJzsKJGxhbmdbJ3Jlc2V0J10gPSAnWnVyJnV1bWw7Y2tzZXR6ZW4nOwokbGFuZ1snc2hpcF9kaW1lbnNpb25zX2ZpZWxkJ10gPSAnUHJvZHVrdGUgVmVyc2FuZC1NYSZzemxpZztlLUZlbGQnOwokbGFuZ1snc2hpcF9zZXBlcmF0ZWx5X2ZpZWxkJ10gPSAnUHJvZHVrdGUgc2VwYXJhdGVzIFZlcnNhbmQtRmVsZCc7CiRsYW5nWydzaGlwcGluZ19tb2R1bGUnXSA9ICdWZXJzYW5kbW9kdWwnOwokbGFuZ1snc3VwcGxpZXJfbW9kdWxlcyddID0gJ1ZlcnNvcmd1bmdzbW9kdWxlJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Fic2VuZGVuJzsKJGxhbmdbJ3N5c3RlbV9wb2xpY3knXSA9ICdTeXN0ZW1yaWNodGxpbmllJzsKJGxhbmdbJ3RhYl9jYXJ0X3NldHRpbmdzJ10gPSAnV2FyZW5rb3JiZWluc3RlbGx1bmdlbic7CiRsYW5nWyd0YWJfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsbGdlbWVpbmUgRWluc3RlbGx1bmdlbic7CiRsYW5nWyd0YWJfbXlpbmZvX3NldHRpbmdzJ10gPSAnR2VzY2gmYXVtbDtmdHNhZHJlc3NlJzsKJGxhbmdbJ3RhYl9wYWNrYWdpbmdfc2V0dGluZ3MnXSA9ICdWZXJwYWNrdW5ncy1FaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RhYl9wYXltZW50X3NldHRpbmdzJ10gPSAnWmFobHVuZ3NlaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RhYl9wb2xpY3knXSA9ICdSaWNodGxpbmllJzsKJGxhbmdbJ3RhYl9wcm9tb3Rpb25fc2V0dGluZ3MnXSA9ICdXZXJidW5nc2VpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX3NoaXBwaW5nX3NldHRpbmdzJ10gPSAnVmVyc2FuZGVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX3N1cHBsaWVyX3NldHRpbmdzJ10gPSAnVmVyc29yZ3VuZ3Ntb2R1bGVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX3RheF9zZXR0aW5ncyddID0gJ1N0ZXVlcmVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ1N0ZXVlcmJlcmVjaG51bmdzbW9kdWwnOwokbGFuZ1sndGF4X3NoaXBwaW5nJ10gPSAnVGF4IHNoaXBwaW5nIGNhbGN1bGF0aW9ucyc7CiRsYW5nWyd1bml0c19jZW50aW1ldGVycyddID0gJ1plbnRpbWV0ZXInOwokbGFuZ1sndW5pdHNfaW5jaGVzJ10gPSAnWm9sbCc7CiRsYW5nWyd1bmxpbWl0ZWQnXSA9ICdVbmJlZ3Jlbnp0JzsKJGxhbmdbJ3dlaWdodF91bml0cyddID0gJ0dld2ljaHRzZWluaGVpdGVuJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMy4xMC4xMzc3MDQwMTA0JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjA0MjM0NTIxMC4xMzc2MzAwODEzLjEzNzcwMzg2ODkuMTM3NzAzOTQ0MS44JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzc2Njk1MjQ2LjQuMi51dG1jc3I9bWllbGVuei5qb25hdGhhbnNjaG1pZC5kZXx1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9hZG1pbi9lZGl0Y3NzLnBocCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Fza19yZWFsbHlfdW5pbnN0YWxsJ10gPSAnRXRlcy12b3VzIHPDu3IoZSkgZGUgdm91bG9pciBkw6lzaW5zdGFsbGVyIGNlIG1vZHVsZSA/JzsKJGxhbmdbJ2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJ10gPSAnR2FiYXJpdCBkXCdhZmZpY2hhZ2UgZGVzIGF0dHJpYnV0cyBwcm9kdWl0Jm5ic3A7JzsKJGxhbmdbJ2NhcnRfbW9kdWxlJ10gPSAnTW9kdWxlIGRlIFBhbmllciZuYnNwOyc7CiRsYW5nWydjdXJyZW5jeV9jb2RlJ10gPSAnQ29kZSBkZXZpc2UmbmJzcDsnOwokbGFuZ1snY3VycmVuY3lfc3ltYm9sJ10gPSAnU3ltYm9sZSBkZSBkZXZpc2UmbmJzcDsnOwokbGFuZ1snZXJyb3JfaW52YWxpZGFkZHJlc3MnXSA9ICdMXCdhZHJlc3NlIGZvdXJuaWUgZXN0IGludmFsaWRlICh0b3VzIGxlIGNoYW1wcyBzb250LWlscyBjb21wbMOpdMOpcyA/JzsKJGxhbmdbJ2V2ZW50X2Rlc2NfQ2FydEFkanVzdGVkJ10gPSAnQXBwZWzDqSBsb3JzcXVlIGRlcyBhanVzdGVtZW50cyBwYXIgbG90IHNvbnQgZWZmZWN0dcOpcyBzdXIgbGUgcGFuaWVyLCBvdSB1biBkZSBzZXMnOwokbGFuZ1snZXZlbnRfZGVzY19DYXJ0SXRlbUFkZFByZSddID0gJ0FwcGVsw6kganVzdGUgYXZhbnQgcXVcJ3VuIGl0ZW0gc29pdCBham91dMOpIGF1IHBhbmllcic7CiRsYW5nWydldmVudF9kZXNjX0NhcnRJdGVtQWRkZWQnXSA9ICdBcHBlbMOpIHF1YW5kIHVuIHByb2R1aXQgdW5pcXVlIG91IHNlcnZpY2UgZXN0IGFqb3V0w6kgYXUgcGFuaWVyJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfT3JkZXJDcmVhdGVkJ10gPSAnQXBwZWzDqSBhcHLDqHMgbFwnaW5zZXJ0aW9uIGRcJ3VuZSBub3V2ZWxsZSBjb21tYW5kZSBkYW5zIGxhIGJhc2UgZGUgZG9ubsOpZXMnOwokbGFuZ1snZXZlbnRfZGVzY19PcmRlckRlbGV0ZWQnXSA9ICdBcHBlbMOpIGFwcsOocyBsYSBzdXBwcmVzc2lvbiBjb21wbMOodGUgZFwndW5lIGNvbW1hbmRlJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfT3JkZXJVcGRhdGVkJ10gPSAnQXBwZWzDqSBhcHLDqHMgbFwnZW5yZWdpc3RyZW1lbnQgZFwndW5lIGNvbW1hbmRlIGV4aXN0YW50ZSc7CiRsYW5nWydldmVudF9oZWxwX0NhcnRJdGVtQWRkUHJlJ10gPSAnPHA+U2VudCBwcmlvciB0byBhbiBpdGVtIGJlaW5nIGFkZGVkIHRvIHRoZSBjYXJ0LCB0aGlzIGV2ZW50IGlzIGNhbGxlZCBhZnRlciB0aGUgY2FydCBwb2xpY3kgaXMgY2hlY2tlZCwgYW5kIGNhbiBiZSB1c2VkIHRvIGFsdGVyIHRoZSBpdGVtLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+ImV4aXN0aW5nX2l0ZW1zIiAtIDxlbT4ocmVhZCBvbmx5KTwvZW0+ICBBbiBhcnJheSBvZiBjZ19lY29tbV9jYXJ0aXRlbSBpdGVtcyByZXByZXNlbnRpbmcgdGhlIGV4aXN0aW5nIGl0ZW1zIGluIHRoZSBjYXJ0LjwvbGk+DQo8bGk+ImNhcnRfaXRlbSIgLSA8ZW0+KG1vZGlmaWFibGUpPC9lbT4gQSByZWZlcmVuY2UgKG1vZGlmaWFibGUpIHRvIGEgY2dfZWNvbW1fY2FydGl0ZW0gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgaXRlbSB0aGF0IGlzIHByb3Bvc2VkIHRvIGFkZCB0byB0aGUgY2FydC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9DYXJ0QWRqdXN0ZWQnXSA9ICc8cD5TZW50IHdoZW4gYnVsayBhZGp1c3RtZW50cyBhcmUgZG9uZSB0byB0aGUgY2FydCwgb3Igb25lIG9mIGl0cyBiYXNrZXRzLjwvcD4NCjxoND5QYXJhbcOodHJlcyA6PC9oND4NCjx1bD4NCjxsaT4iY2FydF9pdGVtcyIgLSBBbiBoYXNoIG9mIGJhc2tldHMsIGVhY2ggY29udGFpbmluZyBhbiBhcnJheSBvZiBjYXJ0IGl0ZW0gb2JqZWN0cyBhbmQgc29tZSBzdW1tYXJ5IGluZm9ybWF0aW9uLjwvbGk+DQo8bGk+InN0YXR1cyIgLSBBIHN0YXR1cyBmbGFnLCBpbmRpY2F0aW5nIHdldGhlciB0aGlzIGlzIGJlZm9yZSwgb3IgYWZ0ZXIgdGhlIGl0ZW1zIGhhdmUgY2hhbmdlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9DYXJ0SXRlbUFkZGVkJ10gPSAnPHA+U2VudCB3aGVuIGJ1bGsgYWRqdXN0bWVudHMgYXJlIGRvbmUgdG8gdGhlIGNhcnQsIG9yIG9uZSBvZiBpdHMgYmFza2V0cy48L3A+DQo8aDQ+UGFyYW3DqHRyZXMgOjwvaDQ+DQo8dWw+DQo8bGk+ImNhcnRfaXRlbSIgLSBUaGUgc2luZ2xlIGNhcnQgaXRlbSBvYmplY3QgdGhhdCB3YXMgYWRkZWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT3JkZXJDcmVhdGVkJ10gPSAnPHA+RW52b3nDqXMgYXByw6hzIGxcJ2luc2VydGlvbiBkXCd1bmUgY29tbWFuZGUgZGFucyBsYSBiYXNlIGRlIGRvbm7DqWVzLjwvcD4NCjxoND5QYXJhbcOodHJlcyA6PC9oND4NCjx1bD4NCjxsaT4ib3JkZXJfaWQiIC0gSUQgZGUgbGEgbm91dmVsbGUgY29tbWFuZGUgY3LDqcOpZS48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlckRlbGV0ZWQnXSA9ICc8cD5FbnZvecOpcyBhcHLDqHMgbGEgc3VwcHJlc3Npb24gZFwndW5lIGNvbW1hbmRlIGRlIGxhIGJhc2UgZGUgZG9ubsOpZXMuPC9wPg0KPGg0PlBhcmFtw6h0cmVzIDo8L2g0Pg0KPHVsPg0KPGxpPiJvcmRlcl9pZCIgLSBJRCBkZSBsYSBjb21tYW5kZSBzdXBwcmltw6llLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09yZGVyVXBkYXRlZCddID0gJzxwPkVudm95w6lzIGFwcsOocyBsYSBtaXNlIMOgIGpvdXIgZFwndW5lIGNvbW1hbmRlIGRlIGxhIGJhc2UgZGUgZG9ubsOpZXMuPC9wPg0KPGg0PlBhcmFtw6h0cmVzIDo8L2g0Pg0KPHVsPg0KPGxpPiJvcmRlcl9pZCIgLSBJRCBkZSBsYSBjb21tYW5kZSBtaXNlIMOgIGpvdXIuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NvbmZpZ3VyYXRpb24gRS1Db21tZXJjZSc7CiRsYW5nWydnYXRld2F5X3BvbGljeSddID0gJ1BvbGl0aXF1ZSBkdSBwcm9jZXNzdXMgZGUgcGFpZW1lbnQnOwokbGFuZ1snaGFuZGxpbmdfbW9kdWxlJ10gPSAnTW9kdWxlIGRlIG1hbnV0ZW50aW9uJm5ic3A7JzsKJGxhbmdbJ2luZm9fYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nXSA9ICdDZSBnYWJhcml0IGVzdCB1dGlsaXPDqSBwb3VyIGxcJ2FmZmljaGFnZSBkZXMgbGlzdGVzIGTDqXJvdWxhbnRlcyBkXCdhdHRyaWJ1dHMgZGUgcHJvZHVpdHMuIExlcyB2YXJpYWJsZXMgc29udCB7JGN1cnJlbmN5X3N5bWJvbH0seyR3ZWlnaHRfdW5pdHN9LHskYXR0cmliX2FkanVzdH0seyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfc2t1fS48YnI+DQpBc3R1Y2UgOiBwb3VyIGFmZmljaGVyIGxlIHByaXggdG90YWwgZGUgbFwnYXJ0aWNsZSAocHJpeCBkZSBiYXNlICsgcHJpeCBkZSBsXCdhdHRyaWJ1dCwgdXRpbGlzZXogOiB7JGVudHJ5LT5wcmljZSskYXR0cmliX2FkanVzdH0nOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZSddID0gJ0RpZmbDqXJlbnRzIG1vZHVsZXMgZGUgZS1wYW5pZXJzIGRcJ2FjaGF0cyBwZXV2ZW50IMOqdHJlIGluc3RhbGzDqXMsIGNoYWN1biBkaXNwb3NhbnQgZGUgc29uIHByb3ByZSBmb25jdGlvbm5lbWVudC4gTWVyY2kgZGUgc8OpbGVjdGlvbm5lciBsXCd1biBkZXMgbW9kdWxlcyBlLXBhbmllciBpbnN0YWxsw6kgZGFucyBjZXR0ZSBsaXN0ZSc7CiRsYW5nWydpbmZvX2NhcnRfcG9saWN5J10gPSAnTGEgcG9saXRpcXVlIHBhbmllciBlc3QgaW5mbHVlbmPDqWUgcGFyIGxlcyBjYXBhY2l0w6lzIGRlIGxhIHBhc3NlcmVsbGUgZGUgcGFpZW1lbnQsIGV0IGTDqXRlcm1pbmUgbGUgbm9tYnJlIGV0IGxlIHR5cGUgZFwnYXJ0aWNsZXMgcG91dmFudCDDqnRyZSBham91dMOpcyBkYW5zIGxlKHMpIHBhbmllcihzKS4gVm91cyBwb3V2ZXogcmVzdHJlaW5kcmUgZW5jb3JlIGRhdmFudGFnZSBsYSBwb2xpdGlxdWUgZGUgcGFuaWVyLCBtYWlzIHZvdXMgbmUgcG91dmV6IHBhcyBjb250b3VybmVyIGxlcyByZXN0cmljdGlvbnMgaW1wb3PDqWVzIHBhciBsYSBwYXNzZXJlbGxlIGRlIHBhaWVtZW50Lic7CiRsYW5nWydpbmZvX2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnXSA9ICdDZSBnYWJhcml0IGVzdCB1dGlsaXPDqSBwb3VyIGZvcm1hdGVyIGxhIGRlc2NyaXB0aW9uIGVuIHVuIHNldWxlIGxpZ25lIHBvdXIgdW4gw6lsw6ltZW50IGRlIHBhbmllci4gQ2V0dGUgZGVzY3JpcHRpb24gZXN0IMOpZ2FsZW1lbnQgdXRpbGlzw6llIHBvdXIgbGEgbGlnbmUgZGUgY2hhcXVlIGFydGljbGUgZGFucyBsZSB0cmFpdGVtZW50IGRlcyBjb21tYW5kZXMgZW4gbGlnbmUuJzsKJGxhbmdbJ2luZm9faGFuZGxpbmdfbW9kdWxlJ10gPSAnRGUgbm9tYnJldXggbW9kdWxlcyBhdmVjIGxhIGZvbmN0aW9ubmFsaXTDqSBkZSBjYWxjdWwgZGVzIGZyYWlzIGRlIG1hbnV0ZW50aW9uIHBldXZlbnQgw6p0cmUgdMOpbMOpY2hhcmfDqXMuIENoYWN1biBkXCdldXggYSBkZXMgY29tcG9ydGVtZW50cyBkaWZmw6lyZW50cy4gVmV1aWxsZXogZW4gc8OpbGVjdGlvbm5lciB1biwgcGFybWkgbGVzIG1vZHVsZXMgaW5zdGFsbMOpcywgZGFucyBjZXR0ZSBsaXN0ZSc7CiRsYW5nWydpbmZvX292ZXJ3ZWlnaHRfbGltaXQnXSA9ICdMZSBwb2lkcyBkXCd1biBhcnRpY2xlIHF1aSBkb2l0IMOqdHJlIGVudm95w6kgZGFucyBzb24gcHJvcHJlIHBhcXVldC9jb2xpcyc7CiRsYW5nWydpbmZvX3BhY2thZ2luZ19tb2R1bGUnXSA9ICdTw6lsZWN0aW9ubmV6IHVuIG1vZHVsZSBkZSBjb2xpc2FnZS4gU2kgYXVjdW4gbW9kdWxlIG5cJ2VzdCBzw6lsZWN0aW9ubsOpLCBhbG9ycyBsZSBzeXN0w6htZSBjYWxjdWxlcmEgbGUgY2/Du3QgZW4gZm9uY3Rpb24gZGUgY2hhcXVlIHByb2R1aXQgZGUgbGEgY29tbWFuZGUuJzsKJGxhbmdbJ2luZm9fcHJvbW90aW9uc19tb2R1bGUnXSA9ICdEaWZmw6lyZW50cyBtb2R1bGVzIGRlIGJvbnMgZGUgcsOpZHVjdGlvbi9wcm9tb3Rpb25zIHBldXZlbnQgw6p0cmUgaW5zdGFsbMOpcy4gSWxzIHByb3Bvc2VudCBjaGFjdW4gbGV1cnMgcHJvcHJlcyBmb25jdGlvbnMgZGUgYm9ucyBkZSByw6lkdWN0aW9uIG91IGF1dHJlcyBmb3JtZXMgZGUgcHJvbW90aW9ucy4gTWVyY2kgZGUgc8OpbGVjdGlvbm5lciBsZSBtb2R1bGUgw6AgdXRpbGlzZXIgcG91ciBsYSBib3V0aXF1ZSBkYW5zIGNldHRlIGxpc3RlLic7CiRsYW5nWydpbmZvX3NoaXBfZGltZW5zaW9ucyddID0gJ0NoYW1wIGR1IG1vZHVsZSBQcm9kdWN0cyBpbmRpcXVhbnQgbGVzIGRpbWVuc2lvbnMgZGUgY2UgcHJvZHVpdCBsaXZyYWJsZSc7CiRsYW5nWydpbmZvX3NoaXBfc2VwZXJhdGVseSddID0gJ0NoYW1wIGR1IG1vZHVsZSBQcm9kdWN0cyBpbmRpcXVhbnQgcXVlIGNldHRlIHZhbGV1ciBkZXZyYWl0IMOqdHJlIGxpdnLDqSBlbiB0YW50IHF1ZSBzb24gcHJvcHJlIHBhcXVldC9jb2xpcyc7CiRsYW5nWydpbmZvX3NoaXBwaW5nX21vZHVsZSddID0gJ0lsIGVzdCBwb3NzaWJsZSBkZSB0w6lsw6ljaGFyZ2VyIGRlIG5vbWJyZXV4IG1vZHVsZXMgZGUgY2FsY3VsIGRlIGZyYWlzIGRcJ2V4cMOpZGl0aW9uLCBjaGFjdW4gZFwnZXV4IGF5YW50IHVuIGNvbXBvcnRlbWVudCBkaWZmw6lyZW50LiBWZXVpbGxleiBzw6lsZWN0aW9ubmVyIHVuIGRlcyBtb2R1bGVzIGluc3RhbGzDqXMgZGFucyBjZXR0ZSBsaXN0ZS4nOwokbGFuZ1snaW5mb19zdXBwbGllcl9tb2R1bGVzJ10gPSAnRGVzIG1vZHVsZXMgZm91cm5pc3NldXJzIHNvbnQgY2FwYWJsZXMgZFwnaW50ZXJhZ2lyIGF2ZWMgbGUgcGFuaWVyIHBvdXIgcsOpcG9uZHJlIGF1eCBkZW1hbmRlcyBkZSBtb2R1bGVzIGRlIHRyYWl0ZW1lbnQgZGVzIGNvbW1hbmRlcy4gVm91cyBwb3V2ZXogc8OpbGVjdGlvbm5lciBwbHVzaWV1cnMgbW9kdWxlcyBsZSBmb3Vybmlzc2V1ci4nOwokbGFuZ1snaW5mb190YXhfbW9kdWxlJ10gPSAnRGUgbm9tYnJldXggbW9kdWxlcyBlZmZlY3R1YW50IGxlIGNhbGN1bCBkZXMgdGF4ZXMgcGV1dmVudCDDqnRyZSB0w6lsw6ljaGFyZ8Opcy4gQ2hhY3VuIGRcJ2V1eCBhIGRlcyBjb21wb3J0ZW1lbnRzIGRpZmbDqXJlbnRzLiBNZXJjaSBkZSBzw6lsZWN0aW9ubmVyIHVuIGRlcyBtb2R1bGVzIGRlIGNhbGN1bCBkZXMgdGF4ZXMgaW5zdGFsbMOpIMOgIHBhcnRpciBkZSBjZXR0ZSBsaXN0ZSc7CiRsYW5nWydpbmZvX3RheF9zaGlwcGluZyddID0gJ1NlbG9uIGxhIGxvY2FsaXNhdGlvbiwgbGVzIGZyYWlzIGRcJ2Vudm9pIG5lIHNvbnQgcGFzIHRheGFibGUuIFV0aWxpc2VyIGNldHRlIG9wdGlvbiBwb3VyIG5lIHBhcyBham91dGVyIGRlIHRheGUgYXV4IGZyYWlzIGRcJ2Vudm9pLic7CiRsYW5nWydsZW5ndGhfdW5pdHMnXSA9ICdVbml0w6kgZGUgbG9uZ3VldXImbmJzcDsnOwokbGFuZ1snbGluZWl0ZW1fZGVzY190ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgZGVzY3JpcHRpb24gZFwndW5lIGxpZ25lIHByb2R1aXQmbmJzcDsnOwokbGFuZ1snbWF4X3Byb2R1Y3RzJ10gPSAnTm9tYnJlIG1heC4gZGUgcHJvZHVpdHMgZGFucyB1biBzZXVsIHBhbmllciZuYnNwOyc7CiRsYW5nWydtYXhfc2VydmljZXMnXSA9ICdOb21icmUgbWF4LiBkZSBzZXJ2aWNlcyBkYW5zIHVuIHNldWwgcGFuaWVyJm5ic3A7JzsKJGxhbmdbJ21heF9zdWJzY3JpcHRpb25zJ10gPSAnTm9tYnJlIG1heC4gZFwnYWJvbm5lbWVudHMgZGFucyB1biBzZXVsIHBhbmllciZuYnNwOyc7CiRsYW5nWydtaXhlZF9zdWJzY3JpcHRpb25zJ10gPSAnQXV0b3Jpc2VyIGxlIG3DqWxhbmdlIGRlIHByb2R1aXRzLCBzZXJ2aWNlcyBldCBhYm9ubmVtZW50cyBkYW5zIGxlIG3Dqm1lIHBhbmllciZuYnNwOyc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdCYXNlIHBvdXIgdG91cyBsZXMgbW9kdWxlcyBFLWNvbW1lcmNlLCBjZSBtb2R1bGUgZm91cm5pdCDDqWdhbGVtZW50IGRlcyBwcsOpZsOpcmVuY2VzIGdsb2JhbGVzIGV0IGRlcyBjb25uZWN0ZXVycyBlbnRyZSBsZXMgbW9kdWxlcyBFLWNvbW1lcmNlIENNU01TLic7CiRsYW5nWydubyddID0gJ05vbic7CiRsYW5nWydub25lJ10gPSAnQXVjdW4nOwokbGFuZ1snbm90X2FwcGxpY2FibGUnXSA9ICdOb24gYXBwbGljYWJsZSc7CiRsYW5nWydwYWNrYWdpbmdfbW9kdWxlJ10gPSAnTW9kdWxlIGRlIHBhY2thZ2luZyc7CiRsYW5nWydwYXltZW50X21vZHVsZXMnXSA9ICdNb2R1bGUgZGUgcGFpZW1lbnQgZW4gbGlnbmUnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdMZSBtb2R1bGUgQ0dFY29tbWVyY2VCYXNlIGVzdCBtYWludGVuYW50IGluc3RhbGzDqSwgdm91cyBwb3V2ZXogbWFpbnRlbmFudCBwcm9jw6lkZXIgw6AgbFwnaW5zdGFsbGF0aW9uIGRlIHBsdXNpZXVycyBjb21wb3NhbnRzIGRlIGxhIHN1aXRlIGUtY29tbWVyY2UgYWZpbiBkZSByZW1wbGlyIHZvcyBmb25jdGlvbnMgbsOpY2Vzc2FpcmVzLiBEw6lzIGxcJ2luc3RhbGxhdGlvbiB0ZXJtaW7DqWUgZGUgY2VzIGNvbXBvc2FudHMgcmV0b3VybmV6IGF1IHBhbm5lYXUgZFwnYWRtaW5pc3RyYXRpb24gZGVzIG1vZHVsZXMgcG91ciBwb3Vyc3VpdnJlIGxhIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0NlIG1vZHVsZSBhaW5zaSBxdWUgbGVzIGRvbm7DqWVzIGFzc29jacOpZXMgb250IMOpdMOpIHN1cHByaW3DqXMgZGUgbGEgYmFzZSBkZSBkb25uw6llcyBkZSBDTVNNUy4gVm91cyBwb3V2ZXogw6AgcHLDqXNlbnQgc3VwcHJpbWVyIHNlcyBmaWNoaWVycy4nOwokbGFuZ1sncHJvbW90aW9uc19tb2R1bGUnXSA9ICdNb2R1bGUgZGUgcHJvbW9zIC8gYm9ucyBkZSByw6lkdWN0aW9uJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9jb21wYW55J10gPSAnRW50cmVwcmlzZSZuYnNwOyc7CiRsYW5nWydwcm9tcHRfZmlyc3RuYW1lJ10gPSAnUHLDqW5vbSZuYnNwOyc7CiRsYW5nWydwcm9tcHRfbGFzdG5hbWUnXSA9ICdOb20mbmJzcDsnOwokbGFuZ1sncHJvbXB0X21heHdlaWdodCddID0gJ1BvaWRzIG1heCc7CiRsYW5nWydwcm9tcHRfYWRkcmVzczEnXSA9ICdBZHJlc3NlIExpZ25lIDEmbmJzcDsnOwokbGFuZ1sncHJvbXB0X2FkZHJlc3MyJ10gPSAnQWRyZXNzZSBMaWduZSAyJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9jaXR5J10gPSAnVmlsbGUmbmJzcDsnOwokbGFuZ1sncHJvbXB0X3N0YXRlJ10gPSAnRXRhdCAvIFByb3ZpbmNlJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9wb3N0YWwnXSA9ICdDb2RlIFBvc3RhbCZuYnNwOyc7CiRsYW5nWydwcm9tcHRfY291bnRyeSddID0gJ1BheXMmbmJzcDsnOwokbGFuZ1sncHJvbXB0X2ZheCddID0gJ0ZheCZuYnNwOyc7CiRsYW5nWydwcm9tcHRfZW1haWwnXSA9ICdDb3VycmllbCZuYnNwOyc7CiRsYW5nWydwcm9tcHRfcGhvbmUnXSA9ICdUw6lsw6lwaG9uZSZuYnNwOyc7CiRsYW5nWydwcm9tcHRfb3ZlcndlaWdodF9saW1pdCddID0gJ0xpbWl0ZSBkZSBwb2lkcyc7CiRsYW5nWydwcm9tcHRfc2hpcHBpbmdfYm94ZXMnXSA9ICdDb2xpcyBkXCdleHDDqWRpdGlvbic7CiRsYW5nWydwcm9tcHRfd2lkdGgnXSA9ICdMYXJnZXVyJzsKJGxhbmdbJ3Byb21wdF9oZWlnaHQnXSA9ICdIYXV0ZXVyJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGgnXSA9ICdMb25ndWV1cic7CiRsYW5nWydwcm9tcHRfd2VpZ2h0J10gPSAnUG9pZHMnOwokbGFuZ1sncHJvbXB0X3NvcnRpbmcnXSA9ICdQcmlvcml0w6knOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOb20nOwokbGFuZ1sncmVzZXQnXSA9ICdSw6lpbml0aWFsaXNlcic7CiRsYW5nWydzaGlwX2RpbWVuc2lvbnNfZmllbGQnXSA9ICdDaGFtcCBkZSBkaW1lbnNpb25zIGRcJ2Vudm9pIGRlcyBwcm9kdWl0cyc7CiRsYW5nWydzaGlwX3NlcGVyYXRlbHlfZmllbGQnXSA9ICdDaGFtcCBkXCdlbnZvaSBzw6lwYXLDqSBkZXMgcHJvZHVpdHMnOwokbGFuZ1snc2hpcHBpbmdfbW9kdWxlJ10gPSAnTW9kdWxlcyBkXCdleHDDqWRpdGlvbiZuYnNwOyc7CiRsYW5nWydzdXBwbGllcl9tb2R1bGVzJ10gPSAnTW9kdWxlcyBmb3Vybmlzc2V1cnMmbmJzcDsnOwokbGFuZ1snc3VibWl0J10gPSAnU291bWV0dHJlJzsKJGxhbmdbJ3N5c3RlbV9wb2xpY3knXSA9ICdQb2xpdGlxdWUgc3lzdMOobWUnOwokbGFuZ1sndGFiX2NhcnRfc2V0dGluZ3MnXSA9ICdQYXJhbcOodHJlcyBwYW5pZXInOwokbGFuZ1sndGFiX2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdQYXJhbcOodHJlcyBnw6luw6lyYXV4JzsKJGxhbmdbJ3RhYl9oYW5kbGluZ19zZXR0aW5ncyddID0gJ0dlc3Rpb24gZGVzIHBhcmFtw6h0cmVzJzsKJGxhbmdbJ3RhYl9teWluZm9fc2V0dGluZ3MnXSA9ICdBZHJlc3NlIGR1IG1hZ2FzaW4nOwokbGFuZ1sndGFiX3BhY2thZ2luZ19zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzIHBhY2thZ2luZyc7CiRsYW5nWyd0YWJfcGF5bWVudF9zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzIGRlIHBhaWVtZW50JzsKJGxhbmdbJ3RhYl9wb2xpY3knXSA9ICdQb2xpdGlxdWUnOwokbGFuZ1sndGFiX3Byb21vdGlvbl9zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzIGRlcyBwcm9tb3Rpb25zJzsKJGxhbmdbJ3RhYl9zaGlwcGluZ19zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzIGRcJ2V4cMOpZGl0aW9uJzsKJGxhbmdbJ3RhYl9zdXBwbGllcl9zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzIGZvdXJuaXNzZXVyJzsKJGxhbmdbJ3RhYl90YXhfc2V0dGluZ3MnXSA9ICdSw6lnbGFnZSBkZXMgdGF4ZXMnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ01vZHVsZSBkZSBjYWxjdWwgZGUgdGF4ZXMmbmJzcDsnOwokbGFuZ1sndGF4X3NoaXBwaW5nJ10gPSAnQ2FsY3VsIGRlcyB0YXhlcyBzdXIgbGVzIGZyYWlzIGRcJ2Vudm9pJm5ic3A7JzsKJGxhbmdbJ3VuaXRzX2NlbnRpbWV0ZXJzJ10gPSAnQ2VudGltw6h0cmVzJzsKJGxhbmdbJ3VuaXRzX2luY2hlcyddID0gJ1BvdWNlcyc7CiRsYW5nWyd1bmxpbWl0ZWQnXSA9ICdJbGxpbWl0w6knOwokbGFuZ1snd2VpZ2h0X3VuaXRzJ10gPSAnVW5pdMOpcyBkZSBwb2lkcyZuYnNwOyc7CiRsYW5nWyd5ZXMnXSA9ICdPdWknOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Fza19yZWFsbHlfdW5pbnN0YWxsJ10gPSAnRXIgZHUgdmlya2VsaWcgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBhdmluc3RhbGxlcmUgZGVubmUgbW9kdWxlbic7CiRsYW5nWydhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbiddID0gJ1Byb2R1a3RhdHRyaWJ1dHQgdmlzbmluZ3NtYWwnOwokbGFuZ1snY2FydF9tb2R1bGUnXSA9ICdIYW5kbGVrdXJ2bW9kdWwnOwokbGFuZ1snY3VycmVuY3lfY29kZSddID0gJ1ZhbHV0YWtvZGUnOwokbGFuZ1snY3VycmVuY3lfc3ltYm9sJ10gPSAnVmFsdXRhc3ltYm9sJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRhZGRyZXNzJ10gPSAnT3BnaXR0IGFkcmVzc2UgZXIgdWd5bGRpZyAobWFuZ2xlciBlbiBlbGxlciBmbGVyZSBwJmFyaW5nO2tyZXZkZSBmZWx0ZXIpPyc7CiRsYW5nWydldmVudF9kZXNjX0NhcnRBZGp1c3RlZCddID0gJ0thbGxlcyBuJmFyaW5nO3IgYnVsayBqdXN0ZXJpbmdlciBlciBnam9ydCBpIGhhbmRsZXZvZ25lbiwgZWxsZXIgZW4gYXYgZGV0cyBoYW5kbGVrdXJ2ZXInOwokbGFuZ1snZXZlbnRfZGVzY19DYXJ0SXRlbUFkZFByZSddID0gJ0thbGxlcyBmJm9zbGFzaDtyIGV0IGVsZW1lbnQgbGVnZ2VzIHRpbCBoYW5kbGV2b2duZW4nOwokbGFuZ1snZXZlbnRfZGVzY19DYXJ0SXRlbUFkZGVkJ10gPSAnS2FsbGVzIG4mYXJpbmc7ciBldCBwcm9kdWt0IGVsbGVyIGVuIHRqZW5lc3RlIGVyIGxhZ3QgdGlsIGhhbmRsZXZvZ25lbic7CiRsYW5nWydldmVudF9kZXNjX09yZGVyQ3JlYXRlZCddID0gJ0thbGxlcyBldHRlciBlbiBvcmRyZSBmJm9zbGFzaDtyc3Qgc2V0dGVzIGlubiBpIGRhdGFiYXNlbic7CiRsYW5nWydldmVudF9kZXNjX09yZGVyRGVsZXRlZCddID0gJ0thbGxlcyBldHRlciBhdCBlbiBiZXN0aWxsaW5nIGVyIGJsaXR0IGZ1bGxzdGVuZGlnIGZqZXJuZXQnOwokbGFuZ1snZXZlbnRfZGVzY19PcmRlclVwZGF0ZWQnXSA9ICdLYWxsZXMgZXR0ZXIgZW4gZWtzaXN0ZXJlbmRlIG9yZHJlIGVyIGxhZ3JldCc7CiRsYW5nWydldmVudF9oZWxwX0NhcnRJdGVtQWRkUHJlJ10gPSAnPHA+U2VudCBwcmlvciB0byBhbiBpdGVtIGJlaW5nIGFkZGVkIHRvIHRoZSBjYXJ0LCB0aGlzIGV2ZW50IGlzIGNhbGxlZCBhZnRlciB0aGUgY2FydCBwb2xpY3kgaXMgY2hlY2tlZCwgYW5kIGNhbiBiZSB1c2VkIHRvIGFsdGVyIHRoZSBpdGVtLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7ZXhpc3RpbmdfaXRlbXMmcXVvdDsgLSA8ZW0+KHJlYWQgb25seSk8L2VtPiAgQW4gYXJyYXkgb2YgY2dfZWNvbW1fY2FydGl0ZW0gaXRlbXMgcmVwcmVzZW50aW5nIHRoZSBleGlzdGluZyBpdGVtcyBpbiB0aGUgY2FydC48L2xpPg0KPGxpPiZxdW90O2NhcnRfaXRlbSZxdW90OyAtIDxlbT4obW9kaWZpYWJsZSk8L2VtPiBBIHJlZmVyZW5jZSAobW9kaWZpYWJsZSkgdG8gYSBjZ19lY29tbV9jYXJ0aXRlbSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBpdGVtIHRoYXQgaXMgcHJvcG9zZWQgdG8gYWRkIHRvIHRoZSBjYXJ0LjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX0NhcnRBZGp1c3RlZCddID0gJzxwPlNlbnQgd2hlbiBidWxrIGFkanVzdG1lbnRzIGFyZSBkb25lIHRvIHRoZSBjYXJ0LCBvciBvbmUgb2YgaXRzIGJhc2tldHMuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCjxsaT4mYW1wO3F1b3Q7Y2FydF9pdGVtcyZhbXA7cXVvdDsgLSBBbiBoYXNoIG9mIGJhc2tldHMsIGVhY2ggY29udGFpbmluZyBhbiBhcnJheSBvZiBjYXJ0IGl0ZW0gb2JqZWN0cyBhbmQgc29tZSBzdW1tYXJ5IGluZm9ybWF0aW9uLjwvbGk+DQo8bGk+JmFtcDtxdW90O3N0YXR1cyZhbXA7cXVvdDsgLSBBIHN0YXR1cyBzdHJpbmcsIGluZGljYXRpbmcgd2V0aGVyIHRoaXMgaXMgYmVmb3JlLCBvciBhZnRlciB0aGUgaXRlbXMgaGF2ZSBjaGFuZ2VkLjwvbGk+DQo8bGk+JmFtcDtxdW90O2V4dHJhJmFtcDtxdW90OyAtIEFuIGFkZGl0aW9uYWwgc3RyaW5nIHRoYXQgbWF5IHByb3ZpZGUgc29tZSBzdGF0ZSBpbmZvcm1hdGlvbiBhcyB0byB3aGVuIHRoaXMgYWN0aW9uIHdhcyBjYWxsZWQmIzAzOTs7DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX0NhcnRJdGVtQWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYnVsayBhZGp1c3RtZW50cyBhcmUgZG9uZSB0byB0aGUgY2FydCwgb3Igb25lIG9mIGl0cyBiYXNrZXRzLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7Y2FydF9pdGVtJnF1b3Q7IC0gVGhlIHNpbmdsZSBjYXJ0IGl0ZW0gb2JqZWN0IHRoYXQgd2FzIGFkZGVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09yZGVyQ3JlYXRlZCddID0gJzxwPlNlbnQgYWZ0ZXIgYW4gb3JkZXIgaXMgaW5pdGlhbGx5IGluc2VydGVkIGludG8gdGhlIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7b3JkZXJfaWQmcXVvdDsgLSBUaGUgbmV3bHkgY3JlYXRlZCBvcmRlciBpZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlckRlbGV0ZWQnXSA9ICc8cD5TZW50IGFmdGVyIGFuIG9yZGVyIGlzIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCjxsaT4mcXVvdDtvcmRlcl9pZCZxdW90OyAtIFRoZSBkZWxldGVkIG9yZGVyIGlkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09yZGVyVXBkYXRlZCddID0gJzxwPlNlbnQgYWZ0ZXIgYW4gb3JkZXIgaXMgdXBkYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7b3JkZXJfaWQmcXVvdDsgLSBUaGUgb3JkZXIgaWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgRWNvbW1lcmNlIEJhc2UgJzsKJGxhbmdbJ2dhdGV3YXlfcG9saWN5J10gPSAnR2F0ZXdheS1wb2xpdGlrayc7CiRsYW5nWydpbmZvX2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJ10gPSAnTWFsZW4gYnJ1a2VzIGZvciAmYXJpbmc7IHZpc2UgYXR0cmlidXR0ZXQgcnVsbGVnYXJkaW5saXN0ZXIuIE11bGlnZSB2YXJpYWJsZXIgZXIgKCRjdXJyZW5jeV9zeW1ib2wpLCAoJHdlaWdodF91bml0cyksICgkYXR0cmliX2FkanVzdCksICgkYXR0cmliX3RleHQpLCAoJGF0dHJpYl9za3UpJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGUnXSA9ICdGbGVyZSBtb2R1bGVyIHNvbSBmdW5nZXJlciBzb20gJiMwMzk7SGFuZGxla3VydmVyJiMwMzk7IGthbiBsYXN0ZXMgbmVkLiBIdmVyIGF2IGRlbSBtZWQgdWxpayBhdGZlcmQuIFZlbm5saWdzdCB2ZWxnIGVuIGF2IGRlIGluc3RhbGxlcnRlIGhhbmRsZWt1cnZtb2R1bGVyIGZyYSBkZW5uZSBsaXN0ZW4nOwokbGFuZ1snaW5mb19jYXJ0X3BvbGljeSddID0gJ0hhbmRsZXZvZ25wb2xpdGlra2VuIGVyIHAmYXJpbmc7dmlya2V0IGF2IGVnZW5za2FwZW5lIHRpbCBiZXRhbGluZ3NnYXRld2F5LCBvZyBiZXN0ZW1tZXIgaHZvciBtYW5nZSBvZyBodmEgc2xhZ3MgZ2plbnN0YW5kZXIga2FuIGxlZ2dlcyB0aWwgaGFuZGxldm9nbmVuKGUpLiBEdSBrYW4geXR0ZXJsaWdlcmUgYmVncmVuc2UgaGFuZGxla3VydnBvbGl0aWtrZW4sIG1lbiBrYW4gaWtrZSBvbWcmYXJpbmc7IGJlZ3JlbnNuaW5nZW5lIHBsYXNzZXJ0IGF2IHBvcnRhbGVuLic7CiRsYW5nWydpbmZvX2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnXSA9ICdEZW5uZSBtYWxlbiBicnVrZXMgdGlsICZhcmluZzsgZm9ybWF0ZXJlICZlYWN1dGU7biBsaW5qZSBiZXNrcml2ZWxzZSBmb3IgZXQgaGFuZGxldm9nbmVsZW1lbnQuIERlbiBzYW1tZSBiZXNrcml2ZWxzZW4gYnJ1a2VzIHRpbCBkZW4gYWt0dWVsbGUgbGluamVuIGZvciBvcmRyZWJlaGFuZGxpbmcuJzsKJGxhbmdbJ2luZm9fb3ZlcndlaWdodF9saW1pdCddID0gJ1Zla3RlbiBzb20gdGlsc2llciBhdCBldCBlbGVtZW50IHNrYWwgc2VuZGVzIHNvbSBlbiBlZ2VuIHBha2tlJzsKJGxhbmdbJ2luZm9fcGFja2FnaW5nX21vZHVsZSddID0gJ1ZlbGcgZW4gbW9kdWwgYW5zdmFybGlnIGZvciAmYXJpbmc7IG9yZG5lIGRlIGZvcnNramVsbGlnZSBlbmhldGVuZSBpIGVuIG9yZHJlIGZvciBwYWtraW5nLiBPbSBpbmdlbiBlciB2YWxndCwgZGEgdmlsIGZvcnNlbmRlbHNlKHNoaXBwaW5nKSB0cm9saWcga2Fsa3VsZXJlIGtvc3RuYWRlbmUgdWF2aGVuZ2lnIGZvciBodmVyIGVuaGV0IGkgb3JkcmVuLic7CiRsYW5nWydpbmZvX3BheW1lbnRfbW9kdWxlJ10gPSAnRmxlcmUgbW9kdWxlciBzb20gdGlsZiZvc2xhc2g7cmVyIGZ1bmtzam9uYWxpdGV0IGZvciAmYXJpbmc7IHRpbGxhdGUgZWxla3Ryb25pc2tlIGJldGFsaW5nZXIga2FuIGxhc3RlcyBuZWQuIEh2ZXIgYXYgZGVtIG1lZCB1bGlrIGF0ZmVyZC4gVmVsZyBlbiBhdiBkZSBpbnN0YWxsZXJ0ZSBiZXRhbGluZ3Ntb2R1bGVuZSBmcmEgZGVubmUgbGlzdGVuJzsKJGxhbmdbJ2luZm9fcHJvbW90aW9uc19tb2R1bGUnXSA9ICdGbGVyZSBtb2R1bGVyIHNvbSB0aWxmJm9zbGFzaDtyZXIgZnVua3Nqb25hbGl0ZXRlbiB2ZWQgJmFyaW5nOyB0aWxieSBrdXBvbmdlciBlbGxlciB1bGlrZSBmb3JtZXIgZm9yIHJhYmF0dGVyIGthbiBsYXN0ZXMgbmVkLiBIdmVyIGF2IGRlbSBtZWQgdWxpayBhdGZlcmQuIFZlbGcgZW4gYXYgZGUgaW5zdGFsbGVydGUgcmFiYXR0bW9kdWxlciBmcmEgZGVubmUgbGlzdGVuJzsKJGxhbmdbJ2luZm9fc2hpcF9kaW1lbnNpb25zJ10gPSAnRmVsdCBmcmEgUHJvZHVjdHMtbW9kdWxlbiBzb20gaW5kaWtlcmVyIGZvcnNlbmRlbHNlc2RpbWVuc2pvbmVuZSBmb3IgZGV0dGUgcHJvZHVrdGV0JzsKJGxhbmdbJ2luZm9fc2hpcF9zZXBlcmF0ZWx5J10gPSAnRmVsdCBmcmEgUHJvZHVjdHMtbW9kdWxlbiBzb20gaW5kaWtlcmVyZSBhdCBkZW5uZSB2ZXJkaWVuIHNrYWwgc2VuZGVzIHNvbSBlbiBlZ2VuIHBha2tlJzsKJGxhbmdbJ2luZm9fc2hpcHBpbmdfbW9kdWxlJ10gPSAnRmxlcmUgbW9kdWxlciBzb20gdXRmJm9zbGFzaDtyZXIgZnJha3Qga29zdG5hZHNiZXJlZ25pbmdlbmUga2FuIGxhc3RlcyBuZWQuIEh2ZXIgYXYgZGVtIG1lZCB1bGlrIGF0ZmVyZC4gVmVsZyBlbiBhdiBkZSBpbnN0YWxsZXJ0ZSBmcmFrdG1vZHVsZW5lIGZyYSBkZW5uZSBsaXN0ZW4nOwokbGFuZ1snaW5mb19zdXBwbGllcl9tb2R1bGVzJ10gPSAnTGV2ZXJhbmQmb3NsYXNoO3IgbW9kdWxlciBlciBpIHN0YW5kIHRpbCAmYXJpbmc7IGtvbW11bmlzZXJlIG1lZCBoYW5kbGVrdXJ2ZW4gb2cgc3ZhcmUgcCZhcmluZzsgZm9yZXNwJm9zbGFzaDtyc2xlciBmcmEgb3JkcmViZWhhbmRsaW5nc21vZHVsZXIuIER1IGthbiB2ZWxnZSBmbGVyZSBsZXZlcmFuZCZvc2xhc2g7cm1vZHVsZXIuJzsKJGxhbmdbJ2luZm9fdGF4X21vZHVsZSddID0gJ0ZsZXJlIG1vZHVsZXIgc29tIHV0ZiZvc2xhc2g7cmVyIGF2Z2lmdHNiZXJlZ25pbmcga2FuIGxhc3RlcyBuZWQuIEh2ZXIgYXYgZGlzc2UgbWVkIGZvcnNramVsbGlnZSB2aXJrZW0mYXJpbmc7dGVyLiBWZWxnIGVuIGF2IGRlIGluc3RhbGxlcnRlIGF2Z2lmdHNtb2R1bGVuZSBmcmEgZGVubmUgbGlzdGVuJzsKJGxhbmdbJ2luZm9fdGF4X3NoaXBwaW5nJ10gPSAnUCZhcmluZzsgbm9lbiBzdGVkZXIgZXIga2Fuc2tqZSBpa2tlIGZyYWt0IHNrYXR0ZXBsaWt0aWcuIEJydWsgZGV0dGUgYWx0ZXJuYXRpdmV0IGZvciAmYXJpbmc7IHNpa3JlIGF0IGluZ2VuIGZyYWt0a29zdG5hZGVuZSBibGlyIHRpbGxhZ3Qgc2thdHQnOwokbGFuZ1snbGVuZ3RoX3VuaXRzJ10gPSAnTGVuZ2RlIGVuaGV0ZXInOwokbGFuZ1snbGluZWl0ZW1fZGVzY190ZW1wbGF0ZSddID0gJ0xpbmplIHZhcmViZXNrcml2ZWxzZXNtYWwnOwokbGFuZ1snbWF4X3Byb2R1Y3RzJ10gPSAnTWFrc2ltYWx0IGFudGFsbCBwcm9kdWt0ZXIgaSBlbiBoYW5kbGVrdXJ2JzsKJGxhbmdbJ21heF9zZXJ2aWNlcyddID0gJ01ha3NpbWFsdCBhbnRhbGwgdGplbmVzdGVyIGkgZW4gaGFuZGxla3Vydic7CiRsYW5nWydtYXhfc3Vic2NyaXB0aW9ucyddID0gJ01ha3NpbWFsdCBhbnRhbGwgYWJvbm5lbWVudCBpIGVuIGhhbmRsZWt1cnYnOwokbGFuZ1snbWl4ZWRfc3Vic2NyaXB0aW9ucyddID0gJ1RpbGxhdCBlbiBibGFuZGluZyBhdiBwcm9kdWt0ZXIsIHRqZW5lc3RlciBvZyBhYm9ubmVtZW50IGkgZW4gaGFuZGxla3Vydj8nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnRW4gYmFzZSBrbGFzc2UgZm9yIGFsbGUgZS1oYW5kZWxzbW9kdWxlbmUuIERlbm5lIHZlcmt0Jm9zbGFzaDt5ZXQgZ2lyIG9ncyZhcmluZzsgZmVsbGVzIHByZWZlcmFuc2VyIG9nIGtvbnRha3RlciBmb3IgZGUgdWxpa2UgZGVsZXIgYXYgZWhhbmRlbHN1aXRlbic7CiRsYW5nWydubyddID0gJ05laSc7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snbm90X2FwcGxpY2FibGUnXSA9ICdJa2tlIGFrdHVlbHQnOwokbGFuZ1sncGFja2FnaW5nX21vZHVsZSddID0gJ1Bha2tlIG1vZHVsJzsKJGxhbmdbJ3BheW1lbnRfbW9kdWxlJ10gPSAnT25saW5lIGJldGFsaW5nc2dhdGV3YXkgbW9kdWwnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdDR0Vjb21tZXJjZUJhc2UgbW9kdWxlbiBlciBuJmFyaW5nOyBpbnN0YWxsZXJ0LCBrYW4gZHUgbiZhcmluZzsgZyZhcmluZzsgdmlkZXJlIHRpbCAmYXJpbmc7IGluc3RhbGxlcmUgZmxlcmUga29tcG9uZW50ZXIgdGlsIGUtaGFuZGVsc3VpdGVuIGZvciAmYXJpbmc7IGZ5bGxlIGRlIG4mb3NsYXNoO2R2ZW5kaWdlIGZ1bmtzam9uYWxpdGV0ZW5lIGR1IHRyZW5nZXIuIFMmYXJpbmc7IHNuYXJ0IGRlIGVyIGluc3RhbGxlcnQgZyZhcmluZztyIGR1IHRpbCBkaXNzZSBtb2R1bGVuZXMgYWRtaW5pc3RyYXNqb25zcGFuZWwgb2cgZm9ydHNldHRlciBrb25maWd1cmFzam9uZW4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0Rlbm5lIG1vZHVsZW4gb2cgYWxsZSB0aWxoJm9zbGFzaDtyZW5kZSBkYXRhIGhhciBibGl0dCBmamVybmV0IGZyYSBDTVNNUyBkYXRhYmFzZW4uIER1IGthbiBuJmFyaW5nOyB0cnlndCAmYXJpbmc7IGZqZXJuZSBkZW5zIGZpbGVyJzsKJGxhbmdbJ3Byb21vdGlvbnNfbW9kdWxlJ10gPSAnUHJvbW90aW9ucyBtb2R1bCc7CiRsYW5nWydwcm9tcHRfY29tcGFueSddID0gJ0Zpcm1hJzsKJGxhbmdbJ3Byb21wdF9maXJzdG5hbWUnXSA9ICdGcm9uYXZuJzsKJGxhbmdbJ3Byb21wdF9sYXN0bmFtZSddID0gJ0V0dGVybmF2bic7CiRsYW5nWydwcm9tcHRfbWF4d2VpZ2h0J10gPSAnTWFrcyB2ZWt0JzsKJGxhbmdbJ3Byb21wdF9hZGRyZXNzMSddID0gJ0FkcmVzc2VsaW5qZSAxJzsKJGxhbmdbJ3Byb21wdF9hZGRyZXNzMiddID0gJ0FkcmVzc2VsaW5qZSAyJzsKJGxhbmdbJ3Byb21wdF9jaXR5J10gPSAnQnknOwokbGFuZ1sncHJvbXB0X3N0YXRlJ10gPSAnU3RhdCAvIFByb3ZpbnMnOwokbGFuZ1sncHJvbXB0X3Bvc3RhbCddID0gJ1Bvc3RudW1tZXIvIHppcC1rb2RlJzsKJGxhbmdbJ3Byb21wdF9jb3VudHJ5J10gPSAnTGFuZCc7CiRsYW5nWydwcm9tcHRfZmF4J10gPSAnVEVsZWZha3MnOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAnRS1wb3N0YWRyZXNzZSc7CiRsYW5nWydwcm9tcHRfcGhvbmUnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3Byb21wdF9vdmVyd2VpZ2h0X2xpbWl0J10gPSAnT3ZlcnZla3RzZ3JlbnNlJzsKJGxhbmdbJ3Byb21wdF9zaGlwcGluZ19ib3hlcyddID0gJ0ZvcnNlbmRlbHNlc2Jva3Nlcic7CiRsYW5nWydwcm9tcHRfd2lkdGgnXSA9ICdCcmVkZGUnOwokbGFuZ1sncHJvbXB0X2hlaWdodCddID0gJ0gmb3NsYXNoO3lkZSc7CiRsYW5nWydwcm9tcHRfbGVuZ3RoJ10gPSAnTGVuZ2RlJzsKJGxhbmdbJ3Byb21wdF93ZWlnaHQnXSA9ICdWZWt0JzsKJGxhbmdbJ3Byb21wdF9zb3J0aW5nJ10gPSAnUHJpb3JpdGV0JzsKJGxhbmdbJ3Byb21wdF9uYW1lJ10gPSAnTkF2bic7CiRsYW5nWydyZXNldCddID0gJ051bGxzdGlsbCc7CiRsYW5nWydzaGlwX2RpbWVuc2lvbnNfZmllbGQnXSA9ICdQcm9kdWt0Zm9yc2VuZGVsc2UgZGltZW5zam9uc2ZlbHQnOwokbGFuZ1snc2hpcF9zZXBlcmF0ZWx5X2ZpZWxkJ10gPSAnUHJvZHVrdCBzZW5kLXNlcGFyYXQgZmVsdCc7CiRsYW5nWydzaGlwcGluZ19tb2R1bGUnXSA9ICdGb3JzZW5kZWxzZSBtb2R1bGVyJzsKJGxhbmdbJ3N1cHBsaWVyX21vZHVsZXMnXSA9ICdMZXZlcmFuZCZvc2xhc2g7ciBtb2R1bGVyJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1V0ZiZvc2xhc2g7cic7CiRsYW5nWydzeXN0ZW1fcG9saWN5J10gPSAnU3lzdGVtcG9saXRpa2snOwokbGFuZ1sndGFiX2NhcnRfc2V0dGluZ3MnXSA9ICdIYW5kbGVrdXJ2aW5uc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVyZWxsZSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9teWluZm9fc2V0dGluZ3MnXSA9ICdMYWdlcmFkcmVzc2UnOwokbGFuZ1sndGFiX3BhY2thZ2luZ19zZXR0aW5ncyddID0gJ1Bha2tlIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3BheW1lbnRfc2V0dGluZ3MnXSA9ICdCZXRhbGluZ3Npbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9wb2xpY3knXSA9ICdQb2xpY3kgJzsKJGxhbmdbJ3RhYl9wcm9tb3Rpb25fc2V0dGluZ3MnXSA9ICdQcm9tb3Rpb24gaW5uc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfc2hpcHBpbmdfc2V0dGluZ3MnXSA9ICdGb3JzZW5kZWxzZXNpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9zdXBwbGllcl9zZXR0aW5ncyddID0gJ0xldmVyYW5kJm9zbGFzaDtyaW5uc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfdGF4X3NldHRpbmdzJ10gPSAnQXZnaWZ0c2lubnN0aWxsaW5nZXInOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ0F2Z2lmdHNrYWxrdWxlcmluZ3Ntb2R1bCc7CiRsYW5nWyd0YXhfc2hpcHBpbmcnXSA9ICdGcmFrdCBhdmdpZnQvc2thdHQga2Fsa3VsZXJpbmdlcic7CiRsYW5nWyd1bml0c19jZW50aW1ldGVycyddID0gJ0NlbnRpbWV0ZXInOwokbGFuZ1sndW5pdHNfaW5jaGVzJ10gPSAnVG9tbWVyJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ1ViZWdyZW5zZXQnOwokbGFuZ1snd2VpZ2h0X3VuaXRzJ10gPSAnVmVrdGVuaGV0ZXInOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1sncWNhJ10gPSAnUDAtNTM2ODQ5MTE1LTEzMDc5ODM0OTUyMTAnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNDAwNjk4Nzg0LjEzMzk1MzA5OTYuMTMzOTg3ODg2Ni4xMzM5ODgyMTY1LjE2JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTMzOTUzMDk5Ni4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Fza19yZWFsbHlfdW5pbnN0YWxsJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgbW9kdWxlIHdpbHQgZGUmaXVtbDtuc3RhbGxlcmVuPyc7CiRsYW5nWydhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbiddID0gJ1Byb2R1Y3QgQXR0cmlidXRlbiBEaXNwbGF5IFNqYWJsb29uJzsKJGxhbmdbJ2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUgJzsKJGxhbmdbJ2N1cnJlbmN5X2NvZGUnXSA9ICdWYWx1dGEgQ29kZSc7CiRsYW5nWydjdXJyZW5jeV9zeW1ib2wnXSA9ICdWYWx1dGEgU3ltYm9vbCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkYWRkcmVzcyddID0gJ0hldCBiZW5vZW1kZSBhZHJlcyBpcyBuaWV0IGNvcnJlY3QgKG1vZ2VsaWprIG1pc3NlbiBlciBlZW4gb2YgbWVlciB2ZXJwbGljaHRlIHZlbGRlbj8pPyc7CiRsYW5nWydldmVudF9kZXNjX0NhcnRBZGp1c3RlZCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIHdhbm5lZXIgYnVsayB3aWp6aWdpbmdlbiBpbiBkZSB3aW5rZWx3YWdlbiB6aWpuIHVpdGdldm9lcmQsIG9mIGFhbiAmZWFjdXRlOyZlYWN1dGU7biB2YW4gZGUgbWFuZGplcyc7CiRsYW5nWydldmVudF9kZXNjX0NhcnRJdGVtQWRkUHJlJ10gPSAnRWVuIHRhZyBkaWUgd29yZHQgYWFuZ2Vyb2VwZW4gdm9vcmRhdCBlZW4gaXRlbSB3b3JkdCB0b2VnZXZvZWdkIGFhbiBkZSB3aW5rZWx3YWdlbic7CiRsYW5nWydldmVudF9kZXNjX0NhcnRJdGVtQWRkZWQnXSA9ICdFZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiB3YW5uZWVyIGVlbiBwcm9kdWN0IG9mIGRpZW5zdCBpcyB0b2VnZXZvZWdkIGFhbiBkZSB3aW5rZWx3YWdlbic7CiRsYW5nWydldmVudF9kZXNjX09yZGVyQ3JlYXRlZCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIG5hZGF0IGVlbiBvcmRlciB2b29yIGhldCBlZXJzdCB3b3JkdCBvcGdlbm9tZW4gaW4gZGUgZGF0YWJhc2UnOwokbGFuZ1snZXZlbnRfZGVzY19PcmRlckRlbGV0ZWQnXSA9ICdFZW4gdGFnIGRpZSB3b3JkdCBhYW5nZXJvZXBlbiBuYWRhdCBlZW4gb3JkZXIgd29yZHQgdmVyd2lqZGVyZCc7CiRsYW5nWydldmVudF9kZXNjX09yZGVyVXBkYXRlZCddID0gJ0VlbiB0YWcgZGllIHdvcmR0IGFhbmdlcm9lcGVuIG5hZGF0IGVlbiBiZXN0YWFuZGUgb3JkZXIgd29yZHQgb3BnZXNsYWdlbic7CiRsYW5nWydldmVudF9oZWxwX0NhcnRJdGVtQWRkUHJlJ10gPSAnPHA+U2VudCBwcmlvciB0byBhbiBpdGVtIGJlaW5nIGFkZGVkIHRvIHRoZSBjYXJ0LCB0aGlzIGV2ZW50IGlzIGNhbGxlZCBhZnRlciB0aGUgY2FydCBwb2xpY3kgaXMgY2hlY2tlZCwgYW5kIGNhbiBiZSB1c2VkIHRvIGFsdGVyIHRoZSBpdGVtLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7ZXhpc3RpbmdfaXRlbXMmcXVvdDsgLSA8ZW0+KHJlYWQgb25seSk8L2VtPiAgQW4gYXJyYXkgb2YgY2dfZWNvbW1fY2FydGl0ZW0gaXRlbXMgcmVwcmVzZW50aW5nIHRoZSBleGlzdGluZyBpdGVtcyBpbiB0aGUgY2FydC48L2xpPg0KPGxpPiZxdW90O2NhcnRfaXRlbSZxdW90OyAtIDxlbT4obW9kaWZpYWJsZSk8L2VtPiBBIHJlZmVyZW5jZSAobW9kaWZpYWJsZSkgdG8gYSBjZ19lY29tbV9jYXJ0aXRlbSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBpdGVtIHRoYXQgaXMgcHJvcG9zZWQgdG8gYWRkIHRvIHRoZSBjYXJ0LjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX0NhcnRBZGp1c3RlZCddID0gJzxwPlNlbnQgd2hlbiBidWxrIGFkanVzdG1lbnRzIGFyZSBkb25lIHRvIHRoZSBjYXJ0LCBvciBvbmUgb2YgaXRzIGJhc2tldHMuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCjxsaT4mcXVvdDtjYXJ0X2l0ZW1zJnF1b3Q7IC0gQW4gaGFzaCBvZiBiYXNrZXRzLCBlYWNoIGNvbnRhaW5pbmcgYW4gYXJyYXkgb2YgY2FydCBpdGVtIG9iamVjdHMgYW5kIHNvbWUgc3VtbWFyeSBpbmZvcm1hdGlvbi48L2xpPg0KPGxpPiZxdW90O3N0YXR1cyZxdW90OyAtIEEgc3RhdHVzIGZsYWcsIGluZGljYXRpbmcgd2V0aGVyIHRoaXMgaXMgYmVmb3JlLCBvciBhZnRlciB0aGUgaXRlbXMgaGF2ZSBjaGFuZ2VkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX0NhcnRJdGVtQWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYnVsayBhZGp1c3RtZW50cyBhcmUgZG9uZSB0byB0aGUgY2FydCwgb3Igb25lIG9mIGl0cyBiYXNrZXRzLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7Y2FydF9pdGVtJnF1b3Q7IC0gVGhlIHNpbmdsZSBjYXJ0IGl0ZW0gb2JqZWN0IHRoYXQgd2FzIGFkZGVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09yZGVyQ3JlYXRlZCddID0gJzxwPlNlbnQgYWZ0ZXIgYW4gb3JkZXIgaXMgaW5pdGlhbGx5IGluc2VydGVkIGludG8gdGhlIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7b3JkZXJfaWQmcXVvdDsgLSBUaGUgbmV3bHkgY3JlYXRlZCBvcmRlciBpZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlckRlbGV0ZWQnXSA9ICc8cD5TZW50IGFmdGVyIGFuIG9yZGVyIGlzIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCjxsaT4mcXVvdDtvcmRlcl9pZCZxdW90OyAtIFRoZSBkZWxldGVkIG9yZGVyIGlkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09yZGVyVXBkYXRlZCddID0gJzxwPlNlbnQgYWZ0ZXIgYW4gb3JkZXIgaXMgdXBkYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7b3JkZXJfaWQmcXVvdDsgLSBUaGUgb3JkZXIgaWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgRWNvbW1lcmNlIEJhc2UgJzsKJGxhbmdbJ2dhdGV3YXlfcG9saWN5J10gPSAnR2F0ZXdheSBCZWxlaWQnOwokbGFuZ1snaW5mb19hdHRyaWJfaXRlbV9kZXNjcmlwdGlvbiddID0gJ1NqYWJsb29uIGRhdCB3b3JkdCBnZWJydWlrdCB2b29yIGhldCB3ZWVyZ2V2ZW4gdmFuIGF0dHJpYnV1dCBkcm9wZG93bnMuIE1vZ2VsaWprZSB3YWFyZGVuIHppam46IHskY3VycmVuY3lfc3ltYm9sfSx7JHdlaWdodF91bml0c30seyRhdHRyaWJfYWRqdXN0fSx7JGF0dHJpYl90ZXh0fSx7JGF0dHJpYl9za3V9ICc7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlJ10gPSAnRXIgemlqbiB2ZXJzY2hpbGxlbmRlIG1vZHVsZXMgZGllIGt1bm5lbiB3b3JkZW4gZ2VicnVpa3QgYWxzICZxdW90O1dpbmtlbHdhZ2VudGplJnF1b3Q7LiBFbGsgdmFuIGRlemUgd2Vya3Qgb3AgZWVuIGVpZ2VuIG1hbmllci4gU2VsZWN0ZWVyIHZhbiBkZSBnZXNlbGVjdGVlcmRlIHdpbmtlbHdhZ2VudGplcyB1aXQgZGV6ZSBsaWpzdCc7CiRsYW5nWydpbmZvX2NhcnRfcG9saWN5J10gPSAnSGV0IHdpbmtlbHdhZ2VuIGJlbGVpZCB3b3JkdCBiZSZpdW1sO252bG9lZCBkb29yIGRlIG1vZ2VsaWpraGVkZW4gdmFuIGRlIGJldGFsaW5nIGdhdGV3YXksIGVuIGJlcGFhbHQgaG9ldmVlbCBlbiB3YXQgdm9vciBzb29ydCBpdGVtcyBrdW5uZW4gd29yZGVuIHRvZWdldm9lZ2QgYWFuIGRlIHdpbmtlbHdhZ2VuKHMpLiBVIGt1bnQgaGV0IHdpbmtlbHdhZ2VuYmVsZWlkIHZlcmRlciBiZXBlcmtlbiwgbWFhciBrYW4gbmlldCB2b29yYmlqIGFhbiBkZSBiZXBlcmtpbmdlbiB2YW4gZGUgZ2F0ZXdheS4nOwokbGFuZ1snaW5mb19saW5laXRlbV9kZXNjX3RlbXBsYXRlJ10gPSAnRGV6ZSB0ZW1wbGF0ZSB3b3JkdCBnZWJydWlrdCB2b29yIGVlbiAmZWFjdXRlOyZlYWN1dGU7biByZWdlbCBiZXNjaHJpanZpbmcgdm9vciBlZW4gY2FydCBpdGVtLiBEZXplbGZkZSBiZXNjaHJpanZpbmcgd29yZHQgZ2VicnVpa3Qgdm9vciBkZSBiZXNjaHJpanZpbmcgaW4gaGV0IG9yZGVycHJvY2VzLic7CiRsYW5nWydpbmZvX292ZXJ3ZWlnaHRfbGltaXQnXSA9ICdIZXQgZ2V3aWNodCB3YWFyYmlqIGVlbiBpdGVtIG1vZXQgd29yZGVuIHZlcnpvbmRlbiBpcyB6aWpuIGVpZ2VuIHZlcnBha2tpbmcnOwokbGFuZ1snaW5mb19wYWNrYWdpbmdfbW9kdWxlJ10gPSAnU2VsZWN0ZWVyIGVlbiBtb2R1bGUgZGllIHZlcmFudHdvb3JkZWxpamsgaXMgdm9vciBoZXQgYmVoZXJlbiB2YW4gdmVyc2NoaWxsZW5kZSBnZXNlbGVjdGVlcmRlIGl0ZW1zIHZhbiBlZW4gb3JkZXIgdm9vciB2ZXJwYWtraW5nLiBBbHMgZXIgZ2VlbiB3b3JkdCBnZXNlbGVjdGVlcmQgZGFuIHp1bGxlbiBkZSB2ZXJ6ZW5ka29zdGVuIHdvcmRlbiBiZXJla2VudCBvbmFmaGFua2VsaWprIHZhbiBkZSBpdGVtcyBpbiBkZSBvcmRlci4nOwokbGFuZ1snaW5mb19wYXltZW50X21vZHVsZSddID0gJ0VyIGt1bm5lbiB2ZXJzY2hpbGxlbmRlIG1vZHVsZXMgd29yZGVuIGdlZG93bmxvYWQgZGllIG9ubGluZSBiZXRhbGluZ2VuIGt1bm5lbiB2ZXJ3ZXJrZW4uIERlemUgd2Vya2VuIGFsbGVtYWFsIG9wIGh1biBlaWdlbiBtYW5pZXIuIFNlbGVjdGVlciBlZW4gdmFuIGRlIGdlJml1bWw7bnN0YWxsZWVyZGUgYmV0YWFsbW9kdWxlcyB2YW4gZGV6ZSBsaWpzdCc7CiRsYW5nWydpbmZvX3Byb21vdGlvbnNfbW9kdWxlJ10gPSAnRXIga3VubmVuIHZlcnNjaGlsbGVuZGUgbW9kdWxlcyB3b3JkZW4gZ2Vkb3dubG9hZCBkaWUgY291cG9ucyBvZiBhbmRlciB2b3JtZW4gdmFuIGtvcnRpbmcga3VubmVuIHZlcndlcmtlbi4gRGV6ZSB3ZXJrZW4gYWxsZW1hYWwgb3AgaHVuIGVpZ2VuIG1hbmllci4gU2VsZWN0ZWVyIGVlbiB2YW4gZGUgZ2UmaXVtbDtuc3RhbGxlZXJkZSBtb2R1bGVzIHZhbiBkZXplIGxpanN0JzsKJGxhbmdbJ2luZm9fc2hpcF9kaW1lbnNpb25zJ10gPSAnVmVsZCB2YW4gZGUgcHJvZHVjdG1vZHVsZSBkYXQgZGUgYWZtZXRpbmdlbiB2YW4gZGUgdmVyemVuZGluZyBiZXZhdCB2b29yIGRpdCBwcm9kdWN0JzsKJGxhbmdbJ2luZm9fc2hpcF9zZXBlcmF0ZWx5J10gPSAnVmVsZCB2YW4gZGUgcHJvZHVjdG1vZHVsZSBkYXQgYWFuZ2VlZnQgZGF0IGRlemUgd2FhcmRlIG1vZXQgd29yZGVuIHZlcnpvbmRlbiBhbHMgZWlnZW4gcGFra2V0JzsKJGxhbmdbJ2luZm9fc2hpcHBpbmdfbW9kdWxlJ10gPSAnRXIga3VubmVuIHZlcnNjaGlsbGVuZGUgbW9kdWxlcyB3b3JkZW4gZ2Vkb3dubG9hZCBkaWUgZGUga29zdGVuIHZvb3IgdmVyemVuZGluZyBrdW5uZW4gdmVycmVrZW5lbi4gRGV6ZSB3ZXJrZW4gYWxsZW1hYWwgb3AgaHVuIGVpZ2VuIG1hbmllci4gU2VsZWN0ZWVyIGVlbiB2YW4gZGUgZ2UmaXVtbDtuc3RhbGxlZXJkZSB2ZXJ6ZW5ka29zdGVubW9kdWxlcyBpbiBkZXplIGxpanN0JzsKJGxhbmdbJ2luZm9fc3VwcGxpZXJfbW9kdWxlcyddID0gJ0FhbnZ1bGxlbmRlIG1vZHVsZXMgZGllIGluIHN0YWF0IHppam4gb20gc2FtZW4gdGUgd2Vya2VuIG1ldCBoZXQgd2lua2Vsd2FnZW50amUgZW4gYWFudnJhZ2VuIGthbiBiZWFudHdvb3JkZW4gdmFuIGRlIG9yZGVybW9kdWxlcy4gVSBrdW50IG1lZXJkZXJlIGFhbnZ1bGxlbmRlIG1vZHVsZXMgc2VsZWN0ZXJlbi4nOwokbGFuZ1snaW5mb190YXhfbW9kdWxlJ10gPSAnRXIga3VubmVuIHZlcnNjaGlsbGVuZGUgbW9kdWxlcyB3b3JkZW4gZ2Vkb3dubG9hZCBkaWUgYmVsYXN0aW5nIGt1bm5lbiB2ZXJyZWtlbmVuLiBEZXplIHdlcmtlbiBhbGxlbWFhbCBvcCBodW4gZWlnZW4gbWFuaWVyLiBTZWxlY3RlZXIgZWVuIHZhbiBkZSBnZSZpdW1sO25zdGFsbGVlcmRlIGJlbGFzdGluZ21vZHVsZXMgdmFuIGRlemUgbGlqc3QnOwokbGFuZ1snaW5mb190YXhfc2hpcHBpbmcnXSA9ICdJbiBzb21taWdlIGxvY2F0aWVzIHppam4gdmVyemVuZGtvc3RlbiBuaWV0IGJlbGFzdGJhYXIuIEdlYnJ1aWsgZGV6ZSBvcHRpZSBvbSB0ZSBiZXdlcmtzdGVsbGlnZW4gZGF0IHZlcnplbmRrb3N0ZW4gbmlldCBiZWxhc3Qgd29yZGVuJzsKJGxhbmdbJ2xlbmd0aF91bml0cyddID0gJ0xlbmd0ZSBlZW5oZWlkJzsKJGxhbmdbJ2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnXSA9ICdFZW4tcmVnZWwgYmVzY2hyaWp2aW5nIHNqYWJsb29uJzsKJGxhbmdbJ21heF9wcm9kdWN0cyddID0gJ01heGltYWFsIGFhbnRhbCBwcm9kdWN0ZW4gaW4gZWVuIENhcnQnOwokbGFuZ1snbWF4X3NlcnZpY2VzJ10gPSAnTWF4aW11bSBhYW50YWwgc2VydmljZXMgaW4gZWVuIENhcnQnOwokbGFuZ1snbWF4X3N1YnNjcmlwdGlvbnMnXSA9ICdNYXhpbXVtIGFhbnRhbCBpbnNjaHJpanZpbmdlbiBpbiBlZW4gQ2FydCc7CiRsYW5nWydtaXhlZF9zdWJzY3JpcHRpb25zJ10gPSAnU3RhIGVlbiBtaXggdmFuIHByb2R1Y3Rlbiwgc2VydmljZXMgaW4gaW5zY2hyaWp2aW5nZW4gdG9lIGluIGVlbiBDYXJ0Pyc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdFZW4gYmFzaXMgY2xhc3Mgdm9vciBhbGxlIGUtY29tbWVyY2UgbW9kdWxlcyB2b29yIGdlemFtZW5saWprZSBpbnN0ZWxsaW5nZW4gZGllIHZlcmJpbmRpbmcgbGVndCB0dXNzZW4gZGUgdmVyc2NoaWxsZW5kZSBvbmRlcmRlbGVuIHZhbiBkZSBlY29tbWVyY2Ugc3VpdGUnOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1snbm9uZSddID0gJ0dlZW4nOwokbGFuZ1snbm90X2FwcGxpY2FibGUnXSA9ICdOaWV0IHRvZXBhc2JhYXInOwokbGFuZ1sncGFja2FnaW5nX21vZHVsZSddID0gJ1ZlcnBha2tpbmdzbW9kdWxlJzsKJGxhbmdbJ3BheW1lbnRfbW9kdWxlJ10gPSAnT25saW5lIEJldGFsaW5nIEdhdGV3YXkgTW9kdWxlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGUgQ0dFY29tbWVyY2VCYXNlIG1vZHVsZSBpcyBudSBnZSZpdW1sO25zdGFsbGVlcmQsIHUga3VudCBudSB2ZXJkZXIgZ2FhbiBkb29yIG1lZXJkZXJlIGNvbXBvbmVudGVuIHRlIGluc3RhbGxlcmVuIG9tIGRlIGRvb3IgdSB2ZXJlaXN0ZSBmdW5jdGlvbmFsaXRlaXQgdGUgYmllZGVuLiBBbHMgZGV6ZSBlZW5tYWFsIGdlJml1bWw7bnN0YWxsZWVyZCB6aWpuIGt1bnQgdSBuYWFyIGhldCBhZG1pbmlzdHJhdGllcGFuZWVsIHRlcnVna2VyZW4gb20gZGUgY29uZmlndXJhdGllIHRlIHZvbHRvb2llbi4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RlemUgbW9kdWxlIGVuIGFsbGUgZ2VyZWxhdGVlcmRlIGRhdGEgaXMgdmVyd2lqZGVyZCB1aXQgZGUgQ01TTVMgZGF0YWJhc2UuIFUga3VudCBudSB2ZWlsaWcgZGUgYmVzdGFuZGVuIHZlcndpamRlcmVuJzsKJGxhbmdbJ3Byb21vdGlvbnNfbW9kdWxlJ10gPSAnUHJvbW90aW9ucyBNb2R1bGUgJzsKJGxhbmdbJ3Byb21wdF9jb21wYW55J10gPSAnQmVkcmlqZic7CiRsYW5nWydwcm9tcHRfZmlyc3RuYW1lJ10gPSAnVm9vcm5hYW0nOwokbGFuZ1sncHJvbXB0X2xhc3RuYW1lJ10gPSAnQWNodGVybmFhbSc7CiRsYW5nWydwcm9tcHRfbWF4d2VpZ2h0J10gPSAnTWF4aW1hYWwgZ2V3aWNodCc7CiRsYW5nWydwcm9tcHRfYWRkcmVzczEnXSA9ICdBZHJlc3JlZ2VsIDEnOwokbGFuZ1sncHJvbXB0X2FkZHJlc3MyJ10gPSAnQWRyZXNyZWdlbCAyJzsKJGxhbmdbJ3Byb21wdF9jaXR5J10gPSAnUGxhYXRzJzsKJGxhbmdbJ3Byb21wdF9zdGF0ZSddID0gJ1N0YWF0IC8gUHJvdmluY2llJzsKJGxhbmdbJ3Byb21wdF9wb3N0YWwnXSA9ICdQb3N0Y29kZSc7CiRsYW5nWydwcm9tcHRfY291bnRyeSddID0gJ0xhbmQnOwokbGFuZ1sncHJvbXB0X2ZheCddID0gJ0ZheCAnOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAnRS1tYWlsIEFkcmVzJzsKJGxhbmdbJ3Byb21wdF9waG9uZSddID0gJ1RlbGVmb29uJzsKJGxhbmdbJ3Byb21wdF9vdmVyd2VpZ2h0X2xpbWl0J10gPSAnT3Zlcmdld2ljaHQgbGltaWV0JzsKJGxhbmdbJ3Byb21wdF9zaGlwcGluZ19ib3hlcyddID0gJ1ZlcnplbmRkb3plbic7CiRsYW5nWydwcm9tcHRfd2lkdGgnXSA9ICdCcmVlZHRlJzsKJGxhbmdbJ3Byb21wdF9oZWlnaHQnXSA9ICdIb29ndGUnOwokbGFuZ1sncHJvbXB0X2xlbmd0aCddID0gJ0xlbmd0ZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0J10gPSAnR2V3aWNodCc7CiRsYW5nWydwcm9tcHRfc29ydGluZyddID0gJ1ByaW9yaXRlaXQnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOYWFtJzsKJGxhbmdbJ3Jlc2V0J10gPSAnSGVyc3RlbCc7CiRsYW5nWydzaGlwX2RpbWVuc2lvbnNfZmllbGQnXSA9ICdQcm9kdWN0YWZtZXRpbmdlbiB2ZWxkIGJpaiB2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ3NoaXBfc2VwZXJhdGVseV9maWVsZCddID0gJ1Byb2R1Y3Qgd29yZHQgbG9zIGdlbGV2ZXJkIHZlbGQnOwokbGFuZ1snc2hpcHBpbmdfbW9kdWxlJ10gPSAnVmVyemVuZG1vZHVsZSc7CiRsYW5nWydzdXBwbGllcl9tb2R1bGVzJ10gPSAnTGV2ZXJhbmNpZXJzbW9kdWxlJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1ZlcnN0dXJlbic7CiRsYW5nWydzeXN0ZW1fcG9saWN5J10gPSAnU3lzdGVlbSBiZWxlaWQnOwokbGFuZ1sndGFiX2NhcnRfc2V0dGluZ3MnXSA9ICdDYXJ0IEluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsZ2VtZW5lIEluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfbXlpbmZvX3NldHRpbmdzJ10gPSAnV2lua2VsIEFkcmVzJzsKJGxhbmdbJ3RhYl9wYWNrYWdpbmdfc2V0dGluZ3MnXSA9ICdWZXJwYWtraW5nc2luc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfcGF5bWVudF9zZXR0aW5ncyddID0gJ0JldGFsaW5nc2luc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfcG9saWN5J10gPSAnTGV2ZXJpbmdzdm9vcndhYXJkZW4nOwokbGFuZ1sndGFiX3Byb21vdGlvbl9zZXR0aW5ncyddID0gJ1Byb21vdGllaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl9zaGlwcGluZ19zZXR0aW5ncyddID0gJ1ZlcnplbmRpbmdzaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl9zdXBwbGllcl9zZXR0aW5ncyddID0gJ1ZlcnplbmRlcmluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfdGF4X3NldHRpbmdzJ10gPSAnQlRXIEluc3RlbGxpbmdlbic7CiRsYW5nWyd0YXhfbW9kdWxlJ10gPSAnQlRXIE1vZHVsZSc7CiRsYW5nWyd0YXhfc2hpcHBpbmcnXSA9ICdCVFcgVmVyemVuZGtvc3Rlbic7CiRsYW5nWyd1bml0c19jZW50aW1ldGVycyddID0gJ0NlbnRpbWV0ZXJzICc7CiRsYW5nWyd1bml0c19pbmNoZXMnXSA9ICdJbmNoZXMgJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ09uZ2VsaW1pdGVlcmQnOwokbGFuZ1snd2VpZ2h0X3VuaXRzJ10gPSAnR2V3aWNodGVlbmhlaWQnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzQyMzc0MzYwLjEuMS51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vcHJvamVjdC9hZG1pbi83MjZ8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTExMDM5NzYzNC4xMzQyMzc0MzYwLjEzNDIzNzQzNjAuMTM0MjM3NDM2MC4xJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTgwMjI2MzYwOS0xMjY4NDIzODYyNjk5JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Fza19yZWFsbHlfdW5pbnN0YWxsJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2aWxsIGF2aW5zdGFsbGVyYSBkZW5uYSBtb2R1bD8nOwokbGFuZ1snYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nXSA9ICdQcm9kdWt0YXR0cmlidXRzIFZpc2EtbWFsbCc7CiRsYW5nWydjYXJ0X21vZHVsZSddID0gJ0t1bmR2YWduc21vZHVsJzsKJGxhbmdbJ2N1cnJlbmN5X2NvZGUnXSA9ICdWYWx1dGFrb2QnOwokbGFuZ1snY3VycmVuY3lfc3ltYm9sJ10gPSAnVmFsdXRhc3ltYm9sJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRhZGRyZXNzJ10gPSAnQWRyZXNzZW4gc29tIGFuZ2F2cyAmYXVtbDtyIG9naWx0aWcgKHNha25hciBlbiBlbGxlciBmbGVyYSBvYmxpZ2F0b3Jpc2thIGYmYXVtbDtsdD8pJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfQ2FydEFkanVzdGVkJ10gPSAnQ2FsbGVkIHdoZW4gYnVsayBhZGp1c3RtZW50cyBhcmUgZG9uZSB0byB0aGUgY2FydCwgb3Igb25lIG9mIGl0cyBiYXNrZXRzJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfQ2FydEl0ZW1BZGRQcmUnXSA9ICdDYWxsZWQgcHJpb3IgdG8gYW4gaXRlbSBiZWluZyBhZGRlZCB0byB0aGUgY2FydCc7CiRsYW5nWydldmVudF9kZXNjX0NhcnRJdGVtQWRkZWQnXSA9ICdTa2EgYW5yb3BhcyBuJmF1bWw7ciBlbiBwcm9kdWt0IGVsbGVyIHNlcnZpY2UgaGFyIGxhZ3RzIHRpbGwgaSBrdW5kdmFnbmVuJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfT3JkZXJDcmVhdGVkJ10gPSAnU2thIGFucm9wYXMgZWZ0ZXIgZW4gaGFyIGJsaXZpdCBpbm1hdGFkIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfT3JkZXJEZWxldGVkJ10gPSAnU2thIGFucm9wYXMgZWZ0ZXIgYXR0IGVuIG9yZGVyIGhhciB0YWdpdHMgYm9ydC4nOwokbGFuZ1snZXZlbnRfZGVzY19PcmRlclVwZGF0ZWQnXSA9ICdTa2EgYW5yb3BhcyBlZnRlciBlbiBiZWZpbnRsaWcgYmVzdCZhdW1sO2xsbmluZyBoYXIgc3BhcmF0cyc7CiRsYW5nWydldmVudF9oZWxwX0NhcnRJdGVtQWRkUHJlJ10gPSAnPHA+U2VudCBwcmlvciB0byBhbiBpdGVtIGJlaW5nIGFkZGVkIHRvIHRoZSBjYXJ0LCB0aGlzIGV2ZW50IGlzIGNhbGxlZCBhZnRlciB0aGUgY2FydCBwb2xpY3kgaXMgY2hlY2tlZCwgYW5kIGNhbiBiZSB1c2VkIHRvIGFsdGVyIHRoZSBpdGVtLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7ZXhpc3RpbmdfaXRlbXMmcXVvdDsgLSA8ZW0+KHJlYWQgb25seSk8L2VtPiAgQW4gYXJyYXkgb2YgY2dfZWNvbW1fY2FydGl0ZW0gaXRlbXMgcmVwcmVzZW50aW5nIHRoZSBleGlzdGluZyBpdGVtcyBpbiB0aGUgY2FydC48L2xpPg0KPGxpPiZxdW90O2NhcnRfaXRlbSZxdW90OyAtIDxlbT4obW9kaWZpYWJsZSk8L2VtPiBBIHJlZmVyZW5jZSAobW9kaWZpYWJsZSkgdG8gYSBjZ19lY29tbV9jYXJ0aXRlbSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBpdGVtIHRoYXQgaXMgcHJvcG9zZWQgdG8gYWRkIHRvIHRoZSBjYXJ0LjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX0NhcnRBZGp1c3RlZCddID0gJzxwPlNlbnQgd2hlbiBidWxrIGFkanVzdG1lbnRzIGFyZSBkb25lIHRvIHRoZSBjYXJ0LCBvciBvbmUgb2YgaXRzIGJhc2tldHMuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCjxsaT4mcXVvdDtjYXJ0X2l0ZW1zJnF1b3Q7IC0gQW4gaGFzaCBvZiBiYXNrZXRzLCBlYWNoIGNvbnRhaW5pbmcgYW4gYXJyYXkgb2YgY2FydCBpdGVtIG9iamVjdHMgYW5kIHNvbWUgc3VtbWFyeSBpbmZvcm1hdGlvbi48L2xpPg0KPGxpPiZxdW90O3N0YXR1cyZxdW90OyAtIEEgc3RhdHVzIHN0cmluZywgaW5kaWNhdGluZyB3ZXRoZXIgdGhpcyBpcyBiZWZvcmUsIG9yIGFmdGVyIHRoZSBpdGVtcyBoYXZlIGNoYW5nZWQuPC9saT4NCjxsaT4mcXVvdDtleHRyYSZxdW90OyAtIEFuIGFkZGl0aW9uYWwgc3RyaW5nIHRoYXQgbWF5IHByb3ZpZGUgc29tZSBzdGF0ZSBpbmZvcm1hdGlvbiBhcyB0byB3aGVuIHRoaXMgYWN0aW9uIHdhcyBjYWxsZWQmIzAzOTs7DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX0NhcnRJdGVtQWRkZWQnXSA9ICc8cD5TZW50IHdoZW4gYnVsayBhZGp1c3RtZW50cyBhcmUgZG9uZSB0byB0aGUgY2FydCwgb3Igb25lIG9mIGl0cyBiYXNrZXRzLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7Y2FydF9pdGVtJnF1b3Q7IC0gVGhlIHNpbmdsZSBjYXJ0IGl0ZW0gb2JqZWN0IHRoYXQgd2FzIGFkZGVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09yZGVyQ3JlYXRlZCddID0gJzxwPlNlbnQgYWZ0ZXIgYW4gb3JkZXIgaXMgaW5pdGlhbGx5IGluc2VydGVkIGludG8gdGhlIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7b3JkZXJfaWQmcXVvdDsgLSBUaGUgbmV3bHkgY3JlYXRlZCBvcmRlciBpZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlckRlbGV0ZWQnXSA9ICc8cD5TZW50IGFmdGVyIGFuIG9yZGVyIGlzIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCjxsaT4mcXVvdDtvcmRlcl9pZCZxdW90OyAtIFRoZSBkZWxldGVkIG9yZGVyIGlkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09yZGVyVXBkYXRlZCddID0gJzxwPlNlbnQgYWZ0ZXIgYW4gb3JkZXIgaXMgdXBkYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQo8bGk+JnF1b3Q7b3JkZXJfaWQmcXVvdDsgLSBUaGUgb3JkZXIgaWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgRWNvbW1lcmNlQmFzZSc7CiRsYW5nWydnYXRld2F5X3BvbGljeSddID0gJ0dhdGV3YXkgVmlsbGtvcic7CiRsYW5nWydpbmZvX2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJ10gPSAnTWFsbGVuIGFudiZhdW1sO25kcyBmJm91bWw7ciBhdHQgdmlzYSBhdHRyaWJ1dCBkcm9wZG93bnMuIE0mb3VtbDtqbGlnYSB2YXJpYWJsZXIgJmF1bWw7ciAoJENVUlJFTkNZX1NZTUJPTCksICgkd2VpZ2h0X3VuaXRzKSwgKCRhdHRyaWJfYWRqdXN0KSwgKCRhdHRyaWJfdGV4dCksICgkYXR0cmliX3NrdSknOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZSddID0gJ0V0dCBzdG9ydCBhbnRhbCBtb2R1bGVyIHNvbSBmdW5nZXJhciBzb20gJnF1b3Q7S3VuZHZhZ25hciZxdW90OyBrYW4gbGFkZGFzIG5lci4gVmFyIG9jaCBlbiBhdiBkZW0gbWVkIG9saWthIGJldGVlbmRlbi4gViZhdW1sO2xqIGVuIGF2IGRlIGluc3RhbGxlcmFkZSBrdW5kdmFnbnMgbW9kdWxlciBmciZhcmluZztuIGRlbiBoJmF1bWw7ciBsaXN0YW4nOwokbGFuZ1snaW5mb19jYXJ0X3BvbGljeSddID0gJ1RoZSBjYXJ0IHBvbGljeSBpcyBpbmZsdWVuY2VkIGJ5IHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhlIHBheW1lbnQgZ2F0ZXdheSwgYW5kIGRldGVybWluZXMgaG93IG1hbnksIGFuZCB3aGF0IHR5cGUgb2YgaXRlbXMgbWF5IGJlIGFkZGVkIHRvIGhlIGNhcnQocykuICBZb3UgbWF5IGZ1cnRoZXIgcmVzdHJpY3QgdGhlIGNhcnQgcG9saWN5LCBidXQgY2Fubm90IGJ5cGFzcyB0aGUgcmVzdHJpY3Rpb25zIHBsYWNlZCBieSB0aGUgZ2F0ZXdheS4nOwokbGFuZ1snaW5mb19saW5laXRlbV9kZXNjX3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgc2luZ2xlIGxpbmUgZGVzY3JpcHRpb24gZm9yIGEgY2FydCBpdGVtLiAgVGhpcyBzYW1lIGRlc2NyaXB0aW9uIGlzIHVzZWQgZm9yIHRoZSBsaW5lIGl0ZW0gaW4gb3JkZXIgcHJvY2Vzc2luZy4nOwokbGFuZ1snaW5mb19vdmVyd2VpZ2h0X2xpbWl0J10gPSAnVGhlIHdlaWdodCBhdCB3aGljaCBhbiBpdGVtIHNob3VsZCBiZSBzaGlwcGVkIGluIGl0cyBvd24gcGFja2FnZSc7CiRsYW5nWydpbmZvX3BhY2thZ2luZ19tb2R1bGUnXSA9ICdTZWxlY3QgYSBtb2R1bGUgcmVzcG9uc2libGUgZm9yIGFycmFuZ2luZyB0aGUgdmFyaW91cyBpdGVtcyBzZWxlY3RlZCBpbiBhbiBvcmRlciBmb3IgcGFja2FnaW5nLiAgSWYgbm9uZSBpcyBzZWxlY3RlZCwgdGhlbiB0aGUgc2hpcHBpbmcgbWF5Y2FsY3VsYXRlIGNvc3RzIGluZGVwZW5kYW50bHkgb24gZWFjaCBvcmRlciBpdGVtLic7CiRsYW5nWydpbmZvX3BheW1lbnRfbW9kdWxlJ10gPSAnTnVtZXJvdXMgbW9kdWxlcyB0aGF0IHBlcmZvcm0gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYWxsb3dpbmcgb25saW5lIHBheW1lbnRzIG1heSBiZSBkb3dubG9hZGVkLiAgRWFjaCBvZiB0aGVtIHdpdGggZGlmZmVyZW50IGJlaGF2aW91cnMuICBQbGVhc2Ugc2VsZWN0IG9uZSBvZiB0aGUgaW5zdGFsbGVkIHBheW1lbnQgbW9kdWxlcyBmcm9tIHRoaXMgbGlzdCc7CiRsYW5nWydpbmZvX3Byb21vdGlvbnNfbW9kdWxlJ10gPSAnTnVtZXJvdXMgbW9kdWxlcyB0aGF0IHBlcmZvcm0gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgcHJvdmlkaW5nIGNvdXBvbnMgb3IgdmFyaW91cyBmb3JtcyBvZiBkaXNjb3VudHMgbWF5IGJlIGRvd25sb2FkZWQuICBFYWNoIG9mIHRoZW0gd2l0aCBkaWZmZXJlbnQgYmVoYXZpb3Vycy4gIFBsZWFzZSBzZWxlY3Qgb25lIG9mIHRoZSBpbnN0YWxsZWQgcHJvbW90aW9ucyBtb2R1bGVzIGZyb20gdGhpcyBsaXN0JzsKJGxhbmdbJ2luZm9fc2hpcF9kaW1lbnNpb25zJ10gPSAnRmllbGQgZnJvbSB0aGUgUHJvZHVjdHMgbW9kdWxlIHRoYXQgaW5kaWNhdGVzIHRoZSBzaGlwcGFibGUgZGltZW5zaW9ucyBmb3IgdGhpcyBwcm9kdWN0JzsKJGxhbmdbJ2luZm9fc2hpcF9zZXBlcmF0ZWx5J10gPSAnRmllbGQgZnJvbSB0aGUgUHJvZHVjdHMgbW9kdWxlIHdoaWNoIGluZGljYXRlcyB0aGF0IHRoaXMgdmFsdWUgc2hvdWxkIGJlIHNoaXBwZWQgYXMgaXRzIG93biBwYWNrYWdlJzsKJGxhbmdbJ2luZm9fc2hpcHBpbmdfbW9kdWxlJ10gPSAnTnVtZXJvdXMgbW9kdWxlcyB0aGF0IHBlcmZvcm0gc2hpcHBpbmcgY29zdCBjYWxjdWxhdGlvbnMgbWF5IGJlIGRvd25sb2FkZWQuICBFYWNoIG9mIHRoZW0gd2l0aCBkaWZmZXJlbnQgYmVoYXZpb3Vycy4gIFBsZWFzZSBzZWxlY3Qgb25lIG9mIHRoZSBpbnN0YWxsZWQgIG1vZHVsZXMgZnJvbSB0aGlzIGxpc3QnOwokbGFuZ1snaW5mb19zdXBwbGllcl9tb2R1bGVzJ10gPSAnU3VwcGxpZXIgbW9kdWxlcyBhcmUgY2FwYWJsZSBvZiBpbnRlcmFjdGluZyB3aXRoIHRoZSBjYXJ0IGFuZCBhbnN3ZXJpbmcgcmVxdWVzdHMgZnJvbSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZXMuICBZb3UgbWF5IHNlbGVjdCBtdWx0aXBsZSBzdXBwbGllciBtb2R1bGVzLic7CiRsYW5nWydpbmZvX3RheF9tb2R1bGUnXSA9ICdOdW1lcm91cyBtb2R1bGVzIHRoYXQgcGVyZm9ybSB0YXggY2FsY3VsYXRpb24gbWF5IGJlIGRvd25sb2FkZWQuICBFYWNoIG9mIHRoZXNlIHdpdGggZGlmZmVyZW50IGJlaGF2aW91cnMuICBQbGVhc2Ugc2VsZWN0IG9uZSBvZiB0aGUgaW5zdGFsbGVkIHRheCBtb2R1bGVzIGZyb20gdGhpcyBsaXN0JzsKJGxhbmdbJ2xlbmd0aF91bml0cyddID0gJ0wmYXVtbDtuZ2QgbSZhcmluZzt0dCc7CiRsYW5nWydsaW5laXRlbV9kZXNjX3RlbXBsYXRlJ10gPSAnTGluZSBJdGVtIERlc2NyaXB0aW9uIFRlbXBsYXRlJzsKJGxhbmdbJ21heF9wcm9kdWN0cyddID0gJ01heGltYWx0IGFudGFsIHByb2R1a3RlciBpIGVuIHZhcnVrb3JnJzsKJGxhbmdbJ21heF9zZXJ2aWNlcyddID0gJ01heGltYWx0IGFudGFsIHRqJmF1bWw7bnN0ZXIgaSBlbiB2YXJ1a29yZyc7CiRsYW5nWydtYXhfc3Vic2NyaXB0aW9ucyddID0gJ01heGltYWx0IGFudGFsIGFib25uZW1hbmcgaSBlbiB2YXJ1a29yZyc7CiRsYW5nWydtaXhlZF9zdWJzY3JpcHRpb25zJ10gPSAnVGlsbCZhcmluZzt0IGVuIGJsYW5kbmluZyBhdiBwcm9kdWt0ZXIsIHRqJmF1bWw7bnN0ZXIgb2NoIGFib25uZW1hbmcgaSBlbiB2YWduPyc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdBIGJhc2UgY2xhc3MgZm9yIGFsbCBlLWNvbW1lcmNlIG1vZHVsZXMgdGhpcyB1dGlsaXR5IGFsc28gcHJvdmlkZXMgY29tbW9uIHByZWZlcmVuY2VzIGFuZCBjb25uZWN0b3JzIGZvciB0aGUgdmFyaW91cyBwb3J0aW9ucyBvZiB0aGUgZWNvbW1lcmNlIHN1aXRlJzsKJGxhbmdbJ25vJ10gPSAnTmVqJzsKJGxhbmdbJ25vbmUnXSA9ICdJbmdlbic7CiRsYW5nWydub3RfYXBwbGljYWJsZSddID0gJ0VqIHRpbGwmYXVtbDttcGxpZ3QnOwokbGFuZ1sncGFja2FnaW5nX21vZHVsZSddID0gJ1BhY2thZ2luZyBNb2R1bGUnOwokbGFuZ1sncGF5bWVudF9tb2R1bGUnXSA9ICdPbmxpbmUgUGF5bWVudEdhdGV3YXkgTW9kdWwnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGUgQ0dFY29tbWVyY2VCYXNlIG1vZHVsZSBpcyBub3cgaW5zdGFsbGVkLCB5b3UgbWF5IG5vdyBwcm9jZWVkIHRvIGluc3RhbGwgbW9yZSBjb21wb25lbnRzIHRvIHRoZSBlY29tbWVyY2Ugc3VpdGUgdG8gZmlsbCBvdXQgeW91ciByZXF1aXJlZCBmdW5jdGlvbmFsaXR5LiAgT25jZSB0aGV5IGFyZSBpbnN0YWxsZWQgcmV0dXJuIHRvIHRoaXMgbW9kdWxlcyBhZG1pbmlzdHJhdGlvbiBwYW5lbCB0byBjb250aW51ZSB0aGUgY29uZmlndXJhdGlvbic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRGVubmEgbW9kdWwgb2NoIGFsbCB0aWxsaCZvdW1sO3JhbmRlIGRhdGEgaGFyIHRhZ2l0cyBib3J0IGZyJmFyaW5nO24gQ01TTVMgZGF0YWJhc2VuLiBEdSBrYW4gbnUgdGEgYm9ydCBmaWxlcm5hJzsKJGxhbmdbJ3Byb21vdGlvbnNfbW9kdWxlJ10gPSAnUHJvbW90aW9ucyBNb2R1bCc7CiRsYW5nWydwcm9tcHRfY29tcGFueSddID0gJ0Ymb3VtbDtyZXRhZyc7CiRsYW5nWydwcm9tcHRfZmlyc3RuYW1lJ10gPSAnRiZvdW1sO3JuYW1uJzsKJGxhbmdbJ3Byb21wdF9sYXN0bmFtZSddID0gJ0VmdGVybmFtbic7CiRsYW5nWydwcm9tcHRfbWF4d2VpZ2h0J10gPSAnTWF4dmlrdCc7CiRsYW5nWydwcm9tcHRfYWRkcmVzczEnXSA9ICdBZHJlc3MgMSc7CiRsYW5nWydwcm9tcHRfYWRkcmVzczInXSA9ICdBZHJlc3MgMic7CiRsYW5nWydwcm9tcHRfY2l0eSddID0gJ1N0YWQnOwokbGFuZ1sncHJvbXB0X3N0YXRlJ10gPSAnTGFuZHNrYXAnOwokbGFuZ1sncHJvbXB0X3Bvc3RhbCddID0gJ1Bvc3Rucic7CiRsYW5nWydwcm9tcHRfY291bnRyeSddID0gJ0xhbmQnOwokbGFuZ1sncHJvbXB0X2ZheCddID0gJ0ZheCBucic7CiRsYW5nWydwcm9tcHRfZW1haWwnXSA9ICdFbWFpbCBBZHJlc3MnOwokbGFuZ1sncHJvbXB0X3Bob25lJ10gPSAnVGVsZWZvbic7CiRsYW5nWydwcm9tcHRfb3ZlcndlaWdodF9saW1pdCddID0gJ0dyJmF1bWw7bnN2JmF1bWw7cmRlIGYmb3VtbDtyICZvdW1sO3ZlcnZpa3QnOwokbGFuZ1sncHJvbXB0X3NoaXBwaW5nX2JveGVzJ10gPSAnRnJha3RsJmFyaW5nO2Rvcic7CiRsYW5nWydwcm9tcHRfd2lkdGgnXSA9ICdCcmVkZCc7CiRsYW5nWydwcm9tcHRfaGVpZ2h0J10gPSAnSCZvdW1sO2pkJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGgnXSA9ICdMJmF1bWw7bmdkJzsKJGxhbmdbJ3Byb21wdF93ZWlnaHQnXSA9ICdWaWt0JzsKJGxhbmdbJ3Byb21wdF9zb3J0aW5nJ10gPSAnUHJpb3JpdGV0JzsKJGxhbmdbJ3Byb21wdF9uYW1lJ10gPSAnTmFtbic7CiRsYW5nWydyZXNldCddID0gJyZBcmluZzt0ZXJzdCZhdW1sO2xsJzsKJGxhbmdbJ3NoaXBfZGltZW5zaW9uc19maWVsZCddID0gJ1Byb2R1Y3RzIFNoaXAgRGltZW5zaW9ucyBGaWVsZCc7CiRsYW5nWydzaGlwX3NlcGVyYXRlbHlfZmllbGQnXSA9ICdQcm9kdWN0cyBTaGlwIFNlcGVyYXRlbHkgRmllbGQnOwokbGFuZ1snc2hpcHBpbmdfbW9kdWxlJ10gPSAnRnJha3Rtb2R1bCc7CiRsYW5nWydzdXBwbGllcl9tb2R1bGVzJ10gPSAnTGV2ZXJhbnQmb3VtbDtyc21vZHVsZXInOwokbGFuZ1snc3VibWl0J10gPSAnU3BhcmEnOwokbGFuZ1snc3lzdGVtX3BvbGljeSddID0gJ0smb3VtbDtwdmlsbGtvcic7CiRsYW5nWyd0YWJfY2FydF9zZXR0aW5ncyddID0gJ0t1bmR2YWducyBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndGFiX2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdBbGxtJmF1bWw7bm5hIGluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWyd0YWJfbXlpbmZvX3NldHRpbmdzJ10gPSAnQnV0aWtlbnMgYWRyZXNzJzsKJGxhbmdbJ3RhYl9wYWNrYWdpbmdfc2V0dGluZ3MnXSA9ICdQYWNrYWdpbmcgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3BheW1lbnRfc2V0dGluZ3MnXSA9ICdCZXRhbG5pbmdzaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RhYl9wb2xpY3knXSA9ICdWaWxsa29yJzsKJGxhbmdbJ3RhYl9wcm9tb3Rpb25fc2V0dGluZ3MnXSA9ICdQcm9tb3Rpb24gaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RhYl9zaGlwcGluZ19zZXR0aW5ncyddID0gJ0ZyYWt0aW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RhYl9zdXBwbGllcl9zZXR0aW5ncyddID0gJ0xldmVyYW50Jm91bWw7cnNpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndGFiX3RheF9zZXR0aW5ncyddID0gJ01lcnYmYXVtbDtyZGVza2F0dHMgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RheF9tb2R1bGUnXSA9ICdTa2F0dGViZXImYXVtbDtrbmluZ3Ntb2R1bCc7CiRsYW5nWyd1bml0c19jZW50aW1ldGVycyddID0gJ0NlbnRpbWV0ZXInOwokbGFuZ1sndW5pdHNfaW5jaGVzJ10gPSAnVHVtJzsKJGxhbmdbJ3VubGltaXRlZCddID0gJ09iZWdyJmF1bWw7bnNhdCc7CiRsYW5nWyd3ZWlnaHRfdW5pdHMnXSA9ICdWaWt0IGVuaGV0ZXInOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzc5NjcwMDY1LjEzMTA0OTExMTMuMTMxMDQ5MTExMy4xMzEwNDkxMTEzLjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzEwNDkxMTEzLjEuMS51dG1jc3I9ZmVlZGJ1cm5lcnx1dG1jY249RmVlZDogY21zbWFkZXNpbXBsZS9ibG9nIChDTVMgTWFkZSBTaW1wbGUpfHV0bWNtZD1mZWVkJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE1MjkxNzU2NTktMTMxMDA4MTA3NjkwMSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjMuMTAuMTMxMDQ5MTExMyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.async_transaction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIEBwYWNrYWdlIENHRWNvbW1lcmNlQmFzZQogKiBAYXV0aG9yIGNhbGd1eTEwMDAgPGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmc+CiAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IDIwMTQgLSBSb2JlcnQgQ2FtcGJlbGwKICovCgpuYW1lc3BhY2UgQ0dFY29tbWVyY2VCYXNlOwoKLyoqCiAqIEEgY2xhc3MgZGVzY3JpYmluZyBhbiBhc3luY2hvbm91cyB0cmFuc2FjdGlvbgogKgogKiBAZmluYWwKICogQHBhY2thZ2UgQ0dFY29tbWVyY2VCYXNlCiAqIEBjYXRlZ29yeSBFY29tbWVyY2UKICovCmNsYXNzIGFzeW5jX3RyYW5zYWN0aW9uCnsKICAgIGNvbnN0ICBUWVBFX1BBWU1FTlQgPSAncGF5bWVudCc7CiAgICBjb25zdCAgVFlQRV9BREpVU1RNRU5UID0gJ2FkanVzdG1lbnQnOwogICAgY29uc3QgIFRZUEVfSE9MREJBQ0sgPSAnaG9sZGJhY2snOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfdHlwZSA9IHNlbGY6OlRZUEVfUEFZTUVOVDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3N0YXR1czsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX2lkOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfYW10OwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfbXNnOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfcGF5bWVudF9pZDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX29yZGVyX2lkOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfaW52b2ljZTsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3VzZXJfaWQ7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF9vdGhlcl9kYXRhOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfZ2F0ZXdheTsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX2JpbGxpbmdfYWRkcmVzczsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3NoaXBwaW5nX2FkZHJlc3M7CgogICAgLyoqCiAgICAgKiBDb25zdHJ1Y3RvcgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJG9yZGVyX2lkIFRoZSBvcmRlciBpZAogICAgICogQHBhcmFtIGZsb2F0ICRhbXQgVGhlIHRyYW5zYWN0aW9uIGFtb3VudAogICAgICogQHBhcmFtIHN0cmluZyAkZ2F0ZXdheSBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSBtb2R1bGUuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkb3JkZXJfaWQsJGFtdCwkZ2F0ZXdheSA9ICcnKQogICAgewogICAgICAgICR0aGlzLT5fb3JkZXJfaWQgPSAkb3JkZXJfaWQ7CiAgICAgICAgJHRoaXMtPl9hbXQgPSAkYW10OwogICAgICAgICR0aGlzLT5fZ2F0ZXdheSA9ICRnYXRld2F5OwogICAgICAgICR0aGlzLT5fdHlwZSA9IHNlbGY6OlRZUEVfUEFZTUVOVDsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgdHlwZSBvZiB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgT25lIG9mIHRoZSBhY2NlcHRlZCB0cmFuc2FjdGlvbiB0eXBlcy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF90eXBlKCR0eXBlKQogICAgewogICAgICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICAgICAgY2FzZSBzZWxmOjpUWVBFX1BBWU1FTlQ6CiAgICAgICAgY2FzZSBzZWxmOjpUWVBFX0FESlVTVE1FTlQ6CiAgICAgICAgY2FzZSBzZWxmOjpUWVBFX0hPTERCQUNLOgogICAgICAgICAgICAkdGhpcy0+X3R5cGUgPSAkdHlwZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlICcuJHR5cGUpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgdHlwZSBvZiB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHlwZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHlwZTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgc3RhdHVzIG9mIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc3RhdHVzIE9uZSBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zYWN0aW9uIHN0YXR1c2VzCiAgICAgKiBAc2VlIFxDR0Vjb21tZXJjZUJhc2VccGF5bWVudF9nYXRld2F5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3RhdHVzKCRzdGF0dXMpCiAgICB7CiAgICAgICAgc3dpdGNoKCAkc3RhdHVzICkgewogICAgICAgIGNhc2UgXENHRWNvbW1lcmNlQmFzZVxwYXltZW50X2dhdGV3YXk6OlBBWU1FTlRfU1RBVFVTX0FQUFJPVkVEOgogICAgICAgIGNhc2UgXENHRWNvbW1lcmNlQmFzZVxwYXltZW50X2dhdGV3YXk6OlBBWU1FTlRfU1RBVFVTX0RFQ0xJTkVEOgogICAgICAgIGNhc2UgXENHRWNvbW1lcmNlQmFzZVxwYXltZW50X2dhdGV3YXk6OlBBWU1FTlRfU1RBVFVTX0VSUk9SOgogICAgICAgIGNhc2UgXENHRWNvbW1lcmNlQmFzZVxwYXltZW50X2dhdGV3YXk6OlBBWU1FTlRfU1RBVFVTX0NBTkNFTExFRDoKICAgICAgICBjYXNlIFxDR0Vjb21tZXJjZUJhc2VccGF5bWVudF9nYXRld2F5OjpQQVlNRU5UX1NUQVRVU19PVEhFUjoKICAgICAgICBjYXNlIFxDR0Vjb21tZXJjZUJhc2VccGF5bWVudF9nYXRld2F5OjpQQVlNRU5UX1NUQVRVU19OT05FOgogICAgICAgIGNhc2UgXENHRWNvbW1lcmNlQmFzZVxwYXltZW50X2dhdGV3YXk6OlBBWU1FTlRfU1RBVFVTX1BFTkRJTkc6CiAgICAgICAgICAgICR0aGlzLT5fc3RhdHVzID0gJHN0YXR1czsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB0cmFuc2FjdGlvbiBzdGF0dXMgJy4kc3RhdHVzKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHN0YXR1cyBvZiB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc3RhdHVzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zdGF0dXM7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGlkIG9mIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBVc3VhbGx5IHRoaXMgaXMgYSB1bmlxdWUgc3RyaW5nIHByb3ZpZGVkIGJ5IHRoZSBnYXRld2F5LgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGlkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfaWQoJGlkKQogICAgewogICAgICAgICR0aGlzLT5faWQgPSAkaWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGlkIG9mIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBVc3VhbGx5IHRoaXMgaXMgYSB1bmlxdWUgc3RyaW5nIHByb3ZpZGVkIGJ5IHRoZSBnYXRld2F5LgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2lkOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBhbW91bnQgb2YgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gZmxvYXQgJGFtdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Ftb3VudCgkYW10KQogICAgewogICAgICAgICR0aGlzLT5fYW10ID0gJGFtdDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgYW1vdW50IG9mIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHJldHVybiBmbG9hdDsKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9hbW91bnQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2FtdDsKICAgIH0KCiAgICAvKioKICAgICAqIEFzc29jaWF0ZSBhbiBlcnJvciBvciBzdGF0dXMgbWVzc2FnZSB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbXNnCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWVzc2FnZSgkbXNnKQogICAgewogICAgICAgICR0aGlzLT5fbXNnID0gdHJpbSgkbXNnKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHJpZXZlIGFueSBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbWVzc2FnZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbXNnOwogICAgfQoKICAgIC8qKgogICAgICogQXNzb2NpYXRlIGEgcGF5bWVudCBpZCAod2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5KSB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHNlZSBvcmRlcnNfcGF5bWVudAogICAgICogQHBhcmFtIGludCAkbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3BheW1lbnRfaWQoJG4pCiAgICB7CiAgICAgICAgJHRoaXMtPl9wYXltZW50X2lkID0gKGludCkkbjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcGF5bWVudCBpZCAoaWYgYW55KSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BheW1lbnRfaWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3BheW1lbnRfaWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBBc3NvY2lhdGUgdGhpcyB0cmFuc2FjdGlvbiB3aXRoIGFuIG9yZGVyLgogICAgICogTm90ZSwgdHJhbnNhY3Rpb25zIGFyZSB1c3VhbGx5IGFzc29jaWF0ZWQgd2l0aCBhbiBvcmRlciBhZnRlciBpbmZvcm1hdGlvbiBpcyBzZW50IGZyb20gdGhlIHJlbW90ZSBwYXltZW50IGdhdGV3YXkuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkbiBUaGUgb3JkZXIgaWQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfb3JkZXJfaWQoJG4pCiAgICB7CiAgICAgICAgJHRoaXMtPl9vcmRlcl9pZCA9IChpbnQpJG47CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGlkIG9mIHRoZSBvcmRlciB0aGF0IHRoaXMgdHJhbnNhY3Rpb24gaXMgYXNzb2NpYXRlZCB3aXRoLgogICAgICogTm90ZSwgdHJhbnNhY3Rpb25zIGFyZSB1c3VhbGx5IGFzc29jaWF0ZWQgd2l0aCBhbiBvcmRlciBhZnRlciBpbmZvcm1hdGlvbiBpcyBzZW50IGZyb20gdGhlIHJlbW90ZSBwYXltZW50IGdhdGV3YXkuCiAgICAgKgogICAgICogQHJldHVybiBpbnQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vcmRlcl9pZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fb3JkZXJfaWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBBc3NvY2lhdGUgdGhpcyB0cmFuc2FjdGlvbiB3aXRoIGEgc3BlY2lmaWMgaW52b2ljZS4KICAgICAqIFRoZSBpbnZvaWNlIHN0cmluZyBtYXkgYmUgdXNlZCB0byBjb3JyZWxhdGUgdGhlIHRyYW5zYWN0aW9uIHdpdGggYW4gb3JkZXIsIG9yIGl0IG1heSBqdXN0IGJlIGZvciBjb252ZW5pZW5jZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRpbnZvaWNlIFRoZSB1bmlxdWUgaW52b2ljZSBpZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9pbnZvaWNlKCRpbnZvaWNlKQogICAgewogICAgICAgICR0aGlzLT5faW52b2ljZSA9IHRyaW0oKHN0cmluZykkaW52b2ljZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYW55IGFzc29jaWF0ZWQgaW52b2ljZQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaW52b2ljZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5faW52b2ljZTsKICAgIH0KCiAgICAvKioKICAgICAqIEFzc29jaWF0ZSBhIHVzZXIgaWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBzdWJzY3JpcHRpb24gYmFzZWQgcmVnaXN0cmF0aW9ucy4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRuIFRoZSB1c2VyIGlkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdXNlcl9pZCgkbikKICAgIHsKICAgICAgICAkdGhpcy0+X3VzZXJfaWQgPSAoaW50KSRuOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGFueSB1c2VyIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXNlcl9pZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdXNlcl9pZDsKICAgIH0KCiAgICAvKioKICAgICAqIEFzc2NvY2F0ZSBleHRyYSBrZXkvdmFsdWUgZGF0YSB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkayBUaGUga2V5CiAgICAgKiBAcGFyYW0gbWl4ZWQgJHYgVGhlIHZhbHVlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfb3RoZXJfdmFsKCRrLCR2KQogICAgewogICAgICAgICRrID0gdHJpbSgkayk7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X290aGVyX2RhdGEpICkgJHRoaXMtPl9vdGhlcl9kYXRhID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+X290aGVyX2RhdGFbJGtdID0gJHY7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uIHZpYSBhIGtleS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrCiAgICAgKiBAcGFyYW0gbWl4ZWQgJGRmbHQgVGhlIGRlZmF1bHQgZGF0YSB0byByZXR1cm4gaWYgdGhlIGtleSBjYW5ub3QgYmUgZm91bmQuCiAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3RoZXJfdmFsKCRrLCRkZmx0ID0gbnVsbCkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fb3RoZXJfZGF0YSkgKSByZXR1cm4gJGRmbHQ7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X290aGVyX2RhdGFbJGtdKSApIHJldHVybiAkZGZsdDsKICAgICAgICByZXR1cm4gJHRoaXMtPl9vdGhlcl9kYXRhWyRrXTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiBhbiBhcnJheSBvZiBrZXlzIG9mIGV4dHJhIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJhbnNhY3Rpb24sIGlmIGFueS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZ1tdCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3RoZXJfa2V5cygpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X290aGVyX2RhdGEpICkgcmV0dXJuIG51bGw7CiAgICAgICAgcmV0dXJuIGFycmF5X2tleXMoJHRoaXMtPl9vdGhlcl9kYXRhKTsKICAgIH0KCiAgICAvKioKICAgICAqIEFzc29jaWF0ZSBhIGJpbGxpbmcgYWRkcmVzcyB3aXRoIHRoaXMgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICogQHBhcmFtIFxjZ2VfYWRkcmVzcyAkYmlsbGluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2JpbGxpbmdfYWRkcmVzcyhcY2dlX2FkZHJlc3MmICRiaWxsaW5nKQogICAgewogICAgICAgICR0aGlzLT5fYmlsbGluZ19hZGRyZXNzID0gJGJpbGxpbmc7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYW55IGJpbGxpbmcgYWRkcmVzcyBhc3Nzb2NpYXRlZCB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQKICAgICAqIEByZXR1cm4gXGNnZV9hZGRyZXNzCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYmlsbGluZ19hZGRyZXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9iaWxsaW5nX2FkZHJlc3M7CiAgICB9CgogICAgLyoqCiAgICAgKiBBc3NvY2lhdGUgYSBzaGlwcGluZyBhZGRyZXNzIHdpdGggdGhpcyB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKiBAcGFyYW0gXGNnZV9hZGRyZXNzICRzaGlwcGluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NoaXBwaW5nX2FkZHJlc3MoXGNnZV9hZGRyZXNzJiAkc2hpcHBpbmcpCiAgICB7CiAgICAgICAgJHRoaXMtPl9zaGlwcGluZ19hZGRyZXNzID0gJHNoaXBwaW5nOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGFueSBzaGlwcGluZyBhZGRyZXNzIGFzc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICogQHJldHVybiBcY2dlX2FkZHJlc3MKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9zaGlwcGluZ19hZGRyZXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zaGlwcGluZ19hZGRyZXNzOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBnYXRld2F5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG4gVGhlIGdhdGV3YXkgbmFtZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9nYXRld2F5KCRuKQogICAgewogICAgICAgICR0aGlzLT5fZ2F0ZXdheSA9IHRyaW0oJG4pOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBnYXRld2F5IHRoYXQgY3JlYXRlZCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ2F0ZXdheSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZ2F0ZXdheTsKICAgIH0KCiAgICAvKioKICAgICAqIFRlc3QgaWYgdGhpcyB0cmFuc2FjdGlvbiBpcyB2YWxpZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGlzX3ZhbGlkKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPl9nYXRld2F5ICYmICR0aGlzLT5fdHlwZSAmJiAkdGhpcy0+X3N0YXR1cyAmJiAkdGhpcy0+X2lkICYmICR0aGlzLT5fYW10ICYmICR0aGlzLT5fb3JkZXJfaWQgKSB7CiAgICAgICAgICAgIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgecomm_smarty.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNnZWNvbW1fc21hcnR5CnsKICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fSAvLyBzdGF0aWMgY2xhc3MuLiBjYW5ub3QgYmUgaW5zdGFudGlhdGVkCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaW5pdCgpCiAgewogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NnZWNvbW1fY3VycmVuY3lfY29kZScsYXJyYXkoJ2NnZWNvbW1fc21hcnR5JywnY2dlY29tbV9jdXJyZW5jeV9jb2RlJykpOwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NnZWNvbW1fY3VycmVuY3lfc3ltYm9sJyxhcnJheSgnY2dlY29tbV9zbWFydHknLCdjZ2Vjb21tX2N1cnJlbmN5X3N5bWJvbCcpKTsKICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ2Vjb21tX3dlaWdodF91bml0cycsYXJyYXkoJ2NnZWNvbW1fc21hcnR5JywnY2dlY29tbV93ZWlnaHRfdW5pdHMnKSk7CiAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV9sZW5ndGhfdW5pdHMnLGFycmF5KCdjZ2Vjb21tX3NtYXJ0eScsJ2NnZWNvbW1fbGVuZ3RoX3VuaXRzJykpOwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NnZWNvbW1fY29tcGFueV9hZGRyZXNzJyxhcnJheSgnY2dlY29tbV9zbWFydHknLCdjZ2Vjb21tX2NvbXBhbnlfYWRkcmVzcycpKTsKICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ2Vjb21tX2NhcnRpdGVtX2V4aXN0cycsYXJyYXkoJ2NnZWNvbW1fc21hcnR5JywnY2dlY29tbV9jYXJ0aXRlbV9leGlzdHMnKSk7CiAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV9mb3JtX2FkZHRvY2FydCcsYXJyYXkoJ2NnZWNvbW1fc21hcnR5JywnY2dlY29tbV9mb3JtX2FkZHRvY2FydCcpKTsKICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ2Vjb21tX2VyYXNlY2FydCcsYXJyYXkoJ2NnZWNvbW1fc21hcnR5JywnY2dlY29tbV9lcmFzZWNhcnQnKSk7CiAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV9nZXRfcHJvZHVjdGluZm8nLGFycmF5KCdjZ2Vjb21tX3NtYXJ0eScsJ2NnZWNvbW1fZ2V0X3Byb2R1Y3RpbmZvJykpOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dlY29tbV9jdXJyZW5jeV9jb2RlKCRwYXJhbXMsJiRzbWFydHkpCiAgewogICAgJGNvZGUgPSBjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X2NvZGUoKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRjb2RlKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICByZXR1cm4gJGNvZGU7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX2N1cnJlbmN5X3N5bWJvbCgkcGFyYW1zLCYkc21hcnR5KQogIHsKICAgICRjb2RlID0gY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRjb2RlKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICByZXR1cm4gJGNvZGU7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX3dlaWdodF91bml0cygkcGFyYW1zLCYkc21hcnR5KQogIHsKICAgICRjb2RlID0gY2dfZWNvbW06OmdldF93ZWlnaHRfdW5pdHMoKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRjb2RlKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICByZXR1cm4gJGNvZGU7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX2xlbmd0aF91bml0cygkcGFyYW1zLCYkc21hcnR5KQogIHsKICAgICRjb2RlID0gY2dfZWNvbW06OmdldF9sZW5ndGhfdW5pdHMoKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRjb2RlKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICByZXR1cm4gJGNvZGU7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX2NvbXBhbnlfYWRkcmVzcygkcGFyYW1zLCYkc21hcnR5KQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ215aW5mb19hZGRyZXNzJyk7CiAgICAkbXlfYWRkcmVzcyA9IG51bGw7CiAgICBpZiggJHRtcCApIHsKICAgICAgICAkbXlfYWRkcmVzcyA9IHVuc2VyaWFsaXplKCR0bXApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJG15X2FkZHJlc3MgPSBuZXcgY2dfZWNvbW1fY29tcGFueV9hZGRyZXNzOwogICAgfQogICAgaWYoICFpc19vYmplY3QoJG15X2FkZHJlc3MpICkgcmV0dXJuOwoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRteV9hZGRyZXNzKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICByZXR1cm4gJG15X2FkZHJlc3M7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX2NhcnRpdGVtX2V4aXN0cygkcGFyYW1zLCYkc21hcnR5KQogIHsKICAgICRzb3VyY2UgPSAnUHJvZHVjdHMnOwogICAgJHByb2R1Y3QgPSAnJzsKICAgICRza3UgPSAnJzsKICAgICRleHRyYSA9IG51bGw7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snc291cmNlJ10pICkgJHNvdXJjZSA9IHRyaW0oJHBhcmFtc1snc291cmNlJ10pOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3Byb2R1Y3QnXSkgKSAkcHJvZHVjdCA9IChpbnQpJHBhcmFtc1sncHJvZHVjdCddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NrdSddKSApICRza3UgPSB0cmltKCRwYXJhbXNbJ3NrdSddKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydleHRyYSddKSApICRleHRyYSA9ICRwYXJhbXNbJ2V4dHJhJ107CgogICAgJHJlcyA9IDA7CiAgICAkY2FydCA9IGNnX2Vjb21tOjpnZXRfY2FydF9tb2R1bGUoKTsKICAgIGlmKCAkc291cmNlICYmICgkcHJvZHVjdCB8fCAkc2t1KSAmJiAkY2FydCApCiAgICAgIHsKCWlmKCAkcHJvZHVjdCAmJiBtZXRob2RfZXhpc3RzKCRjYXJ0LCdjaGVja19pdGVtaWRfZXhpc3RzJykgKQoJICB7CgkgICAgJHJlcyA9ICRjYXJ0LT5jaGVja19pdGVtaWRfZXhpc3RzKCRzb3VyY2UsJHByb2R1Y3QsJGV4dHJhKTsKCSAgfQoJZWxzZSBpZiggJHNrdSAmJiBtZXRob2RfZXhpc3RzKCRjYXJ0LCdjaGVja19za3VfZXhpc3RzJykgKQoJICB7CgkgICAgJHJlcyA9ICRjYXJ0LT5jaGVja19za3VfZXhpc3RzKCRzb3VyY2UsJHNrdSwkZXh0cmEpOwoJICB9CgkkcmVzID0gKCRyZXMpPzE6MDsKICAgICAgfQoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKQogICAgICB7Cgkkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJHJlcyk7CglyZXR1cm47CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dlY29tbV9mb3JtX2FkZHRvY2FydCgkcGFyYW1zLCYkc21hcnR5KQogIHsKICAgICRjYXJ0ID0gY2dfZWNvbW06OmdldF9jYXJ0X21vZHVsZSgpOwogICAgaWYoICFtZXRob2RfZXhpc3RzKCRjYXJ0LCdnZXRfYWRkdG9jYXJ0X2Zvcm0nKSApIHJldHVybjsKCiAgICAkY2FydF9uYW1lID0gJGNhcnQtPkdldE5hbWUoKTsKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRwYXJhbXNbJ21vZHVsZSddID0gJGNhcnRfbmFtZTsKICAgICR0eHQgPSBjbXNfbW9kdWxlX3BsdWdpbigkcGFyYW1zLCRzbWFydHkpOwogICAgcmV0dXJuICR0eHQ7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX2VyYXNlY2FydCgkcGFyYW1zLCYkc21hcnR5KQogIHsKICAgICRjYXJ0ID0gY2dfZWNvbW06OmdldF9jYXJ0X21vZHVsZSgpOwogICAgJGNhcnQtPkVyYXNlQ2FydCgpOwogIH0KCgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dlY29tbV9nZXRfcHJvZHVjdGluZm8oJHBhcmFtcywmJHNtYXJ0eSkKICB7CiAgICAkc291cmNlID0gJ1Byb2R1Y3RzJzsKICAgICRlbnRyeV9pZCA9ICcnOwoKICAgIGlmKCAhaXNzZXQoJHBhcmFtc1snaXRlbWlkJ10pICkgcmV0dXJuOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NvdXJjZSddKSApICRzb3VyY2UgPSB0cmltKCRwYXJhbXNbJ3NvdXJjZSddKTsKICAgICRpdGVtX2lkID0gKGludCkkcGFyYW1zWydpdGVtaWQnXTsKCiAgICB0cnkKICAgICAgewoJJGluZm8gPSBjZ19lY29tbTo6Z2V0X3Byb2R1Y3RfaW5mbygkc291cmNlLCRpdGVtX2lkKTsKCWlmKCBpc19vYmplY3QoJGluZm8pICYmIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApCgkgIHsKCSAgICAkc21hcnR5LT5hc3NpZ24odHJpbSgkcGFyYW1zWydhc3NpZ24nXSksJGluZm8pOwoJICAgIHJldHVybjsKCSAgfQoJcmV0dXJuICRpbmZvOwogICAgICB9CiAgICBjYXRjaCggRXhjZXB0aW9uICRlICkKICAgICAgewoJLy8gZG8gbm90aGluZy4KICAgICAgfQogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cgecomm_sourcetranslator_products.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmNsYXNzIGNnZWNvbW1fc291cmNldHJhbnNsYXRvcl9wcm9kdWN0cyBleHRlbmRzIGNnX2Vjb21tX3NvdXJjZXRyYW5zbGF0b3IKewoKICAgIC8qKiBkZXByZWNhdGVkLCB1c2UgYnkgc2t1ICoqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2luZm8oJHByb2R1Y3RfaWQpCiAgICB7CiAgICAgICAgJHByb2R1Y3RzID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgICAgICRyYXdfaW5mbyA9ICRwcm9kdWN0cy0+Z2V0X3Byb2R1Y3RfaW5mbygkcHJvZHVjdF9pZCk7CiAgICAgICAgaWYoICEkcmF3X2luZm8gKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHJhbnNsYXRlX3Byb2R1Y3QoJHJhd19pbmZvKTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF90cmFuc2xhdGVfcHJvZHVjdCgkcmF3X2luZm8pCiAgICB7CiAgICAgICAgaWYoICRyYXdfaW5mb1snc3RhdHVzJ10gIT0gJ3B1Ymxpc2hlZCcgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICRkaW1lbnNpb25zX2ZsZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3NoaXBfZGltZW5zaW9ucycpOwoKICAgICAgICAkb2JqID0gbmV3IGNnX2Vjb21tX3Byb2R1Y3RpbmZvKCk7CiAgICAgICAgJG9iai0+c2V0X3Byb2R1Y3RfaWQoJHJhd19pbmZvWydpZCddKTsKICAgICAgICAkbmFtZSA9ICcnOwogICAgICAgIGlmKCBpc3NldCgkcmF3X2luZm9bJ3Byb2R1Y3RfbmFtZSddKSApICRuYW1lID0gJHJhd19pbmZvWydwcm9kdWN0X25hbWUnXTsKICAgICAgICBpZiggISRuYW1lICYmIGlzc2V0KCRyYXdfaW5mb1snbmFtZSddKSApICRuYW1lID0gJHJhd19pbmZvWyduYW1lJ107CiAgICAgICAgJG9iai0+c2V0X25hbWUoJG5hbWUpOwoKICAgICAgICAkb2JqLT5zZXRfd2VpZ2h0KCRyYXdfaW5mb1snd2VpZ2h0J10pOwogICAgICAgICRvYmotPnNldF9za3UoJHJhd19pbmZvWydza3UnXSk7CiAgICAgICAgJG9iai0+c2V0X3ByaWNlKCRyYXdfaW5mb1sncHJpY2UnXSk7CiAgICAgICAgJG9iai0+c2V0X25hbWUoJHJhd19pbmZvWydwcm9kdWN0X25hbWUnXSk7CiAgICAgICAgJG9iai0+c2V0X3RheGFibGUoJHJhd19pbmZvWyd0YXhhYmxlJ10pOwogICAgICAgICRvYmotPnNldF90eXBlKGNnX2Vjb21tX3Byb2R1Y3RpbmZvOjpUWVBFX1BST0RVQ1QpOwoKICAgICAgICAvLyBnZXQgZmllbGRzLgogICAgICAgIGlmKCBpc3NldCgkcmF3X2luZm9bJ2ZpZWxkcyddKSApIHsKICAgICAgICAgICAgLy8gYXR0ZW1wdCB0byBmaW5kIHN1YnNjcmlwdGlvbiBpbmZvCiAgICAgICAgICAgICRkaW1lbnNpb25zX3NldCA9IEZBTFNFOwogICAgICAgICAgICBmb3JlYWNoKCAkcmF3X2luZm9bJ2ZpZWxkcyddIGFzICYkZmxkICkgewogICAgICAgICAgICAgICAgaWYoICRmbGQtPnR5cGUgPT0gJ2RpbWVuc2lvbnMnICYmICRmbGQtPmlkID09ICRkaW1lbnNpb25zX2ZsZCAmJiAkZGltZW5zaW9uc19zZXQgPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBkaW1lbnNpb25zLgogICAgICAgICAgICAgICAgICAgICRvYmotPnNldF9kaW1lbnNpb25zKCRmbGQtPnZhbHVlWydsZW5ndGgnXSwkZmxkLT52YWx1ZVsnd2lkdGgnXSwkZmxkLT52YWx1ZVsnaGVpZ2h0J10pOwogICAgICAgICAgICAgICAgICAgICRkaW1lbnNpb25zX3NldCA9IFRSVUU7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoICRmbGQtPnR5cGUgPT0gJ3F1YW50aXR5JyApIHsKICAgICAgICAgICAgICAgICAgICAkb2JqLT5zZXRfcW9oKCRmbGQtPnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggJGZsZC0+dHlwZSA9PSAnc3Vic2NyaXB0aW9uJyApIHsKICAgICAgICAgICAgICAgICAgICAkc3Vic2NyID0gbmV3IGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjsKICAgICAgICAgICAgICAgICAgICAkc3Vic2NyLT5zZXRfcGF5cGVyaW9kKCRmbGQtPnZhbHVlWydwYXlwZXJpb2QnXSk7CiAgICAgICAgICAgICAgICAgICAgJHN1YnNjci0+c2V0X2RlbGl2ZXJ5cGVyaW9kKCRmbGQtPnZhbHVlWydkZWxwZXJpb2QnXSk7CiAgICAgICAgICAgICAgICAgICAgJHN1YnNjci0+c2V0X2V4cGlyeSgkZmxkLT52YWx1ZVsnZXhwaXJlJ10pOwogICAgICAgICAgICAgICAgICAgICRvYmotPnNldF9zdWJzY3JpcHRpb24oJHN1YnNjcik7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGdldCBhdHRyaWJ1dGVzLgogICAgICAgIGlmKCBpc3NldCgkcmF3X2luZm9bJ2F0dHJpYnV0ZXMnXSkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRyYXdfaW5mb1snYXR0cmlidXRlcyddIGFzICRvcHRpb24gKSB7CiAgICAgICAgICAgICAgICAkYXR0ciA9IG5ldyBjZ19lY29tbV9wcm9kdWN0aW5mb19vcHRpb247CiAgICAgICAgICAgICAgICAkYXR0ci0+aWQgPSAkb3B0aW9uWydpZCddOwogICAgICAgICAgICAgICAgJGF0dHItPnNrdSA9ICRvcHRpb25bJ3NrdSddOwogICAgICAgICAgICAgICAgJGF0dHItPnRleHQgPSAkb3B0aW9uWyd0ZXh0J107CiAgICAgICAgICAgICAgICAkYXR0ci0+cW9oID0gJG9wdGlvblsncW9oJ107CiAgICAgICAgICAgICAgICAkYXR0ci0+YWRqdXN0bWVudCA9ICRvcHRpb25bJ2FkanVzdG1lbnQnXTsKICAgICAgICAgICAgICAgICRvYmotPmFkZF9vcHRpb24oJGF0dHIpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3QoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+Z2V0X3NvdXJjZSgpICE9ICdQcm9kdWN0cycgKSB0aHJvdyBuZXcgQ21zSW52YWxpZERhdGFFeGNlcHRpb24oX19DTEFTU19fLicgYXNrZWQgdG8gcmV0cmlldmUgaW5mbyBmb3IgYW5vdGhlciBtb2R1bGUnKTsKCiAgICAgICAgJHByb2R1Y3RzID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgICAgIGlmKCAhJHByb2R1Y3RzICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkcmF3X3Byb2R1Y3QgPSBudWxsOwogICAgICAgIGlmKCAoJHRtcCA9ICR0aGlzLT5nZXRfcHJvZHVjdF9pZCgpKSA+IDAgKSB7CiAgICAgICAgICAgICRyYXdfcHJvZHVjdCA9IHByb2R1Y3Rfb3BzOjpnZXRfcHJvZHVjdCgkdG1wKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggKCR0bXAgPSAkdGhpcy0+Z2V0X3NrdSgpKSAhPSAnJyApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gbmV3IHByb2R1Y3RzX3F1ZXJ5KCk7CiAgICAgICAgICAgICRxdWVyeVsnc2t1J10gPSAkdG1wOwogICAgICAgICAgICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgICAgICAgICAgaWYoICRycy0+dG90YWxyb3dzID09IDAgKSB7CiAgICAgICAgICAgICAgICAvLyBtYWluIFNLVSBub3QgZm91bmQsIGdldCBieSBvcHRpb24ncyBza3UKICAgICAgICAgICAgICAgICRxdWVyeSA9IG5ldyBwcm9kdWN0c19xdWVyeSgpOwogICAgICAgICAgICAgICAgJHF1ZXJ5WydvcHRza3UnXSA9ICR0bXA7CiAgICAgICAgICAgICAgICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgICAgICAgICAgICAgIGlmKCAkcnMtPnRvdGFscm93cyA9PSAwICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYoICRycy0+dG90YWxyb3dzID4gMSApIHsKICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBleGNlcHRpb24/CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRyYXdfcHJvZHVjdCA9ICRycy0+Z2V0X3Byb2R1Y3QoRkFMU0UsVFJVRSk7CiAgICAgICAgfQoKICAgICAgICBpZiggIWlzX2FycmF5KCRyYXdfcHJvZHVjdCkgKSByZXR1cm4gRkFMU0U7CgogICAgICAgIHJldHVybiAkdGhpcy0+X3RyYW5zbGF0ZV9wcm9kdWN0KCRyYXdfcHJvZHVjdCk7CiAgICB9Cn0gLy8gY2xhc3MKCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNnX2Vjb21tCnsKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9IC8vIHN0YXRpYyBjbGFzcy4uLiBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2N1cnJlbmN5X3N5bWJvbCgpCiAgICB7CiAgICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICByZXR1cm4gJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9zeW1ib2wnLCckJyk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2N1cnJlbmN5X2NvZGUoKQogICAgewogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgcmV0dXJuICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnY3VycmVuY3lfY29kZScsJ1VTRCcpOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF93ZWlnaHRfdW5pdHMoKQogICAgewogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgcmV0dXJuICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnd2VpZ2h0X3VuaXRzJywnbGJzJyk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2xlbmd0aF91bml0cygpCiAgICB7CiAgICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICByZXR1cm4gJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdsZW5ndGhfdW5pdHMnLCdpbicpOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9zdXBwbGllcl9tb2R1bGVzKCkKICAgIHsKICAgICAgICAkcmVzID0gRkFMU0U7CiAgICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICAkdG1wID0gJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdzdXBwbGllcl9tb2R1bGVzJyk7CiAgICAgICAgaWYoICFlbXB0eSgkdG1wKSApICRyZXMgPSBleHBsb2RlKCcsJywkdG1wKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19zdXBwbGllcl9tb2R1bGUoJG5hbWUpCiAgICB7CiAgICAgICAgJHRtcCA9IHNlbGY6OmdldF9zdXBwbGllcl9tb2R1bGVzKCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggIWluX2FycmF5KCRuYW1lLCR0bXApICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZnZXRfc3VwcGxpZXJfbW9kdWxlKCRzb3VyY2UpCiAgICB7CiAgICAgICAgJHJlcyA9IG51bGw7CiAgICAgICAgaWYoIHNlbGY6OmlzX3N1cHBsaWVyX21vZHVsZSgkc291cmNlKSApICRyZXMgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJHNvdXJjZSk7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9jYXJ0X21vZHVsZSgpCiAgICB7CiAgICAgICAgJHJlcyA9IG51bGw7CiAgICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICAkbW9kbmFtZSA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnY2FydF9tb2R1bGUnKTsKICAgICAgICBpZiggJG1vZG5hbWUgPT0gJycgfHwgJG1vZG5hbWUgPT0gJy0xJyApIHJldHVybiAkcmVzOwoKICAgICAgICByZXR1cm4gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2RuYW1lKTsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmZ2V0X3RheF9tb2R1bGUoKQogICAgewogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJG1vZG5hbWUgPSAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3RheF9tb2R1bGUnKTsKICAgICAgICBpZiggJG1vZG5hbWUgPT0gJycgfHwgJG1vZG5hbWUgPT0gJy0xJyApIHJldHVybiAkcmVzOwoKICAgICAgICByZXR1cm4gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2RuYW1lKTsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmZ2V0X3BhY2thZ2luZ19tb2R1bGUoKQogICAgewogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJG1vZG5hbWUgPSAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3BhY2thZ2luZ19tb2R1bGUnKTsKICAgICAgICBpZiggJG1vZG5hbWUgPT0gJycgfHwgJG1vZG5hbWUgPT0gJy0xJyApIHJldHVybiAkcmVzOwoKICAgICAgICByZXR1cm4gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2RuYW1lKTsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmZ2V0X3NoaXBwaW5nX21vZHVsZSgpCiAgICB7CiAgICAgICAgJHJlcyA9IG51bGw7CiAgICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICAkbW9kbmFtZSA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnc2hpcHBpbmdfbW9kdWxlJyk7CiAgICAgICAgaWYoICRtb2RuYW1lID09ICcnIHx8ICRtb2RuYW1lID09ICctMScgKSByZXR1cm4gJHJlczsKCiAgICAgICAgcmV0dXJuIGNnZV91dGlsczo6Z2V0X21vZHVsZSgkbW9kbmFtZSk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9oYW5kbGluZ19tb2R1bGUoKQogICAgewogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJG1vZG5hbWUgPSAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ2hhbmRsaW5nX21vZHVsZScpOwogICAgICAgIGlmKCAkbW9kbmFtZSA9PSAnJyB8fCAkbW9kbmFtZSA9PSAnLTEnICkgcmV0dXJuICRyZXM7CgogICAgICAgIHJldHVybiBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJG1vZG5hbWUpOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZnZXRfcHJvbW90aW9uc19tb2R1bGUoKQogICAgewogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJG1vZG5hbWUgPSAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3Byb21vdGlvbnNfbW9kdWxlJyk7CiAgICAgICAgaWYoICRtb2RuYW1lID09ICcnIHx8ICRtb2RuYW1lID09ICctMScgKSByZXR1cm4gJHJlczsKCiAgICAgICAgcmV0dXJuIGNnZV91dGlsczo6Z2V0X21vZHVsZSgkbW9kbmFtZSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmZ2V0X3Byb21vdGlvbnNfdGVzdGVyKCkKICAgIHsKICAgICAgICAkbW9kID0gc2VsZjo6Z2V0X3Byb21vdGlvbnNfbW9kdWxlKCk7CiAgICAgICAgaWYoICRtb2QgKSB7CiAgICAgICAgICAgICRvYiA9ICAkbW9kLT5nZXRfdGVzdF9vYmplY3QoKTsKICAgICAgICAgICAgcmV0dXJuICRvYjsKICAgICAgICB9CiAgICAgICAgJHJlcyA9IG51bGw7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZ2F0ZXdheV9tb2R1bGVzKCkKICAgIHsKICAgICAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0VDT01NRVJDRUJBU0UpOwogICAgICAgICR0bXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzZWxfcGF5bWVudF9tb2R1bGVzJyk7CiAgICAgICAgaWYoICR0bXAgKSByZXR1cm4gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAmZ2V0X3BheW1lbnRfbW9kdWxlKCkKICAgIHsKICAgICAgICBzdGFja190cmFjZSgpOyBkaWUoJ19fZml4bWVfXycpOwogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJG1vZG5hbWUgPSAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3BheW1lbnRfbW9kdWxlJyk7CiAgICAgICAgaWYoICRtb2RuYW1lID09ICcnIHx8ICRtb2RuYW1lID09ICctMScgKSByZXR1cm4gJHJlczsKCiAgICAgICAgcmV0dXJuIGNnZV91dGlsczo6Z2V0X21vZHVsZSgkbW9kbmFtZSk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9vcmRlcl9tYW5hZ2VyKCkKICAgIHsKICAgICAgICAvLyB0b2RvOiB0aGlzIGNhbiBiZSBjaGFuZ2VkLgogICAgICAgIHJldHVybiBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ09yZGVycycpOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlc2V0X2xpbmVpdGVtX2Rlc2MoKQogICAgewogICAgICAgICRlY29tbSA9IG51bGw7CiAgICAgICAgaWYoIHZlcnNpb25fY29tcGFyZShDTVNfVkVSU0lPTiwnMS4xMC1iZXRhMCcpIDwgMCApIHsKICAgICAgICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRlY29tbSA9IE1vZHVsZU9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5nZXRfbW9kdWxlX2luc3RhbmNlKCdDR0Vjb21tZXJjZUJhc2UnLCcnLFRSVUUpOwogICAgICAgIH0KICAgICAgICBpZiggISRlY29tbSApIHJldHVybjsKCiAgICAgICAgJGZuID0gJGVjb21tLT5HZXRNb2R1bGVQYXRoKCkuJy90ZW1wbGF0ZXMvb3JpZ19saW5laXRlbV9kZXNjX3RlbXBsYXRlLnRwbCc7CiAgICAgICAgaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CiAgICAgICAgICAgICRkYXRhID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAgICAgICAgICRlY29tbS0+U2V0VGVtcGxhdGUoJ2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnLCRkYXRhKTsKICAgICAgICB9CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3RfaW5mbygkc291cmNlLCRwcm9kdWN0X2lkKQogICAgewogICAgICAgIC8vIHNlZSBpZiB0aGVyZSdzIGEgdHJhbnNsYXRvci4KICAgICAgICAkY2xhc3NuYW1lID0gJ2NnZWNvbW1fc291cmNldHJhbnNsYXRvcl8nLnN0cnRvbG93ZXIoJHNvdXJjZSk7CiAgICAgICAgaWYoIGNsYXNzX2V4aXN0cygkY2xhc3NuYW1lKSApIHsKICAgICAgICAgICAgJHRyYW5zbGF0b3IgPSBuZXcgJGNsYXNzbmFtZShhcnJheSgncHJvZHVjdF9pZCc9PiRwcm9kdWN0X2lkKSk7CiAgICAgICAgICAgICRyZXQgPSAkdHJhbnNsYXRvci0+Z2V0X3Byb2R1Y3RfaW5mbygkcHJvZHVjdF9pZCk7CiAgICAgICAgICAgIHJldHVybiAkcmV0OwogICAgICAgIH0KCiAgICAgICAgLy8gbm8gc3VwcGxpZXIgbW9kdWxlLi4uCiAgICAgICAgJG1vZHVsZSA9IHNlbGY6OmdldF9zdXBwbGllcl9tb2R1bGUoJHNvdXJjZSk7CiAgICAgICAgaWYoICRtb2R1bGUgKSB7CiAgICAgICAgICAgIGlmKCBtZXRob2RfZXhpc3RzKCRtb2R1bGUsJ2dldF9wcm9kdWN0X2luZm8nKSApIHsKICAgICAgICAgICAgICAgICR0bXAgPSAkbW9kdWxlLT5nZXRfcHJvZHVjdF9pbmZvKCRwcm9kdWN0X2lkKTsKICAgICAgICAgICAgICAgIGlmKCBpc19vYmplY3QoJHRtcCkgJiYgKCR0bXAgaW5zdGFuY2VvZiBjZ19lY29tbV9wcm9kdWN0aW5mbykgKSByZXR1cm4gJHRtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignTm8gUHJvZHVjdEluZm8gVHJhbnNsYXRvciBvYmplY3QgYXZhaWxhYmxlIGZvciAnLiRzb3VyY2UpOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbmRfcHJvZHVjdF9ieV9za3UoJHNrdSkKICAgIHsKICAgICAgICBpZiggISRza3UgKSByZXR1cm47CgogICAgICAgICRzdXBwbGllcnMgPSBzZWxmOjpnZXRfc3VwcGxpZXJfbW9kdWxlcygpOwogICAgICAgIGlmKCBpc19hcnJheSgkc3VwcGxpZXJzKSAmJiBjb3VudCgkc3VwcGxpZXJzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHN1cHBsaWVycyBhcyAkc3VwcGxpZXIgKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICRyZXMgPSBzZWxmOjpnZXRfcHJvZHVjdF9ieV9za3UoJHN1cHBsaWVyLCRza3UpOwogICAgICAgICAgICAgICAgICAgIGlmKCBpc19vYmplY3QoJHJlcykgJiYgKCRyZXMgaW5zdGFuY2VvZiBjZ19lY29tbV9wcm9kdWN0aW5mbykgKSByZXR1cm4gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCBpdC4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcHJvZHVjdF9ieV9za3UoJHNvdXJjZSwkc2t1KQogICAgewogICAgICAgICRtb2R1bGUgPSBzZWxmOjpnZXRfc3VwcGxpZXJfbW9kdWxlKCRzb3VyY2UpOwogICAgICAgIGlmKCAkbW9kdWxlICkgewogICAgICAgICAgICBpZiggbWV0aG9kX2V4aXN0cygkbW9kdWxlLCdnZXRfcHJvZHVjdF9ieV9za3UnKSApIHsKICAgICAgICAgICAgICAgICR0bXAgPSAkbW9kdWxlLT5nZXRfcHJvZHVjdF9ieV9za3UoJHByb2R1Y3RfaWQpOyAvLyBkZXByZWNhdGVkLi4uCiAgICAgICAgICAgICAgICBpZiggaXNfb2JqZWN0KCR0bXApICYmICgkdG1wIGluc3RhbmNlb2YgY2dfZWNvbW1fcHJvZHVjdGluZm8pICkgcmV0dXJuICR0bXA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIHRoZSBnZXRfcHJvZHVjdF9pbmZvIG1ldGhvZCBkaWRuJ3QgcmV0dXJuIGFuIG9iamVjdAogICAgICAgIC8vIHNvIHdlIHNlZSBpZiB0aGVyZSdzIGEgdHJhbnNsYXRvci4KICAgICAgICAkY2xhc3NuYW1lID0gJ2NnZWNvbW1fc291cmNldHJhbnNsYXRvcl8nLnN0cnRvbG93ZXIoJHNvdXJjZSk7CiAgICAgICAgaWYoIGNsYXNzX2V4aXN0cygkY2xhc3NuYW1lKSApIHsKICAgICAgICAgICAgJHBhcmFtcyA9IGFycmF5KCdza3UnPT4kc2t1LCdzb3VyY2UnPT4kc291cmNlKTsKICAgICAgICAgICAgJHRyYW5zbGF0b3IgPSBuZXcgJGNsYXNzbmFtZSgkcGFyYW1zKTsKICAgICAgICAgICAgJHJldCA9ICR0cmFuc2xhdG9yLT5nZXRfcHJvZHVjdCgpOwogICAgICAgICAgICByZXR1cm4gJHJldDsKICAgICAgICB9CgogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ05vIFByb2R1Y3RJbmZvIFRyYW5zbGF0b3Igb2JqZWN0IGF2YWlsYWJsZSBmb3IgJy4kc291cmNlKTsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZGlzcGxheWFibGVfb3B0aW9uKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX29wdGlvbiAkb3B0KQogICAgewogICAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwoKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9zeW1ib2wnKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfdW5pdHMnLCRlY29tbS0+R2V0UHJlZmVyZW5jZSgnd2VpZ2h0X3VuaXRzJykpOwogICAgICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfY29kZScsJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9jb2RlJykpOwogICAgICAgICR0ZW1wbGF0ZSA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nKTsKCiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdvcHRpb24nLCRvcHQpOwogICAgICAgICRzbWFydHktPmFzc2lnbignYXR0cmliX3RleHQnLCRvcHQtPmdldF90ZXh0KCkpOwogICAgICAgICRzbWFydHktPmFzc2lnbignYXR0cmliX2FkanVzdCcsJG9wdC0+Z2V0X2FkanVzdG1lbnQoKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdhdHRyaWJfc2t1Jywkb3B0LT5nZXRfc2t1KCkpOwogICAgICAgICRzdHIgPSAkZWNvbW0tPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0ZW1wbGF0ZSk7CiAgICAgICAgcmV0dXJuICRzdHI7CiAgICB9CgogICAgLy8gZGVwcmVjYXRlZC4KLy8gICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9hdHRyaWJ1dGVfZHJvcGRvd25fdmFsdWVzKCRwcm9kdWN0X2luZm8sJGF0dHJpYnNldF9pZCkKLy8gICB7Ci8vICAgICBpZiggIWlzX2FycmF5KCRwcm9kdWN0X2luZm8pICkgcmV0dXJuIEZBTFNFOwovLyAgICAgaWYoICFpc3NldCgkcHJvZHVjdF9pbmZvWydhdHRyaWJ1dGVzJ10pICkgcmV0dXJuIEZBTFNFOwovLyAgICAgaWYoICFpc3NldCgkcHJvZHVjdF9pbmZvWydhdHRyaWJ1dGVzJ11bJGF0dHJpYnNldF9pZF0pICkgcmV0dXJuIEZBTFNFOwoKLy8gICAgIGdsb2JhbCAkZ0NtczsKLy8gICAgICRzbWFydHkgPSAkZ0Ntcy0+R2V0U21hcnR5KCk7Ci8vICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwoKLy8gICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJywkZWNvbW0tPkdldFByZWZlcmVuY2UoJ2N1cnJlbmN5X3N5bWJvbCcpKTsKLy8gICAgICRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJywkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3dlaWdodF91bml0cycpKTsKLy8gICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfY29kZScsJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9jb2RlJykpOwovLyAgICAgJHRlbXBsYXRlID0gJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbicpOwoKLy8gICAgICRvdXRwdXQgPSBhcnJheSgpOwovLyAgICAgZm9yZWFjaCggJHByb2R1Y3RfaW5mb1snYXR0cmlidXRlcyddWyRhdHRyaWJzZXRfaWRdWyd2YWx1ZXMnXSBhcyAkYXR0cmliX2lkID0+ICRvbmUgKQovLyAgICAgICB7Ci8vIAkkc21hcnR5LT5hc3NpZ24oJ2F0dHJpYl90ZXh0Jywkb25lWydhdHRyaWJfdGV4dCddKTsKLy8gCSRzbWFydHktPmFzc2lnbignYXR0cmliX2FkanVzdCcsJG9uZVsnYXR0cmliX2FkanVzdG1lbnQnXSk7Ci8vIAkkc21hcnR5LT5hc3NpZ24oJ2F0dHJpYl9za3UnLCRvbmVbJ3NrdSddKTsKLy8gCSRzdHIgPSAkZWNvbW0tPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0ZW1wbGF0ZSk7Ci8vIAkkb3V0cHV0WyRvbmVbJ2F0dHJpYl9pZCddXSA9ICRzdHI7Ci8vICAgICAgIH0KCi8vICAgICBpZiggY291bnQoJG91dHB1dCkgKQovLyAgICAgICB7Ci8vIAlyZXR1cm4gJG91dHB1dDsKLy8gICAgICAgfQoKLy8gICAgIHJldHVybiBGQUxTRTsKLy8gICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NvbXBhbnlfYWRkcmVzcygpCiAgICB7CiAgICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICAkdG1wID0gJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdteWluZm9fYWRkcmVzcycpOwogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgIGlmKCAkdG1wICkgJHJlcyA9IHVuc2VyaWFsaXplKCR0bXApOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3N5c3RlbV9jYXJ0aXRlbV9wb2xpY3koKQogICAgewogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJHBvbGljeSA9IG5ldyBjZ19lY29tbV9jYXJ0aXRlbV9wb2xpY3koKTsKICAgICAgICAkcG9saWN5LT5zZXRfbWF4X3NlcnZpY2VzKCRlY29tbS0+R2V0UHJlZmVyZW5jZSgncG9saWN5X21heHNlcnZpY2VzJywxMDAwMDAwKSk7CiAgICAgICAgJHBvbGljeS0+c2V0X21heF9wcm9kdWN0cygkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3BvbGljeV9tYXhwcm9kdWN0cycsMTAwMDAwMCkpOwogICAgICAgICRwb2xpY3ktPnNldF9tYXhfc3Vic2NyaXB0aW9ucygkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3BvbGljeV9tYXhzdWJzY3JpcHRpb25zJywxMDAwMDAwKSk7CiAgICAgICAgJHBvbGljeS0+c2V0X21peGVkX3N1YnNjcmlwdGlvbnMoJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdwb2xpY3lfbWl4ZWRzdWJzY3JpcHRpb25zJywxKSk7CiAgICAgICAgcmV0dXJuICRwb2xpY3k7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcGF5bWVudF9jYXJ0aXRlbV9wb2xpY3koKQogICAgewogICAgICAgICRwb2xpY3kgPSBuZXcgY2dfZWNvbW1fY2FydGl0ZW1fcG9saWN5KCk7CgogICAgICAgICRtb2R1bGVfbGlzdCA9IHNlbGY6OmdldF9nYXRld2F5X21vZHVsZXMoKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRtb2R1bGVfbGlzdCkgfHwgIWNvdW50KCRtb2R1bGVfbGlzdCkgKSByZXR1cm4gJHBvbGljeTsKCiAgICAgICAgZm9yZWFjaCggJG1vZHVsZV9saXN0IGFzICRtb2R1bGVfbmFtZSApIHsKICAgICAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZV9uYW1lKTsKICAgICAgICAgICAgaWYoICEkbW9kICkgY29udGludWU7CgogICAgICAgICAgICAkbV9wb2xpY3kgPSAkbW9kLT5nZXRfY2FydGl0ZW1fcG9saWN5KCk7CiAgICAgICAgICAgIGlmKCAhaXNfb2JqZWN0KCRwb2xpY3kpICkgcmV0dXJuOyAvLyBubyBwb2xpY3kuCgogICAgICAgICAgICAkcG9saWN5LT5tZXJnZSgkbV9wb2xpY3ksRkFMU0UpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHBvbGljeTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNhbl90YXhfc2hpcHBpbmcoKQogICAgewogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgcmV0dXJuICRlY29tbS0+R2V0UHJlZmVyZW5jZSgndGF4X3NoaXBwaW5nJywxKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_cart.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgY2dfZWNvbW1fY2FydAp7CiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FydF9jb250ZW50cygkZmV1X3VpZCA9IC0xKQogIHsKICAgICAgJGNhcnQgPSBjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CiAgICAgIGlmKCAkY2FydC0+R2V0TnVtSXRlbXMoKSA8PSAwICkgcmV0dXJuIEZBTFNFOwoKICAgICAgJG5hbWVzID0gJGNhcnQtPkdldEJhc2tldE5hbWVzKCk7CiAgICAgICRkYXRhID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCggJG5hbWVzIGFzICRiYXNrZXRfbmFtZSApIHsKICAgICAgICAgICRkYXRhWyRiYXNrZXRfbmFtZV0gPSBhcnJheSgpOwogICAgICAgICAgJGRhdGFbJGJhc2tldF9uYW1lXVsnZGV0YWlscyddID0gJGNhcnQtPkdldEJhc2tldERldGFpbHMoJGJhc2tldF9uYW1lLCRmZXVfdWlkKTsKICAgICAgICAgICRkYXRhWyRiYXNrZXRfbmFtZV1bJ2l0ZW1zJ10gPSAkY2FydC0+R2V0QmFza2V0SXRlbXMoJGJhc2tldF9uYW1lLCRmZXVfdWlkKTsKICAgICAgfQogICAgICByZXR1cm4gJGRhdGE7CiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBiZWZvcmVfYWRkX2NhcnRpdGVtKGNnX2Vjb21tX2NhcnRpdGVtJiAkb2JqKQogIHsKICAgICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICAgJHBhcm1zWydleGlzdGluZ19pdGVtcyddID0gc2VsZjo6Z2V0X2NhcnRfY29udGVudHMoKTsKICAgICAgJHBhcm1zWydjYXJ0X2l0ZW0nXSA9JiAkb2JqOwogICAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgJG1vZC0+U2VuZEV2ZW50KCdDYXJ0SXRlbUFkZFByZScsJHBhcm1zKTsKICB9CgoKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIG9uX2NhcnRfaXRlbV9hZGRlZChjZ19lY29tbV9jYXJ0aXRlbSAmJG9iaikKICB7CiAgICAgICRwYXJtc1snY2FydF9pdGVtJ10gPSYgJG9iajsKICAgICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICRtb2QtPlNlbmRFdmVudCgnQ2FydEl0ZW1BZGRlZCcsJHBhcm1zKTsKICB9CgoKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIG9uX2NhcnRfYWRqdXN0ZWQoJHN0YXR1cyA9ICcnLCRhZGRkYXRhID0gJycpCiAgewogICAgICAkY2FydCA9IGNnX2Vjb21tOjpnZXRfY2FydF9tb2R1bGUoKTsKICAgICAgJHBhcm1zWydjYXJ0X2l0ZW1zJ10gPSBzZWxmOjpnZXRfY2FydF9jb250ZW50cygpOwogICAgICAkcGFybXNbJ3N0YXR1cyddID0gJHN0YXR1czsKICAgICAgJHBhcm1zWydleHRyYSddID0gJGFkZGRhdGE7CiAgICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAkbW9kLT5TZW5kRXZlbnQoJ0NhcnRBZGp1c3RlZCcsJHBhcm1zKTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXJ0aXRlbV9wb2xpY3koKQogIHsKICAgICAgJHBvbGljeSA9IGNnX2Vjb21tOjpnZXRfcGF5bWVudF9jYXJ0aXRlbV9wb2xpY3koKTsKCiAgICAgIC8vIG1lcmdlIGluIGFueSBzZXR0aW5ncyBmcm9tIHRoZSBtb2R1bGUKICAgICAgLy8gdGhlIHN5c3RlbSBjYXJ0aXRlbSBwb2xpY3kgcnVsZXMuCiAgICAgICRzcG9saWN5ID0gY2dfZWNvbW06OmdldF9zeXN0ZW1fY2FydGl0ZW1fcG9saWN5KCk7CiAgICAgICRwb2xpY3ktPm1lcmdlKCRzcG9saWN5KTsKCiAgICAgIHJldHVybiAkcG9saWN5OwogIH0KCgogIC8qKgogICAqIENoZWNrIHRoZSBjYXJ0IGNvbnRlbnRzLCBhbmQgYSBuZXcgaXRlbSBhZ2FpbnN0IHRoZSBjYXJ0IGl0ZW0gcG9saWN5CiAgICogdG8gc2VlIGlmIHRoaXMgbmV3IGl0ZW0gY2FuIGJlIGFkZGVkLgogICAqCiAgICogQHJldHVybiBib29sCiAgICovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjaGVja19jYXJ0aXRlbV92YWxpZCgkZXhpc3RpbmdfaXRlbXMsIGNnX2Vjb21tX2NhcnRpdGVtJiAkbmV3X2l0ZW0sICYkbWVzc2FnZSA9ICcnKQogIHsKICAgICAgLy8gMS4gIEJ1aWxkIGEgcG9saWN5CiAgICAgICRwb2xpY3kgPSBzZWxmOjpnZXRfY2FydGl0ZW1fcG9saWN5KCk7CgogICAgICAvLyBjaGVjayBmb3Igc2VydmljZXMsIHByb2R1Y3RzLCBhbmQgc3Vic2NyaXB0aW9uIGluIGV4aXN0aW5nCiAgICAgIC8vIGNhcnQgaXRlbXMuCiAgICAgICRoYXZlX3NlcnZpY2VzID0gMDsKICAgICAgJGhhdmVfcHJvZHVjdHMgPSAwOwogICAgICAkaGF2ZV9zdWJzY3JpcHRpb25zID0gMDsKICAgICAgZm9yZWFjaCggJGV4aXN0aW5nX2l0ZW1zIGFzICYkb25lX2l0ZW0gKSB7CiAgICAgICAgICBpZiggKHN0cmluZykkb25lX2l0ZW0gPT0gKHN0cmluZykkbmV3X2l0ZW0gJiYgKCEkb25lX2l0ZW0tPmFsbG93X2R1cGxpY2F0ZSgpIHx8ICEkbmV3X2l0ZW0tPmFsbG93X2R1cGxpY2F0ZSgpKSApIHsKICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgICB9CgogICAgICAgICAgaWYoICRvbmVfaXRlbS0+Z2V0X3R5cGUoKSA9PSBjZ19lY29tbV9jYXJ0aXRlbTo6VFlQRV9TRVJWSUNFICkgewogICAgICAgICAgICAgICRoYXZlX3NlcnZpY2VzKys7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmKCAkb25lX2l0ZW0tPmdldF90eXBlKCkgPT0gY2dfZWNvbW1fY2FydGl0ZW06OlRZUEVfUFJPRFVDVCApIHsKICAgICAgICAgICAgICAkaGF2ZV9wcm9kdWN0cysrOwogICAgICAgICAgfQoKICAgICAgICAgIGlmKCAoJHRtcCA9ICRvbmVfaXRlbS0+Z2V0X3N1YnNjcmlwdGlvbigpKSApIHsKICAgICAgICAgICAgICBpZiggJHRtcC0+Z2V0X3BheXBlcmlvZCgpICE9IGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9OT05FICkgJGhhdmVfc3Vic2NyaXB0aW9ucysrOwogICAgICAgICAgfQogICAgICB9CgogICAgICAvLyBjaGVjayBmb3IgcHJvZHVjdCwgc2VydmljZSwgb3Igc3Vic2NyaXB0aW9uIGluCiAgICAgIC8vIE5FVyBjYXJ0IGl0ZW0uCiAgICAgICRuZXdfc2VydmljZSA9IDA7CiAgICAgICRuZXdfcHJvZHVjdCA9IDA7CiAgICAgIGlmKCAkbmV3X2l0ZW0tPmdldF90eXBlKCkgPT0gY2dfZWNvbW1fY2FydGl0ZW06OlRZUEVfU0VSVklDRSApIHsKICAgICAgICAgICRuZXdfc2VydmljZSA9IDE7CiAgICAgICAgICAkaGF2ZV9zZXJ2aWNlcysrOwogICAgICB9CgogICAgICBpZiggJG5ld19pdGVtLT5nZXRfdHlwZSgpID09IGNnX2Vjb21tX2NhcnRpdGVtOjpUWVBFX1BST0RVQ1QgKSB7CiAgICAgICAgICAkbmV3X3Byb2R1Y3QgPSAxOwogICAgICAgICAgJGhhdmVfcHJvZHVjdHMrKzsKICAgICAgfQoKICAgICAgJG5ld19zdWJzY3JpcHRpb24gPSAwOwogICAgICAkdG1wID0gJG5ld19pdGVtLT5nZXRfc3Vic2NyaXB0aW9uKCk7CiAgICAgIGlmKCBpc19vYmplY3QoJHRtcCkgJiYgJHRtcC0+aXNfdmFsaWQoKSApIHsKICAgICAgICAgICRuZXdfc3Vic2NyaXB0aW9uID0gMTsKICAgICAgICAgICRoYXZlX3N1YnNjcmlwdGlvbnMrKzsKICAgICAgfQoKICAgICAgLy8gbm93IGNyb3NzIHJlZmVyZW5jZSB0aGlzIGluZm9ybWF0aW9uIGFnYWluc3Qgb3VyIHBvbGljeS4KICAgICAgaWYoICEkcG9saWN5LT5oYW5kbGVfcHJvZHVjdHMoKSAmJiAkaGF2ZV9wcm9kdWN0cyApIHJldHVybiBGQUxTRTsKICAgICAgaWYoICEkcG9saWN5LT5oYW5kbGVfc2VydmljZXMoKSAmJiAkaGF2ZV9zZXJ2aWNlcyApIHJldHVybiBGQUxTRTsKICAgICAgaWYoICEkcG9saWN5LT5oYW5kbGVfc3Vic2NyaXB0aW9ucygpICYmICRoYXZlX3N1YnNjcmlwdGlvbnMgKSByZXR1cm4gRkFMU0U7CiAgICAgICR0bXAgPSAkcG9saWN5LT5tYXhfc3Vic2NyaXB0aW9ucygpOwogICAgICBpZiggJHRtcCA+IDAgJiYgJHRtcCA8ICRoYXZlX3N1YnNjcmlwdGlvbnMgKSByZXR1cm4gRkFMU0U7CgogICAgICBpZiggISRwb2xpY3ktPmhhbmRsZV9taXhlZF9zdWJzY3JpcHRpb25zKCkgJiYgJGhhdmVfc3Vic2NyaXB0aW9ucyAmJiAoKCRoYXZlX3Byb2R1Y3RzKyRoYXZlX3NlcnZpY2VzKSA+IDEpICkgewogICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICB9CgogICAgICByZXR1cm4gVFJVRTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FsY3VsYXRlX2NhcnRpdGVtX3N1bW1hcnkoJHByb2R1Y3RfaW5mbyxjZ19lY29tbV9jYXJ0aXRlbSAkaXRlbSkKICB7CiAgICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLCRlY29tbS0+R2V0UHJlZmVyZW5jZSgnY3VycmVuY3lfc3ltYm9sJykpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ3dlaWdodF91bml0cycsJGVjb21tLT5HZXRQcmVmZXJlbmNlKCd3ZWlnaHRfdW5pdHMnKSk7CiAgICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfY29kZScsJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9jb2RlJykpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3Rfb2JqJywkcHJvZHVjdF9pbmZvKTsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCdjYXJ0X2l0ZW0nLCRpdGVtKTsKCiAgICAgIC8vIGhhY2sgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiAgICAgIGlmKCBpc19vYmplY3QoJHByb2R1Y3RfaW5mbykgKSB7CiAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICR0bXBbJ3Byb2R1Y3RfbmFtZSddID0gJHByb2R1Y3RfaW5mby0+Z2V0X25hbWUoKTsKICAgICAgICAgICRzbWFydHktPmFzc2lnbignb25lcHJvZHVjdCcsJHRtcCk7CiAgICAgIH0KCiAgICAgICRzdHIgPSAkZWNvbW0tPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnbGluZWl0ZW1fZGVzY190ZW1wbGF0ZScpOwogICAgICAkc3RyID0gc3RyaXBfdGFncygkc3RyKTsKICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCcmbmJzcDsnLCcgJywkc3RyKTsKICAgICAgJHN0ciA9IGh0bWxfZW50aXR5X2RlY29kZSgkc3RyKTsgLy8gcmVtb3ZlIHRob3NlIG5hc3R5ICZuYnNwOyB0aGluZ3MuIGV0Yy4KICAgICAgJHN0ciA9IHRyaW0oJHN0cik7CiAgICAgIHJldHVybiAkc3RyOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_cartitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNnX2Vjb21tX2NhcnRpdGVtCnsKICBjb25zdCAgIFRZUEVfUFJPRFVDVCA9IDE7CiAgY29uc3QgICBUWVBFX1NFUlZJQ0UgPSAzOwogIGNvbnN0ICAgVFlQRV9TSElQUElORyA9IDI7CiAgY29uc3QgICBUWVBFX1RBWEVTID0gMzsKICBjb25zdCAgIFRZUEVfRElTQ09VTlQgPSA0OwogIGNvbnN0ICAgVFlQRV9PVEhFUiA9IDU7CgogIHByaXZhdGUgJF9zb3VyY2UgPSBudWxsOwogIHByaXZhdGUgJF9wcm9kdWN0X2lkID0gbnVsbDsKICBwcml2YXRlICRfc2t1ID0gbnVsbDsKICBwcml2YXRlICRfcXVhbnRpdHkgPSBudWxsOwogIHByaXZhdGUgJF9iYXNlX3ByaWNlID0gbnVsbDsgLy8gdGhlIGJhc2UgcHJpY2Ugb2YgdGhlIG9iamVjdCwgbm90IGluY2x1ZGluZyBvcHRpb25zCiAgcHJpdmF0ZSAkX2F0dHJpYnV0ZXMgPSBhcnJheSgpOwogIHByaXZhdGUgJF90eXBlID0gc2VsZjo6VFlQRV9QUk9EVUNUOwogIHByaXZhdGUgJF9lc3RpbWF0ZWQgPSBmYWxzZTsKICBwcml2YXRlICRfcGVuZGluZyA9IGZhbHNlOwogIHByaXZhdGUgJF91bml0X3dlaWdodCA9IG51bGw7CiAgcHJpdmF0ZSAkX3VuaXRfcHJpY2UgPSBudWxsOwogIHByaXZhdGUgJF9zdW1tYXJ5ID0gbnVsbDsKICBwcml2YXRlICRfaXRlbV90b3RhbCA9IG51bGw7IC8vIG9ubHkgc2V0IGlmIHRoZSB1bml0IHRvdGFsIGhhcyBiZWVuIG92ZXJyaWRlbi4uLi4gYWNjb3VudHMgZm9yIHF1YW50aXR5IGFzIHdlbGwuCiAgcHJpdmF0ZSAkX3N1YnNjcmlwdGlvbiA9IG51bGw7CiAgcHJpdmF0ZSAkX2FsbG93X2R1cGxpY2F0ZSA9IFRSVUU7CiAgcHJpdmF0ZSAkX2FsbG93X3F1YW50aXR5X2FkanVzdCA9IHRydWU7CiAgcHJpdmF0ZSAkX2FsbG93X3JlbW92ZSA9IHRydWU7CiAgcHJpdmF0ZSAkX3VuaXRfZGlzY291bnQgPSAwOwogIHByaXZhdGUgJF9wYXJlbnQgPSAtMTsKICBwcml2YXRlICRfcHJvbW8gPSBudWxsOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHNrdSwkcHJvZHVjdF9pZCwkcXVhbnRpdHksJHNvdXJjZSA9ICdQcm9kdWN0cycpCiAgewogICAgJHRoaXMtPl9zb3VyY2UgPSAkc291cmNlOwogICAgJHRoaXMtPl9za3UgPSAkc2t1OwogICAgJHRoaXMtPl9wcm9kdWN0X2lkID0gJHByb2R1Y3RfaWQ7CiAgICAkdGhpcy0+X3F1YW50aXR5ID0gJHF1YW50aXR5OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9lc3RpbWF0ZWQoJGZsYWcpCiAgewogICAgJHRoaXMtPl9lc3RpbWF0ZWQgPSAoYm9vbCkkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBpc19lc3RpbWF0ZWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2VzdGltYXRlZDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfc291cmNlKCRudW0pCiAgewogICAgJHRoaXMtPl9zb3VyY2UgPSAkbnVtOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9zb3VyY2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3NvdXJjZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWxsb3dfcXVhbnRpdHlfYWRqdXN0KCRmbGFnID0gdHJ1ZSkKICB7CiAgICAkdGhpcy0+X2FsbG93X3F1YW50aXR5X2FkanVzdCA9ICRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGFsbG93X3F1YW50aXR5X2FkanVzdCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fYWxsb3dfcXVhbnRpdHlfYWRqdXN0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9hbGxvd19kdXBsaWNhdGUoJGZsYWcgPSB0cnVlKQogIHsKICAgICR0aGlzLT5fYWxsb3dfZHVwbGljYXRlID0gJGZsYWc7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYWxsb3dfZHVwbGljYXRlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9hbGxvd19kdXBsaWNhdGU7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FsbG93X3JlbW92ZSgkZmxhZyA9IHRydWUpCiAgewogICAgJHRoaXMtPl9hbGxvd19yZW1vdmUgPSAkZmxhZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBhbGxvd19yZW1vdmUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2FsbG93X3JlbW92ZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJvZHVjdF9pZCgkbnVtKQogIHsKICAgICR0aGlzLT5fcHJvZHVjdF9pZCA9ICRudW07CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3RfaWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3Byb2R1Y3RfaWQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NrdSgkbnVtKQogIHsKICAgICR0aGlzLT5fc2t1ID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2t1KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9za3U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3BlbmRpbmcoJG51bSA9IHRydWUpCiAgewogICAgJHRoaXMtPl9wZW5kaW5nID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcGVuZGluZygpCiAgewogICAgcmV0dXJuICR0aGlzLT5fcGVuZGluZzsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcXVhbnRpdHkoJG51bSkKICB7CiAgICAkdGhpcy0+X3F1YW50aXR5ID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcXVhbnRpdHkoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3F1YW50aXR5OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9iYXNlX3ByaWNlKCRudW0pCiAgewogICAgJHRoaXMtPl9iYXNlX3ByaWNlID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfYmFzZV9wcmljZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fYmFzZV9wcmljZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfdW5pdF9kaXNjb3VudCgkbnVtKQogIHsKICAgICR0aGlzLT5fdW5pdF9kaXNjb3VudCA9ICRudW07CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VuaXRfZGlzY291bnQoKQogIHsKICAgIGlmKCAkdGhpcy0+X3VuaXRfZGlzY291bnQgKSByZXR1cm4gJHRoaXMtPl91bml0X2Rpc2NvdW50OwogICAgcmV0dXJuIDA7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3VuaXRfcHJpY2UoJG51bSkKICB7CiAgICAkdGhpcy0+X3VuaXRfcHJpY2UgPSAkbnVtOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF91bml0X3ByaWNlKCkKICB7CiAgICBpZiggaXNfbnVsbCgkdGhpcy0+X3VuaXRfcHJpY2UpICkgewogICAgICAkcHJpY2UgPSAkdGhpcy0+Z2V0X2Jhc2VfcHJpY2UoKTsKICAgICAgZm9yZWFjaCggJHRoaXMtPmdldF9vcHRpb25zKCkgYXMgJG9iaiApIHsKCSRwcmljZSArPSAkb2JqLT5hZGp1c3RtZW50OwogICAgICB9CiAgICAgIHJldHVybiAkcHJpY2U7CiAgICB9CiAgICByZXR1cm4gJHRoaXMtPl91bml0X3ByaWNlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9uZXRfdW5pdF9wcmljZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5nZXRfdW5pdF9wcmljZSgpICsgJHRoaXMtPmdldF91bml0X2Rpc2NvdW50KCk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X29wdGlvbnMoJGF0dHJpYnMpCiAgewogICAgaWYoIGlzX2FycmF5KCRhdHRyaWJzKSApICR0aGlzLT5fYXR0cmlidXRlcyA9ICRhdHRyaWJzOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9vcHRpb25zKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9hdHRyaWJ1dGVzOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF90eXBlKCRudW0pCiAgewogICAgJHRoaXMtPl90eXBlID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHlwZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fdHlwZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfdW5pdF93ZWlnaHQoJG51bSkKICB7CiAgICAkdGhpcy0+X3VuaXRfd2VpZ2h0ID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdW5pdF93ZWlnaHQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3VuaXRfd2VpZ2h0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9zdW1tYXJ5KCRudW0pCiAgewogICAgJHRoaXMtPl9zdW1tYXJ5ID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc3VtbWFyeSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fc3VtbWFyeTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcGFyZW50KCRudW0pCiAgewogICAgJHRoaXMtPl9wYXJlbnQgPSAkbnVtOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wYXJlbnQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3BhcmVudDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJvbW8oJG51bSkKICB7CiAgICAkdGhpcy0+X3Byb21vID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvbW8oKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3Byb21vOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9pdGVtX3RvdGFsKCRudW0pCiAgewogICAgJHRoaXMtPl9pdGVtX3RvdGFsID0gJG51bTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfaXRlbV90b3RhbCgpCiAgewogICAgaWYoICFpc19udWxsKCR0aGlzLT5faXRlbV90b3RhbCkgKSB7CiAgICAgIC8vIGl0ZW0gdG90YWwgaGFzIGJlZW4gb3ZlcnJpZGRlbi4KICAgICAgcmV0dXJuICR0aGlzLT5faXRlbV90b3RhbDsKICAgIH0KCiAgICByZXR1cm4gJHRoaXMtPmdldF9uZXRfdW5pdF9wcmljZSgpICogJHRoaXMtPmdldF9xdWFudGl0eSgpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9zdWJzY3JpcHRpb24oY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uICRzdWJzY3IpCiAgewogICAgJHRoaXMtPl9zdWJzY3JpcHRpb24gPSAkc3Vic2NyOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9zdWJzY3JpcHRpb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3N1YnNjcmlwdGlvbjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiB0b19hcnJheSgpCiAgewogICAgJHRtcCA9IGFycmF5KCk7CiAgICAkdG1wWydwcm9kdWN0X2lkJ10gPSAkdGhpcy0+Z2V0X3Byb2R1Y3RfaWQoKTsKICAgICR0bXBbJ3NrdSddID0gJHRoaXMtPmdldF9za3UoKTsKICAgICR0bXBbJ3F1YW50aXR5J10gPSAkdGhpcy0+Z2V0X3F1YW50aXR5KCk7CiAgICAkdG1wWydiYXNlX3ByaWNlJ10gPSAkdGhpcy0+Z2V0X2Jhc2VfcHJpY2UoKTsKICAgICR0bXBbJ3R5cGUnXSA9ICR0aGlzLT5nZXRfdHlwZSgpOwogICAgJHRtcFsncGVuZGluZyddID0gJHRoaXMtPmdldF9wZW5kaW5nKCk7CiAgICAkdG1wWyd1bml0X3dlaWdodCddID0gJHRoaXMtPmdldF91bml0X3dlaWdodCgpOwogICAgJHRtcFsndW5pdF9wcmljZSddID0gJHRoaXMtPmdldF91bml0X3ByaWNlKCk7CiAgICAkdG1wWydzdW1tYXJ5J10gPSAkdGhpcy0+Z2V0X3N1bW1hcnkoKTsKICAgICR0bXBbJ3BhcmVudCddID0gJHRoaXMtPmdldF9wYXJlbnQoKTsKICAgICR0bXBbJ3Byb21vJ10gPSAkdGhpcy0+Z2V0X3Byb21vKCk7CiAgICAkdG1wWyd1bml0X2Rpc2NvdW50J10gPSAkdGhpcy0+Z2V0X3VuaXRfZGlzY291bnQoKTsKICAgICR0bXBbJ2l0ZW1fdG90YWwnXSA9ICR0aGlzLT5nZXRfaXRlbV90b3RhbCgpOwoKICAgIGlmKCAkdGhpcy0+X3N1YnNjcmlwdGlvbiApICR0bXBbJ3N1YnNjcmlwdGlvbiddID0gJHRoaXMtPl9zdWJzY3JpcHRpb24tPnRvX2FycmF5KCk7CiAgICByZXR1cm4gJHRtcDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBfX3Rvc3RyaW5nKCkKICB7CiAgICByZXR1cm4gaW1wbG9kZSgnLy8nLGFycmF5KCR0aGlzLT5nZXRfc291cmNlKCksJHRoaXMtPmdldF9za3UoKSwkdGhpcy0+Z2V0X3N1bW1hcnkoKSwkdGhpcy0+Z2V0X3VuaXRfcHJpY2UoKSkpOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGNvbXBhcmUoY2dfZWNvbW1fY2FydGl0ZW0gJG90aGVyX2l0ZW0pCiAgewogICAgICAkdG1wMSA9ICR0aGlzLT50b19hcnJheSgpOwogICAgICB1bnNldCgkdG1wMVsndW5pdF9kaXNjb3VudCddLCR0bXAxWydxdWFudGl0eSddLCR0bXAxWydpdGVtX3RvdGFsJ10pOwogICAgICAkdG1wMiA9ICRvdGhlcl9pdGVtLT50b19hcnJheSgpOwogICAgICB1bnNldCgkdG1wMlsndW5pdF9kaXNjb3VudCddLCR0bXAyWydxdWFudGl0eSddLCR0bXAyWydpdGVtX3RvdGFsJ10pOwogICAgICAkdG1wID0gYXJyYXlfZGlmZigkdG1wMSwkdG1wMik7CiAgICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgfHwgY291bnQoJHRtcCkgPT0gMCApIHJldHVybiBUUlVFOwogICAgICByZXR1cm4gRkFMU0U7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_cartitem_policy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNnX2Vjb21tX2NhcnRpdGVtX3BvbGljeQp7CiAgICBwcml2YXRlICRfbWF4X3NlcnZpY2VzID0gMTAwMDAwMDsKICAgIHByaXZhdGUgJF9tYXhfcHJvZHVjdHMgPSAxMDAwMDAwOwogICAgcHJpdmF0ZSAkX21heF9zdWJzY3JpcHRpb25zID0gMTAwMDAwMDsKICAgIHByaXZhdGUgJF9taXhlZF9zdWJzY3JpcHRpb25zID0gMTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X21heF9zZXJ2aWNlcygkbnVtKQogICAgewogICAgICAgICR0aGlzLT5fbWF4X3NlcnZpY2VzID0gKGludCkkbnVtOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbWF4X3Byb2R1Y3RzKCRudW0pCiAgICB7CiAgICAgICAgJHRoaXMtPl9tYXhfcHJvZHVjdHMgPSAoaW50KSRudW07CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9tYXhfc3Vic2NyaXB0aW9ucygkbnVtKQogICAgewogICAgICAgICR0aGlzLT5fbWF4X3N1YnNjcmlwdGlvbnMgPSAoaW50KSRudW07CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9taXhlZF9zdWJzY3JpcHRpb25zKCRmbGFnKQogICAgewogICAgICAgIGlmKCAkZmxhZyApIHsKICAgICAgICAgICAgJHRoaXMtPl9taXhlZF9zdWJzY3JpcHRpb25zID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5fbWl4ZWRfc3Vic2NyaXB0aW9ucyA9IDA7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfc2VydmljZXMoKQogICAgewogICAgICAgIHJldHVybiAoJHRoaXMtPl9tYXhfc2VydmljZXMgIT0gMCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG1heF9zZXJ2aWNlcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbWF4X3NlcnZpY2VzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfcHJvZHVjdHMoKQogICAgewogICAgICAgIHJldHVybiAoJHRoaXMtPl9tYXhfcHJvZHVjdHMgIT0gMCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG1heF9wcm9kdWN0cygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbWF4X3Byb2R1Y3RzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfc3Vic2NyaXB0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuICgkdGhpcy0+X21heF9zdWJzY3JpcHRpb25zICE9IDApPzE6MDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbWF4X3N1YnNjcmlwdGlvbnMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X21heF9zdWJzY3JpcHRpb25zOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfbWl4ZWRfc3Vic2NyaXB0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbWl4ZWRfc3Vic2NyaXB0aW9uczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbWVyZ2UoY2dfZWNvbW1fY2FydGl0ZW1fcG9saWN5JiAkaW4sJG1pbmltYWxpc3QgPSBUUlVFKQogICAgewogICAgICAgIGlmKCAkbWluaW1hbGlzdCApIHsKICAgICAgICAgICAgJHRoaXMtPl9tYXhfc2VydmljZXMgPSBtaW4oJHRoaXMtPl9tYXhfc2VydmljZXMsJGluLT5fbWF4X3NlcnZpY2VzKTsKICAgICAgICAgICAgJHRoaXMtPl9tYXhfcHJvZHVjdHMgPSBtaW4oJHRoaXMtPl9tYXhfcHJvZHVjdHMsJGluLT5fbWF4X3Byb2R1Y3RzKTsKICAgICAgICAgICAgJHRoaXMtPl9tYXhfc3Vic2NyaXB0aW9ucyA9IG1pbigkdGhpcy0+X21heF9zdWJzY3JpcHRpb25zLCRpbi0+X21heF9zdWJzY3JpcHRpb25zKTsKICAgICAgICAgICAgaWYoICEkdGhpcy0+X21peGVkX3N1YnNjcmlwdGlvbnMgfHwJISRpbi0+X21peGVkX3N1YnNjcmlwdGlvbnMgKSAkdGhpcy0+X21peGVkX3N1YnNjcmlwdGlvbnMgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgLy8gbm90IG1pbmltYWxpc3QsIHNvIHRha2UgdGhlIG1heGltdW0gdmFsdWVzLgogICAgICAgICAgICAkdGhpcy0+X21heF9zZXJ2aWNlcyA9IG1heCgkdGhpcy0+X21heF9zZXJ2aWNlcywkaW4tPl9tYXhfc2VydmljZXMpOwogICAgICAgICAgICAkdGhpcy0+X21heF9wcm9kdWN0cyA9IG1heCgkdGhpcy0+X21heF9wcm9kdWN0cywkaW4tPl9tYXhfcHJvZHVjdHMpOwogICAgICAgICAgICAkdGhpcy0+X21heF9zdWJzY3JpcHRpb25zID0gbWF4KCR0aGlzLT5fbWF4X3N1YnNjcmlwdGlvbnMsJGluLT5fbWF4X3N1YnNjcmlwdGlvbnMpOwogICAgICAgICAgICBpZiggJHRoaXMtPl9taXhlZF9zdWJzY3JpcHRpb25zIHx8ICRpbi0+X21peGVkX3N1YnNjcmlwdGlvbnMgKSAkdGhpcy0+X21peGVkX3N1YnNjcmlwdGlvbnMgPSAxOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbWF0Y2hlcygkbl9wcm9kdWN0cywgJG5fc2VydmljZXMsICRuX3N1YnNjcmlwdGlvbnMpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fbWF4X3Byb2R1Y3RzID49IDAgJiYgJG5fcHJvZHVjdHMgPiAkdGhpcy0+X21heF9wcm9kdWN0cyApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggJHRoaXMtPl9tYXhfc2VydmljZXMgPj0gMCAmJiAkbl9zZXJ2aWNlcyA+ICR0aGlzLT5fbWF4X3NlcnZpY2VzICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAkdGhpcy0+X21heF9zdWJzY3JpcHRpb25zID49IDAgJiYgJG5fc3Vic2NyaXB0aW9ucyA+ICR0aGlzLT5fbWF4X3N1YnNjcmlwdGlvbnMgKSByZXR1cm4gRkFMU0U7CgogICAgICAgIGlmKCAhJHRoaXMtPl9taXhlZF9zdWJzY3JpcHRpb25zICkgewogICAgICAgICAgICBpZiggJG5fc3Vic2NyaXB0aW9ucyA+IDAgJiYgJG5fcHJvZHVjdHMgPiAwICkgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_company_address.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNnX2Vjb21tX2NvbXBhbnlfYWRkcmVzcyBleHRlbmRzIGNnZV9hZGRyZXNzCnsKICBwdWJsaWMgZnVuY3Rpb24gaXNfdmFsaWQoKQogIHsKICAgIGlmKCAkdGhpcy0+Z2V0X2NvbXBhbnkoKSA9PSAnJyApIHJldHVybiBGQUxTRTsKICAgIGlmKCAkdGhpcy0+Z2V0X2FkZHJlc3MxKCkgPT0gJycgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggJHRoaXMtPmdldF9jaXR5KCkgPT0gJycgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggJHRoaXMtPmdldF9zdGF0ZSgpID09ICcnICkgcmV0dXJuIEZBTFNFOwogICAgaWYoICR0aGlzLT5nZXRfcG9zdGFsKCkgPT0gJycgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggJHRoaXMtPmdldF9jb3VudHJ5KCkgPT0gJycgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggJHRoaXMtPmdldF9waG9uZSgpID09ICcnICkgcmV0dXJuIEZBTFNFOwogICAgaWYoICR0aGlzLT5nZXRfZW1haWwoKSA9PSAnJyApIHJldHVybiBGQUxTRTsKICAgIHJldHVybiBUUlVFOwogIH0KfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_offline.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCi8qKgogKiBVdGlsaXR5IGNsYXNzIGZvciBtYW5hZ2luZyB0b2tlbnMgcmVsYXRlZCB0byBvZmZsaW5lIGNoYXJnZXMKICoKICogVGhpcyBjbGFzcyByZXF1aXJlcyBGRVUsIGFuZCBhbiBhY3RpdmUgRkVVIHVzZXIKICoKICovCmZpbmFsIGNsYXNzIGNnX2Vjb21tX29mZmxpbmUKewogICAgcHJpdmF0ZSBzdGF0aWMgJF9wcmVmaXggPSAnX19jZ19lY29tbV90b2tlbnMnOwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogICAgLyoqCiAgICAgKiBTZXQgYSB0b2tlbiBmb3Igb2ZmbGluZSBhY2Nlc3MKICAgICAqCiAgICAgKiBAdGhyb3dzIENtc0V4Y2VwdGlvbgogICAgICogQHRocm93cyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbgogICAgICogQHBhcmFtIHN0cmluZyAka2V5CiAgICAgKiBAcGFyYW0gc3RyaW5nICR2YWwKICAgICAqIEBwYXJhbSBpbnQgICAgJGZldV91aWQKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF90b2tlbigka2V5LCR2YWwsJGZldV91aWQgPSBudWxsKQogICAgewogICAgICAgIGlmKCAhJGtleSB8fCAhJHZhbCApIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgcGFzc2VkIHRvICcuX19DTEFTU19fLic6OicuX19NRVRIT0RfXyk7CiAgICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgIGlmKCAhJGZldSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc3RvcmUgcGF5bWVudCBnYXRld2F5IHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcyB3aXRoIG5vIEZyb250RW5kVXNlcnMgbW9kdWxlJyk7CiAgICAgICAgaWYoICEkZmV1X3VpZCApICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICAgIGlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHN0b3JlIHBheW1lbnQgZ2F0ZXdheSB0b2tlbiBmb3Igb2ZmbGluZSBhY2Nlc3Mgd2hlbiBzaXRlIHZpc2l0b3IgaXMgbm90IGxvZ2dlZCBpbiB0byBGRVUnKTsKCiAgICAgICAgJGRlZm4gPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm4oc2VsZjo6JF9wcmVmaXgpOwogICAgICAgIGlmKCAhJGRlZm4gKSB7CiAgICAgICAgICAgICRmZXUtPkFkZFByb3BlcnR5RGVmbihzZWxmOjokX3ByZWZpeCwnJyxGcm9udEVuZFVzZXJzOjpGSUVMRFRZUEVfREFUQSwgMTAyNCwgMCwgJycsIDAsIDEpOwogICAgICAgICAgICAkZmV1LT5TZXRQcm9wZXJ0eURlZm5FeHRyYShzZWxmOjokX3ByZWZpeCxhcnJheSgnbW9kdWxlJz0+J0NHRWNvbW1lcmNlQmFzZScpKTsKICAgICAgICB9CgogICAgICAgICR0bXAgPSAkZmV1LT5HZXRVc2VyUHJvcGVydHlGdWxsKHNlbGY6OiRfcHJlZml4LCAkZmV1X3VpZCk7CiAgICAgICAgJHRtcCA9IHVuc2VyaWFsaXplKCR0bXApOwogICAgICAgIGlmKCAhJHRtcCApICR0bXAgPSBhcnJheSgpOwogICAgICAgICR0bXBbJGtleV0gPSAkdmFsOwogICAgICAgICR0bXAgPSBzZXJpYWxpemUoJHRtcCk7CiAgICAgICAgJGZldS0+U2V0VXNlclByb3BlcnR5RnVsbChzZWxmOjokX3ByZWZpeCwgJHRtcCwgJGZldV91aWQpOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IGEgdG9rZW4gZm9yIG9mZmxpbmUgYWNjZXNzCiAgICAgKgogICAgICogQHRocm93cyBDbXNFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgQ21zSW52YWxpZERhdGFFeGNlcHRpb24KICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQogICAgICogQHBhcmFtIGludCAgICAkZmV1X3VpZAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdG9rZW4oJGtleSwkZmV1X3VpZCA9IG51bGwpCiAgICB7CiAgICAgICAgaWYoICEka2V5ICkgdGhyb3cgbmV3IENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlcyBwYXNzZWQgdG8gJy5fX0NMQVNTX18uJzo6Jy5fX01FVEhPRF9fKTsKICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgaWYoICEkZmV1ICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgcGF5bWVudCBnYXRld2F5IHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcyB3aXRoIG5vIEZyb250RW5kVXNlcnMgbW9kdWxlJyk7CiAgICAgICAgaWYoICEkZmV1X3VpZCApICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICAgIGlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBwYXltZW50IGdhdGV3YXkgdG9rZW4gZm9yIG9mZmxpbmUgYWNjZXNzIHdoZW4gc2l0ZSB2aXNpdG9yIGlzIG5vdCBsb2dnZWQgaW4gdG8gRkVVJyk7CgogICAgICAgICR0bXAgPSAkZmV1LT5HZXRVc2VyUHJvcGVydHlGdWxsKHNlbGY6OiRfcHJlZml4LCAkZmV1X3VpZCk7CiAgICAgICAgJHRtcCA9IEB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICBpZiggaXNzZXQoJHRtcFska2V5XSkgKSByZXR1cm4gJHRtcFska2V5XTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCBhIHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcwogICAgICoKICAgICAqIEB0aHJvd3MgQ21zRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIENtc0ludmFsaWREYXRhRXhjZXB0aW9uCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkKICAgICAqIEBwYXJhbSBpbnQgICAgJGZldV91aWQKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhhc190b2tlbigka2V5LCAkZmV1X3VpZCkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBzZWxmOjpnZXRfdG9rZW4oJGtleSwkZmV1X3VpZCk7CiAgICAgICAgICAgIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUmVtb3ZlIGEgdG9rZW4gZm9yIG9mZmxpbmUgYWNjZXNzCiAgICAgKgogICAgICogQHRocm93cyBDbXNFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgQ21zSW52YWxpZERhdGFFeGNlcHRpb24KICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQogICAgICogQHBhcmFtIGludCAgICAkZmV1X3VpZAogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVsZXRlX3Rva2VuKCRrZXksJGZldV91aWQgPSBudWxsKQogICAgewogICAgICAgIGlmKCAhJGtleSApIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgcGFzc2VkIHRvICcuX19DTEFTU19fLic6OicuX19NRVRIT0RfXyk7CiAgICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgIGlmKCAhJGZldSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZGVsZXRlIHBheW1lbnQgZ2F0ZXdheSB0b2tlbiBmb3Igb2ZmbGluZSBhY2Nlc3Mgd2l0aCBubyBGcm9udEVuZFVzZXJzIG1vZHVsZScpOwogICAgICAgIGlmKCAhJGZldV91aWQgKSAkZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgICAgICBpZiggISRmZXVfdWlkICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignQXR0ZW1wdCB0byBkZWxldGUgcGF5bWVudCBnYXRld2F5IHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcyB3aGVuIHNpdGUgdmlzaXRvciBpcyBub3QgbG9nZ2VkIGluIHRvIEZFVScpOwoKICAgICAgICAkdG1wID0gJGZldS0+R2V0VXNlclByb3BlcnR5RnVsbChzZWxmOjokX3ByZWZpeCwgJGZldV91aWQpOwogICAgICAgICR0bXAgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICBpZiggIWlzc2V0KCR0bXBbJGtleV0pICkgcmV0dXJuOwoKICAgICAgICB1bnNldCgkdG1wWyRrZXldKTsKICAgICAgICAkdG1wID0gc2VyaWFsaXplKCR0bXApOwogICAgICAgIHJldHVybiAkZmV1LT5TZXRVc2VyUHJvcGVydHlGdWxsKHNlbGY6OiRfcHJlZml4LCAkdG1wLCAkZmV1X3VpZCk7CiAgICB9CgoKICAgIC8qKgogICAgICogTGlzdCBhbGwgb2YgdGhlIG9mZmxpbmUgdG9rZW5zIGZvciBhIHVzZXIuCiAgICAgKgogICAgICogQHRocm93cyBDbXNFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgQ21zSW52YWxpZERhdGFFeGNlcHRpb24KICAgICAqIEBwYXJhbSAgaW50ICRmZXVfdWlkIEZyb250RW5kVXNlcnMgdXNlciBpZAogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxpc3RfdG9rZW5zKCRmZXVfdWlkID0gbnVsbCkKICAgIHsKICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgaWYoICEkZmV1ICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgcGF5bWVudCBnYXRld2F5IHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcyB3aXRoIG5vIEZyb250RW5kVXNlcnMgbW9kdWxlJyk7CiAgICAgICAgaWYoICEkZmV1X3VpZCApICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICAgIGlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBwYXltZW50IGdhdGV3YXkgdG9rZW4gZm9yIG9mZmxpbmUgYWNjZXNzIHdoZW4gc2l0ZSB2aXNpdG9yIGlzIG5vdCBsb2dnZWQgaW4gdG8gRkVVJyk7CgogICAgICAgICR0bXAgPSAkZmV1LT5HZXRVc2VyUHJvcGVydHlGdWxsKHNlbGY6OiRfcHJlZml4LCAkZmV1X3VpZCk7CiAgICAgICAgaWYoICEkdG1wICkgcmV0dXJuOwogICAgICAgICR0bXAgPSBAdW5zZXJpYWxpemUoJHRtcCk7CiAgICAgICAgZGVidWdfZGlzcGxheSgkdG1wKTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCgogICAgLyoqCiAgICAgKiBUZXN0IGlmIHRoZSB1c2VyIGhhcyBvbmUgb3IgbW9yZSBvZmZsaW5lIHRva2VucwogICAgICoKICAgICAqIEBwYXJhbSAgaW50ICAkZmV1X3VpZAogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaGFzX3Rva2VucygkZmV1X3VpZCA9IG51bGwpCiAgICB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHJlcyA9IHNlbGY6Omxpc3RfdG9rZW5zKCRmZXVfdWlkKTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRyZXMpICYmIGNvdW50KCRyZXMpICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgfQogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSB1c2VmdWwgZnVuY3Rpb25zCiMgIGFuZCBjb21tb25seSB1c2VkIGd1aSBjYXBhYmlsaXRpZXMgdG8gb3RoZXIgbW9kdWxlcy4KIyAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNnX2Vjb21tX29yZGVyCnsKICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3JkZXJfY29udGVudHMoJG9yZGVyX2lkKQogIHsKICAgICRvcmRlcm1hbmFnZXIgPSBjZ19lY29tbTo6Z2V0X29yZGVyX21hbmFnZXIoKTsKICAgIGlmKCAhJG9yZGVybWFuYWdlciApIHJldHVybiBGQUxTRTsKCiAgICBpZiggIW1ldGhvZF9leGlzdHMoJG9yZGVybWFuYWdlciwnZ2V0X3BvcnRhYmxlX29yZGVyJykgKSAgcmV0dXJuIEZBTFNFOwoKICAgICRkYXRhID0gJG9yZGVybWFuYWdlci0+Z2V0X3BvcnRhYmxlX29yZGVyKCRvcmRlcl9pZCk7CiAgICByZXR1cm4gJGRhdGE7CiAgfQoKICAKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIG9uX29yZGVyX2NyZWF0ZWQoJG9yZGVyX2lkKQogIHsKICAgICRjYXJ0ID0gY2dfZWNvbW06OmdldF9vcmRlcl9tYW5hZ2VyKCk7CiAgICAkcGFybXNbJ29yZGVyX2lkJ10gPSAkb3JkZXJfaWQ7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICRtb2QtPlNlbmRFdmVudCgnT3JkZXJDcmVhdGVkJywkcGFybXMpOwogIH0KCgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gb25fb3JkZXJfdXBkYXRlZCgkb3JkZXJfaWQpCiAgewogICAgJGNhcnQgPSBjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CiAgICAkcGFybXNbJ29yZGVyX2lkJ10gPSAkb3JkZXJfaWQ7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICRtb2QtPlNlbmRFdmVudCgnT3JkZXJVcGRhdGVkJywkcGFybXMpOwogIH0KCgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gb25fb3JkZXJfZGVsZXRlZCgkb3JkZXJfaWQpCiAgewogICAgJGNhcnQgPSBjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CiAgICAkcGFybXNbJ29yZGVyX2lkJ10gPSAkb3JkZXJfaWQ7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICRtb2QtPlNlbmRFdmVudCgnT3JkZXJEZWxldGVkJywkcGFybXMpOwogIH0KCgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gb25fZ2F0ZXdheV90cmFuc2FjdGlvbigkb3JkZXJfaWQpCiAgewogICAgJGNhcnQgPSBjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CiAgICAkcGFybXNbJ29yZGVyX2lkJ10gPSAkb3JkZXJfaWQ7CiAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICRtb2QtPlNlbmRFdmVudCgnT25HYXRld2F5VHJhbnNhY3Rpb24nLCRwYXJtcyk7CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_package_generator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNnX2Vjb21tX3BhY2thZ2VfZ2VuZXJhdG9yCnsKICBwcml2YXRlICRfcHJvZmlsZTsKICBwcml2YXRlICRfaXRlbXM7CiAgcHJpdmF0ZSAkX3BhY2thZ2VzOwogIHByaXZhdGUgJF9lcnJvcjsKCgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgewogICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAkdG1wID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgncGFja2FnaW5nX3Byb2ZpbGUnKTsKICAgIGlmKCAkdG1wICkKICAgICAgewoJJHRoaXMtPl9wcm9maWxlID0gdW5zZXJpYWxpemUoJHRtcCk7CiAgICAgIH0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3Byb2ZpbGUoY2dfZWNvbW1fcGFja2FnaW5nX3Byb2ZpbGUgJHByb2ZpbGUpCiAgewogICAgJHRoaXMtPl9wcm9maWxlID0gJHByb2ZpbGU7CiAgfQogIAoKICBwdWJsaWMgZnVuY3Rpb24gcmVzZXQoKQogIHsKICAgICR0aGlzLT5faXRlbXMgPSBudWxsOwogICAgJHRoaXMtPl9lcnJvciA9IG51bGw7CiAgICAkdGhpcy0+X3BhY2thZ2VzID0gbnVsbDsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gYWRkX2l0ZW0oY2dfZWNvbW1fcGFja2FnaW5nX2JveCAkYm94KQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9pdGVtcykgKSAkdGhpcy0+X2l0ZW1zID0gYXJyYXkoKTsKICAgICR0aGlzLT5faXRlbXNbXSA9ICRib3g7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wYWNrYWdlcygpCiAgewogICAgaWYoICFpc19hcnJheSgkdGhpcy0+X3BhY2thZ2VzKSB8fCBjb3VudCgkdGhpcy0+X3BhY2thZ2VzKSA9PSAwICkKICAgICAgcmV0dXJuICR0aGlzLT5faXRlbXM7CgogICAgcmV0dXJuICR0aGlzLT5fcGFja2FnZXM7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9lcnJvcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5fZXJyb3I7CiAgfQoKCiAgLyoqCiAgICogQ2FsY3VsYXRlIHBhY2thZ2UgZ2l2ZW4gdGhlIGl0ZW1zCiAgICogCiAgICogQHJldHVybiBib29sZWFuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGNhbGN1bGF0ZSgpCiAgewogICAgaWYoICEkdGhpcy0+X3Byb2ZpbGUgfHwgISR0aGlzLT5faXRlbXMgfHwgY291bnQoJHRoaXMtPl9pdGVtcykgPT0gMCApCiAgICAgIHsKCS8vIG5vdGhpbmcgdG8gZG8uCglyZXR1cm4gRkFMU0U7CiAgICAgIH0KICAgICRtb2R1bGUgPSBjZ19lY29tbTo6Z2V0X3BhY2thZ2luZ19tb2R1bGUoKTsKICAgIGlmKCAhJG1vZHVsZSApCiAgICAgIHsKCS8vIG5vIG1vZHVsZSB0byBkbyBhbnl0aGluZy4uLi4gd2UnbGwganVzdCBwcmV0ZW5kIGl0IHdvcmtlZC4KCXJldHVybiBUUlVFOwogICAgICB9CiAgICAKICAgIHJldHVybiBGQUxTRTsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_packaging_box.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNnX2Vjb21tX3BhY2thZ2luZ19ib3ggaW1wbGVtZW50cyBBcnJheUFjY2Vzcwp7CiAgLy8gYWxsIGRpbWVuc2lvbnMgYXJlIGluIGNtLCBhbGwgd2VpZ2h0cyBpbiBraWxvZ3JhbXMuCiAgcHJpdmF0ZSAkX2RhdGEgPSBhcnJheSgpOwogIHN0YXRpYyBwcml2YXRlICRfa2V5cyA9IGFycmF5KCduYW1lJywnd2lkdGgnLCdoZWlnaHQnLCdsZW5ndGgnLCd3ZWlnaHQnLCd2YWx1ZScsJ3Njb3JlJyk7CgoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5hbWUsJHdlaWdodF9rZywkc2NvcmUgPSAwKQogIHsKICAgICR0aGlzLT5fZGF0YVsnbmFtZSddID0gdHJpbSgkbmFtZSk7CiAgICAkdGhpcy0+X2RhdGFbJ3dlaWdodCddID0gJHdlaWdodF9rZzsKICAgICR0aGlzLT5fZGF0YVsnc2NvcmUnXSA9IChpbnQpJHNjb3JlOwogIH0KCiAgCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldEdldCgka2V5KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byByZXRyaWV2ZSBpbnZhbGlkIHByb3BlcnR5IGZyb20gYSBjZ19lY29tbV9wYWNrYWdpbmdfYm94IG9iamVjdCcpOwogICAgICB9CiAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApCiAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgka2V5LCR2YWx1ZSkKICB7CiAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApCiAgICAgIHsKCXRocm93IG5ldyBFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc2V0IGludmFsaWQgcHJvcGVydHkgaW50byAgYSBjZ19lY29tbV9wYWNrYWdpbmdfYm94IG9iamVjdCcpOwogICAgICB9CiAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgfQoKICAKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrZXkpCiAgewogICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKQogICAgICB7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHJldHJpZXZlIGludmFsaWQgcHJvcGVydHkgZnJvbSBhIGNnX2Vjb21tX3BhY2thZ2luZ19ib3ggb2JqZWN0Jyk7CiAgICAgIH0KICAgIHJldHVybiBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgka2V5KQogIHsKICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkKICAgICAgewoJdGhyb3cgbmV3IEV4Y2VwdGlvbignQXR0ZW1wdCB0byByZW1vdmUgcHJvcGVydHkgZnJvbSBhIGNnX2Vjb21tX3BhY2thZ2luZ19ib3ggb2JqZWN0Jyk7CiAgICAgIH0KICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gaXNfdmFsaWQoKQogIHsKICAgIGlmKCAhJHRoaXMtPl9kYXRhWyduYW1lJ10gKSByZXR1cm4gRkFMU0U7CiAgICBpZiggJHRoaXMtPl9kYXRhWyd3ZWlnaHQnXSA8PSAwICkgcmV0dXJuIEZBTFNFOwogICAgLy9pZiggJHRoaXMtPl9kYXRhWyd2YWx1ZSddIDwgMCApIHJldHVybiBGQUxTRTsKICAgIHJldHVybiBUUlVFOwogIH0KCgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gY21wKGNnX2Vjb21tX3NoaXBwaW5nX2JveCYgJGEsY2dfZWNvbW1fc2hpcHBpbmdfYm94JiAkYikKICB7CiAgICBpZiggJGEtPmdldF9zY29yZSgpIDwgJGItPmdldF9zY29yZSgpICkgcmV0dXJuIC0xOwogICAgaWYoICRhLT5nZXRfc2NvcmUoKSA+ICRiLT5nZXRfc2NvcmUoKSApIHJldHVybiAxOwogICAgaWYoICRhLT5nZXRfd2VpZ2h0KCkgPCAkYi0+Z2V0X3dlaWdodCgpICkgcmV0dXJuIC0xOwogICAgaWYoICRhLT5nZXRfd2VpZ2h0KCkgPiAkYi0+Z2V0X3dlaWdodCgpICkgcmV0dXJuIDE7CiAgICByZXR1cm4gMDsKICB9Cgp9IC8vIGNsYXNzLgoKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_packaging_profile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNnX2Vjb21tX3BhY2thZ2luZ19wcm9maWxlCnsKICBwcml2YXRlICRfYm94ZXM7CiAgcHJpdmF0ZSAkX292ZXJ3ZWlnaHRfbGltaXQ7CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3ZlcndlaWdodF9saW1pdCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fb3ZlcndlaWdodF9saW1pdDsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X292ZXJ3ZWlnaHRfbGltaXQoJHZhbCkKICB7CiAgICAkdGhpcy0+X292ZXJ3ZWlnaHRfbGltaXQgPSAoZmxvYXQpJHZhbDsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2JveF9jb3VudCgpCiAgewogICAgcmV0dXJuIGNvdW50KCR0aGlzLT5fYm94ZXMpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiAmZ2V0X2JveF9hdCgkaWR4KQogIHsKICAgIGlmKCAkaWR4ID49IDAgJiYgJGlkeCA8ICR0aGlzLT5nZXRfYm94X2NvdW50KCkgKQogICAgICB7CglyZXR1cm4gJHRoaXMtPl9ib3hlc1skaWR4XTsKICAgICAgfQogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBhZGRfYm94KGNnX2Vjb21tX3BhY2thZ2luZ19ib3gmICRib3gpCiAgewogICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2JveGVzKSApICR0aGlzLT5fYm94ZXMgPSBhcnJheSgpOwogICAgJHRoaXMtPl9ib3hlc1tdID0gJGJveDsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gJmdldF9ib3hlcygpCiAgewogICAgcmV0dXJuICR0aGlzLT5fYm94ZXM7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHNldF9ib3hlcygkZGF0YSkKICB7CiAgICBpZiggIWlzX2FycmF5KCRkYXRhKSApIHJldHVybjsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRkYXRhKTsgJGkrKyApCiAgICAgIHsKCWlmKCAhKCRkYXRhWyRpXSBpbnN0YW5jZW9mIGNnX2Vjb21tX3BhY2thZ2luZ19ib3gpICkgcmV0dXJuOwogICAgICB9CiAgICAkdGhpcy0+X2JveGVzID0gJGRhdGE7CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIHRvX2FycmF5KCkKICB7CiAgICAkZGF0YSA9IGFycmF5KCk7CiAgICAkZGF0YVsnb3ZlcndlaWdodF9saW1pdCddID0gJHRoaXMtPmdldF9vdmVyd2VpZ2h0X2xpbWl0KCk7CiAgICBpZiggY291bnQoJHRoaXMtPl9ib3hlcykgKQogICAgICB7CgkkZGF0YVsnYm94ZXMnXSA9IGFycmF5KCk7Cglmb3IoICRpID0gMDsgJGkgPCAkdGhpcy0+Z2V0X2JveF9jb3VudCgpOyAkaSsrICkKCSAgewoJICAgICRkYXRhWydib3hlcyddW10gPSAkdGhpcy0+Z2V0X2JveF9hdCgkaSktPnRvX2FycmF5KCk7CgkgIH0KICAgICAgfQogIH0KCgp9IC8vIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_productinfo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIEEgY2xhc3MgdG8gZGVzY3JpYmUgYW4gb3B0aW9uIGZvciBhIHByb2R1Y3QuCiAqLwpjbGFzcyBjZ19lY29tbV9wcm9kdWN0aW5mb19vcHRpb24KewogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljICRfa2V5cyA9IGFycmF5KCdpZCcsJ3NrdScsJ3RleHQnLCdhZGp1c3RtZW50JywncW9oJywnZGlzY291bnQnKTsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX2RhdGE7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCBzZWxmOjokX2tleXMgYXMgJGtleSApIHsKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJyc7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0Nhbm5vdCBnZXQga2V5ICcuJGtleS4nIGZyb20gJy5fX0NMQVNTX18pOwogICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCR2YWx1ZSkKICAgIHsKICAgICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0Nhbm5vdCBzZXQga2V5ICcuJGtleS4nIGludG8gJy5fX0NMQVNTX18pOwogICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIEdpdmVuIGEgYmFzZSBwcmljZSBmb3IgYW4gb3B0aW9uLCB1c2UgdGhlIGludGVybmFsIGFkanVzdG1lbnQgYW5kIHJldHVybiBhIHByb3BlciB2YWx1ZQogICAgICoKICAgICAqIEByZXR1cm4gZmxvYXQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHBhcnNlX2FkanVzdG1lbnQoJGJhc2VfcHJpY2UpCiAgICB7CiAgICAgICAgJHByaWNlID0gJGJhc2VfcHJpY2U7CiAgICAgICAgJGFkanVzdG1lbnQgPSB0cmltKCR0aGlzLT5fZGF0YVsnYWRqdXN0bWVudCddKTsKICAgICAgICBpZiggJHRoaXMtPl9kYXRhWydhZGp1c3RtZW50J10gKSB7CiAgICAgICAgICAgICRrID0gJHRoaXMtPl9kYXRhWydhZGp1c3RtZW50J11bMF07CiAgICAgICAgICAgIHN3aXRjaCggJGsgKSB7CiAgICAgICAgICAgIGNhc2UgJysnOgogICAgICAgICAgICBjYXNlICctJzoKICAgICAgICAgICAgICAgICR2ID0gKGZsb2F0KSBzdWJzdHIoJGFkanVzdG1lbnQsMSk7CiAgICAgICAgICAgICAgICAkcHJpY2UgPSAkYmFzZV9wcmljZSArICR2OwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICc9JzoKICAgICAgICAgICAgICAgICR2ID0gKGZsb2F0KSBzdWJzdHIoJGFkanVzdG1lbnQsMSk7CiAgICAgICAgICAgICAgICAkcHJpY2UgPSAkdjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnKic6CiAgICAgICAgICAgICAgICAkdiA9IChmbG9hdCkgc3Vic3RyKCRhZGp1c3RtZW50LDEpOwogICAgICAgICAgICAgICAgJHByaWNlID0gJGJhc2VfcHJpY2UgKiAkdjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnLyc6CiAgICAgICAgICAgICAgICAkdiA9IChmbG9hdCkgc3Vic3RyKCRhZGp1c3RtZW50LDEpOwogICAgICAgICAgICAgICAgJHByaWNlID0gJGJhc2VfcHJpY2UgLyAkdjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICR2ID0gKGZsb2F0KSAkYWRqdXN0bWVudDsKICAgICAgICAgICAgICAgIGlmKCAkdiA+IDAuMCApICRwcmljZSA9ICRiYXNlX3ByaWNlICsgJHY7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHByaWNlOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKLyoqCiAqIEEgc2ltcGxlIGNsYXNzIHRvIGFic3RyYWN0IGluZm9ybWF0aW9uIGFib3V0IGEgcHJvZHVjdCBvciBzZXJ2aWNlLgogKi8KY2xhc3MgY2dfZWNvbW1fcHJvZHVjdGluZm8KewogICAgY29uc3QgICBUWVBFX1BST0RVQ1QgPSAxOwogICAgY29uc3QgICBUWVBFX1NFUlZJQ0UgPSAzOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfcHJvZHVjdF9pZCA9IG51bGw7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF93ZWlnaHQgPSBudWxsOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfc2t1ID0gbnVsbDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3ByaWNlID0gbnVsbDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX25hbWUgPSBudWxsOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfdGF4YWJsZSA9IG51bGw7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF90eXBlID0gc2VsZjo6VFlQRV9QUk9EVUNUOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfc3Vic2NyaXB0aW9uID0gbnVsbDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX29wdGlvbnMgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfZGltZW5zaW9uczsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3FvaDsKCiAgICAvKioKICAgICAqIEdldCB0aGUgdHlwZSBvZiB0aGUgb2YgdGhpcyBpdGVtIChwcm9kdWN0IG9yIHNlcnZpY2UpCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgc2VsZjo6VFlQRV9QUk9EVUNUIG9yIHNlbGY6OlRZUEVfU0VSVklDRQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3R5cGUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3R5cGU7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHR5cGUgb2YgdGhpcyBpdGVtCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSBzZWxmOjpUWVBFX1BST0RVQ1Qgb3Igc2VsZjo6VFlQRV9TRVJWSUNFCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdHlwZSgkdHlwZSkKICAgIHsKICAgICAgICBzd2l0Y2goICR0eXBlICkgewogICAgICAgIGNhc2Ugc2VsZjo6VFlQRV9QUk9EVUNUOgogICAgICAgIGNhc2Ugc2VsZjo6VFlQRV9TRVJWSUNFOgogICAgICAgICAgICAkdGhpcy0+X3R5cGUgPSAkdHlwZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBwcm9kdWN0IGlkCiAgICAgKgogICAgICogQHJldHVybiBpbnQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2lkKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wcm9kdWN0X2lkOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBwcm9kdWN0IGlkCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJvZHVjdF9pZCgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fcHJvZHVjdF9pZCA9IChpbnQpJHZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgd2VpZ2h0ICh1bml0cyBhcmUgZGV0ZXJtaW5lZCBieSBzeXN0ZW0gcHJlZmVyZW5jZXMpCiAgICAgKgogICAgICogQHJldHVybiBmbG9hdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3dlaWdodCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fd2VpZ2h0OwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSB3ZWlnaHQgKHVuaXRzIGFyZSBkZXRlcm1pbmVkIGJ5IHN5c3RlbSBwcmVmZXJlbmNlcykKICAgICAqCiAgICAgKiBAcGFyYW0gZmxvYXQgJHZhbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3dlaWdodCgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fd2VpZ2h0ID0gKGZsb2F0KSR2YWw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHF1YW50aXR5IG9uIGhhbmQgZm9yIHRoaXMgaXRlbQogICAgICoKICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcW9oKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9xb2g7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHF1YW50aXR5IG9uIGhhbmQgZm9yIHRoaXMgaXRlbS4KICAgICAqIE5vdGU6IGl0IGlzIG9rYXkgZm9yIG5lZ2F0aXZlIHZhbHVlcyB0byBiZSBoZXJlLCB3aGljaCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSBiYWNrb3JkZXIgc3RhdHVzLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHZhbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3FvaCgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fcW9oID0gKGludCkgJHZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZGltZW5zaW9ucyBmb3IgdGhpcyBpdGVtIGlmIGFueS4KICAgICAqIFVuaXRzIGFyZSBkZXRlcm1pbmVkIGJ5IHN5c3RlbSBwcmVmZXJlbmNlcy4KICAgICAqCiAgICAgKiBAcmV0dXJuIGZsb2F0W10gQXJyYXkgb2YgbGVuZ3RoLCB3aWR0aCwgYW5kIGhlaWdodCAuLi4gb3IgbnVsbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2RpbWVuc2lvbnMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2RpbWVuc2lvbnM7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGRpbWVuc2lvbnMgZm9yIHRoaXMgaXRlbS4KICAgICAqCiAgICAgKiBAcGFyYW0gZmxvYXQgJGwgbGVuZ3RoCiAgICAgKiBAcGFyYW0gZmxvYXQgJHcgd2lkdGgKICAgICAqIEBwYXJhbSBmbG9hdCAkaCBoZWlnaHQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaW1lbnNpb25zKCRsLCR3LCRoKQogICAgewogICAgICAgICR0aGlzLT5fZGltZW5zaW9ucyA9IGFycmF5KChmbG9hdCkkbCwoZmxvYXQpJHcsKGZsb2F0KSRoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgU0tVIChzdG9jayBrZWVwaW5nIHVuaXQpIGZvciB0aGlzIGl0ZW0uCiAgICAgKiBOb3RlOiB0aGlzIGlzIHRoZSBwcmltYXJ5IGl0ZW0gU0tVLCBub3QgaW5jbHVkaW5nIGFueSBvcHRpb25zLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2t1KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9za3U7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIFNLVSAoc3RvY2sga2VlcGluZyB1bml0KSBmb3IgdGhpcyBpdGVtLgogICAgICogTm90ZTogVGhpcyBpcyB0aGUgcHJpbWFyeSBpdGVtIFNLVSwgbm90IGluY2x1ZGluZyBhbnkgb3B0aW9ucy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR2YWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9za3UoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3NrdSA9IHRyaW0oJHZhbCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGJhc2UgcHJpY2UgZm9yIHRoaXMgaXRlbQogICAgICoKICAgICAqIEByZXR1cm4gZmxvYXQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcmljZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fcHJpY2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGJhc2UgcHJpY2UgZm9yIHRoaXMgaXRlbQogICAgICoKICAgICAqIEBwYXJhbSBmbG9hdCAkdmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJpY2UoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3ByaWNlID0gKGZsb2F0KSR2YWw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG5hbWUgZm9yIHRoaXMgaXRlbQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fbmFtZTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgbmFtZSBmb3IgdGhpcyBpdGVtCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbmFtZSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fbmFtZSA9IHRyaW0oJHZhbCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gd2V0aGVyIG9yIG5vdCB0aGlzIGl0ZW0gaXMgdGF4YWJsZS4KICAgICAqIE5vdGU6IE5vIHRheCBtb2R1bGVzIHdpbGwgY2FsY3VsYXRlIHRheGVzIGZvciBub24gdGF4YWJsZSBpdGVtcy4KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF90YXhhYmxlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl90YXhhYmxlOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHdldGhlciBvciBub3QgdGhpcyBpdGVtIGlzIHRheGFibGUuCiAgICAgKiBOb3RlOiBObyB0YXggbW9kdWxlcyB3aWxsIGNhbGN1bGF0ZSB0YXhlcyBmb3Igbm9uIHRheGFibGUgaXRlbXMuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2wgJHZhbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3RheGFibGUoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3RheGFibGUgPSAoaW50KSR2YWw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgc3Vic2NyaXB0aW9uIGluZm8gKGlmIGFueSkgZm9yIHRoaXMgaXRlbS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3N1YnNjcmlwdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fc3Vic2NyaXB0aW9uOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHN1YnNjcmlwdGlvbiBpbmZvIGZvciB0aGlzIGl0ZW0sIGluZGljYXRpbmcgdGhhdCBpdCBpcyBhIHN1YnNjcmliYWJsZSBpdGVtLgogICAgICoKICAgICAqIEBwYXJhbSBjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb24gJG9iagogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1YnNjcmlwdGlvbihjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb24gJG9iaikKICAgIHsKICAgICAgICAkdGhpcy0+X3N1YnNjcmlwdGlvbiA9ICRvYmo7CiAgICB9CgogICAgLyoqCiAgICAgKiBDb3VudCB0aGUgbnVtYmVyIG9mIG9wdGlvbnMgZm9yIHRoaXMgaXRlbS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnRfb3B0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuIGNvdW50KCR0aGlzLT5fb3B0aW9ucyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgYW4gb3B0aW9uIGZvciB0aGlzIGl0ZW0KICAgICAqCiAgICAgKiBAcGFyYW0gY2dfZWNvbW1fcHJvZHVjdGluZm9fb3B0aW9uICRhdHRyCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfb3B0aW9uKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX29wdGlvbiAkYXR0cikKICAgIHsKICAgICAgICAkdGhpcy0+X29wdGlvbnNbXSA9ICRhdHRyOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGFuIG9wdGlvbiBieSBzcGVjaWZ5aW5nIHRoZSBpbmRleC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGNnX2Vjb21tX3Byb2R1Y3RpbmZvX29wdGlvbnxudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0aW9uX2J5X2lkeCgkaWR4KQogICAgewogICAgICAgIGlmKCAkaWR4IDwgMCB8fCAkaWR4ID4gY291bnQoJHRoaXMtPl9vcHRpb25zKSAtIDEgKSByZXR1cm47CiAgICAgICAgcmV0dXJuICR0aGlzLT5fb3B0aW9uc1skaWR4XTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhbiBvcHRpb24gYnkgaXQncyBvcHRpb24gaWQuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkaWQKICAgICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvZHVjdGluZm9fb3B0aW9ufG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vcHRpb25fYnlfaWQoJGlkKQogICAgewogICAgICAgIGZvcmVhY2goICR0aGlzLT5fb3B0aW9ucyBhcyAkb3B0ICkgewogICAgICAgICAgICBpZiggJG9wdC0+aWQgPT0gJGlkICkgcmV0dXJuICRvcHQ7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IGFuIG9wdGlvbiBieSBpdCdzIFNLVS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRza3UKICAgICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvZHVjdGluZm9fb3B0aW9ufG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vcHRpb25fYnlfc2t1KCRza3UpCiAgICB7CiAgICAgICAgJHNrdSA9IChzdHJpbmcpICRza3U7CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9vcHRpb25zIGFzICRvcHQgKSB7CiAgICAgICAgICAgIGlmKCAkb3B0LT5za3UgPT0gJHNrdSApIHJldHVybiAkb3B0OwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIGhhbmQgZm9yIHRoaXMgaXRlbSBieSBzcGVjaWZ5aW5nIGl0J3MgU0tVLgogICAgICogSWYgdGhlIHNrdSBlbnRlcmVkIG1hdGNoZXMgdGhlIGl0ZW0gc2t1IHRoZW4gaXQncyBxb2ggaXMgcmV0dXJuZWQuCiAgICAgKiBpZiB0aGUgc2t1IGVudGVyZWQgbWF0Y2hlcyBhbiBvcHRpb24gc2t1IHRoZW4gdGhhdCBxb2ggaXMgcmV0dXJuZWQuCiAgICAgKgogICAgICogQHJldHVybiBpbnQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9xb2hfYnlfc2t1KCRza3UpCiAgICB7CiAgICAgICAgJG9wdCA9ICR0aGlzLT5nZXRfb3B0aW9uX2J5X3NrdSgoc3RyaW5nKSAkc2t1KTsKICAgICAgICBpZiggJG9wdCApIHJldHVybiAkb3B0LT5xb2g7CiAgICAgICAgaWYoICRza3UgPT0gJHRoaXMtPmdldF9za3UoKSApIHJldHVybiAkdGhpcy0+Z2V0X3FvaCgpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBIVE1MIGNvZGUgZm9yIGFuIG9wdGlvbnMgZHJvcGRvd24gZm9yIHRoaXMgaXRlbS4KICAgICAqIFRoaXMgbWF5IGJlIHVzZWQgYnkgY2FydCBtb2R1bGVzLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0aW9uc19kcm9wZG93bigpCiAgICB7CiAgICAgICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fb3B0aW9ucykgJiYgY291bnQoJHRoaXMtPl9vcHRpb25zKSApIHsKICAgICAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgICAgICRzbWFydHkgPSBDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXRTbWFydHkoKTsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLGNnX2Vjb21tOjpnZXRfY3VycmVuY3lfc3ltYm9sKCkpOwogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X2NvZGUnLGNnX2Vjb21tOjpnZXRfY3VycmVuY3lfY29kZSgpKTsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfdW5pdHMnLGNnX2Vjb21tOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwoKICAgICAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dFQ09NTUVSQ0VCQVNFKTsKICAgICAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9vcHRpb25zIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ29wdCcsJG9uZSk7CiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2F0dHJpYl9za3UnLCRvbmUtPnNrdSk7CiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2F0dHJpYl90ZXh0Jywkb25lLT50ZXh0KTsKICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignYXR0cmliX2FkanVzdCcsJG9uZS0+YWRqdXN0bWVudCk7CiAgICAgICAgICAgICAgICAkb3V0WyRvbmUtPnNrdV0gPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbW9kLT5HZXRQcmVmZXJlbmNlKCdhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbicpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG5hbWUgZm9yIGEgcGFydGljdWxhciBvcHRpb24gKG9yIGZvciB0aGUgaXRlbSBpdHNlbGYpIGJ5IHN1cHBseWluZyBhIFNLVS4KICAgICAqCiAgICAgKiBAcGFyYW1tIHN0cmluZyAkc2t1CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3RleHRfYnlfc2t1KCRza3UpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5nZXRfc2t1KCkgPT0gJHNrdSApIHJldHVybiAkdGhpcy0+Z2V0X25hbWUoKTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+X29wdGlvbnMpOyAkaSsrICkgewogICAgICAgICAgICBpZiggJHRoaXMtPl9vcHRpb25zWyRpXS0+c2t1ID09ICRza3UgKSByZXR1cm4gJHRoaXMtPl9vcHRpb25zWyRpXS0+dGV4dDsKICAgICAgICB9CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_productinfo_subscription.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIEEgY2xhc3MgdG8gcmVwcmVzZW50IGEgc3Vic2NyaXB0aW9uIGFzIHBhcnQgb2YgYSBwcm9kdWN0aW5mbyBvYmplY3QuCiAqLwpmaW5hbCBjbGFzcyBjZ19lY29tbV9wcm9kdWN0aW5mb19zdWJzY3JpcHRpb24KewogICAgY29uc3QgU1VCU0NSX1BFUklPRF9OT05FICAgICAgICA9ICdub25lJzsKICAgIGNvbnN0IFNVQlNDUl9QRVJJT0RfTU9OVEhMWSAgICAgPSAnbW9udGhseSc7CiAgICBjb25zdCBTVUJTQ1JfUEVSSU9EX1FVQVJURVJMWSAgID0gJ3F1YXJ0ZXJseSc7CiAgICBjb25zdCBTVUJTQ1JfUEVSSU9EX1NFTUlBTlVBTExZID0gJ3NlbWlhbnVhbGx5JzsKICAgIGNvbnN0IFNVQlNDUl9QRVJJT0RfWUVBUkxZICAgICAgPSAneWVhcmx5JzsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3BheXBlcmlvZCA9IHNlbGY6OlNVQlNDUl9QRVJJT0RfTk9ORTsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX2RlbGl2ZXJ5cGVyaW9kID0gc2VsZjo6U1VCU0NSX1BFUklPRF9OT05FOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfZXhwaXJ5ID0gLTE7CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHBheSBwZXJpb2QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3Vic2NyaXB0aW9uLgogICAgICogVGhlIHBheSBwZXJpb2QgZGVmaW5lcyBob3cgb2Z0ZW4gdGhlIHN1YnNjcmliZXIgd2lsbCBiZSBjaGFyZ2VkLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIE9uZSBvZiB0aGUgcGVyaW9kcyBkZWZpbmVkIGluIHRoaXMgY2xhc3MuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcGF5cGVyaW9kKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wYXlwZXJpb2Q7CiAgICB9CgoKICAgIC8qKgogICAgICogU2V0IHRoZSBwYXkgcGVyaW9kIGZvciB0aGlzIHN1YnNjcmlwdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwZXJpb2QgT25lIG9mIHRoZSBwZXJpb2RzIGRlZmluZWQgaW4gdGhpcyBjbGFzcy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wYXlwZXJpb2QoJHBlcmlvZCkKICAgIHsKICAgICAgICBzd2l0Y2goJHBlcmlvZCkKICAgICAgICB7CiAgICAgICAgY2FzZSBzZWxmOjpTVUJTQ1JfUEVSSU9EX05PTkU6CiAgICAgICAgY2FzZSBzZWxmOjpTVUJTQ1JfUEVSSU9EX01PTlRITFk6CiAgICAgICAgY2FzZSBzZWxmOjpTVUJTQ1JfUEVSSU9EX1FVQVJURVJMWToKICAgICAgICBjYXNlIHNlbGY6OlNVQlNDUl9QRVJJT0RfU0VNSUFOVUFMTFk6CiAgICAgICAgY2FzZSBzZWxmOjpTVUJTQ1JfUEVSSU9EX1lFQVJMWToKICAgICAgICAgICAgJHRoaXMtPl9wYXlwZXJpb2QgPSAkcGVyaW9kOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGRlbGl2ZXJ5IHBlcmlvZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdWJzY3JpcHRpb24uCiAgICAgKiBUaGUgZGVsaXZlcnkgcGVyaW9kIGlzIGhvdyBvZnRlbiBpdGVtcyB3aWxsIGJlIHNoaXBwZWQuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgT25lIG9mIHRoZSBwZXJpb2RzIGRlZmluZWQgaW4gdGhpcyBjbGFzcy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kZWxpdmVyeXBlcmlvZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGVsaXZlcnlwZXJpb2Q7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGRlbGl2ZXJ5IHBlcmlvZCBmb3IgdGhpcyBzdWJzY3JpcHRpb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcGVyaW9kIE9uZSBvZiB0aGUgcGVyaW9kcyBkZWZpbmVkIGluIHRoaXMgY2xhc3MuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGVsaXZlcnlwZXJpb2QoJHBlcmlvZCkKICAgIHsKICAgICAgICBzd2l0Y2goJHBlcmlvZCkKICAgICAgICB7CiAgICAgICAgY2FzZSBzZWxmOjpTVUJTQ1JfUEVSSU9EX05PTkU6CiAgICAgICAgY2FzZSBzZWxmOjpTVUJTQ1JfUEVSSU9EX01PTlRITFk6CiAgICAgICAgY2FzZSBzZWxmOjpTVUJTQ1JfUEVSSU9EX1FVQVJURVJMWToKICAgICAgICBjYXNlIHNlbGY6OlNVQlNDUl9QRVJJT0RfU0VNSUFOVUFMTFk6CiAgICAgICAgY2FzZSBzZWxmOjpTVUJTQ1JfUEVSSU9EX1lFQVJMWToKICAgICAgICAgICAgJHRoaXMtPl9kZWxpdmVyeXBlcmlvZCA9ICRwZXJpb2Q7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCgogICAgLyoqCiAgICAgKiBUZXN0IGlmIHRoaXMgaXMgYSB2YWxpZCBzdWJzY3JpcHRpb24gb2JqZWN0LgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfdmFsaWQoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+X2RlbGl2ZXJ5cGVyaW9kICE9IHNlbGY6OlNVQlNDUl9QRVJJT0RfTk9ORSAmJgogICAgICAgICAgICAkdGhpcy0+X3BheXBlcmlvZCAhPSBzZWxmOjpTVUJTQ1JfUEVSSU9EX05PTkUgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIC8qKgogICAgICogR2V0IHRoZSBudW1iYmVyIG9mIHBheSBwZXJpb2RzIHVudGlsIHRoaXMgc3Vic2NyaXB0aW9uIGV4cGlyZXMKICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2V4cGlyeSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZXhwaXJ5OwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBudW1iZXIgb2YgcGF5IHBlcmlvZHMgdW50aWwgdGhpcyBzdWJzY3JpcHRpb24gZXhwaXJlcy4KICAgICAqIEEgbmVnYXRpdmUgdmFsdWUgaW5kaWNhdGVzIG5vIGV4cGlyeS4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR2YWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9leHBpcnkoJHZhbCkKICAgIHsKICAgICAgICAvLyBtdXN0IGJlIGludCwgYmV0d2VlbiAtMSBhbmQgNzIKICAgICAgICAvLyAtMSBpbmRpY2F0ZXMgbm8gZXhwaXJ5LgogICAgICAgICR2YWwgPSAoaW50KSR2YWw7CiAgICAgICAgaWYoICR2YWwgPD0gMCApICR2YWwgPSAtMTsKICAgICAgICBpZiggJHZhbCA+PSA3MiApICR2YWwgPSA3MjsKICAgICAgICAkdGhpcy0+X2V4cGlyeSA9ICR2YWw7CiAgICB9CgoKICAgIC8qKgogICAgICogQ29udmVydCB0aGlzIG9iamVjdCB0byBhbiBhcnJheS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0b19hcnJheSgpCiAgICB7CiAgICAgICAgJHRtcCA9IGFycmF5KCk7CiAgICAgICAgJHRtcFsncGF5cGVyaW9kJ10gPSAkdGhpcy0+X3BheXBlcmlvZDsKICAgICAgICAkdG1wWydkZWxwZXJpb2QnXSA9ICR0aGlzLT5fZGVsaXZlcnlwZXJpb2Q7CiAgICAgICAgJHRtcFsnZXhwaXJ5J10gPSAkdGhpcy0+X2V4cGlyeTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_promotion_tester.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCi8qKgogKiBUaGlzIGNsYXNzIGRlc2NyaWJlcyB0aGUgJ21hdGNoJyAoaWYgYW55KSBmb3VuZCBhZnRlciB0ZXN0aW5nIGEgc2VyaWVzIG9mIGl0ZW1zIGFnYWluc3QgCiAqIHNvbWUgcHJvbW90aW9ucy4KICovCmNsYXNzIGNnX2Vjb21tX3Byb21vdGlvbl9tYXRjaAp7CiAgY29uc3QgT0ZGRVJfRElTQ09VTlQgPSAnX19kaXNjb3VudF9fJzsKICBjb25zdCBPRkZFUl9QRVJDRU5UID0gJ19fcGVyY2VudF9fJzsKICBjb25zdCBPRkZFUl9QUk9EVUNUSUQgPSAnX19wcm9kdWN0aWRfXyc7CiAgY29uc3QgT0ZGRVJfUFJPRFVDVFNLVSA9ICdfX3NrdV9fJzsKCiAgcHJpdmF0ZSAkX3NvdXJjZTsKICBwcml2YXRlICRfaXRlbWlkOwogIHByaXZhdGUgJF9za3U7CiAgcHJpdmF0ZSAkX25hbWU7CiAgcHJpdmF0ZSAkX3R5cGU7CiAgcHJpdmF0ZSAkX3ZhbDsKICBwcml2YXRlICRfcHJvbW87CiAgcHJpdmF0ZSAkX2NhcnRfaWR4ID0gLTE7CiAgcHJpdmF0ZSAkX2Rpc2NvdW50X2FtdDsKICBwcml2YXRlICRfY3VtdWxhdGl2ZSA9IDA7CgogIC8qKgogICAqIENvbnN0cnVjdG9yCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR0eXBlID0gc2VsZjo6T0ZGRVJfRElTQ09VTlQsJHZhbCA9IDAuMDApCiAgewogICAgJHRoaXMtPnNldF90eXBlKCR0eXBlKTsKICAgICR0aGlzLT5zZXRfdmFsKCR2YWwpOwogIH0KCiAgLyoqCiAgICogU2V0IHRoZSB0eXBlIG9mIG1hdGNoCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHNldF90eXBlKCR0eXBlKQogIHsKICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICBjYXNlIHNlbGY6Ok9GRkVSX0RJU0NPVU5UOgogICAgY2FzZSBzZWxmOjpPRkZFUl9QRVJDRU5UOgogICAgY2FzZSBzZWxmOjpPRkZFUl9QUk9EVUNUSUQ6CiAgICBjYXNlIHNlbGY6Ok9GRkVSX1BST0RVQ1RTS1U6CiAgICAgICR0aGlzLT5fdHlwZSA9ICR0eXBlOwogICAgICBicmVhazsKICAgICAgCiAgICBkZWZhdWx0OgogICAgICB0aHJvdyBuZXcgQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJ0ludmFsaWQgdHlwZTogJy4kdHlwZS4nIGZvciAnLl9fQ0xBU1NfXyk7CiAgICB9CiAgfQoKICAvKioKICAgKiBHZXQgdGhlIHR5cGUgb2YgbWF0Y2gKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3R5cGUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3R5cGU7CiAgfQoKICAvKioKICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIG9mZmVyCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHNldF9uYW1lKCRuYW1lKQogIHsKICAgICR0aGlzLT5fbmFtZSA9ICRuYW1lOwogIH0KCiAgLyoqCiAgICogUmV0cmlldmUgdGhlIG5hbWUgb2YgdGhlIG1hdGNoCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9uYW1lOwogIH0KCiAgLyoqCiAgICogR2V0IHRoZSB2YWx1ZSBvZiB0aGUgbWF0Y2ggCiAgICogSW4gdGhlIGNhc2Ugb2YgYSBtYXRjaGVkIHByb2R1Y3QgdGhpcyBtYXkgYmUgYSBwcm9kdWN0IGlkIG9yIHNrdS4KICAgKiBJbiB0aGUgY2FzZSBvZiBhIHBlcmNlbnRhZ2UgbWF0Y2ggdGhpcyB3aWxsIGJlIHRoZSBwZXJjZW50YWdlIChhcyBhIGRlY2ltYWwpCiAgICogSW4gdGhlIGNhc2Ugb2YgYSBmaXhlZCBkaXNjb3VudCB0aGlzIHdpbGwgYmUgdGhlIHZhbHVlIG9mIHRoZSBkaXNjb3VudAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRfdmFsKCR2YWwpCiAgewogICAgJHRoaXMtPl92YWwgPSAkdmFsOwogIH0KCiAgLyoqCiAgICogUmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBtYXRjaAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl92YWw7CiAgfQoKICAvKioKICAgKiBTZXQgdGhlIHZhbHVlIG9mIGRpc2NvdW50IChpbiBjdXJyZW5jeSB1bml0cykKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Rpc2NvdW50X2FtdCgkZGlzY291bnRfYW10KQogIHsKICAgICR0aGlzLT5fZGlzY291bnRfYW10ID0gJGRpc2NvdW50X2FtdDsKICB9CgogIC8qKgogICAqIEdldCB0aGUgdmFsdWUgb2YgdGhlIGRpc2NvdW50CiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kaXNjb3VudF9hbXQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2Rpc2NvdW50X2FtdDsKICB9CgogIC8qKgogICAqIFNldCB0aGUgcHJvbW90aW9uIGlkZW50aWZlciB0aGF0IGluZGljYXRlcyB3aGF0IHByb21vdGlvbiB3ZSBhcmUgcmVmZXJyaW5nIHRvCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHNldF9wcm9tbygkcHJvbW8pCiAgewogICAgJHRoaXMtPl9wcm9tbyA9ICRwcm9tbzsKICB9CgogIC8qKgogICAqIEdldCB0aGUgcHJvbW90aW9uIGlkZW50aWZpZXIgCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9tbygpCiAgewogICAgcmV0dXJuICR0aGlzLT5fcHJvbW87CiAgfQoKICAvKioKICAgKiBTZXQgdGhlIHN1cHBsaWVyIG1vZHVsZS4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1cHBsaWVyKCRzdXBwbGllcikKICB7CiAgICAkdGhpcy0+X3N1cHBsaWVyID0gdHJpbSgkc3VwcGxpZXIpOwogIH0KCiAgLyoqCiAgICogR2V0IHRoZSBzdXBwbGllciBtb2R1bGUuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9zdXBwbGllcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5fc3VwcGxpZXI7CiAgfQoKICAvKioKICAgKiBTZXQgdGhlIHN1cHBsaWVyIG1vZHVsZSB1bmlxdWUgaWQKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gc2V0X2l0ZW1pZCgkaXRlbWlkKQogIHsKICAgICR0aGlzLT5faXRlbWlkID0gdHJpbSgkaXRlbWlkKTsKICB9CgogIC8qKgogICAqIEdldCB0aGUgaXRlbWlkIG1vZHVsZSB1bmlxdWUgaWQKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2l0ZW1pZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5faXRlbWlkOwogIH0KCiAgLyoqCiAgICogU2V0IHRoZSB1bmlxdWUgc2t1IG9mIHRoZSBtYXRjaC4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NrdSgkc2t1KQogIHsKICAgICR0aGlzLT5fc2t1ID0gdHJpbSgkc2t1KTsKICB9CgogIC8qKgogICAqIEdldCB0aGUgc2t1IG1vZHVsZSB1bmlxdWUgaWQKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NrdSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fc2t1OwogIH0KCiAgLyoqCiAgICogVGhlIGluZGV4IChpbiB0aGUgY2FydCkgb2YgdGhlIG1hdGNoZWQgaXRlbS4uLiBvciAtMQogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRfY2FydF9pZHgoJGNhcnRfaWR4KQogIHsKICAgICR0aGlzLT5fY2FydF9pZHggPSAoaW50KSRjYXJ0X2lkeDsKICB9CgogIC8qKgogICAqIEdldCB0aGUgaW5kZXggKGluIHRoZSBjYXJ0KSBvZiB0aGUgbWF0Y2hlZCBpdGVtLi4uCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXJ0X2lkeCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fY2FydF9pZHg7CiAgfQoKICAvKioKICAgKiBXZXRoZXIgdGhpcyBtYXRjaCBjYW4gYmUgYXBwbGllZCB0byBvdGhlciBtYXRjaGVzLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRfY3VtdWxhdGl2ZSgkZmxhZykKICB7CiAgICAkdGhpcy0+X2N1bXVsYXRpdmUgPSAoYm9vbCkkZmxhZzsKICB9CgogIC8qKgogICAqIFdldGhlciB0aGlzIG1hdGNoIGNhbiBiZSBhcHBsaWVkIHRvIG90aGVyIG1hdGNoZXMuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jdW11bGF0aXZlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9jdW11bGF0aXZlOwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgovKioKICogQW4gYWJzdHJhY3QgY2xhc3MgdG8gcGVmcm9ybSBtYXRjaGVzIGFnYWluc3QgcHJvbW90aW9ucwogKi8KYWJzdHJhY3QgY2xhc3MgY2dfZWNvbW1fcHJvbW90aW9uX3Rlc3Rlcgp7CiAgY29uc3QgVFlQRV9JTlNUQU5UID0gJ19pbnN0YW50Xyc7CiAgY29uc3QgVFlQRV9DSEVDS09VVCA9ICdfY2hlY2tvdXRfJzsKICBwcml2YXRlICRfdHlwZSA9IHNlbGY6OlRZUEVfQ0hFQ0tPVVQ7CiAgcHJpdmF0ZSAkX2NhcnQ7CiAgcHJpdmF0ZSAkX3Byb2R1Y3Q7CiAgcHJpdmF0ZSAkX2ZldV91aWQ7CiAgcHJpdmF0ZSAkX3NrdTsKICBwcml2YXRlICRfcXVhbnRpdHk7CiAgcHJpdmF0ZSAkX3NraXBfY2FydDsKICBwcml2YXRlICRfaWdub3JlX2Rpc2NvdW50ZWQgPSAwOwoKICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICAvKioKICAgKiBTZXQgdGhlIHR5cGUgb2YgcHJvbW90aW9ucyB0byBtYXRjaCBhZ2FpbnN0CiAgICovCiAgZmluYWwgcHVibGljIGZ1bmN0aW9uIHNldF9wcm9tb190eXBlKCR0eXBlKQogIHsKICAgICBzd2l0Y2goICR0eXBlICkgewogICAgIGNhc2Ugc2VsZjo6VFlQRV9JTlNUQU5UOgogICAgIGNhc2Ugc2VsZjo6VFlQRV9DSEVDS09VVDoKICAgICAgICR0aGlzLT5fdHlwZSA9ICR0eXBlOwogICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignSW52YWxpZCB0eXBlIHNwZWNpZmllZCBmb3IgJy5fX0NMQVNTX18pOwogICAgIH0KICB9CgogIC8qKgogICAqIEdldCB0aGUgcHJvbW90aW9uIHR5cGUgCiAgICovCiAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9tb190eXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl90eXBlOwogIH0KCiAgLyoqCiAgICogU2V0IHRoZSBwcm9kdWN0IHRoYXQgd2UgYXJlIHRlc3RpbmcgYWdhaW5zdAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJvZHVjdChjZ19lY29tbV9wcm9kdWN0aW5mbyAkcHJvZHVjdCkKICB7CiAgICAkdGhpcy0+X3Byb2R1Y3QgPSAkcHJvZHVjdDsKICB9CgogIC8qKgogICAqIFJldHJpZXZlIHRoZSBwcm9kdWN0CiAgICovCiAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9wcm9kdWN0OwogIH0KCiAgLyoqCiAgICogU2V0IHRoZSBjYXJ0IGl0ZW1zIChmb3IgYSBjYXJ0IG1hdGNoKQogICAqIAogICAqIEBwYXJhbSBhcnJheSBBcnJheSBvZiBjZ19lY29tbV9jYXJ0aXRlbSBvYmplY3RzLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRfY2FydCgkaXRlbXMpCiAgewogICAgaWYoIGlzX2FycmF5KCRpdGVtcykgJiYgY291bnQoJGl0ZW1zKSApIHsKICAgICAgZm9yZWFjaCggJGl0ZW1zIGFzICRvbmUgKSB7CglpZiggIWlzX2EoJG9uZSwnY2dfZWNvbW1fY2FydGl0ZW0nKSApIHsKCSAgdGhyb3cgbmV3IENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCdhdHRlbXB0IHRvIHNldF9jYXJ0IGluICcuX19DTEFTU19fLicgd2l0aCBpbnZhbGlkIGRhdGEnKTsKCX0KICAgICAgfQogICAgICAkdGhpcy0+X2NhcnQgPSAkaXRlbXM7CiAgICB9CiAgfQoKICAvKioKICAgKiBHZXQgdGhlIGNhcnQKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcnQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X2NhcnQ7CiAgfQoKICAvKioKICAgKiBTZXQgdGhlIEZFVSB1aWQgdG8gdGVzdCBhZ2FpbnN0CiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHNldF9mZXVfdWlkKCR1aWQpCiAgewogICAgJHRoaXMtPl9mZXVfdWlkID0gJHVpZDsKICB9CgogIC8qKgogICAqIEdldCB0aGUgY3VycmVudCBGRVUgdWlkdAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmV1X3VpZCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fZmV1X3VpZDsKICB9CiAgCiAgLyoqCiAgICogU2V0IHRoZSBjdXJyZW50IHNrdS4gIFRoaXMgb3ZlcnJpZGVzIHRoZSBwcm9kdWN0IHNrdSAoaWYgYW55KQogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRfc2t1KCRza3UpCiAgewogICAgJHRoaXMtPl9za3UgPSB0cmltKCRza3UpOwogIH0KCiAgLyoqCiAgICogUmV0cmlldmUgdGhlIGN1cnJlbnQgc2t1CiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9za3UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+X3NrdTsKICB9CgogIC8qKgogICAqIFNldCB0aGUgZmxhZyB0aGF0IGluZGljYXRlcyB0byBpZ25vcmUgYWxyZWFkeSBkaXNjb3VudGVkIGl0ZW1zLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRfaWdub3JlX2Rpc2NvdW50ZWQoJHZhbCA9IFRSVUUpCiAgewogICAgJHRoaXMtPl9pZ25vcmVfZGlzY291bnRlZCA9IGNtc190b19ib29sKCR2YWwpOwogIH0KCiAgLyoqCiAgICogUmV0cmlldmUgdGhlIGlnbm9yZSBkaXNjb3VudGVkIGl0ZW0gZmxhZy4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2lnbm9yZV9kaXNjb3VudGVkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9pZ25vcmVfZGlzY291bnRlZDsKICB9CgogIC8qKgogICAqIFNldCB0aGUgcXVhbnRpdHkgb2YgdGhlIGN1cnJlbnQgaXRlbS4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gc2V0X3F1YW50aXR5KCRxdWFudGl0eSkKICB7CiAgICAkdGhpcy0+X3F1YW50aXR5ID0gKGludCkkcXVhbnRpdHk7CiAgfQoKICAvKioKICAgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBza3UKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3F1YW50aXR5KCkKICB7CiAgICByZXR1cm4gKGludCkkdGhpcy0+X3F1YW50aXR5OwogIH0KCiAgLyoqCiAgICogU2V0IHRoZSBwcm9kdWN0IHByaWNlLiBUaGlzIG92ZXJyaWRlcyB0aGUgcHJvZHVjdCBwcmljZSAoaWYgYW55KQogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJpY2UoJHByaWNlKQogIHsKICAgICRwcmljZSA9IChmbG9hdCkkcHJpY2U7CiAgICBpZiggJHByaWNlID49IDAgKSB7CiAgICAgICR0aGlzLT5fcHJpY2UgPSAkcHJpY2U7CiAgICB9CiAgfQoKICAvKioKICAgKiBHZXQgdGhlIHByaWNlCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9wcmljZSgpCiAgewogICAgaWYoICFpc19udWxsKCR0aGlzLT5fcHJpY2UpICkgcmV0dXJuICR0aGlzLT5fcHJpY2U7CiAgICBpZiggIWlzX251bGwoJHRoaXMtPl9wcm9kdWN0KSApIHJldHVybiAkdGhpcy0+X3Byb2R1Y3QtPmdldF9wcmljZSgpOwogIH0KCiAgLyoqCiAgICogU2V0IGEgZmxhZyBpbmRpY2F0aW5nIHdldGhlciBjYXJ0IGNvbnRlbnRzIHNob3VsZCBiZSBza2lwcGVkIGluIHRlc3RzCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIHNldF9za2lwX2NhcnQoJHNraXBfY2FydCA9IFRSVUUpCiAgewogICAgJHRoaXMtPl9za2lwX2NhcnQgPSAoYm9vbCkgJHNraXBfY2FydDsKICB9CgogIC8qKgogICAqIEdldCB0aGUgc2tpcF9jYXJ0IGZsYWcKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NraXBfY2FydCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fc2tpcF9jYXJ0OwogIH0KCiAgLyoqCiAgICogdGVzdHMgaWYgcHJvZHVjdCBtYXRjaGVzIGFueSBwcm9tb3Rpb25zIHRoYXQgbWF0Y2ggc2V0IGNyaXRlcmlhLgogICAqIChwcm9kdWN0IG11c3QgYmUgc2V0KS4KICAgKgogICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvbW90aW9uX21hdGNoCiAgICovCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGZpbmRfbWF0Y2goKTsKCiAgLyoqCiAgICogdGVzdCBpZiB0aGUgcHJvZHVjdCAob3Igc2t1KSBtYXRjaGVzIHRoZSBvZmZlciBwYXJ0CiAgICogb2YgYSBwcm9tb3Rpb24sIGFuZCBpZiB0aGUgY2FydCBjb250ZW50cyBtYXRjaCB0aGUgY29uZGl0aW9ucwogICAqIG9mIHRoZSBvZmZlci4KICAgKgogICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvbW90aW9uX21hdGNoCiAgICovCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGZpbmRfb2ZmZXJfbWF0Y2goKTsKCiAgLyoqCiAgICogRmluZCB0aGUgZmlyc3QgcHJvbW90aW9uIHRoYXQgbWF0Y2hlcyB0aGUgaXRlbXMgaW4gdGhlIGNhcnQKICAgKgogICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvbW90aW9uX21hdGNoCiAgICovCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGZpbmRfY2FydF9tYXRjaCgpOwoKICAvKioKICAgKiBGaW5kIGFsbCBwcm9tb3Rpb25zIHRoYXQgbWF0Y2hlcyB0aGUgaXRlbXMgaW4gdGhlIGNhcnQKICAgKgogICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvbW90aW9uX21hdGNoCiAgICovCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGZpbmRfYWxsX2NhcnRfbWF0Y2hlcygpOwp9IC8vIGVuZCBvZiBjbGFzcwoKIyAKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_shipping_package.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCi8vIGEgcGFja2FnZSBjb25zaXN0cyBvZiBudW1lcm91cyBpdGVtcy4KLy8gYSBjb3N0LgovLyBhIHRyYWNraW5nIG51bWJlci4KCmNsYXNzIGNnX2Vjb21tX3NoaXBwaW5nX3BhY2thZ2UKewp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_sourcetranslator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmFic3RyYWN0IGNsYXNzIGNnX2Vjb21tX3NvdXJjZXRyYW5zbGF0b3IKewogIHByaXZhdGUgJF9wYXJhbXM7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcGFyYW1zKQogIHsKICAgIGlmKCBpc19hcnJheSgkcGFyYW1zKSAmJiBjb3VudCgkcGFyYW1zKSApIHsKICAgICAgJHRoaXMtPl9wYXJhbXMgPSAkcGFyYW1zOwogICAgfQogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9zb3VyY2UoKQogIHsKICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X3BhcmFtcykgJiYgaXNzZXQoJHRoaXMtPl9wYXJhbXNbJ3NvdXJjZSddKSApIHsKICAgICAgcmV0dXJuICR0aGlzLT5fcGFyYW1zWydzb3VyY2UnXTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2t1KCkKICB7CiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9wYXJhbXMpICYmIGlzc2V0KCR0aGlzLT5fcGFyYW1zWydza3UnXSkgKSB7CiAgICAgIHJldHVybiAkdGhpcy0+X3BhcmFtc1snc2t1J107CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3RfaWQoKQogIHsKICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X3BhcmFtcykgJiYgaXNzZXQoJHRoaXMtPl9wYXJhbXNbJ3Byb2R1Y3RfaWQnXSkgKSB7CiAgICAgIHJldHVybiAkdGhpcy0+X3BhcmFtc1sncHJvZHVjdF9pZCddOwogICAgfQogIH0KCiAgLyoqIGRlcHJlY2F0ZWQgKiovCiAgYWJzdHJhY3QgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2luZm8oJHByb2R1Y3RfaWQpOwoKICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3QoKTsKfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNnX2Vjb21tX3V0aWxzCnsKICAgIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gaXNfY3JlZGl0Y2FyZF9udW1iZXIoJHN0cikKICAgIHsKICAgICAgICAvLyB1c2VzIHRoZSBsdWhuL21vZC0xMCBhbGdvcml0aG0uCiAgICAgICAgJG51bWJlciA9IHByZWdfcmVwbGFjZSgnL1xELycsICcnLCAkc3RyKTsKICAgICAgICAkbGVuID0gc3RybGVuKCRudW1iZXIpOwogICAgICAgICRwYXJpdHkgPSAkbGVuICUgMjsKCiAgICAgICAgJHRvdGFsID0gMDsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCAkbGVuOyAkaSsrICkgewogICAgICAgICAgICAkZGlnaXQgPSAkbnVtYmVyWyRpXTsKICAgICAgICAgICAgaWYoICRpICUgMiA9PSAkcGFyaXR5ICkgewogICAgICAgICAgICAgICAgJGRpZ2l0ICo9IDI7CiAgICAgICAgICAgICAgICBpZiggJGRpZ2l0ID4gOSApICRkaWdpdCAtPSA5OwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0b3RhbCArPSAkZGlnaXQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiAoJHRvdGFsICUxMCA9PSAwKSA/IFRSVUUgOiBGQUxTRTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.cgecomm_cart_module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmludGVyZmFjZSBjZ2Vjb21tX2NhcnRfbW9kdWxlCnsKICBwdWJsaWMgZnVuY3Rpb24gRXJhc2VDYXJ0KCk7CgogIHB1YmxpYyBmdW5jdGlvbiAmR2V0QmFza2V0SXRlbXMoJG5hbWUsJGZldV91aWQgPSAtMSk7CgogIHB1YmxpYyBmdW5jdGlvbiBHZXRCYXNrZXREZXRhaWxzKCRuYW1lLCRmZXVfdWlkID0gLTEpOwoKICBwdWJsaWMgZnVuY3Rpb24gR2V0QmFza2V0TmFtZXMoJGZldV91aWQ9JycpOwoKICBwdWJsaWMgZnVuY3Rpb24gR2V0TnVtQmFza2V0cygpOwoKICBwdWJsaWMgZnVuY3Rpb24gR2V0TnVtSXRlbXMoKTsKCiAgcHVibGljIGZ1bmN0aW9uIEdldFRvdGFsKCk7CgogIHB1YmxpYyBmdW5jdGlvbiBHZXRUb3RhbFdlaWdodCgpOwoKICBwdWJsaWMgZnVuY3Rpb24gQWRkQ2FydEl0ZW0oJiRvYmosJGJhc2tldF9uYW1lID0gJycpOwoKICBwdWJsaWMgZnVuY3Rpb24gJkdldEl0ZW1zKCk7CgogIHB1YmxpYyBmdW5jdGlvbiBTZXRJdGVtcygkaXRlbXMpOwoKICBwdWJsaWMgZnVuY3Rpb24gSXNDYXJ0TW9kdWxlKCk7CgogIHB1YmxpYyBmdW5jdGlvbiBTdXBwb3J0c1NoaXBwaW5nSW5mbygpOwoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FkZHRvY2FydF9mb3JtKCRwYXJhbXMpOwp9CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.cg_ecomm_shipping_carrier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmludGVyZmFjZSBjZ19lY29tbV9zaGlwcGluZ19jYXJyaWVyCnsKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NvdXJjZShjZ2VfYWRkcmVzcyAkc291cmNlKTsKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Rlc3RpbmF0aW9uKGNnZV9hZGRyZXNzICRkZXN0KTsKCiAgcHVibGljIGZ1bmN0aW9uIGFkZF9wYWNrYWdlKGNnX2Vjb21tX3BhY2thZ2luZ19ib3ggJGJveCk7CiAgLyoKICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGNnX2Vjb21tX3NoaXBwaW5nX2VzdGltYXRlIG9iamVjdHMKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZXN0aW1hdGVfc2hpcHBpbmcoKTsKCiAgLyoKICAgKiBPbGQgZnVuY3Rpb24gZm9yIGRvaW5nIHRoZSBzYW1lIHRoaW5nIChhY2NlcHRzIGNhcnQgaXRlbXMpCiAgICogKGRlcHJlY2F0ZWQpCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIENhbGN1bGF0ZVNoaXBwaW5nKCRkYXRhKTsKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9lcnJvcnMoKTsKCiAgcHVibGljIGZ1bmN0aW9uIElzU2hpcHBpbmdNb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9Cn0gLy8gZW5kIG9mIGludGVyZmFjZQoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.payment_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR0Vjb21tZXJjZUJhc2U7CgppbnRlcmZhY2UgcGF5bWVudF9nYXRld2F5CnsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX0FQUFJPVkVEID0gJ3BheW1lbnRfYXBwcm92ZWQnOwogICAgY29uc3QgUEFZTUVOVF9TVEFUVVNfREVDTElORUQgPSAncGF5bWVudF9kZWNsaW5lZCc7CiAgICBjb25zdCBQQVlNRU5UX1NUQVRVU19FUlJPUiA9ICdwYXltZW50X2Vycm9yJzsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX0NBTkNFTExFRCA9ICdwYXltZW50X2NhbmNlbGxlZCc7CiAgICBjb25zdCBQQVlNRU5UX1NUQVRVU19PVEhFUiA9ICdwYXltZW50X290aGVyJzsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX1BFTkRJTkcgPSAncGF5bWVudF9wZW5kaW5nJzsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX0FVVEhPUklaRUQgPSAncGF5bWVudF9hdXRob3JpemVkJzsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX05PTkUgPSAncGF5bWVudF9ub25lJzsKCiAgICBjb25zdCBUUkFOU19DQVBUVVJFID0gJ1RSQU5TX0NBUFRVUkUnOwogICAgY29uc3QgVFJBTlNfVk9JRCA9ICdUUkFOU19WT0lEJzsKICAgIGNvbnN0IFRSQU5TX0NSRURJVCA9ICdUUkFOU19DUkVESVQnOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGUgd2V0aGVyIHRoZSBnYXRld2F5IG1vZHVsZSBhbGxvd3MgaW5zdGFudCBjaGVja291dC4KICAgICAqCiAgICAgKiBJbnN0YW50IGNoZWNrb3V0IGdhdGV3YXlzIGFzayB0aGUgdXNlciBmb3IgdGhlaXIgYmlsbGluZyBhbmQgc2hpcHBpbmcgaW5mb3JtYXRpb24KICAgICAqIGFuZCB0aGlzIGluZm9ybWF0aW9uIGlzIHJldHVybmVkIGZyb20gdGhlIGdhdGV3YXkgdG8gZmlsbCB0aGUgb3JkZXIuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEFsbG93c0luc3RhbnRDaGVja291dCgpOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3ZXRoZXIgdGhlIGdhdGV3YXkgbW9kdWxlCiAgICAgKiByZXF1aXJlcyBjcmVkaXQgY2FyZCBpbmZvcm1hdGlvbiBiZSBzdWJtaXR0ZWQgdG8gdGhlIGdhdGV5YXkuCiAgICAgKgogICAgICogSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgb3JkZXIgcHJvY2Vzc29yIG1vZHVsZXMgbWF5IHByb3ZpZGUgYQogICAgICogbWVjaGFuaXNtIHRvIGFsbG93IGEgc2l0ZSB2aXNpdG9yIHRvIGlucHV0IGNyZWRpdCBjYXJkIGluZm9ybWF0aW9uLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXF1aXJlc0NyZWRpdENhcmRJbmZvKCk7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwYXltZW50IGdhdGVheSBtb2R1bGUKICAgICAqIFN1cHBvcnRzIHRoZSB0b2tlbiBtZWNoYW5pc20gZm9yIG9mZmxpbmUgY2hhcmdlcwogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTdXBwb3J0c09mZmxpbmVDaGFyZ2VzKCk7CgogICAgLyoqCiAgICAgKiBUZXN0IGlmIHRoZSBnYXRld2F5IGlzIHByb3Blcmx5IGNvbmZpZ3VyZWQgYW5kIHJlYWR5IHRvIHVzZQogICAgICogYnkgYW4gb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIElzQ29uZmlndXJlZCgpOwoKICAgIC8qKgogICAgICogRG9lcyB0aGlzIG1vZHVsZSByZXF1aXJlIFNTTCBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGNvbW11bmljYXRlCiAgICAgKiB3aXRoIHRoZSByZW1vdGUgZ2F0ZXdheQogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXF1aXJlc1NTTCgpOwoKICAgIC8qKgogICAgICogRG9lcyB0aGlzIGdhdGV3YXkgcmVxdWlyZSBzaGlwcGluZyBhZGRyZXNzIGluZm9ybWF0aW9uCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFJlcXVpcmVzU2hpcHBpbmdJbmZvKCk7CgogICAgLyoqCiAgICAgKiBEb2VzIHRoaXMgZ2F0ZXdheSByZXF1aXJlIGJpbGxpbmcgYWRkcmVzcyBpbmZvcm1hdGlvbgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXF1aXJlc0JpbGxpbmdJbmZvKCk7CgogICAgLyoqCiAgICAgKiBEb2VzIHRoaXMgZ2F0ZXdheSBzdXBwb3J0IGlzc3VpbmcgY3JlZGl0IHRyYW5zYWN0aW9ucy4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU3VwcG9ydHNSZWZ1bmRzKCk7CgogICAgLyoqCiAgICAgKiBTYXZlIHRoZSBpbmZvcm1hdGlvbiBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBnYXRld2F5IG1vZHVsZSBpbnRvCiAgICAgKiBhIHRlbXBvcmFyeSAoYnV0IHNlY3VyZSkgc3RhdGUgZm9yIGxhdGVyIHJldHJpZXZhbCBieSBvdGhlciBhY3Rpb25zCiAgICAgKiBvZiB0aGlzIG1vZHVsZS4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgdXNlZCB0byBzdG9yZSBzdGF0ZSBpbmZvcm1hdGlvbiBiZWZvcmUgdGhlIHZpc2l0b3IKICAgICAqIGlzIHJlZGlyZWN0ZWQgdG8gYSBob3N0ZWQgZ2F0ZXdheS4gIEl0IGNhbiB0aGVuIGJlIHJlc3RvcmVkIGFmdGVyIHRoZSB2aXNpdG9yCiAgICAgKiBoYXMgcmV0dXJuZWQgZnJvbSB0aGUgdGhpcmQgcGFydHkgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBZb3UgbWF5IHVzZSBhbnkgc2VjdXJlIGVuY3J5cHRpb24gb3Igc3RvcmFnZSBtZWNoYW5pc20geW91IHdpc2guCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcGFyYW0gYm9vbGVhbiBTaG91bGQgdGhlIGRhdGEgYmUgZW5jcnlwdGVkCiAgICAgKiBAcGFyYW0gc3RyaW5nICBBbiBvcHRpb25hbCBlbmNyeXB0aW9uIGtleQogICAgICogQHJldHVybiBzdHJpbmcgVGhlIGVuY3J5cHRpb24ga2V5IGlmIHRoZSBkYXRhIHdhcyBlbmNyeXB0ZWQsIG9yIG51bGwuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTYXZlU3RhdGUoJGVuY3J5cHQgPSBmYWxzZSwka2V5ID0gJycpOwoKICAgIC8qKgogICAgICogUmVzdG9yZSBzYXZlZCBtb2R1bGUgc3RhdGUgaW5mb3JtYXRpb24gZnJvbSBhbiBlbmNyeXB0ZWQvc2VjdXJlIHN0b3JhZ2UgbG9jYXRpb24KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSBzdHJpbmcgIEFuIG9wdGlvbmFsIGVuY3J5cHRpb24ga2V5CiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gaW5kaWNhdGVzIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFJlc3RvcmVTdGF0ZSgka2V5ID0gJycpOwoKICAgIC8qKgogICAgICogU2V0IGNyZWRpdCBjYXJkIGluZm9ybWF0aW9uIGludG8gdGhlIG1vZHVsZS4KICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlIHRvIHByb3ZpZGUgaW5mb3JtYXRpb24KICAgICAqIHRoYXQgbXVzdCBiZSBzZW50IHRvIHRoZSBwYXltZW50IGdhdGV3YXkuCiAgICAgKgogICAgICogVGhlIGdhdGV3YXkgbW9kdWxlIHNob3VsZCBzdG9yZSB0aGlzIGRhdGEgZm9yIGxhdGVyIHNlbmRpbmcgdG8gdGhlIGhvc3QuCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcGFyYW0gc3RyaW5nIENyZWRpdCBjYXJkIG51bWJlci4KICAgICAqIEBwYXJhbSBpbnRlZ2VyIENyZWRpdCBjYXJkIGV4cGlyeSBkYXRlCiAgICAgKiBAcGFyYW0gc3RyaW5nICBDcmVkaXQgY2FyZCB2ZXJpZmljYXRpb24gY29kZS4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0Q3JlZGl0Q2FyZEluZm8oJGNjbnVtYmVyLCRjY2V4cCwkY2N2Y29kZSk7CgogICAgLyoqCiAgICAgKiBHZXQgcmF3ICh1c2VyIGVudGVyZWQpIGNyZWRpdCBjYXJkIGluZm8uCiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IHdpdGggdGhyZWUgZWxlbWVudHMgKGNjbnVtYmVyLCBjY2V4cCwgYW5kIGNjdmNvZGUpLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFJhd0NyZWRpdENhcmRJbmZvKCk7CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHByb2Nlc3NlZCBjcmVkaXQgY2FyZCBpbmZvLgogICAgICogVGhpcyBpcyBzdWl0YWJsZSBmb3IgdXNlIGJ5IHBheW1lbnQgZ2F0ZXdheXMuCiAgICAgKgogICAgICogUmV0dXJucyBhbiBhcnJheSB3aXRoIHRocmVlIGVsZW1lbnRzICh4X2NhcmRfbnVtLHhfZXhwX2RhdGUsIGFuZCB4X2NhcmRfY29kZSkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFByb2Nlc3NlZENyZWRpdENhcmRJbmZvKCk7CgogICAgLyoqCiAgICAgKiBTZXQgYSBwYXltZW50IGlkZW50aWZpZXIKICAgICAqCiAgICAgKiBUaGUgcGF5bWVudCBpZGVudGlmaWVyIHByb3ZpZGVzIG9yZGVyIHByb2Nlc3Npbmcgc3BlY2lmaWMgaW5mb3JtYXRpb24gdG8KICAgICAqIHRpZSB0aGUgaW5jb21pbmcgdHJhbnNhY3Rpb24gdG8gYW4gZXhpc3RpbmcgcGF5bWVudCB0cmFuc2FjdGlvbi4gIFRoaXMKICAgICAqIHZhcmlhYmxlIG1heSBiZSBudWxsIG9yIGVtcHR5IGlmIGl0IGlzIGEgbmV3IHRyYW5zYWN0aW9uLCBhbmQgaGFzIG5vCiAgICAgKiByZWxhdGlvbiB0byBhIHRyYW5zYWN0aW9uIGlkIHByb3ZpZGVkIGJ5IHRoZSBnYXRld2F5LgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIGdhdGV3YXkgbW9kdWxlIHRvIHByb3ZpZGUgaW5mb3JtYXRpb24KICAgICAqIHRvIHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSBhZnRlciBhIHRyYW5zYWN0aW9uIGhhcyBiZWVuIHJlY2VpdmVkLgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQGRlcHJlY2F0ZWQKICAgICAqIEBwYXJhbSBzdHJpbmcgUGF5bWVudCBJRAogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRQYXltZW50SWQoJHBheW1lbnRfaWQpOwoKICAgIC8qKgogICAgICogUmV0cmlldmVkIGEgcGF5bWVudCBpZGVudGlmaWVyCiAgICAgKgogICAgICogVGhlIHBheW1lbnQgaWRlbnRpZmllciBwcm92aWRlcyBvcmRlciBwcm9jZXNzaW5nIHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCiAgICAgKiB0aWUgdGhlIGluY29taW5nIHRyYW5zYWN0aW9uIHRvIGFuIGV4aXN0aW5nIHBheW1lbnQgdHJhbnNhY3Rpb24uICBUaGlzCiAgICAgKiB2YXJpYWJsZSBtYXkgYmUgbnVsbCBvciBlbXB0eSBpZiBpdCBpcyBhIG5ldyB0cmFuc2FjdGlvbiwgYW5kIGhhcyBubwogICAgICogcmVsYXRpb24gdG8gYSB0cmFuc2FjdGlvbiBpZCBwcm92aWRlZCBieSB0aGUgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byByZXRyaWV2ZSBpbmZvcm1hdGlvbgogICAgICogYWJvdXQgYSBwYXltZW50IGlkZW50aWZpZXIgKGlmIG9uZSBleGlzdHMpLgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQGRlcHJlY2F0ZWQKICAgICAqIEBwYXJhbSBpbnRlZ2VyIFBheW1lbnQgSUQKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0UGF5bWVudElkKCk7CgogICAgLyoqCiAgICAgKiBTZXQgYSBjdXJyZW5jeSBjb2RlLgogICAgICoKICAgICAqIEFzc29jaWF0ZSBhIGN1cnJlbmN5IGNvZGUgd2l0aCB0aGUgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGJlIHNlbnQgdG8gdGhlIGdhdGV3YXkuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgdG8gYWRkIGN1cnJlbmN5IGluZm9ybWF0aW9uCiAgICAgKiB0byB0aGUgbGlzdCBvZiBpbmZvcm1hdGlvbiB0aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgaG9zdC4KICAgICAqCiAgICAgKiBUaGUgZ2F0ZXdheSBtb2R1bGUgc2hvdWxkIHN0b3JlIHRoaXMgZGF0YSBmb3IgbGF0ZXIgc2VuZGluZyB0byB0aGUgaG9zdC4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBjdXJyZW5jeSBjb2RlICh1c3VhbGx5IHR3byBvciB0aHJlZSBkaWdpdHMpCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldEN1cnJlbmN5Q29kZSgkY29kZSA9ICdVU0QnKTsKCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSBjdXJyZW5jeSBjb2RlLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEN1cnJlbmN5Q29kZSgpOwoKICAgIC8qKgogICAgICogU2V0IHdlaWdodCB1bml0cwogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlIHRvIGFkZCB3ZWlnaHQgdW5pdHMKICAgICAqIHRvIHRoZSBsaXN0IG9mIGluZm9ybWF0aW9uIHRoYXQgd2lsbCBiZSBzZW50IHRvIHRoZSBob3N0LgogICAgICoKICAgICAqIFRoZSBnYXRld2F5IG1vZHVsZSBzaG91bGQgc3RvcmUgdGhpcyBkYXRhIGZvciBsYXRlciBzZW5kaW5nIHRvIHRoZSBob3N0LgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHBhcmFtIHN0cmluZyB0aGUgd2VpZ2h0IHVuaXRzLiAgZWl0aGVyICdsYnMnIG9yICdrZycKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0V2VpZ2h0VW5pdHMoJHVuaXRzID0gJ2xicycpOwoKICAgIC8qKgogICAgICogUmV0cmlldmUgdGhlIHdlaWdodCB1bml0czsKICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRXZWlnaHRVbml0cygpOwoKICAgIC8qKgogICAgICogU2V0IERlc3RpbmF0aW9uIFVSTC4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byBzcGVjaWZ5IHdoZXJlCiAgICAgKiB0aGUgY3VzdG9tZXIgc2hvdWxkIGJlIHJldHVybmVkIHRvIChpZiBwb3NzaWJsZSkgb25jZSB0aGUgcGF5bWVudCBnYXRld2F5IHRyYW5zYWN0aW9uCiAgICAgKiBpcyBjb21wbGV0ZS4KICAgICAqCiAgICAgKiBUaGUgZ2F0ZXdheSBtb2R1bGUgc2hvdWxkIHN0b3JlIHRoaXMgZGF0YSBmb3IgdXNlIGFmdGVyIGdhdGV3YXkgY29tbXVuaWNhdGlvbnMgYXJlCiAgICAgKiBjb21wbGV0ZS4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSBzdHJpbmcgdGhlIHdlaWdodCB1bml0cy4gIGVpdGhlciAnbGJzJyBvciAna2cnCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldERlc3RpbmF0aW9uKCR1cmwpOwoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZXN0aW5hdGlvbiBVUkwsCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVzdGluYXRpb24oKTsKCiAgICAvKioKICAgICAqIEFkZCBhIGNhcnQgaXRlbS4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byBhZGQgY2FydCBpbmZvcm1hdGlvbgogICAgICogdG8gdGhlIGluZm9ybWF0aW9uIHRoYXQgc2hvdWxkIGJlIHNlbnQgdG8gdGhlIHBheW1lbnQgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBUaGUgZ2F0ZXdheSBtb2R1bGUgc2hvdWxkIHN0b3JlIHRoaXMgZGF0YSBmb3IgbGF0ZXIgc2VuZGluZyB0byB0aGUgaG9zdC4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSBzdHJpbmcgVGhlIGl0ZW0gbmFtZS4KICAgICAqIEBwYXJhbSBzdHJpbmcgVGhlIGl0ZW0gbmFtZSAobWF5YmUgYSBza3UpCiAgICAgKiBAcGFyYW0gaW50ZWdlciBRdWFudGl0eQogICAgICogQHBhcmFtIGZsb2F0ICAgVGhlIHdlaWdodCBvZiB0aGUgaXRlbXMKICAgICAqIEBwYXJhbSBmbG9hdCAgIFRoZSB1bml0IHByaWNlIG9mIHRoZSBpdGVtLgogICAgICogQHBhcmFtIGZsb2F0ICAgQW4gb3B0aW9uYWwgdGF4IGFtb3VudCAoZGVwcmVjYXRlZCkKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gQWRkSXRlbSgkbmFtZSwkbnVtYmVyLCRxdWFudGl0eSwkd2VpZ2h0LCRhbW91bnQsJHRheCA9ICcnKTsKCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSBsaXN0IG9mIGl0ZW1zIChpZiBhbnkpIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9yZGVyLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEl0ZW1zKCk7CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIG9yZGVyIG9iamVjdC4KICAgICAqIGlmIHRoaXMgaXMgc2V0LiBvdGhlciBtZXRob2RzIG1heSBleHRyYWN0IGRhdGEgdXNpbmcgdGhlIG9yZGVyIG9iamVjdC4KICAgICAqCiAgICAgKiBAdG9kbyBVc2UgYSBiYXNlIG9iamVjdCBpbnN0ZWFkIG9mIG9yZGVyc19vcmRlcgogICAgICogQHBhcmFtIFxvcmRlcnNfb3JkZXIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldE9yZGVyT2JqZWN0KFxvcmRlcnNfb3JkZXIgJG9yZGVyKTsKCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgb3JkZXIgb2JqZWN0IChpZiBzZXQpCiAgICAgKgogICAgICogQHJldHVybiBcb3JkZXJzX29yZGVyCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3JkZXJfb2JqZWN0KCk7CgogICAgLyoqCiAgICAgKiBTZXQgYSBkZXNjcmlwdGlvbiBmb3IgdGhlIHdob2xlIG9yZGVyLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlIHRvIHByb3ZpZGUgYSBnbG9iYWwKICAgICAqIGRlc2NyaXB0aW9uIGZvciB0aGUgb3JkZXIuCiAgICAgKgogICAgICogVGhlIGdhdGV3YXkgbW9kdWxlIHNob3VsZCBzdG9yZSB0aGlzIGRhdGEgZm9yIGxhdGVyIHNlbmRpbmcgdG8gdGhlIGhvc3QuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBkZXNjcmlwdGlvbi4KICAgICAqIEByZXR1cm4gdm9pZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldE9yZGVyRGVzY3JpcHRpb24oJHN0cik7CgogICAgLyoqCiAgICAgKiBHZXQgYSBkZXNjcmlwdGlvbiBmb3IgdGhlIHdob2xlIG9yZGVyLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldE9yZGVyRGVzY3JpcHRpb24oKTsKCiAgICAvKioKICAgICAqIFNldCB0aGUgaWQgZm9yIHRoaXMgb3JkZXIuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkb3JkZXJpZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0T3JkZXJJZCgkb3JkZXJpZCk7CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGlkIGZvciB0aGlzIG9yZGVyLgogICAgICoKICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRPcmRlcklkKCk7CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIG9yZGVyIGludm9pY2Ugc3RyaW5nLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlIHRvIHNldCBhbiBpbnZvaWNlIGlkZW50aWZlci4KICAgICAqCiAgICAgKiBUaGUgZ2F0ZXdheSBtb2R1bGUgc2hvdWxkIHN0b3JlIHRoaXMgZGF0YSBmb3IgbGF0ZXIgc2VuZGluZyB0byB0aGUgaG9zdC4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSBzdHJpbmcgSW52b2ljZSBsYWJlbC4KICAgICAqIEByZXR1cm4gdm9pZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldEludm9pY2UoJGludm9pY2UpOwoKICAgIC8qKgogICAgICogR2V0IHRoZSBvcmRlciBpbnZvaWNlIHN0cmluZy4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0SW52b2ljZSgpOwoKICAgIC8qKgogICAgICogU2V0IGFuIG9wdGlvbmFsIGJpbGxpbmcgYWRkcmVzcyBmb3IgdGhpcyBvcmRlci4KICAgICAqIE1vc3QgcGF5bWVudCBnYXRld2F5cyByZXF1aXJlIHNvbWUgc29ydCBvZiBiaWxsaW5nIGFkZHJlc3MKICAgICAqCiAgICAgKiBAcGFyYW0gb3JkZXJzX2FkZHJlc3MgJGJpbGxpbmdfYWRkeSBUaGUgYmlsbGluZyBhZGRyZXNzIChtdXN0IGJlIHZhbGlkKS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldEJpbGxpbmdBZGRyZXNzKFxjZ2VfYWRkcmVzcyAkYmlsbGluZ19hZGR5KTsKCiAgICAvKioKICAgICAqIEdldCBhIGJpbGxpbmcgYWRkcmVzcyBmb3IgdGhpcyB0cmFuc2FjdGlvbiwgaWYgb25lIGlzIGF2YWlsYWJsZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIFxjZ2VfYWRkcmVzc3xudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRCaWxsaW5nQWRkcmVzcygpOwoKICAgIC8qKgogICAgICogU2V0IGFuIG9wdGlvbmFsIHNoaXBwaW5nIGFkZHJlc3MgZm9yIHRoaXMgb3JkZXIuCiAgICAgKiBNb3N0IHBheW1lbnQgZ2F0ZXdheXMgcmVxdWlyZSBzb21lIHNvcnQgb2Ygc2hpcHBpbmcgYWRkcmVzcwogICAgICoKICAgICAqIEBwYXJhbSBcY2dlX2FkZHJlc3MgJHNoaXBwaW5nX2FkZHkgVGhlIHNoaXBwaW5nIGFkZHJlc3MgKG11c3QgYmUgdmFsaWQpLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0U2hpcHBpbmdBZGRyZXNzKFxjZ2VfYWRkcmVzcyAkc2hpcHBpbmdfYWRkeSk7CgogICAgLyoqCiAgICAgKiBHZXQgYSBzaGlwcGluZyBhZGRyZXNzIGZvciB0aGlzIHRyYW5zYWN0aW9uLCBpZiBvbmUgaXMgYXZhaWxhYmxlLgogICAgICoKICAgICAqIEByZXR1cm4gXGNnZV9hZGRyZXNzfG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFNoaXBwaW5nQWRkcmVzcygpOwoKICAgIC8qKgogICAgICogU2V0IHRoZSBhbW91bnQgb2YgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSBmbG9hdCAkdmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvbkFtb3VudCgkdmFsKTsKCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSB0cmFuc2FjdGlvbiBhbW91bnQuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgd2hlbiBoYW5kbGluZyB0cmFuc2FjdGlvbgogICAgICogaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFiYXN0cmFjdC4KICAgICAqIEByZXR1cm4gZmxvYXQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFRyYW5zYWN0aW9uQW1vdW50KCk7CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlcyB3aGVuIHByZXBhcmluZyB0byBwcm9jZXNzIGEgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBUaGUgZGVmYXVsdCB0cmFuc2FjdGlvbiB0eXBlIHNob3VsZCBiZSBDR1BheW1lbnRHYXRld2F5QmFzZTo6VFJBTlNfQ0FQVFVSRQogICAgICogb3RoZXIgdmFsaWQgdHlwZXMgYXJlIENHUGF5bWVudEdhdGV3YXlCYXNlOjpUUkFOU19WT0lEIGFuZCBDR1BheW1lbnRHYXRld2F5QmFzZTo6VFJBTlNfQ1JFRElULgogICAgICogSW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlcyBhcmUgaWdub3JlZC4KICAgICAqCiAgICAgKiBAYXV0aG9yIGNhbGd1eTEwMDAKICAgICAqIEBzaW5jZSAgMS4wLjExCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvblR5cGUoJHR5cGUpOwoKICAgIC8qKgogICAgICogR2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvblR5cGUoKTsKCiAgICAvKioKICAgICAqIFNldHMgdGhlIFRyYW5zYWN0aW9uaWQgcmV0cmlldmVkIGZyb20gdGhlIGdhdGV3YXkgaG9zdCBpbnRvIHRoZSBtb2R1bGUuCiAgICAgKgogICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgZ2F0ZXdheSBtb2R1bGUgYWZ0ZXIgcmVjZWl2aW5nIHRyYW5zYWN0aW9uCiAgICAgKiBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBAYWJhc3RyYWN0LgogICAgICogQHBhcmFtIHN0cmluZyBUcmFuc2FjdGlvbiBJRC4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25JZCgkdGlkKTsKCiAgICAvKioKICAgICAqIFNldHMgdGhlIHRyYW5zYWN0aW9uIGFzIGNhbmNlbGxlZC4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIGJ5IHRoZSBnYXRld2F5IG1vZHVsZSBhZnRlciByZWNlaXZpbmcgdHJhbnNhY3Rpb24KICAgICAqIGluZm9ybWF0aW9uIGlmIHRoZSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBjYW5jZWxsZWQgYnkgdGhlIHVzZXIuCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFiYXN0cmFjdC4KICAgICAqIEBwYXJhbSBzdHJpbmcgYW4gb3B0aW9uYWwgbWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgc3RhdHVzLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRDYW5jZWxsZWQoJG1lc3NhZ2UgPSBudWxsKTsKCiAgICAvKioKICAgICAqIFNldHMgdGhlIHRyYW5zYWN0aW9uIHN0YXR1cyB0byBlcnJvci4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIGJ5IHRoZSBnYXRld2F5IG1vZHVsZSBhZnRlciByZWNlaXZpbmcgdHJhbnNhY3Rpb24KICAgICAqIGluZm9ybWF0aW9uIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdpdGggdGhlIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYmFzdHJhY3QuCiAgICAgKiBAcGFyYW0gc3RyaW5nIGFuIG9wdGlvbmFsIG1lc3NhZ2UgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHN0YXR1cy4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25FcnJvcigkbWVzc2FnZSk7CgogICAgLyoqCiAgICAgKiBSZXNldCB0aGUgaW5mb3JtYXRpb24gc3RvcmVkIHdpdGggdGhlIGdhdGV3YXkgbW9kdWxlLgogICAgICoKICAgICAqIEBhYmFzdHJhY3QuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFJlc2V0KCk7CgogICAgLyoqCiAgICAgKiBTZXRzIHRoZSB0cmFuc2FjdGlvbiBhcyBjYW5jZWxsZWQuCiAgICAgKgogICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgZ2F0ZXdheSBtb2R1bGUgYWZ0ZXIgcmVjZWl2aW5nIHRyYW5zYWN0aW9uCiAgICAgKiBpbmZvcm1hdGlvbiBpZiB0aGUgdHJhbnNhY3Rpb24gaGFzIGJlZW4gZGVjbGluZWQuCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFiYXN0cmFjdC4KICAgICAqIEBwYXJhbSBzdHJpbmcgYW4gb3B0aW9uYWwgbWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgc3RhdHVzLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXREZWNsaW5lZCgkbWVzc2FnZSA9IG51bGwpOwoKICAgIC8qKgogICAgICogU2V0cyB0aGUgdGhlIHRyYW5zYWN0aW9uIHN0YXR1cy4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBnYXRld2F5IG1vZHVsZSBhZnRlciByZWNlaXZpbmcgdHJhbnNhY3Rpb24KICAgICAqIGluZm9ybWF0aW9uIGZyb20gdGhlIGdhdGV3YXkgaG9zdC4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJhc3RyYWN0LgogICAgICogQHBhcmFtIHN0cmluZyBhbiBvcHRpb25hbCBtZXNzYWdlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBzdGF0dXMuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFRyYW5zYWN0aW9uU3RhdHVzKCRzdGF0dXMpOwoKICAgICAvKioKICAgICAgKiBSZXRyaWV2ZSB0aGUgdHJhbnNhY3Rpb24gc3RhdHVzCiAgICAgICoKICAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB3aGVuIGhhbmRsaW5nIHRyYW5zYWN0aW9uCiAgICAgICogaW5mb3JtYXRpb24uCiAgICAgICoKICAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAgKgogICAgICAqIEBhYmFzdHJhY3QuCiAgICAgICogQHJldHVybiBzdHJpbmcKICAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvblN0YXR1cygpOwoKICAgIC8qKgogICAgICogU2V0IG1pc2MgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleTsKICAgICAqIEBwYXJhbSBtaXhlZCAkdmFsdWU7CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvbkRhdGEoJGtleSwkdmFsdWUpOwoKICAgIC8qKgogICAgICogR2V0IHRoZSBrZXlzIG9mIG1pc2MgZGF0YSwgaWYgYW55IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nW10KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFRyYW5zYWN0aW9uS2V5cygpOwoKICAgIC8qKgogICAgICogR2V0IHNwZWNpZmljIGV4dHJhIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQogICAgICogQHBhcmFtIG1peGVkICRkZmx0CiAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbkRhdGEoJGtleSwkZGZsdCA9IG51bGwpOwoKICAgIC8qKgogICAgICogUmV0cmlldmUgdGhlIHRyYW5zYWN0aW9uIGlkIHByb3ZpZGVkIGJ5IHRoZSBnYXRld2F5IGhvc3QuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgd2hlbiBoYW5kbGluZyB0cmFuc2FjdGlvbgogICAgICogaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFiYXN0cmFjdC4KICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbklkKCk7CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSBhbnkgcHJldmlvdXNseSBzZXQgbWVzc2FnZS4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB3aGVuIGhhbmRsaW5nIHRyYW5zYWN0aW9uCiAgICAgKiBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJhc3RyYWN0LgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldE1lc3NhZ2UoKTsKCiAgICAvKioKICAgICAqIEZpbmlzaCB0aGUgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogVGhpcyBpcyB1c2VkIGZvciBhc3luY3Job25vdXMgdHJhbnNhY3Rpb25zIHdpdGggdGhlIGdhdGV3YXkgc2VydmVyLgogICAgICoKICAgICAqIFVzdWFsbHkgZ2F0ZXdheSBtb2R1bGVzIHdpbGwgc2F2ZSB0aGUgZ2F0ZXdheSBzdGF0ZQogICAgICogYW5kIHJlZGlyZWN0IHRvIHRoZSBkZXN0aW5hdGlvbiB1cmwuCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFiYXN0cmFjdC4KICAgICAqIEByZXR1cm4gdm9pZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEZpbmlzaFRyYW5zYWN0aW9uKCk7CgogICAgLyoqCiAgICAgKiBFbnN1cmUgdGhhdCB0aGVyZSBpcyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gc2VuZCB0byB0aGUgZ2F0ZXdheSBob3N0LgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzdWFsbHkgY2FsbGVkIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHNlbmQgaW5mb3JtYXRpb24gdG8gdGhlCiAgICAgKiBnYXRld2F5IGhvc3QsIG9yIHdoZW4gZGlzcGxheWluZyB0aGUgZm9ybS4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gYm9vbGVhbi4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIENoZWNrSW5mbygpOwoKICAgIC8qKgogICAgICogRGlzcGxheSBhIGZvcm0gb3Igb3RoZXIgc3VpdGFibGUgb3V0cHV0IHRvIGFsbG93IGEgY3VzdG9tZXIgdG8gY2hlY2tvdXQKICAgICAqIHVzaW5nIHRoaXMgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBTb21lIGdhdGV3YXlzIGV4cGVjdCBpbnB1dCB0byBiZSBwcm92aWRlZCBpbiBhIGZvcm0sIG90aGVycyB1c2UgYW4gZW50aXJlbHkKICAgICAqIHByb2dyYW1tYXRpYyBhcHByaWFjaCAocHJlcGFyZSBkYXRhIGFuZCBwb3N0IGl0IHRvIHNvbWUgVVJMKS4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c3VhbGx5IGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgdG8gZGlzcGxheQogICAgICogYSBmb3JtIG9yIGEgYnV0dG9uLCBvciBhIGxpbmsgdG8gYWxsb3cgdGhlIHVzZXIgdG8gY2hlY2tvdXQuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0Rm9ybSgkcmV0dXJuaWQpOwoKICAgIC8qKgogICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBzZW5kIGluZm9ybWF0aW9uIHRvIHRoZSByZW1vdGUgZ2F0ZXdheSB3aXRob3V0CiAgICAgKiB1c2VyIGludGVyYWN0aW9uIChhc3luY3Job29ub3VzbHkpCiAgICAgKgogICAgICogU29tZSBnYXRld2F5cyBtYXkgbm90IHN1cHBvcnQgdGhpcy4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gUHJvY2Vzc1RyYW5zYWN0aW9uKCk7CgogICAgLyoqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNlbmQgbm90aWZpY2F0aW9uIHRvIHRoZSBvcmRlciBwcm9jZXNzb3IgdGhhdCB0cmFuc2FjdGlvbgogICAgICogaW5mb3JtYXRpb24gaGFzIGFycml2ZWQgYXN5bmNyaG9ub3VzbHkuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgcHJlcGFyZXMgc29tZSBpbmZvcm1hdGlvbiwgYW5kIHNlbmRzIHRoZSBDR1BheW1lbnRHYXRld2F5QmFzZTo6b25faW5jb21pbmdfZXZlbnQgZXZlbnQuCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQuCiAgICAgKiBAZmluYWwKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gUHJvY2Vzc0FzeW5jVHJhbnNhY3Rpb24oJG9yZGVyX2lkLCR0cmFuc2FjdGlvbl9pZCwkcGF5bWVudF9zdGF0dXMsJGFtb3VudCwkbWVzc2FnZSA9ICcnKTsKCiAgICAvKioKICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcHJvY2VzcyBhIHRyYW5zYWN0aW9uIHdpdGggdGhlIHBheW1lbnQgZ2F0ZXdheQogICAgICogaW4gc3luY2hybm91cyBtb2RlLCB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgdGhyb3dzIGV4Y2VwdGlvbnMgaW5zdGVhZCBvZiBjYWxsaW5nIEZpbmlzaFRyYW5zYWN0aW9uCiAgICAgKiBNb2R1bGVzIHVzaW5nIHRoaXMgbWV0aG9kIGFyZSByZXNwb25zaWJsZSBmb3IKICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gY2dwZ2JfYXN5bmNfdHJhbnNhY3Rpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFByb2Nlc3NTeW5jVHJhbnNhY3Rpb24oKTsKCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgcG9saWN5IGZvciBjYXJ0IGl0ZW1zIHRoYXQgY2FuIGJlIGFkZGVkIHRvIHRoaXMgbW9kdWxlLgogICAgICogVGhpcyBpcyB1c2VkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byBkZXRlcm1pbmUgd2hhdCBnYXRld2F5cyBjYW4gYmUgdXNlZCB0byBwcm9jZXNzIHRoZSBvcmRlciBjb25zaWRlcmluZyB0aGUgaXRlbXMgaW4gdGhlIG9yZGVyLgogICAgICoKICAgICAqIEByZXR1cm4gY2dfZWNvbW1fY2FydGl0ZW1fcG9saWN5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FydGl0ZW1fcG9saWN5KCk7Cgp9IC8vIGVuZCBvZiBpbnRlcmZhY2UKCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/trait.dflt_gateway_implementation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR0Vjb21tZXJjZUJhc2U7CgovKioKICogQSB0cmFpdCB0byBwcm92aWRlIG1vc3Qgb2YgdGhlIHNrZWxldG9uIGNvZGUgZm9yIGEgcGF5bWVudCBnYXRld2F5LgogKi8KdHJhaXQgZGZsdF9nYXRld2F5X2ltcGxlbWVudGF0aW9uCnsKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgJF9kYXRhID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBzZXNzaW9uX2NsZWFyKCRrZXkgPSAnJykKICAgIHsKICAgICAgICAkcGtleSA9ICdjJy5tZDUoX19GSUxFX18uZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgaWYoIGVtcHR5KCRrZXkpICkgewogICAgICAgICAgICB1bnNldCgkX1NFU1NJT05bJHBrZXldKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlskcGtleV1bJGtleV0pOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBzZXNzaW9uX2dldCgka2V5LCRkZmx0dmFsdWUgPSAnJykKICAgIHsKICAgICAgICAkcGtleSA9ICdjJy5tZDUoX19GSUxFX18uZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgaWYoICFpc3NldCgkX1NFU1NJT05bJHBrZXldKSApIHJldHVybiAkZGZsdHZhbHVlOwogICAgICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWyRwa2V5XVska2V5XSkgKSByZXR1cm4gJGRmbHR2YWx1ZTsKICAgICAgICByZXR1cm4gJF9TRVNTSU9OWyRwa2V5XVska2V5XTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBzZXNzaW9uX3B1dCgka2V5LCR2YWx1ZSkKICAgIHsKICAgICAgICAkcGtleSA9ICdjJy5tZDUoX19GSUxFX18uZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgaWYoICFpc3NldCgkX1NFU1NJT05bJHBrZXldKSApICRfU0VTU0lPTlskcGtleV0gPSBhcnJheSgpOwogICAgICAgICRfU0VTU0lPTlskcGtleV1bJGtleV0gPSAkdmFsdWU7CiAgICB9CgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgogICAgLyoqCiAgICAgKiBTYXZlIHRoZSBzdGF0ZSBvZiB0aGlzIGdhdGV3YXkgaW4gYSB3YXkgdGhhdCBjYW4gYmUgdXNlZCBhY2Nyb3NzIHJlcXVlc3RzLgogICAgICoKICAgICAqIEBwYXJhbSBib29sICRlbmNyeXB0IE9wdGlvbmFsbHkgZW5jcnlwdCB0aGUgc3RhdGUgKHJlY29tbWVuZGVkKSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuICBUaGlzIGlzIGJlY2F1c2Ugc29tZSBnYXRld2F5cyBtYXkgc3RvcmUgcGVyc29uYWwgaW5mb3JtYXRpb24gb3IgY3JlZGl0IGNhcmQgbnVtYmVycyB0ZW1wb3JhcmlseS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleSBhbiBvcHRpb25hbCBlbmNyeXB0aW9uIGtleS4gIElmIGVuY3J5cHQgaXMgZW5hYmxlZCwgYW5kIGEga2V5IGlzIG5vdCBzcGVjaWZpZWQsIG9uZSB3aWxsIGJlIGNhbGN1bGF0ZWQuCiAgICAgKiBAcmV0dXJuIHN0cmluZ3xudWxsIFRoZSBlbmNyeXB0aW9uIGtleSAoaWYgdGhlIHN0YXRlIHdhcyBlbmNyeXB0ZWQuKQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2F2ZVN0YXRlKCRlbmNyeXB0ID0gZmFsc2UsJGtleSA9ICcnKQogICAgewogICAgICAgICRlbmNyeXB0ID0gKGJvb2wpICRlbmNyeXB0OwogICAgICAgICRrZXkgPSB0cmltKChzdHJpbmcpICRrZXkpOwoKICAgICAgICBpZiggJGVuY3J5cHQgKSB7CiAgICAgICAgICAgIGlmKCAhJGtleSApICRrZXkgPSBzdHJfc2h1ZmZsZShtZDUoc2Vzc2lvbl9pZCgpLnRpbWUoKSkpOwogICAgICAgICAgICAkcmF3ID0gc2VyaWFsaXplKCR0aGlzLT5fZGF0YSk7CiAgICAgICAgICAgICRlbmMgPSBcY2dlX2VuY3J5cHQ6OmVuY3J5cHQoJGtleSwkcmF3KTsKICAgICAgICAgICAgJHRoaXMtPnNlc3Npb25fcHV0KCdzdGF0ZScsYmFzZTY0X2VuY29kZSgkZW5jKSk7CiAgICAgICAgICAgIHJldHVybiAka2V5OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHJhdyA9IHNlcmlhbGl6ZSgkdGhpcy0+X2RhdGEpOwogICAgICAgICAgICAkdGhpcy0+c2Vzc2lvbl9wdXQoJ3N0YXRlJyxiYXNlNjRfZW5jb2RlKCRyYXcpKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXN0b3JlIGEgZ2F0ZXdheSBmcm9tIGEgc3RvcmVkIHN0YXRlLCBhbmQgcmVtb3ZlIGl0IGZyb20gdGVtcG9yYXJ5IHN0b3JhZ2UuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAka2V5IFRoZSBlbmNyeXB0aW9uIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIGdhdGV3YXkgc3RhdGUuCiAgICAgKiByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gUmVzdG9yZVN0YXRlKCRrZXkgPSAnJykKICAgIHsKICAgICAgICAka2V5ID0gdHJpbSgoc3RyaW5nKSAka2V5KTsKCiAgICAgICAgLy8gd2UgbWF5IG5vdCBoYXZlIHRoZSBjbGFzc2VzIHdlIG5lZWQuLi4KICAgICAgICBcY2dfZWNvbW06OmdldF9vcmRlcl9tYW5hZ2VyKCk7CgogICAgICAgICRkYXRhID0gJHRoaXMtPnNlc3Npb25fZ2V0KCdzdGF0ZScpOwogICAgICAgIGlmKCAhJGRhdGEgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJHJhdyA9IGJhc2U2NF9kZWNvZGUoJGRhdGEpOwogICAgICAgIGlmKCAhJHJhdyApIHJldHVybiBGQUxTRTsKICAgICAgICAkdG1wID0gdW5zZXJpYWxpemUoJHJhdyk7IC8vIGhhY2tpc2gKICAgICAgICBpZiggISR0bXAgJiYgJGtleSApIHsKICAgICAgICAgICAgLy8gYXNzdW1lIGl0cyBlbmNyeXB0ZWQuCiAgICAgICAgICAgICRyYXcgPSBcY2dlX2VuY3J5cHQ6OmRlY3J5cHQoJGtleSwkcmF3KTsKICAgICAgICAgICAgaWYoICRyYXcgPT09IEZBTFNFICkgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2RhdGEgPSBAdW5zZXJpYWxpemUoJHJhdyk7CiAgICAgICAgaWYoICEkdGhpcy0+X2RhdGEgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJHRoaXMtPnNlc3Npb25fY2xlYXIoKTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICAvKioKICAgICAqIFJlc2V0IGFsbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGdhdGV3YXkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXNldCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+c2Vzc2lvbl9jbGVhcigpOwogICAgfQoKICAgIC8vLy8gbG93ZXIgbGV2ZWwgc3R1ZmYgLy8vLwoKICAgIC8qKgogICAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiBzdGF0dXMuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkaW4gIE9uZSBvZiB0aGUgdmFsaWQgc3RhdHVzZXMgZm9yIHRoaXMgb2JqZWN0LgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25TdGF0dXMoJGluKQogICAgewogICAgICAgIHN3aXRjaCggJGluICkgewogICAgICAgIGNhc2Ugc2VsZjo6UEFZTUVOVF9TVEFUVVNfQVBQUk9WRUQ6CiAgICAgICAgY2FzZSBzZWxmOjpQQVlNRU5UX1NUQVRVU19ERUNMSU5FRDoKICAgICAgICBjYXNlIHNlbGY6OlBBWU1FTlRfU1RBVFVTX0VSUk9SOgogICAgICAgIGNhc2Ugc2VsZjo6UEFZTUVOVF9TVEFUVVNfQ0FOQ0VMTEVEOgogICAgICAgIGNhc2Ugc2VsZjo6UEFZTUVOVF9TVEFUVVNfT1RIRVI6CiAgICAgICAgY2FzZSBzZWxmOjpQQVlNRU5UX1NUQVRVU19QRU5ESU5HOgogICAgICAgIGNhc2Ugc2VsZjo6UEFZTUVOVF9TVEFUVVNfQVVUSE9SSVpFRDoKICAgICAgICBjYXNlIHNlbGY6OlBBWU1FTlRfU1RBVFVTX05PTkU6CiAgICAgICAgICAgICR0aGlzLT5fZGF0YVsnc3RhdHVzJ10gPSAkaW47CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRpbi4nIGlzIG5vdCBhIHZhbGlkIHRyYW5zYWN0aW9uIHN0YXR1cycpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgY3VycmVudCBwYXltZW50IHN0YXR1cwogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvblN0YXR1cygpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnc3RhdHVzJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnc3RhdHVzJ107CiAgICAgICAgcmV0dXJuIHNlbGY6OlBBWU1FTlRfU1RBVFVTX05PTkU7CiAgICB9CgogICAgLy8vLyBoaWdoZXIgbGV2ZWwgc3RhdHVzIHN0dWZmCgogICAgLy8gQHRvZG86IGRvY3VtZW50IG1lLgogICAgcHVibGljIGZ1bmN0aW9uIEFsbG93c0luc3RhbnRDaGVja291dCgpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGEgbWVzc2FnZSAoZXJyb3Igb3Igc3VjY2VzcykgaWYgaXQgaXMgc2V0LgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TWVzc2FnZSgpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnbWVzc2FnZSddKSAmJiAkdGhpcy0+X2RhdGFbJ2Vtc3NhZ2UnXSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ21lc3NhZ2UnXTsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydlcnJvcl9tZXNzYWdlJ10pICYmICR0aGlzLT5fZGF0YVsnZXJyb3JfbWVzc2FnZSddICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnZXJyb3JfbWVzc2FnZSddOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IGEgc3VjY2VzcyBtZXNzYWdlIGZvciB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4KICAgICAqIFdpbGwgdW5zZXQgdGhlIGVycm9yIG1lc3NhZ2UsIGJ1dCB3aWxsIG5vdCBhZGp1c3QgdGhlIHRyYW5zYWN0aW9uIHN0YXR1cy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRTdWNjZXNzTWVzc2FnZSgkbWVzc2FnZSkKICAgIHsKICAgICAgICAkbWVzc2FnZSA9IHRyaW0oKHN0cmluZykgJG1lc3NhZ2UpOwogICAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsnZXJyb3JfbWVzc2FnZSddKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ21lc3NhZ2UnXSA9ICRtZXNzYWdlOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IGFuIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICAgICogV2lsbCB1bnNldCB0aGUgc3VjY2VzcyBtZXNzYWdlLCBidXQgd2lsbCBub3QgYWRqdXN0IHRoZSB0cmFuc2FjdGlvbiBzdGF0dXMuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbWVzc2FnZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0RXJyb3JNZXNzYWdlKCRtZXNzYWdlKQogICAgewogICAgICAgICRtZXNzYWdlID0gdHJpbSgoc3RyaW5nKSAkbWVzc2FnZSk7CiAgICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWydtZXNzYWdlJ10pOwogICAgICAgICR0aGlzLT5fZGF0YVsnZXJyb3JfbWVzc2FnZSddID0gJG1lc3NhZ2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHN1Y2Nlc3MgbWVzc2FnZSAoaWYgYW55KSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0U3VjY2Vzc01lc3NhZ2UoKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ21lc3NhZ2UnXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWydtZXNzYWdlJ107CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGVycm9yIG1lc3NhZ2UgKGlmIGFueSkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEVycm9yTWVzc2FnZSgpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnZXJyb3JfbWVzc2FnZSddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ2Vycm9yX21lc3NhZ2UnXTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gc3RhdHVzIHRvIGNhbmNlbGxlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlIGFuIG9wdGlvbmFsIGVycm9yIG1lc3NhZ2UuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRDYW5jZWxsZWQoJG1lc3NhZ2UgPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5TZXRUcmFuc2FjdGlvblN0YXR1cyhzZWxmOjpQQVlNRU5UX1NUQVRVU19DQU5DRUxMRUQpOwogICAgICAgICR0aGlzLT5TZXRFcnJvck1lc3NhZ2UoJG1lc3NhZ2UpOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiBzdGF0dXMgdG8gZGVjbGluZWQuCiAgICAgKgogICAgICogQGFwcmFtIHN0cmluZyAkbWVzc2FnZSBhbiBvcHRpb25hbCBlcnJvciBtZXNzYWdlLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0RGVjbGluZWQoJG1lc3NhZ2UgPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5TZXRUcmFuc2FjdGlvblN0YXR1cyhzZWxmOjpQQVlNRU5UX1NUQVRVU19ERUNMSU5FRCk7CiAgICAgICAgJHRoaXMtPlNldEVycm9ybWVzc2FnZSgkbWVzc2FnZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHN0YXR1cyB0byBlcnJvci4KICAgICAqCiAgICAgKiBAYXByYW0gc3RyaW5nICRtZXNzYWdlIGFuIG9wdGlvbmFsIGVycm9yIG1lc3NhZ2UuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvbkVycm9yKCRtZXNzYWdlKQogICAgewogICAgICAgICRtZXNzYWdlID0gdHJpbSgoc3RyaW5nKSAkbWVzc2FnZSk7CiAgICAgICAgJHRoaXMtPlNldFRyYW5zYWN0aW9uU3RhdHVzKHNlbGY6OlBBWU1FTlRfU1RBVFVTX0VSUk9SKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2Vycm9yX21lc3NhZ2UnXSA9ICRtZXNzYWdlOwogICAgfQoKICAgIC8vLy8gZ2VuZXJpYyBzdHVmZiAvLy8KCiAgICAvKioKICAgICAqIEFzc29jaWF0ZSBrZXkvdmFsdWUgZGF0YSB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBub3RlOiBtYXkgYmUgdXNlZCBsYXRlciBieSB0aGUgZ2F0ZXdheSwgYnV0IG5vdCB1c3VhbGx5IHVzZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQogICAgICogQHBhcmFtIG1peGVkICR2YWx1ZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25EYXRhKCRrZXksJHZhbHVlKQogICAgewogICAgICAgICRrZXkgPSB0cmltKChzdHJpbmcpJGtleSk7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ3RyYW5zZGF0YSddKSApICR0aGlzLT5fZGF0YVsndHJhbnNkYXRhJ10gPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5fZGF0YVsndHJhbnNkYXRhJ11bJGtleV0gPSAkdmFsdWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGtleXMgb2YgYWxsIGtleS92YWx1ZSBkYXRhIHN0b3JlZCB3aXRoIHRoZSB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZ1tdCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbktleXMoKQogICAgewogICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWyd0cmFuc2RhdGEnXSkgKSByZXR1cm47CiAgICAgICAgcmV0dXJuIGFycmF5X2tleXMoJHRoaXMtPl9kYXRhWyd0cmFuc2RhdGEnXSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQga2V5L3ZhbHVlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAka2V5CiAgICAgKiBAcGFyYW0gbWl4ZWQgJGRmbHQgRGVmYXVsdCBkYXRhIHRvIHJldHVybiBpZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VHJhbnNhY3Rpb25EYXRhKCRrZXksJGRmbHQgPSBudWxsKQogICAgewogICAgICAgICRrZXkgPSB0cmltKChzdHJpbmcpJGtleSk7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ3RyYW5zZGF0YSddKSApIHJldHVybiAkZGZsdDsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsndHJhbnNkYXRhJ11bJGtleV0pICkgIHJldHVybiAkZGZsdDsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kYXRhWyd0cmFuc2RhdGEnXVska2V5XTsKICAgIH0KCiAgICAvLy8vIGhpZ2hlciBsZXZlbCBzdHVmZiAvLy8vCgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHR5cGUgb2YgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSBvbmUgZm8gdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHR5cGVzLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25UeXBlKCR0eXBlKQogICAgewogICAgICAgICR0eXBlID0gdHJpbSgoc3RyaW5nKSAkdHlwZSk7CiAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsKICAgICAgICBjYXNlIHNlbGY6OlRSQU5TX0NBUFRVUkU6CiAgICAgICAgY2FzZSBzZWxmOjpUUkFOU19WT0lEOgogICAgICAgIGNhc2Ugc2VsZjo6VFJBTlNfQ1JFRElUOgogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX3R5cGUnXSA9ICR0eXBlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCR0eXBlLicgaXMgYW4gaW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlIGZvciAnLl9fTUVUSE9EX18pOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZ3xudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvblR5cGUoKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX3R5cGUnXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyd0cmFuc2FjdGlvbl90eXBlJ107CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIGlkCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc3RyIFRoZSB0cmFuc2FjdGlvbiBpZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFRyYW5zYWN0aW9uSWQoJHN0cikKICAgIHsKICAgICAgICAkc3RyID0gdHJpbSgoc3RyaW5nKSAkc3RyKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX2lkJ10gPSAkc3RyOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB0cmFuc2FjdGlvbiBpZAogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbklkKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyd0cmFuc2FjdGlvbl9pZCddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX2lkJ107CiAgICB9CgoKICAgIC8qKgogICAgICogQWRkIGFuIGl0ZW0gdG8gdGhlIHRyYW5zYWN0aW9uLgogICAgICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgdG8gYWRkIGl0ZW1zIHRvIHRoZSB0cmFuc2FjdGlvbiBmb3IgdXNlIGluIHN1Ym1pdHRpbmcgdGhlIG9yZGVyIHRvIHRoZSBnYXRld2F5LgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIGl0ZW0gbiBhbWUKICAgICAqIEBwYXJhbSBpbnQgJG51bWJlciB0aGUgaXRlbSBudW1iZXIKICAgICAqIEBwYXJhbSBpbnQgJHF1YW50aXR5IFRoZSBpdGVtIHF1YW50aXR5CiAgICAgKiBAcGFyYW0gZmxvYXQgJHdlaWdodCBUaGUgaXRlbSB3ZWlnaHQKICAgICAqIEBwYXJhbSBmbG9hdCAkYW1vdW50IFRoZSBpdGVtIGFtb3VudCAoY3VycmVuY3kpCiAgICAgKiBAcGFyYW0gZmxhb3QgJHRheCBUaGUgdGF4IGZvciB0aGlzIHBhcnRpY3VsYXIgaXRlbSwgaWYgYW55LgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gQWRkSXRlbSgkbmFtZSwkbnVtYmVyLCRxdWFudGl0eSwkd2VpZ2h0LCRhbW91bnQsJHRheCA9ICcnKQogICAgewogICAgICAgICRuYW1lID0gc3RyaXBfdGFncygkbmFtZSk7CiAgICAgICAgJG5hbWUgPSBwcmVnX3JlcGxhY2UoJy9cJi4qXDtcIlwnXMKwLycsJycsJG5hbWUpOwogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2l0ZW1zJ10pICkJJHRoaXMtPl9kYXRhWydpdGVtcyddID0gYXJyYXkoKTsKCiAgICAgICAgJG51bSA9IDE7CiAgICAgICAgJHRtcCA9ICRuYW1lOwogICAgICAgIHdoaWxlKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2l0ZW1zJ11bJHRtcF0pICYmICgkbnVtIDwgMTAwKSApIHsKICAgICAgICAgICAgJG51bSA9IChpbnQpJG51bSArIDE7CiAgICAgICAgICAgICR0bXAgPSAkbmFtZSAuICRudW07CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fZGF0YVsnaXRlbXMnXVskdG1wXSA9IGFycmF5KCduYW1lJz0+JG5hbWUsJ251bWJlcic9PiRudW1iZXIsJ3F1YW50aXR5Jz0+JHF1YW50aXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3ZWlnaHQnPT4kd2VpZ2h0LCdhbW91bnQnPT4kYW1vdW50KTsKICAgICAgICBpZighZW1wdHkoJHRheCkpICR0aGlzLT5fZGF0YVsnaXRlbXMnXVskdG1wXVsndGF4J10gPSAkdGF4OwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIGFuIGFycmF5IG9mIGl0ZW1zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEl0ZW1zKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpdGVtcyddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ2l0ZW1zJ107CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgY3JlZGl0IGNhcmQgaW5mbyB0aGF0IG11c3QgYmUgdXNlZCBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIG5vdGU6ICBzb21lIGdhdGV3YXlzIGRvIG5vdCByZXF1aXJlIGNyZWRpdCBjYXJkIGluZm8uCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgKGNvbGxlY3RpbmcgY3JlZGl0IGNhcmQgaW5mbyAgc2hvdWxkIGJlIGRvbmUgaW50ZXJuYWxseSBieSB0aGUgbW9kdWxlKS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGNjbnVtYmVyIFRoZSBjcmVkaXQgY2FyZCBudW1iZXIKICAgICAqIEBwYXJhbSBpbnQgJGNjZXhwIFRoZSB1bml4IHRpbWVzdGFtcCBvZiB0aGUgY3JlZGl0IGNhcmQgZXhwaXJ5CiAgICAgKiBAcGFyYW0gc3RyaW5nICRjY3Zjb2RlIFRoZSBjcmVkaXQgY2FyZCB2ZXJpZmljYXRpb24gY29kZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldENyZWRpdENhcmRJbmZvKCRjY251bWJlciwkY2NleHAsJGNjdmNvZGUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhWydyYXdfY2NpbmZvJ10gPSBhcnJheSgkY2NudW1iZXIsJGNjZXhwLCRjY3Zjb2RlKTsKCiAgICAgICAgJF9jY2luZm8gPSBhcnJheSgpOwogICAgICAgICRfY2NpbmZvWyd4X2NhcmRfbnVtJ10gPSBwcmVnX3JlcGxhY2UoJyhbXjAtOV0pJywnJywkY2NudW1iZXIpOwogICAgICAgICRfY2NpbmZvWyd4X2V4cF9kYXRlJ10gPSBkYXRlKCdtJywkY2NleHApLicvJy5kYXRlKCdZJywkY2NleHApOwogICAgICAgIGlmKCAhZW1wdHkoJGNjdmNvZGUpICkgewogICAgICAgICAgICAkX2NjaW5mb1sneF9jYXJkX2NvZGUnXSA9IHByZWdfcmVwbGFjZSgnKFteMC05XSknLCcnLCRjY3Zjb2RlKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9kYXRhWydjY2luZm8nXSA9ICRfY2NpbmZvOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSByYXcgY3JlZGl0IGNhcmQgaW5mb3JtYXRpb24gZW50ZXJlZCBieSB0aGUgdXNlci4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRSYXdDcmVkaXRDYXJkSW5mbygpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsncmF3X2NjaW5mbyddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ3Jhd19jY2luZm8nXTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIHZlcnNpb24gb2YgdGhlIGNyZWRpdCBjYXJkIGluZm9ybWF0aW9uIHRoYXQgaXMgc3V0YWJsZSBmb3IgZnJvbnRlbmQgZGlzcGxheS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5IEFuIGFzc29jaWF0aXZlIGFycmF5LgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0UHJvY2Vzc2VkQ3JlZGl0Q2FyZEluZm8oKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2NjaW5mbyddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ2NjaW5mbyddOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBjdXJyZW5jeSBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAZGVwcmVjYXRlZCAtIFRoZSBnYXRld2F5IG1vZHVsZSBzaG91bGQgdXNlIHRoZSBjdXJyZW5jeSBjb2RlIHNwZWNpZmllZCBpbiB0aGUgZWNvbW1lcmNlIHN1aXRlLgogICAgICogQHBhcmFtIHN0cmluZyAkY29kZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0Q3VycmVuY3lDb2RlKCRjb2RlID0gJ1VTRCcpCiAgICB7CiAgICAgICAgJGNvZGUgPSB0cmltKChzdHJpbmcpICRjb2RlKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2N1cnJlbmN5Y29kZSddID0gc3RydG91cHBlcigkY29kZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGN1cnJlbmN5IGNvZGUgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgLSBFdmVyeXRoaW5nIHNob3VsZCB1c2UgdGhlIGN1cnJlbmN5IGNvZGUgc2V0IGluIENHRWNvbW1lcmNlQmFzZQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEN1cnJlbmN5Q29kZSgpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnY3VycmVuY3ljb2RlJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnY3VycmVuY3ljb2RlJ107CiAgICAgICAgcmV0dXJuIFxjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X2NvZGUoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgd2VpZ2h0IHVuaXRzIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEBkZXByZWNhdGVkIC0gRXZlcnl0aGluZyBzaG91bGQgdXNlIHRoZSBjdXJyZW5jeSBjb2RlIHNldCBpbiBDR0Vjb21tZXJjZUJhc2UKICAgICAqIEBwYXJhbSBzdHJpbmcgJHVuaXRzOwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0V2VpZ2h0VW5pdHMoJHVuaXRzID0gJ2xicycpCiAgICB7CiAgICAgICAgJHVuaXRzID0gdHJpbSgoc3RyaW5nKSAkdW5pdHMpOwogICAgICAgICR0aGlzLT5fZGF0YVsnd2VpZ2h0dW5pdHMnXSA9ICR1bml0czsKICAgIH0KCiAgICAvKioKICAgICAqIGdldCB0aGUgd2VpZ2h0IHVuaXRzIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEBkZXByZWNhdGVkIC0gRXZlcnl0aGluZyBzaG91bGQgdXNlIHRoZSBjdXJyZW5jeSBjb2RlIHNldCBpbiBDR0Vjb21tZXJjZUJhc2UKICAgICAqIEByZXR1cm4gdHJpbmc7CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRXZWlnaHRVbml0cygpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnd2VpZ2h0dW5pdHMnXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWyd3ZWlnaHR1bml0cyddOwogICAgICAgIHJldHVybiBcY2dfZWNvbW06OmdldF93ZWlnaHRfdW5pdHMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEZvciBzeW5jaHJvbm91cyBnYXRld2F5cyAodHlwaWNhbGx5IHRob3NlIHRoYXQgcmVkaXJlY3Qgb3V0IG9mIHRoZSBzaXRlIGFuZCB0aGVuIGJhY2sgaW4pCiAgICAgKiBUaGlzIHNldHMgdGhlIFVSTCB0aGF0IHRoZSBzeXN0ZW0gc2hvdWxkIHJlZGlyZWN0IHRvIGFmdGVyIHJldHVybmluZyBmcm9tIHRoZSBnYXRld2F5IHdlYnNpdGUuCiAgICAgKiBUaGlzIGlzIHR5cGljYWxseSBzZXQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHVybAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0RGVzdGluYXRpb24oJHVybCkKICAgIHsKICAgICAgICAkdXJsID0gdHJpbSgoc3RyaW5nKSAkdXJsKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2Rlc3RpbmF0aW9uJ10gPSAkdXJsOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZXN0aW5hdGlvbiBVUkwgZm9yIGFmdGVyIHByb2Nlc3NpbmcgaXMgY29tcGxldGUuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldERlc3RpbmF0aW9uKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydkZXN0aW5hdGlvbiddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ2Rlc3RpbmF0aW9uJ107CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgYSBkZXNjcmlwdGlvbiBmb3IgdGhlIGVudGlyZSBvcmRlci4KICAgICAqCiAgICAgKiBAZGVwcmVjYXRlZCAoc2hvdWxkIHByb2xseSB1c2UgdGhlIG9yZGVyIG9iamVjdCBpdHNlbGYpCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eHQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldE9yZGVyRGVzY3JpcHRpb24oJHR4dCkKICAgIHsKICAgICAgICAkdHh0ID0gdHJpbSggKHN0cmluZykgJHR4dCk7CiAgICAgICAgJHRoaXMtPl9kYXRhWydkZXNjcmlwdGlvbiddID0gc3Vic3RyKCR0eHQsMCwyNTUpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGEgZGVzY3JpcHRpb24gZm9yIHRoZSBlbnRpcmUgb3JkZXIuCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgKHNob3VsZCBwcm9sbHkgdXNlIHRoZSBvcmRlciBvYmplY3QgaXRzZWxmKQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldE9yZGVyRGVzY3JpcHRpb24oKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2Rlc2NyaXB0aW9uJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnZGVzY3JpcHRpb24nXTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgb3JkZXIgb2JqZWN0IGludG8gdGhlIGdhdGV3YXkKICAgICAqCiAgICAgKiBAdG9kbyB1c2UgYmFzZSBvYmplY3QgaW5zdGVhZCBvZiBhbiBvcmRlciBvYmplY3QgdG8gcmVtb3ZlIGNyb3NzIGRlcGVuZGVuY3kKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldE9yZGVyT2JqZWN0KFxvcmRlcnNfb3JkZXIgJG9yZGVyKQogICAgewogICAgICAgICR0aGlzLT5fZGF0YVsnb3JkZXJfb2JqJ10gPSAkb3JkZXI7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG9yZGVyIG9iamVjdC4KICAgICAqCiAgICAgKiBAdG9kbyB1c2UgYmFzZSBvYmplY3QgaW5zdGVhZCBvZiBhbiBvcmRlciBvYmplY3QgdG8gcmVtb3ZlIGNyb3NzIGRlcGVuZGVuY3kKICAgICAqIEByZXR1cm4gXG9yZGVyc19vcmRlcgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X29yZGVyX29iamVjdCgpCiAgICB7CiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnb3JkZXJfb2JqJ10pICkgJG91dCA9ICR0aGlzLT5fZGF0YVsnb3JkZXJfb2JqJ107CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIG9yZGVyIGlkIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIHVzZWQgYnkgYXN5bmhyb25vdXMgZXZlbnRzLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJG9yZGVyaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldE9yZGVySUQoJG9yZGVyaWQpCiAgICB7CiAgICAgICAgJG9yZGVyaWQgPSAoaW50KSAkb3JkZXJpZDsKICAgICAgICAkdGhpcy0+X2RhdGFbJ29yZGVyaWQnXSA9ICRvcmRlcmlkOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBvcmRlciBpZCBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSB1c2VkIGJ5IGFzeW5ocm9ub3VzIGV2ZW50cy4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0T3JkZXJJZCgpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnb3JkZXJpZCddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ29yZGVyaWQnXTsKICAgICAgICAkb2JqID0gJHRoaXMtPmdldF9vcmRlcl9vYmplY3QoKTsKICAgICAgICBpZiggISRvYmogKSByZXR1cm47CgogICAgICAgIHJldHVybiAkb2JqLT5nZXRfaWQoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgaW52b2ljZSBuYW1lIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIHVzZWQgYnkgYXN5bmhyb25vdXMgZXZlbnRzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGludm9pY2UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldEludm9pY2UoJGludm9pY2UpCiAgICB7CiAgICAgICAgJGxlbiA9IG1pbihzdHJsZW4oJGludm9pY2UpLDIwKSotMTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2ludm9pY2UnXSA9IHN1YnN0cigkaW52b2ljZSwkbGVuKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgaW52b2ljZSBuYW1lIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIHVzZWQgYnkgYXN5bmhyb25vdXMgZXZlbnRzLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRJbnZvaWNlKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydpbnZvaWNlJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnaW52b2ljZSddOwogICAgICAgICRvYmogPSAkdGhpcy0+Z2V0X29yZGVyX29iamVjdCgpOwogICAgICAgIGlmKCAhJG9iaiApIHJldHVybjsKICAgICAgICByZXR1cm4gJG9iai0+Z2V0X2ludm9pY2UoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgYW1vdW50IG9mIHRoZSB0b3RhbCB0cmFuc2FjdGlvbiBhbW91bnQgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgdXNlZCBieSBhc3luaHJvbm91cyBldmVudHMuCiAgICAgKiBGb3Igc3VibWl0dGluZyBhbiBvcmRlciwgdGhlIGdhdGV3YXkgc2hvdWxkIGNhbGN1bGF0ZSB0aGUgdHJhbnNhY3Rpb24gYW1vdW50IGZyb20gdGhlIG9yZGVyLgogICAgICoKICAgICAqIEBwYXJhbSBmbG9hdCAkdmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvbkFtb3VudCgkdmFsKQogICAgewogICAgICAgICR2YWwgPSAoZmxvYXQpICR2YWw7CiAgICAgICAgJHRoaXMtPl9kYXRhWyd0cmFuc2FjdGlvbl9hbXQnXSA9ICR2YWw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGFtb3VudCBvZiB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogSWYgYSB0cmFuc2FjdGlvbiBhbW91bnQgaGFzIG5vdCBiZWVuIHNwZWNpZmllZCwgYW5kIGFuIG9yZGVyIG9iamVjdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBnYXRld2F5CiAgICAgKiB0aGVuIHVzZSB0aGUgb3JkZXIgdG90YWwuCiAgICAgKgogICAgICogQHJldHVybiBmbG9hdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VHJhbnNhY3Rpb25BbW91bnQoKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX2FtdCddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX2FtdCddOwogICAgICAgICRvYmogPSAkdGhpcy0+Z2V0X29yZGVyX29iamVjdCgpOwogICAgICAgIGlmKCBpc19vYmplY3QoJG9iaikgKSByZXR1cm4gJG9iai0+Z2V0X3RvdGFsKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHBheW1lbnQgaWQgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIGlzIHVzdWFsbHkgdXNlZCB3aGVuIGZpbmlzaGluZyBhIHRyYW5zYWN0aW9uIHdpdGggZGF0YSBwcm92aWRlZCBieSB0aGUgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFBheW1lbnRJZCgkc3RyKQogICAgewogICAgICAgICRzdHIgPSB0cmltKChzdHJpbmcpICRzdHIpOwogICAgICAgICR0aGlzLT5fZGF0YVsnX19wYXltZW50X2lkX18nXSA9ICRzdHI7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHBheW1lbnQgaWQgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIGlzIHVzdWFsbHkgdXNlZCB3aGVuIGZpbmlzaGluZyBhIHRyYW5zYWN0aW9uIHdpdGggZGF0YSBwcm92aWRlZCBieSB0aGUgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZzsKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFBheW1lbnRJZCgpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnX19wYXltZW50X2lkX18nXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWydfX3BheW1lbnRfaWRfXyddOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IGEgYmlsbGluZyBhZGRyZXNzIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB3aGVuIGNyZWF0aW5nIGEgdHJhbnNhY3Rpb24gdG8gc2VuZCB0byB0aGUgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBAcGFyYW0gY2dlX2FkZHJlc3MgJGJpbGxpbmdfYWRkeQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0QmlsbGluZ0FkZHJlc3MoXGNnZV9hZGRyZXNzICRiaWxsaW5nX2FkZHkpCiAgICB7CiAgICAgICAgaWYoICEkYmlsbGluZ19hZGR5IGluc3RhbmNlb2YgY2dlX2FkZHJlc3MgKQlyZXR1cm4gRkFMU0U7CiAgICAgICAgJHRoaXMtPl9kYXRhWydiaWxsaW5nX2FkZHJlc3MnXSA9ICRiaWxsaW5nX2FkZHk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBiaWxsaW5nIGFkZHJlc3MgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIHdoZW4gY3JlYXRpbmcgYSB0cmFuc2FjdGlvbiB0byBzZW5kIHRvIHRoZSBnYXRld2F5LgogICAgICogSWYgbm9uZSBoYXMgYmVlbiBleHBsaWNpdGx5IHNwZWNpZmllZCwgYW5kIGFuIG9yZGVyIG9iamVjdCBleGlzdHMsIHRoZW4gdGhlIGJpbGxpbmcgYWRkcmVzcyBmcm9tIHRoZSBvcmRlciB3aWxsIGJlIHVzZWQuCiAgICAgKgogICAgICogQHJldHVybiBcY2dlX2FkZHJlc3MKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEJpbGxpbmdBZGRyZXNzKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydiaWxsaW5nX2FkZHJlc3MnXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWydiaWxsaW5nX2FkZHJlc3MnXTsKICAgICAgICAkb2JqID0gJHRoaXMtPmdldF9vcmRlcl9vYmplY3QoKTsKICAgICAgICBpZiggJG9iaiApIHJldHVybiAkb2JqLT5nZXRfYmlsbGluZygpOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IGEgc2hpcHBpbmcgYWRkcmVzcyBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgd2hlbiBjcmVhdGluZyBhIHRyYW5zYWN0aW9uIHRvIHNlbmQgdG8gdGhlIGdhdGV3YXkuCiAgICAgKgogICAgICogQHBhcmFtIGNnZV9hZGRyZXNzICRiaWxsaW5nX2FkZHkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFNoaXBwaW5nQWRkcmVzcyhcY2dlX2FkZHJlc3MgJHNoaXBwaW5nX2FkZHkpCiAgICB7CiAgICAgICAgaWYoICEkc2hpcHBpbmdfYWRkeSBpbnN0YW5jZW9mIGNnZV9hZGRyZXNzICkJcmV0dXJuIEZBTFNFOwogICAgICAgICR0aGlzLT5fZGF0YVsnc2hpcHBpbmdfYWRkcmVzcyddID0gJHNoaXBwaW5nX2FkZHk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBiaWxsaW5nIGFkZHJlc3MgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIHdoZW4gY3JlYXRpbmcgYSB0cmFuc2FjdGlvbiB0byBzZW5kIHRvIHRoZSBnYXRld2F5LgogICAgICogSWYgbm9uZSBoYXMgYmVlbiBleHBsaWNpdGx5IHNwZWNpZmllZCwgYW5kIGFuIG9yZGVyIG9iamVjdCBleGlzdHMsIHRoZW4gdGhlIGZpcnN0IHNoaXBpbmcgYWRkcmVzcyBmcm9tIHRoZSBvcmRlciB3aWxsIGJlIHVzZWQuCiAgICAgKgogICAgICogQHJldHVybiBcY2dlX2FkZHJlc3MKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFNoaXBwaW5nQWRkcmVzcygpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnc2hpcHBpbmdfYWRkcmVzcyddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ3NoaXBwaW5nX2FkZHJlc3MnXTsKICAgICAgICAkb2JqID0gJHRoaXMtPmdldF9vcmRlcl9vYmplY3QoKTsKICAgICAgICBpZiggISRvYmogKSByZXR1cm47CiAgICAgICAgJHNoaXBtZW50ID0gJG9iai0+Z2V0X3NoaXBwaW5nKDApOwogICAgICAgIHJldHVybiAkc2hpcG1lbnQtPmdldF9zaGlwcGluZ19hZGRyZXNzKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTeW5jaHJvbm91c2x5IGZpbmlzaCB0aGUgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c3VhbGx5IGNhbGxlZCBieSBwYXltZW50IGdhdGV3YXlzIGFmdGVyIHJldHVybmluZyBmcm9tIHRoZSBnYXRld2F5IHdlYnNpdGUsIG9yIHBvc3Rpbmcgc3R1ZmYgdG8gdGhlIGdhdGV3YXkgZm9yIGEgdXNlci4KICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgc2F2ZSB0aGUgc3RhdGUgb2YgdGhlIGdhdGV3YXksIGFuZCByZWRpcmVjdCB0byB0aGUgZGVzdGluYXRpb24gVVJMIChpZiBhbnkpLgogICAgICoKICAgICAqIEBzZWUgU2V0RGVzdGluYXRpb24oKQogICAgICogQHJldHVybiBzdHJpbmcgVGhlIHRyYW5zYWN0aW9uIHN0YXR1cyBpcyByZXR1cm5lZCBpZiB0aGVyZSBpcyBubyBkZXN0aW5hdGlvbiBzZXQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBGaW5pc2hUcmFuc2FjdGlvbigpCiAgICB7CiAgICAgICAgLy9pZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnZGVzdGluYXRpb24nXSkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0FVVEhORVRBSU0pOwogICAgICAgICRrZXkgPSAkdGhpcy0+U2F2ZVN0YXRlKCk7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnZGVzdGluYXRpb24nXSkgKSB7CiAgICAgICAgICAgICR1cmwgPSAkdGhpcy0+X2RhdGFbJ2Rlc3RpbmF0aW9uJ107CiAgICAgICAgICAgICR1cmwgPSBodG1sX2VudGl0eV9kZWNvZGUoJHVybCk7CiAgICAgICAgICAgICR1cmwgLj0gIiZjbnRudDAxZGF0YWtleT0ka2V5IjsKICAgICAgICAgICAgJHVybCAuPSAnJmNudG50MDFnYXRld2F5PScuJG1vZC0+R2V0TmFtZSgpOwogICAgICAgICAgICByZWRpcmVjdCgkdXJsKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+R2V0VHJhbnNhY3Rpb25TdGF0dXMoKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIG5vdGlmeSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgb2YgYW4gYXN5bmNyaG9ub3VzIGVjb21tZXJjZSBldmVudCBmcm9tIHRoZSBnYXRld2F5LgogICAgICogVHlwaWNhbGx5IHRoaXMgaXMgdXNlZCB3aGVuIHRoZSBnYXRld2F5IHNlbmRzIGV2ZW50cyBhc3luY2hyb25vdXNseQogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJG9yZGVyX2lkCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0cmFuc2FjdGlvbl9pZAogICAgICogQHBhcmFtIHN0cmluZyAkcGF5bWVudF9zdGF0dXMKICAgICAqIEBhcHJhbSBmbG9hdCAkYW1vdW50CiAgICAgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlLgogICAgICogQHRvZG86IHRlc3QgbWUuLi4uICh0aGlzIGlzIGRhbmdlcm91cyBpbiB0aGlzIG1ldGhvZCkKICAgICAqLwogICAgZnVuY3Rpb24gUHJvY2Vzc0FzeW5jVHJhbnNhY3Rpb24oJG9yZGVyX2lkLCR0cmFuc2FjdGlvbl9pZCwkcGF5bWVudF9zdGF0dXMsJGFtb3VudCwkbWVzc2FnZSA9ICcnKQogICAgewogICAgICAgICR0cmFuc2FjdGlvbiA9IG5ldyBjZ3BnYl9hc3luY190cmFuc2FjdGlvbigkb3JkZXJfaWQsJGFtb3VudCk7CiAgICAgICAgJHRyYW5zYWN0aW9uLT5zZXRfbWVzc2FnZSgkbWVzc2FnZSk7CiAgICAgICAgJHRyYW5zYWN0aW9uLT5zZXRfaWQoJHRyYW5zYWN0aW9uX2lkKTsKICAgICAgICAkdHJhbnNhY3Rpb24tPnNldF9nYXRld2F5KCR0aGlzLT5HZXROYW1lKCkpOwogICAgICAgICR0cmFuc2FjdGlvbi0+c2V0X3N0YXR1cygkcGF5bWVudF9zdGF0dXMpOwogICAgICAgICR0aGlzLT5zZW5kX3RyYW5zYWN0aW9uX25vdGlmaWNhdGlvbigkdHJhbnNhY3Rpb24pOwogICAgfQoKICAgICAvKioKICAgICAgKiBSZXR1cm4gYW4gb2JqZWN0IGluZGljYXRpbmcgdGhlIGNhcGFiaWxpdGllcyBhbmQgcG9saWNpZXMKICAgICAgKiBvZiB0aGlzIGdhdGV3YXkgbW9kdWxlLgogICAgICAqCiAgICAgICogQHNlZSBjZ19lY29tbV9jYXJ0aXRlbV9wb2xpY3kKICAgICAgKiBAYWJzdHJhY3QKICAgICAgKiBAcmV0dXJuIG9iamVjdCBPYmplY3Qgb2YgdHlwZSBjZ19lY29tbV9jYXJ0aXRlbV9wb2xpY3kuCiAgICAgICovCiAgICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXJ0aXRlbV9wb2xpY3koKQogICAgIHsKICAgICAgICAgLy8gYnkgZGVmYXVsdCB3ZSBkb24ndCBhbGxvdyBzdWJzY3JpcHRpb25zLgogICAgICAgICAkcG9saWN5ID0gbmV3IFxjZ19lY29tbV9jYXJ0aXRlbV9wb2xpY3koKTsKICAgICAgICAgJHBvbGljeS0+c2V0X21peGVkX3N1YnNjcmlwdGlvbnMoZmFsc2UpOwogICAgICAgICAkcG9saWN5LT5zZXRfbWF4X3N1YnNjcmlwdGlvbnMoMCk7CiAgICAgICAgIHJldHVybiAkcG9saWN5OwogICAgIH0KCn0gLy8gZW5kIG9mIHRyYWl0Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMTEnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjExIHJlcXVpcmVkIjsKfQoKLy8gZXZlbnRzCiR0aGlzLT5DcmVhdGVFdmVudCgnQ2FydEl0ZW1BZGRQcmUnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdDYXJ0QWRqdXN0ZWQnKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCdDYXJ0SXRlbUFkZGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnT3JkZXJDcmVhdGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnT3JkZXJVcGRhdGVkJyk7CiR0aGlzLT5DcmVhdGVFdmVudCgnT3JkZXJEZWxldGVkJyk7CgovLyBwcmVmZXJlbmNlcwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3VycmVuY3lfc3ltYm9sJywnJCcpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3VycmVuY3lfY29kZScsJ1VTRCcpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnd2VpZ2h0X3VuaXRzJywnbGJzJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdsZW5ndGhfdW5pdHMnLCdpbicpOwoKLy8gdGVtcGxhdGVzLgokZm4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9vcmlnX2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUudHBsJzsKaWYoIGZpbGVfZXhpc3RzKCRmbikgKSB7CiAgICAkZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdsaW5laXRlbV9kZXNjX3RlbXBsYXRlJywkZGF0YSk7Cn0KCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbicsQGZpbGVfZ2V0X2NvbnRlbnRzKF9fRElSX18uJy90ZW1wbGF0ZXMvb3JpZ19hdHRyaWJfaXRlbV9kZXNjcmlwdGlvbi50cGwnKSk7CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8gZXZlbnRzCiR0aGlzLT5SZW1vdmVFdmVudCgnQ2FydEl0ZW1BZGRQcmUnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdDYXJ0QWRqdXN0ZWQnKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCdDYXJ0SXRlbUFkZGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnT3JkZXJDcmVhdGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnT3JkZXJVcGRhdGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudCgnT3JkZXJEZWxldGVkJyk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMTEnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjExIHJlcXVpcmVkIjsKfQoKc3dpdGNoKCAkb2xkdmVyc2lvbiApIHsKICBjYXNlICcxLjInOgogIGNhc2UgJzEuMi4xJzoKICBjYXNlICcxLjIuMic6CiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoJ0NhcnRJdGVtQWRkUHJlJyk7CgogIGNhc2UgJzEuMi4zJzoKICBjYXNlICcxLjIuNCc6CiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnc2hpcHBpbmdfcHJvZmlsZScpOwoKICBjYXNlICcxLjUuMic6CiAgY2FzZSAnMS41LjMnOgogICAgJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbicpOwogICAgJHR4dCA9IEBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvdGVtcGxhdGVzL29yaWdfYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24udHBsJyk7CiAgICBpZiggISR0bXAgKSB7CiAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbicsJHR4dCk7CiAgICB9Cn0KIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwgCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gcHJvdmlkZSBhIGJhc2UgY29tbXVuaWNhdGlvbnMKIyAgbGF5ZXIgYW5kIGNvbW1vbiBwcmVmZXJlbmNlIHJlcG9zaXRvcnkgZm9yIGhpcyBlY29tbWVyY2Ugc3VpdGUgb2YKIyAgbW9kdWxlcyBmb3IgQ01TTVMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluIAojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_cart_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY2FydF9tb2R1bGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNhcnRfbW9kdWxlIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY2FydF9tb2R1bGVzIHNlbGVjdGVkPSRjYXJ0X21vZHVsZX0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NhcnRfbW9kdWxlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_general_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY3VycmVuY3lfc3ltYm9sJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1cnJlbmN5X3N5bWJvbCIgdmFsdWU9InskY3VycmVuY3lfc3ltYm9sfSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSI0Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdjdXJyZW5jeV9jb2RlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1cnJlbmN5X2NvZGUiIHZhbHVlPSJ7JGN1cnJlbmN5X2NvZGV9IiBzaXplPSI0IiBtYXhsZW5ndGg9IjQiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3dlaWdodF91bml0cycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH13ZWlnaHRfdW5pdHMiIHZhbHVlPSJ7JHdlaWdodF91bml0c30iIHNpemU9IjQiIG1heGxlbmd0aD0iNCIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbGVuZ3RoX3VuaXRzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1sZW5ndGhfdW5pdHMiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR1bml0cyBzZWxlY3RlZD0kbGVuZ3RoX3VuaXRzfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_handling_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2dfYWN0aXZldGFiIiB2YWx1ZT0iaGFuZGxpbmciPnsqIGEgbGl0dGxlIHRyaWNrIGZvciB0aGUgdGFiICp9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaGFuZGxpbmdfbW9kdWxlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1oYW5kbGluZ19tb2R1bGUiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoYW5kbGluZ19tb2R1bGVzIHNlbGVjdGVkPSRoYW5kbGluZ19tb2R1bGV9CiAgICA8L3NlbGVjdD4KICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9faGFuZGxpbmdfbW9kdWxlJyl9CiAgPC9wPgo8L2Rpdj4KCgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1oYW5kbGluZ19zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_myinfo_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NvbXBhbnknKX06KjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNvbXBhbnkiIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSIgdmFsdWU9InskbXlfYWRkcmVzcy0+Z2V0X2NvbXBhbnkoKX0iLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9maXJzdG5hbWUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Zmlyc3RuYW1lIiBzaXplPSI1MCIgbWF4bGVuZ3RoPSI1MCIgdmFsdWU9InskbXlfYWRkcmVzcy0+Z2V0X2ZpcnN0bmFtZSgpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2xhc3RuYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWxhc3RuYW1lIiBzaXplPSI1MCIgbWF4bGVuZ3RoPSI1MCIgdmFsdWU9InskbXlfYWRkcmVzcy0+Z2V0X2xhc3RuYW1lKCl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRkcmVzczEnKX06KjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFkZHJlc3MxIiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIxMDAiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9hZGRyZXNzMSgpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2FkZHJlc3MyJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWFkZHJlc3MyIiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIxMDAiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9hZGRyZXNzMigpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NpdHknKX06KjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNpdHkiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjUwIiB2YWx1ZT0ieyRteV9hZGRyZXNzLT5nZXRfY2l0eSgpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3N0YXRlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1zdGF0ZSI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHN0YXRlX2xpc3Qgc2VsZWN0ZWQ9JG15X2FkZHJlc3MtPmdldF9zdGF0ZSgpfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfcG9zdGFsJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXBvc3RhbCIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMjUiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9wb3N0YWwoKX0iLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jb3VudHJ5Jyl9Oio8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y291bnRyeSI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGNvdW50cnlfbGlzdCBzZWxlY3RlZD0kbXlfYWRkcmVzcy0+Z2V0X2NvdW50cnkoKX0KICAgIDwvc2VsZWN0PgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3Bob25lJyl9Oio8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1waG9uZSIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjUiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9waG9uZSgpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZheCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1mYXgiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1IiB2YWx1ZT0ieyRteV9hZGRyZXNzLT5nZXRfZmF4KCl9Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZW1haWwnKX06KjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWVtYWlsIiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9lbWFpbCgpfSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICA8L3A+CjwvZGl2Pgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_packaging_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2dfYWN0aXZldGFiIiB2YWx1ZT0icGFja2FnaW5nIj57KiBhIGxpdHRsZSB0cmljayBmb3IgdGhlIHRhYiAqfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3BhY2thZ2luZ19tb2R1bGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXBhY2thZ2luZ19tb2R1bGUiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRwYWNrYWdpbmdfbW9kdWxlcyBzZWxlY3RlZD0kcGFja2FnaW5nX21vZHVsZX0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3BhY2thZ2luZ19tb2R1bGUnKX0KICA8L3A+CjwvZGl2PgoKe2lmIGlzc2V0KCRwcm9kdWN0c19jaGVja2JveGVzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzaGlwX3NlcGVyYXRlbHlfZmllbGQnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXNoaXBfc2VwZXJhdGVseSI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHByb2R1Y3RzX2NoZWNrYm94ZXMgc2VsZWN0ZWQ9JHNoaXBfc2VwZXJhdGVseX0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3NoaXBfc2VwZXJhdGVseScpfQogIDwvcD4KPC9kaXY+CnsvaWZ9Cgp7aWYgaXNzZXQoJHByb2R1Y3RzX2RpbWVuc2lvbnMpfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NoaXBfZGltZW5zaW9uc19maWVsZCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c2hpcF9kaW1lbnNpb25zIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kcHJvZHVjdHNfZGltZW5zaW9ucyBzZWxlY3RlZD0kc2hpcF9kaW1lbnNpb25zfQogICAgPC9zZWxlY3Q+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fc2hpcF9kaW1lbnNpb25zJyl9CiAgPC9wPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X292ZXJ3ZWlnaHRfbGltaXQnKX0gKHskd2VpZ2h0X3VuaXRzfSk6PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9b3ZlcndlaWdodF9saW1pdCIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI1IiB2YWx1ZT0ieyRzaGlwcGluZ19wcm9maWxlLT5nZXRfb3ZlcndlaWdodF9saW1pdCgpfG51bWJlcl9mb3JtYXQ6Mn0iLz4KICAgIDxici8+CiAgICB7JG1vZC0+TGFuZygnaW5mb19vdmVyd2VpZ2h0X2xpbWl0Jyl9CiAgPC9wPgo8L2Rpdj4KCjxmaWVsZHNldCBzdHlsZT0id2lkdGg6IDUwJTsgZmxvYXQ6IGxlZnQ7Ij4KPGxlZ2VuZD57JG1vZC0+TGFuZygncHJvbXB0X3NoaXBwaW5nX2JveGVzJyl9OjwvbGVnZW5kPgp7YXNzaWduIHZhcj0nYm94ZXMnIHZhbHVlPSRzaGlwcGluZ19wcm9maWxlLT5nZXRfYm94ZXMoKX0KPHRhYmxlPgogIDx0aGVhZD4KICA8dHI+CiAgICA8dGQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9uYW1lJyl9PC90ZD4KICAgIDx0ZD57JG1vZC0+TGFuZygncHJvbXB0X3dpZHRoJyl9KHskbGVuZ3RoX3VuaXRzfSkpPC90ZD4KICAgIDx0ZD57JG1vZC0+TGFuZygncHJvbXB0X2hlaWdodCcpfSh7JGxlbmd0aF91bml0c30pKTwvdGQ+CiAgICA8dGQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9sZW5ndGgnKX0oeyRsZW5ndGhfdW5pdHN9KSk8L3RkPgogICAgPHRkPnskbW9kLT5MYW5nKCdwcm9tcHRfbWF4d2VpZ2h0Jyl9KHskd2VpZ2h0X3VuaXRzfSkpPC90ZD4KICAgIDx0ZD57JG1vZC0+TGFuZygncHJvbXB0X3NvcnRpbmcnKX08L3RkPgogIDwvdHI+CiAgPC90aGVhZD4KICA8L3Rib2R5PgogIHtmb3JlYWNoIGZyb209JGJveGVzIGl0ZW09J2JveCd9CiAgPHRyPgogICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWJveF9uYW1lW3skYm94Lm5hbWV9XSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjAiIHZhbHVlPSJ7JGJveC5uYW1lfSIvPjwvdGQ+CiAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Ym94X3dpZHRoW3skYm94Lm5hbWV9XSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSI0IiB2YWx1ZT0ieyRib3gud2lkdGh8bnVtYmVyX2Zvcm1hdDoyfSIvPjwvdGQ+CiAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Ym94X2hlaWdodFt7JGJveC5uYW1lfV0iIHNpemU9IjQiIG1heGxlbmd0aD0iNCIgdmFsdWU9InskYm94LmhlaWdodHxudW1iZXJfZm9ybWF0OjJ9Ii8+PC90ZD4KICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1ib3hfbGVuZ3RoW3skYm94Lm5hbWV9XSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSI0IiB2YWx1ZT0ieyRib3gubGVuZ3RofG51bWJlcl9mb3JtYXQ6Mn0iLz48L3RkPgogICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWJveF93ZWlnaHRbeyRib3gubmFtZX1dIiBzaXplPSI0IiBtYXhsZW5ndGg9IjQiIHZhbHVlPSJ7JGJveC53ZWlnaHR8bnVtYmVyX2Zvcm1hdDoyfSIvPjwvdGQ+CiAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Ym94X3Njb3JlW3skYm94Lm5hbWV9XSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSI0IiB2YWx1ZT0ieyRib3guc2NvcmV9Ii8+PC90ZD4KICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgo8L2ZpZWxkc2V0PgoKCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXBhY2thZ2luZ19zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_payments_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFpc3NldCgkbW9kdWxlX2xpc3QpfQo8ZGl2IGNsYXNzPSJ3YXJuaW5nIiBzdHlsZT0id2lkdGg6IDk0JTsgbWFyZ2luLXJpZ2h0OiAxMHB4OyI+CiAgeyRtb2QtPkxhbmcoJ2Vycl9nYXRld2F5c19ub3Rmb3VuZCcpfQo8L2Rpdj4Ke2Vsc2V9CiAgeyRmb3Jtc3RhcnR9CiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3BheW1lbnRfbW9kdWxlczInKX08L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncGF5bWVudF9tb2R1bGVzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c2VsX3BheW1lbnRfbW9kdWxlc1tdIiBzaXplPSIzIiBtdWx0aXBsZT0ibXVsdGlwbGUiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG1vZHVsZV9saXN0IHNlbGVjdGVkPSRzZWxfcGF5bWVudF9tb2R1bGVzfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPC9wPgogIDwvZGl2Pgp7JGZvcm1lbmR9CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_policy_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHAgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19jYXJ0X3BvbGljeScpfTwvZGl2PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdzeXN0ZW1fcG9saWN5Jyl9OjwvbGVnZW5kPgp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtYXhfcHJvZHVjdHMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXBvbGljeV9tYXhwcm9kdWN0cyI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG51bV9vcHRpb25zIHNlbGVjdGVkPSRzeXNwb2xpY3ktPm1heF9wcm9kdWN0cygpfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtYXhfc2VydmljZXMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXBvbGljeV9tYXhzZXJ2aWNlcyI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG51bV9vcHRpb25zIHNlbGVjdGVkPSRzeXNwb2xpY3ktPm1heF9zZXJ2aWNlcygpfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtYXhfc3Vic2NyaXB0aW9ucycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9cG9saWN5X21heHN1YnNjcmlwdGlvbnMiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRudW1fb3B0aW9ucyBzZWxlY3RlZD0kc3lzcG9saWN5LT5tYXhfc3Vic2NyaXB0aW9ucygpfQogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtaXhlZF9zdWJzY3JpcHRpb25zJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3BvbGljeV9taXhlZHN1YnNjcmlwdGlvbnMnIHNlbGVjdGVkPSRzeXNwb2xpY3ktPmhhbmRsZV9taXhlZF9zdWJzY3JpcHRpb25zKCl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygnZ2F0ZXdheV9wb2xpY3knKX08L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdtYXhfcHJvZHVjdHMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAge2Fzc2lnbiB2YXI9J3RtcCcgdmFsdWU9JHBheXBvbGljeS0+bWF4X3Byb2R1Y3RzKCl9CiAgICB7JG51bV9vcHRpb25zWyR0bXBdfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbWF4X3NlcnZpY2VzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHthc3NpZ24gdmFyPSd0bXAnIHZhbHVlPSRwYXlwb2xpY3ktPm1heF9zZXJ2aWNlcygpfQogICAgeyRudW1fb3B0aW9uc1skdG1wXX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ21heF9zdWJzY3JpcHRpb25zJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHthc3NpZ24gdmFyPSd0bXAnIHZhbHVlPSRwYXlwb2xpY3ktPm1heF9zdWJzY3JpcHRpb25zKCl9CiAgICB7JG51bV9vcHRpb25zWyR0bXBdfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbWl4ZWRfc3Vic2NyaXB0aW9ucycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIHtpZiAkcGF5cG9saWN5LT5oYW5kbGVfbWl4ZWRfc3Vic2NyaXB0aW9ucygpfQogICAgIHskbW9kLT5MYW5nKCd5ZXMnKX0KICAge2Vsc2V9CiAgICAgeyRtb2QtPkxhbmcoJ25vJyl9CiAgIHsvaWZ9CiAgPC9wPgo8L2Rpdj4KPC9maWVsZHNldD4=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_promotions_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbW90aW9uc19tb2R1bGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXByb21vdGlvbnNfbW9kdWxlIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kcHJvbW90aW9uc19tb2R1bGVzIHNlbGVjdGVkPSRwcm9tb3Rpb25zX21vZHVsZX0KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3Byb21vdGlvbnNfbW9kdWxlJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_shipping_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2dfYWN0aXZldGFiIiB2YWx1ZT0ic2hpcHBpbmciPnsqIGEgbGl0dGxlIHRyaWNrIGZvciB0aGUgdGFiICp9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc2hpcHBpbmdfbW9kdWxlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1zaGlwcGluZ19tb2R1bGUiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzaGlwcGluZ19tb2R1bGVzIHNlbGVjdGVkPSRzaGlwcGluZ19tb2R1bGV9CiAgICA8L3NlbGVjdD4KICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fc2hpcHBpbmdfbW9kdWxlJyl9CiAgPC9wPgo8L2Rpdj4KCgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zaGlwcGluZ19zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_suppliers_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnc3VwcGxpZXJfbW9kdWxlcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9c3VwcGxpZXJfbW9kdWxlc1tdIiBtdWx0aXBsZT0ibXVsdGlwbGUiIHNpemU9IjMiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdXBwbGllcl9hbGxfbW9kdWxlcyBzZWxlY3RlZD0kc3VwcGxpZXJfbW9kdWxlc30KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3N1cHBsaWVyX21vZHVsZXMnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgeyRpbnB1dF9saW5laXRlbV9kZXNjX3RlbXBsYXRlfQogICAgPGJyLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9cmVzZXRfbGluZWl0ZW1fZGVzYyIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldCcpfSIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWF0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uIiB2YWx1ZT0ieyRhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbn0iIHNpemU9IjgwIiBtYXhsZW5ndGg9IjUxMiIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_taxes_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndGF4X21vZHVsZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9dGF4X21vZHVsZSI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHRheF9tb2R1bGVzIHNlbGVjdGVkPSR0YXhfbW9kdWxlfQogICAgPC9zZWxlY3Q+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdGF4X21vZHVsZScpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygndGF4X3NoaXBwaW5nJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9dGF4X3NoaXBwaW5nIHNlbGVjdGVkPSR0YXhfc2hpcHBpbmd9CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fdGF4X3NoaXBwaW5nJyl9CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_attrib_item_description.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRhdHRyaWJfdGV4dH0ge2lmICRhdHRyaWJfYWRqdXN0ICE9IDB9eyRhdHRyaWJfYWRqdXN0fXsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_lineitem_desc_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdXNlZCBmb3Igc3VtbWFyaXppbmcgcHJvZHVjdHMgaW4gdmlldyBjYXJ0IGZvcm0gcGFnZSAqfQp7c3RyaXB9CntpZiBpc3NldCgkcHJvZHVjdF9vYmopfQp7JHByb2R1Y3Rfb2JqLT5nZXRfbmFtZSgpfSZuYnNwOy0mbmJzcDsKICB7aWYgaXNzZXQoJG1ldGEpfQogICAge2ZvcmVhY2ggZnJvbT0kbWV0YS0+YXR0cmlidXRlcyBpdGVtPSdhdHRyaWInfQogICAgICB7JGF0dHJpYi0+bmFtZX0mbmJzcDt7aWYgJGF0dHJpYi0+YWRqdXN0bWVudCAhPSAwfXskY3VycmVuY3lzeW1ib2x9KHskYXR0cmliLT5hZGp1c3RtZW50fG51bWJlcl9mb3JtYXQ6Mn0pey9pZn0mbmJzcDsKICAgIHsvZm9yZWFjaH0KICB7ZWxzZX0KICAgIHthc3NpZ24gdmFyPSdvcHRzJyB2YWx1ZT0kY2FydF9pdGVtLT5nZXRfb3B0aW9ucygpfQogICAge2ZvcmVhY2ggZnJvbT0kb3B0cyBpdGVtPSdvcHQnfQogICAgICB7JG9wdC0+dGV4dH0mbmJzcDt7aWYgJG9wdC0+YWRqdXN0bWVudCAhPSAwfXskY3VycmVuY3lzeW1ib2x9ICh7JG9wdC0+YWRqdXN0bWVudHxudW1iZXJfZm9ybWF0OjJ9KXsvaWZ9Jm5ic3A7CiAgICB7L2ZvcmVhY2h9CiAgey9pZn0Key9pZn0Key9zdHJpcH0=]]></data>
	</file>
</module>
