<?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.8.4</version>
    <mincmsversion>2.2.2</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBjb21tb24gYmFzZSBvZiBjb21tdW5pY2F0aW9ucyBmb3IgYWxsIGVjb21tZXJjZSBtb2R1bGVzLiAgSXQgYWxsb3dzIHNwZWNpZnlpbmcgd2hpY2ggYXZhaWxhYmxlIHN1cHBsaWVycyB5b3Ugd291IHdvdWxkIGxpa2UgdG8gdXNlLCBhcyB3ZWxsIGFzIGNhcnQsIHRheCwgc2hpcHBpbmcsIGFuZCBwYXltZW50IGdhdGV3YXlzLiAgSXQgYWxzbyBwcm92aWRlcyBhIGNvbXBsZXggIEFQSSBsaWJyYXJ5IGZvciBjb21tdW5pY2F0aW9uIG9mLCBhbmQgbWFuaXB1bGF0aW9uIG9mIGRhdGEgYmV0d2VlbiB0aGUgdmFyaW91cyBtb2R1bGVzLjwvcD4KCjxoMz5GZWF0dXJlczo8L2gzPgogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIG5vIGZyb250ZW5kIGludGVyZmFjZSBvZiBpdHMgb3duLiBJdCdzIHB1cnBvc2UgaXMgdG8gZmFjaWxpdGF0ZSBjb21tdW5pY2F0aW9uIGFuZCBwcm92aWRlIGNvbW1vbiBkYXRhIGVsZW1lbnRzIGJldHdlZW4gdGhlIHZhcmlvdXMgZGlmZmVyZW50IG1vZHVsZXMgcmVxdWlyZWQgZm9yIGFuIGUtY29tbWVyY2Ugc29sdXRpb24uICBUaGlzIGFsbG93cyBmbGV4aWJpbGl0eSBpbiBzZWxlY3RpbmcgZGlmZmVyZW50IHR5cGVzIG9mIHNvbHV0aW9ucyBmb3IgZGlmZmVyZW50IGFwcGxpY2F0aW9ucy4gIGkuZS46IGRpZmZlcmVudCBjYXJ0LCBzaGlwcGluZywgdGF4LCBoYW5kbGluZywgcGFja2FnaW5nLCBwYXltZW50LCBvciBldmVuIG9yZGVyIG1hbmFnZW1lbnQgbW9kdWxlcyBtYXkgYmUgcG9zc2libGUuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPgo8dWw+CiAgICA8bGk+UmVzZWFyY2ggYW5kIGluc3RhbGwgYWxsIG9mIHRoZSBkZXNpbnJlZCBlY29tbWVyY2UgbW9kdWxlcyB0aGF0IHlvdSB3aWxsIHJlcXVpcmUsIGFsb25nIHdpdGggdGhlaXIgZGVwZW5kZW5jaWVzLjwvbGk+CiAgICA8bGk+VmlzaXQgZWFjaCBtb2R1bGUncyBhZG1pbiBwYW5lbCBhbmQgZW50ZXIgdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24uCiAgICAgICAgPHA+WW91IG1heSB2aXNpdCB0aGVzZSBhZG1pbiBwYW5lbHMgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBjb25maWd1cmF0aW9uIHByb2Nlc3MuCiAgICA8L2xpPgogICAgPGxpPlZpc2l0IHRoZSBDR0Vjb21tZXJjZUJhc2UgYWRtaW4gcGFuZWwgYW5kIGJlZ2luIGNvbm5lY3RpbmcgYWxsIG9mIHRoZSBtb2R1bGVzIGFuZCBkZWZpbmluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB5b3VyIGFwcGxpY2F0aW9uLgogICAgICAgIDx1bD4KCSAgPGxpPjxzdHJvbmc+UmVxdWlyZWQ6PC9zdHJvbmc+IEVudGVyIHlvdXIgY29tcGFueSBhZGRyZXNzIGluIHRoZSAmcXVvdDtTdG9yZSBBZGRyZXNzJnF1b3Q7IHRhYi4KCSAgICAgPHA+VGhpcyBpbmZvcm1hdGlvbiBjYW4gYmUgcHJvdmlkZWQgdG8gcGF5bWVudCBnYXRld2F5cyBhbmQgc2hpcHBpbmcgbW9kdWxlcywgYW5kIG1heSBiZSBkaXNwbGF5ZWQgb24gaW52b2ljZXMsIGV0Yy48L3A+CgkgIDwvbGk+CgkgIDxsaT48c3Ryb25nPlJlcXVpcmVkOjwvc3Ryb25nPiBFbnRlciBnZW5lcmFsIHNldHRpbmdzIHN1Y2ggYXMgd2VpZ2h0IGFuZCBsZW5ndGggdW5pdHMsIGFuZCB0aGUgY3VycmVuY3kgdGhhdCB5b3Ugd2lsbCBiZSBzZWxsaW5nIGluLgoJICAgICA8cD5UaGUgY3VycmVuY3kgc3ltYm9sIGlzIHVzZWQgZm9yIGRpc3BsYXkgcHVycG9zZXMuPC9wPgoJICAgICA8cD5UaGUgdGhyZWUgY2hhcmFjdGVyIGN1cnJlbmN5IGNvZGUgaXMgcHJvdmlkZWQgdG8gc2hpcHBpbmcsIHBheW1lbnQgYW5kIG90aGVyIG1vZHVsZXMgZm9yIHByaWNlIGNhbGN1bGF0aW9ucy48L3A+CgkgICAgIDxwPlRoZSB3ZWlnaHQgdW5pdHMgZGVzY3JpYmUgdGhlIHVuaXRzIHRoYXQgeW91IHdpbGwgZW50ZXIgd2VpZ2h0cyBvZiBwcm9kdWN0cy4gIFBsZWFzZSBjaG9vc2UgZWl0aHIgZywga2csIG9yIGxiLjwvcD4KCSAgICAgPHA+VGhlIGxlbmd0aCB1bml0cyBkZXNjcmliZSB0aGUgdW5pdHMgdGhhdCB5b3Ugd2lsbCBlbnRlciBkaW1lbnNpb25zIG9mIHByb2R1Y3RzIGFuZCBzaGlwcGluZyBveGVzLiAgUGxlYXNlIGNob29zZSBpdGhlciBjbSwgb3IgaW5jaGVzLjwvcD4KCSAgICAgPHAgY2xhc3M9Indhcm5pbmciPkl0IGlzIGltcG9ydGFudCB0aGF0IHlvdSBkbyBub3QgY2hhbmdlIHRoZXNlIHNldHRpbmdzIG9uY2UgdGhlIGFwcGxpY2F0aW9uIGVudGVyZXMgaW50byB0aGUgcHJvZHVjdGlvbiBzdGFnZSBhbmQgeW91IGFyZSB3b3JraW5nIHdpdGggcmVhbCBpbmZvcm1hdGlvbi48L3A+CgkgIDwvbGk+CgkgIDxsaT5EZWZpbmUgYSBwb2xpY3kgZm9yIHRoZSBjYXJ0IG1vZHVsZSB0byBmb2xsb3cuCgkgICAgIDxwPlRoaXMgcG9saWN5IGFsbG93cyB0aGUgY2FydCBtb2R1bGUgYW5kIHBvdGVudGlhbGx5IG90aGVyIG1vZHVsZXMgdG8ga25vdyBob3cgdG8gYmVoYXZlLjwvcD4KCSAgPC9saT4KCSAgPGxpPjxzdHJvbmc+UmVxdWlyZWQ6PC9zdHJvbmc+IFNlbGVjdCBvbmUsIG9yIG1vcmUgc291cmNlIG1vZHVsZXMuCgkgICAgIDxwPlNvdXJjZSBtb2R1bGVzIGFyZSBtb2R1bGVzIHRoYXQgY2FuIHByb3ZpZGUgaXRlbXMgKHByb2R1Y3RzLCBvciBzZXJ2aWNlcykgdG8gdGhlIGNhcnQuPC9wPgoJICA8L2xpPgoJICA8bGk+PHN0cm9uZz5SZXF1aXJlZDo8L3N0cm9uZz4gU2VsZWN0IGEgY2FydCBtb2R1bGUuCgkgICAgIDxwPkNhcnQgcHJvdmlkZXIgbW9kdWxlcyBhbGxvdyBjdXN0b21lcnMgdG8gYWRkIGl0ZW1zIHRvIHRoZSBjYXJ0LCBhbmQgbWF5IHByb3ZpZGUgZGlmZmVyZW50IGZlYXR1cmVzIGFuZCBhcHBlYXJhbmNlcy48L3A+CgkgIDwvbGk+CgkgIDxsaT5TZWxlY3QgYSB0YXggbW9kdWxlLgoJICAgICA8cD5UYXggcHJvdmlkZXIgbW9kdWxlcyBhbGxvdyBmb3IgZGlmZmVyZW50IHdheXMgdG8gY2FsY3VsYXRlIHRheGVzIG9uIGN1c3RvbWVyIG9yZGVycnMuPC9wPgoJICA8L2xpPgoJICA8bGk+U2VsZWN0IGEgcGFja2FnaW5nIHByb3ZpZGVyLgoJICAgICA8cD5UaGVzZSBtb2R1bGVzIGFyZSB1c2VkIHRvIG9yZ2FuaXplIGEgY2FydCBjb250ZW50cyBpbnRvIHZhcmlvdXMgcGFja2FnZXMsIHRoYXQgY2FuIHRoZW4gYmUgc2hpcHBlZC4gICBTb21lIHNoaXBwaW5nIG1vZHVsZXMgbWF5IHJlcXVpcmUgcGFja2FnaW5nIG1vZHVsZXMgdG8gcGVyZm9ybSBjb3N0IGVzdGltYXRpb24uPC9wPgoJICA8L2xpPgoJICA8bGk+T3B0aW9uYWxseSBzZWxlY3QgYSBoYW5kbGluZyBwcm92aWRlci4KCSAgICAgPHA+VGhlc2UgcHJvdmlkZXIgbW9kdWxlcyBhbGxvdyBjYWxjdWxhdGluZyBhbmQgYWRkaW5nIGhhbmRsaW5nIGNoYXJnZXMgaW4gdmFyaW91cyB3YXlzLjwvcD4KCSAgPC9saT4KCSAgPGxpPk9wdGlvbmFsbHkgc2VsZWN0IGEgc2hpcHBpbmcgcHJvdmlkZXIuCgkgICAgIDxwPlRoZXNlIHByb3ZpZGVyIG1vZHVsZXMgYWxsb3cgY2FsY3VsYXRpbmcgc2hpcHBpbmcgY29zdHMgZm9yIHBoeXNpY2FsIHByb2R1Y3RzLjwvcD4KCSAgPC9saT4KCSAgPGxpPk9wdGlvbmFsbHkgc2VsZWN0IGEgcHJvbW90aW9uIG1vZHVsZS4KCSAgICAgPHA+VGhlc2UgcHJvdmlkZXIgbW9kdWxlcyBhbGxvdyBtYW5hZ2luZyBhbmQgY2FsY3VsYXRpbmcgZGlzY291bnRzIGZvciBvcmRlcnMuPC9wPgoJICA8L2xpPgoJICA8bGk+T3B0aW9uYWxseSBzZWxlY3Qgb25lIG9yIG1vcmUgcGF5bWVudCBtb2R1bGVzLgoJICAgICA8cD5UaGVzZSBwcm92aWRlciBtb2R1bGVzIGFsbG93IHByb3ZpZGluZyBkaWZmZXJlbnQgbWV0aG9kcyBmb3IgY3VzdG9tZXJzIHRvIHBheSBmb3IgdGhlaXIgb3JkZXIuPC9wPgoJICA8L2xpPgoJPC91bD4KICAgIDwvbGk+CjwvdWw+Cgo8aDM+U21hcnR5IFRhZ3M8L2gzPgo8dWw+CiAgPGxpPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ2Vjb21tX2Zvcm1fYWRkdG9jYXJ0IHNvdXJjZT1Qcm9kdWN0cyBwcm9kdWM9XCRudW19PC9jb2RlPgogICA8cD5UaGlzIHRhZyB1c2VzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY2FydCBtb2R1bGUgYW5kIGRpc3BsYXlzIGEgZm9ybSB0byBhbGxvdyB0aGUgdXNlciB0byBhZGQgYW4gaXRlbSB0byB0aGUgY2FydC48YnIvPlBhcmFtZXRlcnM6PC9wPgogICA8dWw+CiAgICA8bGk+c291cmNlIC0gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgc291cmNlIG1vZHVsZS4gIFRoaXMgbW9kdWxlIG11c3QgYmUgc2VsZWN0ZWQgYXMgYSBzdXBwbGllciBpbiB0aGUgQ0dFY29tbWVyY2VCYXNlIGFkbWluIHBhbmVsLjwvbGk+CiAgICA8bGk+cHJvZHVjdCAtIHNwZWNpZnkgdGhlIHVuaXF1ZSA8ZW0+KGludGVnZXIpPC9lbT4gaWRlbnRpZmllciBvZiB0aGUgcHJvZHVjdCB3aXRoaW4gdGhlIHNvdXJjZSBtb2R1bGUuPC9saT4KICAgPC91bD4KICAgPHA+QW55IG90aGVyIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhpcyB0YWcgYXJlIHBhc3NlZCB0byB0aGUgYXBwcm9wcmlhdGUgbW9kdWxlLCBmb3IgZXhhbXBsZSBmb3Igc3BlY2lmeWluZyBhIGRpZmZlcmVudCB0ZW1wbGF0ZSB5b3UgbWF5IHdhbnQgdG8gYWRkIGFuICZxdW90O2FkZHRvY2FydHRlbXBsYXRlPWZvbyZxdW90OyBhcmd1bWVudC48L3A+CiAgPC9saT4KICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NnZWNvbW1fZXJhc2VjYXJ0fTwvY29kZT4KICAgIDxwPlRoaXMgdGFnIGVtcHRpZXMgYWxsIGluZm9ybWF0aW9uIGZyb20gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYXJ0LCBhbmQgc2V0cyB0aGUgdmlzaXRvcnMgYmFza2V0IGJhY2sgdG8gYSBjb21wbGV0ZWx5IGVtcHR5IHN0YXRlLjwvcD4KICA8L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jb21wYW55X2FkZHJlc3MgW2Fzc2lnbj0nc3RyaW5nJ119PC9jb2RlPgogICA8cD5UaGlzIHRhZyByZXRyaWV2ZXMgdGhlIGNvbXBhbnkgYWRkcmVzcyBmcm9tIHRoZSBkYXRhYmFzZSwgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L3A+CiAgPC9saT4KICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NnZWNvbW1fY3VycmVuY3lfY29kZSBbYXNzaWduPXN0cmluZ119PC9jb2RlPiAtIFJldHVybnMgdGhlIGN1cnJlbnRseSBzZXQgY3VycmVuY3kgY29kZS48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jdXJyZW5jeV9zeW1ib2wgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IGN1cnJlbmN5IHN5bWJvbC48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV93ZWlnaHRfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IHdlaWdodCB1bml0cy48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV93ZWlnaHRfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IHdlaWdodCB1bml0cy48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9sZW5ndGhfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IGxlbmd0aCB1bml0cy48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jYXJ0aXRlbV9leGlzdHMgW3NvdXJjZT1zdHJpbmddIFtwcm9kdWN0PWludGVnZXJ8c2t1PXN0cmluZ10gW2V4dHJhPW1peGVkXSBhc3NpZ249c3RyaW5nXX08L2NvZGU+CiAgICA8cD5SZXR1cm5zIGVpdGhlciAwIG9yIDEgZGVwZW5kaW5nIG9uIGlmIHRoZSBpdGVtIChpZGVudGlmaWVkIGJ5IGVpdGhlciB0aGUgcHJvdWN0IGlkLCBvciBza3UgZXhpc3RzIGluIHRoZSBjYXJ0LjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByaXZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2dlY29tYmFzZSI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjU2LjE8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuOC40PGJyIC8+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+PHN0cm9uZz5XQVJOSU5HOjwvc3Ryb25nPiBUaGlzIHZlcnNpb24gb2YgdGhlIENHRWNvbW1lcmNlQmFzZSBtb2R1bGUgYW5kIGl0J3MgZGVwZW5kZW50IG1vZHVsdWVzIGltcGxlbWVudHMgbWFueSBjaGFuZ2VzLiAgVGhlcmUgd2lsbCBsaWtlbHkgYmUgY29tcGF0aWJpbGl0eSBpc3N1ZXMuPC9saT4KICAgIDx1bD4KCTxsST5BZGRzIHN1cHBvcnQgZm9yIG11bHRpcGxlIHBheW1lbnQgZ2F0ZXdheXMgLSBBbGwgZ2F0ZXdheXMgbXVzdCBiZSB1cGRhdGVkIHRvIHdvcmsgd2l0aCB0aGUgbmV3IG1lY2hhbmlzbS48L2xpPgoJPGxpPkF0dGVtcHQgdG8gaW1wcm92ZSBiZWhhdmlvciB3aXRoIGxvY2FsZXMgdGhhdCBkbyBub3QgdXNlcyAuIGFzIGEgZGVjaW1hbCBwb2ludCAodmFsdWVzIHN0aWxsIG5lZWQgdG8gYmUgZW50ZXJlZCB3aXRoIC4gYXMgYSBkZWNpbWFsIHBvaW50IHRob3VnaCk8L2xpPgogICAgICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGEgaGFuZGxpbmcgbW9kdWxlLjwvbGk+CiAgICAgICAgPGxpPkxvdHMgb2YgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgd29yay48L2xpPgoJPGxpPk5vdyByZXF1aXJlIFBIUCA1LjQuMTE8L2xpPgoJPC91bD4KICAgPC9saT4KICAgPC91bD4KCiAgIDxsaT5WZXJzaW9uIDEuNy54CiAgICAgICAgPHVsPgoJPGxpPkNsZWFuIHVwIHZhcmlvdXMgYWRtaW4gdGVtcGxhdGVzLjwvbGk+Cgk8bGk+QWRkcyBzdXBwb3J0IGZvciBhIHBhY2thZ2luZyBtb2R1bGUgdHlwZS48L2xpPgoJPGxpPlNoaXBwaW5nIG1vZHVsZXMgYXJlIG5vdyBkZXRlY3RlZCBieSBtb2R1bGVzIGltcGxlbWVudGluZyB0aGUgXENHRXh0ZW5zaW9uc1xzaGlwcGluZ19tb2R1bGUgaW50ZXJmYWNlLiAgU29tZSBzaGlwcGluZyBtb2R1bGVzIG1heSBiZSBicm9rZW48L2xpPgogICAgICAgIDxsaT5QYXltZW50IGdhdGV3YXkgbW9kdWxlcyBhcmUgbm93IGRldGVjdGVkIGJ5IG1vZHVsZXMgaW1wbGVtZW50aW5nIHRoZSBcQ0dFeHRlbnNpb25zXHBheW1lbnRfZ2F0ZXdheSBpbnRlcmZhY2UuICBTb21lIHBheW1lbnQgZ2F0ZXdheSBtb2R1bGVzIG1heSBiZSBicm9rZW4uPC9saT4KCTxsaT5BZGRzIHZhcmlvdXMgY2xhc3NlcywgaW5jbHVkaW5nIGEgYmFzZSBzaGlwcGluZyBlc3RpbWF0ZSBjbGFzcywgcGFja2luZyBsaXN0IGNsYXNzZXMsIG5ldyBpbnRlcmZhY2VzLi4uPC9saT4KCTxsaT5Db2RlIGNsZWFudXAuPC9saT4KCTwvdWw+CiAgICA8L2xpPgoKICA8bGk+VmVyc2lvbiAxLjgueAoJPGRpdiBjbGFzcz0id2FybmluZyI+VGhpcyBpcyBhIG1ham9yIHJldmlzaW9uIHRvIHRoZSBFY29tbWVyY2UgU3VpdGUuICBQbGVhc2UgaGF2ZSBiYWNrdXBzIGFuZCB0ZXN0IHByb3Blcmx5IGJlZm9yZSB1cGdyYWRpbmcuPC9kaXY+Cgk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj5Zb3UgbXVzdCBmb2xsb3cgYSBtYW51YWwgdXBncmFkZSBwcm9jZWR1cmUgaWYgdXBncmFkaW5nIGZyb20gQ0dFY29tbWVyY2VCYXNlIHYxLjc8L2Rpdj4KCTxkaXYgY2xhc3M9Indhcm5pbmciPkFmdGVyIHVwZ3JhZGluZyB0aGlzIG1vZHVsZSwgYW5kIGFsbCBzdWIgbW9kdWxlcyB5b3UgbXVzdCB2aXNpdCBlYWNoIHN1YiBtb2R1bGUgYW5kIGNsaWNrIGEgYnV0dG9uIHRvIGFjdGl2YXRlIHRoYXQgbW9kdWxlIHdpdGhpbiB0aGUgZWNvbW1lcmNlIHN1aXRlLjwvZGl2PgoJPGRpdiBjbGFzcz0id2FybmluZyI+VGhpcyByZWxlYXNlIGJyZWFrcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHNoaXBwaW5nLCB0YXggYW5kIGNhcnQgbW9kdWxlcy4gIENoZWNrIGZvciB1cGRhdGVzIHRvIHRoZXNlIG1vZHVsZXMuPC9kaXY+CiAgICAgICAgPHVsPgoJPGxpPlJlLXdvcmsgUEhQIGludGVyZmFjZXMgZm9yIHNoaXBwaW5nLCB0YXgsIHBheW1lbnQsIGhhbmRsaW5nLCBhbmQgb3RoZXIgbW9kdWxlcy4gIEJlY2F1c2Ugb2YgdGhlIHdheSBQSFAgaW50ZXJmYWNlcyB3ZXJlIGltcGxlbWVudGVkLCBpdCB3YXMgaW1wb3NzaWJsZSB0byBpbXBsZW1lbnQgYW4gdXBncmFkZSBwYXRoIHRoYXQgYWxsb3dlZCB1c2VycyB0byB1c2UgdGhlIENNU01TIE1vZHVsZU1hbmFnZXIgdG8gZ2V0IHVwZ3JhZGVzIGZyb20gdGhlIGZvcmdlLjwvbGk+Cgk8bGk+QWRkcyBuZXcgaW50ZXJmYWNlcyBmb3IgcHJvbW90aW9ucyBtb2R1bGVzLjwvbGk+Cgk8bGk+UmUtd29yayB0aGUgdXNlciBpbnRlcmZhY2UgZm9yIHN1Yi1tb2R1bGVzIGluIGEgZHJhbWF0aWMgd2F5LiAgIFNoaXBwaW5nLCB0YXgsIHBheW1lbnQsIGhhbmRsaW5nLCBwYWNrYWdpbmcgYW5kIGNhcnQgbW9kdWxlcyBub3cgdXNlIGEgYnV0dG9uIHdpdGhpbiB0aGUgbW9kdWxlIHRvIGluZGljYXRlIHRoYXQgdGhhdCBtb2R1bGUgc2hvdWxkIGJlIHVzZWQgZm9yIGEgc3BlY2lmaWMgdHlwZS48L2xpPgoJPGxpPkFkZHMgZXh0ZW5zaXZlIHVzZSBvZiBuYW1lc3BhY2luZywgdGhvdWdoIG5vdCBjb21wbGV0ZSB5ZXQuPC9saT4KCTxsaT5Ob3cgcmVxdWlyZXMgQ01TTVMgMi4yLjIgb3IgZ3JlYXRlci48L2xpPgoJPC91bD4KICA8L2xpPgo8L3VsPgo8YnIgLz4=]]></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.56.1</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.#function.admin_payments_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/action.admin_config_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKdXNlIFxDR0Vjb21tZXJjZUJhc2Vcc2V0dXBfbWFuYWdlcjsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9BZG1pblVzZXIoKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb25maWcnKTsKCiRybW1vZCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncm1tb2QnKTsKJHR5cGUgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3R5cGUnKTsKaWYoICRybW1vZCAmJiAkdHlwZSApIHsKICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICBjYXNlICdzaG9wcGluZ19jYXJ0JzoKICAgICAgICBzZXR1cF9tYW5hZ2VyOjp1bnNldF9zaG9wcGluZ19jYXJ0X21nciggJHJtbW9kICk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdwcm9tb3Rpb25zJzoKICAgICAgICBzZXR1cF9tYW5hZ2VyOjp1bnNldF9wcm9tb3Rpb25fYXNzaXN0YW50KCAkcm1tb2QgKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ3BhY2thZ2luZyc6CiAgICAgICAgc2V0dXBfbWFuYWdlcjo6dW5zZXRfcGFja2FnaW5nX2NhbGN1bGF0b3IoICRybW1vZCApOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnaGFuZGxpbmcnOgogICAgICAgIHNldHVwX21hbmFnZXI6OnVuc2V0X2hhbmRsaW5nX2NhbGN1bGF0b3IoICRybW1vZCApOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnc2hpcHBpbmcnOgogICAgICAgIHNldHVwX21hbmFnZXI6OnVuc2V0X3NoaXBwaW5nX2Fzc2lzdGFudCggJHJtbW9kICk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICd0YXgnOgogICAgICAgIHNldHVwX21hbmFnZXI6OnVuc2V0X3RheF9jYWxjdWxhdG9yKCAkcm1tb2QgKTsKICAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgLy8gZG8gbm90aGluZwogICAgfQogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQoKCiRyZXBvcnQgPSBbXTsKJHJlcG9ydFsnc2hvcHBpbmdfY2FydCddWyduYW1lJ10gPSBcQ0dFY29tbWVyY2VCYXNlXHNldHVwX21hbmFnZXI6OmdldF9zaG9wcGluZ19jYXJ0X21ncl9uYW1lKCk7CiRyZXBvcnRbJ3Nob3BwaW5nX2NhcnQnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCdjYXJ0X21vZHVsZScpOwokcmVwb3J0WydzaG9wcGluZ19jYXJ0J11bJ29rJ10gPSBmYWxzZTsKJG9iaiA9IFxjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CmlmKCBpc19vYmplY3QoJG9iaikgJiYgJG9iai0+SXNDb25maWd1cmVkKCkgKSAkcmVwb3J0WydzaG9wcGluZ19jYXJ0J11bJ29rJ10gPSB0cnVlOwoKJHJlcG9ydFsncHJvbW90aW9ucyddWyduYW1lJ10gPSBcQ0dFY29tbWVyY2VCYXNlXHNldHVwX21hbmFnZXI6OmdldF9wcm9tb3Rpb25fYXNzaXN0YW50X25hbWUoKTsKJHJlcG9ydFsncHJvbW90aW9ucyddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3Byb21vdGlvbnNfbW9kdWxlJyk7CiRyZXBvcnRbJ3Byb21vdGlvbnMnXVsnb2snXSA9IGZhbHNlOwokb2JqID0gXGNnX2Vjb21tOjpnZXRfcHJvbW90aW9uc19tb2R1bGUoKTsKaWYoIGlzX29iamVjdCgkb2JqKSAmJiAkb2JqLT5Jc0NvbmZpZ3VyZWQoKSApICRyZXBvcnRbJ3Byb21vdGlvbnMnXVsnb2snXSA9IHRydWU7CgokcmVwb3J0WydwYWNrYWdpbmcnXVsnbmFtZSddID0gXENHRWNvbW1lcmNlQmFzZVxzZXR1cF9tYW5hZ2VyOjpnZXRfcGFja2FnaW5nX2NhbGN1bGF0b3JfbmFtZSgpOwokcmVwb3J0WydwYWNrYWdpbmcnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCdwYWNrYWdpbmdfbW9kdWxlJyk7CiRyZXBvcnRbJ3BhY2thZ2luZyddWydvayddID0gZmFsc2U7CiRvYmogPSBcY2dfZWNvbW06OmdldF9wYWNrYWdpbmdfbW9kdWxlKCk7CmlmKCBpc19vYmplY3QoJG9iaikgJiYgJG9iai0+SXNDb25maWd1cmVkKCkgKSAkcmVwb3J0WydwYWNrYWdpbmcnXVsnb2snXSA9IHRydWU7CgokcmVwb3J0WydoYW5kbGluZyddWyduYW1lJ10gPSBcQ0dFY29tbWVyY2VCYXNlXHNldHVwX21hbmFnZXI6OmdldF9oYW5kbGluZ19jYWxjdWxhdG9yX25hbWUoKTsKJHJlcG9ydFsnaGFuZGxpbmcnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCdoYW5kbGluZ19tb2R1bGUnKTsKJHJlcG9ydFsnaGFuZGxpbmcnXVsnb2snXSA9IGZhbHNlOwokb2JqID0gXGNnX2Vjb21tOjpnZXRfaGFuZGxpbmdfbW9kdWxlKCk7CmlmKCBpc19vYmplY3QoJG9iaikgJiYgJG9iai0+SXNDb25maWd1cmVkKCkgKSAkcmVwb3J0WydoYW5kbGluZyddWydvayddID0gdHJ1ZTsKCiRyZXBvcnRbJ3NoaXBwaW5nJ11bJ25hbWUnXSA9IFxDR0Vjb21tZXJjZUJhc2Vcc2V0dXBfbWFuYWdlcjo6Z2V0X3NoaXBwaW5nX2Fzc2lzdGFudF9uYW1lKCk7CiRyZXBvcnRbJ3NoaXBwaW5nJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygnc2hpcHBpbmdfbW9kdWxlJyk7CiRyZXBvcnRbJ3NoaXBwaW5nJ11bJ29rJ10gPSBmYWxzZTsKJG9iaiA9IFxjZ19lY29tbTo6Z2V0X3NoaXBwaW5nX21vZHVsZSgpOwppZiggaXNfb2JqZWN0KCRvYmopICYmICRvYmotPklzQ29uZmlndXJlZCgpICkgJHJlcG9ydFsnc2hpcHBpbmcnXVsnb2snXSA9IHRydWU7CgokcmVwb3J0Wyd0YXgnXVsnbmFtZSddID0gXENHRWNvbW1lcmNlQmFzZVxzZXR1cF9tYW5hZ2VyOjpnZXRfdGF4X2NhbGN1bGF0b3JfbmFtZSgpOwokcmVwb3J0Wyd0YXgnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0YXhfbW9kdWxlJyk7CiRyZXBvcnRbJ3RheCddWydvayddID0gZmFsc2U7CiRvYmogPSBcY2dfZWNvbW06OmdldF90YXhfbW9kdWxlKCk7CmlmKCBpc19vYmplY3QoJG9iaikgJiYgJG9iai0+SXNDb25maWd1cmVkKCkgKSAkcmVwb3J0Wyd0YXgnXVsnb2snXSA9IHRydWU7CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9jb25maWdfdGFiLnRwbCcpOwokdHBsLT5hc3NpZ24oJ3JlcG9ydCcsJHJlcG9ydCk7CiR0cGwtPmRpc3BsYXkoKTs=]]></data>
	</file>
	<file>
	  <filename>/action.admin_general_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignZ2VuZXJhbCcpOwoKaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9zeW1ib2wnLFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnY3VycmVuY3lfc3ltYm9sJykpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2N1cnJlbmN5X2NvZGUnLHN0cnRvdXBwZXIoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdjdXJyZW5jeV9jb2RlJykpKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd3ZWlnaHRfdW5pdHMnLFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnd2VpZ2h0X3VuaXRzJykpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2xlbmd0aF91bml0cycsXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdsZW5ndGhfdW5pdHMnKSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndGF4X3NoaXBwaW5nJyxcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCd0YXhfc2hpcHBpbmcnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbmN5X3N5bWJvbCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9jb2RlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VycmVuY3lfY29kZScpKTsKJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfdW5pdHMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd3ZWlnaHRfdW5pdHMnKSk7CiRzbWFydHktPmFzc2lnbignbGVuZ3RoX3VuaXRzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbGVuZ3RoX3VuaXRzJywnaW4nKSk7CiRzbWFydHktPmFzc2lnbigndGF4X3NoaXBwaW5nJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGF4X3NoaXBwaW5nJywxKSk7CiR3dW5pdHMgPSBbICdsYnMnPT4kdGhpcy0+TGFuZygnd3VuaXRfbGJzJyksICdrZyc9PiR0aGlzLT5MYW5nKCd3dW5pdF9rZycpLCAnaGcnPT4kdGhpcy0+TGFuZygnd3VuaXRfaGcnKSwgJ2cnPT4kdGhpcy0+TGFuZygnd3VuaXRfZycpIF07CiRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJywkd3VuaXRzKTsKJHVuaXRzID0gYXJyYXkoKTsKJHVuaXRzWydpbiddID0gJHRoaXMtPkxhbmcoJ3VuaXRzX2luY2hlcycpOwokdW5pdHNbJ2NtJ10gPSAkdGhpcy0+TGFuZygndW5pdHNfY2VudGltZXRlcnMnKTsKJHNtYXJ0eS0+YXNzaWduKCd1bml0cycsJHVuaXRzKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9nZW5lcmFsX3RhYi50cGwnKTsKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_packaging_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncGFja2FnaW5nJyk7CgokbW9kdWxlX2xpc3QgPSBudWxsOwokdG1wX21vZHVsZV9saXN0ID0gbW9kdWxlX2hlbHBlcjo6Z2V0X21vZHVsZXNfYnlfaW50ZXJmYWNlKCdcQ0dFY29tbWVyY2VCYXNlXHBhY2thZ2luZ19tb2R1bGUnKTsKaWYoIGlzX2FycmF5KCR0bXBfbW9kdWxlX2xpc3QpICYmIGNvdW50KCR0bXBfbW9kdWxlX2xpc3QpICkgewogICAgJG1vZHVsZV9saXN0ID0gW107CiAgICBmb3JlYWNoKCAkdG1wX21vZHVsZV9saXN0IGFzICRtb2R1bGVfbmFtZSA9PiAkZGlzcGxheV9uYW1lICkgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCAkbW9kdWxlX25hbWUgKTsKICAgICAgICBpZiggISRtb2QgKSBjb250aW51ZTsKICAgICAgICBpZiggISRtb2QtPklzQ29uZmlndXJlZCgpICkgewogICAgICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCRtb2R1bGVfbmFtZS4nIGlzIG5vdCBjb25maWd1cmVkJyk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAkbW9kdWxlX2xpc3RbJG1vZHVsZV9uYW1lXSA9ICRkaXNwbGF5X25hbWU7CiAgICB9Cn0KCmlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywncGFja2FnaW5nX3N1Ym1pdCcpICkgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhY2thZ2luZ19tb2R1bGUnLFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncGFja2FnaW5nX21vZHVsZScpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7Cn0KJG1vZHVsZV9saXN0ID0gY2dlX2FycmF5OjpoYXNoX3ByZXBlbmQoJG1vZHVsZV9saXN0LC0xLCR0aGlzLT5MYW5nKCdub25lJykpOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9wYWNrYWdpbmdfdGFiLnRwbCcpOwokdHBsLT5hc3NpZ24oJ3NlbF9tb2R1bGUnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWNrYWdpbmdfbW9kdWxlJykpOwokdHBsLT5hc3NpZ24oJ21vZHVsZV9saXN0JywkbW9kdWxlX2xpc3QpOwokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.admin_save_myinfo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ215aW5mbycpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgICRhZGRyZXNzID0gbmV3IGNnX2Vjb21tX2NvbXBhbnlfYWRkcmVzcygpOwogICAgJGFkZHJlc3MtPmZyb21fYXJyYXkoJHBhcmFtcywnJyk7CiAgICBpZiggISRhZGRyZXNzLT5pc192YWxpZCgpICkgewogICAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZGFkZHJlc3MnKSk7CiAgICB9CiAgICBlbHNlICB7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ215aW5mb19hZGRyZXNzJyxzZXJpYWxpemUoJGFkZHJlc3MpKTsKICAgIH0KfQoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCg==]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5WaXNpYmxlVG9hZG1pblVzZXIoKSApIGV4aXQ7CgokdGhlX3RhYiA9ICdjYXJ0JzsKaWYoIGlzc2V0KCRwYXJhbXNbJ3RoZXRhYiddKSApICR0aGVfdGFiID0gdHJpbSgkcGFyYW1zWyd0aGV0YWInXSk7CmVjaG8gJHRoaXMtPlNldEN1cnJlbnRUYWIoJHRoZV90YWIpOwoKJHByZWZtYXAgPSBhcnJheSgpOwokcHJlZm1hcFsnc2VsX3BheW1lbnRfbW9kdWxlcyddID0gYXJyYXkoJ3NlbF9wYXltZW50X21vZHVsZXMnLCdhcnJheV9vZl9zdHJpbmdzJyk7CiRwcmVmbWFwWydzdXBwbGllcl9tb2R1bGVzJ10gPSBhcnJheSgnc3VwcGxpZXJfbW9kdWxlcycsJ2FycmF5X29mX3N0cmluZ3MnLCctMScpOwokcHJlZm1hcFsnYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nXSA9IGFycmF5KCdhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbicsJ3N0cmluZycpOwokcHJlZm1hcFsnbGluZWl0ZW1fZGVzY190ZW1wbGF0ZSddID0gYXJyYXkoJ2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUnLCd0ZW1wbGF0ZScpOwoKJGJ1dHRvbnMgPSBhcnJheSgpOwokYnV0dG9uc1sncmVzZXRfbGluZWl0ZW1fZGVzYyddID0gJ3Jlc2V0X2xpbmVpdGVtX2Rlc2MnOwoKLy8gcHJvY2VzcyBidXR0b25zCmZvcmVhY2goICRidXR0b25zIGFzICRidXR0b25fbmFtZSA9PiAkbWV0aG9kICkgewogICAgaWYoIGlzc2V0KCRwYXJhbXNbJGJ1dHRvbl9uYW1lXSkgKSB7CiAgICAgICAgaWYoIG1ldGhvZF9leGlzdHMoJ2NnX2Vjb21tJywkbWV0aG9kKSApCXsKICAgICAgICAgICAgY2FsbF91c2VyX2Z1bmMoYXJyYXkoJ2NnX2Vjb21tJywkbWV0aG9kKSwkcGFyYW1zKTsKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KfQoKLy8gYXNzdW1lIHN1Ym1pdCB3YXMgcHJlc3NlZC4KZm9yZWFjaCggJHByZWZtYXAgYXMgJHBhcmFtbmFtZSA9PiAkZGF0YSApIHsKICAgICRwcmVmbmFtZSA9ICRkYXRhWzBdOwogICAgJHR5cGUgPSAkZGF0YVsxXTsKCiAgICBzd2l0Y2goJHR5cGUpIHsKICAgIGNhc2UgJ2FycmF5X29mX3N0cmluZ3MnOgogICAgICAgICRub25lID0gaXNzZXQoJGRhdGFbMl0pID8gJGRhdGFbMl0gOiAnJzsKICAgICAgICAkdG1wID0gJyc7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJHBhcmFtbmFtZV0pICkgewogICAgICAgICAgICBpZiggaW5fYXJyYXkoJG5vbmUsJHBhcmFtc1skcGFyYW1uYW1lXSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkcHJlZm5hbWUsJycpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHRtcCA9IGltcGxvZGUoJywnLCRwYXJhbXNbJHBhcmFtbmFtZV0pOwogICAgICAgICAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJHByZWZuYW1lLHRyaW0oJHRtcCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJ3RlbXBsYXRlJzoKICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJHBhcmFtbmFtZV0pICkgY29udGludWU7CiAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCRwcmVmbmFtZSx0cmltKCRwYXJhbXNbJHBhcmFtbmFtZV0pKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICd1Y3N0cmluZyc6CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWyRwYXJhbW5hbWVdKSApIGNvbnRpbnVlOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCRwcmVmbmFtZSxzdHJ0b3VwcGVyKHRyaW0oJHBhcmFtc1skcGFyYW1uYW1lXSkpKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICdzdHJpbmcnOgogICAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1skcGFyYW1uYW1lXSkgKSBjb250aW51ZTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgkcHJlZm5hbWUsdHJpbSgkcGFyYW1zWyRwYXJhbW5hbWVdKSk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdmbG9hdCc6CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWyRwYXJhbW5hbWVdKSApIGNvbnRpbnVlOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCRwcmVmbmFtZSxcY2dlX3BhcmFtOjpnZXRfZmxvYXQoJHBhcmFtcywkcGFyYW1uYW1lKSk7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnaW50JzoKICAgIGRlZmF1bHQ6CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWyRwYXJhbW5hbWVdKSApIGNvbnRpbnVlOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCRwcmVmbmFtZSwoaW50KSRwYXJhbXNbJHBhcmFtbmFtZV0pOwogICAgICAgIGJyZWFrOwogICAgfQp9CgokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3ByZWZzX3NhdmVkJykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_shipping_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignc2hpcHBpbmcnKTsKCiRwb2xpY3kgPSBuZXcgXENHRWNvbW1lcmNlQmFzZVxzaGlwcGluZ19wb2xpY3koKTsKJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaGlwcGluZ19wb2xpY3knKTsKaWYoICR0bXAgKSAkcG9saWN5ID0gdW5zZXJpYWxpemUoJHRtcCk7CgppZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3N1Ym1pdCcpICkgewogICAgJGNvdW50cmllcyA9IFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdzaGlwdG8nKTsKICAgIGlmKCBpbl9hcnJheSgtMSwgJGNvdW50cmllcykgKSAkY291bnRyaWVzID0gWy0xXTsKICAgICRwb2xpY3kgPSBuZXcgXENHRWNvbW1lcmNlQmFzZVxzaGlwcGluZ19wb2xpY3koIFsnY291bnRyaWVzJz0+JGNvdW50cmllcywgJ2FsbG93X3BpY2t1cCc9PmNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnYWxsb3dfcGlja3VwJyldICk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hpcHBpbmdfcG9saWN5JyxzZXJpYWxpemUoJHBvbGljeSkpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19wcmVmc19zYXZlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7Cn0KCiRjb3VudHJpZXMgPSAkdGhpcy0+Z2V0X2NvdW50cnlfbGlzdF9vcHRpb25zKCk7CiRjb3VudHJpZXMgPSBcY2dlX2FycmF5OjpoYXNoX3ByZXBlbmQoJGNvdW50cmllcywtMSwnLS0gJy4kdGhpcy0+TGFuZygnYW55JykuJyAtLScpOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9zaGlwcGluZ190YWIudHBsJyk7CiR0cGwtPmFzc2lnbigncG9saWN5JywkcG9saWN5KTsKJHRwbC0+YXNzaWduKCdjb3VudHJpZXMnLCRjb3VudHJpZXMpOwokdHBsLT5hc3NpZ24oJ3NoaXBwaW5nX21vZHVsZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NoaXBwaW5nX21vZHVsZScsLTEpKTsKJHRwbC0+ZGlzcGxheSgpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSBleGl0OwoKdHJ5IHsKICAgIFxjZ19lY29tbTo6dmFsaWRhdGVfY29uZmlnKCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwp9CgplY2hvICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdteWluZm8nLCR0aGlzLT5MYW5nKCd0YWJfbXlpbmZvX3NldHRpbmdzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2dlbmVyYWwnLCR0aGlzLT5MYW5nKCd0YWJfZ2VuZXJhbF9zZXR0aW5ncycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwb2xpY3knLCR0aGlzLT5MYW5nKCd0YWJfcG9saWN5JykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NoaXBwaW5nJywkdGhpcy0+TGFuZygndGFiX3NoaXBwaW5nX3BvbGljeScpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzdXBwbGllcnMnLCR0aGlzLT5MYW5nKCd0YWJfc3VwcGxpZXJfc2V0dGluZ3MnKSk7CmVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncGF5bWVudCcsJHRoaXMtPkxhbmcoJ3RhYl9wYXltZW50X3NldHRpbmdzJykpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NvbmZpZycsJHRoaXMtPkxhbmcoJ3RhYl9jb25maWd1cmF0aW9uJykpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ215aW5mbycpOwppbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fbXlpbmZvX3RhYi5waHAnOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdnZW5lcmFsJyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9hY3Rpb24uYWRtaW5fZ2VuZXJhbF90YWIucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigncG9saWN5Jyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9wb2xpY3lfdGFiLnBocCc7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3NoaXBwaW5nJyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9hY3Rpb24uYWRtaW5fc2hpcHBpbmdfdGFiLnBocCc7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3N1cHBsaWVycycpOwppbmNsdWRlIGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fc3VwcGxpZXJzX3RhYi5waHAnOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwYXltZW50Jyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9wYXltZW50c190YWIucGhwJzsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYignY29uZmlnJyk7CmluY2x1ZGUgZGlybmFtZShfX0ZJTEVfXykuJy9hY3Rpb24uYWRtaW5fY29uZmlnX3RhYi5waHAnOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/CGEcommerceBase.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmRlZmluZSgnQ0dFQ09NQl9BVFRSSUJfSVRFTV9ERVNDUklQVElPTicsJ3skYXR0cmliX3RleHR9ICh7JGN1cnJlbmN5X3N5bWJvbH17JGF0dHJpYl9hZGp1c3R8bnVtYmVyX2Zvcm1hdDoyfSknKTsKCmNsYXNzIENHRWNvbW1lcmNlQmFzZSBleHRlbmRzIENHRXh0ZW5zaW9ucwp7CiAgICBmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCkgeyByZXR1cm4gRkFMU0U7IH0KICAgIGZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKSB7IHJldHVybiBGQUxTRTsgfQogICAgZnVuY3Rpb24gR2V0TmFtZSgpIHsgcmV0dXJuICdDR0Vjb21tZXJjZUJhc2UnOyB9CiAgICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7IH0KICAgIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiAnMS44LjQnOyB9CiAgICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnY2FsZ3V5MTAwMCc7IH0KICAgIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkgeyByZXR1cm4gJ2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcnOyB9CiAgICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICBmdW5jdGlvbiBIYXNBZG1pbigpIHsgcmV0dXJuIHRydWU7IH0KICAgIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpIHsgcmV0dXJuICdlY29tbWVyY2UnOyB9CiAgICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZHVsZV9kZXNjcmlwdGlvbicpOyB9CiAgICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKSB7IHJldHVybiAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKTsgfQogICAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gYXJyYXkoJ0NHRXh0ZW5zaW9ucyc9PicxLjU2LjEnKTsgfQogICAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMi4yLjInOyB9CiAgICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsgfQogICAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOyB9CiAgICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2Fza19yZWFsbHlfdW5pbnN0YWxsJyk7IH0KICAgIGZ1bmN0aW9uIEdldEV2ZW50SGVscCgkZXZlbnRfbmFtZSkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRfbmFtZSk7IH0KICAgIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oJGV2ZW50X25hbWUpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9kZXNjXycuJGV2ZW50X25hbWUpOyB9CiAgICBmdW5jdGlvbiBMYXp5TG9hZEFkbWluKCkgeyByZXR1cm4gVFJVRTsgfQogICAgZnVuY3Rpb24gTGF6eUxvYWRGcm9udGVuZCgpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKICAgIHsKICAgICAgICAkdHh0ID0gcGFyZW50OjpHZXRIZWFkZXJIVE1MKCk7CiAgICAgICAgJG9iaiA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnSlF1ZXJ5VG9vbHMnKTsKICAgICAgICBpZiggaXNfb2JqZWN0KCRvYmopICkgewogICAgICAgICAgICAkdG1wbCA9IDw8PEVPVAp7SlF1ZXJ5VG9vbHMgYWN0aW9uPSdpbmNqcycgZXhjbHVkZT0nZm9ybSd9CntKUXVlcnlUb29scyBhY3Rpb249J3JlYWR5J30KRU9UOwogICAgICAgICAgICAkdHh0IC49ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wbCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHR4dDsKICAgIH0KCiAgICBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKICAgIHsKICAgICAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CiAgICAgICAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgICAgICAgJHRoaXMtPkFkZEltYWdlRGlyKCdpY29ucycpOwoKICAgICAgICBcQ0dFY29tbWVyY2VCYXNlXHNtYXJ0eV9wbHVnaW5zOjppbml0KCk7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKLyoqCiAqIEJhc2UgZS1jb21tZXJjZSBleGNlcHRpb24gY2xhc3MKICovCmNsYXNzIENHRWNvbW1lcmNlRXhjZXB0aW9uIGV4dGVuZHMgQ21zRXhjZXB0aW9uIHt9CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/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+PHN0cm9uZz5XQVJOSU5HOjwvc3Ryb25nPiBUaGlzIHZlcnNpb24gb2YgdGhlIENHRWNvbW1lcmNlQmFzZSBtb2R1bGUgYW5kIGl0J3MgZGVwZW5kZW50IG1vZHVsdWVzIGltcGxlbWVudHMgbWFueSBjaGFuZ2VzLiAgVGhlcmUgd2lsbCBsaWtlbHkgYmUgY29tcGF0aWJpbGl0eSBpc3N1ZXMuPC9saT4KICAgIDx1bD4KCTxsST5BZGRzIHN1cHBvcnQgZm9yIG11bHRpcGxlIHBheW1lbnQgZ2F0ZXdheXMgLSBBbGwgZ2F0ZXdheXMgbXVzdCBiZSB1cGRhdGVkIHRvIHdvcmsgd2l0aCB0aGUgbmV3IG1lY2hhbmlzbS48L2xpPgoJPGxpPkF0dGVtcHQgdG8gaW1wcm92ZSBiZWhhdmlvciB3aXRoIGxvY2FsZXMgdGhhdCBkbyBub3QgdXNlcyAuIGFzIGEgZGVjaW1hbCBwb2ludCAodmFsdWVzIHN0aWxsIG5lZWQgdG8gYmUgZW50ZXJlZCB3aXRoIC4gYXMgYSBkZWNpbWFsIHBvaW50IHRob3VnaCk8L2xpPgogICAgICAgIDxsaT5BZGRzIHN1cHBvcnQgZm9yIGEgaGFuZGxpbmcgbW9kdWxlLjwvbGk+CiAgICAgICAgPGxpPkxvdHMgb2YgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgd29yay48L2xpPgoJPGxpPk5vdyByZXF1aXJlIFBIUCA1LjQuMTE8L2xpPgoJPC91bD4KICAgPC9saT4KICAgPC91bD4KCiAgIDxsaT5WZXJzaW9uIDEuNy54CiAgICAgICAgPHVsPgoJPGxpPkNsZWFuIHVwIHZhcmlvdXMgYWRtaW4gdGVtcGxhdGVzLjwvbGk+Cgk8bGk+QWRkcyBzdXBwb3J0IGZvciBhIHBhY2thZ2luZyBtb2R1bGUgdHlwZS48L2xpPgoJPGxpPlNoaXBwaW5nIG1vZHVsZXMgYXJlIG5vdyBkZXRlY3RlZCBieSBtb2R1bGVzIGltcGxlbWVudGluZyB0aGUgXENHRXh0ZW5zaW9uc1xzaGlwcGluZ19tb2R1bGUgaW50ZXJmYWNlLiAgU29tZSBzaGlwcGluZyBtb2R1bGVzIG1heSBiZSBicm9rZW48L2xpPgogICAgICAgIDxsaT5QYXltZW50IGdhdGV3YXkgbW9kdWxlcyBhcmUgbm93IGRldGVjdGVkIGJ5IG1vZHVsZXMgaW1wbGVtZW50aW5nIHRoZSBcQ0dFeHRlbnNpb25zXHBheW1lbnRfZ2F0ZXdheSBpbnRlcmZhY2UuICBTb21lIHBheW1lbnQgZ2F0ZXdheSBtb2R1bGVzIG1heSBiZSBicm9rZW4uPC9saT4KCTxsaT5BZGRzIHZhcmlvdXMgY2xhc3NlcywgaW5jbHVkaW5nIGEgYmFzZSBzaGlwcGluZyBlc3RpbWF0ZSBjbGFzcywgcGFja2luZyBsaXN0IGNsYXNzZXMsIG5ldyBpbnRlcmZhY2VzLi4uPC9saT4KCTxsaT5Db2RlIGNsZWFudXAuPC9saT4KCTwvdWw+CiAgICA8L2xpPgoKICA8bGk+VmVyc2lvbiAxLjgueAoJPGRpdiBjbGFzcz0id2FybmluZyI+VGhpcyBpcyBhIG1ham9yIHJldmlzaW9uIHRvIHRoZSBFY29tbWVyY2UgU3VpdGUuICBQbGVhc2UgaGF2ZSBiYWNrdXBzIGFuZCB0ZXN0IHByb3Blcmx5IGJlZm9yZSB1cGdyYWRpbmcuPC9kaXY+Cgk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj5Zb3UgbXVzdCBmb2xsb3cgYSBtYW51YWwgdXBncmFkZSBwcm9jZWR1cmUgaWYgdXBncmFkaW5nIGZyb20gQ0dFY29tbWVyY2VCYXNlIHYxLjc8L2Rpdj4KCTxkaXYgY2xhc3M9Indhcm5pbmciPkFmdGVyIHVwZ3JhZGluZyB0aGlzIG1vZHVsZSwgYW5kIGFsbCBzdWIgbW9kdWxlcyB5b3UgbXVzdCB2aXNpdCBlYWNoIHN1YiBtb2R1bGUgYW5kIGNsaWNrIGEgYnV0dG9uIHRvIGFjdGl2YXRlIHRoYXQgbW9kdWxlIHdpdGhpbiB0aGUgZWNvbW1lcmNlIHN1aXRlLjwvZGl2PgoJPGRpdiBjbGFzcz0id2FybmluZyI+VGhpcyByZWxlYXNlIGJyZWFrcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHNoaXBwaW5nLCB0YXggYW5kIGNhcnQgbW9kdWxlcy4gIENoZWNrIGZvciB1cGRhdGVzIHRvIHRoZXNlIG1vZHVsZXMuPC9kaXY+CiAgICAgICAgPHVsPgoJPGxpPlJlLXdvcmsgUEhQIGludGVyZmFjZXMgZm9yIHNoaXBwaW5nLCB0YXgsIHBheW1lbnQsIGhhbmRsaW5nLCBhbmQgb3RoZXIgbW9kdWxlcy4gIEJlY2F1c2Ugb2YgdGhlIHdheSBQSFAgaW50ZXJmYWNlcyB3ZXJlIGltcGxlbWVudGVkLCBpdCB3YXMgaW1wb3NzaWJsZSB0byBpbXBsZW1lbnQgYW4gdXBncmFkZSBwYXRoIHRoYXQgYWxsb3dlZCB1c2VycyB0byB1c2UgdGhlIENNU01TIE1vZHVsZU1hbmFnZXIgdG8gZ2V0IHVwZ3JhZGVzIGZyb20gdGhlIGZvcmdlLjwvbGk+Cgk8bGk+QWRkcyBuZXcgaW50ZXJmYWNlcyBmb3IgcHJvbW90aW9ucyBtb2R1bGVzLjwvbGk+Cgk8bGk+UmUtd29yayB0aGUgdXNlciBpbnRlcmZhY2UgZm9yIHN1Yi1tb2R1bGVzIGluIGEgZHJhbWF0aWMgd2F5LiAgIFNoaXBwaW5nLCB0YXgsIHBheW1lbnQsIGhhbmRsaW5nLCBwYWNrYWdpbmcgYW5kIGNhcnQgbW9kdWxlcyBub3cgdXNlIGEgYnV0dG9uIHdpdGhpbiB0aGUgbW9kdWxlIHRvIGluZGljYXRlIHRoYXQgdGhhdCBtb2R1bGUgc2hvdWxkIGJlIHVzZWQgZm9yIGEgc3BlY2lmaWMgdHlwZS48L2xpPgoJPGxpPkFkZHMgZXh0ZW5zaXZlIHVzZSBvZiBuYW1lc3BhY2luZywgdGhvdWdoIG5vdCBjb21wbGV0ZSB5ZXQuPC9saT4KCTxsaT5Ob3cgcmVxdWlyZXMgQ01TTVMgMi4yLjIgb3IgZ3JlYXRlci48L2xpPgoJPC91bD4KICA8L2xpPgo8L3VsPgo=]]></data>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBjb21tb24gYmFzZSBvZiBjb21tdW5pY2F0aW9ucyBmb3IgYWxsIGVjb21tZXJjZSBtb2R1bGVzLiAgSXQgYWxsb3dzIHNwZWNpZnlpbmcgd2hpY2ggYXZhaWxhYmxlIHN1cHBsaWVycyB5b3Ugd291IHdvdWxkIGxpa2UgdG8gdXNlLCBhcyB3ZWxsIGFzIGNhcnQsIHRheCwgc2hpcHBpbmcsIGFuZCBwYXltZW50IGdhdGV3YXlzLiAgSXQgYWxzbyBwcm92aWRlcyBhIGNvbXBsZXggIEFQSSBsaWJyYXJ5IGZvciBjb21tdW5pY2F0aW9uIG9mLCBhbmQgbWFuaXB1bGF0aW9uIG9mIGRhdGEgYmV0d2VlbiB0aGUgdmFyaW91cyBtb2R1bGVzLjwvcD4KCjxoMz5GZWF0dXJlczo8L2gzPgogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIG5vIGZyb250ZW5kIGludGVyZmFjZSBvZiBpdHMgb3duLiBJdCdzIHB1cnBvc2UgaXMgdG8gZmFjaWxpdGF0ZSBjb21tdW5pY2F0aW9uIGFuZCBwcm92aWRlIGNvbW1vbiBkYXRhIGVsZW1lbnRzIGJldHdlZW4gdGhlIHZhcmlvdXMgZGlmZmVyZW50IG1vZHVsZXMgcmVxdWlyZWQgZm9yIGFuIGUtY29tbWVyY2Ugc29sdXRpb24uICBUaGlzIGFsbG93cyBmbGV4aWJpbGl0eSBpbiBzZWxlY3RpbmcgZGlmZmVyZW50IHR5cGVzIG9mIHNvbHV0aW9ucyBmb3IgZGlmZmVyZW50IGFwcGxpY2F0aW9ucy4gIGkuZS46IGRpZmZlcmVudCBjYXJ0LCBzaGlwcGluZywgdGF4LCBoYW5kbGluZywgcGFja2FnaW5nLCBwYXltZW50LCBvciBldmVuIG9yZGVyIG1hbmFnZW1lbnQgbW9kdWxlcyBtYXkgYmUgcG9zc2libGUuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBJdDo8L2gzPgo8dWw+CiAgICA8bGk+UmVzZWFyY2ggYW5kIGluc3RhbGwgYWxsIG9mIHRoZSBkZXNpbnJlZCBlY29tbWVyY2UgbW9kdWxlcyB0aGF0IHlvdSB3aWxsIHJlcXVpcmUsIGFsb25nIHdpdGggdGhlaXIgZGVwZW5kZW5jaWVzLjwvbGk+CiAgICA8bGk+VmlzaXQgZWFjaCBtb2R1bGUncyBhZG1pbiBwYW5lbCBhbmQgZW50ZXIgdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24uCiAgICAgICAgPHA+WW91IG1heSB2aXNpdCB0aGVzZSBhZG1pbiBwYW5lbHMgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBjb25maWd1cmF0aW9uIHByb2Nlc3MuCiAgICA8L2xpPgogICAgPGxpPlZpc2l0IHRoZSBDR0Vjb21tZXJjZUJhc2UgYWRtaW4gcGFuZWwgYW5kIGJlZ2luIGNvbm5lY3RpbmcgYWxsIG9mIHRoZSBtb2R1bGVzIGFuZCBkZWZpbmluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB5b3VyIGFwcGxpY2F0aW9uLgogICAgICAgIDx1bD4KCSAgPGxpPjxzdHJvbmc+UmVxdWlyZWQ6PC9zdHJvbmc+IEVudGVyIHlvdXIgY29tcGFueSBhZGRyZXNzIGluIHRoZSAmcXVvdDtTdG9yZSBBZGRyZXNzJnF1b3Q7IHRhYi4KCSAgICAgPHA+VGhpcyBpbmZvcm1hdGlvbiBjYW4gYmUgcHJvdmlkZWQgdG8gcGF5bWVudCBnYXRld2F5cyBhbmQgc2hpcHBpbmcgbW9kdWxlcywgYW5kIG1heSBiZSBkaXNwbGF5ZWQgb24gaW52b2ljZXMsIGV0Yy48L3A+CgkgIDwvbGk+CgkgIDxsaT48c3Ryb25nPlJlcXVpcmVkOjwvc3Ryb25nPiBFbnRlciBnZW5lcmFsIHNldHRpbmdzIHN1Y2ggYXMgd2VpZ2h0IGFuZCBsZW5ndGggdW5pdHMsIGFuZCB0aGUgY3VycmVuY3kgdGhhdCB5b3Ugd2lsbCBiZSBzZWxsaW5nIGluLgoJICAgICA8cD5UaGUgY3VycmVuY3kgc3ltYm9sIGlzIHVzZWQgZm9yIGRpc3BsYXkgcHVycG9zZXMuPC9wPgoJICAgICA8cD5UaGUgdGhyZWUgY2hhcmFjdGVyIGN1cnJlbmN5IGNvZGUgaXMgcHJvdmlkZWQgdG8gc2hpcHBpbmcsIHBheW1lbnQgYW5kIG90aGVyIG1vZHVsZXMgZm9yIHByaWNlIGNhbGN1bGF0aW9ucy48L3A+CgkgICAgIDxwPlRoZSB3ZWlnaHQgdW5pdHMgZGVzY3JpYmUgdGhlIHVuaXRzIHRoYXQgeW91IHdpbGwgZW50ZXIgd2VpZ2h0cyBvZiBwcm9kdWN0cy4gIFBsZWFzZSBjaG9vc2UgZWl0aHIgZywga2csIG9yIGxiLjwvcD4KCSAgICAgPHA+VGhlIGxlbmd0aCB1bml0cyBkZXNjcmliZSB0aGUgdW5pdHMgdGhhdCB5b3Ugd2lsbCBlbnRlciBkaW1lbnNpb25zIG9mIHByb2R1Y3RzIGFuZCBzaGlwcGluZyBveGVzLiAgUGxlYXNlIGNob29zZSBpdGhlciBjbSwgb3IgaW5jaGVzLjwvcD4KCSAgICAgPHAgY2xhc3M9Indhcm5pbmciPkl0IGlzIGltcG9ydGFudCB0aGF0IHlvdSBkbyBub3QgY2hhbmdlIHRoZXNlIHNldHRpbmdzIG9uY2UgdGhlIGFwcGxpY2F0aW9uIGVudGVyZXMgaW50byB0aGUgcHJvZHVjdGlvbiBzdGFnZSBhbmQgeW91IGFyZSB3b3JraW5nIHdpdGggcmVhbCBpbmZvcm1hdGlvbi48L3A+CgkgIDwvbGk+CgkgIDxsaT5EZWZpbmUgYSBwb2xpY3kgZm9yIHRoZSBjYXJ0IG1vZHVsZSB0byBmb2xsb3cuCgkgICAgIDxwPlRoaXMgcG9saWN5IGFsbG93cyB0aGUgY2FydCBtb2R1bGUgYW5kIHBvdGVudGlhbGx5IG90aGVyIG1vZHVsZXMgdG8ga25vdyBob3cgdG8gYmVoYXZlLjwvcD4KCSAgPC9saT4KCSAgPGxpPjxzdHJvbmc+UmVxdWlyZWQ6PC9zdHJvbmc+IFNlbGVjdCBvbmUsIG9yIG1vcmUgc291cmNlIG1vZHVsZXMuCgkgICAgIDxwPlNvdXJjZSBtb2R1bGVzIGFyZSBtb2R1bGVzIHRoYXQgY2FuIHByb3ZpZGUgaXRlbXMgKHByb2R1Y3RzLCBvciBzZXJ2aWNlcykgdG8gdGhlIGNhcnQuPC9wPgoJICA8L2xpPgoJICA8bGk+PHN0cm9uZz5SZXF1aXJlZDo8L3N0cm9uZz4gU2VsZWN0IGEgY2FydCBtb2R1bGUuCgkgICAgIDxwPkNhcnQgcHJvdmlkZXIgbW9kdWxlcyBhbGxvdyBjdXN0b21lcnMgdG8gYWRkIGl0ZW1zIHRvIHRoZSBjYXJ0LCBhbmQgbWF5IHByb3ZpZGUgZGlmZmVyZW50IGZlYXR1cmVzIGFuZCBhcHBlYXJhbmNlcy48L3A+CgkgIDwvbGk+CgkgIDxsaT5TZWxlY3QgYSB0YXggbW9kdWxlLgoJICAgICA8cD5UYXggcHJvdmlkZXIgbW9kdWxlcyBhbGxvdyBmb3IgZGlmZmVyZW50IHdheXMgdG8gY2FsY3VsYXRlIHRheGVzIG9uIGN1c3RvbWVyIG9yZGVycnMuPC9wPgoJICA8L2xpPgoJICA8bGk+U2VsZWN0IGEgcGFja2FnaW5nIHByb3ZpZGVyLgoJICAgICA8cD5UaGVzZSBtb2R1bGVzIGFyZSB1c2VkIHRvIG9yZ2FuaXplIGEgY2FydCBjb250ZW50cyBpbnRvIHZhcmlvdXMgcGFja2FnZXMsIHRoYXQgY2FuIHRoZW4gYmUgc2hpcHBlZC4gICBTb21lIHNoaXBwaW5nIG1vZHVsZXMgbWF5IHJlcXVpcmUgcGFja2FnaW5nIG1vZHVsZXMgdG8gcGVyZm9ybSBjb3N0IGVzdGltYXRpb24uPC9wPgoJICA8L2xpPgoJICA8bGk+T3B0aW9uYWxseSBzZWxlY3QgYSBoYW5kbGluZyBwcm92aWRlci4KCSAgICAgPHA+VGhlc2UgcHJvdmlkZXIgbW9kdWxlcyBhbGxvdyBjYWxjdWxhdGluZyBhbmQgYWRkaW5nIGhhbmRsaW5nIGNoYXJnZXMgaW4gdmFyaW91cyB3YXlzLjwvcD4KCSAgPC9saT4KCSAgPGxpPk9wdGlvbmFsbHkgc2VsZWN0IGEgc2hpcHBpbmcgcHJvdmlkZXIuCgkgICAgIDxwPlRoZXNlIHByb3ZpZGVyIG1vZHVsZXMgYWxsb3cgY2FsY3VsYXRpbmcgc2hpcHBpbmcgY29zdHMgZm9yIHBoeXNpY2FsIHByb2R1Y3RzLjwvcD4KCSAgPC9saT4KCSAgPGxpPk9wdGlvbmFsbHkgc2VsZWN0IGEgcHJvbW90aW9uIG1vZHVsZS4KCSAgICAgPHA+VGhlc2UgcHJvdmlkZXIgbW9kdWxlcyBhbGxvdyBtYW5hZ2luZyBhbmQgY2FsY3VsYXRpbmcgZGlzY291bnRzIGZvciBvcmRlcnMuPC9wPgoJICA8L2xpPgoJICA8bGk+T3B0aW9uYWxseSBzZWxlY3Qgb25lIG9yIG1vcmUgcGF5bWVudCBtb2R1bGVzLgoJICAgICA8cD5UaGVzZSBwcm92aWRlciBtb2R1bGVzIGFsbG93IHByb3ZpZGluZyBkaWZmZXJlbnQgbWV0aG9kcyBmb3IgY3VzdG9tZXJzIHRvIHBheSBmb3IgdGhlaXIgb3JkZXIuPC9wPgoJICA8L2xpPgoJPC91bD4KICAgIDwvbGk+CjwvdWw+Cgo8aDM+U21hcnR5IFRhZ3M8L2gzPgo8dWw+CiAgPGxpPjxjb2RlIHN0eWxlPSJjb2xvcjogYmx1ZTsiPntjZ2Vjb21tX2Zvcm1fYWRkdG9jYXJ0IHNvdXJjZT1Qcm9kdWN0cyBwcm9kdWM9XCRudW19PC9jb2RlPgogICA8cD5UaGlzIHRhZyB1c2VzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY2FydCBtb2R1bGUgYW5kIGRpc3BsYXlzIGEgZm9ybSB0byBhbGxvdyB0aGUgdXNlciB0byBhZGQgYW4gaXRlbSB0byB0aGUgY2FydC48YnIvPlBhcmFtZXRlcnM6PC9wPgogICA8dWw+CiAgICA8bGk+c291cmNlIC0gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgc291cmNlIG1vZHVsZS4gIFRoaXMgbW9kdWxlIG11c3QgYmUgc2VsZWN0ZWQgYXMgYSBzdXBwbGllciBpbiB0aGUgQ0dFY29tbWVyY2VCYXNlIGFkbWluIHBhbmVsLjwvbGk+CiAgICA8bGk+cHJvZHVjdCAtIHNwZWNpZnkgdGhlIHVuaXF1ZSA8ZW0+KGludGVnZXIpPC9lbT4gaWRlbnRpZmllciBvZiB0aGUgcHJvZHVjdCB3aXRoaW4gdGhlIHNvdXJjZSBtb2R1bGUuPC9saT4KICAgPC91bD4KICAgPHA+QW55IG90aGVyIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhpcyB0YWcgYXJlIHBhc3NlZCB0byB0aGUgYXBwcm9wcmlhdGUgbW9kdWxlLCBmb3IgZXhhbXBsZSBmb3Igc3BlY2lmeWluZyBhIGRpZmZlcmVudCB0ZW1wbGF0ZSB5b3UgbWF5IHdhbnQgdG8gYWRkIGFuICZxdW90O2FkZHRvY2FydHRlbXBsYXRlPWZvbyZxdW90OyBhcmd1bWVudC48L3A+CiAgPC9saT4KICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NnZWNvbW1fZXJhc2VjYXJ0fTwvY29kZT4KICAgIDxwPlRoaXMgdGFnIGVtcHRpZXMgYWxsIGluZm9ybWF0aW9uIGZyb20gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYXJ0LCBhbmQgc2V0cyB0aGUgdmlzaXRvcnMgYmFza2V0IGJhY2sgdG8gYSBjb21wbGV0ZWx5IGVtcHR5IHN0YXRlLjwvcD4KICA8L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jb21wYW55X2FkZHJlc3MgW2Fzc2lnbj0nc3RyaW5nJ119PC9jb2RlPgogICA8cD5UaGlzIHRhZyByZXRyaWV2ZXMgdGhlIGNvbXBhbnkgYWRkcmVzcyBmcm9tIHRoZSBkYXRhYmFzZSwgYW5kIGFzc2lnbnMgaXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L3A+CiAgPC9saT4KICA8bGk+PGNvZGUgc3R5bGU9ImNvbG9yOiBibHVlOyI+e2NnZWNvbW1fY3VycmVuY3lfY29kZSBbYXNzaWduPXN0cmluZ119PC9jb2RlPiAtIFJldHVybnMgdGhlIGN1cnJlbnRseSBzZXQgY3VycmVuY3kgY29kZS48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jdXJyZW5jeV9zeW1ib2wgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IGN1cnJlbmN5IHN5bWJvbC48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV93ZWlnaHRfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IHdlaWdodCB1bml0cy48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV93ZWlnaHRfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IHdlaWdodCB1bml0cy48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9sZW5ndGhfdW5pdHMgW2Fzc2lnbj1zdHJpbmddfTwvY29kZT4gLSBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2V0IGxlbmd0aCB1bml0cy48L2xpPgogIDxsaT48Y29kZSBzdHlsZT0iY29sb3I6IGJsdWU7Ij57Y2dlY29tbV9jYXJ0aXRlbV9leGlzdHMgW3NvdXJjZT1zdHJpbmddIFtwcm9kdWN0PWludGVnZXJ8c2t1PXN0cmluZ10gW2V4dHJhPW1peGVkXSBhc3NpZ249c3RyaW5nXX08L2NvZGU+CiAgICA8cD5SZXR1cm5zIGVpdGhlciAwIG9yIDEgZGVwZW5kaW5nIG9uIGlmIHRoZSBpdGVtIChpZGVudGlmaWVkIGJ5IGVpdGhlciB0aGUgcHJvdWN0IGlkLCBvciBza3UgZXhpc3RzIGluIHRoZSBjYXJ0LjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByaXZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2dlY29tYmFzZSI+aGVyZTwvYT4uICBQbGVhc2UgYmUgdmVyYm9zZSBhbmQgZGVzY3JpcHRpdmUgd2hlbiBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBhbmQgZm9yIGJ1ZyByZXBvcnRzIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHByb3ZpZGVkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcmVsaWFibHkgcmVwcm9kdWNlIHRoZSBpc3N1ZS48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LiAgV2hlbiBkZXNjcmliaW5nIGFuIGlzc3VlIHBsZWFzZSBtYWtlIGFuIGVmZm9ydCB0byBwcml2aWRlIGFsbCByZWxhdmFudCBpbmZvcm1hdGlvbiwgYSB0aG9yb3VnaCBkZXNjcmlwdGlvbiBvZiB5b3VyIGlzc3VlLCBhbmQgc3RlcHMgdG8gcmVwcm9kdWNlIGl0IG9yIHlvdXIgZGlzY3Vzc2lvbiBtYXkgYmUgaWdub3JlZC48L2xpPgo8bGk+VGhlIGF1dGhvciwgY2FsZ3V5MTAwMCwgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5LiAgSG93ZXZlciwgcGxlYXNlIHVzZSB0aGlzIGFzIGEgbGFzdCByZXNvcnQsIGFuZCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBmb2xsb3dlZCBhbGwgYXBwbGljYWJsZSBpbnN0cnVjdGlvbnMgb24gdGhlIGZvcmdlLCBpbiB0aGUgZm9ydW1zLCBldGMuPC9saT4KPC91bD4KCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsIDxhIGhyZWY9Im1haWx0bzpjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnIj4mbHQ7Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cml0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uPC9wPgo8cD5Ib3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCmluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCnNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgpZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQphbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQpPciByZWFkIGl0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+b25saW5lPC9hPjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_myinfo_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbXlpbmZvX2FkZHJlc3MnLCcnKTsKJG15X2FkZHJlc3MgPSAnJzsKaWYoICR0bXAgKSB7CiAgICAkbXlfYWRkcmVzcyA9IHVuc2VyaWFsaXplKCR0bXApOwp9CmVsc2UgewogICAgJG15X2FkZHJlc3MgPSBuZXcgY2dfZWNvbW1fY29tcGFueV9hZGRyZXNzOwp9CgovLwovLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5Ci8vCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlX215aW5mbycpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdteV9hZGRyZXNzJywkbXlfYWRkcmVzcyk7CiRzdGF0ZV9saXN0ID0gY2dlX2FycmF5OjpoYXNoX3ByZXBlbmQoJHRoaXMtPmdldF9zdGF0ZV9saXN0X29wdGlvbnMoKSwnLTEnLCR0aGlzLT5MYW5nKCdub3RfYXBwbGljYWJsZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdGF0ZV9saXN0Jywkc3RhdGVfbGlzdCk7CiRzbWFydHktPmFzc2lnbignY291bnRyeV9saXN0JywkdGhpcy0+Z2V0X2NvdW50cnlfbGlzdF9vcHRpb25zKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9teWluZm9fdGFiLnRwbCcpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_payments_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX3NhdmVfcHJlZnMnLCRyZXR1cm5pZCxhcnJheSgndGhldGFiJz0+J3BheW1lbnQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKJHRtcF9tb2R1bGVfbGlzdCA9IG1vZHVsZV9oZWxwZXI6OmdldF9tb2R1bGVzX3dpdGhfY2FwYWJpbGl0eSgncGF5bWVudF9nYXRld2F5JyxhcnJheSgnYmFzZXZlcnNpb24nPT4nMS42JykpOwppZiggY291bnQoJHRtcF9tb2R1bGVfbGlzdCkgKSB7CiAgICAkbW9kdWxlX2xpc3QgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHRtcF9tb2R1bGVfbGlzdCBhcyAkbW9kdWxlX25hbWUgKSB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2QgKSBjb250aW51ZTsKICAgICAgICBpZiggISRtb2QtPklzQ29uZmlndXJlZCgpICkgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwkbW9kdWxlX25hbWUuJyBpcyBub3QgY29uZmlndXJlZCcpOwogICAgICAgIGlmKCAkbW9kICYmICRtb2QtPklzQ29uZmlndXJlZCgpICkgJG1vZHVsZV9saXN0WyRtb2R1bGVfbmFtZV0gPSAkbW9kdWxlX25hbWU7CiAgICB9CiAgICBpZiggY291bnQoJG1vZHVsZV9saXN0KSApICRzbWFydHktPmFzc2lnbignbW9kdWxlX2xpc3QnLCRtb2R1bGVfbGlzdCk7Cn0KCiRwYXltZW50X21vZHVsZXMgPSBhcnJheSgpOwokdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlbF9wYXltZW50X21vZHVsZXMnKTsKaWYoICR0bXAgKSAkcGF5bWVudF9tb2R1bGVzID0gZXhwbG9kZSgnLCcsJHRtcCk7CiRzbWFydHktPmFzc2lnbignc2VsX3BheW1lbnRfbW9kdWxlcycsICRwYXltZW50X21vZHVsZXMpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9wYXltZW50c190YWIudHBsJyk7CgojCiMgRU9GCiMKPz4K]]></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_suppliers_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRtb2R1bGVfbGlzdCA9IG1vZHVsZV9oZWxwZXI6OmdldF9tb2R1bGVzX3dpdGhfbWV0aG9kKCdnZXRfcHJvZHVjdF9pbmZvJyk7CiRtb2R1bGVfbGlzdCA9IGNnZV9hcnJheTo6aGFzaF9wcmVwZW5kKCRtb2R1bGVfbGlzdCwtMSwkdGhpcy0+TGFuZygnbm9uZScpKTsKCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX3N1cHBsaWVyc190YWIudHBsJyk7CiR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlX3ByZWZzJywkcmV0dXJuaWQsIGFycmF5KCd0aGV0YWInPT4nc3VwcGxpZXJzJykpKTsKJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCdzdXBwbGllcl9hbGxfbW9kdWxlcycsJG1vZHVsZV9saXN0KTsKJHRtcCA9IGNnX2Vjb21tOjpnZXRfc3VwcGxpZXJfbW9kdWxlcygpOwokdHBsLT5hc3NpZ24oJ3N1cHBsaWVyX21vZHVsZXMnLCR0bXApOwoKJHRwbC0+YXNzaWduKCdpbnB1dF9saW5laXRlbV9kZXNjX3RlbXBsYXRlJywKCQkkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLAoJCQkJICAgICAgJHRoaXMtPkdldFRlbXBsYXRlKCdsaW5laXRlbV9kZXNjX3RlbXBsYXRlJyksCgkJCQkgICAgICAnbGluZWl0ZW1fZGVzY190ZW1wbGF0ZScpKTsKCiR0cGwtPmFzc2lnbignYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nLAoJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbicsQ0dFQ09NQl9BVFRSSUJfSVRFTV9ERVNDUklQVElPTikpOwokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0EKJGxhbmdbJ2FsbG93X3BpY2t1cCddID0gJ0FsbG93IExvY2FsIFBpY2t1cCc7CiRsYW5nWydhbnknXSA9ICdBbnknOwokbGFuZ1snYXNrX3JlYWxseV91bmluc3RhbGwnXSA9ICdBcmUgeW91IHJlYWxseSBzdXJlIHRoYXQgeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgbW9kdWxlJzsKJGxhbmdbJ2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJ10gPSAnUHJvZHVjdCBBdHRyaWJ1dGUgRGlzcGxheSBUZW1wbGF0ZSc7CgojQgoKCiNDCiRsYW5nWydjYXJ0X21vZHVsZSddID0gJ0NhcnQgTW9kdWxlJzsKJGxhbmdbJ2N1cnJlbmN5X2NvZGUnXSA9ICdDdXJyZW5jeSBDb2RlJzsKJGxhbmdbJ2N1cnJlbmN5X3N5bWJvbCddID0gJ0N1cnJlbmN5IFN5bWJvbCc7CgojRAoKI0UKJGxhbmdbJ2Vycl9jb25maWdfYWRkcmVzcyddID0gJ1RoZSBzcGVjaWZpZWQgc3RvcmUgYWRkcmVzcyBpcyBpbmNvbXBsZXRlIG9yIGludmFsaWQnOwokbGFuZ1snZXJyX2NvbmZpZ19jdXJyZW5jeSddID0gJ1RoZSBjdXJyZW5jeSBpbmZvcm1hdGlvbiBzcGVjaWZpZWQgaXMgaW5jb21wbGV0ZSBvciBpbnZhbGlkJzsKJGxhbmdbJ2Vycl9jb25maWdfd2VpZ2h0J10gPSAnVGhlIHdlaWdodCB1bml0cyBzcGVjaWZpZWQgYXJlIGluY29tcGxldGUgb3IgaW52YWxpZCc7CiRsYW5nWydlcnJfY29uZmlnX2xlbmd0aCddID0gJ1RoZSB3ZWlnaHQgdW5pdHMgc3BlY2lmaWVkIGFyZSBpbmNvbXBsZXRlIG9yIGludmFsaWQnOwokbGFuZ1snZXJyX2NvbmZpZ19zdXBwbGllcnMnXSA9ICdObyB2YWxpZCBzdXBwbGllciBtb2R1bGVzIGNvbmZpZ3VyZWQnOwokbGFuZ1snZXJyX2NvbmZpZ19jYXJ0J10gPSAnQSBjYXJ0IG1vZHVsZSBpcyBub3Qgc2VsZWN0ZWQsIG9yIG5vdCBjb25maWd1cmVkJzsKJGxhbmdbJ2Vycl9jb25maWdfc2hpcHBpbmdfcG9saWN5J10gPSAnWW91IGhhdmUgbm90IHlldCBzcGVjaWZpZWQgYSB2YWxpZCBzaGlwcGluZyBwb2xpY3knOwokbGFuZ1snZXJyX2dhdGV3YXlzX25vdGZvdW5kJ10gPSAnV2UgY291bGQgbm90IGZpbmQgYW55IHZhbGlkIHBheW1lbnQgZ2F0ZXdheXMgaW5zdGFsbGVkIGluIHRoaXMgc3lzdGVtLiAgUGxlYXNlIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGluc3RhbGxlZCwgYW5kIGNvbmZpZ3VyZWQgYXQgbGVhc3Qgb25lIGNvbXBhdGlibGUgZ2F0ZXdheSBtb2R1bGUuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRhZGRyZXNzJ10gPSAnQWRkcmVzcyBzcGVjaWZpZWQgaXMgaW52YWxpZCAobWlzc2luZyBvbmUgb3IgbW9yZSByZXF1aXJlZCBmaWVsZHM/JzsKJGxhbmdbJ2V2ZW50X2Rlc2NfQ2FydEFkanVzdGVkJ10gPSAnQ2FsbGVkIHdoZW4gYnVsayBhZGp1c3RtZW50cyBhcmUgZG9uZSB0byB0aGUgY2FydCwgb3Igb25lIG9mIGl0cyBiYXNrZXRzJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfQ2FydEl0ZW1BZGRQcmUnXSA9ICdDYWxsZWQgcHJpb3IgdG8gYW4gaXRlbSBiZWluZyBhZGRlZCB0byB0aGUgY2FydCc7CiRsYW5nWydldmVudF9kZXNjX0NhcnRJdGVtQWRkZWQnXSA9ICdDYWxsZWQgd2hlbiBhIHNpbmdsZSBwcm9kdWN0IG9yIHNlcnZpY2UgaXMgYWRkZWQgdG8gdGhlIGNhcnQnOwokbGFuZ1snZXZlbnRfZGVzY19PcmRlckNyZWF0ZWQnXSA9ICdDYWxsZWQgYWZ0ZXIgYW4gb3JkZXIgaXMgaW5pdGlhbGx5IGluc2VydGVkIGludG8gdGhlIGRhdGFiYXNlJzsKJGxhbmdbJ2V2ZW50X2Rlc2NfT3JkZXJEZWxldGVkJ10gPSAnQ2FsbGVkIGFmdGVyIGFuIG9yZGVyIGhhcyBiZWVuIGNvbXBsZXRlbHkgcmVtb3ZlZCc7CiRsYW5nWydldmVudF9kZXNjX09yZGVyVXBkYXRlZCddID0gJ0NhbGxlZCBhZnRlciBhbiBleGlzdGluZyBvcmRlciBoYXMgYmVlbiBzYXZlZCc7CiRsYW5nWydldmVudF9oZWxwX0NhcnRJdGVtQWRkUHJlJ10gPSA8PDxFT1QKPHA+U2VudCBwcmlvciB0byBhbiBpdGVtIGJlaW5nIGFkZGVkIHRvIHRoZSBjYXJ0LCB0aGlzIGV2ZW50IGlzIGNhbGxlZCBhZnRlciB0aGUgY2FydCBwb2xpY3kgaXMgY2hlY2tlZCwgYW5kIGNhbiBiZSB1c2VkIHRvIGFsdGVyIHRoZSBpdGVtLjwvcD4KPGg0PlBhcmFtZXRlcnM6PC9oND4KPHVsPgo8bGk+JnF1b3Q7ZXhpc3RpbmdfaXRlbXMmcXVvdDsgLSA8ZW0+KHJlYWQgb25seSk8L2VtPiAgQW4gYXJyYXkgb2YgY2dfZWNvbW1fY2FydGl0ZW0gaXRlbXMgcmVwcmVzZW50aW5nIHRoZSBleGlzdGluZyBpdGVtcyBpbiB0aGUgY2FydC48L2xpPgo8bGk+JnF1b3Q7Y2FydF9pdGVtJnF1b3Q7IC0gPGVtPihtb2RpZmlhYmxlKTwvZW0+IEEgcmVmZXJlbmNlIChtb2RpZmlhYmxlKSB0byBhIGNnX2Vjb21tX2NhcnRpdGVtIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGl0ZW0gdGhhdCBpcyBwcm9wb3NlZCB0byBhZGQgdG8gdGhlIGNhcnQuPC9saT4KPC91bD4KRU9UOwokbGFuZ1snZXZlbnRfaGVscF9DYXJ0QWRqdXN0ZWQnXSA9IDw8PEVPVAo8cD5TZW50IHdoZW4gYnVsayBhZGp1c3RtZW50cyBhcmUgZG9uZSB0byB0aGUgY2FydCwgb3Igb25lIG9mIGl0cyBiYXNrZXRzLjwvcD4KPGg0PlBhcmFtZXRlcnM6PC9oND4KPHVsPgo8bGk+JnF1b3Q7Y2FydF9pdGVtcyZxdW90OyAtIEFuIGhhc2ggb2YgYmFza2V0cywgZWFjaCBjb250YWluaW5nIGFuIGFycmF5IG9mIGNhcnQgaXRlbSBvYmplY3RzIGFuZCBzb21lIHN1bW1hcnkgaW5mb3JtYXRpb24uPC9saT4KPGxpPiZxdW90O3N0YXR1cyZxdW90OyAtIEEgc3RhdHVzIHN0cmluZywgaW5kaWNhdGluZyB3ZXRoZXIgdGhpcyBpcyBiZWZvcmUsIG9yIGFmdGVyIHRoZSBpdGVtcyBoYXZlIGNoYW5nZWQuPC9saT4KPGxpPiZxdW90O2V4dHJhJnF1b3Q7IC0gQW4gYWRkaXRpb25hbCBzdHJpbmcgdGhhdCBtYXkgcHJvdmlkZSBzb21lIHN0YXRlIGluZm9ybWF0aW9uIGFzIHRvIHdoZW4gdGhpcyBhY3Rpb24gd2FzIGNhbGxlZCc7CjwvdWw+CkVPVDsKJGxhbmdbJ2V2ZW50X2hlbHBfQ2FydEl0ZW1BZGRlZCddID0gPDw8RU9UCjxwPlNlbnQgd2hlbiBidWxrIGFkanVzdG1lbnRzIGFyZSBkb25lIHRvIHRoZSBjYXJ0LCBvciBvbmUgb2YgaXRzIGJhc2tldHMuPC9wPgo8aDQ+UGFyYW1ldGVyczo8L2g0Pgo8dWw+CjxsaT4mcXVvdDtjYXJ0X2l0ZW0mcXVvdDsgLSBUaGUgc2luZ2xlIGNhcnQgaXRlbSBvYmplY3QgdGhhdCB3YXMgYWRkZWQuPC9saT4KPC91bD4KRU9UOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlckNyZWF0ZWQnXSA9IDw8PEVPVAo8cD5TZW50IGFmdGVyIGFuIG9yZGVyIGlzIGluaXRpYWxseSBpbnNlcnRlZCBpbnRvIHRoZSBkYXRhYmFzZS48L3A+CjxoND5QYXJhbWV0ZXJzOjwvaDQ+Cjx1bD4KPGxpPiZxdW90O29yZGVyX2lkJnF1b3Q7IC0gVGhlIG5ld2x5IGNyZWF0ZWQgb3JkZXIgaWQuPC9saT4KPC91bD4KRU9UOwokbGFuZ1snZXZlbnRfaGVscF9PcmRlckRlbGV0ZWQnXSA9IDw8PEVPVAo8cD5TZW50IGFmdGVyIGFuIG9yZGVyIGlzIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UuPC9wPgo8aDQ+UGFyYW1ldGVyczo8L2g0Pgo8dWw+CjxsaT4mcXVvdDtvcmRlcl9pZCZxdW90OyAtIFRoZSBkZWxldGVkIG9yZGVyIGlkLjwvbGk+CjwvdWw+CkVPVDsKJGxhbmdbJ2V2ZW50X2hlbHBfT3JkZXJVcGRhdGVkJ10gPSA8PDxFT1QKPHA+U2VudCBhZnRlciBhbiBvcmRlciBpcyB1cGRhdGVkPC9wPgo8aDQ+UGFyYW1ldGVyczo8L2g0Pgo8dWw+CjxsaT4mcXVvdDtvcmRlcl9pZCZxdW90OyAtIFRoZSBvcmRlciBpZC48L2xpPgo8L3VsPgpFT1Q7CgojRgokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnQ2FsZ3V5cyBFY29tbWVyY2UgQmFzZSc7CgojRwokbGFuZ1snZ2F0ZXdheV9wb2xpY3knXSA9ICdHYXRld2F5IFBvbGljeSc7CgojSAokbGFuZ1snaGFuZGxpbmdfbW9kdWxlJ10gPSAnSGFuZGxpbmcgTW9kdWxlJzsKCiNJCiRsYW5nWydpbmZvX2NvbmZpZ190YWInXSA9ICdUaGlzIHBhbmVsIHNob3dzIHdoYXQgc3ViIG1vZHVsZXMgYXJlIHVzZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIEUtY29tbWVyY2UgY29uZmlndXJhdGlvbiwgYW5kIHRoZWlyIGN1cnJlbnQgc3RhdHVzLiAgSGVyZSB5b3UgY2FuIHJlbW92ZSBhIG1vZHVsZSBmcm9tIHRoZSBjb25maWd1cmF0aW9uLiAgVG8gYWRkIHRoZSBtb2R1bGUgYmFjayB0byB0aGUgRS1jb21tZXJjZSBjb25maWd1cmF0aW9uIHlvdSBzaG91bGQgdmlzaXQgdGhlIG1vZHVsZVwncyBhZG1pbiBwYW5lbC4nOwokbGFuZ1snaW5mb19zaGlwcGluZ19waWNrdXAnXSA9ICdJZiBlbmFibGVkLCBjdXN0b21lcnMgd2lsbCBoYXZlIHRoZSBvcHRpb24gZHVyaW5nIGNoZWNrb3V0IHRvIGFsbG93IHBpY2tpbmcgdXAgaXRlbXMgYXQgeW91ciBzdG9yZSBsb2NhdGlvbic7CiRsYW5nWydpbmZvX3NoaXBwaW5nX3BvbGljeSddID0gJ1RoaXMgdGFiIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgZGVmYXVsdCBzaGlwcGluZyBwb2xpY3kgZm9yIHRoaXMgd2Vic2l0ZS4nOwokbGFuZ1snaW5mb19zaGlwcGluZ19zaGlwdG8nXSA9ICdTcGVjaWZ5IHRoZSBsaXN0IG9mIGNvdW50cmllcyAob3IgYW55KSB0aGF0IHRoaXMgc3RvcmUgc2hpcHMgdG8uICBJZiBhIGxpbWl0ZWQgbGlzdCBpcyBzZWxlY3RlZCwgdGhlbiBhbiBlcnJvciB3aWxsIGJlIGdlbmVyYXRlZCBpZiB0aGUgY3VzdG9tZXIgYXR0ZW1wdHMgdG8gcGxhY2UgYW4gb3JkZXIgd2l0aCBzaGlwcG1lbnQgdG8gYSBkaXNhbGxvd2VkIGxvY2F0aW9uJzsKJGxhbmdbJ2luZm9fYXR0cmliX2l0ZW1fZGVzY3JpcHRpb24nXSA9ICdUaGUgdGVtcGxhdGUgdXNlZCBmb3IgZGlzcGxheWluZyBhdHRyaWJ1dGUgZHJvcGRvd25zLiAgUG9zc2libGUgdmFyaWFibGVzIGFyZSB7JGN1cnJlbmN5X3N5bWJvbH0seyR3ZWlnaHRfdW5pdHN9LHskYXR0cmliX2FkanVzdH0seyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfc2t1fSc7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlJ10gPSAnTnVtZXJvdXMgbW9kdWxlcyB0aGF0IGFjdCBhcyAmcXVvdDtTaG9wcGluZyBDYXJ0cyZxdW90OyBtYXkgYmUgZG93bmxvYWRlZC4gIEVhY2ggb2YgdGhlbSB3aXRoIGRpZmZlcmVudCBiZWhhdmlvdXJzLiAgUGxlYXNlIHNlbGVjdCBvbmUgb2YgdGhlIGluc3RhbGxlZCBjYXJ0IG1vZHVsZXMgZnJvbSB0aGlzIGxpc3QnOwokbGFuZ1snaW5mb19jYXJ0X3BvbGljeSddID0gJ1RoZSBjYXJ0IHBvbGljeSBpcyBpbmZsdWVuY2VkIGJ5IHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhlIHBheW1lbnQgZ2F0ZXdheSwgYW5kIGRldGVybWluZXMgaG93IG1hbnksIGFuZCB3aGF0IHR5cGUgb2YgaXRlbXMgbWF5IGJlIGFkZGVkIHRvIHRoZSBjYXJ0KHMpLiAgWW91IG1heSBmdXJ0aGVyIHJlc3RyaWN0IHRoZSBjYXJ0IHBvbGljeSwgYnV0IGNhbm5vdCBieXBhc3MgdGhlIHJlc3RyaWN0aW9ucyBwbGFjZWQgYnkgdGhlIGdhdGV3YXkuJzsKJGxhbmdbJ2luZm9fbGluZWl0ZW1fZGVzY190ZW1wbGF0ZSddID0gJ1RoaXMgdGVtcGxhdGUgaXMgdXNlZCB0byBmb3JtYXQgdGhlIHNpbmdsZSBsaW5lIGRlc2NyaXB0aW9uIGZvciBhIGNhcnQgaXRlbS4gIFRoaXMgc2FtZSBkZXNjcmlwdGlvbiBpcyB1c2VkIGZvciB0aGUgbGluZSBpdGVtIGluIG9yZGVyIHByb2Nlc3NpbmcuJzsKJGxhbmdbJ2luZm9faGFuZGxpbmdfbW9kdWxlJ10gID0gJ051bWVyb3VzIG1vZHVsZXMgdGhhdCBwZXJmb3JtIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGNhbGN1bGF0aW5nIGEgaGFuZGxpbmcgY2hhcmdlIG1heSBiZSBkb3dubG9hZGVkLiAgRWFjaCBvZiB0aGVtIHdpdGggZGlmZmVyZW50IGJlaGF2aW9ycy4gIFBsZWFzZSBzZWxlY3Qgb25lIG9mIHRoZSBpbnN0YWxsZWQgaGFuZGxpbmcgbW9kdWxlcyBmcm9tIHRoaXMgbGlzdCc7CiRsYW5nWydpbmZvX292ZXJ3ZWlnaHRfbGltaXQnXSA9ICdUaGUgd2VpZ2h0IGF0IHdoaWNoIGFuIGl0ZW0gc2hvdWxkIGJlIHNoaXBwZWQgaW4gaXRzIG93biBwYWNrYWdlJzsKJGxhbmdbJ2luZm9fcGFja2FnaW5nX21vZHVsZSddID0gJ1NlbGVjdCBhIG1vZHVsZSByZXNwb25zaWJsZSBmb3IgYXJyYW5naW5nIHRoZSB2YXJpb3VzIGl0ZW1zIHNlbGVjdGVkIGluIGFuIG9yZGVyIGZvciBwYWNrYWdpbmcuICBJZiBub25lIGlzIHNlbGVjdGVkLCB0aGVuIHRoZSBzaGlwcGluZyBtYXljYWxjdWxhdGUgY29zdHMgaW5kZXBlbmRhbnRseSBvbiBlYWNoIG9yZGVyIGl0ZW0uJzsKJGxhbmdbJ2luZm9fcGF5bWVudF9tb2R1bGVzMiddID0gJ1RoZSBlLWNvbW1lcmNlIHN5c3RlbSBhbGxvd3MgY2hlY2tvdXQgdmlhIG51bWVyb3VzIHBheW1lbnQgZ2F0ZXdheXMuICBFYWNoIHdpdGggdGhlaXIgb3duIGZlYXR1cmVzIGFuZCBjYXBhYmlsaXRpZXMuICBUaGUgaW5wdXQgYmVsb3cgc2hvd3MgdGhlIGdhdGV3YXkgbW9kdWxlcyB0aGF0IGFyZSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuICBQbGVhc2Ugc2VsZWN0IHRoZSBnYXRld2F5cyB0aGF0IGN1c3RvbWVycyBzaG91bGQgYmUgYWJsZSB0byB1c2UgYXQgY2hlY2tvdXQuJzsKJGxhbmdbJ2luZm9fcHJvbW90aW9uc19tb2R1bGUnXSA9ICdOdW1lcm91cyBtb2R1bGVzIHRoYXQgcGVyZm9ybSB0aGUgZnVuY3Rpb25hbGl0eSBvZiBwcm92aWRpbmcgY291cG9ucyBvciB2YXJpb3VzIGZvcm1zIG9mIGRpc2NvdW50cyBtYXkgYmUgZG93bmxvYWRlZC4gIEVhY2ggb2YgdGhlbSB3aXRoIGRpZmZlcmVudCBiZWhhdmlvdXJzLiAgUGxlYXNlIHNlbGVjdCBvbmUgb2YgdGhlIGluc3RhbGxlZCBwcm9tb3Rpb25zIG1vZHVsZXMgZnJvbSB0aGlzIGxpc3QnOwokbGFuZ1snaW5mb19zaGlwX2RpbWVuc2lvbnMnXSA9ICdGaWVsZCAob2YgdHlwZSBkaW1lbnNpb25zKSBmcm9tIHRoZSBQcm9kdWN0cyBtb2R1bGUgdGhhdCBpbmRpY2F0ZXMgdGhlIHNoaXBwYWJsZSBkaW1lbnNpb25zIGZvciB0aGlzIHByb2R1Y3QnOwokbGFuZ1snaW5mb19zaGlwX3NlcGVyYXRlbHknXSA9ICdGaWVsZCAob2YgdHlwZSBjaGVja2JveCkgZnJvbSB0aGUgUHJvZHVjdHMgbW9kdWxlIHdoaWNoIGluZGljYXRlcyB0aGF0IHRoaXMgdmFsdWUgc2hvdWxkIGJlIHNoaXBwZWQgYXMgaXRzIG93biBwYWNrYWdlJzsKJGxhbmdbJ2luZm9fc2hpcHBpbmdfbW9kdWxlJ10gPSAnTnVtZXJvdXMgbW9kdWxlcyB0aGF0IHBlcmZvcm0gc2hpcHBpbmcgY29zdCBjYWxjdWxhdGlvbnMgbWF5IGJlIGRvd25sb2FkZWQuICBFYWNoIG9mIHRoZW0gd2l0aCBkaWZmZXJlbnQgYmVoYXZpb3Vycy4gIFBsZWFzZSBzZWxlY3Qgb25lIG9mIHRoZSBpbnN0YWxsZWQgIG1vZHVsZXMgZnJvbSB0aGlzIGxpc3QnOwokbGFuZ1snaW5mb19zdXBwbGllcl9tb2R1bGVzJ10gPSAnU3VwcGxpZXIgbW9kdWxlcyBhcmUgY2FwYWJsZSBvZiBpbnRlcmFjdGluZyB3aXRoIHRoZSBjYXJ0IGFuZCBhbnN3ZXJpbmcgcmVxdWVzdHMgZnJvbSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZXMuICBZb3UgbWF5IHNlbGVjdCBtdWx0aXBsZSBzdXBwbGllciBtb2R1bGVzLic7CiRsYW5nWydpbmZvX3RheF9tb2R1bGUnXSA9ICdOdW1lcm91cyBtb2R1bGVzIHRoYXQgcGVyZm9ybSB0YXggY2FsY3VsYXRpb24gbWF5IGJlIGRvd25sb2FkZWQuICBFYWNoIG9mIHRoZXNlIHdpdGggZGlmZmVyZW50IGJlaGF2aW91cnMuICBQbGVhc2Ugc2VsZWN0IG9uZSBvZiB0aGUgaW5zdGFsbGVkIHRheCBtb2R1bGVzIGZyb20gdGhpcyBsaXN0JzsKJGxhbmdbJ2luZm9fdGF4X3NoaXBwaW5nJ10gPSAnSW4gc29tZSBsb2NhdGlvbnMgc2hpcHBpbmcgbWF5IG5vdCBiZSB0YXhhYmxlLiAgVXNlIHRoaXMgb3B0aW9uIHRvIGVuc3VyZSB0aGF0IG5vIHNoaXBwaW5nIGNvc3RzIGFyZSB0YXhlZCc7CgojSgoKCiNLCgoKI0wKJGxhbmdbJ2xlbmd0aF91bml0cyddID0gJ0xlbmd0aCBVbml0cyc7CiRsYW5nWydsaW5laXRlbV9kZXNjX3RlbXBsYXRlJ10gPSAnTGluZSBJdGVtIERlc2NyaXB0aW9uIFRlbXBsYXRlJzsKCgojTQokbGFuZ1snbWF4X3Byb2R1Y3RzJ10gPSAnTWF4aW11bSBOdW1iZXIgb2YgUHJvZHVjdHMgaW4gb25lIENhcnQnOwokbGFuZ1snbWF4X3NlcnZpY2VzJ10gPSAnTWF4aW11bSBOdW1iZXIgb2YgU2VydmljZXMgaW4gb25lIENhcnQnOwokbGFuZ1snbWF4X3N1YnNjcmlwdGlvbnMnXSA9ICdNYXhpbXVtIE51bWJlciBvZiBTdWJzY3JpcHRpb25zIGluIG9uZSBDYXJ0JzsKJGxhbmdbJ21peGVkX3N1YnNjcmlwdGlvbnMnXSA9ICdBbGxvdyBhIG1peHR1cmUgb2YgcHJvZHVjdHMsIHNlcnZpY2VzIGFuZCBzdWJzY3JpcHRpb25zIGluIG9uZSBjYXJ0Pyc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdBIGJhc2UgY2xhc3MgZm9yIGFsbCBlLWNvbW1lcmNlIG1vZHVsZXMgdGhpcyB1dGlsaXR5IGFsc28gcHJvdmlkZXMgY29tbW9uIHByZWZlcmVuY2VzIGFuZCBjb25uZWN0b3JzIGZvciB0aGUgdmFyaW91cyBwb3J0aW9ucyBvZiB0aGUgZWNvbW1lcmNlIHN1aXRlJzsKJGxhbmdbJ21zZ19wcmVmc19zYXZlZCddID0gJ1ByZWZlcmVuY2VzIHVwZGF0ZWQnOwoKI04KJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snbm90X2FwcGxpY2FibGUnXSA9ICdOb3QgYXBwbGljYWJsZSc7CiRsYW5nWydub3RfY29uZmlndXJlZCddID0gJ05vdCBjb25maWd1cmVkJzsKCiNPCiRsYW5nWydvayddID0gJ09rJzsKCgojUAokbGFuZ1sncGFja2FnaW5nX21vZHVsZSddID0gJ1BhY2thZ2luZyBNb2R1bGUnOwokbGFuZ1sncGF5bWVudF9tb2R1bGVzJ10gPSAnT25saW5lIFBheW1lbnQgR2F0ZXdheSBNb2R1bGVzJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIENHRWNvbW1lcmNlQmFzZSBtb2R1bGUgaXMgbm93IGluc3RhbGxlZCwgeW91IG1heSBub3cgcHJvY2VlZCB0byBpbnN0YWxsIG1vcmUgY29tcG9uZW50cyB0byB0aGUgZWNvbW1lcmNlIHN1aXRlIHRvIGZpbGwgb3V0IHlvdXIgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eS4gIE9uY2UgdGhleSBhcmUgaW5zdGFsbGVkIHJldHVybiB0byB0aGlzIG1vZHVsZXMgYWRtaW5pc3RyYXRpb24gcGFuZWwgdG8gY29udGludWUgdGhlIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoaXMgbW9kdWxlIGFuZCBhbGwgYXNzb2NpYXRlZCBkYXRhIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIENNU01TIGRhdGFiYXNlLiAgWW91IGFyZSBub3cgc2FmZSB0byByZW1vdmUgaXRzIGZpbGVzJzsKJGxhbmdbJ3Byb21vdGlvbnNfbW9kdWxlJ10gPSAnUHJvbW90aW9ucyBNb2R1bGUnOwokbGFuZ1sncHJvbXB0X2NvbXBhbnknXSA9ICdDb21wYW55JzsKJGxhbmdbJ3Byb21wdF9maXJzdG5hbWUnXSA9ICdGaXJzdCBOYW1lJzsKJGxhbmdbJ3Byb21wdF9sYXN0bmFtZSddID0gJ0xhc3QgTmFtZSc7CiRsYW5nWydwcm9tcHRfbWF4d2VpZ2h0J10gPSAnTWF4IFdlaWdodCc7CiRsYW5nWydwcm9tcHRfYWRkcmVzczEnXSA9ICdBZGRyZXNzIExpbmUgMSc7CiRsYW5nWydwcm9tcHRfYWRkcmVzczInXSA9ICdBZGRyZXNzIExpbmUgMic7CiRsYW5nWydwcm9tcHRfY2l0eSddID0gJ0NpdHknOwokbGFuZ1sncHJvbXB0X3N0YXRlJ10gPSAnU3RhdGUgLyBQcm92aW5jZSc7CiRsYW5nWydwcm9tcHRfcG9zdGFsJ10gPSAnUG9zdGFsIC8gWmlwIENvZGUnOwokbGFuZ1sncHJvbXB0X2NvdW50cnknXSA9ICdDb3VudHJ5JzsKJGxhbmdbJ3Byb21wdF9mYXgnXSA9ICdGYXgnOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAnRW1haWwgQWRkcmVzcyc7CiRsYW5nWydwcm9tcHRfcGhvbmUnXSA9ICdQaG9uZSc7CiRsYW5nWydwcm9tcHRfb3ZlcndlaWdodF9saW1pdCddID0gJ092ZXJ3ZWlnaHQgTGltaXQnOwokbGFuZ1sncHJvbXB0X3NoaXBwaW5nX2JveGVzJ10gPSAnU2hpcHBpbmcgQm94ZXMnOwokbGFuZ1sncHJvbXB0X3dpZHRoJ10gPSAnV2lkdGgnOwokbGFuZ1sncHJvbXB0X2hlaWdodCddID0gJ0hlaWdodCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RoJ10gPSAnTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF93ZWlnaHQnXSA9ICdXZWlnaHQnOwokbGFuZ1sncHJvbXB0X3NvcnRpbmcnXSA9ICdQcmlvcml0eSc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ05hbWUnOwoKCiNRCgoKI1IKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXQnOwoKCiNTCiRsYW5nWydzaGlwX2RpbWVuc2lvbnNfZmllbGQnXSA9ICdQcm9kdWN0cyBTaGlwIERpbWVuc2lvbnMgRmllbGQnOwokbGFuZ1snc2hpcF9zZXBlcmF0ZWx5X2ZpZWxkJ10gPSAnUHJvZHVjdHMgU2hpcCBTZXBlcmF0ZWx5IEZpZWxkJzsKJGxhbmdbJ3NoaXBwaW5nX21vZHVsZSddID0gJ1NoaXBwaW5nIE1vZHVsZSc7CiRsYW5nWydzaGlwc190byddID0gJ0FsbG93IFNoaXBwaW5nIHRvJzsKJGxhbmdbJ3N1cHBsaWVyX21vZHVsZXMnXSA9ICdTdXBwbGllciBNb2R1bGVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydzeXN0ZW1fcG9saWN5J10gPSAnU3lzdGVtIFBvbGljeSc7CgojVAokbGFuZ1sndGFiX2NhcnRfc2V0dGluZ3MnXSA9ICdDYXJ0IFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9jb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhdGlvbic7CiRsYW5nWyd0YWJfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVyYWwgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnSGFuZGxpbmcgU2V0dGluZ3MnOwokbGFuZ1sndGFiX215aW5mb19zZXR0aW5ncyddID0gJ1N0b3JlIEFkZHJlc3MnOwokbGFuZ1sndGFiX3BhY2thZ2luZ19zZXR0aW5ncyddID0gJ1BhY2thZ2luZyBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfcGF5bWVudF9zZXR0aW5ncyddID0gJ1BheW1lbnQgU2V0dGluZ3MnOwoJCQkJCQkJJGxhbmdbJ3RhYl9wb2xpY3knXSA9ICdQb2xpY3knOwokbGFuZ1sndGFiX3Byb21vdGlvbl9zZXR0aW5ncyddID0gJ1Byb21vdGlvbiBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfc2hpcHBpbmdfcG9saWN5J10gPSAnU2hpcHBpbmcgUG9saWN5JzsKJGxhbmdbJ3RhYl9zdXBwbGllcl9zZXR0aW5ncyddID0gJ1N1cHBsaWVyIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl90YXhfc2V0dGluZ3MnXSA9ICdUYXggU2V0dGluZ3MnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ1RheCBDYWxjdWxhdGlvbiBNb2R1bGUnOwokbGFuZ1sndGF4X3NoaXBwaW5nJ10gPSAnVGF4IHNoaXBwaW5nIGNhbGN1bGF0aW9ucyc7CgojVQokbGFuZ1sndW5pdHNfY2VudGltZXRlcnMnXSA9ICdDZW50aW1ldGVycyc7CiRsYW5nWyd1bml0c19pbmNoZXMnXSA9ICdJbmNoZXMnOwokbGFuZ1sndW5saW1pdGVkJ10gPSAnVW5saW1pdGVkJzsKJGxhbmdbJ3Vuc2V0J10gPSAnVW5zZXQnOwoKI1YKCgojVwokbGFuZ1snd2Fybl9nZW5lcmFsX3NldHRpbmdzJ10gPSAnPHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBpdCBpcyBub3QgYSBnb29kIGlkZWEgdG8gY2hhbmdlIHRoZXNlIHNldHRpbmdzIGluIGEgcHJvZHVjdGlvbiBzeXN0ZW0uICBUaGUgY3VycmVuY3kgY29kZSwgbGVuZ3RoIGFuZCB3ZWlnaHQgdW5pdHMgbWF5IGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRheGVzLCBhbmQgc2hpcHBpbmcgY29zdHMuICBDaGFuZ2luZyB0aGVtIG1heSBjb3JydXB0IHRoZSBkYXRhIG9mIGFuIGV4aXN0aW5nIGluc3RhbGxhdGlvbi4nOwokbGFuZ1snd2Fybl9ub21vZHVsZSddID0gJ1RoZXJlIGlzIGN1cnJlbnRseSBubyBtb2R1bGUgY29uZmlndXJlZCBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5Lic7CiRsYW5nWyd3ZWlnaHRfdW5pdHMnXSA9ICdXZWlnaHQgVW5pdHMnOwokbGFuZ1snd3VuaXRfbGJzJ10gPSAnUG91bmRzIChsYnMpJzsKJGxhbmdbJ3d1bml0X2tnJ10gPSAnS2lsb2dyYW1zIChrZyknOwokbGFuZ1snd3VuaXRfaGcnXSA9ICdIZWN0b2dyYW0gKGhnKSc7CiRsYW5nWyd3dW5pdF9nJ10gPSAnR3JhbXMgKGcpJzsKCiNYCgoKI1kKJGxhbmdbJ3llcyddID0gJ1llcyc7CgojWgoKCj8+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/abstract.packing_profile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmFic3RyYWN0IGNsYXNzIHBhY2tpbmdfcHJvZmlsZQp7CiAgICAvLyBvdmVyc2lzZSBoYW5kbGVycy4KICAgIGNvbnN0IE9TSEFORExFUl9JR05PUkUgPSAnaWdub3JlJzsKICAgIGNvbnN0IE9TSEFORExFUl9FUlJPUiA9ICdlcnJvcic7CiAgICBjb25zdCBPU0hBTkRMRVJfVVNFV1JBUFBFUiA9ICd1c2V3cmFwcGVyJzsKCiAgICAvLyBubyB3ZWlnaHQgaGFuZGxlcnMKICAgIGNvbnN0IE5XSEFORExFUl9JR05PUkUgPSAnaWdub3JlJzsKICAgIGNvbnN0IE5XSEFORExFUl9FUlJPUiA9ICdlcnJvcic7CiAgICBjb25zdCBOV0hBTkRMRVJfVVNFREZMVCA9ICd1c2VkZmx0JzsKCiAgICAvLyBubyBkaW1lbnNpb25zIGhhbmRsZXJzCiAgICBjb25zdCBOREhBTkRMRVJfSUdOT1JFID0gJ2lnbm9yZSc7CiAgICBjb25zdCBOREhBTkRMRVJfRVJST1IgPSAnZXJyb3InOwogICAgY29uc3QgTkRIQU5ETEVSX1VTRURGTFQgPSAndXNlZGZsdCc7CgogICAgcHJvdGVjdGVkICRfb3ZlcnNpemVfaGFuZGxlcjsKICAgIHByb3RlY3RlZCAkX292ZXJzaXplX3dyYXBwZXI7CiAgICBwcm90ZWN0ZWQgJF9ub3dlaWdodF9oYW5kbGVyOwogICAgcHJvdGVjdGVkICRfbm93ZWlnaHRfZGZsdDsgLy8gaW4gQ0dFY29tbWUgdW5pdHMKICAgIHByb3RlY3RlZCAkX25vZGltZW5zaW9uc19oYW5kbGVyOwogICAgcHJvdGVjdGVkICRfbm9kaW1lbnNpb25zX2RmbHQ7CiAgICBwcm90ZWN0ZWQgJF9ib3hlczsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoYXJyYXkgJHBhcmFtcyA9IG51bGwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9vdmVyc2l6ZV9oYW5kbGVyID0gc2VsZjo6T1NIQU5ETEVSX0VSUk9SOwogICAgICAgICR0aGlzLT5fb3ZlcnNpemVfd3JhcHBlciA9IFsgJ3RoaWNrbmVzcyc9PjAsICd3ZWlnaHQnPT4wIF07CiAgICAgICAgJHRoaXMtPl9ub3dlaWdodF9oYW5kbGVyID0gc2VsZjo6TldIQU5ETEVSX0VSUk9SOwogICAgICAgICR0aGlzLT5fbm93ZWlnaHRfZGZsdCA9IDA7CiAgICAgICAgJHRoaXMtPl9ub2RpbWVuc2lvbnNfaGFuZGxlciA9IHNlbGY6Ok5ESEFORExFUl9FUlJPUjsKICAgICAgICAkdGhpcy0+X25vZGltZW5zaW9uc19kZmx0ID0gWyAnbGVuZ3RoJz0+MCwgJ3dpZHRoJz0+MCwgJ2RlcHRoJz0+MCBdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ292ZXJzaXplX2hhbmRsZXInOgogICAgICAgIGNhc2UgJ292ZXJzaXplX3dyYXBwZXInOgogICAgICAgIGNhc2UgJ25vd2VpZ2h0X2hhbmRsZXInOgogICAgICAgIGNhc2UgJ25vd2VpZ2h0X2RmbHQnOgogICAgICAgIGNhc2UgJ25vZGltZW5zaW9uc19oYW5kbGVyJzoKICAgICAgICBjYXNlICdub2RpbWVuc2lvbnNfZGZsdCc6CiAgICAgICAgICAgICRrZXkgPSAnXycuJGtleTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT4ka2V5OwogICAgICAgIGNhc2UgJ2JveGVzJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fYm94ZXM7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5nZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCAka2V5LCAkdmFsICkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIHNldHRhYmxlIG1lbWJlciBvZiAiLmdldF9jbGFzcygkdGhpcykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc192YWxpZCgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fb3ZlcnNpemVfd3JhcHBlciA9PSBzZWxmOjpPU0hBTkRMRVJfVVNFV1JBUFBFUiApIHsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X292ZXJzaXplX3dyYXBwZXIpICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICBmb3JlYWNoKCBbJ2xlbmd0aCcsJ3dpZHRoJywnZGVwdGgnLCd3ZWlnaHQnXSBhcyAka2V5ICkgewogICAgICAgICAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmdldF9mbG9hdCgkdGhpcy0+X292ZXJzaXplX3dyYXBwZXIsJGtleSkgPCAwLjAwMDAxICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCAkdGhpcy0+X25vd2VpZ2h0X2hhbmRsZXIgPT0gc2VsZjo6TldIQU5ETEVSX1VTRURGTFQgKSB7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X25vd2VpZ2h0X2RmbHQgPCAwLjAwMDAxICkgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICBpZiggJHRoaXMtPl9ub2RpbWVuc2lvbnNfaGFuZGxlciA9PSBzZWxmOjpOREhBTkRMRVJfVVNFREZMVCApIHsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X25vZGltZW5zaW9uc19kZmx0KSApIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgZm9yZWFjaCggWydsZW5ndGgnLCd3aWR0aCcsJ2RlcHRoJ10gYXMgJGtleSApIHsKICAgICAgICAgICAgICAgIGlmKCBcY2dlX3BhcmFtOjpnZXRfZmxvYXQoJHRoaXMtPl9ub2RpbWVuc2lvbnNfZGZsdCwka2V5KSA8IDAuMDAwMDEgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoICFjb3VudCgkdGhpcy0+X2JveGVzKSApIHJldHVybiBGQUxTRTsgLy8gbm8gYm94ZXMuCiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9ib3hlcyBhcyAkYm94ICkgewogICAgICAgICAgICBpZiggISRib3ggaW5zdGFuY2VvZiBzaGlwcGluZ19jb250YWluZXIgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIGlmKCAhJGJveC0+aXNfdmFsaWQoKSApIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/abstract.shipping_container.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmFic3RyYWN0IGNsYXNzIHNoaXBwaW5nX2NvbnRhaW5lcgp7CiAgICAvKiB0aGlzIGNsYXNzIGNvbnRhaW5zIHZhbHVlcyBpbiB1bml0cyBkZWZpbmVkIGluIENHRWNvbW1lcmNlQmFzZSAqLwogICAgcHJpdmF0ZSAkX2RhdGEgPSBbICdyZWYnPT5udWxsLCAnb3V0ZXJfd2lkdGgnPT5udWxsLCAnb3V0ZXJfbGVuZ3RoJz0+bnVsbCwgJ291dGVyX2RlcHRoJz0+bnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAnaW5uZXJfd2lkdGgnPT5udWxsLCAnaW5uZXJfbGVuZ3RoJz0+bnVsbCwgJ2lubmVyX2RlcHRoJz0+bnVsbCwgJ2VtcHR5X3dlaWdodCc9Pm51bGwsICdtYXhfd2VpZ2h0Jz0+bnVsbCBdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggYXJyYXkgJGRhdGEgPSBudWxsICkKICAgIHsKICAgICAgICBpZiggIWlzX251bGwoJGRhdGEpICkgewogICAgICAgICAgICBmb3JlYWNoKCAkZGF0YSBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c2V0VmFsdWUoICRrZXksICR2YWwgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgICBpZiggJHRoaXMtPl9kYXRhWyRrZXldICkgcmV0dXJuIChpbnQpICR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3JlZic6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgY2FzZSAnb3V0ZXJfd2lkdGgnOgogICAgICAgIGNhc2UgJ291dGVyX2xlbmd0aCc6CiAgICAgICAgY2FzZSAnb3V0ZXJfZGVwdGgnOgogICAgICAgIGNhc2UgJ2lubmVyX3dpZHRoJzoKICAgICAgICBjYXNlICdpbm5lcl9sZW5ndGgnOgogICAgICAgIGNhc2UgJ2lubmVyX2RlcHRoJzoKICAgICAgICBjYXNlICdlbXB0eV93ZWlnaHQnOgogICAgICAgIGNhc2UgJ21heF93ZWlnaHQnOgogICAgICAgICAgICByZXR1cm4gKGZsb2F0KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGtleSwgJHZhbCkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIHNldHRhYmxlIG1lbWJlciBvZiAiLl9fQ0xBU1NfXyk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFZhbHVlKCAka2V5LCAkdmFsICkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgICRrZXkgPSAncmVmJzsKICAgICAgICBjYXNlICdyZWYnOgogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnb3V0ZXJfd2lkdGgnOgogICAgICAgIGNhc2UgJ291dGVyX2xlbmd0aCc6CiAgICAgICAgY2FzZSAnb3V0ZXJfZGVwdGgnOgogICAgICAgIGNhc2UgJ2lubmVyX3dpZHRoJzoKICAgICAgICBjYXNlICdpbm5lcl9sZW5ndGgnOgogICAgICAgIGNhc2UgJ2lubmVyX2RlcHRoJzoKICAgICAgICBjYXNlICdlbXB0eV93ZWlnaHQnOgogICAgICAgIGNhc2UgJ21heF93ZWlnaHQnOgogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSBtYXgoMC4wLChmbG9hdCkkdmFsKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc192YWxpZCgpCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+b3V0ZXJfd2lkdGggfHwgISR0aGlzLT5vdXRlcl9sZW5ndGggfHwgISR0aGlzLT5vdXRlcl9kZXB0aCApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggISR0aGlzLT5pbm5lcl93aWR0aCB8fCAhJHRoaXMtPmlubmVyX2xlbmd0aCB8fCAhJHRoaXMtPmlubmVyX2RlcHRoICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAhJHRoaXMtPmVtcHR5X3dlaWdodCB8fCAhJHRoaXMtPm1heF93ZWlnaHQgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICR0aGlzLT5vdXRlcl93aWR0aCA8PSAkdGhpcy0+aW5uZXJfd2lkdGggKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICR0aGlzLT5vdXRlcl9sZW5ndGggPD0gJHRoaXMtPmlubmVyX2xlbmd0aCApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggJHRoaXMtPm91dGVyX2RlcHRoIDw9ICR0aGlzLT5pbm5lcl9kZXB0aCApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggJHRoaXMtPm1heF93ZWlnaHQgPD0gJHRoaXMtPmVtcHR5X3dlaWdodCApIHJldHVybiBGQUxTRTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3M=]]></data>
	</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.cg_ecomm.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNnX2Vjb21tCnsKICAgIGNvbnN0IENBUEFCSUxJVFlfU0hPUFBJTkdfQ0FSVCA9ICdzaG9wcGluZ19jYXJ0JzsKICAgIGNvbnN0IENBUEFCSUxJVFlfUEFZTUVOVF9HQVRFV0FZID0gJ3BheW1lbnRfZ2F0ZXdheSc7CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30gLy8gc3RhdGljIGNsYXNzLi4uIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQuCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZV9jb25maWcoKQogICAgewogICAgICAgIC8vIGRvZXMgYSBudW1iZXIgb2YgY29uZmlnIHRlc3RzLCB0aHJvd3MgYW4gZXhjZXB0aW9uIG9uIHRoZSBmaXJzdCBmYWlsdXJlLgogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJGFkZHIgPSBzZWxmOjpnZXRfY29tcGFueV9hZGRyZXNzKCk7CiAgICAgICAgaWYoICEkYWRkciB8fCAhJGFkZHItPmlzX3ZhbGlkKCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJGVjb21tLT5MYW5nKCdlcnJfY29uZmlnX2FkZHJlc3MnKSk7CiAgICAgICAgaWYoICFzZWxmOjpnZXRfY3VycmVuY3lfc3ltYm9sKCkgKQogICAgICAgIGlmKCAhc2VsZjo6Z2V0X2N1cnJlbmN5X2NvZGUoKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkZWNvbW0tPkxhbmcoJ2Vycl9jb25maWdfY3VycmVuY3knKSk7CiAgICAgICAgaWYoICFzZWxmOjpnZXRfd2VpZ2h0X3VuaXRzKCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJGVjb21tLT5MYW5nKCdlcnJfY29uZmlnX3dlaWdodCcpKTsKICAgICAgICBpZiggIXNlbGY6OmdldF9sZW5ndGhfdW5pdHMoKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkZWNvbW0tPkxhbmcoJ2Vycl9jb25maWdfbGVuZ3RoJykpOwogICAgICAgIGlmKCAhY291bnQoc2VsZjo6Z2V0X3N1cHBsaWVyX21vZHVsZXMoKSkgKSAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRlY29tbS0+TGFuZygnZXJyX2NvbmZpZ19zdXBwbGllcnMnKSk7CiAgICAgICAgaWYoICFzZWxmOjpnZXRfY2FydF9tb2R1bGUoKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkZWNvbW0tPkxhbmcoJ2Vycl9jb25maWdfY2FydCcpKTsKICAgICAgICBpZiggIXNlbGY6OmdldF9zeXN0ZW1fc2hpcHBpbmdfcG9saWN5KCkgKSAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRlY29tbS0+TGFuZygnZXJyX2NvbmZpZ19zaGlwcGluZ19wb2xpY3knKSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19jb25maWdfb2soKQogICAgewogICAgICAgIC8vIGRvZXMgYSBudW1iZXIgb2YgdGVzdHMsIHJldHVybnMgYm9vbGVhbiBpZiBhbnkgZmFpbAogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHNlbGY6OnZhbGlkYXRlX2NvbmZpZygpOwogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY3VycmVuY3lfc3ltYm9sKCkKICAgIHsKICAgICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIHJldHVybiAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ2N1cnJlbmN5X3N5bWJvbCcsJyQnKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW5jeV9jb2RlKCkKICAgIHsKICAgICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIHJldHVybiAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ2N1cnJlbmN5X2NvZGUnLCdVU0QnKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZvcm1hdF9jdXJyZW5jeSgkdmFsKQogICAgewogICAgICAgICR2YWwgPSAoZmxvYXQpICR2YWw7CiAgICAgICAgcmV0dXJuIHNwcmludGYoJyVzICUuMkYnLHNlbGY6OmdldF9jdXJyZW5jeV9zeW1ib2woKSwkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF93ZWlnaHRfdW5pdHMoKQogICAgewogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgcmV0dXJuICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnd2VpZ2h0X3VuaXRzJywnbGJzJyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfbGVuZ3RoX3VuaXRzKCkKICAgIHsKICAgICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIHJldHVybiAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ2xlbmd0aF91bml0cycsJ2luJyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfc3VwcGxpZXJfbW9kdWxlcygpCiAgICB7CiAgICAgICAgJHJlcyA9IEZBTFNFOwogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJHRtcCA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnc3VwcGxpZXJfbW9kdWxlcycpOwogICAgICAgIGlmKCAhZW1wdHkoJHRtcCkgKSAkcmVzID0gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc19zdXBwbGllcl9tb2R1bGUoJG5hbWUpCiAgICB7CiAgICAgICAgJHRtcCA9IHNlbGY6OmdldF9zdXBwbGllcl9tb2R1bGVzKCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggIWluX2FycmF5KCRuYW1lLCR0bXApICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9zdXBwbGllcl9tb2R1bGUoJHNvdXJjZSkKICAgIHsKICAgICAgICAkcmVzID0gbnVsbDsKICAgICAgICBpZiggc2VsZjo6aXNfc3VwcGxpZXJfbW9kdWxlKCRzb3VyY2UpICkgJHJlcyA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgkc291cmNlKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF90YXhfbW9kdWxlKCkKICAgIHsKICAgICAgICAkbW9kbmFtZSA9IFxDR0Vjb21tZXJjZUJhc2Vcc2V0dXBfbWFuYWdlcjo6Z2V0X3RheF9jYWxjdWxhdG9yX25hbWUoKTsKICAgICAgICBpZiggISRtb2RuYW1lICkgcmV0dXJuOwoKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kbmFtZSk7CiAgICAgICAgaWYoICEkbW9kICkgcmV0dXJuOwogICAgICAgIGlmKCAhbWV0aG9kX2V4aXN0cyggJG1vZCwgJ2dldF90YXhfY2FsY3VsYXRvcicgKSApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2RuYW1lLicgaXMgYW4gaW52YWxpZCB0YXggY2FsY3VsYXRvciBtb2R1bGUnKTsKICAgICAgICAkbWdyID0gJG1vZC0+Z2V0X3RheF9jYWxjdWxhdG9yKCk7CiAgICAgICAgaWYoICEkbWdyIGluc3RhbmNlb2YgXENHRWNvbW1lcmNlQmFzZVx0YXhfY2FsY3VsYXRvciApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2RuYW1lLicgaXMgYW4gaW52YWxpZCB0YXggY2FsY3VsYXRvciBtb2R1bGUnKTsKICAgICAgICByZXR1cm4gJG1ncjsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wYWNrYWdpbmdfbW9kdWxlKCkKICAgIHsKICAgICAgICAkbW9kbmFtZSA9IFxDR0Vjb21tZXJjZUJhc2Vcc2V0dXBfbWFuYWdlcjo6Z2V0X3BhY2thZ2luZ19jYWxjdWxhdG9yX25hbWUoKTsKICAgICAgICBpZiggISRtb2RuYW1lICkgcmV0dXJuOwoKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kbmFtZSk7CiAgICAgICAgaWYoICEkbW9kICkgcmV0dXJuOwogICAgICAgIGlmKCAhbWV0aG9kX2V4aXN0cyggJG1vZCwgJ2dldF9wYWNrYWdpbmdfY2FsY3VsYXRvcicgKSApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2RuYW1lLicgaXMgYW4gaW52YWxpZCBwYWNrYWdpbmcgbW9kdWxlJyk7CiAgICAgICAgJG1nciA9ICRtb2QtPmdldF9wYWNrYWdpbmdfY2FsY3VsYXRvcigpOwogICAgICAgIGlmKCAhJG1nciBpbnN0YW5jZW9mIFxDR0Vjb21tZXJjZUJhc2VccGFja2FnaW5nX2NhbGN1bGF0b3IgKSAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkbW9kbmFtZS4nIGlzIGFuIGludmFsaWQgcGFja2FnaW5nIG1vZHVsZScpOwogICAgICAgIHJldHVybiAkbWdyOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3NoaXBwaW5nX21vZHVsZSgpCiAgICB7CiAgICAgICAgJG1vZG5hbWUgPSBcQ0dFY29tbWVyY2VCYXNlXHNldHVwX21hbmFnZXI6OmdldF9zaGlwcGluZ19hc3Npc3RhbnRfbmFtZSgpOwogICAgICAgIGlmKCAhJG1vZG5hbWUgKSByZXR1cm47CgogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2RuYW1lKTsKICAgICAgICBpZiggISRtb2QgKSByZXR1cm47CiAgICAgICAgaWYoICFtZXRob2RfZXhpc3RzKCAkbW9kLCAnZ2V0X3NoaXBwaW5nX2Fzc2lzdGFudCcgKSApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2RuYW1lLicgaXMgYW4gaW52YWxpZCBzaGlwcGluZyBtb2R1bGUnKTsKICAgICAgICAkbWdyID0gJG1vZC0+Z2V0X3NoaXBwaW5nX2Fzc2lzdGFudCgpOwogICAgICAgIGlmKCAhJG1nciBpbnN0YW5jZW9mIFxDR0Vjb21tZXJjZUJhc2Vcc2hpcHBpbmdfYXNzaXN0YW50ICkgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJG1vZG5hbWUuJyBpcyBhbiBpbnZhbGlkIHNoaXBwaW5nIG1vZHVsZScpOwogICAgICAgIHJldHVybiAkbWdyOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3N5c3RlbV9zaGlwcGluZ19wb2xpY3koKQogICAgewogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJHRtcCA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnc2hpcHBpbmdfcG9saWN5Jyk7CiAgICAgICAgaWYoICEkdG1wICkgcmV0dXJuOwogICAgICAgICR0bXAgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9oYW5kbGluZ19tb2R1bGUoKQogICAgewogICAgICAgICRtb2RuYW1lID0gXENHRWNvbW1lcmNlQmFzZVxzZXR1cF9tYW5hZ2VyOjpnZXRfaGFuZGxpbmdfY2FsY3VsYXRvcl9uYW1lKCk7CiAgICAgICAgaWYoICEkbW9kbmFtZSApIHJldHVybjsKCiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZG5hbWUpOwogICAgICAgIGlmKCAhJG1vZCApIHJldHVybjsKICAgICAgICBpZiggIW1ldGhvZF9leGlzdHMoICRtb2QsICdnZXRfaGFuZGxpbmdfY2FsY3VsYXRvcicgKSApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2RuYW1lLicgaXMgYW4gaW52YWxpZCBoYW5kbGluZyBtb2R1bGUnKTsKICAgICAgICAkbWdyID0gJG1vZC0+Z2V0X2hhbmRsaW5nX2NhbGN1bGF0b3IoKTsKICAgICAgICBpZiggISRtZ3IgaW5zdGFuY2VvZiBcQ0dFY29tbWVyY2VCYXNlXGhhbmRsaW5nX2NhbGN1bGF0b3IgKSAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkbW9kbmFtZS4nIGlzIGFuIGludmFsaWQgaGFuZGxpbmcgbW9kdWxlJyk7CiAgICAgICAgcmV0dXJuICRtZ3I7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcHJvbW90aW9uc19tb2R1bGUoKQogICAgewogICAgICAgICRtb2RuYW1lID0gXENHRWNvbW1lcmNlQmFzZVxzZXR1cF9tYW5hZ2VyOjpnZXRfcHJvbW90aW9uX2Fzc2lzdGFudF9uYW1lKCk7CiAgICAgICAgaWYoICEkbW9kbmFtZSApIHJldHVybjsKCiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJG1vZG5hbWUpOwogICAgICAgIGlmKCAhJG1vZCApIHJldHVybjsKICAgICAgICBpZiggIW1ldGhvZF9leGlzdHMoICRtb2QsICdnZXRfcHJvbW90aW9uX2Fzc2lzdGFudCcgKSApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2RuYW1lLicgaXMgYW4gaW52YWxpZCBwcm9tb3Rpb24gbW9kdWxlJyk7CiAgICAgICAgJG1nciA9ICRtb2QtPmdldF9wcm9tb3Rpb25fYXNzaXN0YW50KCk7CiAgICAgICAgaWYoICEkbWdyIGluc3RhbmNlb2YgXENHRWNvbW1lcmNlQmFzZVxwcm9tb3Rpb25fYXNzaXN0YW50ICkgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJG1vZG5hbWUuJyBpcyBhbiBpbnZhbGlkIHByb21vdGlvbiBtb2R1bGUnKTsKICAgICAgICByZXR1cm4gJG1ncjsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9tb3Rpb25zX3Rlc3RlcigpCiAgICB7CiAgICAgICAgJG1vZCA9IHNlbGY6OmdldF9wcm9tb3Rpb25zX21vZHVsZSgpOwogICAgICAgIGlmKCAkbW9kICkgewogICAgICAgICAgICAkb2IgPSAgJG1vZC0+Z2V0X3Rlc3Rfb2JqZWN0KCk7CiAgICAgICAgICAgIHJldHVybiAkb2I7CiAgICAgICAgfQogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2dhdGV3YXlfbW9kdWxlcygpCiAgICB7CiAgICAgICAgJG1vZCA9IGNnZV91dGlsczo6Z2V0X21vZHVsZShNT0RfQ0dFQ09NTUVSQ0VCQVNFKTsKICAgICAgICAkdG1wID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2VsX3BheW1lbnRfbW9kdWxlcycpOwogICAgICAgIGlmKCAkdG1wICkgcmV0dXJuIGV4cGxvZGUoJywnLCR0bXApOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9wYXltZW50X21vZHVsZSgpCiAgICB7CiAgICAgICAgc3RhY2tfdHJhY2UoKTsgZGllKCdfX2ZpeG1lX18nKTsKICAgICAgICAkcmVzID0gbnVsbDsKICAgICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICRtb2RuYW1lID0gJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdwYXltZW50X21vZHVsZScpOwogICAgICAgIGlmKCAkbW9kbmFtZSA9PSAnJyB8fCAkbW9kbmFtZSA9PSAnLTEnICkgcmV0dXJuICRyZXM7CgogICAgICAgIHJldHVybiBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJG1vZG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9vcmRlcl9tYW5hZ2VyKCkKICAgIHsKICAgICAgICAvLyB0b2RvOiB0aGlzIGNhbiBiZSBjaGFuZ2VkLgogICAgICAgIHJldHVybiBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ09yZGVycycpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVzZXRfbGluZWl0ZW1fZGVzYygpCiAgICB7CiAgICAgICAgJGVjb21tID0gbnVsbDsKICAgICAgICBpZiggdmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCcxLjEwLWJldGEwJykgPCAwICkgewogICAgICAgICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJGVjb21tID0gTW9kdWxlT3BlcmF0aW9uczo6Z2V0X2luc3RhbmNlKCktPmdldF9tb2R1bGVfaW5zdGFuY2UoJ0NHRWNvbW1lcmNlQmFzZScsJycsVFJVRSk7CiAgICAgICAgfQogICAgICAgIGlmKCAhJGVjb21tICkgcmV0dXJuOwoKICAgICAgICAkZm4gPSAkZWNvbW0tPkdldE1vZHVsZVBhdGgoKS4nL3RlbXBsYXRlcy9vcmlnX2xpbmVpdGVtX2Rlc2NfdGVtcGxhdGUudHBsJzsKICAgICAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApIHsKICAgICAgICAgICAgJGRhdGEgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICAgICAgICAgJGVjb21tLT5TZXRUZW1wbGF0ZSgnbGluZWl0ZW1fZGVzY190ZW1wbGF0ZScsJGRhdGEpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2luZm8oJHNvdXJjZSwkcHJvZHVjdF9pZCkKICAgIHsKICAgICAgICAkbW9kdWxlID0gc2VsZjo6Z2V0X3N1cHBsaWVyX21vZHVsZSgkc291cmNlKTsKICAgICAgICBpZiggJG1vZHVsZSAmJiBtZXRob2RfZXhpc3RzKCRtb2R1bGUsJ2dldF9wcm9kdWN0X2luZm8nKSApIHsKICAgICAgICAgICAgJHRtcCA9ICRtb2R1bGUtPmdldF9wcm9kdWN0X2luZm8oJHByb2R1Y3RfaWQpOwogICAgICAgICAgICBpZiggaXNfb2JqZWN0KCR0bXApICYmICgkdG1wIGluc3RhbmNlb2YgY2dfZWNvbW1fcHJvZHVjdGluZm8pICkgcmV0dXJuICR0bXA7CiAgICAgICAgfQoKICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignQ291bGQgbm90IGdldCBwcm9kdWN0IGluZm8gZm9yIHByb2R1Y3QgJy4kcHJvZHVjdF9pZC4nIGZyb20gdGhlICcuJHNvdXJjZS4nIG1vZHVsZScpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZmluZF9wcm9kdWN0X2J5X3NrdSgkc2t1KQogICAgewogICAgICAgIC8vIGZpbmQgYSBwcm9kdWN0IGluIGFsbCBzdXBwbGllcnMsIGJ5IHNrdS4KICAgICAgICBpZiggISRza3UgKSByZXR1cm47CgogICAgICAgICRzdXBwbGllcnMgPSBzZWxmOjpnZXRfc3VwcGxpZXJfbW9kdWxlcygpOwogICAgICAgIGlmKCBpc19hcnJheSgkc3VwcGxpZXJzKSAmJiBjb3VudCgkc3VwcGxpZXJzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHN1cHBsaWVycyBhcyAkc3VwcGxpZXIgKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICRyZXMgPSBzZWxmOjpnZXRfcHJvZHVjdF9ieV9za3UoJHN1cHBsaWVyLCRza3UpOwogICAgICAgICAgICAgICAgICAgIGlmKCBpc19vYmplY3QoJHJlcykgJiYgKCRyZXMgaW5zdGFuY2VvZiBjZ19lY29tbV9wcm9kdWN0aW5mbykgKSByZXR1cm4gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCBpdC4KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2J5X3NrdSgkc291cmNlLCRza3UpCiAgICB7CiAgICAgICAgJG1vZHVsZSA9IHNlbGY6OmdldF9zdXBwbGllcl9tb2R1bGUoJHNvdXJjZSk7CiAgICAgICAgaWYoICRtb2R1bGUgKSB7CiAgICAgICAgICAgIGlmKCBtZXRob2RfZXhpc3RzKCRtb2R1bGUsJ2dldF9wcm9kdWN0X2J5X3NrdScpICkgewogICAgICAgICAgICAgICAgJHRtcCA9ICRtb2R1bGUtPmdldF9wcm9kdWN0X2J5X3NrdSgkc2t1KTsgLy8gZGVwcmVjYXRlZC4uLgogICAgICAgICAgICAgICAgaWYoIGlzX29iamVjdCgkdG1wKSAmJiAoJHRtcCBpbnN0YW5jZW9mIGNnX2Vjb21tX3Byb2R1Y3RpbmZvKSApIHJldHVybiAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignQ291bGQgbm90IGdldCBwcm9kdWN0IGluZm8gZm9yIHNrdSAnLiRza3UuJyBmcm9tIHRoZSAnLiRzb3VyY2UuJyBtb2R1bGUnKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9kaXNwbGF5YWJsZV9vcHRpb24oY2dfZWNvbW1fcHJvZHVjdGluZm9fb3B0aW9uICRvcHQpCiAgICB7CiAgICAgICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CgogICAgICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJywkZWNvbW0tPkdldFByZWZlcmVuY2UoJ2N1cnJlbmN5X3N5bWJvbCcpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3dlaWdodF91bml0cycsJGVjb21tLT5HZXRQcmVmZXJlbmNlKCd3ZWlnaHRfdW5pdHMnKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9jb2RlJywkZWNvbW0tPkdldFByZWZlcmVuY2UoJ2N1cnJlbmN5X2NvZGUnKSk7CiAgICAgICAgJHRlbXBsYXRlID0gJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdhdHRyaWJfaXRlbV9kZXNjcmlwdGlvbicpOwoKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ29wdGlvbicsJG9wdCk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdhdHRyaWJfdGV4dCcsJG9wdC0+Z2V0X3RleHQoKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdhdHRyaWJfYWRqdXN0Jywkb3B0LT5nZXRfYWRqdXN0bWVudCgpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2F0dHJpYl9za3UnLCRvcHQtPmdldF9za3UoKSk7CiAgICAgICAgJHN0ciA9ICRlY29tbS0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRlbXBsYXRlKTsKICAgICAgICByZXR1cm4gJHN0cjsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jb21wYW55X2FkZHJlc3MoKQogICAgewogICAgICAgICRlY29tbSA9IGNnZV91dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJHRtcCA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZSgnbXlpbmZvX2FkZHJlc3MnKTsKICAgICAgICAkcmVzID0gbnVsbDsKICAgICAgICBpZiggJHRtcCApICRyZXMgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9zeXN0ZW1fY2FydGl0ZW1fcG9saWN5KCkKICAgIHsKICAgICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICRwb2xpY3kgPSBuZXcgY2dfZWNvbW1fY2FydGl0ZW1fcG9saWN5KCk7CiAgICAgICAgJHBvbGljeS0+c2V0X21heF9zZXJ2aWNlcygkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3BvbGljeV9tYXhzZXJ2aWNlcycsMTAwMDAwMCkpOwogICAgICAgICRwb2xpY3ktPnNldF9tYXhfcHJvZHVjdHMoJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdwb2xpY3lfbWF4cHJvZHVjdHMnLDEwMDAwMDApKTsKICAgICAgICAkcG9saWN5LT5zZXRfbWF4X3N1YnNjcmlwdGlvbnMoJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdwb2xpY3lfbWF4c3Vic2NyaXB0aW9ucycsMTAwMDAwMCkpOwogICAgICAgICRwb2xpY3ktPnNldF9taXhlZF9zdWJzY3JpcHRpb25zKCRlY29tbS0+R2V0UHJlZmVyZW5jZSgncG9saWN5X21peGVkc3Vic2NyaXB0aW9ucycsMSkpOwogICAgICAgIHJldHVybiAkcG9saWN5OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3BheW1lbnRfY2FydGl0ZW1fcG9saWN5KCkKICAgIHsKICAgICAgICAkcG9saWN5ID0gbmV3IGNnX2Vjb21tX2NhcnRpdGVtX3BvbGljeSgpOwoKICAgICAgICAkbW9kdWxlX2xpc3QgPSBzZWxmOjpnZXRfZ2F0ZXdheV9tb2R1bGVzKCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkbW9kdWxlX2xpc3QpIHx8ICFjb3VudCgkbW9kdWxlX2xpc3QpICkgcmV0dXJuICRwb2xpY3k7CgogICAgICAgIGZvcmVhY2goICRtb2R1bGVfbGlzdCBhcyAkbW9kdWxlX25hbWUgKSB7CiAgICAgICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2R1bGVfbmFtZSk7CiAgICAgICAgICAgIGlmKCAhJG1vZCApIGNvbnRpbnVlOwoKICAgICAgICAgICAgJG1fcG9saWN5ID0gJG1vZC0+Z2V0X2NhcnRpdGVtX3BvbGljeSgpOwogICAgICAgICAgICBpZiggIWlzX29iamVjdCgkcG9saWN5KSApIHJldHVybjsgLy8gbm8gcG9saWN5LgoKICAgICAgICAgICAgJHBvbGljeS0+bWVyZ2UoJG1fcG9saWN5LEZBTFNFKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRwb2xpY3k7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5fdGF4X3NoaXBwaW5nKCkKICAgIHsKICAgICAgICAkZWNvbW0gPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIHJldHVybiAkZWNvbW0tPkdldFByZWZlcmVuY2UoJ3RheF9zaGlwcGluZycsMSk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY2FydF9tb2R1bGUoKQogICAgewogICAgICAgICRtb2RuYW1lID0gXENHRWNvbW1lcmNlQmFzZVxzZXR1cF9tYW5hZ2VyOjpnZXRfc2hvcHBpbmdfY2FydF9tZ3JfbmFtZSgpOwogICAgICAgIGlmKCAhJG1vZG5hbWUgKSByZXR1cm47CgogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRtb2RuYW1lKTsKICAgICAgICBpZiggISRtb2QgKSByZXR1cm47CiAgICAgICAgaWYoICFtZXRob2RfZXhpc3RzKCAkbW9kLCAnZ2V0X2NhcnRfbWFuYWdlcicgKSApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2RuYW1lLicgaXMgYW4gaW52YWxpZCBzaG9wcGluZyBjYXJ0IG1hbmFnZXIgbW9kdWxlJyk7CiAgICAgICAgJG1nciA9ICRtb2QtPmdldF9jYXJ0X21hbmFnZXIoKTsKICAgICAgICBpZiggISRtZ3IgaW5zdGFuY2VvZiBcQ0dFY29tbWVyY2VCYXNlXHNob3BwaW5nX2NhcnRfbWdyICkgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJG1vZG5hbWUuJyBpcyBhbiBpbnZhbGlkIHNob3BwaW5nIGNhcnQgbWFuYWdlciBtb2R1bGUnKTsKICAgICAgICByZXR1cm4gJG1ncjsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_cart.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKY2xhc3MgY2dfZWNvbW1fY2FydAp7CiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGdldF9jYXJ0X2NvbnRlbnRzKCRmZXVfdWlkID0gLTEpCiAgICB7CiAgICAgICAgJGNhcnQgPSBjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CiAgICAgICAgaWYoICRjYXJ0LT5HZXROdW1JdGVtcygpIDw9IDAgKSByZXR1cm4gRkFMU0U7CgogICAgICAgICRuYW1lcyA9ICRjYXJ0LT5HZXRCYXNrZXROYW1lcygpOwogICAgICAgICRkYXRhID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkbmFtZXMgYXMgJGJhc2tldF9uYW1lICkgewogICAgICAgICAgICAkZGF0YVskYmFza2V0X25hbWVdID0gYXJyYXkoKTsKICAgICAgICAgICAgJGRhdGFbJGJhc2tldF9uYW1lXVsnZGV0YWlscyddID0gJGNhcnQtPkdldEJhc2tldERldGFpbHMoJGJhc2tldF9uYW1lLCRmZXVfdWlkKTsKICAgICAgICAgICAgJGRhdGFbJGJhc2tldF9uYW1lXVsnaXRlbXMnXSA9ICRjYXJ0LT5HZXRCYXNrZXRJdGVtcygkYmFza2V0X25hbWUsJGZldV91aWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBiZWZvcmVfYWRkX2NhcnRpdGVtKGNnX2Vjb21tX2NhcnRpdGVtJiAkb2JqKQogICAgewogICAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICAgJHBhcm1zWydleGlzdGluZ19pdGVtcyddID0gc2VsZjo6Z2V0X2NhcnRfY29udGVudHMoKTsKICAgICAgICAkcGFybXNbJ2NhcnRfaXRlbSddID0mICRvYmo7CiAgICAgICAgXENNU01TXEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDR0Vjb21tZXJjZUJhc2U6OkNhcnRJdGVtQWRkUHJlJywkcGFybXMpOwogICAgfQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gb25fY2FydF9pdGVtX2FkZGVkKGNnX2Vjb21tX2NhcnRpdGVtICYkb2JqKQogICAgewogICAgICAgICRwYXJtc1snY2FydF9pdGVtJ10gPSYgJG9iajsKICAgICAgICBcQ01TTVNcSG9va01hbmFnZXI6OmRvX2hvb2soJ0NHRWNvbW1lcmNlQmFzZTo6Q2FydEl0ZW1BZGRlZCcsJHBhcm1zKTsKICAgIH0KCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIG9uX2NhcnRfYWRqdXN0ZWQoJHN0YXR1cyA9ICcnLCRhZGRkYXRhID0gJycpCiAgICB7CiAgICAgICAgJHBhcm1zWydjYXJ0X2l0ZW1zJ10gPSBzZWxmOjpnZXRfY2FydF9jb250ZW50cygpOwogICAgICAgICRwYXJtc1snc3RhdHVzJ10gPSAkc3RhdHVzOwogICAgICAgICRwYXJtc1snZXh0cmEnXSA9ICRhZGRkYXRhOwogICAgICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vaygnQ0dFY29tbWVyY2VCYXNlOjpDYXJ0QWRqdXN0ZWQnLCRwYXJtcyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfY2FydGl0ZW1fcG9saWN5KCkKICAgIHsKICAgICAgICAkcG9saWN5ID0gY2dfZWNvbW06OmdldF9wYXltZW50X2NhcnRpdGVtX3BvbGljeSgpOwoKICAgICAgICAvLyBtZXJnZSBpbiBhbnkgc2V0dGluZ3MgZnJvbSB0aGUgbW9kdWxlCiAgICAgICAgLy8gdGhlIHN5c3RlbSBjYXJ0aXRlbSBwb2xpY3kgcnVsZXMuCiAgICAgICAgJHNwb2xpY3kgPSBjZ19lY29tbTo6Z2V0X3N5c3RlbV9jYXJ0aXRlbV9wb2xpY3koKTsKICAgICAgICAkcG9saWN5LT5tZXJnZSgkc3BvbGljeSk7CiAgICAgICAgcmV0dXJuICRwb2xpY3k7CiAgICB9CgogICAgLyoqCiAgICAgKiBDaGVjayB0aGUgY2FydCBjb250ZW50cywgYW5kIGEgbmV3IGl0ZW0gYWdhaW5zdCB0aGUgY2FydCBpdGVtIHBvbGljeQogICAgICogdG8gc2VlIGlmIHRoaXMgbmV3IGl0ZW0gY2FuIGJlIGFkZGVkLgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrX2NhcnRpdGVtX3ZhbGlkKCRleGlzdGluZ19pdGVtcywgY2dfZWNvbW1fY2FydGl0ZW0mICRuZXdfaXRlbSwgJiRtZXNzYWdlID0gJycpCiAgICB7CiAgICAgICAgLy8gMS4gIEJ1aWxkIGEgcG9saWN5CiAgICAgICAgJHBvbGljeSA9IHNlbGY6OmdldF9jYXJ0aXRlbV9wb2xpY3koKTsKCiAgICAgICAgLy8gY2hlY2sgZm9yIHNlcnZpY2VzLCBwcm9kdWN0cywgYW5kIHN1YnNjcmlwdGlvbiBpbiBleGlzdGluZwogICAgICAgIC8vIGNhcnQgaXRlbXMuCiAgICAgICAgJGhhdmVfc2VydmljZXMgPSAwOwogICAgICAgICRoYXZlX3Byb2R1Y3RzID0gMDsKICAgICAgICAkaGF2ZV9zdWJzY3JpcHRpb25zID0gMDsKICAgICAgICBmb3JlYWNoKCAkZXhpc3RpbmdfaXRlbXMgYXMgJiRvbmVfaXRlbSApIHsKICAgICAgICAgICAgaWYoIChzdHJpbmcpJG9uZV9pdGVtID09IChzdHJpbmcpJG5ld19pdGVtICYmICghJG9uZV9pdGVtLT5hbGxvd19kdXBsaWNhdGUoKSB8fCAhJG5ld19pdGVtLT5hbGxvd19kdXBsaWNhdGUoKSkgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCAkb25lX2l0ZW0tPmdldF90eXBlKCkgPT0gY2dfZWNvbW1fY2FydGl0ZW06OlRZUEVfU0VSVklDRSApIHsKICAgICAgICAgICAgICAgICRoYXZlX3NlcnZpY2VzKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggJG9uZV9pdGVtLT5nZXRfdHlwZSgpID09IGNnX2Vjb21tX2NhcnRpdGVtOjpUWVBFX1BST0RVQ1QgKSB7CiAgICAgICAgICAgICAgICAkaGF2ZV9wcm9kdWN0cysrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggKCR0bXAgPSAkb25lX2l0ZW0tPmdldF9zdWJzY3JpcHRpb24oKSkgKSB7CiAgICAgICAgICAgICAgICBpZiggJHRtcC0+Z2V0X3BheXBlcmlvZCgpICE9IGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbjo6U1VCU0NSX1BFUklPRF9OT05FICkgJGhhdmVfc3Vic2NyaXB0aW9ucysrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBjaGVjayBmb3IgcHJvZHVjdCwgc2VydmljZSwgb3Igc3Vic2NyaXB0aW9uIGluCiAgICAgICAgLy8gTkVXIGNhcnQgaXRlbS4KICAgICAgICAkbmV3X3NlcnZpY2UgPSAwOwogICAgICAgICRuZXdfcHJvZHVjdCA9IDA7CiAgICAgICAgaWYoICRuZXdfaXRlbS0+Z2V0X3R5cGUoKSA9PSBjZ19lY29tbV9jYXJ0aXRlbTo6VFlQRV9TRVJWSUNFICkgewogICAgICAgICAgICAkbmV3X3NlcnZpY2UgPSAxOwogICAgICAgICAgICAkaGF2ZV9zZXJ2aWNlcysrOwogICAgICAgIH0KCiAgICAgICAgaWYoICRuZXdfaXRlbS0+Z2V0X3R5cGUoKSA9PSBjZ19lY29tbV9jYXJ0aXRlbTo6VFlQRV9QUk9EVUNUICkgewogICAgICAgICAgICAkbmV3X3Byb2R1Y3QgPSAxOwogICAgICAgICAgICAkaGF2ZV9wcm9kdWN0cysrOwogICAgICAgIH0KCiAgICAgICAgJG5ld19zdWJzY3JpcHRpb24gPSAwOwogICAgICAgICR0bXAgPSAkbmV3X2l0ZW0tPmdldF9zdWJzY3JpcHRpb24oKTsKICAgICAgICBpZiggaXNfb2JqZWN0KCR0bXApICYmICR0bXAtPmlzX3ZhbGlkKCkgKSB7CiAgICAgICAgICAgICRuZXdfc3Vic2NyaXB0aW9uID0gMTsKICAgICAgICAgICAgJGhhdmVfc3Vic2NyaXB0aW9ucysrOwogICAgICAgIH0KCiAgICAgICAgLy8gbm93IGNyb3NzIHJlZmVyZW5jZSB0aGlzIGluZm9ybWF0aW9uIGFnYWluc3Qgb3VyIHBvbGljeS4KICAgICAgICBpZiggISRwb2xpY3ktPmhhbmRsZV9wcm9kdWN0cygpICYmICRoYXZlX3Byb2R1Y3RzICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAhJHBvbGljeS0+aGFuZGxlX3NlcnZpY2VzKCkgJiYgJGhhdmVfc2VydmljZXMgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICEkcG9saWN5LT5oYW5kbGVfc3Vic2NyaXB0aW9ucygpICYmICRoYXZlX3N1YnNjcmlwdGlvbnMgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJHRtcCA9ICRwb2xpY3ktPm1heF9zdWJzY3JpcHRpb25zKCk7CiAgICAgICAgaWYoICR0bXAgPiAwICYmICR0bXAgPCAkaGF2ZV9zdWJzY3JpcHRpb25zICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICBpZiggISRwb2xpY3ktPmhhbmRsZV9taXhlZF9zdWJzY3JpcHRpb25zKCkgJiYgJGhhdmVfc3Vic2NyaXB0aW9ucyAmJiAoKCRoYXZlX3Byb2R1Y3RzKyRoYXZlX3NlcnZpY2VzKSA+IDEpICkgewogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FsY3VsYXRlX2NhcnRpdGVtX3N1bW1hcnkoJHByb2R1Y3RfaW5mbyxjZ19lY29tbV9jYXJ0aXRlbSAkaXRlbSkKICAgIHsKICAgICAgICAkc21hcnR5ID0gY21zbXMoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJGVjb21tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9zeW1ib2wnKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfdW5pdHMnLCRlY29tbS0+R2V0UHJlZmVyZW5jZSgnd2VpZ2h0X3VuaXRzJykpOwogICAgICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfY29kZScsJGVjb21tLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9jb2RlJykpOwogICAgICAgICRzbWFydHktPmFzc2lnbigncHJvZHVjdF9vYmonLCRwcm9kdWN0X2luZm8pOwogICAgICAgICRzbWFydHktPmFzc2lnbignY2FydF9pdGVtJywkaXRlbSk7CgogICAgICAgIC8vIGhhY2sgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiAgICAgICAgaWYoIGlzX29iamVjdCgkcHJvZHVjdF9pbmZvKSApIHsKICAgICAgICAgICAgJHRtcCA9IGFycmF5KCk7CiAgICAgICAgICAgICR0bXBbJ3Byb2R1Y3RfbmFtZSddID0gJHByb2R1Y3RfaW5mby0+Z2V0X25hbWUoKTsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdvbmVwcm9kdWN0JywkdG1wKTsKICAgICAgICB9CgogICAgICAgICRzdHIgPSAkZWNvbW0tPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSgnbGluZWl0ZW1fZGVzY190ZW1wbGF0ZScpOwogICAgICAgICRzdHIgPSBzdHJpcF90YWdzKCRzdHIpOwogICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnJm5ic3A7JywnICcsJHN0cik7CiAgICAgICAgJHN0ciA9IGh0bWxfZW50aXR5X2RlY29kZSgkc3RyKTsgLy8gcmVtb3ZlIHRob3NlIG5hc3R5ICZuYnNwOyB0aGluZ3MuIGV0Yy4KICAgICAgICAkc3RyID0gdHJpbSgkc3RyKTsKICAgICAgICByZXR1cm4gJHN0cjsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_cartitem.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGNnX2Vjb21tX2NhcnRpdGVtCnsKICAgIGNvbnN0ICAgVFlQRV9QUk9EVUNUID0gMTsKICAgIGNvbnN0ICAgVFlQRV9TRVJWSUNFID0gMzsKICAgIGNvbnN0ICAgVFlQRV9TSElQUElORyA9IDI7CiAgICBjb25zdCAgIFRZUEVfVEFYRVMgPSAzOwogICAgY29uc3QgICBUWVBFX0RJU0NPVU5UID0gNDsKICAgIGNvbnN0ICAgVFlQRV9PVEhFUiA9IDU7CgogICAgcHJpdmF0ZSAkX3NvdXJjZSA9IG51bGw7CiAgICBwcml2YXRlICRfcHJvZHVjdF9pZCA9IG51bGw7CiAgICBwcml2YXRlICRfc2t1ID0gbnVsbDsKICAgIHByaXZhdGUgJF9xdWFudGl0eSA9IG51bGw7CiAgICBwcml2YXRlICRfYmFzZV9wcmljZSA9IG51bGw7IC8vIHRoZSBiYXNlIHByaWNlIG9mIHRoZSBvYmplY3QsIG5vdCBpbmNsdWRpbmcgb3B0aW9ucwogICAgcHJpdmF0ZSAkX2F0dHJpYnV0ZXMgPSBhcnJheSgpOwogICAgcHJpdmF0ZSAkX3R5cGUgPSBzZWxmOjpUWVBFX1BST0RVQ1Q7CiAgICBwcml2YXRlICRfZGlnaXRhbCA9IGZhbHNlOwogICAgcHJpdmF0ZSAkX2VzdGltYXRlZCA9IGZhbHNlOwogICAgcHJpdmF0ZSAkX3BlbmRpbmcgPSBmYWxzZTsKICAgIHByaXZhdGUgJF91bml0X3dlaWdodCA9IG51bGw7CiAgICBwcml2YXRlICRfdW5pdF9kaW1lbnNpb25zID0gbnVsbDsKICAgIHByaXZhdGUgJF91bml0X3ByaWNlID0gbnVsbDsKICAgIHByaXZhdGUgJF9zdW1tYXJ5ID0gbnVsbDsKICAgIHByaXZhdGUgJF9pdGVtX3RvdGFsID0gbnVsbDsgLy8gb25seSBzZXQgaWYgdGhlIHVuaXQgdG90YWwgaGFzIGJlZW4gb3ZlcnJpZGVuLi4uLiBhY2NvdW50cyBmb3IgcXVhbnRpdHkgYXMgd2VsbC4KICAgIHByaXZhdGUgJF9zdWJzY3JpcHRpb24gPSBudWxsOwogICAgcHJpdmF0ZSAkX2FsbG93X2R1cGxpY2F0ZSA9IFRSVUU7CiAgICBwcml2YXRlICRfYWxsb3dfcXVhbnRpdHlfYWRqdXN0ID0gdHJ1ZTsKICAgIHByaXZhdGUgJF9hbGxvd19yZW1vdmUgPSB0cnVlOwogICAgcHJpdmF0ZSAkX3VuaXRfZGlzY291bnQgPSAwOwogICAgcHJpdmF0ZSAkX3BhcmVudCA9IC0xOwogICAgcHJpdmF0ZSAkX3Byb21vID0gbnVsbDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHNrdSwkcHJvZHVjdF9pZCwkcXVhbnRpdHksJHNvdXJjZSA9ICdQcm9kdWN0cycpCiAgICB7CiAgICAgICAgJHRoaXMtPl9zb3VyY2UgPSAkc291cmNlOwogICAgICAgICR0aGlzLT5fc2t1ID0gJHNrdTsKICAgICAgICAkdGhpcy0+X3Byb2R1Y3RfaWQgPSAkcHJvZHVjdF9pZDsKICAgICAgICAkdGhpcy0+X3F1YW50aXR5ID0gJHF1YW50aXR5OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZXN0aW1hdGVkKCRmbGFnKQogICAgewogICAgICAgICR0aGlzLT5fZXN0aW1hdGVkID0gKGJvb2wpJGZsYWc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGlzX2VzdGltYXRlZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZXN0aW1hdGVkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGlnaXRhbCgkZmxhZykKICAgIHsKICAgICAgICAkdGhpcy0+X2RpZ2l0YWwgPSAoYm9vbCkkZmxhZzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfZGlnaXRhbCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlnaXRhbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NvdXJjZSgkbnVtKQogICAgewogICAgICAgICR0aGlzLT5fc291cmNlID0gJG51bTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NvdXJjZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fc291cmNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWxsb3dfcXVhbnRpdHlfYWRqdXN0KCRmbGFnID0gdHJ1ZSkKICAgIHsKICAgICAgICAkdGhpcy0+X2FsbG93X3F1YW50aXR5X2FkanVzdCA9ICRmbGFnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd19xdWFudGl0eV9hZGp1c3QoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2FsbG93X3F1YW50aXR5X2FkanVzdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FsbG93X2R1cGxpY2F0ZSgkZmxhZyA9IHRydWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9hbGxvd19kdXBsaWNhdGUgPSAkZmxhZzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWxsb3dfZHVwbGljYXRlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9hbGxvd19kdXBsaWNhdGU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9hbGxvd19yZW1vdmUoJGZsYWcgPSB0cnVlKQogICAgewogICAgICAgICR0aGlzLT5fYWxsb3dfcmVtb3ZlID0gJGZsYWc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFsbG93X3JlbW92ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fYWxsb3dfcmVtb3ZlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJvZHVjdF9pZCgkbnVtKQogICAgewogICAgICAgICR0aGlzLT5fcHJvZHVjdF9pZCA9ICRudW07CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2lkKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wcm9kdWN0X2lkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc2t1KCRudW0pCiAgICB7CiAgICAgICAgJHRoaXMtPl9za3UgPSAkbnVtOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2t1KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9za3U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wZW5kaW5nKCRudW0gPSB0cnVlKQogICAgewogICAgICAgICR0aGlzLT5fcGVuZGluZyA9ICRudW07CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wZW5kaW5nKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wZW5kaW5nOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcXVhbnRpdHkoJG51bSkKICAgIHsKICAgICAgICAkdGhpcy0+X3F1YW50aXR5ID0gJG51bTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3F1YW50aXR5KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9xdWFudGl0eTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2Jhc2VfcHJpY2UoJG51bSkKICAgIHsKICAgICAgICAkdGhpcy0+X2Jhc2VfcHJpY2UgPSAkbnVtOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYmFzZV9wcmljZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fYmFzZV9wcmljZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3VuaXRfZGlzY291bnQoJG51bSkKICAgIHsKICAgICAgICAkdGhpcy0+X3VuaXRfZGlzY291bnQgPSAkbnVtOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdW5pdF9kaXNjb3VudCgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fdW5pdF9kaXNjb3VudCApIHJldHVybiAkdGhpcy0+X3VuaXRfZGlzY291bnQ7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF91bml0X3ByaWNlKCRudW0pCiAgICB7CiAgICAgICAgJHRoaXMtPl91bml0X3ByaWNlID0gJG51bTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VuaXRfcHJpY2UoKQogICAgewogICAgICAgIGlmKCBpc19udWxsKCR0aGlzLT5fdW5pdF9wcmljZSkgKSB7CiAgICAgICAgICAgICRwcmljZSA9ICR0aGlzLT5nZXRfYmFzZV9wcmljZSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkdGhpcy0+Z2V0X29wdGlvbnMoKSBhcyAkb2JqICkgewogICAgICAgICAgICAgICAgJHByaWNlICs9ICRvYmotPmFkanVzdG1lbnQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRwcmljZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdW5pdF9wcmljZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25ldF91bml0X3ByaWNlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldF91bml0X3ByaWNlKCkgKyAkdGhpcy0+Z2V0X3VuaXRfZGlzY291bnQoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X29wdGlvbnMoJGF0dHJpYnMpCiAgICB7CiAgICAgICAgaWYoIGlzX2FycmF5KCRhdHRyaWJzKSApICR0aGlzLT5fYXR0cmlidXRlcyA9ICRhdHRyaWJzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0aW9ucygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fYXR0cmlidXRlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3R5cGUoJG51bSkKICAgIHsKICAgICAgICAkdGhpcy0+X3R5cGUgPSAkbnVtOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHlwZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdHlwZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3VuaXRfd2VpZ2h0KCRudW0pCiAgICB7CiAgICAgICAgJHRoaXMtPl91bml0X3dlaWdodCA9IChmbG9hdCkgJG51bTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VuaXRfd2VpZ2h0KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl91bml0X3dlaWdodDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RpbWVuc2lvbnMoICRsZW4sICR3aWR0aCwgJGhlaWdodCApCiAgICB7CiAgICAgICAgLy8gdG9kbzogc2hvdWxkIGJlIGRpbWVuc2lvbnMgb2JqZWN0LgogICAgICAgICR0aGlzLT5fdW5pdF9kaW1lbnNpb25zID0gWyAoZmxvYXQpICRsZW4sIChmbG9hdCkgJHdpZHRoLCAoZmxvYXQpICRoZWlnaHQgXTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2RpbWVuc2lvbnMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3VuaXRfZGltZW5zaW9uczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3N1bW1hcnkoJG51bSkKICAgIHsKICAgICAgICAkdGhpcy0+X3N1bW1hcnkgPSAkbnVtOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc3VtbWFyeSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fc3VtbWFyeTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3BhcmVudCgkbnVtKQogICAgewogICAgICAgICR0aGlzLT5fcGFyZW50ID0gJG51bTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhcmVudCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fcGFyZW50OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJvbW8oJG51bSkKICAgIHsKICAgICAgICAkdGhpcy0+X3Byb21vID0gJG51bTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Byb21vKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wcm9tbzsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2l0ZW1fdG90YWwoJG51bSkKICAgIHsKICAgICAgICAkdGhpcy0+X2l0ZW1fdG90YWwgPSAkbnVtOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaXRlbV90b3RhbCgpCiAgICB7CiAgICAgICAgaWYoICFpc19udWxsKCR0aGlzLT5faXRlbV90b3RhbCkgKSB7CiAgICAgICAgICAgIC8vIGl0ZW0gdG90YWwgaGFzIGJlZW4gb3ZlcnJpZGRlbi4KICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5faXRlbV90b3RhbDsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0X25ldF91bml0X3ByaWNlKCkgKiAkdGhpcy0+Z2V0X3F1YW50aXR5KCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zdWJzY3JpcHRpb24oY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uICRzdWJzY3IpCiAgICB7CiAgICAgICAgJHRoaXMtPl9zdWJzY3JpcHRpb24gPSAkc3Vic2NyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc3Vic2NyaXB0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zdWJzY3JpcHRpb247CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRvX2FycmF5KCkKICAgIHsKICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAkdG1wWydwcm9kdWN0X2lkJ10gPSAkdGhpcy0+Z2V0X3Byb2R1Y3RfaWQoKTsKICAgICAgICAkdG1wWydza3UnXSA9ICR0aGlzLT5nZXRfc2t1KCk7CiAgICAgICAgJHRtcFsncXVhbnRpdHknXSA9ICR0aGlzLT5nZXRfcXVhbnRpdHkoKTsKICAgICAgICAkdG1wWydiYXNlX3ByaWNlJ10gPSAkdGhpcy0+Z2V0X2Jhc2VfcHJpY2UoKTsKICAgICAgICAkdG1wWyd0eXBlJ10gPSAkdGhpcy0+Z2V0X3R5cGUoKTsKICAgICAgICAkdG1wWydwZW5kaW5nJ10gPSAkdGhpcy0+Z2V0X3BlbmRpbmcoKTsKICAgICAgICAkdG1wWyd1bml0X3dlaWdodCddID0gJHRoaXMtPmdldF91bml0X3dlaWdodCgpOwogICAgICAgICR0bXBbJ3VuaXRfZGltZW5zaW9uJ10gPSAkdGhpcy0+Z2V0X2RpbWVuc2lvbnMoKTsKICAgICAgICAkdG1wWyd1bml0X3ByaWNlJ10gPSAkdGhpcy0+Z2V0X3VuaXRfcHJpY2UoKTsKICAgICAgICAkdG1wWydzdW1tYXJ5J10gPSAkdGhpcy0+Z2V0X3N1bW1hcnkoKTsKICAgICAgICAkdG1wWydwYXJlbnQnXSA9ICR0aGlzLT5nZXRfcGFyZW50KCk7CiAgICAgICAgJHRtcFsncHJvbW8nXSA9ICR0aGlzLT5nZXRfcHJvbW8oKTsKICAgICAgICAkdG1wWyd1bml0X2Rpc2NvdW50J10gPSAkdGhpcy0+Z2V0X3VuaXRfZGlzY291bnQoKTsKICAgICAgICAkdG1wWydpdGVtX3RvdGFsJ10gPSAkdGhpcy0+Z2V0X2l0ZW1fdG90YWwoKTsKCiAgICAgICAgaWYoICR0aGlzLT5fc3Vic2NyaXB0aW9uICkgJHRtcFsnc3Vic2NyaXB0aW9uJ10gPSAkdGhpcy0+X3N1YnNjcmlwdGlvbi0+dG9fYXJyYXkoKTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX190b3N0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuIGltcGxvZGUoJy8vJyxhcnJheSgkdGhpcy0+Z2V0X3NvdXJjZSgpLCR0aGlzLT5nZXRfc2t1KCksJHRoaXMtPmdldF9zdW1tYXJ5KCksJHRoaXMtPmdldF91bml0X3ByaWNlKCkpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY29tcGFyZShjZ19lY29tbV9jYXJ0aXRlbSAkb3RoZXJfaXRlbSkKICAgIHsKICAgICAgICAkdG1wMSA9ICR0aGlzLT50b19hcnJheSgpOwogICAgICAgIHVuc2V0KCR0bXAxWyd1bml0X2Rpc2NvdW50J10sJHRtcDFbJ3F1YW50aXR5J10sJHRtcDFbJ2l0ZW1fdG90YWwnXSk7CiAgICAgICAgJHRtcDIgPSAkb3RoZXJfaXRlbS0+dG9fYXJyYXkoKTsKICAgICAgICB1bnNldCgkdG1wMlsndW5pdF9kaXNjb3VudCddLCR0bXAyWydxdWFudGl0eSddLCR0bXAyWydpdGVtX3RvdGFsJ10pOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJHRtcDEpICYmICFpc19hcnJheSgkdG1wMikgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJHRtcCA9IEBhcnJheV9kaWZmKCR0bXAxLCAkdG1wMik7CiAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSB8fCBjb3VudCgkdG1wKSA9PSAwICkgcmV0dXJuIFRSVUU7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCj8+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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBjZ19lY29tbV9jb21wYW55X2FkZHJlc3MgZXh0ZW5kcyBjZ2VfYWRkcmVzcwp7CiAgcHVibGljIGZ1bmN0aW9uIGlzX3ZhbGlkKCkKICB7CiAgICBpZiggJHRoaXMtPmdldF9jb21wYW55KCkgPT0gJycgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggJHRoaXMtPmdldF9hZGRyZXNzMSgpID09ICcnICkgcmV0dXJuIEZBTFNFOwogICAgaWYoICR0aGlzLT5nZXRfY2l0eSgpID09ICcnICkgcmV0dXJuIEZBTFNFOwogICAgaWYoICR0aGlzLT5nZXRfc3RhdGUoKSA9PSAnJyApIHJldHVybiBGQUxTRTsKICAgIGlmKCAkdGhpcy0+Z2V0X3Bvc3RhbCgpID09ICcnICkgcmV0dXJuIEZBTFNFOwogICAgaWYoICR0aGlzLT5nZXRfY291bnRyeSgpID09ICcnICkgcmV0dXJuIEZBTFNFOwogICAgaWYoICR0aGlzLT5nZXRfcGhvbmUoKSA9PSAnJyApIHJldHVybiBGQUxTRTsKICAgIGlmKCAkdGhpcy0+Z2V0X2VtYWlsKCkgPT0gJycgKSByZXR1cm4gRkFMU0U7CiAgICByZXR1cm4gVFJVRTsKICB9Cn0KCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_offline.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCi8qKgogKiBVdGlsaXR5IGNsYXNzIGZvciBtYW5hZ2luZyB0b2tlbnMgcmVsYXRlZCB0byBvZmZsaW5lIGNoYXJnZXMKICoKICogVGhpcyBjbGFzcyByZXF1aXJlcyBGRVUsIGFuZCBhbiBhY3RpdmUgRkVVIHVzZXIKICoKICovCmZpbmFsIGNsYXNzIGNnX2Vjb21tX29mZmxpbmUKewogICAgcHJpdmF0ZSBzdGF0aWMgJF9wcmVmaXggPSAnX19jZ19lY29tbV90b2tlbnMnOwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogICAgLyoqCiAgICAgKiBTZXQgYSB0b2tlbiBmb3Igb2ZmbGluZSBhY2Nlc3MKICAgICAqCiAgICAgKiBAdGhyb3dzIENtc0V4Y2VwdGlvbgogICAgICogQHRocm93cyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbgogICAgICogQHBhcmFtIHN0cmluZyAka2V5CiAgICAgKiBAcGFyYW0gc3RyaW5nICR2YWwKICAgICAqIEBwYXJhbSBpbnQgICAgJGZldV91aWQKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF90b2tlbigka2V5LCR2YWwsJGZldV91aWQgPSBudWxsKQogICAgewogICAgICAgIGlmKCAhJGtleSB8fCAhJHZhbCApIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgcGFzc2VkIHRvICcuX19DTEFTU19fLic6OicuX19NRVRIT0RfXyk7CiAgICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgIGlmKCAhJGZldSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0F0dGVtcHQgdG8gc3RvcmUgcGF5bWVudCBnYXRld2F5IHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcyB3aXRoIG5vIEZyb250RW5kVXNlcnMgbW9kdWxlJyk7CiAgICAgICAgaWYoICEkZmV1X3VpZCApICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICAgIGlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdBdHRlbXB0IHRvIHN0b3JlIHBheW1lbnQgZ2F0ZXdheSB0b2tlbiBmb3Igb2ZmbGluZSBhY2Nlc3Mgd2hlbiBzaXRlIHZpc2l0b3IgaXMgbm90IGxvZ2dlZCBpbiB0byBGRVUnKTsKCiAgICAgICAgJGRlZm4gPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm4oc2VsZjo6JF9wcmVmaXgpOwogICAgICAgIGlmKCAhJGRlZm4gKSB7CiAgICAgICAgICAgICRmZXUtPkFkZFByb3BlcnR5RGVmbihzZWxmOjokX3ByZWZpeCwnJyxGcm9udEVuZFVzZXJzOjpGSUVMRFRZUEVfREFUQSwgMTAyNCwgMCwgJycsIDAsIDEpOwogICAgICAgICAgICAkZmV1LT5TZXRQcm9wZXJ0eURlZm5FeHRyYShzZWxmOjokX3ByZWZpeCxhcnJheSgnbW9kdWxlJz0+J0NHRWNvbW1lcmNlQmFzZScpKTsKICAgICAgICB9CgogICAgICAgICR0bXAgPSAkZmV1LT5HZXRVc2VyUHJvcGVydHlGdWxsKHNlbGY6OiRfcHJlZml4LCAkZmV1X3VpZCk7CiAgICAgICAgJHRtcCA9IHVuc2VyaWFsaXplKCR0bXApOwogICAgICAgIGlmKCAhJHRtcCApICR0bXAgPSBhcnJheSgpOwogICAgICAgICR0bXBbJGtleV0gPSAkdmFsOwogICAgICAgICR0bXAgPSBzZXJpYWxpemUoJHRtcCk7CiAgICAgICAgJGZldS0+U2V0VXNlclByb3BlcnR5RnVsbChzZWxmOjokX3ByZWZpeCwgJHRtcCwgJGZldV91aWQpOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IGEgdG9rZW4gZm9yIG9mZmxpbmUgYWNjZXNzCiAgICAgKgogICAgICogQHRocm93cyBDbXNFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgQ21zSW52YWxpZERhdGFFeGNlcHRpb24KICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQogICAgICogQHBhcmFtIGludCAgICAkZmV1X3VpZAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdG9rZW4oJGtleSwkZmV1X3VpZCA9IG51bGwpCiAgICB7CiAgICAgICAgaWYoICEka2V5ICkgdGhyb3cgbmV3IENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlcyBwYXNzZWQgdG8gJy5fX0NMQVNTX18uJzo6Jy5fX01FVEhPRF9fKTsKICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgaWYoICEkZmV1ICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgcGF5bWVudCBnYXRld2F5IHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcyB3aXRoIG5vIEZyb250RW5kVXNlcnMgbW9kdWxlJyk7CiAgICAgICAgaWYoICEkZmV1X3VpZCApICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICAgIGlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBwYXltZW50IGdhdGV3YXkgdG9rZW4gZm9yIG9mZmxpbmUgYWNjZXNzIHdoZW4gc2l0ZSB2aXNpdG9yIGlzIG5vdCBsb2dnZWQgaW4gdG8gRkVVJyk7CgogICAgICAgICR0bXAgPSAkZmV1LT5HZXRVc2VyUHJvcGVydHlGdWxsKHNlbGY6OiRfcHJlZml4LCAkZmV1X3VpZCk7CiAgICAgICAgJHRtcCA9IEB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICBpZiggaXNzZXQoJHRtcFska2V5XSkgKSByZXR1cm4gJHRtcFska2V5XTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCBhIHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcwogICAgICoKICAgICAqIEB0aHJvd3MgQ21zRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIENtc0ludmFsaWREYXRhRXhjZXB0aW9uCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkKICAgICAqIEBwYXJhbSBpbnQgICAgJGZldV91aWQKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhhc190b2tlbigka2V5LCAkZmV1X3VpZCkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBzZWxmOjpnZXRfdG9rZW4oJGtleSwkZmV1X3VpZCk7CiAgICAgICAgICAgIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUmVtb3ZlIGEgdG9rZW4gZm9yIG9mZmxpbmUgYWNjZXNzCiAgICAgKgogICAgICogQHRocm93cyBDbXNFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgQ21zSW52YWxpZERhdGFFeGNlcHRpb24KICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQogICAgICogQHBhcmFtIGludCAgICAkZmV1X3VpZAogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVsZXRlX3Rva2VuKCRrZXksJGZldV91aWQgPSBudWxsKQogICAgewogICAgICAgIGlmKCAhJGtleSApIHRocm93IG5ldyBDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbignSW52YWxpZCB2YWx1ZXMgcGFzc2VkIHRvICcuX19DTEFTU19fLic6OicuX19NRVRIT0RfXyk7CiAgICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgIGlmKCAhJGZldSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0F0dGVtcHQgdG8gZGVsZXRlIHBheW1lbnQgZ2F0ZXdheSB0b2tlbiBmb3Igb2ZmbGluZSBhY2Nlc3Mgd2l0aCBubyBGcm9udEVuZFVzZXJzIG1vZHVsZScpOwogICAgICAgIGlmKCAhJGZldV91aWQgKSAkZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgICAgICBpZiggISRmZXVfdWlkICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignQXR0ZW1wdCB0byBkZWxldGUgcGF5bWVudCBnYXRld2F5IHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcyB3aGVuIHNpdGUgdmlzaXRvciBpcyBub3QgbG9nZ2VkIGluIHRvIEZFVScpOwoKICAgICAgICAkdG1wID0gJGZldS0+R2V0VXNlclByb3BlcnR5RnVsbChzZWxmOjokX3ByZWZpeCwgJGZldV91aWQpOwogICAgICAgICR0bXAgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICBpZiggIWlzc2V0KCR0bXBbJGtleV0pICkgcmV0dXJuOwoKICAgICAgICB1bnNldCgkdG1wWyRrZXldKTsKICAgICAgICAkdG1wID0gc2VyaWFsaXplKCR0bXApOwogICAgICAgIHJldHVybiAkZmV1LT5TZXRVc2VyUHJvcGVydHlGdWxsKHNlbGY6OiRfcHJlZml4LCAkdG1wLCAkZmV1X3VpZCk7CiAgICB9CgoKICAgIC8qKgogICAgICogTGlzdCBhbGwgb2YgdGhlIG9mZmxpbmUgdG9rZW5zIGZvciBhIHVzZXIuCiAgICAgKgogICAgICogQHRocm93cyBDbXNFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgQ21zSW52YWxpZERhdGFFeGNlcHRpb24KICAgICAqIEBwYXJhbSAgaW50ICRmZXVfdWlkIEZyb250RW5kVXNlcnMgdXNlciBpZAogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxpc3RfdG9rZW5zKCRmZXVfdWlkID0gbnVsbCkKICAgIHsKICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgaWYoICEkZmV1ICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignQXR0ZW1wdCB0byBnZXQgcGF5bWVudCBnYXRld2F5IHRva2VuIGZvciBvZmZsaW5lIGFjY2VzcyB3aXRoIG5vIEZyb250RW5kVXNlcnMgbW9kdWxlJyk7CiAgICAgICAgaWYoICEkZmV1X3VpZCApICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICAgIGlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGdldCBwYXltZW50IGdhdGV3YXkgdG9rZW4gZm9yIG9mZmxpbmUgYWNjZXNzIHdoZW4gc2l0ZSB2aXNpdG9yIGlzIG5vdCBsb2dnZWQgaW4gdG8gRkVVJyk7CgogICAgICAgICR0bXAgPSAkZmV1LT5HZXRVc2VyUHJvcGVydHlGdWxsKHNlbGY6OiRfcHJlZml4LCAkZmV1X3VpZCk7CiAgICAgICAgaWYoICEkdG1wICkgcmV0dXJuOwogICAgICAgICR0bXAgPSBAdW5zZXJpYWxpemUoJHRtcCk7CiAgICAgICAgcmV0dXJuICR0bXA7CiAgICB9CgoKICAgIC8qKgogICAgICogVGVzdCBpZiB0aGUgdXNlciBoYXMgb25lIG9yIG1vcmUgb2ZmbGluZSB0b2tlbnMKICAgICAqCiAgICAgKiBAcGFyYW0gIGludCAgJGZldV91aWQKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhhc190b2tlbnMoJGZldV91aWQgPSBudWxsKQogICAgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRyZXMgPSBzZWxmOjpsaXN0X3Rva2VucygkZmV1X3VpZCk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkcmVzKSAmJiBjb3VudCgkcmVzKSApIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgIH0KICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNnX2Vjb21tX29yZGVyCnsKICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3JkZXJfY29udGVudHMoJG9yZGVyX2lkKQogIHsKICAgICRvcmRlcm1hbmFnZXIgPSBjZ19lY29tbTo6Z2V0X29yZGVyX21hbmFnZXIoKTsKICAgIGlmKCAhJG9yZGVybWFuYWdlciApIHJldHVybiBGQUxTRTsKCiAgICBpZiggIW1ldGhvZF9leGlzdHMoJG9yZGVybWFuYWdlciwnZ2V0X3BvcnRhYmxlX29yZGVyJykgKSAgcmV0dXJuIEZBTFNFOwoKICAgICRkYXRhID0gJG9yZGVybWFuYWdlci0+Z2V0X3BvcnRhYmxlX29yZGVyKCRvcmRlcl9pZCk7CiAgICByZXR1cm4gJGRhdGE7CiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBvbl9vcmRlcl9jcmVhdGVkKCRvcmRlcl9pZCkKICB7CiAgICAkcGFybXNbJ29yZGVyX2lkJ10gPSAkb3JkZXJfaWQ7CiAgICBcQ01TTVNcSG9va01hbmFnZXI6OmRvX2hvb2soJ0NHRWNvbW1lcmNlQmFzZTo6T3JkZXJDcmVhdGVkJywkcGFybXMpOwogIH0KCgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gb25fb3JkZXJfdXBkYXRlZCgkb3JkZXJfaWQpCiAgewogICAgJHBhcm1zWydvcmRlcl9pZCddID0gJG9yZGVyX2lkOwogICAgXENNU01TXEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDR0Vjb21tZXJjZUJhc2U6Ok9yZGVyVXBkYXRlZCcsJHBhcm1zKTsKICB9CgoKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIG9uX29yZGVyX2RlbGV0ZWQoJG9yZGVyX2lkKQogIHsKICAgICRwYXJtc1snb3JkZXJfaWQnXSA9ICRvcmRlcl9pZDsKICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vaygnQ0dFY29tbWVyY2VCYXNlOjpPcmRlckRlbGV0ZWQnLCRwYXJtcyk7CiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBvbl9nYXRld2F5X3RyYW5zYWN0aW9uKCRvcmRlcl9pZCkKICB7CiAgICAkcGFybXNbJ29yZGVyX2lkJ10gPSAkb3JkZXJfaWQ7CiAgICBcQ01TTVNcSG9va01hbmFnZXI6OmRvX2hvb2soJ0NHRWNvbW1lcmNlQmFzZTo6T25HYXRld2F5VHJhbnNhY3Rpb24nLCRwYXJtcyk7CiAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_productinfo.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRXh0ZW5zaW9ucyAoYykgMjAwOCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIHVzZWZ1bCBmdW5jdGlvbnMKIyAgYW5kIGNvbW1vbmx5IHVzZWQgZ3VpIGNhcGFiaWxpdGllcyB0byBvdGhlciBtb2R1bGVzLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKLyoqCiAqIEEgY2xhc3MgdG8gZGVzY3JpYmUgYW4gb3B0aW9uIGZvciBhIHByb2R1Y3QuCiAqLwpjbGFzcyBjZ19lY29tbV9wcm9kdWN0aW5mb19vcHRpb24KewogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljICRfa2V5cyA9IGFycmF5KCdpZCcsJ3NrdScsJ3RleHQnLCdhZGp1c3RtZW50JywncW9oJywnZGlzY291bnQnKTsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX2RhdGE7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCBzZWxmOjokX2tleXMgYXMgJGtleSApIHsKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJyc7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0Nhbm5vdCBnZXQga2V5ICcuJGtleS4nIGZyb20gJy5fX0NMQVNTX18pOwogICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCR2YWx1ZSkKICAgIHsKICAgICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0Nhbm5vdCBzZXQga2V5ICcuJGtleS4nIGludG8gJy5fX0NMQVNTX18pOwogICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIEdpdmVuIGEgYmFzZSBwcmljZSBmb3IgYW4gb3B0aW9uLCB1c2UgdGhlIGludGVybmFsIGFkanVzdG1lbnQgYW5kIHJldHVybiBhIHByb3BlciB2YWx1ZQogICAgICoKICAgICAqIEByZXR1cm4gZmxvYXQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHBhcnNlX2FkanVzdG1lbnQoJGJhc2VfcHJpY2UpCiAgICB7CiAgICAgICAgJHByaWNlID0gJGJhc2VfcHJpY2U7CiAgICAgICAgJGFkanVzdG1lbnQgPSB0cmltKCR0aGlzLT5fZGF0YVsnYWRqdXN0bWVudCddKTsKICAgICAgICBpZiggJHRoaXMtPl9kYXRhWydhZGp1c3RtZW50J10gKSB7CiAgICAgICAgICAgICRrID0gJHRoaXMtPl9kYXRhWydhZGp1c3RtZW50J11bMF07CiAgICAgICAgICAgIHN3aXRjaCggJGsgKSB7CiAgICAgICAgICAgIGNhc2UgJysnOgogICAgICAgICAgICBjYXNlICctJzoKICAgICAgICAgICAgICAgICR2ID0gKGZsb2F0KSBzdWJzdHIoJGFkanVzdG1lbnQsMSk7CiAgICAgICAgICAgICAgICAkcHJpY2UgPSAkYmFzZV9wcmljZSArICR2OwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICc9JzoKICAgICAgICAgICAgICAgICR2ID0gKGZsb2F0KSBzdWJzdHIoJGFkanVzdG1lbnQsMSk7CiAgICAgICAgICAgICAgICAkcHJpY2UgPSAkdjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnKic6CiAgICAgICAgICAgICAgICAkdiA9IChmbG9hdCkgc3Vic3RyKCRhZGp1c3RtZW50LDEpOwogICAgICAgICAgICAgICAgJHByaWNlID0gJGJhc2VfcHJpY2UgKiAkdjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnLyc6CiAgICAgICAgICAgICAgICAkdiA9IChmbG9hdCkgc3Vic3RyKCRhZGp1c3RtZW50LDEpOwogICAgICAgICAgICAgICAgJHByaWNlID0gJGJhc2VfcHJpY2UgLyAkdjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICR2ID0gKGZsb2F0KSAkYWRqdXN0bWVudDsKICAgICAgICAgICAgICAgIGlmKCAkdiA+IDAuMCApICRwcmljZSA9ICRiYXNlX3ByaWNlICsgJHY7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHByaWNlOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKLyoqCiAqIEEgc2ltcGxlIGNsYXNzIHRvIGFic3RyYWN0IGluZm9ybWF0aW9uIGFib3V0IGEgcHJvZHVjdCBvciBzZXJ2aWNlLgogKi8KY2xhc3MgY2dfZWNvbW1fcHJvZHVjdGluZm8KewogICAgY29uc3QgICBUWVBFX1BST0RVQ1QgPSAxOwogICAgY29uc3QgICBUWVBFX1NFUlZJQ0UgPSAzOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfc291cmNlID0gbnVsbDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3Byb2R1Y3RfaWQgPSBudWxsOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfd2VpZ2h0ID0gbnVsbDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3NrdSA9IG51bGw7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF9wcmljZSA9IG51bGw7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF9uYW1lID0gbnVsbDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3RheGFibGUgPSBudWxsOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfdHlwZSA9IHNlbGY6OlRZUEVfUFJPRFVDVDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX3N1YnNjcmlwdGlvbiA9IG51bGw7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKiBAdmFyIGJvb2wKICAgICAqLwogICAgcHJpdmF0ZSAkX2RpZ2l0YWw7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF9vcHRpb25zID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSAkX2RpbWVuc2lvbnM7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF9xb2g7CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHR5cGUgb2YgdGhlIG9mIHRoaXMgaXRlbSAocHJvZHVjdCBvciBzZXJ2aWNlKQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHNlbGY6OlRZUEVfUFJPRFVDVCBvciBzZWxmOjpUWVBFX1NFUlZJQ0UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF90eXBlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl90eXBlOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSB0eXBlIG9mIHRoaXMgaXRlbQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgc2VsZjo6VFlQRV9QUk9EVUNUIG9yIHNlbGY6OlRZUEVfU0VSVklDRQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3R5cGUoJHR5cGUpCiAgICB7CiAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsKICAgICAgICBjYXNlIHNlbGY6OlRZUEVfUFJPRFVDVDoKICAgICAgICBjYXNlIHNlbGY6OlRZUEVfU0VSVklDRToKICAgICAgICAgICAgJHRoaXMtPl90eXBlID0gJHR5cGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcHJvZHVjdCBzb3VyY2UgbW9kdWxlLgogICAgICoKICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc291cmNlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zb3VyY2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHByb2R1Y3Qgc291cmNlIG1vZHVsZQogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHZhbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NvdXJjZSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fc291cmNlID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcHJvZHVjdCBpZAogICAgICoKICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvZHVjdF9pZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fcHJvZHVjdF9pZDsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgcHJvZHVjdCBpZAogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHZhbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3Byb2R1Y3RfaWQoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3Byb2R1Y3RfaWQgPSAoaW50KSR2YWw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHdlaWdodCAodW5pdHMgYXJlIGRldGVybWluZWQgYnkgc3lzdGVtIHByZWZlcmVuY2VzKQogICAgICoKICAgICAqIEByZXR1cm4gZmxvYXQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF93ZWlnaHQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3dlaWdodDsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgd2VpZ2h0ICh1bml0cyBhcmUgZGV0ZXJtaW5lZCBieSBzeXN0ZW0gcHJlZmVyZW5jZXMpCiAgICAgKgogICAgICogQHBhcmFtIGZsb2F0ICR2YWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF93ZWlnaHQoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3dlaWdodCA9IChmbG9hdCkkdmFsOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBxdWFudGl0eSBvbiBoYW5kIGZvciB0aGlzIGl0ZW0KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3FvaCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fcW9oOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBxdWFudGl0eSBvbiBoYW5kIGZvciB0aGlzIGl0ZW0uCiAgICAgKiBOb3RlOiBpdCBpcyBva2F5IGZvciBuZWdhdGl2ZSB2YWx1ZXMgdG8gYmUgaGVyZSwgd2hpY2ggbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgYmFja29yZGVyIHN0YXR1cy4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR2YWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9xb2goJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3FvaCA9IChpbnQpICR2YWw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGRpbWVuc2lvbnMgZm9yIHRoaXMgaXRlbSBpZiBhbnkuCiAgICAgKiBVbml0cyBhcmUgZGV0ZXJtaW5lZCBieSBzeXN0ZW0gcHJlZmVyZW5jZXMuCiAgICAgKgogICAgICogQHJldHVybiBmbG9hdFtdIEFycmF5IG9mIGxlbmd0aCwgd2lkdGgsIGFuZCBoZWlnaHQgLi4uIG9yIG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kaW1lbnNpb25zKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kaW1lbnNpb25zOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBkaW1lbnNpb25zIGZvciB0aGlzIGl0ZW0uCiAgICAgKgogICAgICogQHBhcmFtIGZsb2F0ICRsIGxlbmd0aAogICAgICogQHBhcmFtIGZsb2F0ICR3IHdpZHRoCiAgICAgKiBAcGFyYW0gZmxvYXQgJGggaGVpZ2h0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGltZW5zaW9ucygkbCwkdywkaCkKICAgIHsKICAgICAgICAvLyB0b2RvOiBzaG91bGQgYmUgb2JqZWN0LgogICAgICAgICR0aGlzLT5fZGltZW5zaW9ucyA9IFsgKGZsb2F0KSRsLCAoZmxvYXQpJHcsIChmbG9hdCkkaCBdOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBTS1UgKHN0b2NrIGtlZXBpbmcgdW5pdCkgZm9yIHRoaXMgaXRlbS4KICAgICAqIE5vdGU6IHRoaXMgaXMgdGhlIHByaW1hcnkgaXRlbSBTS1UsIG5vdCBpbmNsdWRpbmcgYW55IG9wdGlvbnMuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9za3UoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3NrdTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgU0tVIChzdG9jayBrZWVwaW5nIHVuaXQpIGZvciB0aGlzIGl0ZW0uCiAgICAgKiBOb3RlOiBUaGlzIGlzIHRoZSBwcmltYXJ5IGl0ZW0gU0tVLCBub3QgaW5jbHVkaW5nIGFueSBvcHRpb25zLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHZhbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NrdSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fc2t1ID0gdHJpbSgkdmFsKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBDaGVjayBpZiB0aGlzIHByb2R1Y3QgaXMgYSBkaWdpdGFsIHByb2R1Y3Qgb3Igbm90LgogICAgICogTm90ZTogUmVzdWx0cyBhcmUgaW52YWxpZCBpZiB0eXBlICE9IFBST0RVQ1QuCiAgICAgKgogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGlnaXRhbCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlnaXRhbDsKICAgIH0KCgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGRpZ2l0YWwgZmxhZyBmb3IgdGhpcyBwcm9kdWN0LgogICAgICogTm90ZTogVGhpcyBpcyBpbnZhbGlkIGZvciB0eXBlcyAhPSBQUk9EVUNUOwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHZhbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RpZ2l0YWwoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X2RpZ2l0YWwgPSAoYm9vbCkgJHZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgYmFzZSBwcmljZSBmb3IgdGhpcyBpdGVtCiAgICAgKgogICAgICogQHJldHVybiBmbG9hdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ByaWNlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9wcmljZTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgYmFzZSBwcmljZSBmb3IgdGhpcyBpdGVtCiAgICAgKgogICAgICogQHBhcmFtIGZsb2F0ICR2YWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wcmljZSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fcHJpY2UgPSAoZmxvYXQpJHZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbmFtZSBmb3IgdGhpcyBpdGVtCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9uYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9uYW1lOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBuYW1lIGZvciB0aGlzIGl0ZW0KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR2YWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9uYW1lKCR2YWwpCiAgICB7CiAgICAgICAgJHRoaXMtPl9uYW1lID0gdHJpbSgkdmFsKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB3ZXRoZXIgb3Igbm90IHRoaXMgaXRlbSBpcyB0YXhhYmxlLgogICAgICogTm90ZTogTm8gdGF4IG1vZHVsZXMgd2lsbCBjYWxjdWxhdGUgdGF4ZXMgZm9yIG5vbiB0YXhhYmxlIGl0ZW1zLgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3RheGFibGUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3RheGFibGU7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgd2V0aGVyIG9yIG5vdCB0aGlzIGl0ZW0gaXMgdGF4YWJsZS4KICAgICAqIE5vdGU6IE5vIHRheCBtb2R1bGVzIHdpbGwgY2FsY3VsYXRlIHRheGVzIGZvciBub24gdGF4YWJsZSBpdGVtcy4KICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbCAkdmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGF4YWJsZSgkdmFsKQogICAgewogICAgICAgICR0aGlzLT5fdGF4YWJsZSA9IChpbnQpJHZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBzdWJzY3JpcHRpb24gaW5mbyAoaWYgYW55KSBmb3IgdGhpcyBpdGVtLgogICAgICoKICAgICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvZHVjdGluZm9fc3Vic2NyaXB0aW9uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc3Vic2NyaXB0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zdWJzY3JpcHRpb247CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgc3Vic2NyaXB0aW9uIGluZm8gZm9yIHRoaXMgaXRlbSwgaW5kaWNhdGluZyB0aGF0IGl0IGlzIGEgc3Vic2NyaWJhYmxlIGl0ZW0uCiAgICAgKgogICAgICogQHBhcmFtIGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbiAkb2JqCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3Vic2NyaXB0aW9uKGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbiAkb2JqKQogICAgewogICAgICAgICR0aGlzLT5fc3Vic2NyaXB0aW9uID0gJG9iajsKICAgIH0KCiAgICAvKioKICAgICAqIENvdW50IHRoZSBudW1iZXIgb2Ygb3B0aW9ucyBmb3IgdGhpcyBpdGVtLgogICAgICoKICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjb3VudF9vcHRpb25zKCkKICAgIHsKICAgICAgICByZXR1cm4gY291bnQoJHRoaXMtPl9vcHRpb25zKTsKICAgIH0KCiAgICAvKioKICAgICAqIEFkZCBhbiBvcHRpb24gZm9yIHRoaXMgaXRlbQogICAgICoKICAgICAqIEBwYXJhbSBjZ19lY29tbV9wcm9kdWN0aW5mb19vcHRpb24gJGF0dHIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZF9vcHRpb24oY2dfZWNvbW1fcHJvZHVjdGluZm9fb3B0aW9uICRhdHRyKQogICAgewogICAgICAgICR0aGlzLT5fb3B0aW9uc1tdID0gJGF0dHI7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYW4gb3B0aW9uIGJ5IHNwZWNpZnlpbmcgdGhlIGluZGV4LgogICAgICoKICAgICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvZHVjdGluZm9fb3B0aW9ufG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vcHRpb25fYnlfaWR4KCRpZHgpCiAgICB7CiAgICAgICAgaWYoICRpZHggPCAwIHx8ICRpZHggPiBjb3VudCgkdGhpcy0+X29wdGlvbnMpIC0gMSApIHJldHVybjsKICAgICAgICByZXR1cm4gJHRoaXMtPl9vcHRpb25zWyRpZHhdOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGFuIG9wdGlvbiBieSBpdCdzIG9wdGlvbiBpZC4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRpZAogICAgICogQHJldHVybiBjZ19lY29tbV9wcm9kdWN0aW5mb19vcHRpb258bnVsbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X29wdGlvbl9ieV9pZCgkaWQpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJHRoaXMtPl9vcHRpb25zIGFzICRvcHQgKSB7CiAgICAgICAgICAgIGlmKCAkb3B0LT5pZCA9PSAkaWQgKSByZXR1cm4gJG9wdDsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYW4gb3B0aW9uIGJ5IGl0J3MgU0tVLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHNrdQogICAgICogQHJldHVybiBjZ19lY29tbV9wcm9kdWN0aW5mb19vcHRpb258bnVsbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X29wdGlvbl9ieV9za3UoJHNrdSkKICAgIHsKICAgICAgICAkc2t1ID0gKHN0cmluZykgJHNrdTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X29wdGlvbnMgYXMgJG9wdCApIHsKICAgICAgICAgICAgaWYoICRvcHQtPnNrdSA9PSAkc2t1ICkgcmV0dXJuICRvcHQ7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBudW1iZXIgb2YgaXRlbXMgb24gaGFuZCBmb3IgdGhpcyBpdGVtIGJ5IHNwZWNpZnlpbmcgaXQncyBTS1UuCiAgICAgKiBJZiB0aGUgc2t1IGVudGVyZWQgbWF0Y2hlcyB0aGUgaXRlbSBza3UgdGhlbiBpdCdzIHFvaCBpcyByZXR1cm5lZC4KICAgICAqIGlmIHRoZSBza3UgZW50ZXJlZCBtYXRjaGVzIGFuIG9wdGlvbiBza3UgdGhlbiB0aGF0IHFvaCBpcyByZXR1cm5lZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3FvaF9ieV9za3UoJHNrdSkKICAgIHsKICAgICAgICAkb3B0ID0gJHRoaXMtPmdldF9vcHRpb25fYnlfc2t1KChzdHJpbmcpICRza3UpOwogICAgICAgIGlmKCAkb3B0ICkgcmV0dXJuICRvcHQtPnFvaDsKICAgICAgICBpZiggJHNrdSA9PSAkdGhpcy0+Z2V0X3NrdSgpICkgcmV0dXJuICR0aGlzLT5nZXRfcW9oKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIEhUTUwgY29kZSBmb3IgYW4gb3B0aW9ucyBkcm9wZG93biBmb3IgdGhpcyBpdGVtLgogICAgICogVGhpcyBtYXkgYmUgdXNlZCBieSBjYXJ0IG1vZHVsZXMuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9vcHRpb25zX2Ryb3Bkb3duKCkKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9vcHRpb25zKSAmJiBjb3VudCgkdGhpcy0+X29wdGlvbnMpICkgewogICAgICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICAgICAgJHNtYXJ0eSA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldFNtYXJ0eSgpOwogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcsY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfY29kZScsY2dfZWNvbW06OmdldF9jdXJyZW5jeV9jb2RlKCkpOwogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3dlaWdodF91bml0cycsY2dfZWNvbW06OmdldF93ZWlnaHRfdW5pdHMoKSk7CgogICAgICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9DR0VDT01NRVJDRUJBU0UpOwogICAgICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X29wdGlvbnMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignb3B0Jywkb25lKTsKICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignYXR0cmliX3NrdScsJG9uZS0+c2t1KTsKICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbignYXR0cmliX3RleHQnLCRvbmUtPnRleHQpOwogICAgICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdhdHRyaWJfYWRqdXN0Jywkb25lLT5hZGp1c3RtZW50KTsKICAgICAgICAgICAgICAgICRvdXRbJG9uZS0+c2t1XSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRtb2QtPkdldFByZWZlcmVuY2UoJ2F0dHJpYl9pdGVtX2Rlc2NyaXB0aW9uJykpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbmFtZSBmb3IgYSBwYXJ0aWN1bGFyIG9wdGlvbiAob3IgZm9yIHRoZSBpdGVtIGl0c2VsZikgYnkgc3VwcGx5aW5nIGEgU0tVLgogICAgICoKICAgICAqIEBwYXJhbW0gc3RyaW5nICRza3UKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdGV4dF9ieV9za3UoJHNrdSkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPmdldF9za3UoKSA9PSAkc2t1ICkgcmV0dXJuICR0aGlzLT5nZXRfbmFtZSgpOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5fb3B0aW9ucyk7ICRpKysgKSB7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X29wdGlvbnNbJGldLT5za3UgPT0gJHNrdSApIHJldHVybiAkdGhpcy0+X29wdGlvbnNbJGldLT50ZXh0OwogICAgICAgIH0KICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></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[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogVGhpcyBjbGFzcyBkZXNjcmliZXMgdGhlICdtYXRjaCcgKGlmIGFueSkgZm91bmQgYWZ0ZXIgdGVzdGluZyBhIHNlcmllcyBvZiBpdGVtcyBhZ2FpbnN0CiAqIHNvbWUgcHJvbW90aW9ucy4KICovCmNsYXNzIGNnX2Vjb21tX3Byb21vdGlvbl9tYXRjaAp7CiAgICBjb25zdCBPRkZFUl9ESVNDT1VOVCA9ICdfX2Rpc2NvdW50X18nOwogICAgY29uc3QgT0ZGRVJfUEVSQ0VOVCA9ICdfX3BlcmNlbnRfXyc7CiAgICBjb25zdCBPRkZFUl9QUk9EVUNUSUQgPSAnX19wcm9kdWN0aWRfXyc7CiAgICBjb25zdCBPRkZFUl9QUk9EVUNUU0tVID0gJ19fc2t1X18nOwoKICAgIHByaXZhdGUgJF9zb3VyY2U7CiAgICBwcml2YXRlICRfaXRlbWlkOwogICAgcHJpdmF0ZSAkX3NrdTsKICAgIHByaXZhdGUgJF9uYW1lOwogICAgcHJpdmF0ZSAkX3R5cGU7CiAgICBwcml2YXRlICRfdmFsOwogICAgcHJpdmF0ZSAkX3Byb21vOwogICAgcHJpdmF0ZSAkX2NhcnRfaWR4ID0gLTE7CiAgICBwcml2YXRlICRfZGlzY291bnRfYW10OwogICAgcHJpdmF0ZSAkX2N1bXVsYXRpdmUgPSAwOwoKICAgIC8qKgogICAgICogQ29uc3RydWN0b3IKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR0eXBlID0gc2VsZjo6T0ZGRVJfRElTQ09VTlQsJHZhbCA9IDAuMDApCiAgICB7CiAgICAgICAgJHRoaXMtPnNldF90eXBlKCR0eXBlKTsKICAgICAgICAkdGhpcy0+c2V0X3ZhbCgkdmFsKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgdHlwZSBvZiBtYXRjaAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3R5cGUoJHR5cGUpCiAgICB7CiAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsKICAgICAgICBjYXNlIHNlbGY6Ok9GRkVSX0RJU0NPVU5UOgogICAgICAgIGNhc2Ugc2VsZjo6T0ZGRVJfUEVSQ0VOVDoKICAgICAgICBjYXNlIHNlbGY6Ok9GRkVSX1BST0RVQ1RJRDoKICAgICAgICBjYXNlIHNlbGY6Ok9GRkVSX1BST0RVQ1RTS1U6CiAgICAgICAgICAgICR0aGlzLT5fdHlwZSA9ICR0eXBlOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCdJbnZhbGlkIHR5cGU6ICcuJHR5cGUuJyBmb3IgJy5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgdHlwZSBvZiBtYXRjaAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3R5cGUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3R5cGU7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIG9mZmVyCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbmFtZSgkbmFtZSkKICAgIHsKICAgICAgICAkdGhpcy0+X25hbWUgPSAkbmFtZTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSBuYW1lIG9mIHRoZSBtYXRjaAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X25hbWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X25hbWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHZhbHVlIG9mIHRoZSBtYXRjaAogICAgICogSW4gdGhlIGNhc2Ugb2YgYSBtYXRjaGVkIHByb2R1Y3QgdGhpcyBtYXkgYmUgYSBwcm9kdWN0IGlkIG9yIHNrdS4KICAgICAqIEluIHRoZSBjYXNlIG9mIGEgcGVyY2VudGFnZSBtYXRjaCB0aGlzIHdpbGwgYmUgdGhlIHBlcmNlbnRhZ2UgKGFzIGEgZGVjaW1hbCkKICAgICAqIEluIHRoZSBjYXNlIG9mIGEgZml4ZWQgZGlzY291bnQgdGhpcyB3aWxsIGJlIHRoZSB2YWx1ZSBvZiB0aGUgZGlzY291bnQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF92YWwoJHZhbCkKICAgIHsKICAgICAgICAkdGhpcy0+X3ZhbCA9ICR2YWw7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIG1hdGNoCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdmFsKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl92YWw7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHZhbHVlIG9mIGRpc2NvdW50IChpbiBjdXJyZW5jeSB1bml0cykKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kaXNjb3VudF9hbXQoJGRpc2NvdW50X2FtdCkKICAgIHsKICAgICAgICAkdGhpcy0+X2Rpc2NvdW50X2FtdCA9ICRkaXNjb3VudF9hbXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHZhbHVlIG9mIHRoZSBkaXNjb3VudAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rpc2NvdW50X2FtdCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGlzY291bnRfYW10OwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBwcm9tb3Rpb24gaWRlbnRpZmVyIHRoYXQgaW5kaWNhdGVzIHdoYXQgcHJvbW90aW9uIHdlIGFyZSByZWZlcnJpbmcgdG8KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wcm9tbygkcHJvbW8pCiAgICB7CiAgICAgICAgJHRoaXMtPl9wcm9tbyA9ICRwcm9tbzsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcHJvbW90aW9uIGlkZW50aWZpZXIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9tbygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fcHJvbW87CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHN1cHBsaWVyIG1vZHVsZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zdXBwbGllcigkc3VwcGxpZXIpCiAgICB7CiAgICAgICAgJHRoaXMtPl9zdXBwbGllciA9IHRyaW0oJHN1cHBsaWVyKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgc3VwcGxpZXIgbW9kdWxlLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3N1cHBsaWVyKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9zdXBwbGllcjsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgc3VwcGxpZXIgbW9kdWxlIHVuaXF1ZSBpZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2l0ZW1pZCgkaXRlbWlkKQogICAgewogICAgICAgICR0aGlzLT5faXRlbWlkID0gdHJpbSgkaXRlbWlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgaXRlbWlkIG1vZHVsZSB1bmlxdWUgaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9pdGVtaWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2l0ZW1pZDsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgdW5pcXVlIHNrdSBvZiB0aGUgbWF0Y2guCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc2t1KCRza3UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9za3UgPSB0cmltKCRza3UpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBza3UgbW9kdWxlIHVuaXF1ZSBpZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NrdSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fc2t1OwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGluZGV4IChpbiB0aGUgY2FydCkgb2YgdGhlIG1hdGNoZWQgaXRlbS4uLiBvciAtMQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2NhcnRfaWR4KCRjYXJ0X2lkeCkKICAgIHsKICAgICAgICAkdGhpcy0+X2NhcnRfaWR4ID0gKGludCkkY2FydF9pZHg7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGluZGV4IChpbiB0aGUgY2FydCkgb2YgdGhlIG1hdGNoZWQgaXRlbS4uLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcnRfaWR4KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9jYXJ0X2lkeDsKICAgIH0KCiAgICAvKioKICAgICAqIFdldGhlciB0aGlzIG1hdGNoIGNhbiBiZSBhcHBsaWVkIHRvIG90aGVyIG1hdGNoZXMuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfY3VtdWxhdGl2ZSgkZmxhZykKICAgIHsKICAgICAgICAkdGhpcy0+X2N1bXVsYXRpdmUgPSAoYm9vbCkkZmxhZzsKICAgIH0KCiAgICAvKioKICAgICAqIFdldGhlciB0aGlzIG1hdGNoIGNhbiBiZSBhcHBsaWVkIHRvIG90aGVyIG1hdGNoZXMuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY3VtdWxhdGl2ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fY3VtdWxhdGl2ZTsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgovKioKICogQW4gYWJzdHJhY3QgY2xhc3MgdG8gcGVmcm9ybSBtYXRjaGVzIGFnYWluc3QgcHJvbW90aW9ucwogKi8KYWJzdHJhY3QgY2xhc3MgY2dfZWNvbW1fcHJvbW90aW9uX3Rlc3Rlcgp7CiAgICBjb25zdCBUWVBFX0lOU1RBTlQgPSAnX2luc3RhbnRfJzsKICAgIGNvbnN0IFRZUEVfQ0hFQ0tPVVQgPSAnX2NoZWNrb3V0Xyc7CiAgICBwcml2YXRlICRfdHlwZSA9IHNlbGY6OlRZUEVfQ0hFQ0tPVVQ7CiAgICBwcml2YXRlICRfY2FydDsKICAgIHByaXZhdGUgJF9wcm9kdWN0OwogICAgcHJpdmF0ZSAkX2ZldV91aWQ7CiAgICBwcml2YXRlICRfc2t1OwogICAgcHJpdmF0ZSAkX3F1YW50aXR5OwogICAgcHJpdmF0ZSAkX3ByaWNlOwogICAgcHJpdmF0ZSAkX3NraXBfY2FydDsKICAgIHByaXZhdGUgJF9pZ25vcmVfZGlzY291bnRlZCA9IDA7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgICAvKioKICAgICAqIFNldCB0aGUgdHlwZSBvZiBwcm9tb3Rpb25zIHRvIG1hdGNoIGFnYWluc3QKICAgICAqLwogICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIHNldF9wcm9tb190eXBlKCR0eXBlKQogICAgewogICAgICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICAgICAgY2FzZSBzZWxmOjpUWVBFX0lOU1RBTlQ6CiAgICAgICAgY2FzZSBzZWxmOjpUWVBFX0NIRUNLT1VUOgogICAgICAgICAgICAkdGhpcy0+X3R5cGUgPSAkdHlwZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB0eXBlIHNwZWNpZmllZCBmb3IgJy5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcHJvbW90aW9uIHR5cGUKICAgICAqLwogICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9tb190eXBlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl90eXBlOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBwcm9kdWN0IHRoYXQgd2UgYXJlIHRlc3RpbmcgYWdhaW5zdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3Byb2R1Y3QoY2dfZWNvbW1fcHJvZHVjdGluZm8gJHByb2R1Y3QpCiAgICB7CiAgICAgICAgJHRoaXMtPl9wcm9kdWN0ID0gJHByb2R1Y3Q7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgcHJvZHVjdAogICAgICovCiAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3QoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X3Byb2R1Y3Q7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGNhcnQgaXRlbXMgKGZvciBhIGNhcnQgbWF0Y2gpCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5IEFycmF5IG9mIGNnX2Vjb21tX2NhcnRpdGVtIG9iamVjdHMuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfY2FydCgkaXRlbXMpCiAgICB7CiAgICAgICAgaWYoIGlzX2FycmF5KCRpdGVtcykgJiYgY291bnQoJGl0ZW1zKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGl0ZW1zIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggIWlzX2EoJG9uZSwnY2dfZWNvbW1fY2FydGl0ZW0nKSApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdhdHRlbXB0IHRvIHNldF9jYXJ0IGluICcuX19DTEFTU19fLicgd2l0aCBpbnZhbGlkIGRhdGEnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+X2NhcnQgPSAkaXRlbXM7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBjYXJ0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FydCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fY2FydDsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgRkVVIHVpZCB0byB0ZXN0IGFnYWluc3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9mZXVfdWlkKCR1aWQpCiAgICB7CiAgICAgICAgJHRoaXMtPl9mZXVfdWlkID0gJHVpZDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgY3VycmVudCBGRVUgdWlkdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZldV91aWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2ZldV91aWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgc2t1LiAgVGhpcyBvdmVycmlkZXMgdGhlIHByb2R1Y3Qgc2t1IChpZiBhbnkpCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc2t1KCRza3UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9za3UgPSB0cmltKCRza3UpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0cmlldmUgdGhlIGN1cnJlbnQgc2t1CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2t1KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9za3U7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGZsYWcgdGhhdCBpbmRpY2F0ZXMgdG8gaWdub3JlIGFscmVhZHkgZGlzY291bnRlZCBpdGVtcy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9pZ25vcmVfZGlzY291bnRlZCgkdmFsID0gVFJVRSkKICAgIHsKICAgICAgICAkdGhpcy0+X2lnbm9yZV9kaXNjb3VudGVkID0gY21zX3RvX2Jvb2woJHZhbCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgaWdub3JlIGRpc2NvdW50ZWQgaXRlbSBmbGFnLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2lnbm9yZV9kaXNjb3VudGVkKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9pZ25vcmVfZGlzY291bnRlZDsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgcXVhbnRpdHkgb2YgdGhlIGN1cnJlbnQgaXRlbS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9xdWFudGl0eSgkcXVhbnRpdHkpCiAgICB7CiAgICAgICAgJHRoaXMtPl9xdWFudGl0eSA9IChpbnQpJHF1YW50aXR5OwogICAgfQoKICAgIC8qKgogICAgICogUmV0cmlldmUgdGhlIGN1cnJlbnQgc2t1CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcXVhbnRpdHkoKQogICAgewogICAgICAgIHJldHVybiAoaW50KSR0aGlzLT5fcXVhbnRpdHk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHByb2R1Y3QgcHJpY2UuIFRoaXMgb3ZlcnJpZGVzIHRoZSBwcm9kdWN0IHByaWNlIChpZiBhbnkpCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJpY2UoJHByaWNlKQogICAgewogICAgICAgICRwcmljZSA9IChmbG9hdCkkcHJpY2U7CiAgICAgICAgaWYoICRwcmljZSA+PSAwICkgewogICAgICAgICAgICAkdGhpcy0+X3ByaWNlID0gJHByaWNlOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgcHJpY2UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcmljZSgpCiAgICB7CiAgICAgICAgaWYoICFpc19udWxsKCR0aGlzLT5fcHJpY2UpICkgcmV0dXJuICR0aGlzLT5fcHJpY2U7CiAgICAgICAgaWYoICFpc19udWxsKCR0aGlzLT5fcHJvZHVjdCkgKSByZXR1cm4gJHRoaXMtPl9wcm9kdWN0LT5nZXRfcHJpY2UoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCBhIGZsYWcgaW5kaWNhdGluZyB3ZXRoZXIgY2FydCBjb250ZW50cyBzaG91bGQgYmUgc2tpcHBlZCBpbiB0ZXN0cwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NraXBfY2FydCgkc2tpcF9jYXJ0ID0gVFJVRSkKICAgIHsKICAgICAgICAkdGhpcy0+X3NraXBfY2FydCA9IChib29sKSAkc2tpcF9jYXJ0OwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBza2lwX2NhcnQgZmxhZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NraXBfY2FydCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fc2tpcF9jYXJ0OwogICAgfQoKICAgIC8qKgogICAgICogdGVzdHMgaWYgcHJvZHVjdCBtYXRjaGVzIGFueSBwcm9tb3Rpb25zIHRoYXQgbWF0Y2ggc2V0IGNyaXRlcmlhLgogICAgICogKHByb2R1Y3QgbXVzdCBiZSBzZXQpLgogICAgICoKICAgICAqIEByZXR1cm4gY2dfZWNvbW1fcHJvbW90aW9uX21hdGNoCiAgICAgKi8KICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBmaW5kX21hdGNoKCk7CgogICAgLyoqCiAgICAgKiB0ZXN0IGlmIHRoZSBwcm9kdWN0IChvciBza3UpIG1hdGNoZXMgdGhlIG9mZmVyIHBhcnQKICAgICAqIG9mIGEgcHJvbW90aW9uLCBhbmQgaWYgdGhlIGNhcnQgY29udGVudHMgbWF0Y2ggdGhlIGNvbmRpdGlvbnMKICAgICAqIG9mIHRoZSBvZmZlci4KICAgICAqCiAgICAgKiBAcmV0dXJuIGNnX2Vjb21tX3Byb21vdGlvbl9tYXRjaAogICAgICovCiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZmluZF9vZmZlcl9tYXRjaCgpOwoKICAgIC8qKgogICAgICogRmluZCB0aGUgZmlyc3QgcHJvbW90aW9uIHRoYXQgbWF0Y2hlcyB0aGUgaXRlbXMgaW4gdGhlIGNhcnQKICAgICAqCiAgICAgKiBAcmV0dXJuIGNnX2Vjb21tX3Byb21vdGlvbl9tYXRjaAogICAgICovCiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZmluZF9jYXJ0X21hdGNoKCk7CgogICAgLyoqCiAgICAgKiBGaW5kIGFsbCBwcm9tb3Rpb25zIHRoYXQgbWF0Y2hlcyB0aGUgaXRlbXMgaW4gdGhlIGNhcnQKICAgICAqCiAgICAgKiBAcmV0dXJuIGNnX2Vjb21tX3Byb21vdGlvbl9tYXRjaAogICAgICovCiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZmluZF9hbGxfY2FydF9tYXRjaGVzKCk7Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/lib/class.cg_ecomm_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIGNnX2Vjb21tX3V0aWxzCnsKICAgIHByaXZhdGUgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7fQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gaXNfY3JlZGl0Y2FyZF9udW1iZXIoJHN0cikKICAgIHsKICAgICAgICAvLyB1c2VzIHRoZSBsdWhuL21vZC0xMCBhbGdvcml0aG0uCiAgICAgICAgJG51bWJlciA9IHByZWdfcmVwbGFjZSgnL1xELycsICcnLCAkc3RyKTsKICAgICAgICAkbGVuID0gc3RybGVuKCRudW1iZXIpOwogICAgICAgICRwYXJpdHkgPSAkbGVuICUgMjsKCiAgICAgICAgJHRvdGFsID0gMDsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCAkbGVuOyAkaSsrICkgewogICAgICAgICAgICAkZGlnaXQgPSAkbnVtYmVyWyRpXTsKICAgICAgICAgICAgaWYoICRpICUgMiA9PSAkcGFyaXR5ICkgewogICAgICAgICAgICAgICAgJGRpZ2l0ICo9IDI7CiAgICAgICAgICAgICAgICBpZiggJGRpZ2l0ID4gOSApICRkaWdpdCAtPSA5OwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0b3RhbCArPSAkZGlnaXQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiAoJHRvdGFsICUxMCA9PSAwKSA/IFRSVUUgOiBGQUxTRTsKICAgIH0KCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGNvbnZlcnRfbGVuZ3RoX3RvX21tKCAkdmFsICkKICAgIHsKICAgICAgICAkdmFsID0gKGZsb2F0KSAkdmFsOwogICAgICAgIGlmKCAkdmFsIDwgMCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbGVuZ3RoIHZhbHVlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkbGVuZ3RoX3VuaXRzID0gXGNnX2Vjb21tOjpnZXRfbGVuZ3RoX3VuaXRzKCk7CiAgICAgICAgaWYoICEkbGVuZ3RoX3VuaXRzICkgJGxlbmd0aF91bml0cyA9ICdpbic7CiAgICAgICAgJGxlbmd0aF91bml0cyA9IHN0cnRvbG93ZXIoJGxlbmd0aF91bml0cyk7CgogICAgICAgIHN3aXRjaCggJGxlbmd0aF91bml0cyApIHsKICAgICAgICBjYXNlICdpbic6CiAgICAgICAgY2FzZSAnaW5jaGVzJzoKICAgICAgICAgICAgJHZhbCA9IChpbnQpIGNlaWwoJHZhbCAqIDI1LjQpOwogICAgICAgICAgICByZXR1cm4gJHZhbDsKCiAgICAgICAgY2FzZSAnY20nOgogICAgICAgICAgICAkdmFsID0gKGludCkgY2VpbCgkdmFsICogMTAuMCk7CiAgICAgICAgICAgIHJldHVybiAkdmFsOwoKICAgICAgICBjYXNlICdmdCc6CiAgICAgICAgY2FzZSAnZmVldCc6CiAgICAgICAgICAgICR2YWwgPSAoaW50KSBjZWlsKCR2YWwgKiAxMiAqIDI1LjQpOwogICAgICAgICAgICByZXR1cm4gJHZhbDsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiaW52YWxpZCBsZW5ndGggdW5pdHMgJGxlbmd0aF91bml0cyBmb3IgdXNlIGluICIuX19NRVRIT0RfXyk7CiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gY29udmVydF93ZWlnaHRfdG9fZ3JhbXMoICR2YWwgKQogICAgewogICAgICAgICR2YWwgPSAoZmxvYXQpICR2YWw7CiAgICAgICAgaWYoICR2YWwgPCAwICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB3ZWlnaHQgdmFsdWUgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICR3ZWlnaHRfdW5pdHMgPSBcY2dfZWNvbW06OmdldF93ZWlnaHRfdW5pdHMoKTsKICAgICAgICBpZiggISR3ZWlnaHRfdW5pdHMgKSAkd2VpZ2h0X3VuaXRzID0gJ2xicyc7CiAgICAgICAgJHdlaWdodF91bml0cyA9IHN0cnRvbG93ZXIoICR3ZWlnaHRfdW5pdHMgKTsKCiAgICAgICAgc3dpdGNoKCAkd2VpZ2h0X3VuaXRzICkgewogICAgICAgIGNhc2UgJ2xiJzoKICAgICAgICBjYXNlICdsYnMnOgogICAgICAgICAgICAkdmFsID0gXGNnZV91bml0czo6TEJTX1RPX0tHICogJHZhbCAqIDEwMDA7CiAgICAgICAgICAgIHJldHVybiAoaW50KSAkdmFsOwoKICAgICAgICBjYXNlICdrZyc6CiAgICAgICAgY2FzZSAna2dzJzoKICAgICAgICAgICAgcmV0dXJuIChpbnQpICgkdmFsICogMTAwMCk7CgogICAgICAgIGNhc2UgJ2hnJzoKICAgICAgICAgICAgcmV0dXJuIChpbnQpICgkdmFsICogMTAwKTsKCiAgICAgICAgY2FzZSAnZyc6CiAgICAgICAgY2FzZSAnZ3JhbXMnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHZhbDsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiaW52YWxpZCB3ZWlnaHQgdW5pdHMgJHdlaWdodF91bml0cyBmb3IgdXNlIGluICIuX19NRVRIT0RfXyk7CiAgICAgICAgfQogICAgfQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.packing_list.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmNsYXNzIHBhY2tpbmdfbGlzdAp7CiAgICBwcml2YXRlICRfYWRkcmVzczsKICAgIHByaXZhdGUgJF9ib3hlcyA9IFtdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggXGNnZV9hZGRyZXNzICRhZGRyZXNzLCBhcnJheSAkaXRlbXMgPSBudWxsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2FkZHJlc3MgPSAkYWRkcmVzczsKICAgICAgICBpZiggIWlzX251bGwoJGl0ZW1zKSApIHsKICAgICAgICAgICAgLy8gYXNzdW1lIG9uZSBib3ggb2YgbWFzc2l2ZSBkaW1lbnNpb25zLCBhbmQgdGhyb3cgZXZlcnl0aGluZyBpbnRvIGl0LgogICAgICAgICAgICAkYm94ID0gbmV3IHBhY2tpbmdfYm94KCBbJ25hbWUnPT4nX3Vua25vd24nLCAnbGVuZ3RoJz0+MTAwMDAwLCAnd2lkdGgnPT4xMDAwMDAwLCAnZGVwdGgnPT4xMDAwMDAwIF0pOwogICAgICAgICAgICBmb3JlYWNoKCAkaXRlbXMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgIGlmKCAhICRvbmUgaW5zdGFuY2VvZiBcY2dfZWNvbW1fY2FydGl0ZW0gKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGRhdGEgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgICAgICAgICBpZiggJG9uZS0+aXNfZGlnaXRhbCgpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkcGFja2luZ19pdGVtID0gJHRoaXMtPmNyZWF0ZV9wYWNraW5nX2l0ZW0oICRvbmUgKTsKICAgICAgICAgICAgICAgICRib3gtPmFkZF9pdGVtKCAkcGFja2luZ19pdGVtICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPl9ib3hlc1tdID0gJGJveDsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXN0aW5hdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fYWRkcmVzczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2JveGVzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9ib3hlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX2JveChwYWNraW5nX2JveCAkYm94KQogICAgewogICAgICAgIGlmKCAhY291bnQoJGJveC0+Z2V0X2l0ZW1zKCkpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGFkZCBhbiBlbXB0eSBib3ggdG8gYSBwYWNraW5nIGxpc3QnKTsKICAgICAgICAkdGhpcy0+X2JveGVzW10gPSAkYm94OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfcGFja2luZ19pdGVtKCBcY2dfZWNvbW1fY2FydGl0ZW0gJGl0ZW0gKQogICAgewogICAgICAgICRwcm9kdWN0X2l0ZW0gPSBuZXcgcGFja2luZ19pdGVtKCBbICdza3UnPT4kaXRlbS0+Z2V0X3NrdSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXNjcmlwdGlvbic9PiRpdGVtLT5nZXRfc3VtbWFyeSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3ZWlnaHQnPT4kaXRlbS0+Z2V0X3VuaXRfd2VpZ2h0KCkgKiAkaXRlbS0+Z2V0X3F1YW50aXR5KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJz0+JGl0ZW0tPmdldF9pdGVtX3RvdGFsKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pOwogICAgICAgIHJldHVybiAkcHJvZHVjdF9pdGVtOwogICAgfQp9CgpjbGFzcyBwYWNraW5nX2JveAp7CiAgICBwcml2YXRlICRfbmFtZTsKICAgIHByaXZhdGUgJF9sZW5ndGhfbW07CiAgICBwcml2YXRlICRfd2lkdGhfbW07CiAgICBwcml2YXRlICRfZGVwdGhfbW07CiAgICBwcml2YXRlICRfdG90YWxfd2VpZ2h0X2dnOwogICAgcHJpdmF0ZSAkX3RvdGFsX3ZhbHVlOwogICAgcHJpdmF0ZSAkX2l0ZW1zID0gW107CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBhcnJheSAkcGFyYW1zICkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbCApICB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X25hbWUgPSB0cmltKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2xlbmd0aCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2xlbmd0aF9tbSA9IGNlaWwoKGZsb2F0KSR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3dpZHRoJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fd2lkdGhfbW0gPSBjZWlsKChmbG9hdCkkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdkZXB0aCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RlcHRoX21tID0gY2VpbCgoZmxvYXQpJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAndG90YWxfd2VpZ2h0JzoKICAgICAgICAgICAgICAgICR0aGlzLT5fdG90YWxfd2VpZ2h0X2dnID0gY2VpbCgoZmxvYXQpJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAndG90YWxfdmFsdWUnOgogICAgICAgICAgICAgICAgJHRoaXMtPl90b3RhbF92YWx1ZSA9IChmbG9hdCkgJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCAhJHRoaXMtPm5hbWUgfHwgJHRoaXMtPmxlbmd0aCA8PSAwIHx8ICR0aGlzLT53aWR0aCA8PSAwIHx8ICR0aGlzLT5kZXB0aCA8PSAwICkgIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBwYXJhbWV0ZXJzIHByb3ZpZGVkIHRvIGNvbnN0cnVjdCBhIHBhY2tpbmdfYm94Jyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfaXRlbSggcGFja2luZ19pdGVtICRpdGVtICkgewogICAgICAgICR0aGlzLT5faXRlbXNbXSA9ICRpdGVtOwogICAgICAgICR0aGlzLT5fdG90YWxfd2VpZ2h0X2dnICs9ICRpdGVtLT53ZWlnaHQ7CiAgICAgICAgJHRoaXMtPl90b3RhbF92YWx1ZSArPSAkaXRlbS0+dmFsdWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9pdGVtcygpCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5X3ZhbHVlcygkdGhpcy0+X2l0ZW1zKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzX2l0ZW1zKCkKICAgIHsKICAgICAgICByZXR1cm4gKGJvb2wpIGNvdW50KCR0aGlzLT5faXRlbXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBpc192YWxpZCgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fd2lkdGhfbW0gPCAxIHx8ICR0aGlzLT5fbGVuZ3RoX21tIDwgMSB8fCAkdGhpcy0+X2RlcHRoX21tIDwgMSB8fCAkdGhpcy0+X3RvdGFsX3dlaWdodF9nZyA8IDEgKSByZXR1cm47CiAgICAgICAgaWYoICR0aGlzLT5fdG90YWxfdmFsdWUgPCAwICkgcmV0dXJuOwogICAgICAgIGlmKCAhICR0aGlzLT5oYXNfaXRlbXMoKSApIHJldHVybjsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fbmFtZSk7CiAgICAgICAgY2FzZSAnd2lkdGgnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPl93aWR0aF9tbTsKICAgICAgICBjYXNlICdsZW5ndGgnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPl9sZW5ndGhfbW07CiAgICAgICAgY2FzZSAnZGVwdGgnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPl9kZXB0aF9tbTsKICAgICAgICBjYXNlICd0b3RhbF93ZWlnaHQnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPl90b3RhbF93ZWlnaHRfZ2c7CiAgICAgICAgY2FzZSAndG90YWxfdmFsdWUnOgogICAgICAgICAgICByZXR1cm4gKGZsb2F0KSAkdGhpcy0+X3RvdGFsX3ZhbHVlOwogICAgICAgIGNhc2UgJ2l0ZW1fY291bnQnOgogICAgICAgICAgICByZXR1cm4gY291bnQoJHRoaXMtPl9pdGVtcyk7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGtleSwkdmFsKQogICAgewogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgc2V0dGFibGUgbWVtYmVyIG9mICIuX19DTEFTU19fKTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCmNsYXNzIHBhY2tpbmdfaXRlbQp7CiAgICBwcml2YXRlICRfc2t1OwogICAgcHJpdmF0ZSAkX2Rlc2NyaXB0aW9uOwogICAgcHJpdmF0ZSAkX3dlaWdodDsgLy8gaW4gZ3JhbXMKICAgIHByaXZhdGUgJF92YWx1ZTsgLy8gaW4gY2dfZWNvbW0gY3VycmVuY3kgdW5pdHMuCgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBhcnJheSAkcGFybXMgKQogICAgewogICAgICAgIGZvcmVhY2goICRwYXJtcyBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAnc2t1JzoKICAgICAgICAgICAgICAgICR0aGlzLT5fc2t1ID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2Rlc2NyaXB0aW9uID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICd3ZWlnaHQnOgogICAgICAgICAgICAgICAgJHRoaXMtPl93ZWlnaHQgPSAoaW50KSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3ZhbHVlJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fdmFsdWUgPSAoZmxvYXQpICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnc2t1JzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9za3UpOwogICAgICAgIGNhc2UgJ2Rlc2NyaXB0aW9uJzoKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9kZXNjcmlwdGlvbik7CiAgICAgICAgY2FzZSAnd2VpZ2h0JzoKICAgICAgICAgICAgcmV0dXJuIChpbnQpICR0aGlzLT5fd2VpZ2h0OwogICAgICAgIGNhc2UgJ3ZhbHVlJzoKICAgICAgICAgICAgcmV0dXJuIChmbG9hdCkgJHRoaXMtPl92YWx1ZTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIGdldHRhYmxlIG1lbWJlciBvZiAiLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCR2YWwpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgfQoKfSAgLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.setup_manager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmZpbmFsIGNsYXNzIHNldHVwX21hbmFnZXIKewogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogICAgY29uc3QgUFJFRl9TSE9QUElOR19DQVJUX01BTkFHRVIgPSAnc2hvcHBpbmdfY2FydF9tZ3InOwogICAgY29uc3QgUFJFRl9UQVhfQ0FMQ1VMQVRPUiA9ICd0YXhfY2FsY3VsYXRvcic7CiAgICBjb25zdCBQUkVGX0hBTkRMSU5HX0NBTENVTEFUT1IgPSAnaGFuZGxpbmdfY2FsY3VsYXRvcic7CiAgICBjb25zdCBQUkVGX1BBQ0tBR0lOR19DQUxDVUxBVE9SID0gJ3BhY2thZ2luZ19jYWxjdWxhdG9yJzsKICAgIGNvbnN0IFBSRUZfU0hJUFBJTkdfQVNTSVNUQU5UID0gJ3NoaXBwaW5nX2Fzc2lzdGFudCc7CiAgICBjb25zdCBQUkVGX1BST01PVElPTl9BU1NJU1RBTlQgPSAncHJvbW90aW9uX2Fzc2lzdGFudCc7CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXRfc2hvcHBpbmdfY2FydF9tZ3IoICRtb2R1bGVfbmFtZSApCiAgICB7CiAgICAgICAgLy8gdXNlIGEgYnV0dG9uIGluIHRoZSBjYXJ0IG1vZHVsZSdzIGFkbWluIGNvbnNvbGUgdG8gc2V0IGl0IGFzIHRoZSBwcmVmZXJyZWQgc2hvcHBpbmcgY2FydCBtYW5hZ2VyLgogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRtb2Rfb2JqID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSggJG1vZHVsZV9uYW1lICk7CiAgICAgICAgaWYoICEkbW9kX29iaiApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgKGNhbm5vdCBsb2FkKSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggIW1ldGhvZF9leGlzdHMoICRtb2Rfb2JqLCAnZ2V0X2NhcnRfbWFuYWdlcicgKSApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2R1bGVfbmFtZS4nIGlzIGFuIGludmFsaWQgc2hvcHBpbmcgY2FydCBtYW5hZ2VyIG1vZHVsZScpOwogICAgICAgICRtZ3IgPSAkbW9kX29iai0+Z2V0X2NhcnRfbWFuYWdlcigpOwogICAgICAgIGlmKCAhJG1nciBpbnN0YW5jZW9mIFxDR0Vjb21tZXJjZUJhc2Vcc2hvcHBpbmdfY2FydF9tZ3IgKSAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgKG1pc3NpbmcgbWV0aG9kKSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJGVjb21tID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJGVjb21tLT5TZXRQcmVmZXJlbmNlKHNlbGY6OlBSRUZfU0hPUFBJTkdfQ0FSVF9NQU5BR0VSLCAkbW9kdWxlX25hbWUgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVuc2V0X3Nob3BwaW5nX2NhcnRfbWdyKCAkbW9kdWxlX25hbWUgKQogICAgewogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICBpZiggc2VsZjo6Z2V0X3Nob3BwaW5nX2NhcnRfbWdyX25hbWUoKSAhPSAkbW9kdWxlX25hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgdW5zZXQgdGhpcyBzaG9wcGluZyBjYXJ0IG1hbmFnZXInKTsKICAgICAgICAkZWNvbW0gPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICAkZWNvbW0tPlJlbW92ZVByZWZlcmVuY2Uoc2VsZjo6UFJFRl9TSE9QUElOR19DQVJUX01BTkFHRVIpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Nob3BwaW5nX2NhcnRfbWdyX25hbWUoKQogICAgewogICAgICAgICRlY29tbSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICR0bXAgPSAkZWNvbW0tPkdldFByZWZlcmVuY2Uoc2VsZjo6UFJFRl9TSE9QUElOR19DQVJUX01BTkFHRVIpOwogICAgICAgIHJldHVybiAkdG1wOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0X3RheF9jYWxjdWxhdG9yKCAkbW9kdWxlX25hbWUgKQogICAgewogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRtb2Rfb2JqID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSggJG1vZHVsZV9uYW1lICk7CiAgICAgICAgaWYoICEkbW9kX29iaiApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgKGNhbm5vdCBsb2FkKSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggIW1ldGhvZF9leGlzdHMoICRtb2Rfb2JqLCAnZ2V0X3RheF9jYWxjdWxhdG9yJyApICkgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJG1vZHVsZV9uYW1lLicgaXMgYW4gaW52YWxpZCB0YXggbW9kdWxlJyk7CiAgICAgICAgJG1nciA9ICRtb2Rfb2JqLT5nZXRfdGF4X2NhbGN1bGF0b3IoKTsKICAgICAgICBpZiggISRtZ3IgaW5zdGFuY2VvZiBcQ0dFY29tbWVyY2VCYXNlXHRheF9jYWxjdWxhdG9yICkgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIChtaXNzaW5nIG1ldGhvZCkgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICRlY29tbSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICRlY29tbS0+U2V0UHJlZmVyZW5jZShzZWxmOjpQUkVGX1RBWF9DQUxDVUxBVE9SLCAkbW9kdWxlX25hbWUgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVuc2V0X3RheF9jYWxjdWxhdG9yKCAkbW9kdWxlX25hbWUgKQogICAgewogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICBpZiggc2VsZjo6Z2V0X3RheF9jYWxjdWxhdG9yX25hbWUoKSAhPSAkbW9kdWxlX25hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgdW5zZXQgdGhpcyBzaG9wcGluZyBjYXJ0IG1hbmFnZXInKTsKICAgICAgICAkZWNvbW0gPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICAkZWNvbW0tPlJlbW92ZVByZWZlcmVuY2Uoc2VsZjo6UFJFRl9UQVhfQ0FMQ1VMQVRPUik7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdGF4X2NhbGN1bGF0b3JfbmFtZSgpCiAgICB7CiAgICAgICAgJGVjb21tID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJHRtcCA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZShzZWxmOjpQUkVGX1RBWF9DQUxDVUxBVE9SKTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF9oYW5kbGluZ19jYWxjdWxhdG9yKCAkbW9kdWxlX25hbWUgKQogICAgewogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRtb2Rfb2JqID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSggJG1vZHVsZV9uYW1lICk7CiAgICAgICAgaWYoICEkbW9kX29iaiApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgKGNhbm5vdCBsb2FkKSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggIW1ldGhvZF9leGlzdHMoICRtb2Rfb2JqLCAnZ2V0X2hhbmRsaW5nX2NhbGN1bGF0b3InICkgKSAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkbW9kdWxlX25hbWUuJyBpcyBhbiBpbnZhbGlkIGhhbmRsaW5nIG1vZHVsZScpOwogICAgICAgICRtZ3IgPSAkbW9kX29iai0+Z2V0X2hhbmRsaW5nX2NhbGN1bGF0b3IoKTsKICAgICAgICBpZiggISRtZ3IgaW5zdGFuY2VvZiBcQ0dFY29tbWVyY2VCYXNlXGhhbmRsaW5nX2NhbGN1bGF0b3IgKSAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgKG1pc3NpbmcgbWV0aG9kKSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJGVjb21tID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJGVjb21tLT5TZXRQcmVmZXJlbmNlKHNlbGY6OlBSRUZfSEFORExJTkdfQ0FMQ1VMQVRPUiwgJG1vZHVsZV9uYW1lICk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1bnNldF9oYW5kbGluZ19jYWxjdWxhdG9yKCAkbW9kdWxlX25hbWUgKQogICAgewogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICBpZiggc2VsZjo6Z2V0X2hhbmRsaW5nX2NhbGN1bGF0b3JfbmFtZSgpICE9ICRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCB1bnNldCB0aGlzIHNob3BwaW5nIGNhcnQgbWFuYWdlcicpOwogICAgICAgICRlY29tbSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICRlY29tbS0+UmVtb3ZlUHJlZmVyZW5jZShzZWxmOjpQUkVGX0hBTkRMSU5HX0NBTENVTEFUT1IpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2hhbmRsaW5nX2NhbGN1bGF0b3JfbmFtZSgpCiAgICB7CiAgICAgICAgJGVjb21tID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJHRtcCA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZShzZWxmOjpQUkVGX0hBTkRMSU5HX0NBTENVTEFUT1IpOwogICAgICAgIHJldHVybiAkdG1wOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0X3BhY2thZ2luZ19jYWxjdWxhdG9yKCAkbW9kdWxlX25hbWUgKQogICAgewogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRtb2Rfb2JqID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSggJG1vZHVsZV9uYW1lICk7CiAgICAgICAgaWYoICEkbW9kX29iaiApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgKGNhbm5vdCBsb2FkKSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggIW1ldGhvZF9leGlzdHMoICRtb2Rfb2JqLCAnZ2V0X3BhY2thZ2luZ19jYWxjdWxhdG9yJyApICkgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJG1vZHVsZV9uYW1lLicgaXMgYW4gaW52YWxpZCBwYWNrYWdpbmcgbW9kdWxlJyk7CiAgICAgICAgJG1nciA9ICRtb2Rfb2JqLT5nZXRfcGFja2FnaW5nX2NhbGN1bGF0b3IoKTsKICAgICAgICBpZiggISRtZ3IgaW5zdGFuY2VvZiBcQ0dFY29tbWVyY2VCYXNlXHBhY2thZ2luZ19jYWxjdWxhdG9yICkgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIChtaXNzaW5nIG1ldGhvZCkgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICRlY29tbSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICRlY29tbS0+U2V0UHJlZmVyZW5jZShzZWxmOjpQUkVGX1BBQ0tBR0lOR19DQUxDVUxBVE9SLCAkbW9kdWxlX25hbWUgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVuc2V0X3BhY2thZ2luZ19jYWxjdWxhdG9yKCAkbW9kdWxlX25hbWUgKQogICAgewogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICBpZiggc2VsZjo6Z2V0X3BhY2thZ2luZ19jYWxjdWxhdG9yX25hbWUoKSAhPSAkbW9kdWxlX25hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgdW5zZXQgdGhpcyBzaG9wcGluZyBjYXJ0IG1hbmFnZXInKTsKICAgICAgICAkZWNvbW0gPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKICAgICAgICAkZWNvbW0tPlJlbW92ZVByZWZlcmVuY2Uoc2VsZjo6UFJFRl9QQUNLQUdJTkdfQ0FMQ1VMQVRPUik7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcGFja2FnaW5nX2NhbGN1bGF0b3JfbmFtZSgpCiAgICB7CiAgICAgICAgJGVjb21tID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJHRtcCA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZShzZWxmOjpQUkVGX1BBQ0tBR0lOR19DQUxDVUxBVE9SKTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldF9zaGlwcGluZ19hc3Npc3RhbnQoICRtb2R1bGVfbmFtZSApCiAgICB7CiAgICAgICAgJG1vZHVsZV9uYW1lID0gdHJpbSgkbW9kdWxlX25hbWUpOwogICAgICAgIGlmKCAhJG1vZHVsZV9uYW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJG1vZF9vYmogPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCAkbW9kdWxlX25hbWUgKTsKICAgICAgICBpZiggISRtb2Rfb2JqICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdJbnZhbGlkIG1vZHVsZSAoY2Fubm90IGxvYWQpIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCAhbWV0aG9kX2V4aXN0cyggJG1vZF9vYmosICdnZXRfc2hpcHBpbmdfYXNzaXN0YW50JyApICkgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJG1vZHVsZV9uYW1lLicgaXMgYW4gaW52YWxpZCBwYWNrYWdpbmcgbW9kdWxlJyk7CiAgICAgICAgJG1nciA9ICRtb2Rfb2JqLT5nZXRfc2hpcHBpbmdfYXNzaXN0YW50KCk7CiAgICAgICAgaWYoICEkbWdyIGluc3RhbmNlb2YgXENHRWNvbW1lcmNlQmFzZVxzaGlwcGluZ19hc3Npc3RhbnQgKSAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgKG1pc3NpbmcgbWV0aG9kKSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJGVjb21tID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJGVjb21tLT5TZXRQcmVmZXJlbmNlKHNlbGY6OlBSRUZfU0hJUFBJTkdfQVNTSVNUQU5ULCAkbW9kdWxlX25hbWUgKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVuc2V0X3NoaXBwaW5nX2Fzc2lzdGFudCggJG1vZHVsZV9uYW1lICkKICAgIHsKICAgICAgICAkbW9kdWxlX25hbWUgPSB0cmltKCRtb2R1bGVfbmFtZSk7CiAgICAgICAgaWYoICEkbW9kdWxlX25hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIG1vZHVsZSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgaWYoIHNlbGY6OmdldF9zaGlwcGluZ19hc3Npc3RhbnRfbmFtZSgpICE9ICRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCB1bnNldCB0aGlzIHNob3BwaW5nIGNhcnQgbWFuYWdlcicpOwogICAgICAgICRlY29tbSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICRlY29tbS0+UmVtb3ZlUHJlZmVyZW5jZShzZWxmOjpQUkVGX1NISVBQSU5HX0FTU0lTVEFOVCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfc2hpcHBpbmdfYXNzaXN0YW50X25hbWUoKQogICAgewogICAgICAgICRlY29tbSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICR0bXAgPSAkZWNvbW0tPkdldFByZWZlcmVuY2Uoc2VsZjo6UFJFRl9TSElQUElOR19BU1NJU1RBTlQpOwogICAgICAgIHJldHVybiAkdG1wOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0X3Byb21vdGlvbl9hc3Npc3RhbnQoICRtb2R1bGVfbmFtZSApCiAgICB7CiAgICAgICAgJG1vZHVsZV9uYW1lID0gdHJpbSgkbW9kdWxlX25hbWUpOwogICAgICAgIGlmKCAhJG1vZHVsZV9uYW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJG1vZF9vYmogPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCAkbW9kdWxlX25hbWUgKTsKICAgICAgICBpZiggISRtb2Rfb2JqICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdJbnZhbGlkIG1vZHVsZSAoY2Fubm90IGxvYWQpIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCAhbWV0aG9kX2V4aXN0cyggJG1vZF9vYmosICdnZXRfcHJvbW90aW9uX2Fzc2lzdGFudCcgKSApICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCRtb2R1bGVfbmFtZS4nIGlzIGFuIGludmFsaWQgcGFja2FnaW5nIG1vZHVsZScpOwogICAgICAgICRtZ3IgPSAkbW9kX29iai0+Z2V0X3Byb21vdGlvbl9hc3Npc3RhbnQoKTsKICAgICAgICBpZiggISRtZ3IgaW5zdGFuY2VvZiBcQ0dFY29tbWVyY2VCYXNlXHByb21vdGlvbl9hc3Npc3RhbnQgKSAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBtb2R1bGUgKG1pc3NpbmcgbWV0aG9kKSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJGVjb21tID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJGVjb21tLT5TZXRQcmVmZXJlbmNlKHNlbGY6OlBSRUZfUFJPTU9USU9OX0FTU0lTVEFOVCwgJG1vZHVsZV9uYW1lICk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1bnNldF9wcm9tb3Rpb25fYXNzaXN0YW50KCAkbW9kdWxlX25hbWUgKQogICAgewogICAgICAgICRtb2R1bGVfbmFtZSA9IHRyaW0oJG1vZHVsZV9uYW1lKTsKICAgICAgICBpZiggISRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbW9kdWxlIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICBpZiggc2VsZjo6Z2V0X3Byb21vdGlvbl9hc3Npc3RhbnRfbmFtZSgpICE9ICRtb2R1bGVfbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCB1bnNldCB0aGlzIHNob3BwaW5nIGNhcnQgbWFuYWdlcicpOwogICAgICAgICRlY29tbSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgICRlY29tbS0+UmVtb3ZlUHJlZmVyZW5jZShzZWxmOjpQUkVGX1BST01PVElPTl9BU1NJU1RBTlQpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Byb21vdGlvbl9hc3Npc3RhbnRfbmFtZSgpCiAgICB7CiAgICAgICAgJGVjb21tID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgJHRtcCA9ICRlY29tbS0+R2V0UHJlZmVyZW5jZShzZWxmOjpQUkVGX1BST01PVElPTl9BU1NJU1RBTlQpOwogICAgICAgIHJldHVybiAkdG1wOwogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.shipment_info.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCi8vIGNsYXNzIHRvIGFic3RyYWN0IGluZm8gYWJvdXQgYSBzaGlwbWVudCB0aGF0IHdhcyByZXR1cmVuZCBmcm9tIGEgc2hpcHBpbmcgY2Fycmllci4KLy8gb2JqZWN0cyBvZiB0aGlzIHR5cGUgYXJlIG5ldmVyIG1lYW50IHRvIGJlIHN0b3JlZCwgYnV0IHRvIHJldHVybiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzaGlwcGluZyBtb2R1bGUgdG8gYSBoYW5kbGVyIHRoYXQgd2lsbCB0aGVuCi8vIHNhdmUgdGhlIGluZm8uCmNsYXNzIHNoaXBtZW50X2luZm8KewogICAgcHJpdmF0ZSAkX2RhdGEgPSBbJ2NhcnJpZXInPT5udWxsLCAnY2Fycmllcl9pZCc9Pm51bGwsICd0cmFja2luZ19udW1iZXInPT5udWxsLCAnc2hpcHBpbmdfY29zdCc9Pm51bGwsICdsYWJlbF9maWxlJz0+bnVsbCwgJ21hbmlmZXN0X2ZpbGUnPT5udWxsXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIGFycmF5ICRwYXJhbXMgKQogICAgewogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2NhcnJpZXInOiAgICAgIC8vIHRoZSBjYXJyaWVyIG5hbWUKICAgICAgICAgICAgY2FzZSAnY2Fycmllcl9pZCc6ICAgLy8gdGhlIGNhcnJpZXIncyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNoaXBtZW50CiAgICAgICAgICAgIGNhc2UgJ3RyYWNraW5nX251bWJlcic6ICAvLyB0aGUgY2FycmllcidzIHB1YmxpYyB0cmFja2luZyBudW1iZXIgZm9yIHRoZSBzaGlwbWVudAogICAgICAgICAgICBjYXNlICdsYWJlbF9maWxlJzogICAgLy8gdGhlIGNvbXBsZXRlIGZpbGUgc3BlY2lmaWNhdGlvbiAoY2FuIGJlIHRlbXBvcmF5IGxvY2F0aW9uKSB0byBhIGZpbGUgY29udGFpbmluZyBhIHByaW50YWJsZSBsYWJlbAogICAgICAgICAgICBjYXNlICdtYW5pZmVzdF9maWxlJzogLy8gdGhlIGNvbXBsZXRlIGZpbGUgc3BlY2lmaWNhdGlvbiAoY2FuIGJlIHRlbXBvcmF5IGxvY2F0aW9uKSB0byBhIGZpbGUgY29udGFpbmluZyBhIHByaW50YWJsZSBzaGlwcGluZyBtYW5pZmVzdC9pbnZvaWNlLgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdzaGlwcGluZ19jb3N0JzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChmbG9hdCkgJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggISR0aGlzLT5jYXJyaWVyIHx8ICEkdGhpcy0+Y2Fycmllcl9pZCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0F0dGVwdCB0byBjcmVhdGUgYSAnLl9fQ0xBU1NfXy4nIHdpdGggaW5jb21wbGV0ZSBpbmZvcm1hdGlvbicpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCgka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdjYXJyaWVyJzoKICAgICAgICBjYXNlICdjYXJyaWVyX2lkJzoKICAgICAgICBjYXNlICd0cmFja2luZ19udW1iZXInOgogICAgICAgIGNhc2UgJ2xhYmVsX2ZpbGUnOgogICAgICAgIGNhc2UgJ21hbmlmZXN0X2ZpbGUnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+X2RhdGFbJGtleV0pOwoKICAgICAgICBjYXNlICdzaGlwcGluZ19jb3N0JzoKICAgICAgICAgICAgcmV0dXJuIChmbG9hdCkgJHRoaXMtPl9kYXRhWyRrZXldOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIGdldHRhYmxlIG1lbWJlciBvZiAiLmdldF9jbGFzcygkdGhpcykpOwogICAgICAgIH0KICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.shipping_estimate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmNsYXNzIHNoaXBwaW5nX2VzdGltYXRlCnsKICAgIHByb3RlY3RlZCAkX2Rlc2NyaXB0aW9uOyAvLyBzdHJpbmcKICAgIHByb3RlY3RlZCAkX2NvZGU7IC8vIHN0cmluZwogICAgcHJvdGVjdGVkICRfcHJpY2U7IC8vIGZsb2F0CiAgICBwcm90ZWN0ZWQgJF9kZWxpdmVyeTsgLy8gdGltZXN0YW1wIG9yIG51bGwKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoICRkZXNjcmlwdGlvbiwgJHByaWNlLCAkY29kZSwgJGRlbGl2ZXJ5ID0gbnVsbCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kZXNjcmlwdGlvbiA9IHRyaW0oJGRlc2NyaXB0aW9uKTsKICAgICAgICAkdGhpcy0+X2NvZGUgPSB0cmltKCRjb2RlKTsKICAgICAgICAkdGhpcy0+X3ByaWNlID0gKGZsb2F0KSAkcHJpY2U7CiAgICAgICAgaWYoICRkZWxpdmVyeSApICR0aGlzLT5fZGVsaXZlcnkgPSBzdHJ0b3RpbWUoICRkZWxpdmVyeSApOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2Rlc2NyaXB0aW9uJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGVzY3JpcHRpb247CgogICAgICAgIGNhc2UgJ2NvZGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9jb2RlOwoKICAgICAgICBjYXNlICdwcmljZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3ByaWNlOwoKICAgICAgICBjYXNlICdkYXRlJzoKICAgICAgICBjYXNlICdkZWxpdmVyeSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2RlbGl2ZXJ5OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoICRrZXksICR2YWwgKSB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.shipping_policy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmNsYXNzIHNoaXBwaW5nX3BvbGljeSBpbXBsZW1lbnRzIGlTaGlwcGluZ1BvbGljeQp7CiAgICBwcml2YXRlICRfc2hpcHRvX2NvdW50cmllcyA9IFtdOwogICAgcHJpdmF0ZSAkX2FsbG93X3BpY2t1cCA9IG51bGw7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRwYXJhbXMgPSBudWxsKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHBhcmFtcykgKSByZXR1cm47CgogICAgICAgICRjb3VudHJpZXMgPSBcY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnY291bnRyaWVzJyk7CiAgICAgICAgJGNvdW50cmllcyA9IFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdzaGlwdG9fY291bnRyaWVzJywkY291bnRyaWVzKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRjb3VudHJpZXMpIHx8ICFjb3VudCgkY291bnRyaWVzKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgY291bnRyeSBkYXRhIHByb3ZpZGVkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPl9zaGlwdG9fY291bnRyaWVzID0gJGNvdW50cmllczsKCiAgICAgICAgJHBpY2t1cCA9IFxjZ2VfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsJ2FsbG93X3BpY2t1cCcpOwogICAgICAgICRwaWNrdXAgPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdjYW5fcGlja3VwJywkcGlja3VwKTsKICAgICAgICAkdGhpcy0+X2FsbG93X3BpY2t1cCA9ICRwaWNrdXA7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2NvdW50cmllcyc6CiAgICAgICAgY2FzZSAnc2hpcHRvX2NvdW50cmllcyc6CiAgICAgICAgY2FzZSAnc2hpcHRvJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fc2hpcHRvX2NvdW50cmllczsKCiAgICAgICAgY2FzZSAnYWxsb3dfcGlja3VwJzoKICAgICAgICBjYXNlICdjYW5fcGlja3VwJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fYWxsb3dfcGlja3VwOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIGdldHRhYmxlIG1lbWJlciBvZiAiLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldCgka2V5LCR2YWwpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzaGlwc190byggXGNnZV9hZGRyZXNzICRhZGRyICkKICAgIHsKICAgICAgICAkY3RyeSA9ICRhZGRyLT5nZXRfY291bnRyeSgpOwogICAgICAgIGlmKCAhJGN0cnkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoIGluX2FycmF5KC0xLCR0aGlzLT5fc2hpcHRvX2NvdW50cmllcykgKSByZXR1cm4gVFJVRTsKICAgICAgICBpZiggaW5fYXJyYXkoJGN0cnksJHRoaXMtPl9zaGlwdG9fY291bnRyaWVzKSApIHJldHVybiBUUlVFOwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.smarty_plugins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmNsYXNzIHNtYXJ0eV9wbHVnaW5zCnsKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9IC8vIHN0YXRpYyBjbGFzcy4uIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGluaXQoKQogICAgewogICAgICAgICRzbWFydHkgPSBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0U21hcnR5KCk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NnZWNvbW1fY3VycmVuY3lfY29kZScsYXJyYXkoJ1xcQ0dFY29tbWVyY2VCYXNlXFxzbWFydHlfcGx1Z2lucycsJ2NnZWNvbW1fY3VycmVuY3lfY29kZScpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV9jdXJyZW5jeV9zeW1ib2wnLGFycmF5KCdcXENHRWNvbW1lcmNlQmFzZVxcc21hcnR5X3BsdWdpbnMnLCdjZ2Vjb21tX2N1cnJlbmN5X3N5bWJvbCcpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV93ZWlnaHRfdW5pdHMnLGFycmF5KCdcXENHRWNvbW1lcmNlQmFzZVxcc21hcnR5X3BsdWdpbnMnLCdjZ2Vjb21tX3dlaWdodF91bml0cycpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV9sZW5ndGhfdW5pdHMnLGFycmF5KCdcXENHRWNvbW1lcmNlQmFzZVxcc21hcnR5X3BsdWdpbnMnLCdjZ2Vjb21tX2xlbmd0aF91bml0cycpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV9jb21wYW55X2FkZHJlc3MnLGFycmF5KCdcXENHRWNvbW1lcmNlQmFzZVxcc21hcnR5X3BsdWdpbnMnLCdjZ2Vjb21tX2NvbXBhbnlfYWRkcmVzcycpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV9jYXJ0aXRlbV9leGlzdHMnLGFycmF5KCdcXENHRWNvbW1lcmNlQmFzZVxcc21hcnR5X3BsdWdpbnMnLCdjZ2Vjb21tX2NhcnRpdGVtX2V4aXN0cycpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2dlY29tbV9mb3JtX2FkZHRvY2FydCcsYXJyYXkoJ1xcQ0dFY29tbWVyY2VCYXNlXFxzbWFydHlfcGx1Z2lucycsJ2NnZWNvbW1fZm9ybV9hZGR0b2NhcnQnKSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NnZWNvbW1fY2FydF9tb2R1bGUnLGFycmF5KCdcXENHRWNvbW1lcmNlQmFzZVxcc21hcnR5X3BsdWdpbnMnLCdzbWFydHlfYWRkdG9jYXJ0JykpOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ2Vjb21tX2VyYXNlY2FydCcsYXJyYXkoJ1xcQ0dFY29tbWVyY2VCYXNlXFxzbWFydHlfcGx1Z2lucycsJ2NnZWNvbW1fZXJhc2VjYXJ0JykpOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZ2Vjb21tX2dldF9wcm9kdWN0aW5mbycsYXJyYXkoJ1xcQ0dFY29tbWVyY2VCYXNlXFxzbWFydHlfcGx1Z2lucycsJ2NnZWNvbW1fZ2V0X3Byb2R1Y3RpbmZvJykpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc21hcnR5X2FkZHRvY2FydCgkcGFyYW1zLCYkc21hcnR5KQogICAgewogICAgICAgICRjYXJ0X21vZHVsZSA9IFxjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CiAgICAgICAgaWYoICEkY2FydF9tb2R1bGUgKSByZXR1cm47CiAgICAgICAgaWYoICFcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkgcmV0dXJuOwoKICAgICAgICAkYWN0aW9uID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhY3Rpb24nLCdkZWZhdWx0Jyk7CiAgICAgICAgcmV0dXJuICRjYXJ0X21vZHVsZS0+RG9BY3Rpb25CYXNlKCRhY3Rpb24sJ2NudG50MDEnLCRwYXJhbXMsIFxjbXNfdXRpbHM6OmdldF9jdXJyZW50X3BhZ2VpZCgpLCAkc21hcnR5ICk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dlY29tbV9jdXJyZW5jeV9jb2RlKCRwYXJhbXMsJiRzbWFydHkpCiAgICB7CiAgICAgICAgJGNvZGUgPSBcY2dfZWNvbW06OmdldF9jdXJyZW5jeV9jb2RlKCk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRjb2RlKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvZGU7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dlY29tbV9jdXJyZW5jeV9zeW1ib2woJHBhcmFtcywmJHNtYXJ0eSkKICAgIHsKICAgICAgICAkY29kZSA9IFxjZ19lY29tbTo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkY29kZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjb2RlOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNnZWNvbW1fd2VpZ2h0X3VuaXRzKCRwYXJhbXMsJiRzbWFydHkpCiAgICB7CiAgICAgICAgJGNvZGUgPSBcY2dfZWNvbW06OmdldF93ZWlnaHRfdW5pdHMoKTsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJGNvZGUpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHJldHVybiAkY29kZTsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX2xlbmd0aF91bml0cygkcGFyYW1zLCYkc21hcnR5KQogICAgewogICAgICAgICRjb2RlID0gXGNnX2Vjb21tOjpnZXRfbGVuZ3RoX3VuaXRzKCk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRjb2RlKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvZGU7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dlY29tbV9jb21wYW55X2FkZHJlc3MoJHBhcmFtcywmJHNtYXJ0eSkKICAgIHsKICAgICAgICAkYWRkciA9IFxjZ19lY29tbTo6Z2V0X2NvbXBhbnlfYWRkcmVzcygpOwogICAgICAgIGlmKCAhJGFkZHIgKSAkYWRkciA9IG5ldyBcY2dfZWNvbW1fY29tcGFueV9hZGRyZXNzOwoKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJG15X2FkZHIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHJldHVybiAkYWRkcjsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX2NhcnRpdGVtX2V4aXN0cygkcGFyYW1zLCYkc21hcnR5KQogICAgewogICAgICAgICRzb3VyY2UgPSAnUHJvZHVjdHMnOwogICAgICAgICRwcm9kdWN0ID0gJyc7CiAgICAgICAgJHNrdSA9ICcnOwogICAgICAgICRleHRyYSA9IG51bGw7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NvdXJjZSddKSApICRzb3VyY2UgPSB0cmltKCRwYXJhbXNbJ3NvdXJjZSddKTsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1sncHJvZHVjdCddKSApICRwcm9kdWN0ID0gKGludCkkcGFyYW1zWydwcm9kdWN0J107CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NrdSddKSApICRza3UgPSB0cmltKCRwYXJhbXNbJ3NrdSddKTsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snZXh0cmEnXSkgKSAkZXh0cmEgPSAkcGFyYW1zWydleHRyYSddOwoKICAgICAgICAkcmVzID0gMDsKICAgICAgICAkY2FydCA9IFxjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CiAgICAgICAgaWYoICRzb3VyY2UgJiYgKCRwcm9kdWN0IHx8ICRza3UpICYmICRjYXJ0ICkgewogICAgICAgICAgICBpZiggJHByb2R1Y3QgJiYgbWV0aG9kX2V4aXN0cygkY2FydCwnY2hlY2tfaXRlbWlkX2V4aXN0cycpICkgewogICAgICAgICAgICAgICAgJHJlcyA9ICRjYXJ0LT5jaGVja19pdGVtaWRfZXhpc3RzKCRzb3VyY2UsJHByb2R1Y3QsJGV4dHJhKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkc2t1ICYmIG1ldGhvZF9leGlzdHMoJGNhcnQsJ2NoZWNrX3NrdV9leGlzdHMnKSApIHsKICAgICAgICAgICAgICAgICRyZXMgPSAkY2FydC0+Y2hlY2tfc2t1X2V4aXN0cygkc291cmNlLCRza3UsJGV4dHJhKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzID0gKCRyZXMpPzE6MDsKICAgICAgICB9CgogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKQogICAgICAgIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRyZXMpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNnZWNvbW1fZm9ybV9hZGR0b2NhcnQoJHBhcmFtcywmJHNtYXJ0eSkKICAgIHsKICAgICAgICAkY2FydCA9IFxjZ19lY29tbTo6Z2V0X2NhcnRfbW9kdWxlKCk7CiAgICAgICAgaWYoICFtZXRob2RfZXhpc3RzKCRjYXJ0LCdnZXRfYWRkdG9jYXJ0X2Zvcm0nKSApIHJldHVybjsKCiAgICAgICAgJGNhcnRfbmFtZSA9ICRjYXJ0LT5HZXROYW1lKCk7CiAgICAgICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgICAgICRwYXJhbXNbJ21vZHVsZSddID0gJGNhcnRfbmFtZTsKICAgICAgICAkdHh0ID0gY21zX21vZHVsZV9wbHVnaW4oJHBhcmFtcywkc21hcnR5KTsKICAgICAgICByZXR1cm4gJHR4dDsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjZ2Vjb21tX2VyYXNlY2FydCgkcGFyYW1zLCYkc21hcnR5KQogICAgewogICAgICAgICRjYXJ0ID0gXGNnX2Vjb21tOjpnZXRfY2FydF9tb2R1bGUoKTsKICAgICAgICAkY2FydC0+RXJhc2VDYXJ0KCk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2dlY29tbV9nZXRfcHJvZHVjdGluZm8oJHBhcmFtcywmJHNtYXJ0eSkKICAgIHsKICAgICAgICAkc291cmNlID0gJ1Byb2R1Y3RzJzsKICAgICAgICAkZW50cnlfaWQgPSAnJzsKCiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydpdGVtaWQnXSkgKSByZXR1cm47CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3NvdXJjZSddKSApICRzb3VyY2UgPSB0cmltKCRwYXJhbXNbJ3NvdXJjZSddKTsKICAgICAgICAkaXRlbV9pZCA9IChpbnQpJHBhcmFtc1snaXRlbWlkJ107CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRpbmZvID0gXGNnX2Vjb21tOjpnZXRfcHJvZHVjdF9pbmZvKCRzb3VyY2UsJGl0ZW1faWQpOwogICAgICAgICAgICBpZiggaXNfb2JqZWN0KCRpbmZvKSAmJiBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24odHJpbSgkcGFyYW1zWydhc3NpZ24nXSksJGluZm8pOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkaW5mbzsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgLy8gZG8gbm90aGluZy4KICAgICAgICB9CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMK]]></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.handling_calculator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmludGVyZmFjZSBoYW5kbGluZ19jYWxjdWxhdG9yCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCk7CgogICAgLyoqCiAgICAgKiBUZXN0IGlmIHRoZSBtb2R1bGUgaXMgY29uZmlndXJlZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIElzQ29uZmlndXJlZCgpOwoKICAgIC8qKgogICAgICogR2l2ZW4gYW4gYXJyYXkgb2YgY2FydCBpdGVtcywgcmV0dXJuIGEgaGFuZGxpbmcgY29zdC4KICAgICAqCiAgICAgKiBAcGFyYW0gXGNnX2Vjb21tX2NhcnRpdGVtW10gJGNhcnRfaXRlbXMKICAgICAqIEByZXR1cm4gYXJyYXl8bnVsbCBJZiBzdWNjZXNzZnVsIHJldHVybnMgYW4gYXJyYXkgb2YgWyAkdW5pdF9wcmljZSwgJGRlc2NyaXB0aW9uIF0KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNhbGN1bGF0ZV9oYW5kbGluZyggYXJyYXkgJGNhcnRfaXRlbXMgKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.iShippingPolicy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmludGVyZmFjZSBpU2hpcHBpbmdQb2xpY3kKewogICAgcHVibGljIGZ1bmN0aW9uIHNoaXBzX3RvKCBcY2dlX2FkZHJlc3MgJGFkZHIgKTsKfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/interface.packaging_calculator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmludGVyZmFjZSBwYWNrYWdpbmdfY2FsY3VsYXRvcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpOwogICAgcHVibGljIGZ1bmN0aW9uIElzQ29uZmlndXJlZCgpOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kZWZhdWx0X3Byb2ZpbGUoKTsgLy8gY2FuIHJldHVybiBOVUxMLgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wYWNraW5nX2xpc3QoIFxjZ2VfYWRkcmVzcyAkYWRkcmVzcywgYXJyYXkgJGNhcnRfaXRlbXMsIHBhY2tpbmdfcHJvZmlsZSAkcHJvZmlsZSA9IG51bGwgKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.payment_gateway.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR0Vjb21tZXJjZUJhc2U7CgppbnRlcmZhY2UgcGF5bWVudF9nYXRld2F5CnsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX0FQUFJPVkVEID0gJ3BheW1lbnRfYXBwcm92ZWQnOwogICAgY29uc3QgUEFZTUVOVF9TVEFUVVNfREVDTElORUQgPSAncGF5bWVudF9kZWNsaW5lZCc7CiAgICBjb25zdCBQQVlNRU5UX1NUQVRVU19FUlJPUiA9ICdwYXltZW50X2Vycm9yJzsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX0NBTkNFTExFRCA9ICdwYXltZW50X2NhbmNlbGxlZCc7CiAgICBjb25zdCBQQVlNRU5UX1NUQVRVU19PVEhFUiA9ICdwYXltZW50X290aGVyJzsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX1BFTkRJTkcgPSAncGF5bWVudF9wZW5kaW5nJzsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX0FVVEhPUklaRUQgPSAncGF5bWVudF9hdXRob3JpemVkJzsKICAgIGNvbnN0IFBBWU1FTlRfU1RBVFVTX05PTkUgPSAncGF5bWVudF9ub25lJzsKCiAgICBjb25zdCBUUkFOU19DQVBUVVJFID0gJ1RSQU5TX0NBUFRVUkUnOwogICAgY29uc3QgVFJBTlNfVk9JRCA9ICdUUkFOU19WT0lEJzsKICAgIGNvbnN0IFRSQU5TX0NSRURJVCA9ICdUUkFOU19DUkVESVQnOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGUgd2V0aGVyIHRoZSBnYXRld2F5IG1vZHVsZSBhbGxvd3MgaW5zdGFudCBjaGVja291dC4KICAgICAqCiAgICAgKiBJbnN0YW50IGNoZWNrb3V0IGdhdGV3YXlzIGFzayB0aGUgdXNlciBmb3IgdGhlaXIgYmlsbGluZyBhbmQgc2hpcHBpbmcgaW5mb3JtYXRpb24KICAgICAqIGFuZCB0aGlzIGluZm9ybWF0aW9uIGlzIHJldHVybmVkIGZyb20gdGhlIGdhdGV3YXkgdG8gZmlsbCB0aGUgb3JkZXIuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEFsbG93c0luc3RhbnRDaGVja291dCgpOwoKICAgIC8qKgogICAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3ZXRoZXIgdGhlIGdhdGV3YXkgbW9kdWxlCiAgICAgKiByZXF1aXJlcyBjcmVkaXQgY2FyZCBpbmZvcm1hdGlvbiBiZSBzdWJtaXR0ZWQgdG8gdGhlIGdhdGV5YXkuCiAgICAgKgogICAgICogSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgb3JkZXIgcHJvY2Vzc29yIG1vZHVsZXMgbWF5IHByb3ZpZGUgYQogICAgICogbWVjaGFuaXNtIHRvIGFsbG93IGEgc2l0ZSB2aXNpdG9yIHRvIGlucHV0IGNyZWRpdCBjYXJkIGluZm9ybWF0aW9uLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXF1aXJlc0NyZWRpdENhcmRJbmZvKCk7CgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0ZXMgd2V0aGVyIHRoZSBwYXltZW50IGdhdGVheSBtb2R1bGUKICAgICAqIFN1cHBvcnRzIHRoZSB0b2tlbiBtZWNoYW5pc20gZm9yIG9mZmxpbmUgY2hhcmdlcwogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTdXBwb3J0c09mZmxpbmVDaGFyZ2VzKCk7CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGdhdGV3YXkgbmFtZSAodXN1YWxseSB0aGUgbW9kdWxlIG5hbWUpCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpOwoKICAgIC8qKgogICAgICogVGVzdCBpZiB0aGUgZ2F0ZXdheSBpcyBwcm9wZXJseSBjb25maWd1cmVkIGFuZCByZWFkeSB0byB1c2UKICAgICAqIGJ5IGFuIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBJc0NvbmZpZ3VyZWQoKTsKCiAgICAvKioKICAgICAqIERvZXMgdGhpcyBtb2R1bGUgcmVxdWlyZSBTU0wgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBjb21tdW5pY2F0ZQogICAgICogd2l0aCB0aGUgcmVtb3RlIGdhdGV3YXkKICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gUmVxdWlyZXNTU0woKTsKCiAgICAvKioKICAgICAqIERvZXMgdGhpcyBnYXRld2F5IHJlcXVpcmUgc2hpcHBpbmcgYWRkcmVzcyBpbmZvcm1hdGlvbgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXF1aXJlc1NoaXBwaW5nSW5mbygpOwoKICAgIC8qKgogICAgICogRG9lcyB0aGlzIGdhdGV3YXkgcmVxdWlyZSBiaWxsaW5nIGFkZHJlc3MgaW5mb3JtYXRpb24KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gUmVxdWlyZXNCaWxsaW5nSW5mbygpOwoKICAgIC8qKgogICAgICogRG9lcyB0aGlzIGdhdGV3YXkgc3VwcG9ydCBpc3N1aW5nIGNyZWRpdCB0cmFuc2FjdGlvbnMuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFN1cHBvcnRzUmVmdW5kcygpOwoKICAgIC8qKgogICAgICogU2F2ZSB0aGUgaW5mb3JtYXRpb24gY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2F0ZXdheSBtb2R1bGUgaW50bwogICAgICogYSB0ZW1wb3JhcnkgKGJ1dCBzZWN1cmUpIHN0YXRlIGZvciBsYXRlciByZXRyaWV2YWwgYnkgb3RoZXIgYWN0aW9ucwogICAgICogb2YgdGhpcyBtb2R1bGUuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgdHlwaWNhbGx5IHVzZWQgdG8gc3RvcmUgc3RhdGUgaW5mb3JtYXRpb24gYmVmb3JlIHRoZSB2aXNpdG9yCiAgICAgKiBpcyByZWRpcmVjdGVkIHRvIGEgaG9zdGVkIGdhdGV3YXkuICBJdCBjYW4gdGhlbiBiZSByZXN0b3JlZCBhZnRlciB0aGUgdmlzaXRvcgogICAgICogaGFzIHJldHVybmVkIGZyb20gdGhlIHRoaXJkIHBhcnR5IGdhdGV3YXkuCiAgICAgKgogICAgICogWW91IG1heSB1c2UgYW55IHNlY3VyZSBlbmNyeXB0aW9uIG9yIHN0b3JhZ2UgbWVjaGFuaXNtIHlvdSB3aXNoLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHBhcmFtIGJvb2xlYW4gU2hvdWxkIHRoZSBkYXRhIGJlIGVuY3J5cHRlZAogICAgICogQHBhcmFtIHN0cmluZyAgQW4gb3B0aW9uYWwgZW5jcnlwdGlvbiBrZXkKICAgICAqIEByZXR1cm4gc3RyaW5nIFRoZSBlbmNyeXB0aW9uIGtleSBpZiB0aGUgZGF0YSB3YXMgZW5jcnlwdGVkLCBvciBudWxsLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2F2ZVN0YXRlKCRlbmNyeXB0ID0gZmFsc2UsJGtleSA9ICcnKTsKCiAgICAvKioKICAgICAqIFJlc3RvcmUgc2F2ZWQgbW9kdWxlIHN0YXRlIGluZm9ybWF0aW9uIGZyb20gYW4gZW5jcnlwdGVkL3NlY3VyZSBzdG9yYWdlIGxvY2F0aW9uCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcGFyYW0gc3RyaW5nICBBbiBvcHRpb25hbCBlbmNyeXB0aW9uIGtleQogICAgICogQHJldHVybiBib29sZWFuIGluZGljYXRlcyBzdWNjZXNzIG9yIGZhaWx1cmUuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXN0b3JlU3RhdGUoJGtleSA9ICcnKTsKCiAgICAvKioKICAgICAqIFNldCBjcmVkaXQgY2FyZCBpbmZvcm1hdGlvbiBpbnRvIHRoZSBtb2R1bGUuCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byBwcm92aWRlIGluZm9ybWF0aW9uCiAgICAgKiB0aGF0IG11c3QgYmUgc2VudCB0byB0aGUgcGF5bWVudCBnYXRld2F5LgogICAgICoKICAgICAqIFRoZSBnYXRld2F5IG1vZHVsZSBzaG91bGQgc3RvcmUgdGhpcyBkYXRhIGZvciBsYXRlciBzZW5kaW5nIHRvIHRoZSBob3N0LgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHBhcmFtIHN0cmluZyBDcmVkaXQgY2FyZCBudW1iZXIuCiAgICAgKiBAcGFyYW0gaW50ZWdlciBDcmVkaXQgY2FyZCBleHBpcnkgZGF0ZQogICAgICogQHBhcmFtIHN0cmluZyAgQ3JlZGl0IGNhcmQgdmVyaWZpY2F0aW9uIGNvZGUuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldENyZWRpdENhcmRJbmZvKCRjY251bWJlciwkY2NleHAsJGNjdmNvZGUpOwoKICAgIC8qKgogICAgICogR2V0IHJhdyAodXNlciBlbnRlcmVkKSBjcmVkaXQgY2FyZCBpbmZvLgogICAgICogUmV0dXJucyBhbiBhcnJheSB3aXRoIHRocmVlIGVsZW1lbnRzIChjY251bWJlciwgY2NleHAsIGFuZCBjY3Zjb2RlKS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRSYXdDcmVkaXRDYXJkSW5mbygpOwoKICAgIC8qKgogICAgICogR2V0IHRoZSBwcm9jZXNzZWQgY3JlZGl0IGNhcmQgaW5mby4KICAgICAqIFRoaXMgaXMgc3VpdGFibGUgZm9yIHVzZSBieSBwYXltZW50IGdhdGV3YXlzLgogICAgICoKICAgICAqIFJldHVybnMgYW4gYXJyYXkgd2l0aCB0aHJlZSBlbGVtZW50cyAoeF9jYXJkX251bSx4X2V4cF9kYXRlLCBhbmQgeF9jYXJkX2NvZGUpCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRQcm9jZXNzZWRDcmVkaXRDYXJkSW5mbygpOwoKICAgIC8qKgogICAgICogU2V0IGEgcGF5bWVudCBpZGVudGlmaWVyCiAgICAgKgogICAgICogVGhlIHBheW1lbnQgaWRlbnRpZmllciBwcm92aWRlcyBvcmRlciBwcm9jZXNzaW5nIHNwZWNpZmljIGluZm9ybWF0aW9uIHRvCiAgICAgKiB0aWUgdGhlIGluY29taW5nIHRyYW5zYWN0aW9uIHRvIGFuIGV4aXN0aW5nIHBheW1lbnQgdHJhbnNhY3Rpb24uICBUaGlzCiAgICAgKiB2YXJpYWJsZSBtYXkgYmUgbnVsbCBvciBlbXB0eSBpZiBpdCBpcyBhIG5ldyB0cmFuc2FjdGlvbiwgYW5kIGhhcyBubwogICAgICogcmVsYXRpb24gdG8gYSB0cmFuc2FjdGlvbiBpZCBwcm92aWRlZCBieSB0aGUgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBnYXRld2F5IG1vZHVsZSB0byBwcm92aWRlIGluZm9ybWF0aW9uCiAgICAgKiB0byB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgYWZ0ZXIgYSB0cmFuc2FjdGlvbiBoYXMgYmVlbiByZWNlaXZlZC4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKiBAcGFyYW0gc3RyaW5nIFBheW1lbnQgSUQKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0UGF5bWVudElkKCRwYXltZW50X2lkKTsKCiAgICAvKioKICAgICAqIFJldHJpZXZlZCBhIHBheW1lbnQgaWRlbnRpZmllcgogICAgICoKICAgICAqIFRoZSBwYXltZW50IGlkZW50aWZpZXIgcHJvdmlkZXMgb3JkZXIgcHJvY2Vzc2luZyBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0bwogICAgICogdGllIHRoZSBpbmNvbWluZyB0cmFuc2FjdGlvbiB0byBhbiBleGlzdGluZyBwYXltZW50IHRyYW5zYWN0aW9uLiAgVGhpcwogICAgICogdmFyaWFibGUgbWF5IGJlIG51bGwgb3IgZW1wdHkgaWYgaXQgaXMgYSBuZXcgdHJhbnNhY3Rpb24sIGFuZCBoYXMgbm8KICAgICAqIHJlbGF0aW9uIHRvIGEgdHJhbnNhY3Rpb24gaWQgcHJvdmlkZWQgYnkgdGhlIGdhdGV3YXkuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgdG8gcmV0cmlldmUgaW5mb3JtYXRpb24KICAgICAqIGFib3V0IGEgcGF5bWVudCBpZGVudGlmaWVyIChpZiBvbmUgZXhpc3RzKS4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKiBAcGFyYW0gaW50ZWdlciBQYXltZW50IElECiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFBheW1lbnRJZCgpOwoKICAgIC8qKgogICAgICogU2V0IGEgY3VycmVuY3kgY29kZS4KICAgICAqCiAgICAgKiBBc3NvY2lhdGUgYSBjdXJyZW5jeSBjb2RlIHdpdGggdGhlIGluZm9ybWF0aW9uIHRoYXQgd2lsbCBiZSBzZW50IHRvIHRoZSBnYXRld2F5LgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlIHRvIGFkZCBjdXJyZW5jeSBpbmZvcm1hdGlvbgogICAgICogdG8gdGhlIGxpc3Qgb2YgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGJlIHNlbnQgdG8gdGhlIGhvc3QuCiAgICAgKgogICAgICogVGhlIGdhdGV3YXkgbW9kdWxlIHNob3VsZCBzdG9yZSB0aGlzIGRhdGEgZm9yIGxhdGVyIHNlbmRpbmcgdG8gdGhlIGhvc3QuCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAZGVwcmVjYXRlZAogICAgICogQHBhcmFtIHN0cmluZyBUaGUgY3VycmVuY3kgY29kZSAodXN1YWxseSB0d28gb3IgdGhyZWUgZGlnaXRzKQogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRDdXJyZW5jeUNvZGUoJGNvZGUgPSAnVVNEJyk7CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgY3VycmVuY3kgY29kZS4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRDdXJyZW5jeUNvZGUoKTsKCiAgICAvKioKICAgICAqIFNldCB3ZWlnaHQgdW5pdHMKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byBhZGQgd2VpZ2h0IHVuaXRzCiAgICAgKiB0byB0aGUgbGlzdCBvZiBpbmZvcm1hdGlvbiB0aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgaG9zdC4KICAgICAqCiAgICAgKiBUaGUgZ2F0ZXdheSBtb2R1bGUgc2hvdWxkIHN0b3JlIHRoaXMgZGF0YSBmb3IgbGF0ZXIgc2VuZGluZyB0byB0aGUgaG9zdC4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEBwYXJhbSBzdHJpbmcgdGhlIHdlaWdodCB1bml0cy4gIGVpdGhlciAnbGJzJyBvciAna2cnCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFdlaWdodFVuaXRzKCR1bml0cyA9ICdsYnMnKTsKCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSB3ZWlnaHQgdW5pdHM7CiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0V2VpZ2h0VW5pdHMoKTsKCiAgICAvKioKICAgICAqIFNldCBEZXN0aW5hdGlvbiBVUkwuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgdG8gc3BlY2lmeSB3aGVyZQogICAgICogdGhlIGN1c3RvbWVyIHNob3VsZCBiZSByZXR1cm5lZCB0byAoaWYgcG9zc2libGUpIG9uY2UgdGhlIHBheW1lbnQgZ2F0ZXdheSB0cmFuc2FjdGlvbgogICAgICogaXMgY29tcGxldGUuCiAgICAgKgogICAgICogVGhlIGdhdGV3YXkgbW9kdWxlIHNob3VsZCBzdG9yZSB0aGlzIGRhdGEgZm9yIHVzZSBhZnRlciBnYXRld2F5IGNvbW11bmljYXRpb25zIGFyZQogICAgICogY29tcGxldGUuCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcGFyYW0gc3RyaW5nIHRoZSB3ZWlnaHQgdW5pdHMuICBlaXRoZXIgJ2xicycgb3IgJ2tnJwogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXREZXN0aW5hdGlvbigkdXJsKTsKCiAgICAvKioKICAgICAqIEdldCB0aGUgZGVzdGluYXRpb24gVVJMLAogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldERlc3RpbmF0aW9uKCk7CgogICAgLyoqCiAgICAgKiBBZGQgYSBjYXJ0IGl0ZW0uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgdG8gYWRkIGNhcnQgaW5mb3JtYXRpb24KICAgICAqIHRvIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHNob3VsZCBiZSBzZW50IHRvIHRoZSBwYXltZW50IGdhdGV3YXkuCiAgICAgKgogICAgICogVGhlIGdhdGV3YXkgbW9kdWxlIHNob3VsZCBzdG9yZSB0aGlzIGRhdGEgZm9yIGxhdGVyIHNlbmRpbmcgdG8gdGhlIGhvc3QuCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBpdGVtIG5hbWUuCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBpdGVtIG5hbWUgKG1heWJlIGEgc2t1KQogICAgICogQHBhcmFtIGludGVnZXIgUXVhbnRpdHkKICAgICAqIEBwYXJhbSBmbG9hdCAgIFRoZSB3ZWlnaHQgb2YgdGhlIGl0ZW1zCiAgICAgKiBAcGFyYW0gZmxvYXQgICBUaGUgdW5pdCBwcmljZSBvZiB0aGUgaXRlbS4KICAgICAqIEBwYXJhbSBmbG9hdCAgIEFuIG9wdGlvbmFsIHRheCBhbW91bnQgKGRlcHJlY2F0ZWQpCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEFkZEl0ZW0oJG5hbWUsJG51bWJlciwkcXVhbnRpdHksJHdlaWdodCwkYW1vdW50LCR0YXggPSAnJyk7CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBpdGVtcyAoaWYgYW55KSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvcmRlci4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRJdGVtcygpOwoKICAgIC8qKgogICAgICogU2V0IHRoZSBvcmRlciBvYmplY3QuCiAgICAgKiBpZiB0aGlzIGlzIHNldC4gb3RoZXIgbWV0aG9kcyBtYXkgZXh0cmFjdCBkYXRhIHVzaW5nIHRoZSBvcmRlciBvYmplY3QuCiAgICAgKgogICAgICogQHRvZG8gVXNlIGEgYmFzZSBvYmplY3QgaW5zdGVhZCBvZiBvcmRlcnNfb3JkZXIKICAgICAqIEBwYXJhbSBcb3JkZXJzX29yZGVyCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRPcmRlck9iamVjdChcb3JkZXJzX29yZGVyICRvcmRlcik7CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIG9yZGVyIG9iamVjdCAoaWYgc2V0KQogICAgICoKICAgICAqIEByZXR1cm4gXG9yZGVyc19vcmRlcgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X29yZGVyX29iamVjdCgpOwoKICAgIC8qKgogICAgICogU2V0IGEgZGVzY3JpcHRpb24gZm9yIHRoZSB3aG9sZSBvcmRlci4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byBwcm92aWRlIGEgZ2xvYmFsCiAgICAgKiBkZXNjcmlwdGlvbiBmb3IgdGhlIG9yZGVyLgogICAgICoKICAgICAqIFRoZSBnYXRld2F5IG1vZHVsZSBzaG91bGQgc3RvcmUgdGhpcyBkYXRhIGZvciBsYXRlciBzZW5kaW5nIHRvIHRoZSBob3N0LgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHBhcmFtIHN0cmluZyBUaGUgZGVzY3JpcHRpb24uCiAgICAgKiBAcmV0dXJuIHZvaWQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRPcmRlckRlc2NyaXB0aW9uKCRzdHIpOwoKICAgIC8qKgogICAgICogR2V0IGEgZGVzY3JpcHRpb24gZm9yIHRoZSB3aG9sZSBvcmRlci4KICAgICAqCiAgICAgKiBAYWJzdHJhY3QKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRPcmRlckRlc2NyaXB0aW9uKCk7CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGlkIGZvciB0aGlzIG9yZGVyLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJG9yZGVyaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldE9yZGVySWQoJG9yZGVyaWQpOwoKICAgIC8qKgogICAgICogR2V0IHRoZSBpZCBmb3IgdGhpcyBvcmRlci4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0T3JkZXJJZCgpOwoKICAgIC8qKgogICAgICogU2V0IHRoZSBvcmRlciBpbnZvaWNlIHN0cmluZy4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byBzZXQgYW4gaW52b2ljZSBpZGVudGlmZXIuCiAgICAgKgogICAgICogVGhlIGdhdGV3YXkgbW9kdWxlIHNob3VsZCBzdG9yZSB0aGlzIGRhdGEgZm9yIGxhdGVyIHNlbmRpbmcgdG8gdGhlIGhvc3QuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcGFyYW0gc3RyaW5nIEludm9pY2UgbGFiZWwuCiAgICAgKiBAcmV0dXJuIHZvaWQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRJbnZvaWNlKCRpbnZvaWNlKTsKCiAgICAvKioKICAgICAqIEdldCB0aGUgb3JkZXIgaW52b2ljZSBzdHJpbmcuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEludm9pY2UoKTsKCiAgICAvKioKICAgICAqIFNldCBhbiBvcHRpb25hbCBiaWxsaW5nIGFkZHJlc3MgZm9yIHRoaXMgb3JkZXIuCiAgICAgKiBNb3N0IHBheW1lbnQgZ2F0ZXdheXMgcmVxdWlyZSBzb21lIHNvcnQgb2YgYmlsbGluZyBhZGRyZXNzCiAgICAgKgogICAgICogQHBhcmFtIG9yZGVyc19hZGRyZXNzICRiaWxsaW5nX2FkZHkgVGhlIGJpbGxpbmcgYWRkcmVzcyAobXVzdCBiZSB2YWxpZCkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRCaWxsaW5nQWRkcmVzcyhcY2dlX2FkZHJlc3MgJGJpbGxpbmdfYWRkeSk7CgogICAgLyoqCiAgICAgKiBHZXQgYSBiaWxsaW5nIGFkZHJlc3MgZm9yIHRoaXMgdHJhbnNhY3Rpb24sIGlmIG9uZSBpcyBhdmFpbGFibGUuCiAgICAgKgogICAgICogQHJldHVybiBcY2dlX2FkZHJlc3N8bnVsbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QmlsbGluZ0FkZHJlc3MoKTsKCiAgICAvKioKICAgICAqIFNldCBhbiBvcHRpb25hbCBzaGlwcGluZyBhZGRyZXNzIGZvciB0aGlzIG9yZGVyLgogICAgICogTW9zdCBwYXltZW50IGdhdGV3YXlzIHJlcXVpcmUgc29tZSBzb3J0IG9mIHNoaXBwaW5nIGFkZHJlc3MKICAgICAqCiAgICAgKiBAcGFyYW0gXGNnZV9hZGRyZXNzICRzaGlwcGluZ19hZGR5IFRoZSBzaGlwcGluZyBhZGRyZXNzIChtdXN0IGJlIHZhbGlkKS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFNoaXBwaW5nQWRkcmVzcyhcY2dlX2FkZHJlc3MgJHNoaXBwaW5nX2FkZHkpOwoKICAgIC8qKgogICAgICogR2V0IGEgc2hpcHBpbmcgYWRkcmVzcyBmb3IgdGhpcyB0cmFuc2FjdGlvbiwgaWYgb25lIGlzIGF2YWlsYWJsZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIFxjZ2VfYWRkcmVzc3xudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRTaGlwcGluZ0FkZHJlc3MoKTsKCiAgICAvKioKICAgICAqIFNldCB0aGUgYW1vdW50IG9mIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcGFyYW0gZmxvYXQgJHZhbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25BbW91bnQoJHZhbCk7CgogICAgLyoqCiAgICAgKiBSZXRyaWV2ZSB0aGUgdHJhbnNhY3Rpb24gYW1vdW50LgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlIHdoZW4gaGFuZGxpbmcgdHJhbnNhY3Rpb24KICAgICAqIGluZm9ybWF0aW9uLgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYmFzdHJhY3QuCiAgICAgKiBAcmV0dXJuIGZsb2F0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbkFtb3VudCgpOwoKICAgIC8qKgogICAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZXMgd2hlbiBwcmVwYXJpbmcgdG8gcHJvY2VzcyBhIHRyYW5zYWN0aW9uCiAgICAgKgogICAgICogVGhlIGRlZmF1bHQgdHJhbnNhY3Rpb24gdHlwZSBzaG91bGQgYmUgQ0dQYXltZW50R2F0ZXdheUJhc2U6OlRSQU5TX0NBUFRVUkUKICAgICAqIG90aGVyIHZhbGlkIHR5cGVzIGFyZSBDR1BheW1lbnRHYXRld2F5QmFzZTo6VFJBTlNfVk9JRCBhbmQgQ0dQYXltZW50R2F0ZXdheUJhc2U6OlRSQU5TX0NSRURJVC4KICAgICAqIEludmFsaWQgdHJhbnNhY3Rpb24gdHlwZXMgYXJlIGlnbm9yZWQuCiAgICAgKgogICAgICogQGF1dGhvciBjYWxndXkxMDAwCiAgICAgKiBAc2luY2UgIDEuMC4xMQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25UeXBlKCR0eXBlKTsKCiAgICAvKioKICAgICAqIEdldCB0aGUgdHJhbnNhY3Rpb24gdHlwZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VHJhbnNhY3Rpb25UeXBlKCk7CgogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBUcmFuc2FjdGlvbmlkIHJldHJpZXZlZCBmcm9tIHRoZSBnYXRld2F5IGhvc3QgaW50byB0aGUgbW9kdWxlLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgYnkgdGhlIGdhdGV3YXkgbW9kdWxlIGFmdGVyIHJlY2VpdmluZyB0cmFuc2FjdGlvbgogICAgICogaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogQGFiYXN0cmFjdC4KICAgICAqIEBwYXJhbSBzdHJpbmcgVHJhbnNhY3Rpb24gSUQuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFRyYW5zYWN0aW9uSWQoJHRpZCk7CgogICAgLyoqCiAgICAgKiBTZXRzIHRoZSB0cmFuc2FjdGlvbiBhcyBjYW5jZWxsZWQuCiAgICAgKgogICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgZ2F0ZXdheSBtb2R1bGUgYWZ0ZXIgcmVjZWl2aW5nIHRyYW5zYWN0aW9uCiAgICAgKiBpbmZvcm1hdGlvbiBpZiB0aGUgdHJhbnNhY3Rpb24gaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IHRoZSB1c2VyLgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYmFzdHJhY3QuCiAgICAgKiBAcGFyYW0gc3RyaW5nIGFuIG9wdGlvbmFsIG1lc3NhZ2UgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHN0YXR1cy4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0Q2FuY2VsbGVkKCRtZXNzYWdlID0gbnVsbCk7CgogICAgLyoqCiAgICAgKiBTZXRzIHRoZSB0cmFuc2FjdGlvbiBzdGF0dXMgdG8gZXJyb3IuCiAgICAgKgogICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgZ2F0ZXdheSBtb2R1bGUgYWZ0ZXIgcmVjZWl2aW5nIHRyYW5zYWN0aW9uCiAgICAgKiBpbmZvcm1hdGlvbiBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aXRoIHRoZSB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS4KICAgICAqCiAgICAgKiBAYWJhc3RyYWN0LgogICAgICogQHBhcmFtIHN0cmluZyBhbiBvcHRpb25hbCBtZXNzYWdlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBzdGF0dXMuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFRyYW5zYWN0aW9uRXJyb3IoJG1lc3NhZ2UpOwoKICAgIC8qKgogICAgICogUmVzZXQgdGhlIGluZm9ybWF0aW9uIHN0b3JlZCB3aXRoIHRoZSBnYXRld2F5IG1vZHVsZS4KICAgICAqCiAgICAgKiBAYWJhc3RyYWN0LgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXNldCgpOwoKICAgIC8qKgogICAgICogU2V0cyB0aGUgdHJhbnNhY3Rpb24gYXMgY2FuY2VsbGVkLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgYnkgdGhlIGdhdGV3YXkgbW9kdWxlIGFmdGVyIHJlY2VpdmluZyB0cmFuc2FjdGlvbgogICAgICogaW5mb3JtYXRpb24gaWYgdGhlIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGRlY2xpbmVkLgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYmFzdHJhY3QuCiAgICAgKiBAcGFyYW0gc3RyaW5nIGFuIG9wdGlvbmFsIG1lc3NhZ2UgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHN0YXR1cy4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0RGVjbGluZWQoJG1lc3NhZ2UgPSBudWxsKTsKCiAgICAvKioKICAgICAqIFNldHMgdGhlIHRoZSB0cmFuc2FjdGlvbiBzdGF0dXMuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgZ2F0ZXdheSBtb2R1bGUgYWZ0ZXIgcmVjZWl2aW5nIHRyYW5zYWN0aW9uCiAgICAgKiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBnYXRld2F5IGhvc3QuCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFiYXN0cmFjdC4KICAgICAqIEBwYXJhbSBzdHJpbmcgYW4gb3B0aW9uYWwgbWVzc2FnZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgc3RhdHVzLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvblN0YXR1cygkc3RhdHVzKTsKCiAgICAgLyoqCiAgICAgICogUmV0cmlldmUgdGhlIHRyYW5zYWN0aW9uIHN0YXR1cwogICAgICAqCiAgICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgd2hlbiBoYW5kbGluZyB0cmFuc2FjdGlvbgogICAgICAqIGluZm9ybWF0aW9uLgogICAgICAqCiAgICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgICoKICAgICAgKiBAYWJhc3RyYWN0LgogICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VHJhbnNhY3Rpb25TdGF0dXMoKTsKCiAgICAvKioKICAgICAqIFNldCBtaXNjIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXk7CiAgICAgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlOwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25EYXRhKCRrZXksJHZhbHVlKTsKCiAgICAvKioKICAgICAqIEdldCB0aGUga2V5cyBvZiBtaXNjIGRhdGEsIGlmIGFueSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZ1tdCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbktleXMoKTsKCiAgICAvKioKICAgICAqIEdldCBzcGVjaWZpYyBleHRyYSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkKICAgICAqIEBwYXJhbSBtaXhlZCAkZGZsdAogICAgICogQHJldHVybiBtaXhlZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VHJhbnNhY3Rpb25EYXRhKCRrZXksJGRmbHQgPSBudWxsKTsKCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSB0cmFuc2FjdGlvbiBpZCBwcm92aWRlZCBieSB0aGUgZ2F0ZXdheSBob3N0LgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlIHdoZW4gaGFuZGxpbmcgdHJhbnNhY3Rpb24KICAgICAqIGluZm9ybWF0aW9uLgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYmFzdHJhY3QuCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VHJhbnNhY3Rpb25JZCgpOwoKICAgIC8qKgogICAgICogUmV0cmlldmUgYW55IHByZXZpb3VzbHkgc2V0IG1lc3NhZ2UuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgd2hlbiBoYW5kbGluZyB0cmFuc2FjdGlvbgogICAgICogaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogTm90ZTogVGhpcyBtZXRob2QgaXMgc3ViamVjdCB0byBjaGFuZ2UuCiAgICAgKgogICAgICogQGFiYXN0cmFjdC4KICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRNZXNzYWdlKCk7CgogICAgLyoqCiAgICAgKiBGaW5pc2ggdGhlIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIFRoaXMgaXMgdXNlZCBmb3IgYXN5bmNyaG9ub3VzIHRyYW5zYWN0aW9ucyB3aXRoIHRoZSBnYXRld2F5IHNlcnZlci4KICAgICAqCiAgICAgKiBVc3VhbGx5IGdhdGV3YXkgbW9kdWxlcyB3aWxsIHNhdmUgdGhlIGdhdGV3YXkgc3RhdGUKICAgICAqIGFuZCByZWRpcmVjdCB0byB0aGUgZGVzdGluYXRpb24gdXJsLgogICAgICoKICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHN1YmplY3QgdG8gY2hhbmdlLgogICAgICoKICAgICAqIEBhYmFzdHJhY3QuCiAgICAgKiBAcmV0dXJuIHZvaWQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBGaW5pc2hUcmFuc2FjdGlvbigpOwoKICAgIC8qKgogICAgICogRW5zdXJlIHRoYXQgdGhlcmUgaXMgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHNlbmQgdG8gdGhlIGdhdGV3YXkgaG9zdC4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c3VhbGx5IGNhbGxlZCBiZWZvcmUgYXR0ZW1wdGluZyB0byBzZW5kIGluZm9ybWF0aW9uIHRvIHRoZQogICAgICogZ2F0ZXdheSBob3N0LCBvciB3aGVuIGRpc3BsYXlpbmcgdGhlIGZvcm0uCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIGJvb2xlYW4uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBDaGVja0luZm8oKTsKCiAgICAvKioKICAgICAqIERpc3BsYXkgYSBmb3JtIG9yIG90aGVyIHN1aXRhYmxlIG91dHB1dCB0byBhbGxvdyBhIGN1c3RvbWVyIHRvIGNoZWNrb3V0CiAgICAgKiB1c2luZyB0aGlzIGdhdGV3YXkuCiAgICAgKgogICAgICogU29tZSBnYXRld2F5cyBleHBlY3QgaW5wdXQgdG8gYmUgcHJvdmlkZWQgaW4gYSBmb3JtLCBvdGhlcnMgdXNlIGFuIGVudGlyZWx5CiAgICAgKiBwcm9ncmFtbWF0aWMgYXBwcmlhY2ggKHByZXBhcmUgZGF0YSBhbmQgcG9zdCBpdCB0byBzb21lIFVSTCkuCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgdXN1YWxseSBjYWxsZWQgYnkgdGhlIG9yZGVyIHByb2Nlc3NpbmcgbW9kdWxlIHRvIGRpc3BsYXkKICAgICAqIGEgZm9ybSBvciBhIGJ1dHRvbiwgb3IgYSBsaW5rIHRvIGFsbG93IHRoZSB1c2VyIHRvIGNoZWNrb3V0LgogICAgICoKICAgICAqIEBhYnN0cmFjdAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEZvcm0oJHJldHVybmlkKTsKCiAgICAvKioKICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gc2VuZCBpbmZvcm1hdGlvbiB0byB0aGUgcmVtb3RlIGdhdGV3YXkgd2l0aG91dAogICAgICogdXNlciBpbnRlcmFjdGlvbiAoYXN5bmNyaG9vbm91c2x5KQogICAgICoKICAgICAqIFNvbWUgZ2F0ZXdheXMgbWF5IG5vdCBzdXBwb3J0IHRoaXMuCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFByb2Nlc3NUcmFuc2FjdGlvbigpOwoKICAgIC8qKgogICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBzZW5kIG5vdGlmaWNhdGlvbiB0byB0aGUgb3JkZXIgcHJvY2Vzc29yIHRoYXQgdHJhbnNhY3Rpb24KICAgICAqIGluZm9ybWF0aW9uIGhhcyBhcnJpdmVkIGFzeW5jcmhvbm91c2x5LgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIHByZXBhcmVzIHNvbWUgaW5mb3JtYXRpb24sIGFuZCBzZW5kcyB0aGUgQ0dQYXltZW50R2F0ZXdheUJhc2U6Om9uX2luY29taW5nX2V2ZW50IGV2ZW50LgogICAgICoKICAgICAqIEBkZXByZWNhdGVkLgogICAgICogQGZpbmFsCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFByb2Nlc3NBc3luY1RyYW5zYWN0aW9uKCRvcmRlcl9pZCwkdHJhbnNhY3Rpb25faWQsJHBheW1lbnRfc3RhdHVzLCRhbW91bnQsJG1lc3NhZ2UgPSAnJyk7CgogICAgLyoqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHByb2Nlc3MgYSB0cmFuc2FjdGlvbiB3aXRoIHRoZSBwYXltZW50IGdhdGV3YXkKICAgICAqIGluIHN5bmNocm5vdXMgbW9kZSwgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIHRocm93cyBleGNlcHRpb25zIGluc3RlYWQgb2YgY2FsbGluZyBGaW5pc2hUcmFuc2FjdGlvbgogICAgICogTW9kdWxlcyB1c2luZyB0aGlzIG1ldGhvZCBhcmUgcmVzcG9uc2libGUgZm9yCiAgICAgKgogICAgICogQGFic3RyYWN0CiAgICAgKiBAcmV0dXJuIGNncGdiX2FzeW5jX3RyYW5zYWN0aW9uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBQcm9jZXNzU3luY1RyYW5zYWN0aW9uKCk7CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIHBvbGljeSBmb3IgY2FydCBpdGVtcyB0aGF0IGNhbiBiZSBhZGRlZCB0byB0aGlzIG1vZHVsZS4KICAgICAqIFRoaXMgaXMgdXNlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUgdG8gZGV0ZXJtaW5lIHdoYXQgZ2F0ZXdheXMgY2FuIGJlIHVzZWQgdG8gcHJvY2VzcyB0aGUgb3JkZXIgY29uc2lkZXJpbmcgdGhlIGl0ZW1zIGluIHRoZSBvcmRlci4KICAgICAqCiAgICAgKiBAcmV0dXJuIGNnX2Vjb21tX2NhcnRpdGVtX3BvbGljeQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcnRpdGVtX3BvbGljeSgpOwoKfSAvLyBlbmQgb2YgaW50ZXJmYWNlCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.promotion_assistant.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmludGVyZmFjZSBwcm9tb3Rpb25fYXNzaXN0YW50CnsKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXROYW1lKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gSXNDb25maWd1cmVkKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Rlc3Rfb2JqZWN0KCk7Cn0gLy8gZW5kIG9mIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/interface.shipping_assistant.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmludGVyZmFjZSBzaGlwcGluZ19hc3Npc3RhbnQKewogICAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBJc0NvbmZpZ3VyZWQoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBjYWxjdWxhdGVfc2hpcHBpbmcoIHBhY2tpbmdfbGlzdCAkbGlzdCwgXGNnZV9hZGRyZXNzICRmcm9tID0gbnVsbCApOwogICAgcHVibGljIGZ1bmN0aW9uIGNhbl9nZW5lcmF0ZV9zaGlwbWVudHMoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBjYW5fc2hpcF90byggXGNnZV9hZGRyZXNzICRhZGRyICk7CiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX3NoaXBtZW50KCBcY2dlX2FkZHJlc3MgJGZyb20sIFxjZ2VfYWRkcmVzcyAkdG8sIHBhY2tpbmdfYm94ICRib3ggKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.shopping_cart_mgr.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHRWNvbW1lcmNlQmFzZSAoYykgMjAxMCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBwcm92aWRlIGEgYmFzZSBjb21tdW5pY2F0aW9ucwojICBsYXllciBhbmQgY29tbW9uIHByZWZlcmVuY2UgcmVwb3NpdG9yeSBmb3IgaGlzIGVjb21tZXJjZSBzdWl0ZSBvZgojICBtb2R1bGVzIGZvciBDTVNNUy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCm5hbWVzcGFjZSBDR0Vjb21tZXJjZUJhc2U7CgppbnRlcmZhY2Ugc2hvcHBpbmdfY2FydF9tZ3IKewogICAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBJc0NvbmZpZ3VyZWQoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBFcmFzZUNhcnQoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRCYXNrZXRJdGVtcygkbmFtZSwkZmV1X3VpZCA9IC0xKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRCYXNrZXREZXRhaWxzKCRuYW1lLCRmZXVfdWlkID0gLTEpOwogICAgcHVibGljIGZ1bmN0aW9uIEdldEJhc2tldE5hbWVzKCRmZXVfdWlkPScnKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXROdW1CYXNrZXRzKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TnVtSXRlbXMoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUb3RhbCgpOwogICAgcHVibGljIGZ1bmN0aW9uIEdldFRvdGFsV2VpZ2h0KCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gQWRkQ2FydEl0ZW0oXGNnX2Vjb21tX2NhcnRpdGVtICYkb2JqLCRiYXNrZXRfbmFtZSA9ICcnKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBTdXBwb3J0c1NoaXBwaW5nSW5mbygpOwogICAgcHVibGljIGZ1bmN0aW9uIFN1cHBvcnRzTXVsdGlwbGVCYXNrZXRzKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FkZHRvY2FydF9mb3JtKCRwYXJhbXMpOwp9IC8vIGVuZCBvZiBjbGFzcwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.tax_calculator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENHRWNvbW1lcmNlQmFzZTsKCmludGVyZmFjZSB0YXhfY2FsY3VsYXRvcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TmFtZSgpOwogICAgcHVibGljIGZ1bmN0aW9uIElzQ29uZmlndXJlZCgpOwogICAgcHVibGljIGZ1bmN0aW9uIHNldF9zb3VyY2VfbG9jYXRpb24oIFxjZ19lY29tbV9jb21wYW55X2FkZHJlc3MgJGFkZHIgKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfZGVzdF9sb2NhdGlvbiggXGNnZV9hZGRyZXNzICRhZGRyICk7CiAgICBwdWJsaWMgZnVuY3Rpb24gY2FsY3VsYXRlX3RheGVzKCBcY2dfZWNvbW1fY2FydGl0ZW0gJGl0ZW0gKTsKfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/trait.dflt_gateway_implementation.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBDR0Vjb21tZXJjZUJhc2U7CgovKioKICogQSB0cmFpdCB0byBwcm92aWRlIG1vc3Qgb2YgdGhlIHNrZWxldG9uIGNvZGUgZm9yIGEgcGF5bWVudCBnYXRld2F5LgogKi8KdHJhaXQgZGZsdF9nYXRld2F5X2ltcGxlbWVudGF0aW9uCnsKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgJF9kYXRhID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBzZXNzaW9uX2NsZWFyKCRrZXkgPSAnJykKICAgIHsKICAgICAgICAkcGtleSA9ICdjJy5tZDUoX19GSUxFX18uZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgaWYoIGVtcHR5KCRrZXkpICkgewogICAgICAgICAgICB1bnNldCgkX1NFU1NJT05bJHBrZXldKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlskcGtleV1bJGtleV0pOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBzZXNzaW9uX2dldCgka2V5LCRkZmx0dmFsdWUgPSAnJykKICAgIHsKICAgICAgICAkcGtleSA9ICdjJy5tZDUoX19GSUxFX18uZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgaWYoICFpc3NldCgkX1NFU1NJT05bJHBrZXldKSApIHJldHVybiAkZGZsdHZhbHVlOwogICAgICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWyRwa2V5XVska2V5XSkgKSByZXR1cm4gJGRmbHR2YWx1ZTsKICAgICAgICByZXR1cm4gJF9TRVNTSU9OWyRwa2V5XVska2V5XTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJpdmF0ZSBmdW5jdGlvbiBzZXNzaW9uX3B1dCgka2V5LCR2YWx1ZSkKICAgIHsKICAgICAgICAkcGtleSA9ICdjJy5tZDUoX19GSUxFX18uZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgaWYoICFpc3NldCgkX1NFU1NJT05bJHBrZXldKSApICRfU0VTU0lPTlskcGtleV0gPSBhcnJheSgpOwogICAgICAgICRfU0VTU0lPTlskcGtleV1bJGtleV0gPSAkdmFsdWU7CiAgICB9CgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgogICAgLyoqCiAgICAgKiBTYXZlIHRoZSBzdGF0ZSBvZiB0aGlzIGdhdGV3YXkgaW4gYSB3YXkgdGhhdCBjYW4gYmUgdXNlZCBhY2Nyb3NzIHJlcXVlc3RzLgogICAgICoKICAgICAqIEBwYXJhbSBib29sICRlbmNyeXB0IE9wdGlvbmFsbHkgZW5jcnlwdCB0aGUgc3RhdGUgKHJlY29tbWVuZGVkKSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuICBUaGlzIGlzIGJlY2F1c2Ugc29tZSBnYXRld2F5cyBtYXkgc3RvcmUgcGVyc29uYWwgaW5mb3JtYXRpb24gb3IgY3JlZGl0IGNhcmQgbnVtYmVycyB0ZW1wb3JhcmlseS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleSBhbiBvcHRpb25hbCBlbmNyeXB0aW9uIGtleS4gIElmIGVuY3J5cHQgaXMgZW5hYmxlZCwgYW5kIGEga2V5IGlzIG5vdCBzcGVjaWZpZWQsIG9uZSB3aWxsIGJlIGNhbGN1bGF0ZWQuCiAgICAgKiBAcmV0dXJuIHN0cmluZ3xudWxsIFRoZSBlbmNyeXB0aW9uIGtleSAoaWYgdGhlIHN0YXRlIHdhcyBlbmNyeXB0ZWQuKQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2F2ZVN0YXRlKCRlbmNyeXB0ID0gZmFsc2UsJGtleSA9ICcnKQogICAgewogICAgICAgICRlbmNyeXB0ID0gKGJvb2wpICRlbmNyeXB0OwogICAgICAgICRrZXkgPSB0cmltKChzdHJpbmcpICRrZXkpOwoKICAgICAgICBpZiggJGVuY3J5cHQgKSB7CiAgICAgICAgICAgIGlmKCAhJGtleSApICRrZXkgPSBzdHJfc2h1ZmZsZShtZDUoc2Vzc2lvbl9pZCgpLnRpbWUoKSkpOwogICAgICAgICAgICAkcmF3ID0gc2VyaWFsaXplKCR0aGlzLT5fZGF0YSk7CiAgICAgICAgICAgICRlbmMgPSBcY2dlX2VuY3J5cHQ6OmVuY3J5cHQoJGtleSwkcmF3KTsKICAgICAgICAgICAgJHRoaXMtPnNlc3Npb25fcHV0KCdzdGF0ZScsYmFzZTY0X2VuY29kZSgkZW5jKSk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZyhfX01FVEhPRF9fLicgcmV0dXJuZWQgJy4ka2V5KTsKICAgICAgICAgICAgcmV0dXJuICRrZXk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkcmF3ID0gc2VyaWFsaXplKCR0aGlzLT5fZGF0YSk7CiAgICAgICAgICAgICR0aGlzLT5zZXNzaW9uX3B1dCgnc3RhdGUnLGJhc2U2NF9lbmNvZGUoJHJhdykpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFJlc3RvcmUgYSBnYXRld2F5IGZyb20gYSBzdG9yZWQgc3RhdGUsIGFuZCByZW1vdmUgaXQgZnJvbSB0ZW1wb3Jhcnkgc3RvcmFnZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkgVGhlIGVuY3J5cHRpb24ga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgZ2F0ZXdheSBzdGF0ZS4KICAgICAqIHJldHVybiBib29sCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBSZXN0b3JlU3RhdGUoJGtleSA9ICcnKQogICAgewogICAgICAgIGRlYnVnX3RvX2xvZyhfX01FVEhPRF9fLicga2V5IGlzICcuJGtleSk7CiAgICAgICAgJGtleSA9IHRyaW0oKHN0cmluZykgJGtleSk7CgogICAgICAgIC8vIHdlIG1heSBub3QgaGF2ZSB0aGUgY2xhc3NlcyB3ZSBuZWVkLi4uCiAgICAgICAgXGNnX2Vjb21tOjpnZXRfb3JkZXJfbWFuYWdlcigpOwoKICAgICAgICAkZGF0YSA9ICR0aGlzLT5zZXNzaW9uX2dldCgnc3RhdGUnKTsKICAgICAgICBpZiggISRkYXRhICkgcmV0dXJuIEZBTFNFOwogICAgICAgICRyYXcgPSBiYXNlNjRfZGVjb2RlKCRkYXRhKTsKICAgICAgICBpZiggISRyYXcgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJHRtcCA9IEB1bnNlcmlhbGl6ZSgkcmF3KTsgLy8gaGFja2lzaAogICAgICAgIGlmKCAhJHRtcCAmJiAka2V5ICkgewogICAgICAgICAgICAvLyBhc3N1bWUgaXRzIGVuY3J5cHRlZC4KICAgICAgICAgICAgJHJhdyA9IFxjZ2VfZW5jcnlwdDo6ZGVjcnlwdCgka2V5LCRyYXcpOwogICAgICAgICAgICBpZiggJHJhdyA9PT0gRkFMU0UgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fZGF0YSA9IEB1bnNlcmlhbGl6ZSgkcmF3KTsKICAgICAgICBpZiggISR0aGlzLT5fZGF0YSApIHJldHVybiBGQUxTRTsKICAgICAgICAkdGhpcy0+c2Vzc2lvbl9jbGVhcigpOwogICAgICAgIGRlYnVnX3RvX2xvZyhfX01FVEhPRF9fLicgc3VjY2VzcycpOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIC8qKgogICAgICogUmVzZXQgYWxsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZ2F0ZXdheS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFJlc2V0KCkKICAgIHsKICAgICAgICAkdGhpcy0+X2RhdGEgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5zZXNzaW9uX2NsZWFyKCk7CiAgICB9CgogICAgLy8vLyBsb3dlciBsZXZlbCBzdHVmZiAvLy8vCgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHN0YXR1cy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRpbiAgT25lIG9mIHRoZSB2YWxpZCBzdGF0dXNlcyBmb3IgdGhpcyBvYmplY3QuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvblN0YXR1cygkaW4pCiAgICB7CiAgICAgICAgc3dpdGNoKCAkaW4gKSB7CiAgICAgICAgY2FzZSBzZWxmOjpQQVlNRU5UX1NUQVRVU19BUFBST1ZFRDoKICAgICAgICBjYXNlIHNlbGY6OlBBWU1FTlRfU1RBVFVTX0RFQ0xJTkVEOgogICAgICAgIGNhc2Ugc2VsZjo6UEFZTUVOVF9TVEFUVVNfRVJST1I6CiAgICAgICAgY2FzZSBzZWxmOjpQQVlNRU5UX1NUQVRVU19DQU5DRUxMRUQ6CiAgICAgICAgY2FzZSBzZWxmOjpQQVlNRU5UX1NUQVRVU19PVEhFUjoKICAgICAgICBjYXNlIHNlbGY6OlBBWU1FTlRfU1RBVFVTX1BFTkRJTkc6CiAgICAgICAgY2FzZSBzZWxmOjpQQVlNRU5UX1NUQVRVU19BVVRIT1JJWkVEOgogICAgICAgIGNhc2Ugc2VsZjo6UEFZTUVOVF9TVEFUVVNfTk9ORToKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWydzdGF0dXMnXSA9ICRpbjsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJGluLicgaXMgbm90IGEgdmFsaWQgdHJhbnNhY3Rpb24gc3RhdHVzJyk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSBjdXJyZW50IHBheW1lbnQgc3RhdHVzCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFRyYW5zYWN0aW9uU3RhdHVzKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydzdGF0dXMnXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWydzdGF0dXMnXTsKICAgICAgICByZXR1cm4gc2VsZjo6UEFZTUVOVF9TVEFUVVNfTk9ORTsKICAgIH0KCiAgICAvLy8vIGhpZ2hlciBsZXZlbCBzdGF0dXMgc3R1ZmYKCiAgICAvLyBAdG9kbzogZG9jdW1lbnQgbWUuCiAgICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dzSW5zdGFudENoZWNrb3V0KCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBtZXNzYWdlIChlcnJvciBvciBzdWNjZXNzKSBpZiBpdCBpcyBzZXQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRNZXNzYWdlKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydtZXNzYWdlJ10pICYmICR0aGlzLT5fZGF0YVsnZW1zc2FnZSddICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnbWVzc2FnZSddOwogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2Vycm9yX21lc3NhZ2UnXSkgJiYgJHRoaXMtPl9kYXRhWydlcnJvcl9tZXNzYWdlJ10gKSByZXR1cm4gJHRoaXMtPl9kYXRhWydlcnJvcl9tZXNzYWdlJ107CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgYSBzdWNjZXNzIG1lc3NhZ2UgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICAgICogV2lsbCB1bnNldCB0aGUgZXJyb3IgbWVzc2FnZSwgYnV0IHdpbGwgbm90IGFkanVzdCB0aGUgdHJhbnNhY3Rpb24gc3RhdHVzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFN1Y2Nlc3NNZXNzYWdlKCRtZXNzYWdlKQogICAgewogICAgICAgICRtZXNzYWdlID0gdHJpbSgoc3RyaW5nKSAkbWVzc2FnZSk7CiAgICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWydlcnJvcl9tZXNzYWdlJ10pOwogICAgICAgICR0aGlzLT5fZGF0YVsnbWVzc2FnZSddID0gJG1lc3NhZ2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgYW4gZXJyb3IgbWVzc2FnZSBmb3IgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24uCiAgICAgKiBXaWxsIHVuc2V0IHRoZSBzdWNjZXNzIG1lc3NhZ2UsIGJ1dCB3aWxsIG5vdCBhZGp1c3QgdGhlIHRyYW5zYWN0aW9uIHN0YXR1cy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRFcnJvck1lc3NhZ2UoJG1lc3NhZ2UpCiAgICB7CiAgICAgICAgJG1lc3NhZ2UgPSB0cmltKChzdHJpbmcpICRtZXNzYWdlKTsKICAgICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ21lc3NhZ2UnXSk7CiAgICAgICAgJHRoaXMtPl9kYXRhWydlcnJvcl9tZXNzYWdlJ10gPSAkbWVzc2FnZTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgc3VjY2VzcyBtZXNzYWdlIChpZiBhbnkpIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRTdWNjZXNzTWVzc2FnZSgpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnbWVzc2FnZSddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ21lc3NhZ2UnXTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZXJyb3IgbWVzc2FnZSAoaWYgYW55KSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RXJyb3JNZXNzYWdlKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydlcnJvcl9tZXNzYWdlJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnZXJyb3JfbWVzc2FnZSddOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiBzdGF0dXMgdG8gY2FuY2VsbGVkLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgYW4gb3B0aW9uYWwgZXJyb3IgbWVzc2FnZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldENhbmNlbGxlZCgkbWVzc2FnZSA9IG51bGwpCiAgICB7CiAgICAgICAgJHRoaXMtPlNldFRyYW5zYWN0aW9uU3RhdHVzKHNlbGY6OlBBWU1FTlRfU1RBVFVTX0NBTkNFTExFRCk7CiAgICAgICAgJHRoaXMtPlNldEVycm9yTWVzc2FnZSgkbWVzc2FnZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHN0YXR1cyB0byBkZWNsaW5lZC4KICAgICAqCiAgICAgKiBAYXByYW0gc3RyaW5nICRtZXNzYWdlIGFuIG9wdGlvbmFsIGVycm9yIG1lc3NhZ2UuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXREZWNsaW5lZCgkbWVzc2FnZSA9IG51bGwpCiAgICB7CiAgICAgICAgJHRoaXMtPlNldFRyYW5zYWN0aW9uU3RhdHVzKHNlbGY6OlBBWU1FTlRfU1RBVFVTX0RFQ0xJTkVEKTsKICAgICAgICAkdGhpcy0+U2V0RXJyb3JtZXNzYWdlKCRtZXNzYWdlKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gc3RhdHVzIHRvIGVycm9yLgogICAgICoKICAgICAqIEBhcHJhbSBzdHJpbmcgJG1lc3NhZ2UgYW4gb3B0aW9uYWwgZXJyb3IgbWVzc2FnZS4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFRyYW5zYWN0aW9uRXJyb3IoJG1lc3NhZ2UpCiAgICB7CiAgICAgICAgJG1lc3NhZ2UgPSB0cmltKChzdHJpbmcpICRtZXNzYWdlKTsKICAgICAgICAkdGhpcy0+U2V0VHJhbnNhY3Rpb25TdGF0dXMoc2VsZjo6UEFZTUVOVF9TVEFUVVNfRVJST1IpOwogICAgICAgICR0aGlzLT5fZGF0YVsnZXJyb3JfbWVzc2FnZSddID0gJG1lc3NhZ2U7CiAgICB9CgogICAgLy8vLyBnZW5lcmljIHN0dWZmIC8vLwoKICAgIC8qKgogICAgICogQXNzb2NpYXRlIGtleS92YWx1ZSBkYXRhIHdpdGggdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIG5vdGU6IG1heSBiZSB1c2VkIGxhdGVyIGJ5IHRoZSBnYXRld2F5LCBidXQgbm90IHVzdWFsbHkgdXNlZCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAka2V5CiAgICAgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvbkRhdGEoJGtleSwkdmFsdWUpCiAgICB7CiAgICAgICAgJGtleSA9IHRyaW0oKHN0cmluZykka2V5KTsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsndHJhbnNkYXRhJ10pICkgJHRoaXMtPl9kYXRhWyd0cmFuc2RhdGEnXSA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPl9kYXRhWyd0cmFuc2RhdGEnXVska2V5XSA9ICR2YWx1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUga2V5cyBvZiBhbGwga2V5L3ZhbHVlIGRhdGEgc3RvcmVkIHdpdGggdGhlIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nW10KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFRyYW5zYWN0aW9uS2V5cygpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ3RyYW5zZGF0YSddKSApIHJldHVybjsKICAgICAgICByZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+X2RhdGFbJ3RyYW5zZGF0YSddKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBrZXkvdmFsdWUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkKICAgICAqIEBwYXJhbSBtaXhlZCAkZGZsdCBEZWZhdWx0IGRhdGEgdG8gcmV0dXJuIGlmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbkRhdGEoJGtleSwkZGZsdCA9IG51bGwpCiAgICB7CiAgICAgICAgJGtleSA9IHRyaW0oKHN0cmluZykka2V5KTsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsndHJhbnNkYXRhJ10pICkgcmV0dXJuICRkZmx0OwogICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWyd0cmFuc2RhdGEnXVska2V5XSkgKSAgcmV0dXJuICRkZmx0OwogICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJ3RyYW5zZGF0YSddWyRrZXldOwogICAgfQoKICAgIC8vLy8gaGlnaGVyIGxldmVsIHN0dWZmIC8vLy8KCiAgICAvKioKICAgICAqIFNldCB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlIG9uZSBmbyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gdHlwZXMuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRUcmFuc2FjdGlvblR5cGUoJHR5cGUpCiAgICB7CiAgICAgICAgJHR5cGUgPSB0cmltKChzdHJpbmcpICR0eXBlKTsKICAgICAgICBzd2l0Y2goICR0eXBlICkgewogICAgICAgIGNhc2Ugc2VsZjo6VFJBTlNfQ0FQVFVSRToKICAgICAgICBjYXNlIHNlbGY6OlRSQU5TX1ZPSUQ6CiAgICAgICAgY2FzZSBzZWxmOjpUUkFOU19DUkVESVQ6CiAgICAgICAgICAgICR0aGlzLT5fZGF0YVsndHJhbnNhY3Rpb25fdHlwZSddID0gJHR5cGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJHR5cGUuJyBpcyBhbiBpbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGUgZm9yICcuX19NRVRIT0RfXyk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB0eXBlIG9mIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFRyYW5zYWN0aW9uVHlwZSgpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsndHJhbnNhY3Rpb25fdHlwZSddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX3R5cGUnXTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gaWQKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIgVGhlIHRyYW5zYWN0aW9uIGlkLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VHJhbnNhY3Rpb25JZCgkc3RyKQogICAgewogICAgICAgICRzdHIgPSB0cmltKChzdHJpbmcpICRzdHIpOwogICAgICAgICR0aGlzLT5fZGF0YVsndHJhbnNhY3Rpb25faWQnXSA9ICRzdHI7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGlkCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFRyYW5zYWN0aW9uSWQoKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX2lkJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsndHJhbnNhY3Rpb25faWQnXTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBBZGQgYW4gaXRlbSB0byB0aGUgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIGJ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSB0byBhZGQgaXRlbXMgdG8gdGhlIHRyYW5zYWN0aW9uIGZvciB1c2UgaW4gc3VibWl0dGluZyB0aGUgb3JkZXIgdG8gdGhlIGdhdGV3YXkuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgaXRlbSBuIGFtZQogICAgICogQHBhcmFtIGludCAkbnVtYmVyIHRoZSBpdGVtIG51bWJlcgogICAgICogQHBhcmFtIGludCAkcXVhbnRpdHkgVGhlIGl0ZW0gcXVhbnRpdHkKICAgICAqIEBwYXJhbSBmbG9hdCAkd2VpZ2h0IFRoZSBpdGVtIHdlaWdodAogICAgICogQHBhcmFtIGZsb2F0ICRhbW91bnQgVGhlIGl0ZW0gYW1vdW50IChjdXJyZW5jeSkKICAgICAqIEBwYXJhbSBmbGFvdCAkdGF4IFRoZSB0YXggZm9yIHRoaXMgcGFydGljdWxhciBpdGVtLCBpZiBhbnkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBBZGRJdGVtKCRuYW1lLCRudW1iZXIsJHF1YW50aXR5LCR3ZWlnaHQsJGFtb3VudCwkdGF4ID0gJycpCiAgICB7CiAgICAgICAgJG5hbWUgPSBzdHJpcF90YWdzKCRuYW1lKTsKICAgICAgICAkbmFtZSA9IHByZWdfcmVwbGFjZSgnL1wmLipcO1wiXCdcwrAvJywnJywkbmFtZSk7CiAgICAgICAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnaXRlbXMnXSkgKQkkdGhpcy0+X2RhdGFbJ2l0ZW1zJ10gPSBhcnJheSgpOwoKICAgICAgICAkbnVtID0gMTsKICAgICAgICAkdG1wID0gJG5hbWU7CiAgICAgICAgd2hpbGUoIGlzc2V0KCR0aGlzLT5fZGF0YVsnaXRlbXMnXVskdG1wXSkgJiYgKCRudW0gPCAxMDApICkgewogICAgICAgICAgICAkbnVtID0gKGludCkkbnVtICsgMTsKICAgICAgICAgICAgJHRtcCA9ICRuYW1lIC4gJG51bTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9kYXRhWydpdGVtcyddWyR0bXBdID0gYXJyYXkoJ25hbWUnPT4kbmFtZSwnbnVtYmVyJz0+JG51bWJlciwncXVhbnRpdHknPT4kcXVhbnRpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dlaWdodCc9PiR3ZWlnaHQsJ2Ftb3VudCc9PiRhbW91bnQpOwogICAgICAgIGlmKCFlbXB0eSgkdGF4KSkgJHRoaXMtPl9kYXRhWydpdGVtcyddWyR0bXBdWyd0YXgnXSA9ICR0YXg7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgaXRlbXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0SXRlbXMoKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2l0ZW1zJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnaXRlbXMnXTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCBjcmVkaXQgY2FyZCBpbmZvIHRoYXQgbXVzdCBiZSB1c2VkIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogbm90ZTogIHNvbWUgZ2F0ZXdheXMgZG8gbm90IHJlcXVpcmUgY3JlZGl0IGNhcmQgaW5mby4KICAgICAqCiAgICAgKiBAZGVwcmVjYXRlZCAoY29sbGVjdGluZyBjcmVkaXQgY2FyZCBpbmZvICBzaG91bGQgYmUgZG9uZSBpbnRlcm5hbGx5IGJ5IHRoZSBtb2R1bGUpLgogICAgICogQHBhcmFtIHN0cmluZyAkY2NudW1iZXIgVGhlIGNyZWRpdCBjYXJkIG51bWJlcgogICAgICogQHBhcmFtIGludCAkY2NleHAgVGhlIHVuaXggdGltZXN0YW1wIG9mIHRoZSBjcmVkaXQgY2FyZCBleHBpcnkKICAgICAqIEBwYXJhbSBzdHJpbmcgJGNjdmNvZGUgVGhlIGNyZWRpdCBjYXJkIHZlcmlmaWNhdGlvbiBjb2RlLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0Q3JlZGl0Q2FyZEluZm8oJGNjbnVtYmVyLCRjY2V4cCwkY2N2Y29kZSkKICAgIHsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3Jhd19jY2luZm8nXSA9IGFycmF5KCRjY251bWJlciwkY2NleHAsJGNjdmNvZGUpOwoKICAgICAgICAkX2NjaW5mbyA9IGFycmF5KCk7CiAgICAgICAgJF9jY2luZm9bJ3hfY2FyZF9udW0nXSA9IHByZWdfcmVwbGFjZSgnKFteMC05XSknLCcnLCRjY251bWJlcik7CiAgICAgICAgJF9jY2luZm9bJ3hfZXhwX2RhdGUnXSA9IGRhdGUoJ20nLCRjY2V4cCkuJy8nLmRhdGUoJ1knLCRjY2V4cCk7CiAgICAgICAgaWYoICFlbXB0eSgkY2N2Y29kZSkgKSB7CiAgICAgICAgICAgICRfY2NpbmZvWyd4X2NhcmRfY29kZSddID0gcHJlZ19yZXBsYWNlKCcoW14wLTldKScsJycsJGNjdmNvZGUpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2RhdGFbJ2NjaW5mbyddID0gJF9jY2luZm87CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHJhdyBjcmVkaXQgY2FyZCBpbmZvcm1hdGlvbiBlbnRlcmVkIGJ5IHRoZSB1c2VyLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFJhd0NyZWRpdENhcmRJbmZvKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydyYXdfY2NpbmZvJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsncmF3X2NjaW5mbyddOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGEgdmVyc2lvbiBvZiB0aGUgY3JlZGl0IGNhcmQgaW5mb3JtYXRpb24gdGhhdCBpcyBzdXRhYmxlIGZvciBmcm9udGVuZCBkaXNwbGF5LgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgQW4gYXNzb2NpYXRpdmUgYXJyYXkuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRQcm9jZXNzZWRDcmVkaXRDYXJkSW5mbygpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnY2NpbmZvJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnY2NpbmZvJ107CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIGN1cnJlbmN5IGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICoKICAgICAqIEBkZXByZWNhdGVkIC0gVGhlIGdhdGV3YXkgbW9kdWxlIHNob3VsZCB1c2UgdGhlIGN1cnJlbmN5IGNvZGUgc3BlY2lmaWVkIGluIHRoZSBlY29tbWVyY2Ugc3VpdGUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRjb2RlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRDdXJyZW5jeUNvZGUoJGNvZGUgPSAnVVNEJykKICAgIHsKICAgICAgICAkY29kZSA9IHRyaW0oKHN0cmluZykgJGNvZGUpOwogICAgICAgICR0aGlzLT5fZGF0YVsnY3VycmVuY3ljb2RlJ10gPSBzdHJ0b3VwcGVyKCRjb2RlKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgY3VycmVuY3kgY29kZSBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqCiAgICAgKiBAZGVwcmVjYXRlZCAtIEV2ZXJ5dGhpbmcgc2hvdWxkIHVzZSB0aGUgY3VycmVuY3kgY29kZSBzZXQgaW4gQ0dFY29tbWVyY2VCYXNlCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0Q3VycmVuY3lDb2RlKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydjdXJyZW5jeWNvZGUnXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWydjdXJyZW5jeWNvZGUnXTsKICAgICAgICByZXR1cm4gXGNnX2Vjb21tOjpnZXRfY3VycmVuY3lfY29kZSgpOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSB3ZWlnaHQgdW5pdHMgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgLSBFdmVyeXRoaW5nIHNob3VsZCB1c2UgdGhlIGN1cnJlbmN5IGNvZGUgc2V0IGluIENHRWNvbW1lcmNlQmFzZQogICAgICogQHBhcmFtIHN0cmluZyAkdW5pdHM7CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRXZWlnaHRVbml0cygkdW5pdHMgPSAnbGJzJykKICAgIHsKICAgICAgICAkdW5pdHMgPSB0cmltKChzdHJpbmcpICR1bml0cyk7CiAgICAgICAgJHRoaXMtPl9kYXRhWyd3ZWlnaHR1bml0cyddID0gJHVuaXRzOwogICAgfQoKICAgIC8qKgogICAgICogZ2V0IHRoZSB3ZWlnaHQgdW5pdHMgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgLSBFdmVyeXRoaW5nIHNob3VsZCB1c2UgdGhlIGN1cnJlbmN5IGNvZGUgc2V0IGluIENHRWNvbW1lcmNlQmFzZQogICAgICogQHJldHVybiB0cmluZzsKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFdlaWdodFVuaXRzKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyd3ZWlnaHR1bml0cyddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ3dlaWdodHVuaXRzJ107CiAgICAgICAgcmV0dXJuIFxjZ19lY29tbTo6Z2V0X3dlaWdodF91bml0cygpOwogICAgfQoKICAgIC8qKgogICAgICogRm9yIHN5bmNocm9ub3VzIGdhdGV3YXlzICh0eXBpY2FsbHkgdGhvc2UgdGhhdCByZWRpcmVjdCBvdXQgb2YgdGhlIHNpdGUgYW5kIHRoZW4gYmFjayBpbikKICAgICAqIFRoaXMgc2V0cyB0aGUgVVJMIHRoYXQgdGhlIHN5c3RlbSBzaG91bGQgcmVkaXJlY3QgdG8gYWZ0ZXIgcmV0dXJuaW5nIGZyb20gdGhlIGdhdGV3YXkgd2Vic2l0ZS4KICAgICAqIFRoaXMgaXMgdHlwaWNhbGx5IHNldCBieSB0aGUgb3JkZXIgcHJvY2Vzc2luZyBtb2R1bGUuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdXJsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXREZXN0aW5hdGlvbigkdXJsKQogICAgewogICAgICAgICR1cmwgPSB0cmltKChzdHJpbmcpICR1cmwpOwogICAgICAgICR0aGlzLT5fZGF0YVsnZGVzdGluYXRpb24nXSA9ICR1cmw7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGRlc3RpbmF0aW9uIFVSTCBmb3IgYWZ0ZXIgcHJvY2Vzc2luZyBpcyBjb21wbGV0ZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RGVzdGluYXRpb24oKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2Rlc3RpbmF0aW9uJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnZGVzdGluYXRpb24nXTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCBhIGRlc2NyaXB0aW9uIGZvciB0aGUgZW50aXJlIG9yZGVyLgogICAgICoKICAgICAqIEBkZXByZWNhdGVkIChzaG91bGQgcHJvbGx5IHVzZSB0aGUgb3JkZXIgb2JqZWN0IGl0c2VsZikKICAgICAqIEBwYXJhbSBzdHJpbmcgJHR4dAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0T3JkZXJEZXNjcmlwdGlvbigkdHh0KQogICAgewogICAgICAgICR0eHQgPSB0cmltKCAoc3RyaW5nKSAkdHh0KTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2Rlc2NyaXB0aW9uJ10gPSBzdWJzdHIoJHR4dCwwLDI1NSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBkZXNjcmlwdGlvbiBmb3IgdGhlIGVudGlyZSBvcmRlci4KICAgICAqCiAgICAgKiBAZGVwcmVjYXRlZCAoc2hvdWxkIHByb2xseSB1c2UgdGhlIG9yZGVyIG9iamVjdCBpdHNlbGYpCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0T3JkZXJEZXNjcmlwdGlvbigpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnZGVzY3JpcHRpb24nXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWydkZXNjcmlwdGlvbiddOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBvcmRlciBvYmplY3QgaW50byB0aGUgZ2F0ZXdheQogICAgICoKICAgICAqIEB0b2RvIHVzZSBiYXNlIG9iamVjdCBpbnN0ZWFkIG9mIGFuIG9yZGVyIG9iamVjdCB0byByZW1vdmUgY3Jvc3MgZGVwZW5kZW5jeQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0T3JkZXJPYmplY3QoXG9yZGVyc19vcmRlciAkb3JkZXIpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhWydvcmRlcl9vYmonXSA9ICRvcmRlcjsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgb3JkZXIgb2JqZWN0LgogICAgICoKICAgICAqIEB0b2RvIHVzZSBiYXNlIG9iamVjdCBpbnN0ZWFkIG9mIGFuIG9yZGVyIG9iamVjdCB0byByZW1vdmUgY3Jvc3MgZGVwZW5kZW5jeQogICAgICogQHJldHVybiBcb3JkZXJzX29yZGVyCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3JkZXJfb2JqZWN0KCkKICAgIHsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydvcmRlcl9vYmonXSkgKSAkb3V0ID0gJHRoaXMtPl9kYXRhWydvcmRlcl9vYmonXTsKICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgb3JkZXIgaWQgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgdXNlZCBieSBhc3luaHJvbm91cyBldmVudHMuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkb3JkZXJpZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0T3JkZXJJRCgkb3JkZXJpZCkKICAgIHsKICAgICAgICAkb3JkZXJpZCA9IChpbnQpICRvcmRlcmlkOwogICAgICAgICR0aGlzLT5fZGF0YVsnb3JkZXJpZCddID0gJG9yZGVyaWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG9yZGVyIGlkIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogVGhpcyBtZXRob2QgbWF5IGJlIHVzZWQgYnkgYXN5bmhyb25vdXMgZXZlbnRzLgogICAgICoKICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRPcmRlcklkKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydvcmRlcmlkJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnb3JkZXJpZCddOwogICAgICAgICRvYmogPSAkdGhpcy0+Z2V0X29yZGVyX29iamVjdCgpOwogICAgICAgIGlmKCAhJG9iaiApIHJldHVybjsKCiAgICAgICAgcmV0dXJuICRvYmotPmdldF9pZCgpOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBpbnZvaWNlIG5hbWUgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgdXNlZCBieSBhc3luaHJvbm91cyBldmVudHMuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkaW52b2ljZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0SW52b2ljZSgkaW52b2ljZSkKICAgIHsKICAgICAgICAkbGVuID0gbWluKHN0cmxlbigkaW52b2ljZSksMjApKi0xOwogICAgICAgICR0aGlzLT5fZGF0YVsnaW52b2ljZSddID0gc3Vic3RyKCRpbnZvaWNlLCRsZW4pOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBpbnZvaWNlIG5hbWUgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgdXNlZCBieSBhc3luaHJvbm91cyBldmVudHMuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldEludm9pY2UoKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2ludm9pY2UnXSkgKSByZXR1cm4gJHRoaXMtPl9kYXRhWydpbnZvaWNlJ107CiAgICAgICAgJG9iaiA9ICR0aGlzLT5nZXRfb3JkZXJfb2JqZWN0KCk7CiAgICAgICAgaWYoICEkb2JqICkgcmV0dXJuOwogICAgICAgIHJldHVybiAkb2JqLT5nZXRfaW52b2ljZSgpOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBhbW91bnQgb2YgdGhlIHRvdGFsIHRyYW5zYWN0aW9uIGFtb3VudCBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIFRoaXMgbWV0aG9kIG1heSBiZSB1c2VkIGJ5IGFzeW5ocm9ub3VzIGV2ZW50cy4KICAgICAqIEZvciBzdWJtaXR0aW5nIGFuIG9yZGVyLCB0aGUgZ2F0ZXdheSBzaG91bGQgY2FsY3VsYXRlIHRoZSB0cmFuc2FjdGlvbiBhbW91bnQgZnJvbSB0aGUgb3JkZXIuCiAgICAgKgogICAgICogQHBhcmFtIGZsb2F0ICR2YWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIFNldFRyYW5zYWN0aW9uQW1vdW50KCR2YWwpCiAgICB7CiAgICAgICAgJHZhbCA9IChmbG9hdCkgJHZhbDsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3RyYW5zYWN0aW9uX2FtdCddID0gJHZhbDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgYW1vdW50IG9mIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBJZiBhIHRyYW5zYWN0aW9uIGFtb3VudCBoYXMgbm90IGJlZW4gc3BlY2lmaWVkLCBhbmQgYW4gb3JkZXIgb2JqZWN0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGdhdGV3YXkKICAgICAqIHRoZW4gdXNlIHRoZSBvcmRlciB0b3RhbC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGZsb2F0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRUcmFuc2FjdGlvbkFtb3VudCgpCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsndHJhbnNhY3Rpb25fYW10J10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsndHJhbnNhY3Rpb25fYW10J107CiAgICAgICAgJG9iaiA9ICR0aGlzLT5nZXRfb3JkZXJfb2JqZWN0KCk7CiAgICAgICAgaWYoIGlzX29iamVjdCgkb2JqKSApIHJldHVybiAkb2JqLT5nZXRfdG90YWwoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgcGF5bWVudCBpZCBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIFRoaXMgaXMgdXN1YWxseSB1c2VkIHdoZW4gZmluaXNoaW5nIGEgdHJhbnNhY3Rpb24gd2l0aCBkYXRhIHByb3ZpZGVkIGJ5IHRoZSBnYXRld2F5LgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0cgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0UGF5bWVudElkKCRzdHIpCiAgICB7CiAgICAgICAgJHN0ciA9IHRyaW0oKHN0cmluZykgJHN0cik7CiAgICAgICAgJHRoaXMtPl9kYXRhWydfX3BheW1lbnRfaWRfXyddID0gJHN0cjsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgcGF5bWVudCBpZCBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIFRoaXMgaXMgdXN1YWxseSB1c2VkIHdoZW4gZmluaXNoaW5nIGEgdHJhbnNhY3Rpb24gd2l0aCBkYXRhIHByb3ZpZGVkIGJ5IHRoZSBnYXRld2F5LgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nOwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0UGF5bWVudElkKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydfX3BheW1lbnRfaWRfXyddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ19fcGF5bWVudF9pZF9fJ107CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgYSBiaWxsaW5nIGFkZHJlc3MgZm9yIHRoaXMgdHJhbnNhY3Rpb24uCiAgICAgKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIHdoZW4gY3JlYXRpbmcgYSB0cmFuc2FjdGlvbiB0byBzZW5kIHRvIHRoZSBnYXRld2F5LgogICAgICoKICAgICAqIEBwYXJhbSBjZ2VfYWRkcmVzcyAkYmlsbGluZ19hZGR5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRCaWxsaW5nQWRkcmVzcyhcY2dlX2FkZHJlc3MgJGJpbGxpbmdfYWRkeSkKICAgIHsKICAgICAgICBpZiggISRiaWxsaW5nX2FkZHkgaW5zdGFuY2VvZiBjZ2VfYWRkcmVzcyApCXJldHVybiBGQUxTRTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2JpbGxpbmdfYWRkcmVzcyddID0gJGJpbGxpbmdfYWRkeTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGJpbGxpbmcgYWRkcmVzcyBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgd2hlbiBjcmVhdGluZyBhIHRyYW5zYWN0aW9uIHRvIHNlbmQgdG8gdGhlIGdhdGV3YXkuCiAgICAgKiBJZiBub25lIGhhcyBiZWVuIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBhbmQgYW4gb3JkZXIgb2JqZWN0IGV4aXN0cywgdGhlbiB0aGUgYmlsbGluZyBhZGRyZXNzIGZyb20gdGhlIG9yZGVyIHdpbGwgYmUgdXNlZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIFxjZ2VfYWRkcmVzcwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QmlsbGluZ0FkZHJlc3MoKQogICAgewogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2JpbGxpbmdfYWRkcmVzcyddKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJ2JpbGxpbmdfYWRkcmVzcyddOwogICAgICAgICRvYmogPSAkdGhpcy0+Z2V0X29yZGVyX29iamVjdCgpOwogICAgICAgIGlmKCAkb2JqICkgcmV0dXJuICRvYmotPmdldF9iaWxsaW5nKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgYSBzaGlwcGluZyBhZGRyZXNzIGZvciB0aGlzIHRyYW5zYWN0aW9uLgogICAgICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB3aGVuIGNyZWF0aW5nIGEgdHJhbnNhY3Rpb24gdG8gc2VuZCB0byB0aGUgZ2F0ZXdheS4KICAgICAqCiAgICAgKiBAcGFyYW0gY2dlX2FkZHJlc3MgJGJpbGxpbmdfYWRkeQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0U2hpcHBpbmdBZGRyZXNzKFxjZ2VfYWRkcmVzcyAkc2hpcHBpbmdfYWRkeSkKICAgIHsKICAgICAgICBpZiggISRzaGlwcGluZ19hZGR5IGluc3RhbmNlb2YgY2dlX2FkZHJlc3MgKQlyZXR1cm4gRkFMU0U7CiAgICAgICAgJHRoaXMtPl9kYXRhWydzaGlwcGluZ19hZGRyZXNzJ10gPSAkc2hpcHBpbmdfYWRkeTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGJpbGxpbmcgYWRkcmVzcyBmb3IgdGhpcyB0cmFuc2FjdGlvbi4KICAgICAqIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgd2hlbiBjcmVhdGluZyBhIHRyYW5zYWN0aW9uIHRvIHNlbmQgdG8gdGhlIGdhdGV3YXkuCiAgICAgKiBJZiBub25lIGhhcyBiZWVuIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBhbmQgYW4gb3JkZXIgb2JqZWN0IGV4aXN0cywgdGhlbiB0aGUgZmlyc3Qgc2hpcGluZyBhZGRyZXNzIGZyb20gdGhlIG9yZGVyIHdpbGwgYmUgdXNlZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIFxjZ2VfYWRkcmVzcwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0U2hpcHBpbmdBZGRyZXNzKCkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydzaGlwcGluZ19hZGRyZXNzJ10pICkgcmV0dXJuICR0aGlzLT5fZGF0YVsnc2hpcHBpbmdfYWRkcmVzcyddOwogICAgICAgICRvYmogPSAkdGhpcy0+Z2V0X29yZGVyX29iamVjdCgpOwogICAgICAgIGlmKCAhJG9iaiApIHJldHVybjsKICAgICAgICAkc2hpcG1lbnQgPSAkb2JqLT5nZXRfc2hpcHBpbmcoMCk7CiAgICAgICAgcmV0dXJuICRzaGlwbWVudC0+Z2V0X3NoaXBwaW5nX2FkZHJlc3MoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFN5bmNocm9ub3VzbHkgZmluaXNoIHRoZSB0cmFuc2FjdGlvbi4KICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzdWFsbHkgY2FsbGVkIGJ5IHBheW1lbnQgZ2F0ZXdheXMgYWZ0ZXIgcmV0dXJuaW5nIGZyb20gdGhlIGdhdGV3YXkgd2Vic2l0ZSwgb3IgcG9zdGluZyBzdHVmZiB0byB0aGUgZ2F0ZXdheSBmb3IgYSB1c2VyLgogICAgICogVGhpcyBtZXRob2Qgd2lsbCBzYXZlIHRoZSBzdGF0ZSBvZiB0aGUgZ2F0ZXdheSwgYW5kIHJlZGlyZWN0IHRvIHRoZSBkZXN0aW5hdGlvbiBVUkwgKGlmIGFueSkuCiAgICAgKgogICAgICogQHNlZSBTZXREZXN0aW5hdGlvbigpCiAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgdHJhbnNhY3Rpb24gc3RhdHVzIGlzIHJldHVybmVkIGlmIHRoZXJlIGlzIG5vIGRlc3RpbmF0aW9uIHNldC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEZpbmlzaFRyYW5zYWN0aW9uKCkKICAgIHsKICAgICAgICAvL2lmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydkZXN0aW5hdGlvbiddKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfQVVUSE5FVEFJTSk7CiAgICAgICAgJGtleSA9ICR0aGlzLT5TYXZlU3RhdGUoKTsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydkZXN0aW5hdGlvbiddKSApIHsKICAgICAgICAgICAgJHVybCA9ICR0aGlzLT5fZGF0YVsnZGVzdGluYXRpb24nXTsKICAgICAgICAgICAgJHVybCA9IGh0bWxfZW50aXR5X2RlY29kZSgkdXJsKTsKICAgICAgICAgICAgJHVybCAuPSAiJmNudG50MDFkYXRha2V5PSRrZXkiOwogICAgICAgICAgICAkdXJsIC49ICcmY250bnQwMWdhdGV3YXk9Jy4kbW9kLT5HZXROYW1lKCk7CiAgICAgICAgICAgIHJlZGlyZWN0KCR1cmwpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5HZXRUcmFuc2FjdGlvblN0YXR1cygpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gbm90aWZ5IHRoZSBvcmRlciBwcm9jZXNzaW5nIG1vZHVsZSBvZiBhbiBhc3luY3Job25vdXMgZWNvbW1lcmNlIGV2ZW50IGZyb20gdGhlIGdhdGV3YXkuCiAgICAgKiBUeXBpY2FsbHkgdGhpcyBpcyB1c2VkIHdoZW4gdGhlIGdhdGV3YXkgc2VuZHMgZXZlbnRzIGFzeW5jaHJvbm91c2x5CiAgICAgKgogICAgICogQHBhcmFtIGludCAkb3JkZXJfaWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRyYW5zYWN0aW9uX2lkCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXltZW50X3N0YXR1cwogICAgICogQGFwcmFtIGZsb2F0ICRhbW91bnQKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgVGhlIGVycm9yIG1lc3NhZ2UuCiAgICAgKiBAdG9kbzogdGVzdCBtZS4uLi4gKHRoaXMgaXMgZGFuZ2Vyb3VzIGluIHRoaXMgbWV0aG9kKQogICAgICovCiAgICBmdW5jdGlvbiBQcm9jZXNzQXN5bmNUcmFuc2FjdGlvbigkb3JkZXJfaWQsJHRyYW5zYWN0aW9uX2lkLCRwYXltZW50X3N0YXR1cywkYW1vdW50LCRtZXNzYWdlID0gJycpCiAgICB7CiAgICAgICAgJHRyYW5zYWN0aW9uID0gbmV3IGNncGdiX2FzeW5jX3RyYW5zYWN0aW9uKCRvcmRlcl9pZCwkYW1vdW50KTsKICAgICAgICAkdHJhbnNhY3Rpb24tPnNldF9tZXNzYWdlKCRtZXNzYWdlKTsKICAgICAgICAkdHJhbnNhY3Rpb24tPnNldF9pZCgkdHJhbnNhY3Rpb25faWQpOwogICAgICAgICR0cmFuc2FjdGlvbi0+c2V0X2dhdGV3YXkoJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgICAgJHRyYW5zYWN0aW9uLT5zZXRfc3RhdHVzKCRwYXltZW50X3N0YXR1cyk7CiAgICAgICAgJHRoaXMtPnNlbmRfdHJhbnNhY3Rpb25fbm90aWZpY2F0aW9uKCR0cmFuc2FjdGlvbik7CiAgICB9CgogICAgIC8qKgogICAgICAqIFJldHVybiBhbiBvYmplY3QgaW5kaWNhdGluZyB0aGUgY2FwYWJpbGl0aWVzIGFuZCBwb2xpY2llcwogICAgICAqIG9mIHRoaXMgZ2F0ZXdheSBtb2R1bGUuCiAgICAgICoKICAgICAgKiBAc2VlIGNnX2Vjb21tX2NhcnRpdGVtX3BvbGljeQogICAgICAqIEBhYnN0cmFjdAogICAgICAqIEByZXR1cm4gb2JqZWN0IE9iamVjdCBvZiB0eXBlIGNnX2Vjb21tX2NhcnRpdGVtX3BvbGljeS4KICAgICAgKi8KICAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhcnRpdGVtX3BvbGljeSgpCiAgICAgewogICAgICAgICAvLyBieSBkZWZhdWx0IHdlIGRvbid0IGFsbG93IHN1YnNjcmlwdGlvbnMuCiAgICAgICAgICRwb2xpY3kgPSBuZXcgXGNnX2Vjb21tX2NhcnRpdGVtX3BvbGljeSgpOwogICAgICAgICAkcG9saWN5LT5zZXRfbWl4ZWRfc3Vic2NyaXB0aW9ucyhmYWxzZSk7CiAgICAgICAgICRwb2xpY3ktPnNldF9tYXhfc3Vic2NyaXB0aW9ucygwKTsKICAgICAgICAgcmV0dXJuICRwb2xpY3k7CiAgICAgfQoKfSAvLyBlbmQgb2YgdHJhaXQKCj8+Cg==]]></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>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IENHRWNvbW1lcmNlQmFzZQp2ZXJzaW9uID0gMS44LjQKZGVzY3JpcHRpb24gPSAiIgphdXRob3IgPSBjYWxndXkxMDAwCmF1dGhvcmVtYWlsID0gY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZwptaW5jbXN2ZXJzaW9uID0gMi4yLjIKbGF6eWxvYWRhZG1pbiA9IDEKbGF6eWxvYWRmcm9udGVuZCA9IDEKW2RlcGVuZHNdCkNHRXh0ZW5zaW9ucyA9IDEuNTYuMQo=]]></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_config_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2NvbmZpZ190YWInKX08L2Rpdj4KCntmb3JlYWNoICRyZXBvcnQgYXMgJGtleSA9PiAkcmVjfQo8aDQ+eyRyZWMubGFiZWx9PC9oND4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICB7aWYgISRyZWMubmFtZX0KICAgIDxkaXYgY2xhc3M9Indhcm5pbmcgZ3JpZF8xMiIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPnskbW9kLT5MYW5nKCd3YXJuX25vbW9kdWxlJyl9PC9kaXY+CiAge2Vsc2V9CiAgICA8ZGl2IGNsYXNzPSJncmlkXzQiPnskcmVjLm5hbWV9PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJncmlkXzQiPntpZiAhJHJlYy5va308c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPnskbW9kLT5MYW5nKCdub3RfY29uZmlndXJlZCcpfTwvc3Bhbj57ZWxzZX17JG1vZC0+TGFuZygnb2snKX17L2lmfTwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ3JpZF80Ij48YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2NvbmZpZ190YWIgdHlwZT0ka2V5IHJtbW9kPSRyZWMubmFtZX0iLz57JG1vZC0+bGFuZygndW5zZXQnKX08L2E+PC9kaXY+CiAgey9pZn0KPC9kaXY+CntpZiAhJHJlY0BsYXN0fTxoci8+ey9pZn0Key9mb3JlYWNofQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_general_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0id2FybmluZyI+eyRtb2QtPkxhbmcoJ3dhcm5fZ2VuZXJhbF9zZXR0aW5ncycpfTwvZGl2PgoKe2Zvcm1fc3RhcnQgYWN0aW9uPWFkbWluX2dlbmVyYWxfdGFifQo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygnY3VycmVuY3lfc3ltYm9sJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF8xMCI+CiAgICA8aW5wdXQgY2xhc3M9ImdyaWRfMiIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jdXJyZW5jeV9zeW1ib2wiIHZhbHVlPSJ7JGN1cnJlbmN5X3N5bWJvbH0iIHNpemU9IjQiIG1heGxlbmd0aD0iNCIvPgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ2N1cnJlbmN5X2NvZGUnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzEwIj4KICAgIDxpbnB1dCBjbGFzcz0iZ3JpZF8yIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWN1cnJlbmN5X2NvZGUiIHZhbHVlPSJ7JGN1cnJlbmN5X2NvZGV9IiBzaXplPSI0IiBtYXhsZW5ndGg9IjQiLz4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCd3ZWlnaHRfdW5pdHMnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzEwIj4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH13ZWlnaHRfdW5pdHMiIGNsYXNzPSJncmlkXzEyIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR3ZWlnaHRfdW5pdHMgc2VsZWN0ZWQ9JHdlaWdodF91bml0c30KICAgIDwvc2VsZWN0PgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ2xlbmd0aF91bml0cycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfMTAiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWxlbmd0aF91bml0cyIgY2xhc3M9ImdyaWRfMTIiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHVuaXRzIHNlbGVjdGVkPSRsZW5ndGhfdW5pdHN9CiAgICA8L3NlbGVjdD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCd0YXhfc2hpcHBpbmcnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzEwIj4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH10YXhfc2hpcHBpbmciIGNsYXNzPSJncmlkXzEyIj4KICAgICAge2Ntc195ZXNubyBzZWxlY3RlZD0kdGF4X3NoaXBwaW5nfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fdGF4X3NoaXBwaW5nJyl9PC9wPgogIDwvZGl2PgoKPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_myinfo_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfY29tcGFueScpfToqPC9sYWJlbD4KICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jb21wYW55IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9jb21wYW55KCl9Ii8+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2ZpcnN0bmFtZScpfTo8L2xhYmVsPgogIDxpbnB1dCBjbGFzcz0iZ3JpZF85IiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWZpcnN0bmFtZSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iNTAiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9maXJzdG5hbWUoKX0iLz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfbGFzdG5hbWUnKX06PC9sYWJlbD4KICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1sYXN0bmFtZSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iNTAiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9sYXN0bmFtZSgpfSIvPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hZGRyZXNzMScpfToqPC9sYWJlbD4KICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hZGRyZXNzMSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMTAwIiB2YWx1ZT0ieyRteV9hZGRyZXNzLT5nZXRfYWRkcmVzczEoKX0iLz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRkcmVzczInKX06PC9sYWJlbD4KICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hZGRyZXNzMiIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMTAwIiB2YWx1ZT0ieyRteV9hZGRyZXNzLT5nZXRfYWRkcmVzczIoKX0iLz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfY2l0eScpfToqPC9sYWJlbD4KICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jaXR5IiBzaXplPSIyMCIgbWF4bGVuZ3RoPSI1MCIgdmFsdWU9InskbXlfYWRkcmVzcy0+Z2V0X2NpdHkoKX0iLz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3RhdGUnKX06PC9sYWJlbD4KICA8c2VsZWN0IGNsYXNzPSJncmlkXzkiIG5hbWU9InskYWN0aW9uaWR9c3RhdGUiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdGF0ZV9saXN0IHNlbGVjdGVkPSRteV9hZGRyZXNzLT5nZXRfc3RhdGUoKX0KICA8L3NlbGVjdD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfcG9zdGFsJyl9OjwvbGFiZWw+CiAgPGlucHV0IGNsYXNzPSJncmlkXzkiIHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cG9zdGFsIiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIyNSIgdmFsdWU9InskbXlfYWRkcmVzcy0+Z2V0X3Bvc3RhbCgpfSIvPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jb3VudHJ5Jyl9Oio8L2xhYmVsPgogIDxzZWxlY3QgY2xhc3M9ImdyaWRfOSIgbmFtZT0ieyRhY3Rpb25pZH1jb3VudHJ5Ij4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY291bnRyeV9saXN0IHNlbGVjdGVkPSRteV9hZGRyZXNzLT5nZXRfY291bnRyeSgpfQogIDwvc2VsZWN0Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9waG9uZScpfToqPC9sYWJlbD4KICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1waG9uZSIgc2l6ZT0iMTIiIG1heGxlbmd0aD0iMjUiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9waG9uZSgpfSIvPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mYXgnKX06PC9sYWJlbD4KICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1mYXgiIHNpemU9IjEyIiBtYXhsZW5ndGg9IjI1IiB2YWx1ZT0ieyRteV9hZGRyZXNzLT5nZXRfZmF4KCl9Ii8+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsJyl9Oio8L2xhYmVsPgogIDxpbnB1dCBjbGFzcz0iZ3JpZF85IiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWVtYWlsIiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSJ7JG15X2FkZHJlc3MtPmdldF9lbWFpbCgpfSIvPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KPC9kaXY+CnskZm9ybWVuZH0=]]></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[PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2NhcnRfcG9saWN5Jyl9PC9kaXY+Cgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygnc3lzdGVtX3BvbGljeScpfTo8L2xlZ2VuZD4KICB7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ21heF9wcm9kdWN0cycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9cG9saWN5X21heHByb2R1Y3RzIiBjbGFzcz0iZ3JpZF8xMiI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kbnVtX29wdGlvbnMgc2VsZWN0ZWQ9JHN5c3BvbGljeS0+bWF4X3Byb2R1Y3RzKCl9CiAgICA8L3NlbGVjdD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdtYXhfc2VydmljZXMnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXBvbGljeV9tYXhzZXJ2aWNlcyIgY2xhc3M9ImdyaWRfMTIiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG51bV9vcHRpb25zIHNlbGVjdGVkPSRzeXNwb2xpY3ktPm1heF9zZXJ2aWNlcygpfQogICAgPC9zZWxlY3Q+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygnbWF4X3N1YnNjcmlwdGlvbnMnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXBvbGljeV9tYXhzdWJzY3JpcHRpb25zIiBjbGFzcz0iZ3JpZF8xMiI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG51bV9vcHRpb25zIHNlbGVjdGVkPSRzeXNwb2xpY3ktPm1heF9zdWJzY3JpcHRpb25zKCl9CiAgICA8L3NlbGVjdD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdtaXhlZF9zdWJzY3JpcHRpb25zJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3BvbGljeV9taXhlZHN1YnNjcmlwdGlvbnMnIHNlbGVjdGVkPSRzeXNwb2xpY3ktPmhhbmRsZV9taXhlZF9zdWJzY3JpcHRpb25zKCkgY2xhc3M9ImdyaWRfMTIifQogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KPC9kaXY+CnskZm9ybWVuZH0KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygnZ2F0ZXdheV9wb2xpY3knKX08L2xlZ2VuZD4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfNiI+eyRtb2QtPkxhbmcoJ21heF9wcm9kdWN0cycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfNiI+CiAgICB7YXNzaWduIHZhcj0ndG1wJyB2YWx1ZT0kcGF5cG9saWN5LT5tYXhfcHJvZHVjdHMoKX0KICAgIHskbnVtX29wdGlvbnNbJHRtcF19CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF82Ij57JG1vZC0+TGFuZygnbWF4X3NlcnZpY2VzJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF82Ij4KICAgIHthc3NpZ24gdmFyPSd0bXAnIHZhbHVlPSRwYXlwb2xpY3ktPm1heF9zZXJ2aWNlcygpfQogICAgeyRudW1fb3B0aW9uc1skdG1wXX0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzYiPnskbW9kLT5MYW5nKCdtYXhfc3Vic2NyaXB0aW9ucycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfNiI+CiAgICB7YXNzaWduIHZhcj0ndG1wJyB2YWx1ZT0kcGF5cG9saWN5LT5tYXhfc3Vic2NyaXB0aW9ucygpfQogICAgeyRudW1fb3B0aW9uc1skdG1wXX0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzYiPnskbW9kLT5MYW5nKCdtaXhlZF9zdWJzY3JpcHRpb25zJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF82Ij4KICAge2lmICRwYXlwb2xpY3ktPmhhbmRsZV9taXhlZF9zdWJzY3JpcHRpb25zKCl9CiAgICAgeyRtb2QtPkxhbmcoJ3llcycpfQogICB7ZWxzZX0KICAgICB7JG1vZC0+TGFuZygnbm8nKX0KICAgey9pZn0KICA8L2Rpdj4KPC9kaXY+CjwvZmllbGRzZXQ+]]></data>
	</file>
	<file>
	  <filename>/templates/admin_shipping_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgYWN0aW9uPWFkbWluX3NoaXBwaW5nX3RhYn0KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX3NoaXBwaW5nX3BvbGljeScpfTwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3NoaXBzX3RvJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgY2xhc3M9ImdyaWRfMTIiIG5hbWU9InskYWN0aW9uaWR9c2hpcHRvW10iIG11bHRpcGxlIHNpemU9IjgiPgogICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjb3VudHJpZXMgc2VsZWN0ZWQ9JHBvbGljeS0+c2hpcHRvfQogICAgPC9zZWxlY3Q+CiAgICA8cCBjbGFzcz0iZ3JpZF8xMiI+eyRtb2QtPkxhbmcoJ2luZm9fc2hpcHBpbmdfc2hpcHRvJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdhbGxvd19waWNrdXAnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHNlbGVjdCBjbGFzcz0iZ3JpZF8xMiIgbmFtZT0ieyRhY3Rpb25pZH1hbGxvd19waWNrdXAiPgogICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRwb2xpY3ktPmNhbl9waWNrdXB9CiAgICA8L3NlbGVjdD4KICAgIDxwIGNsYXNzPSJncmlkXzEyIj57JG1vZC0+TGFuZygnaW5mb19zaGlwcGluZ19waWNrdXAnKX08L3A+CiAgPC9kaXY+CjwvZGl2PgoKCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></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/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>
