<?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>FrontEndUsers</name>
	<version>2.2.0.6</version>
    <mincmsversion>2.1.3</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93cyBtYW5hZ2VtZW50IGFuZCBhZG1pbmlzdHJhdGlvbiBvZiBmcm9udCBlbmQgdXNlcnMgPGk+KHVzZXJzIHdobyBoYXZlIG5vIGFkbWluIGFjY2Vzc3MpPC9pPi4gIEl0IGFsbG93cyBjcmVhdGlvbiBvZiB1c2VyIGdyb3VwcywgYW5kIHVzZXIgYWNjb3VudHMgYW5kIGFsbG93cyB1c2VycyB0byBsb2dpbiBhbmQgbG9nb3V0LiAgaXQgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgQ3VzdG9tQ29udGVudCBtb2R1bGUgdG8gZGlzcGxheSBkaWZmZXJlbnQgY29udGVudCB0byBkaWZmZXJlbnQgdXNlcnMgb25jZSB0aGV5IGhhdmUgbG9nZ2VkIGluPC9wPgo8aDM+RmVhdHVyZXM6PC9oMz4KPHVsPgo8bGk+VXNlcnMgY2FuIGJlIG1lbWJlcnMgb2YgbXVsdGlwbGUgZ3JvdXBzLjwvbGk+CjxsaT5Vc2VyIGFjY291bnQgZXhwaXJhdGlvbi4gIFlvdSBjYW4gY3JlYXRlIHRlbXBvcmFyeSB1c2VyczwvbGk+CjxsaT5Hcm91cCBQcm9wZXJ0aWVzLiAgWW91IGNhbiBhc2sgZm9yIGRpZmZlcmVudCBpbmZvcm1hdGlvbiBmcm9tIG1lbWJlcnMgb2YgZGlmZmVyZW50IGdyb3Vwcy48L2xpPgo8bGk+TG90cyBvZiBmaWVsZCB0eXBlcy48L2xpPgo8bGk+UHJvdmlkZXMgYSBjb250ZW50IHR5cGUgdG8gbWFrZSBwcm90ZWN0aW5nIGNvbnRlbnQgc2ltcGxlLCBpZiBub3QgdHJpdmlhbC48L2xpPgo8bGk+Q2FwYWJsZSBvZiBoYW5kbGluZyB0aG91c2FuZHMgb2YgdXNlcnM8L2xpPgo8bGk+RXh0ZW5zaXZlIGZsZXhpYmlsaXR5IGZvciBoYW5kbGluZyByZWRpcmVjdGlvbiBhZnRlciBsb2dpbiwgYW5kIHNlbmRzIGV2ZW50cyB0byBleHRlbmQgdGhlIHdvcmtmbG93IHByb2Nlc3MuPC9saT4KPGxpPkZvcmdvdHRlbiBwYXNzd29yZCwgYW5kIGZvcmdvdCB1c2VybmFtZSBmdW5jdGlvbmFsaXR5Li4uIGFsbG93cyB1c2VycyB0byBzZXQgYSBuZXcgcGFzc3dvcmQsIGFuZC9vciB0byByZWNvdmVyIHRoZWlyIHVzZXJuYW1lIGlmIHRoZXkgY29tcGxldGVseSBmb3Jnb3QgbG9naW4gZGV0YWlscy48L2xpPgo8bGk+RXh0ZW5kYWJsZSB0byBkaWZmZXJlbnQgYXV0aGVudGljYXRpb24gdHlwZXMgKExEQVAsIEZhY2Vib29rLCBldGMpLjwvbGk+CjxsaT5Qcm92aWRlcyBleHRlbnNpdmUgaW1wb3J0IGFuZCBleHBvcnQgY2FwYWJpbGl0aWVzLjwvbGk+CjxsaT5IYXMgYW4gZXh0ZW5zaXZlIEFQSSBmb3IgYWRkaW5nIGZ1bmN0aW9uYWxpdHkgaW50byB2YXJpb3VzIG90aGVyIENNU01TIGFkZG9uIG1vZHVsZXMuPC9saT4KPGxpPlRoZSBhYmlsaXR5IHRvIGVuY3J5cHQgc2Vuc2l0aXZlIHVzZXIgZGF0YS48L2xpPgo8bGk+U3Ryb25nIGVuY3J5cHRpb24gYW5kIHNlY3VyaXR5LjwvbGk+CjxsaT5FeHRlbnNpdmUgYWRtaW5pc3RyYXRpdmUgY2FwYWJpbGl0aWVzLjwvbGk+CjwvdWw+Cgo8aDM+SG93IGRvIEkgdXNlIGl0OjwvaDM+CjxwPkFmdGVyIGluc3RhbGxhdGlvbiB5b3UgY2FuIHRoZSBhY2Nlc3MgYWRtaW4gcGFuZWwgdG8gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIHVuZGVyIHRoZSAmcXVvdDtVc2VycyAmYW1wOyBHcm91cHMmcXVvdDsgbWVudS48L3A+CjxwPllvdSBuZWVkIHRvIGRlZmluZSBhdCBsZWFzdCBvbmUgcHJvcGVydHkuICBQcm9wZXJ0aWVzIGFyZSBlc3NlbnRpYWxseSBmaWVsZCBkZWZpbml0aW9ucywgaGVyZSB5b3Ugc3BlY2lmeSB0aGUgdHlwZSBvZiBpbmZvcm1hdGlvbiB5b3Ugd2FudCB0byBnYXRoZXIsIGFuZCBsaW1pdHMuIGkuZTogIE5hbWUsIEFnZSwgQ2l0eSwgU3RhdGUsIENvdW50cnksIGV0Yy48L3A+CjxwPjxiPk5vdGU6PC9iPiBZb3UgZG8gbm90IG5lZWQgdG8gZGVmaW5lIHByb3BlcnRpZXMgZm9yIHVzZXJuYW1lIChvciBlbWFpbCBhZGRyZXNzKSBhbmQgcGFzc3dvcmQsIHRoZXNlIHdpbGwgYmUgcHJvdmlkZWQgZm9yIHlvdS4gIFRob3VnaCB5b3UgY2FuIHByb3ZpZGUgcHJvcGVydGllcyBmb3IgYWRkaXRpb25hbCBlbWFpbCBhZGRyZXNzZXMuPC9wPgo8cD48Yj5Ob3RlOjwvYj4gTmV3IGluc3RhbGxhdGlvbnMgb2YgdGhlIEZFVSBtb2R1bGUgc3BlY2lmeSB0aGF0IHRoZSB1c2VycyBlbWFpbCBhZGRyZXNzIGlzIHRoZWlyIHVzZXJuYW1lICh0aGlzIG9wdGlvbiBjYW4gYmUgY2hhbmdlZCBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbCkuICBTbyBpZiB1c2luZyB0aGlzIG9wdGlvbiB5b3Ugd2lsbCBub3QgbmVlZCB0byBjcmVhdGUgYW4gZW1haWwgYWRkcmVzcyBwcm9wZXJ0eS48L3A+CjxwPk5leHQgeW91IG11c3QgY3JlYXRlIG9uZSBvciBtb3JlIHVzZXIgZ3JvdXBzLiAgV2hlbiB5b3UgY3JlYXRlIGEgZ3JvdXAsIHlvdSBhcmUgYXNrZWQgZm9yIGEgZ3JvdXAgbmFtZSwgYSBkZXNjcmlwdGlvbiBhbmQgdG8gYXNzb2NpYXRlIG9uZSBvciBtb3JlIHByb3BlcnRpZXMgd2l0aCB0aGF0IGdyb3VwLCBzcGVjaWZ5IHRoZSBwcm9wZXJ0aWVzIHNvcnQgb3JkZXIsIGFuZCB3aGV0aGVyIGl0IGlzIGFuIG9wdGlvbmFsLCByZXF1aXJlZCwgb3IgaGlkZGVuIGZpZWxkLiAgQXQgbGVhc3Qgb25lIHByb3BlcnR5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGEgZ3JvdXAuPC9wPgo8cD48Yj5Ob3RlOjwvYj4gQmVmb3JlIHByb2NlZWRpbmcsIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgdGhlIHByZWZlcmVuY2VzIGFyZSBzZXQgY29ycmVjdGx5LiAgVGFrZSBzb21lIHRpbWUgaGVyZSwgdGhlcmUgYXJlIG51bWVyb3VzIG9wdGlvbnMuPC9wPgo8cD5UaGlyZGx5IHlvdSBzaG91bGQgY3JlYXRlIHNvbWUgdXNlcnMuICBBZGRpbmcgdXNlcnMgaXMgYSB0d28gc3RlcCBwcm9jZXNzLiAgV2hlbiBjcmVhdGluZyBhIHVzZXIgeW91IGFyZSBhc2tlZCBmb3IgdGhlIHVzZXJuYW1lL2VtYWlsIGFuZCBwYXNzd29yZCwgYW5kIGFuIGV4cGlyeSBkYXRlIGZvciB0aGF0IHVzZXIuICBZb3UgdGhlbiBtdXN0IHNlbGVjdCB0aGUgZ3JvdXBzIHRoYXQgdGhhdCB1c2VyIGlzIGEgbWVtYmVyIG9mLCBhbmQgY2xpY2sgJnF1b3Q7TmV4dCZxdW90OzwvcD4KPHA+PGVtPk5vdGU6IDwvZW0+VGhpcyBpcyBhIGxhYm91ciBpbnRlbnNpdmUgYW5kIGJvcmluZyBwcm9jZXNzLCBpdCBpcyBlYXNpZXIgdG8gbGV0IHVzZXJzIHJlZ2lzdGVyIHRoZW1zZWx2ZXMgPGVtPihTZWUgdGhlIFNlbGZSZWdpc3RyYXRpb24gTW9kdWxlKTwvZW0+LCBhbmQgdGhlbiB5b3UgY2FuIGVkaXQgdGhlaXIgZ3JvdXAgaW5mb3JtYXRpb24uICBidXQgZm9yIHRlc3RpbmcgcHVycG9zZXMsIHBsZWFzZSBjcmVhdGUgYXQgbGVhc3Qgb25lIHVzZXI8L3A+CjxwPkxhc3RseSwgYWZ0ZXIgdGhlIHN5c3RlbSBoYXMgZGV0ZXJtaW5lZCBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGZpZWxkcyB0byBiZSBwcmVzZW50ZWQgZm9yIHRoYXQgdXNlciwgeW91IGFyZSBwcmVzZW50ZWQgd2l0aCBhIGZvcm0gYXNraW5nIGZvciBhbGwgb2YgdGhlIHJlcXVpcmVkIHVzZXIgaW5mb3JtYXRpb24uICBDb21wbGV0ZSB0aGlzIGZvcm0gdG8gY29tcGxldGUgdGhlIHVzZXIgYWRkaXRpb248L3A+CjxwPllvdSBhcmUgbm93IHJlYWR5IHRvIGFkZCB0aGUgZnJvbnQgZW5kIGZ1bmN0aW9uYWxpdHkgdG8geW91ciBzaXRlLiAgVGhpcyBpcyBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSB7RnJvbnRFbmRVc2Vyc30gdGFnIHRvIHlvdXIgcGFnZSBvciB0ZW1wbGF0ZS4gIFlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoaXMgcGFnZSBpcyBzZXQgdG8gJnF1b3Q7bm90IGNhY2hlJnF1b3Q7IHdoZW4gZWRpdGluZyB0aGUgY29udGVudCBwYWdlKHMpIHdoZXJlIHRoZSBsb2dpbiBmb3JtIGlzIGRpc3BsYXllZC4gIElmIHlvdSBjYWxsIHRoZSB7RnJvbnRFbmRVc2Vyc30gdGFnIGZyb20gd2l0aGluIGEgcGFnZSB0ZW1wbGF0ZSwgeW91IG11c3QgZGlzYWJsZSBjYWNoaW5nIG9uIGFsbCBwYWdlcyB0aGF0IHVzZSB0aGF0IHRlbXBsYXRlLjwvcD4KPHA+QWRkaW5nIHByb3RlY3RlZCBjb250ZW50IHRvIHlvdXIgQ01TTVMgc2l0ZSBpcyBhcyBzaW1wbGUgYXMgY3JlYXRpbmcgbmV3IHBhZ2VzIG9mIHR5cGUgJnF1b3Q7UHJvdGVjdGVkIENvbnRlbnQmcXVvdDsgYW5kIHNlbGVjdGluZyB3aGljaCB1c2VyIGdyb3VwcyAob3IgYWxsKSB0aGF0IGFyZSBhbGxvd2VkIHRvIHZpZXcgdGhlIHBhZ2UuPC9wPgo8cD48ZW0+T3B0aW9uYWxseTwvZW0+IENyZWF0ZSBhbm90aGVyIG5ldyBjb250ZW50IHBhZ2Ugb2YgdHlwZSAnRXJyb3IgSGFuZGxlcicgYW5kIHNldCB0aGUgZXJyb3IgaGFuZGxlciB0byA0MDMgZXJyb3IuICBJbiB0aGUgY29udGVudCBhcmVhIG9mIHRoYXQgcGFnZSwgeW91IHNob3VsZCBjYWxsIHtGcm9udEVuZFVzZXJzfSB0byBkaXNwbGF5IGEgbG9naW4gZm9ybSBvbiB0aGUgNDAzIGVycm9yIHBhZ2UuPC9wPgoKPGgzPlN0cm9uZyBQYXNzd29yZHM6PC9oMz4KPHA+VGhpcyBtb2R1bGUsIHdoZW4gZnJlc2hseSBpbnN0YWxsZWQgKG5vdCBhbiB1cGdyYWRlKSBlbmFibGVzIHN0cm9uZyBwYXNzd29yZHMuICBBdCBhIG1pbmltdW0gb25lIHVwcGVyIGNhc2UgY2hhcmFjdGVyIGFuZCBvbmUgZGlnaXQgYXJlIHJlcXVpcmVkIHRvIGJlIGluIGV2ZXJ5IHBhc3N3b3JkLiAgVGhlIHNpdGUgYWRtaW5pc3RyYXRvciBjYW4gYWxzbyBzcGVjaWZ5IG90aGVyIG9wdGlvbmFsIGNoYXJhY3RlcnMsIG9uZSBvZiB3aGljaCBtdXN0IGJlIHByZXNlbnQgaW4gYWxsIHBhc3N3b3Jkcy48L3A+Cgo8aDM+U21hcnR5IEZ1bmN0aW9uczo8L2gzPgo8aDQ+e2ZldV9wcm90ZWN0fTwvaDQ+CjxwPlRoZSA8c3Ryb25nPmZldV9wcm90ZWN0PC9zdHJvbmc+IGJsb2NrIHBsdWdpbiBwcm92aWRlcyBhIGNvbnZlbmllbnQgbWV0aG9kIHRvIGhpZGUgc29tZSBjb250ZW50IGZyb20gdXNlcnMgb24gd2hhdCBpcyBub3JtYWxseSBhIHB1YmxpYyBwYWdlLjwvcD4KPHA+PHN0cm9uZyBzdHlsZT0iY29sb3I6IHJlZDsiPldhcm5pbmc6PC9zdHJvbmc+IFRoaXMgcGx1Z2luIGNhbm5vdCBiZSBjb25zaWRlcmVkIDEwMCUgc2VjdXJlLCBhbmQgc2hvdWxkIG5vdCBhdCBhbnkgdGltZSBiZSB1c2VkIGluIHRoZSBwYWdlIHRlbXBsYXRlIHRvIHByb3RlY3QgdGhlIGRlZmF1bHQge2NvbnRlbnR9IHRhZy4gIFRoZXJlIGFyZSB3YXlzIHRvIGFjY2VzcyB0aGUgZGVmYXVsdCBjb250ZW50IHByb3BlcnR5IG9mIGEgcGFnZSwgb3IgdG8gY2FsbCBhIG1vZHVsZSBhY3Rpb24gd2l0aG91dCBwcm9jZXNzaW5nIHRoZSBwYWdlIHRlbXBsYXRlLiAgSWYgeW91IG5lZWQgdG8gcHJvdGVjdCB0aGUgY29udGVudCBhbmQgZW5zdXJlIHRoYXQgbm8gdW5hdXRob3JpemVkIHVzZXJzIGFjY2VzcyB0aGUgcGFnZSwgdXNlIHRoZSBwcm90ZWN0ZWQgcGFnZSBjb250ZW50IHR5cGUgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGUuPC9wPgo8aDU+VXNhZ2U6PC9oNT4KPHByZT48Y29kZT57ZmV1X3Byb3RlY3QgZ3JvdXBzPSJncm91cDEsZ3JvdXAyLGdyb3AzIn0KICAmbHQ7cCZndDtTbWFydHkgY29udGVudCB0aGF0IHNob3VsZCBvbmx5IGJlIHZpc2libGUgdG8gbWVtYmVycyBvZiB0aG9zZSBncm91cHMuJmx0Oy9wJmd0Owp7L2ZldV9wcm90ZWN0fTwvY29kZT48L3ByZT4KPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgdXNlciBtdXN0IGJlIGEgbWVtYmVyIG9mIGF0IGxlYXN0IG9uZSBvZiB0aGUgc3BlY2lmaWVkIGdyb3Vwcy4gIFRoZSBncm91cCBuYW1lcyBhcmUgY2FzZSBzZW5zaXRpdmUuPC9wPgoKPGg0PlRoZSBmZXVfc21hcnR5IGNsYXNzPC9oND4KPHA+VGhlIDxzdHJvbmc+ZmV1X3NtYXJ0eTwvc3Ryb25nPiBjbGFzcyBwcm92aWRlcyBzb21lIGZ1bmN0aW9ucyB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRhYmFzZSBhbmQgcHVsbCBhbmQgdGVzdCBmb3IgdXNlciBpbmZvcm1hdGlvbi48L3A+CjxwPlNvbWUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUgZGF0YWJhc2UgaXMgcG9zc2libGUgd2l0aCBzbWFydHkgYW5kIHRoZSBmZXVfc21hcnR5IGNsYXNzLjwvcD4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPgogIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQmVoYXZpb3Igb2YgdGhlIGZldV9zbWFydHkgY2xhc3MgY2hhbmdlZCBzaWduaWZpY2FudGx5IGF0IHZlcnNpb24gMS4yOSByZXN1bHRpbmcgaW4gY29tcGF0aWJpbGl0eSBwcm9ibGVtcy48L3A+CiAgPHA+VGhpcyBpcyBub3cgYSByZWdpc3RlcmVkIGNsYXNzIHdpdGggU21hcnR5IChmb3IgQ01TTVMgMi4wIGNvbXBhdGliaWxpdHkpLiAgQW5kIGFsbCBtZXRob2RzIG11c3QgYmUgYWNjZXNzZWQgc3RhdGljYWxseS4gIEFkZGl0aW9uYWxseSwgdGhlcmUgaXMgbm8gYXNzaWduIHBhcmFtLiAgWW91IG11c3QgY2FwdHVyZSB0aGUgb3V0cHV0IG9mIHRoZSBmdW5jdGlvbiBpbnRvIGEgc21hcnR5IHZhcmlhYmxlLjwvcD4KPC9kaXY+CjxoNT5GdW5jdGlvbnM6PC9oNT4KPHVsPgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X2N1cnJlbnRfdXNlcmlkKCl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGludGVnZXIgdXNlciBpZCBpZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIChpZiBhbnkpLjwvcD4KPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyR1aWQ9ZmV1X3NtYXJ0eTo6Z2V0X2N1cnJlbnRfdXNlcmlkKCl9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF9jdXJyZW50X3VzZXJuYW1lKCl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHVzZXIgbmFtZSBpZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIChpZiBhbnkpLjwvcD4KPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyR1c2VybmFtZT1mZXVfc21hcnR5OjpnZXRfY3VycmVudF91c2VybmFtZSgpfTwvY29kZT48L3ByZT4KPC9saT4KCjxsaT48c3Ryb25nPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfdXNlcmlkKCR1c2VybmFtZSl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIHJldHVybiB0aGUgaW50ZWdlciB1c2VyIGlkIGdpdmVuIGEgdXNlcm5hbWUuPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57JHVpZD1mZXVfc21hcnR5OjpnZXRfdXNlcmlkKCR1c2VybmFtZSl9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF91c2VybmFtZShbJHVpZF0pfTwvY29kZT48L3N0cm9uZz4KPHA+VGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byByZXR1cm4gdGhlIHN0cmluZyB1c2VybmFtZSBnaXZlbiBhbiBpbnRlZ2VyIHVpZC4gIElmIG5vIHVpZCBpcyBzcGVjaWZpZWQsIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1aWQgaXMgYXNzdW1lZC48L3A+CjxwPkV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfdXNlcm5hbWUoJHRoZV91aWQpfTwvY29kZT48L3ByZT4KPC9saT4KCjxsaT48c3Ryb25nPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfZW1haWwoWyR1aWRdKX08L2NvZGU+PC9zdHJvbmc+CjxwPlRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gcmV0dXJuIGFuIGVtYWlsIGFkZGVyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gaW50ZWdlciB1aWQuICBJZiBubyB1aWQgaXMgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBsb2dnZWQgaW4gdWlkIGlzIGFzc3VtZWQuPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X2VtYWlsKCR0aGVfdWlkKX08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJpbmZvKFskdWlkXSl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIHJldHVybiB0aGUgdXNlciBpbmZvcm1hdGlvbiBmb3IgYSBzaW5nbGUgdXNlci4gIElmIG5vIHVpZCBpcyBzcGVjaWZpZWQsIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1aWQgaXMgYXNzdW1lZC48L3A+CjxwPkV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPnskdWluZm89ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJpbmZvKCRzb21ldGhpbmcudXNlcmlkKX08YnIvPnskdWluZm98QHByaW50X3J9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF91c2Vyc19ieV9ncm91cG5hbWUoJGdyb3VwbmFtZVssJGZvcl9saXN0XSl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGV4dHJhY3QgYW4gYXJyYXkgb2YgdXNlcm5hbWVzIGFuZCB1c2VyaWRzIGZvciBhbGwgdXNlcnMgdGhhdCBiZWxvbmcgdG8gdGhlIHNwZWNpZmllZCBncm91cC48L3A+CjxwPlRoZSBncm91cG5hbWUgcGFyYW1ldGVyIG11c3QgYmUgYSBzaW5nbGUgc3RyaW5nIGdyb3VwbmFtZS48L3A+CjxwPlRoZSBmb3JfbGlzdCBwYXJhbWV0ZXIgaXMgYSBib29sZWFuIHRoYXQgaW5kaWNhdGVzIHRoYXQgdGhlIG91dHB1dCBzaG91bGQgYmUgc3VpdGFibGUgZm9yIHVzZSBpbiBhIHNlbGVjdCBsaXN0LjwvcD4KPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyRteW1lbWJlcnM9ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJzX2J5X2dyb3VwbmFtZSgnbWVtYmVycycpfTxici8+eyRteW1lbWJlcnN8QHByaW50X3J9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF9ncm91cF9tZW1iZXJsaXN0KCRnaWQpfTwvY29kZT48L3N0cm9uZz4KICA8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gYXJyYXkgb2YgdWlkIGFuZCB1c2VybmFtZXMgZm9yIGFsbCB1c2VycyB0aGF0IGFyZSBtZW1iZXJzIG9mIHRoZSBzcGVjaWZpZWQgZ3JvdXAgKGJ5IGdyb3VwIGlkKS48L3A+CiAgPHA+RXhhbXBsZTo8L3A+CiAgPHByZT48Y29kZT57aHRtbF9vcHRpb25zIG9wdGlvbnM9ZmV1X3NtYXJ0eTo6Z2V0X2dyb3VwX21lbWJlcmxpc3QoJGdpZCkgc2VsZWN0ZWQ9JHVpZH08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJfZXhwaXJ5KFskdWlkXSl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHVuaXggdGltZXN0YW1wIHRoYXQgdGhlIHNwZWNpZmllZCB1aWQgYWNjb3VudCBleHBpcmVzLiAgVGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGZhbHNlIGlmIHRoZSB1aWQgY2Fubm90IGJlIGZvdW5kIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57JGV4cGlyeT1mZXVfc21hcnR5OjpnZXRfdXNlcl9leHBpcnkoMjUpfTxici8+eyRleHBpcnl8Y21zX2RhdGVfZm9ybWF0fTwvY29kZT48L3ByZT4KPC9saT4KCjxsaT48c3Ryb25nPjxjb2RlPntmZXVfc21hcnR5Ojp1c2VyX2V4cGlyZWQoJHVpZCl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2V0aGVyIHRoZSBzcGVjaWZpZWQgdXNlciBhY2NvdW50IGhhcyBleHBpcmVkLiAgVGhlIG1ldGhvZCB3aWxsIGFsc28gcmV0dXJuIGZhbHNlIGlmIHRoZSB1aWQgY2Fubm90IGJlIGZvdW5kIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57JGV4cGlyZWQ9ZmV1X3NtYXJ0eTo6dXNlcl9leHBpcmVkKDI1KX08YnIvPntpZiAkZXhwaXJlZH1VSUQgMjUgY2FuIG5vIGxvbmdlciBsb2dpbiB0byB0aGUgc3lzdGVtey9pZn08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJfcHJvcGVydGllcygkdWlkKX08L2NvZGU+PC9zdHJvbmc+CjxwPlRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gZXh0cmFjdCBhIGxpc3Qgb2YgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCB1c2VyLiAgSWYgdGhlIHVpZCBpcyBub3Qgc3BlY2lmaWVkIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1aWQgaXMgdXNlZC48L3A+CjxwPkV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPnskdXNlcnByb3BzPWZldV9zbWFydHk6OmdldF91c2VyX3Byb3BlcnRpZXMoNSl9PGJyLz57JHVzZXJwcm9wc3xAcHJpbnRfcn08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJfcHJvcGVydHkoJHByb3BlcnR5LFskdWlkXSl9PC9jb2RlPjwvc3Ryb25nPgogIDxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgcHJvcGVydHkgZm9yIHRoZSBzcGVjaWZpZWQgdWlkLiAgSWYgdGhlIHVpZCBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVpZCBpcyB1c2VkLjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KICA8cHJlPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfdXNlcl9wcm9wZXJ0eSgnZnVsbG5hbWUnLDUpfTwvY29kZT48L3ByZT4KPC9saT4KCjxsaT48c3Ryb25nPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfZHJvcGRvd25fdGV4dCgkcHJvcG5hbWUsJHByb3B2YWx1ZSl9PC9jb2RlPjwvc3Ryb25nPgogIDxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdGV4dCBzcGVjaWZpZWQgZm9yIGEgcGFydGljdWxhciBvcHRpb24gdmFsdWUgZm9yIGEgc3BlY2lmaWVkIGRyb3Bkb3duIHByb3BlcnR5LjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KICA8cHJlPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfZHJvcGRvd25fdGV4dCgnYWdlX3JhbmdlJywkb25lcHJvcHZhbHVlKX08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X211bHRpc2VsZWN0X3RleHQoJHByb3BuYW1lLCRwcm9wdmFsdWUpfTwvY29kZT48L3N0cm9uZz4KICA8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gYXJyYXkgb2Ygb3B0aW9uIHRleHRzIGNvcnJlc3BvbmRpbmcgdG8gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBvcHRpb24gdmFsdWVzLjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KICA8cHJlPjxjb2RlPnskZmF2b3JpdGVfZm9vZHM9ZmV1X3NtYXJ0eTo6Z2V0X211bHRpc2VsZWN0X3RleHQoJ2Zhdm9yaXRlX2Zvb2RzJywkb25lcHJvcHZhbHVlKX08YnIvPnskZmF2b3JpdGVfZm9vZHN8QHByaW50X3J9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF9ncm91cF9saXN0KCl9PC9jb2RlPjwvc3Ryb25nPgogIDxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBhcnJheSBvZiBGRVUgZ3JvdXBzIHRoYXQgaXMgc3VpdGFibGUgZm9yIHVzZSBpbiBhIGRyb3Bkb3duLjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT4mbHQ7c2VsZWN0IGlkPSJncm91cCImZ3Q7e2h0bWxfb3B0aW9ucyBvcHRpb25zPWZldV9zbWFydHk6OmdldF9ncm91cF9saXN0KCl9Jmx0Oy9zZWxlY3QmZ3Q7PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF91c2VyX2dyb3VwcyhbJHVpZF0pfTwvY29kZT48L3N0cm9uZz4KICA8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gYXJyYXkgb2YgRkVVIGdyb3VwcyB0aGF0IHRoaXMgdXNlciBiZWxvbmdzIHRvIChpZiBhbnkpLiAgVGhlIG91dHB1dCBpcyBhbiBhcnJheSBzdWl0YWJsZSBmb3IgdXNlIGluIGEgc2VsZWN0IGxpc3QgKHRoZSBrZXkgaXMgdGhlIGdyb3VwaWQsIHZhbHVlIGlzIHRoZSBncm91cCBuYW1lKS48L3A+CiAgPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyRteWdyb3Vwcz1mZXVfc21hcnR5OjpnZXRfdXNlcl9ncm91cHMoKX0KeyRteWdyb3Vwc3xAcHJpbnRfcn08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6cHJlbG9hZF91c2VycygkdWlkX2xpc3RbLCRkZWVwID0gZmFsc2VdKX08L2NvZGU+PC9zdHJvbmc+CiAgPHA+VGhpcyBmdW5jdGlvbiB3aWxsIHByZWxvYWQgaW5mb3JtYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdXNlcnMuICBJdCBkb2VzIG5vdCByZXR1cm4gYW55IG91dHB1dC48L3A+CiAgPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyRsaXN0PVsgNSwgMTAsIDExLCAxMywgMTggXX17ZmV1X3NtYXJ0eTo6cHJlbG9hZF91c2VycygkbGlzdCl9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmlzX3VzZXJfbWVtYmVyb2YoJGdyb3Vwc1ssJHVpZF0pfTwvY29kZT48L3N0cm9uZz4KICA8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIGlmIHRoZSB1c2VyIGlzIGEgbWVtYmVyIG9mIG9uZSB0aGUgc3BlY2lmaWVkIGdyb3Vwcy48L3A+CiAgPHA+VGhlIGdyb3VwcyBwYXJhbWV0ZXIgY2FuIGJlIGEgY29tbWEgZGVsaW1pdGVkIHN0cmluZyBvZiBncm91cCBuYW1lcywgb3IgYW4gYXJyYXkgb2YgZ3JvdXAgbmFtZXMuPC9wPgogIDxwPklmIHRoZSB1aWQgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJpZCBpcyB1c2VkLjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57aWYgZmV1X3NtYXJ0eTo6aXNfdXNlcl9tZW1iZXJvZignU3RhZmYsTWFuYWdlcnMnKX1IZWxsbyBDdXN0b21lcnsvaWZ9PC9jb2RlPjwvcHJlPgo8L3VsPgoKPGRpdiBjbGFzcz0id2FybmluZyI+CjxoMz5Qcml2YWN5IFdhcm5pbmc6PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBsb2cgdGhlIElQIGFkZHJlc3Mgb2YgdXNlcnMuIFRoaXMgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBEby1Ob3QtVHJhY2sgcG9saWNpZXMsIGFuZCBtYXkgYnJlYWsgc29tZSBsYXdzLiAgPHN0cm9uZz5Vc2UgQXQgWW91ciBPd24gUmlzay48L3N0cm9uZz48L3A+CjxwPkFkZGl0aW9uYWxseSwgdGhlIGFkbWluaXN0cmF0b3IgaGFzIHRoZSBhYmlsaXR5IHRvIGNvbmZpZ3VyZSB0aGUgbW9kdWxlIHNvIHRoYXQgY29va2llcyBhcmUgdXNlZC4gIEhvd2V2ZXIgbm8gcGVyc29uYWwgaW5mb3JtYXRpb24gaXMgc3RvcmVkIGluIHRoZSBjb29raWVzIChpZiBlbmFibGVkKS4gIE9ubHkgYSBzeXN0ZW0gYXNzaWduZWQgdW5pcXVlIHVzZXIgaWRlbnRpZmVyLCBhbmQgYSBzZXNzaW9uIGlkZW50aWZpZXIuPC9wPgo8L2Rpdj4KCjxoMz5TZWUgQWxzbzo8L2gzPgo8dWw+CiAgPGxpPkN1c3RvbUNvbnRlbnQgLSA8ZW0+KGRlcHJlY2F0ZWQpPC9lbT4gUHJvdmlkZXMgc21hcnR5IHRhZ3MgYW5kIHV0aWxpdGllcyBmb3IgbW9yZSBmbGV4aWJsZSBjb250cm9sIG9mIHByb3RlY3RlZCBwYWdlcy48L2xpPgogIDxsaT5TZWxmUmVnaXN0cmF0aW9uIC0gUHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcywgaW5jbHVkaW5nIHBhaWQgcmVnaXN0cmF0aW9uIG9wdGlvbnMuPC9saT4KICA8bGk+Q0dVc2VyRGlyZWN0b3J5IC0gUHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gYnJvd3NlIGFuZCBzZWFyY2ggdGhyb3VnaCB0aGUgcHJvZmlsZSBpbmZvcm1hdGlvbiBvZiBrbm93biB1c2Vycy48L2xpPgo8L3VsPgoKPGgzPkVuY3J5cHRlZCBEYXRhOjwvaDM+CjxwPlRoZSBFbmNyeXB0ZWQgZmllbGQgZnVuY3Rpb25hbGl0eSBpcyBpbnRlbmRlZCB0byBzdG9yZSAoaW4gYSBzZWN1cmUgd2F5KSBwZXJzb25hbCBhbmQgcHJpdmF0ZSBkYXRhIHRoYXQgZXZlbiB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIHNob3VsZCBub3QgaGF2ZSBhY2Nlc3MgdG8uICBpLmU6IGl0ZW1zIHN1Y2ggYXMgQ3JlZGl0IENhcmQgaW5mb3JtYXRpb24uICBUaGUgb25seSBwZXJzb24gdGhhdCBzaG91bGQgYmUgYWJsZSB0byB2aWV3IGFuZCBlZGl0IHRoaXMgZGF0YSBpcyB0aGUgdXNlciBoaW1zZWxmLiAgIFRoaXMgZGF0YSBzaG91bGQgbm90IGJlIGV4cG9ydGVkIHRvIHBsYWluIHRleHQgZWl0aGVyLiAgVGhlIGRhdGEgY291bGQgaG93ZXZlciBiZSByZWFkIGFuZCB1c2VkIGJ5IG90aGVyIG1vZHVsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+ICBUaGVyZSBtYXkgYmUgYSBuZWVkIGZvciBhbiBhZGRpdGlvbmFsIG1vZHVsZSB0byBkaXNwbGF5IHRoZSB1bmVuY3J5cHRlZCBmb3JtIG9mIGVuY3J5dHBlZCB1c2VyIGluZm9ybWF0aW9uLCBob3dldmVyIHRoZSBGRVUgbW9kdWxlIGRvZXMgbm90IG5lZWQgaXQuPC9wPgoKPGgzPkZBUTwvaDM+Cjx1bD4KICA8bGk+PHN0cm9uZz5ROjwvc3Ryb25nPiBXaHkgY2FuJ3QgSSBjcmVhdGUgYSBncm91cAogICAgPHA+PHN0cm9uZz5BOjwvc3Ryb25nPiBHcm91cHMgY2FuJ3QgYmUgY3JlYXRlZCB1bnRpbGwgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGlzIGNyZWF0ZWQuPC9wPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+UTo8L3N0cm9uZz4gV2h5IGNhbid0IEkgZGVsZXRlIGEgcHJvcGVydHkKICAgIDxwPjxzdHJvbmc+QTo8L3N0cm9uZz4gQSBwcm9wZXJ0eSBjYW4gb25seSBiZSBkZWxldGVkIGlmIGl0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IGdyb3VwcyBhcyByZXF1aXJlZCBvciBoaWRkZW4uICBBZGRpdGlvbmFsbHksIHByb3BlcnRpZXMgY3JlYXRlZCBieSBvdGhlciBtb2R1bGVzIGNhbm5vdCBiZSBkZWxldGVkLjwvcD4KICA8L2xpPgogIDxsaT48c3Ryb25nPlE6PC9zdHJvbmc+IFNldHRpbmcgcHJvcGVydHkgb3JkZXIgZG9lc24ndCBzZWVtIHRvIHdvcmsKICA8cD48c3Ryb25nPkE6PC9zdHJvbmc+IFRoZSBwZXJjaWV2ZWQgcHJvcGVydHkgb3JkZXIgd2lsbCBjaGFuZ2UgZWFjaCB0aW1lIHRoZSBncm91cCBpcyBlZGl0ZWQuICBUaGUgcHJvcGVydGllcyB0aGF0IGFyZSBtYXJrZWQgYXMgJnF1b3Q7b2ZmJnF1b3Q7IHdpbGwgYWx3YXlzIGJlIGRpc3BsYXllZCBhdCB0aGUgYm90dG9tLCBidXQgdGhlIHNvcnQgb3JkZXIgb2Ygb3RoZXIgcHJvcGVydGllcyB3aWxsIGJlIHJldGFpbmVkLjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPlRpcHM8L2gzPgo8dWw+CiAgPGxpPkR5bmFtaWMgTmF2aWdhdGlvbnM6CiAgICA8cD5JbiBtb3N0IGNpcmN1bXN0YW5jZXMgeW91IGNhbm5vdCBhbGxvdyBicm93c2VyIGNhY2hpbmcgb24gYW55IHBhZ2UgdGhhdCBoYXMgYSBkeW5hbWljIG5hdmlnYXRpb24uLi4gdGhlIHR3byBzaG91bGQgbm90IGJlIG1peGVkLjwvcD4KICA8L2xpPgogIDxsaT5SZWRpcmVjdCBQcmVmZXJlbmNlcyBhbmQgeyR1c2VybmFtZX06CiAgICA8cD5JZiB1c2luZyB0aGUgPGNvZGU+eyR1c2VybmFtZX08L2NvZGU+IHNtYXJ0eSB2YXJpYWJsZSBpbiBhbnkgb2YgdGhlIHJlZGlyZWN0IHByZWZlcmVuY2VzIGluIHRoZSBGRVUgbW9kdWxlJ3MgJnF1b3Q7YnVpbHRpbiBhdXRoZW50aWNhdGlvbiZxdW90OyB0YWIgYmUgc3VyZSB0byB0dXJuIE9GRiB0aGUgJnF1b3Q7RW1haWwgaXMgVXNlcm5hbWUmcXVvdDsgcHJlZmVyZW5jZS48L3A+CiAgPC9saT4KPC91bD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zyb250ZW5kdXNlcnMiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+UGFyYW1ldGVyczwvaDM+Cjx1bD4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSJkZWZhdWx0IgogIDxwPkFjdGlvbnM6PC9wPgogIDx1bD4KICAgIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gVGhlIGRlZmF1bHQgYWN0aW9uLiAgSWYgdGhlIHVzZXIgaXMgbG9nZ2VkIGluLCB0aGUgbG9nb3V0Zm9ybSBhY3Rpb24gd2lsbCBiZSBkaXNwbGF5ZWQuICBJZiB0aGUgdXNlciBpcyBub3QgbG9nZ2VkIGluIHRoZSBsb2dpbiBhY3Rpb24gd2lsbCBiZSBjYWxsZWQuCiAgICA8bGk+PGVtPmxvZ2luPC9lbT4gLSBEaXNwbGF5IHRoZSBsb2dpbiBmb3JtLjwvbGk+CiAgICA8bGk+PGVtPmxvZ291dGZvcm08L2VtPiAtIERpc3BsYXkgb3V0cHV0IGFib3V0IHlvdXIgY3VycmVudCB1c2VybmFtZSwgYW5kIGFjdGlvbnMgdG8gY2hhbmdlIHlvdXIgc2V0dGluZ3MsIG9yIGxvZ291dC4gIElmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4sIHRoaXMgYWN0aW9uIGRvZXMgbm90aGluZy48L2xpPgogICAgPGxpPjxlbT5jaGFuZ2VzZXR0aW5nczwvZW0+IC0gRGlzcGxheSB0aGUgY2hhbmdlIHNldHRpbmdzIGZvcm0gZm9yIGxvZ2dlZCBpbiB1c2Vycy4gIElmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4sIHRoaXMgYWN0aW9uIGRvZXMgbm90aGluZy48L2xpPgogICAgPGxpPjxlbT5mb3Jnb3RwdzwvZW0+IC0gRGlzcGxheSB0aGUgZm9yZ290IHBhc3N3b3JkIGZvcm0uPC9saT4KICAgIDxsaT48ZW0+c2lsZW50IChkZXByZWNhdGVkKTwvZW0+IC0gQ3JlYXRlcyBhbmQgYXNzaWducyBzb21lIHNtYXJ0eSB2YXJpYWJsZXMgY29udGFpbmluZyBpbmZvIGFib3V0IHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIuPC9saT4KICAgIDxsaT48ZW0+bG9zdHVzZXJuYW1lPC9lbT4gLSBEaXNwbGF5IHRoZSBsb3N0dXNlcm5hbWUgZm9ybSAoaWYgdGhlIHN5c3RlbSBpcyBwcm9wZXJseSBzZXR1cCB0byBoYW5kbGUgbG9zdCB1c2VybmFtZSByZXF1ZXN0cywgYW5kIHRoZSB1c2VyIGlzIG5vdCBjdXJyZW50bHkgbG9nZ2VkIGluLjwvbGk+CiAgICA8bGk+PGVtPnJlc2V0X3Nlc3Npb248L2VtPiAtIFByb3ZpZGUgYSBqYXZhc2NyaXB0IGNvbnRyb2xsZWQgdGVtcGxhdGUgdG8gYWxsb3cgdGhlIG1hbnVhbCwgb3IgYXV0b21hdGljIHBpbmdpbmcgb2YgdGhlIHVzZXIgc2Vzc2lvbi4gIFRoaXMgdGVtcGxhdGUgY2FuIGJlIHVzZWQgdG8gcmVtaW5kIHRoZSB1c2VyIHRoYXQgaGlzIGxvZ2luIHNlc3Npb24gaXMgYWJvdXQgdG8gZXhwaXJlLCBhbmQgdG8gdHJpZ2dlciBpdHMgcmVzZXQuICBOb3JtYWxseSB0aGlzIG1ldGhvZCBpcyBub3QgcmVxdWlyZWQgYXMgYW55IHBhZ2UgdGhhdCBkaXNwbGF5cyB0aGUgRnJvbnRFbmRVc2VyIGNvbnRyb2xzIHdvdWxkIGhhbmRsZSB0aGlzLCBqdXN0IHJlcXVpcmluZyB0aGUgdXNlciB0byB2aWV3IGEgcGFnZSBvbiBhIHJlZ3VsYXIgYmFzaXMuICBIb3dldmVyLCBpZiB0aGVyZSBhcmUgcGFnZXMgd2l0aCBhbG90IG9mIGNvbnRlbnQgcmVxdWlyaW5nIGV4dGVuc2l2ZSByZWFkaW5nLCB0aGlzIG1heSBiZSBhIHVzZWZ1bCBzb2x1dGlvbi48L2xpPgogICAgPGxpPjxlbT52aWV3dXNlcjwvZW0+IC0gRGlzcGxheSBhIHJlcG9ydCBmb3IgYSBzaW5nbGUgdXNlciwgcmVxdWlyZXMgdXNlIG9mIHRoZSB1aWQgcGFyYW1ldGVyLjwvbGk+CiAgPC91bD4KPC9saT4KCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZvcm09Im5hbWUiCjxwPkZvcm1zOjwvcD4KPGRpdiBjbGFzcz0id2FybmluZyI+Tm90ZTogVGhlIGZvcm0gcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQuICBQbGVhc2UgdXMgdGhlIHN0YW5kYXJkIGFjdGlvbiBwYXJhbWV0ZXIgZm9yIGFjY2Vzc2luZyBkaWZmZXJlbnQgRkVVIGZvcm1zIGRpcmVjdGx5LjwvZGl2Pgo8dWw+CiA8bGk+PGVtPmxvZ2luPC9lbT4gLSBEaXNwbGF5IHRoZSBsb2dpbiBmb3JtIDxlbT4oc2VlIGFjdGlvbj1sb2dpbik8L2VtPjwvbGk+CiA8bGk+PGVtPmxvZ291dDwvZW0+IC0gRGlzcGxheSB0aGUgbG9nb3V0IGZvcm0gPGVtPihzZWUgYWN0aW9uPWxvZ291dGZvcm0pPC9lbT48L2xpPgogPGxpPjxlbT5jaGFuZ2VzZXR0aW5nczwvZW0+IC0gRGlzcGxheSB0aGUgY2hhbmdlIHNldHRpbmdzIGZvcm0gPGVtPihzZWUgYWN0aW9uPWNoYW5nZXNldHRpbmdzKTwvZW0+PC9saT4KIDxsaT48ZW0+Zm9yZ290cHc8L2VtPiAtIERpc3BsYXkgdGhlIGZvcmdvdCBwYXNzd29yZCBmb3JtIDxlbT4oc2VlIGFjdGlvbj1mb3Jnb3Rwdyk8L2VtPjwvbGk+CiA8bGk+PGVtPmxvc3R1c2VybmFtZTwvZW0+IC0gRGlzcGxheSB0aGUgbG9zdCB1c2VybmFtZSBmb3JtLiA8ZW0+KHNlZSBhY3Rpb249bG9zdHVzZXJuYW1lKTwvZW0+PC9saT4KPGxpPjxlbT5zaWxlbnQ8L2VtPiA9ICA8ZW0+KHNlZSBhY3Rpb249c2lsZW50KTwvZW0+IERpc3BsYXkgbm90aGluZywgYnV0IGV4cG9ydCBwcm9wZXJ0aWVzIGFuZCBvdGhlciBzbWFydHkgdmFyaWFibGVzIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyLiAgSWYgbm8gdXNlciBpcyBsb2dnZWQgaW4sIHRoZW4gbm8gdmFyaWFibGVzIGFyZSBleHBvcnRlZC48L2xpPgo8L3VsPgo8L2xpPgoKPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcmV0dXJudG89InBhZ2UiCiAgPHA+VXNlZCB3aXRoIHRoZSBsb2dpbiwgbG9nb3V0LCBhbmQgY2hhbmdlc2V0dGluZ3MgZm9ybXMsIHRoaXMgcGFyYW1ldGVyIGNvbnRhaW5zIHRoZSBwYWdlIGlkIG9yIGFsaWFzIG9mIGEgcGFnZSB0byByZWRpcmVjdCB0bywgd2hlbiB0aGUgZm9ybSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY29tcGxldGVkPC9wPgogIDxwPk5vdGU6IFRoYXQgb24gbG9naW4gdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMuPC9wPgo8L0xJPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBvbmx5X2dyb3Vwcz0iZ3JvdXAxLCBncm91cDIsIGdyb3VwMyIKICAgPHA+VXNlZCB3aXRoIHRoZSBsb2dpbiBmb3Jtcy4gIEJhc2ljYWxseSBvbmx5IGFsbG93cyB1c2VycyB0byBsb2dpbiBpZiB0aGV5IGJlbG9uZyB0byB0aGF0IHBhcnRpY3VsYXIgZ3JvdXAocykuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsb3N0dW5fZ3JvdXA9Imdyb3VwIgogICA8cD5Vc2VkIHdpdGggdGhlIGxvc3R1c2VybmFtZSBmb3JtLCB0aGlzIGZlYXR1cmUgc3BlY2lmaWVzIHRoZSBmcm9udGVuZCB1c2VyIGdyb3VwIHRvIGFzc3VtZSB0aHQgdXNlcnMgYXJlIG1lbWJlcnMgb2YuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2NhcHRjaGE9IjEiCiAgPHA+VXNlZCB3aXRoIHRoZSBsb2dpbiBhbmQgdmVyaWZ5IGZvcm1zLCBUaGlzIHdpbGwgZGlzYWJsZSBjYXB0Y2hhIG9uIHRoZSBmb3JtLiBCeSBkZWZhdWx0LCBpZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLCB2YWxpZGF0aW9uIG9mIGEgY2FwdGNoYSBpbWFnZSB3aWxsIGJlIHJlcXVpcmVkIGZvciBsb2dpbi4gIFRoaXMgaXMgYSBzZWN1cml0eSBtZWFzdXJlIGludGVudGVkIHRvIHByZXZlbnQgYnJ1dGUgZm9yY2UgYXR0YWNrcy48L3A+CjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHVpZD1udWxsCiAgPHA+VXNlZCB3aXRoIHRoZSB2aWV3dXNlciBhY3Rpb24uICBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCB0byBzcGVjaWZ5IHdoaWNoIHVzZXIgdG8gdmlldyB0aGUgZGV0YWlscyBvZi48L3A+CjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlubGluZT10cnVlCiAgPHA+VXNlZCB3aXRoIHRoZSBsb2dpbiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSByZXN1bHQgb2YgdGhlIGZvcm0gc3VibWlzc2lvbiBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgaW5wdXQgdGFnLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbG9naW50ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBsb2dpbiBmb3JtIHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgb2YgYSBkaWZmZXJlbnQgb25lLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbG9nb3V0dGVtcGxhdGU9c3RyaW5nCiAgPHA+VGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgbG9nb3V0IHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgb2YgYSBkaWZmZXJlbnQgb25lLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2hhbmdlc2V0dGluZ3N0ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBjaGFuZ2VzZXR0aW5ncyBmb3JtIHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgb2YgYSBkaWZmZXJlbnQgb25lLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9yZ290cHd0ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBmb3Jnb3QgcGFzc3dvcmQgZm9ybSB0ZW1wbGF0ZSB3aXRoIHRoZSBuYW1lIG9mIGEgZGlmZmVyZW50IG9uZS48L3A+CjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxvc3R1bnRlbXBsYXRlPXN0cmluZwogIDxwPlRoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVycmlkaW5nIHRoZSBsb3N0IHVzZXJuYW1lIGZvcm0gdGVtcGxhdGUgd2l0aCB0aGUgbmFtZSBvZiBhIGRpZmZlcmVudCBvbmUuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiB2aWV3dXNlcnRlbXBsYXRlPXN0cmluZwogIDxwPlRoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHZpZXd1c2VyIHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgb2YgYSBkaWZmZXJlbnQgb25lLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWZ0ZXJ2ZXJpZnl0ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBhZnRlciB2ZXJpZmljYXRpb24gdGVtcGxhdGUgd2l0aCB0aGUgbmFtZSBvZiBhIGRpZmZlcmVudCBvbmUuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiByZXNldHNlc3Npb250ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCByZXNldCBzZXNzaW9uIGZvcm0gdGVtcGxhdGUgd2l0aCB0aGUgbmFtZSBvZiBhIGRpZmZlcmVudCBvbmUuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiB2ZXJpZnlmb3JtdGVtcGxhdGU9c3RyaW5nCiAgPHA+VGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgdmVyaWZpY2F0aW9uIGZvcm0gdGVtcGxhdGUgd2l0aCB0aGUgbmFtZSBvZiBhIGRpZmZlcmVudCBvbmUuPC9wPgo8L2xpPgo8L3VsPgo8cD48c3Ryb25nPlRpcDo8L3N0cm9uZz4gWW91IGNhbiB1c2UgdGhlIHtjZ2VfbW9kdWxlX2hpbnR9IHBsdWdpbiBmcm9tIENHRXh0ZW5zaW9ucywgb3IgdGhlIHtjbXNfbW9kdWxlX2hpbnR9IHBsdWdpbiBpbiBDTVNNUyAyLjAgdG8gc2V0IHRoZXNlIHBhcmFtZXRlcnMgb24gYSBnbG9iYWwsIHBlci1wYWdlLXRlbXBsYXRlLCBvciBwZXItcGFnZSBiYXNpcyB3aXRob3V0IGhhdmluZyB0byBhZGp1c3QgZXZlcnkgY2FsbCwgYW5kIHdoaWxlIHN0aWxsIG1haW50YWluaW5nIHByZXR0eSBVUkwncy48L3A+Cgo8aDM+VXNpbmcgRGlmZmVyZW50IFRlbXBsYXRlcy48L2gzPgo8cD5BcyBvZiBGRVUgMS4zMCBpdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IGRpZmZlcmVudCB0ZW1wbGF0ZXMgZm9yIG1hbnkgb2YgdGhlIEZFVSBtb2R1bGUgdGVtcGxhdGVzLiAgSXQgaXMgYWxzbyBmbGV4aWJsZS4gIFlvdSBjYW4gdXNlIGdsb2JhbCBjb250ZW50IGJsb2Nrcywgb3IgZmlsZSBiYXNlZCB0ZW1wbGF0ZXMgb3IKIGFueSBvdGhlciBzbWFydHkgcmVzb3VyY2UgYXMgYSB0ZW1wbGF0ZS48L3A+Cjx1bD4KICA8bGk+VGVtcGxhdGUgbmFtZXMgZW5kaW5nIHdpdGggLnRwbAogICAgPHA+SWYgdGhlIHNwZWNpZmllZCB0ZW1wbGF0ZSBuYW1lIGlzIG5vdCBhIHNtYXJ0eSByZXNvdXJjZSwgYnV0IGVuZHMgd2l0aCB0aGUgZXh0ZW5zaW9uIDxjb2RlPi50cGw8L2NvZGU+LCB0aGVuIEZFVSAoYWN0dWFsbHkgQ0dFeHRlbnNpb25zKSB3aWxsIGFzc3VtZSB0aGF0IHlvdSB3YW50IGEgZmlsZSB0ZW1wbGF0ZSBmcm9tIHRoZSBtb2R1bGUgZGlyZWN0b3J5LCBvciBmcm9tIHRoZSBtb2R1bGVfY3VzdG9tIGRpcmVjdG9yeSA8ZW0+KHNlZSA8YSBocmVmPSJodHRwOi8vZG9jcy5jbXNtYWRlc2ltcGxlLm9yZyI+aHR0cDovL2RvY3MuY21zbWFkZXNpbXBsZS5vcmc8L2E+IGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBtb2R1bGVfY3VzdG9tIHN0dWZmKTwvZW0+LgogIDwvbGk+CiAgPGxpPmdsb2JhbGNvbnRlbnQ6Z2NiX25hbWUKICAgIDxwPlNwZWNpZnlpbmcgYSB0ZW1wbGF0ZSBpbiB0aGlzIHN5bnRheCBhbGxvd3MgeW91IHRvIHVzZSBhIGdsb2JhbCBjb250ZW50IGJsb2NrIGFzIGFzIHJlcGxhY2VtZW50IHRlbXBsYXRlLjwvcD4KICA8L2xpPgogIDxsaT50ZW1wbGF0ZTpnY2JfbmFtZQogICAgPHA+U3BlY2lmeWluZyBhIHRlbXBsYXRlIGluIHRoaXMgc3ludGF4IGFsbG93cyB5b3UgdG8gdXNlIGEgcGFnZSB0ZW1wbGF0ZSBhcyBhcyByZXBsYWNlbWVudCB0ZW1wbGF0ZS48L3A+CiAgPC9saT4KICA8bGk+Y21zX3RlbXBsYXRlOm5hbWUgPGVtPihDTVNNUyAyLjAgb25seSk8L2VtPgogICAgPHA+U3BlY2lmeWluZyBhIHRlbXBsYXRlIGluIHRoaXMgc3ludGF4IGFsbG93cyB5b3UgdG8gdXNlIGEgdGVtcGxhdGUgZnJvbSB3aXRoaW4gRGVzaWduIE1hbmFnZXIgYXMgYXMgcmVwbGFjZW1lbnQgdGVtcGxhdGUuPC9wPgogIDwvbGk+CiAgPGxpPmZpbGU6ZmlsZW5hbWUudHBsCiAgICA8cD5Vc2luZyB0aGlzIHN5bnRheCBhbGxvd3MgeW91IHRvIHVzZSBhIGZpbGUgYmFzZWQgdGVtcGxhdGUgZnJvbSB3aXRoaW4gdGhlIHNtYXJ0eSB0ZW1wbGF0ZXMgZGlyIDxlbT4odXN1YWxseSB0bXAvdGVtcGxhdGVzKTwvZW0+LgogIDwvbGk+CjwvdWw+CjxwPlRoZXNlIG1ldGhvZHMgY2FuIGJlIHVzZWQgd2l0aCB0aGUgbG9naW50ZW1wbGF0ZSwgbG9nb3V0dGVtcGxhdGUsIGNoYW5nZXNldHRpbmdzdGVtcGxhdGUsIGFuZCBmb3Jnb3Rwd3RlbXBsYXRlIHBhcmFtZXRlcnMuPC9wPgo8cD5Ob3RlOiBUaGVzZSBwYXJhbWV0ZXJzIG1heSBub3QgYmUgcGFzc2VkIHRvIHRoZSB2YXJpb3VzIGZvcm1zIGZyb20gdGhlIHByaW1hcnkge0Zyb250RW5kVXNlcnN9IGNhbGwuICBJbnN0ZWFkLCB5b3Ugc2hvdWxkIHVzZSB0aGUge2NnZV9tb2R1bGVfaGludH0gdGFnIG9uIHRoZSBwYWdlIHdoZXJlIHRoZSB2YXJpb3VzIGZvcm1zIG9yIHZpZXdzIHdpbGwgYmUgZGlzcGxheWVkLiAgIGkuZTogIHtjZ2VfbW9kdWxlX2hpbnQgbW9kdWxlPUZyb250RW5kVXNlcnMgY2hhbmdlc2V0dGluZ3N0ZW1wbGF0ZT0nZ2xvYmFsX2NvbnRlbnQ6bXljaGFuZ2VzZXR0aW5ncyd9LjwvcD4KCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5SZXF1aXJlbWVudHM8L2gzPgo8cD5JbiBvcmRlciB0byBpbXBsZW1lbnQgdGhlIGZvcmdvdHRlbiBwYXNzd29yZCBmdW5jdGlvbmFsaXR5LCB0aGlzIG1vZHVsZSByZXF1aXJlcyB0aGUgQ01TTWFpbGVyIG1vZHVsZSB0byBiZSBwcmV2aW91c2x5IGluc3RhbGxlZCBhbmQgcHJvcGVybHkgY29uZmlndXJlZC48L3A+CjxwPkZvciBlbmNyeXB0ZWQgZmllbGRzIHRoZSBtY3J5cHQgZnVuY3Rpb25hbGl0eSBpcyByZXF1aXJlZC48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuNTMuMTU8L2xpPjxsaT5DR1NpbXBsZVNtYXJ0eSA9Jmd0OyAyLjEuNTwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGhvdG1haWwuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDIuMi4wLjY8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz48dWw+CjxsaT4wLjAuMSAtIE9jdG9iZXIsIDIwMDUgLSBJbml0aWFsIE5SUFQgKE5vdCBSZWFkeSBmb3IgUHJpbWUgVGltZSkgcmVsZWFzZTwvbGk+CjxsaT4wLjEuMCAtIE9jdG9iZXIsIDIwMDUgLSBJbml0aWFsIHJlbGVhc2U8L2xpPgo8bGk+MC4xLjEgLSBPY3RvYmVyLCAyMDA1IC0gRml4ZWQgaXNzdWVzIHdpdGggcHJvcGVydGllczwvbGk+CjxsaT4wLjEuMiAtIE9jdG9iZXIsIDIwMDUgLSBBZGRlZCBmb3Jnb3R0ZW4gcGFzc3dvcmQgZnVuY3Rpb25hbGl0eTwvbGk+CjxsaT4wLjEuMyAtIE5vdmVtYmVyLCAyMDA1CiAgICA8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IGEgcmVkaXJlY3QgcGFnZSBvbiBsb2dpbiwgbG9nb3V0LCBmb3Jnb3QgcGFzc3dvcmQsIGFuZCBjaGFuZ2Ugc2V0dGluZ3MsIGFuZCBhZGRlZCB0aGUgcmV0dXJudG8gYW5kIGZvcm0gcGFyYW1ldGVycyB0byB0aGUgdXNlciBzaWRlIG9mIHRoaW5ncywgYWxzbyBkaWQgYSBjb3VwbGUgbGYgbGl0dGxlIGNsZWFudXBzLiAgVGhpcyB2ZXJzaW9uIHJlcXVpcmVzIHYwLjExIGFuZCBhYm92ZSBmb3IgY2VydGFpbi48L3A+PC9saT4KPGxpPjAuMS40IC0gTm92ZW1iZXIsIDIwMDUgLSBWZXJ5IG1pbm9yIGNoYW5nZSB3aXRoIHJlc3BlY3QgdG8gYSBmb3Jnb3R0ZW4gYW5kIG5vIGxvbmdlciBuZWVkZWQgZnVuY3Rpb24gY2FsbDwvbGk+CjxsaT4wLjEuNSAtIE5vdmVtYmVyLCAyMDA1CiAgICA8cD5Bbm90aGVyIHZlcnkgbWlub3IgY2hhbmdlLCBhZGRlZCBzb21lIHRleHQgdG8gdGhlIFBvc3RJbnN0YWxsIG1lc3NhZ2UuPC9wPjwvbGk+CjxsaT4wLjEuNiAtIEphbnVhcnksIDIwMDYKICAgIDxwPkNoYW5nZXMgdG8gdGhlIHBlcm1pc3Npb24gbW9kZWwsIGFuZCBtaW5vciBidWcgZml4ZXMgdG8gdGhlIHByZWZlcmVuY2VzLiAgQWxzbyBzb21lIHBocDUgZml4ZXMgYnV0IEkgYW0gc3VyZSB0aGF0IHRoZXJlIGFyZSBtb3JlIG91dCB0aGVyZS48L3A+PC9saT4KPGxpPjAuMS43IC0gSmFudWFyeSwgMjAwNgogICAgPHA+TWFueSB0aGFua3MgdG8gPGI+a2F0b248L2I+IGZvciBhZGRpbmcgdGhlIHRleHRhcmVhIGFuZCBkcm9wZG93biBwcm9wZXJ0eSB0eXBlcy48L3A+CiAgICA8cD5GaXhlcyB0byB0aGUgcHJvcGVydHkgYWRkaW5nIHRvIGZpeCBwcm9ibGVtcyB3aXRoIHNwYWNlcyBpbiBwcm9wZXJ0eSBuYW1lcyAod2Ugbm8gbG9uZ2VyIGxldCB0aGF0IGhhcHBlbikuPC9wPgo8L2xpPgo8bGk+PHA+MS4wLjAgLSBGZWJydWFyeSwgMjAwNjxwPgogICAgPHA+QWRkZWQgZmlsdGVyaW5nIGFuZCByb3cgbGltaXRpbmcgdG8gdGhlIGFkbWluIHBhbmVsLiBUaGlzIHdpbGwgaGF2ZSBiaWcgYmVuZWZpdHMgdG8gdGhvc2UgdGhhdCBhcmUgdXNpbmcgdGhpcyBtb2R1bGUgZm9yIGhpZ2ggdHJhZmljLCBhbmQgaGlnaCB1c2VyIHNpdGVzLjwvcD4KICAgIDxwPkFkZGVkIHNvcnRpbmcgdG8gdGhlIGFkbWluIHBhbmVsPC9wPgogICAgPHA+QWRkZWQgbWF4IGxlbmd0aCBhYmlsaXR5IHRvIHRleHQgYW5kIGVtYWlsIGZpZWxkczwvcD4KICAgIDxwPkZpeGVkIGEgc21hbGwgcHJvYmxlbSB3aXRoIHRoZSBkZWZhdWx0IGdyb3VwIG5vdCBiZWluZyBjaGVja2VkIHdoZW4gYWRkaW5nIGEgdXNlcjwvcD4KICAgIDxwPlNhdmUgZmlsdGVyIHNldHRpbmdzIGluIHByZWZlcmVuY2VzLCBhbmQgdGhlIGFjdGl2ZSB0YWIgdG9vLjwvcD4KICAgIDxwPkRlbGV0ZSB1c2VyIHByb3BlcnRpZXMgd2hlbiBhIHByb3BlcnR5IGlzIGRlbGV0ZWQgPGVtPk5vdGU8L2VtPiwgbm90IHdoZW4gaXQgaXMgZGlzYWJsZWQgaW4gdGhlIGVkaXQgZ3JvdXAgZGlhbG9nPC9wPgogICAgPHA+QWRkIGNvbmZpcm1hdGlvbiBtZXNzYWdlIGluIGVkaXQgZ3JvdXBzLjwvcD4KICAgIDxwPkFkZGVkIGEgY291cGxlIG1vcmUgY29uZmlybWF0aW9uIG1lc3NhZ2VzLjwvcD4KICAgIDxwPkFkZGVkIENTViBFeHBvcnQgb3B0aW9uPC9wPgogICAgPHA+VG9kbyAtIEFkZCBwcmVmZXJlbmNlcyBmb3IgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGZpZWxkbGVuZ3RoPC9wPgo8L2xpPgo8bGk+MS4wLjEgLSBNYXJjaCwgMjAwNgogICAgPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gY2hlY2sgZm9yIGR1cGxpY2F0ZSBlbWFpbCBhZGRyZXNzZXM8L3A+CiAgICA8cD5GaXggcHJvYmxlbSB3aGVyZSBleHBpcnkgZGF0ZSB3YXMgYmVpbmcgbW9kaWZpZWQgd2hlbiBhZG1pbiBtb2RpZmllZCB1c2VyIHNldHRpbmdzPC9wPgogICAgPHA+QWRkIGEgY29uZmlybWF0aW9uIG1lc3NhZ2UgdG8gdGhlIHByZWZlcmVuY2VzIHN1Ym1pdCBidXR0b248L3A+CiAgICA8cD5GaXhlZCBhIG1pbm9yIGJ1ZyB3aGVuIGNvdXRpbmcgdGhlIG51bWJlciBvZiB1c2VycyBpbiBhIGdyb3VwPC9wPgogICAgPHA+Rml4ZXMgdG8gdGhlIHNpemUgb2YgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGZpZWxkcywgYW5kIG1heGxlbmd0aDwvcD4KICAgIDxwPkFkZGVkIGFkdmFuY2VkIGZpbHRlcmluZyBvbiBwcm9wZXJ0aWVzPC9wPgogICAgPHA+Q2hhbmdlcyB0byBsYWJlbGluZyBpbiBhZGQgb3IgZWRpdCB1c2VyPC9wPgogICAgPHA+Rml4ZXMgdG8gcHJvYmxlbXMgd2l0aCBpbmxpbmUgYW5kIG5vbiBpbmxpbmUgZm9ybXMsIHRoZSBwYXNzd29yZCBpcyBuZXZlciBzZW50IG9uIHRoZSBnZXQgbGluZTwvcD4KICAgIDxwPkNoYW5nZWQgdG8gcmVxdWlyZSBDTVMgMC4xMi1iZXRhMiBhdCBhIG1pbmltdW0gKGZvciBzYWZldHkgcHVycG9zZXMpPC9wPgo8L2xpPgo8bGk+MS4wLjIgLSBNYXJjaCwgMjAwNgogICAgPHA+TW9yZSBmaWVsZCBsZW5ndGggZml4ZXM8L3A+CjwvbGk+CjxsaT4xLjAuMyAtIE1hcmNoLCAyMDA2CiAgICA8cD5FeHBvcnQgdG8gc21hcnR5IGFsbCBvZiB0aGUgdXNlciBwcm9wZXJ0aWVzIHdoZW4gdGhleSBhcmUgbG9nZ2VkIGluPC9wPgo8L2xpPgo8bGk+MS4wLjQgLSBNYXksIDIwMDYKICAgIDxwPkZpeGVzIHRvIHRoZSBleHBvcnQgY29kZTwvcD4KICAgIDxwPkNvZGUgY2xlYW51cCAoYWxwaGFiZXRpemUgZnVuY3Rpb25zKTwvcD4KICAgIDxwPk1pbm9yIGZpeGVzIGFuZCBlbmhhbmNlbWVudHMgKHJlY29tbWVuZGVkIGJ5IG5pbHM3MykgZm9yIGRlYWxpbmcgd2l0aCB0aGUgY2hhbmdlIHBhc3N3b3JkIHN0dWZmLjwvcD4KICAgIDxwPlJlbW92ZWQgdGhlIHJlcXVpcmVtZW50IGZvciBDTVMgMC4xMiwgYW5kIHB1dCBpdCBiYWNrIHRvIDAuMTEuMjwvcD4KICAgIDxwPkFkZGVkIHRoZSBcJ3NpbGVudFwnIGZvcm08L3A+CiAgICA8cD5DbGVhbmVkIHVwIGRhdGFiYXNlIGFjY2VzcyBzdHVmZiBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyAoaG9wZWZ1bGx5KTwvcD4KICAgIDxwPkFkZGVkIGNvcHlyaWdodCBpbmZvPC9wPgogICAgPHA+QWRkZWQgbWFjcm9zIGZvciByZWRpcmVjdG8gdG8gYSB1c2VyIHNwZWNpZmljIHBhZ2Ugb24gbG9naW4gb3IgbG9nb3V0PC9wPgogICAgPHA+VHdlYWtzIHRvIHRoZSBhZG1pbiBwcmVmZXJlbmNlcyB0YWI8L3A+CjwvbGk+CjxsaT4xLjAuNSAtIE1heSwgMjAwNgogICAgPHA+Rml4ZWQgYSBwcm9ibGVtIHdpdGggZXhwaXJ5IGRhdGVzPC9wPgogICAgPHA+U3RhcnQgc3BsaXR0aW5nIHRoZSBjb2RlIHVwIGludG8gc2V2ZXJhbCBmaWxlczwvcD4KPGxpPjEuMC42IC0gTWF5LCAyMDA2CiAgICA8cD5GaXhlZCBhIHByb2JsZW0gd2l0aCBlZGl0aW5nIGRyb3Bkb3duczwvcD4KPC9saT4KPGxpPjEuMS4wIC0gTWF5LCAyMDA2CiAgICA8cD5FdmVudHM8L3A+CiAgICA8cD5PcHRpb25hbGx5IGRpc2FsbG93IHJlcGVhdGVkIGxvZ2luczwvcD4KICAgIDxwPkV4cG9ydCB0aGUgdXNlciBpZCB0byBzbWFydHk8L3A+CiAgICA8cD5BZGRlZCBvcHRpb25hbGx5IFx7XCRncm91cFx9IGZvciB0aGUgcGFnZXMgdG8ganVtcCB0byBvbiBsb2dpbjwvcD4KPC9saT4KPGxpPjEuMS4xIC0gU2VwdCwgMjAwNgogICAgPHA+Rml4ZWQgYSBidWcgd2hlbiBhIHVzZXIgd2FzIGVkaXRpbmcgaGlzIHNldHRpbmdzIHdpdGggXCdhbGxvdyBkdXBsaWNhdGUgZW1haWxzXCcgd2FzIG9mZjwvcD4KICAgIDxwPkNoYW5nZWQgdGhlIGRyb3Bkb3duIHRhYmxlIHRvIDI1NSBjaGFyYWN0ZXJzPC9wPgogICAgPHA+TWlub3IgY2xlYW51cHM8L3A+CjwvbGk+CjxsaT4xLjEuMiAtIERlYywgMjAwNgogICAgPHA+Rml4ZXMgKGhvcGVmdWx5KSB0byB0aGUgYWRvZGIvYWRvZGItbGl0ZSBEQVRFVElNRSBpc3N1ZTwvcD4KICAgIDxwPkFkZCBjYXB0Y2hhIHN1cHBvcnQgdG8gdGhlIGxvZ2luIHNjcmVlbiAob3B0aW9uYWwpLCB0aGFua3MgZGl0dG1hbjwvcD4KICAgIDxwPkZpeGVzIHRvIGNhbmNlbCBoYW5kbGluZyBvbiB0aGUgbG9zdCBwYXNzd29yZCBhbmQgY2hhbmdlIHNldHRpbmdzIHNjcmVlbnM8L3A+CiAgICA8cD5GaXhlcyB0byB1c2VyIGV4cGlyeSAobW9yZSBEQlRpbWVzdGFtcCBpc3N1ZXMpLCB0aGFua3MgYWdhaW4gZGl0dG1hbjwvcD4KICAgIDxwPk9wdGlvbiB0byBhbGxvdyBGRVVzZXJzIHRvIGhhdmUgaXRzIG93biBzZXQgb2YgcGVybWlzc2lvbnMgYXNzaWRlIGZyb20gdGhlIGFkbWluIHBlcm1pc3Npb25zLiAgVGhhbmtzIF9TakdfPC9wPgogICAgPHA+T3B0aW9uIHRvIGFsbG93IGR1cGxpY2F0ZSBwYXNzd29yZCByZW1pbmRlciByZXF1ZXN0cyBhbmQgdG8gc3BlY2lmeSB0ZXh0IG9uIHRoZSBzaWduaW4gYnV0dG9uLiAgVGhhbmtzIF9TakdfPC9wPgogICAgPHA+R2VuZXJhbCBjbGVhbnVwIG9mIGZ1bmN0aW9ucyB0aGF0IHdlcmUgbm90IGJlaW5nIHVzZWQgYW5kIG5vdGljZXMvd2FybmluZ3M8L3A+CiAgICA8cD5BZGRlZCB0aGUgb25seV9ncm91cHMgcGFyYW0gZm9yIGxvZ2luIGZvcm1zLiAgVGhhbmtzIHdpc2h5PC9wPgogICAgPHA+Rml4ZXMgdG8gdGhlIGxlbmd0aCBvZiB0aGUgZW1haWwgZmllbGQgaW4gdGhlIGNoYW5nZSBwYXNzd29yZCBmb3JtPC9wPgogICAgPHA+Rml4ZXMgdG8gdGhlIGVtYWlsIHZhbGlkYXRpb24gc3R1ZmY8L3A+CjwvbGk+CiAgICA8bGk+MS4yLjAgLSBBcHJpbCwgMjAwNwogICAgPHA+ZWxpamFobG9mZ3JlbiAtIEZpeGVzIHRvIGNhcHRjaGEgc3VwcG9ydCwgYW5kIHNvbWUgdGVtcGxhdGUgY2xlYW51cHMuPC9wPgogICAgPHA+QWRkIHN1cHBvcnQgZm9yIG11bHRpIHNlbGVjdCBsaXN0czwvcD4KICAgIDxwPlRlbXBsYXRlIGNsZWFudXBzIChtb3JlIG9mIGVtKTwvcD4KICAgIDxwPkFkZCBzdXBwb3J0IGZvciB2YWx1ZT1rZXkgc3R1ZmYgaW4gdGhlIGRyb3Bkb3duIGFuZCBtdWx0aSBzZWxlY3QgbGlzdHMuPC9wPgogICAgPHA+YmV0dGVyIGNoZWNraW5nIG9mIHRoZSAiYXQgbGVhc3Qgb25lIGdyb3VwIHJlcXVpcmVkIiBzdHVmZjwvcD4KICAgIDxwPk91dHB1dCBtb3JlIHNtYXJ0eSB2YXJpYWJsZXMgb24gdGhlIHVzZXIgc2V0dGluZ3MgcGFnZSwgdG8gYWxsb3cgcGVvcGxlIHRvIG1vZGlmeSB0aGUgdGVtcGxhdGUgdG8gc29tZXRoaW5nIHRoYXQgaXMgbW9yZSBhY2Nlc3NpYmlsZTwvcD4KICAgIDxwPlNwbGl0IGludG8gbW9yZSBmaWxlcyBmb3IgcGVyZm9ybWFuY2U8L3A+CiAgICA8cD5Zb3UgY2FuIG5vdyBub3QgZGVsZXRlIGEgZ3JvdXAgdGhhdCBzdGlsbCBoYXMgdXNlcnM8L3A+CiAgICA8cD5Ob3cgaGFuZGxlIHJlZ2V4IHByb2JsZW1zIGJldHRlciBpbiB0aGUgYWRtaW4gc2VjdGlvbiB1c2VycyB0YWI8L3A+CiAgICA8cD5FbWFpbCBmaWVsZHMsIHdoZW4gc3BlY2lmaWVkIGFzIG9wdGlvbmFsLCBtYWtlIGVtIGFjdHVhbGx5IG9wdGlvbmFsPC9wPgogICAgPHA+QWRkIHN1cHBvcnQgZm9yIGltYWdlIHVwbG9hZHMsIHRoaXMgaXMgYSBiaWcgZmVhdHVyZS4gIEltYWdlcyBhcmUgc2NhbGVkIHRvIGEgbWF4aW11bSBzaXplIGluIG9uZSBkaW1lbnNpb24sIGFuZCBzdG9yZWQgYXMgZmlsZXMgaW4gYSBjb25maWd1cmFibGUgZGlyZWN0b3J5IHVuZGVyIHRoZSB1cGxvYWRzX3BhdGguPC9wPgogICAgPHA+Q2FwdGNoYSBtb2RlIGlzIG5vdyBvbiBieSBkZWZhdWx0LCB1bmxlc3MgeW91IHVzZSB0aGUgbm9jYXB0Y2hhIHBhcmFtZXRlciBpbiB0aGUgdGFnLjwvcD4KICAgIDxwPkZpeGVzIHRvIENTViBleHBvcnQuLi4gaXQgd2FzIGFzc3VtaW5nIHRoZSBkYl9wcmVmaXggaXMgY21zXzwvcD4KICAgIDxwPkltcG9ydCBVc2VycyBmcm9tIENTVjwvcD4KICAgIDxwPkZpeGVzIHRvIHRoZSBpbnN0YWxsIGFuZCB1bmluc3RhbGwgbWV0aG9kcywgYW5kIG5vdyB0aGUgYWxsb3dfcmVwZWF0ZWRfbG9naW5zIHByZWZlcmVuY2Ugc2hvdWxkIHdvcms8L3A+CiAgICA8cD5BZGRzIHByb3BlciB1c2VyIGhpc3RvcnkgdHJhY2tpbmcuICBOb3cgdHJhY2sgZmFpbGVkIGxvZ2lucywgbG9naW5zLCBleHBpcmllcywgYW5kIGxvZ291dHMsIG9uIGEgcGVyIHVzZXIgYmFzaXMuPC9wPgogICAgPHA+Rml4ZXMgdG8gdGhlIGNhbmNlbCBidXR0b24gb2YgdGhlIHVzZXIgc2V0dGluZ3MgcGFnZSwgaWYgdGhlIHVzZXIgc2V0dGluZ3MgZm9ybSBpcyBvbiBhIGRpZmZlcmVudCBwYWdlLjwvcD4KICAgIDxwPkZpeGVzIHRvIHRoZSBjYW5jZWwgYnV0dG9uIG9mIHRoZSBmb3Jnb3QgcGFzc3dvcmQgcGFnZSwgaWYgdGhlIGZvcmdvdCBwYXNzd29yZCBmb3JtIGlzIG9uIGEgZGlmZmVyZW50IHBhZ2UuPC9wPgogICAgPHA+TWlub3IgZml4ZXMgdG8gYmVoYXZpb3VyIG9hZiB0aGUgcHJlZmVyZW5jZXMgcGFuZWxzLjwvcD4KPC9saT4KPGxpPjEuMi4xIC0gSnVuZSwgMjAwNwoJPHA+QSBjb29raWUgaXMgbm93IHVzZWQgdG8ga2VlcCB0cmFjayBvZiBsb2dpbiBzdGF0ZSBiZXR3ZWVuIHNlc3Npb25zLCBob3dldmVyIHRoZSBjb29raWUgZG9lcyBub3QgbGFzdCBhbnkgbG9uZ2VyIHRoYW4gdGhlIHRpbWVvdXQgc3BlY2lmaWVkIGluIHRoZSB1c2VyIHNldHRpbmdzLjwvcD4KCTxwPkFkZGVkIHRoZSBhYmlsaXR5IGZvciBhbiBhZG1pbmlzdHJhdG9yIHRvIGxvZ291dCB1c2VyczwvcD4KCTxwPkFkZGVkIHRoZSBhYmlsaXR5IHRvIGZpbHRlciBieSBsb2dnZWQgaW4gc3RhdHVzPC9wPgoJPHA+QWRkZWQgdGhlIGFiaWxpdHkgZm9yIHJlYWQtb25seSBwcm9wZXJ0aWVzLjwvcD4KCTxwPkFkZGVkIG1vcmUgdmFyaWFibGVzIGluIGVhY2ggb2JqZWN0IGluIHRoZSBjaGFuZ2VzZXR0aW5ncyBmb3JtPC9wPgo8L2xpPgo8bGk+Cgk8cD4xLjIuMiAtIEp1bmUsIDIwMDc8L3A+Cgk8cD50c3cgLSBBZGRlZCBldmVudCBPblVwZGF0ZVVzZXIgd2hpY2ggZ2V0cyBjYWxsZWQgd2hlbiB1c2VyIChvciBhZG1pbikgdXBkYXRlcyB1c2VyIGluZm88L3A+Cgo8L2xpPgo8bGk+MS4zIC0gT2N0b2JlciwgMjAwNwo8cD5BZGRlZCBzdXBwb3J0IGZvciAncmVtZW1iZXIgbWUnIHNvIHRoYXQgbG9naW4gaW5mb3JtYXRpb24gaXMgc3RvcmVkIGluIGEgY29va2llLiAgQW5kIHN1cHBvcnQgZm9yIGEgZm9ybSB0byBhbGxvdyB0aGF0IGNvb2tpZSB0byBiZSByZXNldC48L3A+CjxwPk5vIGxvbmdlciBzdXBwb3J0IG5vbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBpbiBwcm9wZXJ0eSBuYW1lcy48L3A+CjxwPk51bWVyb3VzIHNtYWxsIGJ1Z2ZpeGVzLjwvcD4KPHA+UmVxdWlyZSBDTVMgMS4yIG9yIGdyZWF0ZXIuPC9wPgo8L2xpPgo8bGk+MS4zLjEgLSBOb3ZlbWJlciwgMjAwNwo8cD5GaXhlcyBwcm9ibGVtcyB3aXRoIHBhcmFtZXRlcnMgbm90IGJlaW5nIGNsZWFuZWQgaW4gdGhlIGNoYW5nZSBzZXR0aW5ncyBkaWFsb2cgb24gdGhlIGZyb250IGVuZC48L3A+CjxwPkZpeGVzIGFuIHVwZHJhZGUgaXNzdWUgaW4gdGhlIGRhdGFiYXNlIHNjaGVtYTwvcD4KPHA+Rml4ZXMgYW4gaXNzdWUgaW4gYSBHZXRTbWFydHkoKSBjYWxsIHRoYXQgd2FzIGFwcGFyZW50bHkgY2F1c2luZyBwZW9wbGUgZGlmZmljdWx0aWVzIHdpdGggdGhlIGxvZ2luIGZvcm0uPC9wPgo8cD5BZGQgYSBwcmVmZXJlbmNlIHRoYXQgYWxsb3dzIGFkbWlucyB0byBzcGVjaWZ5IGEgcGFnZSB0byByZWRpcmVjdCB0byBhZnRlciB0aGUgZm9yZ290IHBhc3N3b3JkIHZhbGlkYXRpb24gZm9ybSBpcyBjb21wbGV0ZS48L3A+CjxwPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGhpZGRlbiBwcm9wZXJ0aWVzIGJlaW5nIGxvc3QgYWZ0ZXIgYSB1c2VyIGNoYW5nZWQgdGhlaXIgc2V0dGluZ3MuPC9wPgo8cD5UaGUgRm9yZ290IFBhc3N3b3JkIGFuZCBMb3N0IFVzZXJuYW1lIGZvcm1zIGFyZSBub3cgaW5saW5lPC9wPgo8cD5GaXhlcyB0byBlcnJvcnMgaW4gZW5jcnlwdGlvbiB3aXRoIHRoZSBzZXNzaW9uaW5nPC9wPgo8cD5GaXhlcyB0byB0aGUgbG9zdCB1c2VybmFtZSBmdW5jdGlvbmFsaXR5LjwvcD4KPC9saT4KPGxpPjEuMy4zIC0gRGVjZW1iZXIsIDIwMDcKPHA+Tm93IG9wdGlvbmFsbHkgYWxsb3cgc29tZSBmcm9udGVuZCBmb3JtcyB0byBiZSBpbmxpbmVkLjwvcD4KPHA+QWRkIGVtYWlsIG5vdGlmaWNhdGlvbnMgd2hlbiB1c2VyIGNoYW5nZXMgdGhlaXIgc2V0dGluZ3MsIG9yIG9uIGFueSBvdGhlciBldmVudC48L3A+CjxwPkNoYW5nZSB0aGUgbWF4aW11bSBkYXRhIHNpemUgZm9yIHByb3BlcnRpZXMgZnJvbSAyNTUgY2hhcmFjdGVycyB0byBsb25ndGV4dDwvcD4KPHA+Rml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIGxvZ291dCBsaW5rcyBkaWQgbm90IG9iZXkgdGhlIHByZWZlcmVuY2Ugd2hpY2ggZGljdGF0ZWQgd2hpY2ggcGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBsb2dvdXQuPC9wPgo8L2xJPgo8bGk+MS40IC0gRmVicnVhcnksIDIwMDgKPHA+QWRkcyB0aGUgdmlld3VzZXIgYWN0aW9uIHRvIHZpZXcgdGhlIHByb3BlcnRpZXMgZm9yIGEgc3BlY2lmaWMgdXNlcjwvcD4KPGxpPjEuNC4xIC0gRmVicnVhcnksIDIwMDgKPHA+QWRkcyB0aGUgR2V0VXNlckhpc3RvcnkgbWV0aG9kIHRvIHRoZSBhcGk8L3A+CjxwPkFkZHMgYSBwcmVmZXJlbmNlIGZvciBwYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGNoYW5nZSBzZXR0aW5nczwvcD4KPHA+VXNlIHRoZSBhZnRlcl92ZXJpZnljb2RlIHByZWZlcmVuY2U8L3A+CjwvbGk+CjxsaT4xLjQuMiAtIE1hcmNoLCAyMDA4CjxwPkZpeGVzIHByb2JsZW1zIHdpdGggY2FuY2VsIGJ1dHRvbnM8L3A+CjxwPk1ha2VzIGl0IGVhc2llciBmb3IgdGV4dCBvbiB2YXJpb3VzIGJ1dHRvbnMgYW5kIGxpbmtzIHRvIGJlIGNoYW5nZWQ8L3A+CjxwPlVwZGF0ZSBkZXBlbmRlbmNpZXMsIGV0Yy48L3A+CjxwPlVwZGF0ZSBhbGwgZmlsZXMgYW5kIHRoZSBoZWxwIHRvIHJlZmxlY3QgdGhlIG5ldyBsaWNlbnNlPC9wPgo8cD5BZGp1c3RtZW50cyBzbyB0aGUgc2lnbmluIGFuZCBzaWdub3V0IHRleHQgY2FuIGJlIGNoYW5nZWQgZWFzaWx5PC9wPgo8cD5DbGVhbnVwcyBhbmQgYnVnIGZpeGVzPC9wPgo8L2xpPgo8bGk+MS40LjMgLSBKdW5lLCAyMDA4CjxwPk5vdyB1c2Ugc2Vzc2lvbiB2YXJpYWJsZXMgdG8ga2VlcCB0cmFjayBvZiB1c2VyIHZhcmlhYmxlcyBiZXR3ZWVuIHN0ZXBzIG9mIHRoZSBmb3JtcyBmb3IgYWRkaW5nIGFuZCBlZGl0aW5nIHVzZXJzLjwvcD4KPHA+R2V0IHJpZCBvZiB0aGUgdGltZSBmaWVsZHMgZm9yIHRoZSBleHBpcnkgZGF0ZSwgYW5kIGp1c3QgZXhwaXJlIGF0IDIzOjU5OjU5IG9uIHRoYXQgc3BlY2lmaWVkIGRheTwvcD4KPHA+QWRkZWQgdGhlIGFiaWxpdHkgZm9yIGV4dGVybmFsIG1vZHVsZXMgdG8gaW50ZXJhY3QgKHNvbWV3aGF0KSB3aXRoIGZldSwgYW5kIHNwZWNpZnkgYSByZXR1cm4gbG9jYXRpb248L3A+CjxwPkFkZGVkIHRoZSBHZXRGdWxsVXNlcnNJbkdyb3VwKCkgbWV0aG9kIGludG8gdGhlIGFwaTwvcD4KPC9saT4KPGxpPjEuNC40IC0gQXVndXN0LCAyMDA4CjxwPlRoYW5rcyB0byBfU2pHXyB3ZSBub3cgc3VwcG9ydCB1c2luZyBlbWFpbCBhZGRyZXNzZXMgYXMgdXNlcm5hbWUgKHRoZXJlIGlzIGEgcHJlZmVyZW5jZSBpbiB0aGUgYWRtaW4pLjwvcD4KPHA+QWRkcyBhIEdldEVtYWlsIG1ldGhvZCB0byB0aGUgYXBpIHRvIHJldHVybiB0aGUgZmlyc3QgZW1haWwgYWRkcmVzcyBmb3VuZCBmb3IgdGhlIHNwZWNpZmllZCB1c2VyLjwvcD4KPC9saT4KPGxpPjEuNSAtIEF1Z3VzdCwgMjAwOAo8cD5BZGQgdGhlIGZldV9zbWFydHkgY2xhc3Mgd2l0aCBhIGZldyBmdW5jdGlvbnMgaW4gaXQsIGZvciBpdGVyYXRpbmcgdGhyb3VnaCB1c2VycyBpbiBzbWFydHkuPC9wPgo8L2xpPgo8bGk+MS41LjEgLSBBdWd1c3QsIDIwMDgKPHA+S2VlcCB0aGUgbG9naW5pZCBpbiBhIHZhcmlhYmxlLCB0byBjdXQgZG93biBvbiB0aGUgbnVtYmVyIG9mIHJlcGVhdCBxdWVyaWVzLjwvcD4KPHA+Rml4ZXMgdG8gcHJvcGVydGllcyB3aXRoIHNwYWNlcyBpbiB0aGUgdmFsdWVzLjwvcD4KPC9saT4KPGxpPjEuNS4yIC0gQXVndXN0LCAyMDA4CjxwPlNwbGl0IG91dCBhIGZldyBtb3JlIGZpbGVzIHRvIHNocmluayBtZW1vcnkgZm9vdHByaW50IGEgYml0IG1vcmU8L3A+CjxwPkZpeGVzIHNvbWUgdGFiIG5hbWUgc3R1ZmY8L3A+CjxwPlNtYWxsIHZhbGlkYXRpb24gaXNzdWUgd2l0aCBkZWZhdWx0IHRlbXBsYXRlPC9wPgo8cD5NaW5vciBlbmhhbmNlbWV0bnMgdG8gdGhlIHZpZXd1c2VyIHRlbXBsYXRlLjwvcD4KPHA+R2V0IHJpZCBvZiBjb21tZW50ZWQgb3V0IGNvZGUgdG8gc2hyaW5rIHRoZSBmaWxlIGRvd24gYSBiaXQuPC9wPgo8cD5GaXggZm9yZ290IHBhc3N3b3JkIGZvcm0gdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHVzZXJuYW1lID09IGVtYWlsIGFkZHJlc3MuPC9wPgo8cD5BZGQgcHJldHR5IHVybCBzdXBwb3J0IGludG8gdGhlIGxvc3QgcGFzc3dvcmQgZW1haWwuPC9wPgo8L2xpPgo8bGk+MS41LjMgLSBTZXB0ZW1iZXIsIDIwMDgKPHA+TnVtZXJvdXMgc21hbGwsIGJ1dCBhbm5veWluZyBidWcgZml4ZXM8L3A+CjxsaT4xLjUuNCAtIERlY2VtYmVyLCAyMDA4CjxwPk1vcmUgYW5kIG1vcmUgYnVnIGZpeGVzLjwvcD4KPHA+VGhlIHN0YXJ0cyBvZiBwcmV0dHkgdXJsIHN1cHBvcnQgKHRoYW5rIHlvdSBOdW5vKTwvcD4KPC9saT4KPGxpPjEuNiAtIEphbnVzYXJ5LCAyMDA5CiAgPHVsPgogIDxsaT5Db21wbGV0ZSByZXdyaXRlIG9mIHByb3BlcnR5IGNyZWF0aW9uIGFuZCBlZGl0aW5nIHN0dWZmLjwvbGk+CiAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBvcHRpb25hbGx5IGVuYWJsZSBhIHd5c2l3eWcgZm9yIHRleHQgYXJlYSBwcm9wZXJ0aWVzLjwvbGk+CiAgPGxpPk5vIGxvbmdlciBhbGxvdyBhdXRvIGluc3RhbGwgb3IgdXBncmFkZS48L2xpPgogIDxsaT5Db21wbGV0ZSByZXdyaXRlIG9mIGdyb3VwIGNyZWF0aW9uIGFuZCBlZGl0aW5nIHN0dWZmLi4uLiByZS1vcmRlcmluZyBpcyBzaW1wbGVyIG5vdy48L2xpPgogIDxsaT5SZS1vcmdhbml6ZSB0aGUgcHJlZmVyZW5jZXMgdGFiLCBhbmQgdGhlIHVzZXJzIGZpbHRlcmluZyBzdHVmZiB0byBiZSBhIGJpdCBtb3JlIHByZXNlbnRhYmxlLjwvbGk+CiAgPGxpPkFkZCBuZXcgcHJlZmVyZW5jZSBmb3IgdGhlIGRlZmF1bHQgZXhwaXJ5IGFnZSBmb3IgdXNlcnMuPC9saT4KICA8bGk+QWRkIG5ldyBwcmVmZXJlbmNlIGluZGljYXRpbmcgd2V0aGVyIHdlIHNob3VsZCBhdHRlbXB0IHRvIGNyZWF0ZSByYW5kb20gdXNlcm5hbWVzIG9yIG5vdC48L2xpPgogIDxsaT5BZGQgYnVsayB1c2VyIGRlbGV0ZSBjYXBhYmlsaXRpZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjEgLSBKYW51c2FyeSwgMjAwOQogIDx1bD4KICAgIDxsaT5NaW5vciB0ZW1wbGF0ZSBjaGFuZ2VzIHRvIHRoZSBjaGFuZ2Ugc2V0dGluZ3Mgc3R1ZmYuPC9saT4KICAgIDxsaT5GaXggdGV4dCBwcm9wZXJ0eSBsZW5ndGggaXNzdWVzLjwvbGk+CiAgICA8bGk+UmVtb3ZlIHN0dXBpZCBkaWUgYW5kIGRlYnVnIHN0YXRlbWVudHMgZnJvbSB0aGUgcmVtZW1iZXIgbWUgc3R1ZmYuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjIgLSBKYW51c2FyeSwgMjAwOQogIDx1bD4KICAgIDxsaT5CZWdpbiBpbXBsZW1lbnRpbmcgdGhlIHRhYmxlc29ydGVyIHN0dWZmPC9saT4KICAgIDxsaT5GaXggcHJvYmxlbXMgd2l0aCBpbWFnZSBmaWVsZHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjMgLSBGZWJydWFyeSwgMjAwOQogIDx1bD4KICA8bGk+Rml4IGNvb2tpZSBpc3N1ZXMgcGVybWFuZW50bHkuIChJIGhvcGUpLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi40IC0gQXByaWwsIDIwMDkKICA8dWw+CiAgPGxpPkFkZCBmaWVsZCB0eXBlIGFzIGEgbWVtYmVyIG9mIHRoZSBjb250cm9sIG9iamVjdCBpbiB2YXJpb3VzIGZvcm1zLjwvbGk+CiAgPGxpPkFkZGVkIHJhZGlvIGJ1dHRvbnMgZmllbGQgdHlwZSAoX1NqR18pPC9saT4KICA8bGk+TW9yZSBmaXhlcyB0byB1c2VyIGV4cG9ydCBzdHVmZi48L2w+aQogIDxsaT5GaXggZm9yIHJldHVybnRvIHBhcmFtIGluIGxvZ2luIGZvcm08L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjYuNSAtIE1heSwgMjAwOQogIDx1bD4KICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi42IC0gSnVseSwgMjAwOQogIDx1bD4KICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgPGxpPkFkZCBEYXRlIGZpZWxkIHR5cGUuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjcgLSBKdWx5LCAyMDA5CiAgPHVsPgogIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjggLSBKdWx5LCAyMDA5CiAgPHVsPgogIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8bGk+QWRkIG1vcmUgZnVuY3Rpb25hbGl0eSB0byB0aGUgZmV1X3NtYXJ0eSBvYmplY3QuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjguMSAtIEp1bHksIDIwMDkKICA8dWw+CiAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjYuOSAtIEF1Z3VzdCwgMjAwOQogIDx1bD4KICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi4xMCAtIE9jdG9iZXIsIDIwMDkKICA8dWw+CiAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjYuMTEgLSBOb3ZlbWJlciwgMjAwOQogIDx1bD4KICA8bGk+Tm93IGNvbnZlcnQgcHJvcGVydHkgbmFtZXMgdG8gY29udGFpbiBvbmx5IHZhbGlkIGNoYXJzIGhvcGVmdWxseS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjYuMTIgLSBKYW51YXJ5LCAyMDEwCiAgPHVsPgogIDxsaT5NaW5vciBpbXByb3ZlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjEzIC0gRmVicnVhcnksIDIwMTAKICA8dWw+CiAgPGxpPk1vcmUgTWlub3IgaW1wcm92ZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNyAtIEZlYnJ1YXJ5LCAyMDEwCiAgPHVsPgogIDxsaT5BZGRzIHRoZSByZXNldF9zZXNzaW9uIGFjdGlvbi48L2xpPgogIDxsaT5CdWcgZml4ZXM8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjcuMSAtIEZlYnJ1YXJ5LCAyMDEwCiAgPHVsPgogIDxsaT5GaXhlcyBhbmQgZW5oYW5jZW1lbnRzIHRvIHRoZSBqcXVlcnkgcmVzZXQgc2Vzc2lvbiB0ZW1wbGF0ZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjcuMSAtIE1hcmNoLCAyMDEwCiAgPHVsPgogIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS43LjMgLSBNYXJjaCwgMjAxMAogIDx1bD4KICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuOCAtIE1hcmNoLCAyMDEwCiAgPHVsPgogIDxsaT5Ob3cgdGhlIHJlZGlyZWN0X3RvIHBhZ2UgcHJlZmVyZW5jZXMgYXJlIHNtYXJ0eSB0ZW1wbGF0ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS44LjIgLSBBcHJpbCwgMjAxMAogIDx1bD4KICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuOC4zIC0gQXByaWwsIDIwMTAKICA8dWw+CiAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjguNCAtIEFwcmlsLCAyMDEwCiAgPHVsPgogIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS44LjUgLSBNYXksIDIwMTAKICA8dWw+CiAgICA8bGk+QWRkcyB0aGUgcmV0dXJubGFzdCBwYXJhbWV0ZXIgdG8gYWxsb3cgcmV0dXJuaW5nIGJhY2sgdG8gdGhlIHByZXZpb3VzIHVybCBvbiBsb2dpbiBvciBsb2dvdXQuPC9saT4KICAgIDxsaT5GaXhlcyB0aGUgcmVzZXQgdG8gZGVmYXVsdHMgYnV0dG9uIGluIHRoZSBsb3N0IHVzZXJuYW1lIHRlbXBsYXRlKHMpIGZvcm0uPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS45IC0gTWF5LCAyMDEwCiAgPHVsPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSB1bmlxdWUgZmllbGRzLjwvbGk+CiAgICA8bGk+VmFyaW91cyBtaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS45LjEgLSBNYXksIDIwMTAKICA8dWw+CiAgICA8bGk+UmUtYWRkcyBhIGZ1bmN0aW9uIG5lZWRlZCBieSBBdmFpbGFiaWxpdHkuPC9saT4KICAgIDxsaT5NaW5vciBhZGRpdGlvbiB0byB0aGUgdmlldyB1c2VyIHRlbXBsYXRlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuOS4yIC0gTWF5LCAyMDEwCiAgPHVsPgogICAgPGxpPlJlbW92ZSBwcmV0dHkgdXJscyBmb3IgbG9zdCB1c2VybmFtZSwgYW5kIGNoYW5nZSBzZXR0aW5ncyBmb3JtcyBiZWNhdXNlIHRoZXkgd2VyZSBsb3NpbmcgcGFyYW1ldGVycyBsaWtlIHRoZSBsYW5nIHBhcmFtZXRlci48L2xpPgogICAgPGxpPihUZWQpOiBGaXggYWJpbGl0eSB0byB1bmNoZWNrIGNoZWNrYm94ZXMgd2hpbGUgZWRpdGluZyBhIHVzZXIgaW4gdGhlIGFkbWluPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS45LjMgLSBKdW5lLCAyMDEwCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEwIC0gSnVuZSwgMjAxMAogIDx1bD4KICAgIDxsaT5BZGRzIHN1cHBwb3J0IGZvciBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMgKHN0aWxsIHRlc3RpbmcpLjwvbGk+CiAgICA8bGk+Rml4ZXMgYSBtaW5vciBpc3N1ZSB3aXRoIHJldHVybnRvLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTAuMSAtIEp1bHksIDIwMTAKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTAuMiAtIEp1bHksIDIwMTAKICA8dWw+CiAgICA8bGk+QWRkcyB0aGUgR2V0RXhwcmlyeURhdGUgYXBpIG1ldGhvZC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjExIC0gSnVseSwgMjAxMAogIDx1bD4KICAgIDxsaT5BZGRzIG9wdGlvbmFsIGVuY3J5cHRpb24gZm9yIHByb3BlcnR5IGRlZmluaXRpb25zLjwvbGk+CiAgICA8bGk+VmFyaW91cyBtaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5JbXByb3ZlbWVudCB0byB0aGUgQ1NWIGV4cG9ydCBzdHVmZi48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEyIC0gQXVndXN0LCAyMDEwCiAgPHVsPgogICAgPGxpPk5vdyB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIFNlbGZSZWdpc3RyYXRpb24gdG8gaGFuZGxlIHBhaWQgc3Vic2NyaXB0aW9ucy48L2xpPgogICAgPGxpPlRoZSBjb250ZW50X21vZHVsZSB0YWcgbm93IHByb3ZpZGVzIGEgbXVsdGktc2VsZWN0IGxpc3QgKFRlZCk8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEyLjMgLSBTZXB0ZW1iZXIsIDIwMTAKICA8dWw+CiAgICA8bGk+QWRkcyBhbiBvdmVyYWxsIHByZWZlcmVuY2UgZm9yIHBhaWQgcmVnaXN0cmF0aW9uLCB3aGljaCB0cmlnZ2VycyB0aGUgZXZlbnQgaGFuZGxlcnMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi40IC0gT2N0b2JlciwgMjAxMAogIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi40IC0gT2N0b2JlciwgMjAxMAogIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5GaXhlcyBmb3Igc3VwcG9ydCBmb3IgQ01TTVMgMS45PC9saT4KICAgIDxsaT5SZXF1aXJlcyBDR0V4dGVpb25zIDEuMjEgb3IgYmV0dGVyPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi42IC0gTm92ZW1iZXIsIDIwMTAKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuNyAtIERlY2VtYmVyLCAyMDEwCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEyLjggLSBEZWNlbWJlciwgMjAxMAogIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5Tb21lIG1pbm9yIGJ1ZyBmaXhlcyByZWxhdGVkIHRvIEVfU1RSSUNUIGFuZCBFX0RFUFJFQ0FURUQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi4xMCAtIEphbnVhcnksIDIwMTEKICA8dWw+CiAgICA8bGk+Rml4ZXMgcHJvYmxlbSB3aXRoIGFkZC9lZGl0IGdyb3VwIHdpdGggbG90cyBvZiBwcm9wZXJ0aWVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuMTIgLSBGZWJydWFyeSwgMjAxMQogIDx1bD4KICAgIDxsaT5NaW5vciBBUEkgRml4ZXMuPC9saT4KICAgIDxsaT5BZGRzIGEgbWV0aG9kIHRvIGNsZWFyIHRoZSBwcm9wZXJ0eSBjYWNoZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEyLjEzIC0gTWFyY2gsIDIwMTEKICA8dWw+CiAgICA8bGk+Rml4ZXMgdG8gZXhwb3J0LjwvbGk+CiAgICA8bGk+Rml4ZXMgdG8gdXNlciBlZGl0aW5nLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuMTMgLSBNYXJjaCwgMjAxMQogIDx1bD4KICAgIDxsaT5GaXhlcyBwcm9ibGVtIHdpdGggaW1hZ2UgZmllbGRzIHdoZW4gZWRpdGluZyBhIHVzZXIuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi4xNSAtIE1heSwgMjAxMQogIDx1bD4KICAgIDxsaT5OdW1lcm91cyBzbWFsbCBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi4xNiAtIE1heSwgMjAxMQogIDx1bD4KICAgIDxsaT5CdWcgZml4ZXMgd3J0IGxvc3QgcGFzc3dvcmQgZnVuY3Rpb25hbGl0eS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEzIC0gSnVuZSwgMjAxMQogIDx1bD4KICAgIDxsaT5GaXhlcyBhIG1pbm9yIGJ1ZyBpbiB0aGUgTG9nb3V0KCkgbWV0aG9kLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBmb3JjZSBsb2dvdXQgdXNlcnMgYXQgc3BlY2lmaWVkIHRpbWVzLjwvbGk+CiAgICA8bGk+TW9kaWZpZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSAoZGVmYXVsdCkgY2hhbmdlIHNldHRpbmdzIGZvcm0gdG8gZGlzcGxheSB0aGUgbG9nb3V0IGZvcm0gd2hlbiBjb21wbGV0ZWQuPC9saT4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSB0byBzcGVjaWZ5IGEgKG1pbmltdW0pIHRpbWUgaW50ZXJ2YWwgYmV0d2VlbiBleHBpcnkgYWN0aW9ucy4gIFRoaXMgc2hvdWxkIHNhdmUgYSBmZXcgcXVlcmllcyBmb3IgbW9zdCByZXF1ZXN0cy48L2xpPgogICAgPGxpPkFkZHMgYSBwcmVmZXJlbmNlIHRvIHNwZWNpZnkgYSB0aW1lIGludGVydmFsIGJldHdlZW4gdXNlciBjaGVja2lucyB0b3VjaGluZyB0aGUgZGF0YWJhc2UuICBUaGlzIHNob3VsZCBzYXZlIGEgZmV3IG1vcmUgZGIgcXVlcmllcyBmb3IgbW9zdCByZXF1ZXN0cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjE0IC0gSnVseSwgMjAxMQogIDx1bD4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGFkanVzdCB0aGUgcGFzc3dvcmQgc2FsdCAob25seSBpZiB0aGVyZSBhcmUgbm8gdXNlcnMpLjwvbGk+CiAgICA8bGk+SW1wcm92ZW1ldG5zIHRvIHRoZSBDU1YgZXhwb3J0L2ltcG9ydCByb3V0aW5lcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjE1IC0gSnVseSwgMjAxMQogIDx1bD4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGFkZCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gdGhlIHZpZXcuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNS4xIC0gQXVndXN0IDIwMTEKIDx1bD4KICAgPGxpPk1pbm9yIGJ1ZyBmaXguPC9saT4KIDwvdWw+CjxsaT4xLjE1LjQgLSBPY3RvYmVyIDIwMTEKICA8dWw+CiAgICA8bGk+T3B0aW1pemF0aW9ucy48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPGxpPk1pbm9yIEFQSSBlbmhhbmNlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNS41IC0gT2N0b2JlciwgMjAxMQogIDx1bD4KICAgIDxsaT5CdWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNiAtIE9jdG9iZXIsIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyBhIG5ldyAmcXVvdDtQcm90ZWN0ZWQgQ29udGVudCZxdW90OyBjb250ZW50IHR5cGUuICBBbG9uZyB3aXRoIGEgZmV3IHJlbGF0ZWQgcHJlZmVyZW5jZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNi4xIC0gT2N0b2JlciwgMjAxMQogIDx1bD4KICAgIDxsaT5GaXhlcyBhIG1pbm9yIGJ1ZyB3cnQgY2FjaGluZyBvZiB1c2VyIHByb3BlcnRpZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNi4yIC0gT2N0b2JlciwgMjAxMQogIDx1bD4KICAgIDxsaT5GaXhlcyBhbiB1cGdyYWRlIGlzc3VlLjwvbGk+CiAgICA8bGk+Rml4ZXMgYSByZWRpcmVjdCBjYWxsLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTYuNCAtIE9jdG9iZXIsIDIwMTEKICA8dWw+CiAgICA8bGk+Rml4ZXMgZm9yIGFkZGl0aW9uYWwgY29udGVudCBibG9ja3MuPC9saT4KICAgIDxsaT5GaXggZm9yIG5vdGljZSBnZW5lcmF0ZWQgaW4gdGhlIEFQSS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjE2LjYgLSBEZWNlbWJlciwgMjAxMQogIDx1bD4KICAgIDxsaT5OdW1lcm91cyBtaW5vciBidWcgZml4LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTcgLSBGZWJydWFyeSwgMjAxMgogIDx1bD4KICAgIDxsaT5NYW55IG1ldGhvZHMgYXJlIHByb3RlY3RlZCBub3cuLi4gZm9yIGJldHRlciBzZWN1cml0eS48L2xpPgogICAgPGxpPkFkZHMgY2FwdGNoYSBzdXBwb3J0IHRvIHRoZSBmb3Jnb3QgcGFzc3dvcmQgZm9ybS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjE3LjEgLSBNYXJjaCwgMjAxMgogIDx1bD4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjE4LnggLSBNYXJjaCwgMjAxMgogIDx1bD4KICAgPGxpPkltcHJvdmVkIHVzZXJzIHRhYi48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBhbGxvdyB1c2VycyB0byBjaGFuZ2UgdGhlaXIgdXNlcm5hbWUuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xOC54IC0gTWFyY2gsIDIwMTIKICA8dWw+CiAgICA8bGk+QWRkZWQgdGhlIGRhdGEgcHJvcGVydHkgdHlwZSAobm90IGVkaXRhYmxlIGJ5IGFkbWlucykuPC9saT4KICAgIDxsaT5Nb2RpZmllZCB0aGUgYXBpIHRvIGFsbG93IGRlbGV0aW5nIGRhdGEgZnJvbSB0aGUgdXNlcnMgd2hlbiBkZWxldGluZyBwcm9wZXJ0aWVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTkgLSBTZXB0ZW1iZXIsIDIwMTIKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgZ3VpIGltcHJvdmVtZW50cy48L2xpPgogICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcyBhbmQgbWlub3IgZW5oYW5jZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMjAgLSBPY3RvYmVyLCAyMDEyCiAgPHVsPgogICAgPGxpPkZ4eGVzIHRvIHRoZSBiZWhhdmlvciBvZiBjaGVja2JveCBmaWVsZHMuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgdGhlIGRlZmF1bHQgdmFsdWUgb2YgY2hlY2tib3hlcy48L2xpPgogICAgPGxpPk51bWVyb3VzIG90aGVyIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjIxLngKICA8dWw+CiAgICA8bGk+UmVmYWN0b3JpbmcgdG8gYWxsb3cgYWx0ZXJuYXRlIGZvcm1zIG9mIGF1dGhlbnRpY2F0aW9uLjwvbGk+CiAgICA8bGk+UmVmYWN0b3JpbmcgdG8gZXhwYW5kIHRoZSB1c2Ugb2YgdGhlIGNvbnN1bWVyIGNsYXNzLjwvbGk+CiAgICA8bGk+Tm93IGFsbG93IG90aGVyIG1vZHVsZXMgdG8gY29udHJvbCBncm91cCBtZW1iZXJzaGlwLjwvbGk+CiAgICA8bGk+UmVmYWN0b3Jpbmcgb2YgcHJlZmVyZW5jZXMgYW5kIHNldHRpbmdzLjwvbGk+CiAgICA8bGk+UmVmYWN0b3Jpbmcgb2YgY29va2llLCBzZXNzaW9uLCBsb2dnaW5nLCBhbmQgaGlzdG9yeSBmdW5jdGlvbmFsaXRpZXMuPC9saT4KICAgIDxsaT5OdW1lcm91cyBtaW5vciBlbmhhbmNlbWVudHMgYW5kIGJ1ZyBmaXhlcy48L2xpPgogICAgPGxpPioqIDEuMjEuMTEgLSBGaXhlZCBzaWduaWZpY2FudCBwcm9ibGVtIHdpdGggdGhlIHByb3RlY3RlZCBjb250ZW50IGNvbnRlbnQgdHlwZSAuLi4gZXZlcnlib2R5IHNob3VsZCB1cGdyYWRlIEFTQVAgKio8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjIyLngKICA8dWw+CiAgICA8bGk+Rml4ZXMgdG8gYXNjaWkgaW1wb3J0PC9saT4KICAgIDxsaT5FbmNyeXB0ZWQgcHJvcGVydGllcyBhcmUgbm8gbG9uZ2VyIGV4cG9ydGVkIHRvIEFTQ0lJPC9saT4KICAgIDxsaT5GaXhlcyB0byBncm91cCBleHBvcnQvaW1wb3J0PC9saT4KICAgIDxsaT5BZG1pbmlzdHJhdG9ycyBjYW4gbm8gbG9uZ2VyIHNlZSBhbmQvb3IgZWRpdCBlbmNyeXB0ZWQgcHJvcGVydGllcy48L2xpPgogICAgPGxpPkFkbWluIHVzZXJzIHRhYiBmaWx0ZXJpbmcgaGFzIGJlZW4gcmV3cml0dGVuLCBpcyBub3cgYSB1c2VyIHByZWZlcmVuY2UuPC9saT4KICAgIDxsaT5JbXByb3ZlZCBlcnJvciBjaGVja2luZyBpbiB0aGUgYWRtaW4gdXNlcnMgdGFiLjwvbGk+CiAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIHRoZSBmZXVfdXNlcl9xdWVyeSBzdHVmZi48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjIzLngKICA8dWw+Cgk8bGk+UmV3cml0ZSBBU0NJSSBleHBvcnQgYW5kIGltcG9ydCBjb2RlLjwvbGk+Cgk8bGk+UmV3cml0ZSBGRVUgQ2hhbmdlIHNldHRpbmdzIHRlbXBsYXRlOiAgTk9URTogWW91IG1heSBuZWVkIHRvIGFkanVzdCB5b3VyIGNoYW5nZSBzZXR0aW5ncyB0ZW1wbGF0ZS48L2xpPgoJPGxpPlJld3JpdGUgRkVVIGxvZ2luIGZvcm0gdGVtcGxhdGUuPC9saT4KCTxsaT5BZGRzIGEgdHJpdmlhbCwgb3B0aW9uYWwgaG9uZXlwb3QgY2FwdGNoYSBmaWVsZCB0byB0aGUgbG9naW4gZm9ybS4gIFJlc2V0IHlvdXIgbG9naW4gZm9ybSB0byBkZWZhdWx0IHZhbHVlcyB0byBzZWUgaXQsIGFuZCBpdHMgdXNlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMjQueAoJPHVsPgoJPGxpPk5vdyB1c2UgY2dlX3V0aWxzOjpjbGVhbl9pbnB1dF9odG1sLCBhbmQgb3RoZXIgZmlsdGVyaW5nIG1lY2hhbmlzbXMgdG8gcHJldmVudCBiYWQgaHRtbC9qYXZhc2NyaXB0IGZyb20gYmVpbmcgc3VibWl0dGVkIHZpYSBmcm9udGVuZCB0ZXh0IGFyZWFzLjwvbGk+Cgk8bGk+QWRkcyBmZXVfc21hcnR5OjpnZXRfZ3JvdXBfbWVtYmVybGlzdCgkZ2lkKSA8ZW0+KDEuMjQuMSk8L2VtPjwvbGk+Cgk8bGk+Rml4ZXMgYSB2ZXJ5IGltcG9ydGFudCBzZWN1cml0eSBpc3N1ZSAodmlhIGEgY3J1ZGUgaGFjaykgdGhhdCBhbGxvd3MgYW5vbnltb3VzIHVzZXJzIHRvIHZpZXcgcHJpdmF0ZSBjb2RlLiAgUmVjb21tZW5kIHVwZ3JhZGluZyBhcyBzb29uIGFzIHBvc3NpYmxlLiA8ZW0+KDEuMjQuMyk8L2VtPjwvbGk+Cgk8bGk+Tm93IFJlcXVpcmUgUEhQIDUuNC4zIG1pbmltdW0uPC9saT4KCTwvdWw+Cgk8L2xpPgo8bGk+MS4yNS54Cgk8dWw+Cgk8bGk+TmV3IHN1cHBvcnQgZm9yIHJlcXVpcmluZyBzdHJvbmdlciBwYXNzd29yZHMgKG9wdGlvbmFsIHByZWZlcmVuY2VzLCBlbmFibGVkIGZvciBuZXcgaW5zdGFsbGF0aW9ucyk8L2xpPgoJPC91bD4KPC9saT4KPGxpPjEuMjUueAogICA8dWw+CiAgICAgPGxpPk1pbm9yIHRlbXBsYXRlIGZpeGVzLjwvbGk+CiAgICAgPGxpPkltcHJvdmVtZW50cyB0byBwYXNzd29yZCBzdHJlbmd0aCBjaGVja3MuPC9saT4KICAgPC91bD4KPC9saT4KPGxpPjEuMjYueAoJPHVsPgoJPGxpPlBhZ2VzIG9mIHR5cGUgJ3Byb3RlY3RlZCBjb250ZW50JyB3aWxsIG5vdyBvbmx5IGdlbmVyYXRlIDQwMyBlcnJvcnMgaWYgdW5hdXRob3JpemVkIGFjY2VzcyBpcyBkZXRlY3RlZC4KCSAgIDxwPlRoaXMgaXMgdG8gc29sdmUgcG90ZW50aWFsIHNlY3VyaXR5IGlzc3Vlcy4gIFVzZXJzIHdpbGwgbmVlZCB0byBjcmVhdGUgYSBzeXN0ZW0gcGFnZSB0byBoYW5kbGUgNDAzIGVycm9ycyBpbiBhIGdyYWNlZnVsIHdheS48L3A+CiAgICAgICAgPC9saT4KICAgICAgICA8bGk+UmVtb3ZlIGNhcHRjaGEgYW5kIG90aGVyIHByb3RlY3RlZCBwYWdlIG9wdGlvbnMgYXMgYW55IHVuYXV0aG9yaXplZCBhY2Nlc3Mgbm93IHdpbGwgcmVzdWx0IGluIDQwMyBlcnJvcnMuPC9saT4KICAgICAgICA8bGk+bW9yZSBtZXRob2RzIHRvIGZldV9zbWFydHkuPC9saT4KCTwvdWw+CjwvbGk+CjxsaT4xLjI2LngKCTx1bD4KCTxsaT5BZGRzIHskZmV1X3NtYXJ0eS0+Z2V0X2dyb3VwX2xpc3QoKX08L2xpPgoJPC91bD4KPC9saT4KCjxsaT4xLjI4LngKICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHZlcnNpb24gb2YgRkVVIGhhcyB1bmRlcmdvbmUgc2lnbmZpY2FudCBjaGFuZ2VzLiAgVGhlcmUgbWF5IGJlIHNvbWUgY29tcGF0aWJpbGl0eSBwcm9ibGVtcy48L2Rpdj4KICA8dWw+Cgk8bGk+UmVtb3ZlZCB0aGUgQ2hlY2tQYXNzd29yZCBtZXRob2QgaW4gYW50aWNwYXRpb24gb2YgYWRkaW5nIHByb3BlciBzZWVkaW5nLjwvbGk+Cgk8bEk+QWRkZWQgRnJvbnRFbmRVc2Vyczo6Z2V0X2VtYWlsKCkgYW5kIGEgZmV3IG1pbm9yIG1ldGhvZHMuPC9saT4KCTxsaT5UZW1wbGF0ZSBDbGVhbnVwcyBhbmQgcmV3cml0ZXM6CgkgICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFNvbWUgdGVtcGxhdGVzIG1heSBuZWVkIHRvIGJlIHJlYnVpbHQsIHRob3VnaCB0aGUgY2hhbmdlcyBzaG91bGQgYmUgbWlub3IuICBNb3N0bHkgdGhlIHRlbXBsYXRlcyBoYXZlIGp1c3QgYmVlbiBjb252ZXJ0ZWQgdG8gdXNlIGJvb3RzdHJhcCBzdHlsZXMuPC9wPgoJPC9saT4KCTxsaT5TdHJvbmdlciBwYXNzd29yZCBlbmNyeXB0aW9uOgoJICA8cD5Ob3csIG9uIG5ldyBpbnN0YWxscyBhIHNhbHQgaXMgZ2VuZXJhdGVkIGFuZCBzdG9yZWQgZm9yIGVhY2ggdXNlciBhY2NvdW50LiAgVGhpcyBpbmRpdmlkdWFsIHNhbHQgaXMgdXNlZCB3aGVuIHZlcmlmeWluZyBhIHVzZXJzIHBhc3N3b3JkLgoJICAgICBUaGlzIGlzIGZvciBuZXcgaW5zdGFsbHMgb25seSwgYW5kIHNob3VsZCBoYXZlIG5vIGJlYXJpbmcgb24gZXhpc3Rpbmcgd2Vic2l0ZXMgZG9pbmcgYW4gdXBncmFkZS4gIEhvd2V2ZXIsIGlmIHlvdSBhcmUgdXNpbmcgc2VsZnJlZyB5b3UgTVVTVCBhbHNvIHVwZ3JhZGUgdGhlIHNlbGZyZWcgbW9kdWxlLjwvcD4KCTwvbGk+Cgk8bGk+QWRkcyBuZXcgRW5jcnlwdFBhc3N3b3JkIG1ldGhvZC48L2xpPgoJPGxpPkFkZHMgYWJpbGl0eSBmb3IgYW4gYWRtaW4gdG8gZm9yY2UgYSBwYXNzd29yZCByZXNldC48L2xpPgoJPGxpPkFkZHMgYWJpbGl0eSB0byBkaXNhYmxlIGEgdXNlciBhY2NvdW50IHdpdGhvdXQgY2hhbmdpbmcgdGhlaXIgcGFzc3dvcmQuPC9saT4KICAgICAgICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICAgICAgPGxpPk5vdyB1dGlsaXplIHNtYXJ0eSBzY29wZXMgdG8gcmVkdWNlIHZhcmlhYmxlIG5hbWUgY29uZmxpY3RzLCBhbmQgYmUgbW9yZSBtZW1vcnkgZWZmaWNpZW50IChob3BlZnVsbHkpLjwvbGk+Cgk8bGk+MS4yOC4zIC0gbWlub3IgQVBJIGNoYW5nZXMgZm9yIHVzZSBpbiBzZWxmcmVmLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMjk8YnIvPgoJPGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHZlcnNpb24gb2YgRkVVIGhhcyB1bmRlcmdvbmUgc2lnbmlmaWNhbnQgY2hhbmdlcy4gIFRoZXJlIG1heSBiZSBzb21lIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMuPC9kaXY+Cgk8dWw+Cgk8bGk+PHN0cm9uZz5JbXBvcnRhbnQ6PC9zdHJvbmc+IFJlLWZhY3RvcmVkIHRoZSBmZXVfc21hcnR5IHN0dWZmIGZvciBDTVNNUyAyLjAgY29tcGF0aWJpbGl0eS4gIFRoaXMgbWVhbnQgcmVtb3ZpbmcgdGhlIGFzc2lnbiBwYXJhbWV0ZXIsIGFuZCBtYWtpbmcgYWxsIG1ldGhvZHMgc3RhdGljLgoJICA8cD5pLmU6IDxjb2RlPnskZmV1X3NtYXJ0eS0+Z2V0X3VzZXJfcHJvcGVydGllcygkdWlkLCdwcm9wcycpfTwvY29kZT4gbXVzdCBub3cgYmUgY2FsbGVkIGxpa2U6IDxjb2RlPnskcHJvcHM9ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJfcHJvcGVydGllcygkdWlkKX08L2NvZGU+PC9wPgoJICA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IHBhcmFtZXRlcnMgZm9yIHNvbWUgbWV0aG9kcyBoYXMgY2hhbmdlZC4gIHBsZWFzZSByZXZpZXcgdGhlIGhlbHAuPC9wPgoJPC9saT4KCTxsaT5SZS1pbXBsZW1lbnQgbWV0aG9kcyBmcm9tIEN1c3RvbUNvbnRlbnQgaW50byBmZXVfc21hcnR5Li4uIHdpdGggc29tZSBtb3JlIHBvd2VyLjwvbGk+Cgk8bGk+QWRkcyB0aGUgZmV1X3Byb3RlY3QgcGx1Z2luLjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+MS4zMDxici8+Cgk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4KCTxvbD4KCTxsaT48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdmVyc2lvbiBvZiBGRVUgaGFzIHVuZGVyZ29uZSBzaWduaWZpY2FudCBjaGFuZ2VzLiAgVGhlcmUgbWF5IGJlIHNvbWUgY29tcGF0aWJpbGl0eSBwcm9ibGVtcy48L2xpPgoJPGxpPlRoaXMgdmVyc2lvbiB0YWtlcyBhZHZhbnRhZ2Ugb2Ygc21hcnR5IHNjb3BlcyBmb3IgdmFyaW91cyBkaXNwbGF5cy4gIFRoaXMgcHJldmVudHMgb25lIHNtYXJ0eSB2YXJpYWJsZSBmcm9tIG9uZSB0ZW1wbGF0ZS9tb2R1bGUgYWN0aW9uIGZyb20gb3ZlcndyaXRpbmcgZGF0YSBmcm9tIGFub3RoZXIgdGVtcGxhdGUvbW9kdWxlIGFjdGlvbi4gIEhvd2V2ZXIgaXQgbWVhbnMgdGhhdCBzbWFydHkgdmFyaWFibGVzIGFyZSBub3QgYXV0b21hdGljYWxseSBnbG9iYWwuICBBbmQgaW4gb3JkZXIgdG8gbWFrZSBkYXRhIGdsb2JhbCB5b3UgbXVzdCBleHBsaWNpdGx5IGNvcHkgaXQgdG8gdGhlIGdsb2JhbCBzY29wZS48L2xpPgoJPGxpPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gVGhlIHVwZ3JhZGUgcHJvY2VzcyB3aWxsIGVuc3VyZSB0aGF0IGRhdGEgaW50ZWdyaXR5IGlzIGVuYWJsZWQgaW4gdGhlIGRhdGFiYXNlIGFuZCB0aGF0IHRoZXJlIGlzIG5vIGV4dHJhIGRhdGEgZXhpc3RpbmcgaW4gdGhlIGhpc3RvcnksICBncm91cHByb3BtYXAgb3IgcHJvcGVydGllcyB0YWJsZS4gIElmIHlvdSBoYXZlIG1hbmlwdWxhdGVkIHRoZSBGRVUgZGF0YWJhc2UgbWFudWFsbHkgdGhlbiB5b3UgbWF5IGJlIHN1YmplY3QgdG8gZGF0YSBsb3NzLjwvbGk+Cgk8L29sPgoJPC9kaXY+CgoJPHVsPgoJPGxpPkNvbXBsZXRlIHJld3JpdGUgb2YgZm9yZ290dGVuIHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkuICBUaGlzIGludm9sdmVkIGNoYW5naW5nIGFsbCBvZiB0aGUgdGVtcGxhdGVzIGZvciBmb3Jnb3R0ZW4gcGFzc3dvcmQsIHNvIHlvdSB3aWxsIG5lZWQgdG8gcmVzZXQgeW91ciB0ZW1wbGF0ZXMuPC9saT4KCTxsaT5Db252ZXJ0cyBhbGwgdGFibGVzIHRvIHVzZSBpbm5vZGIsIGFuZCBub3cgZW5mb3JjZXMgc29tZSBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzLgoJPHA+VGhpcyBoZWxwcyBlbnN1cmUgZGF0YWJhc2UgaW50ZWdyaXR5LCAgYW5kIGFsbG93cyB0aGlyZCBwYXJ0eSBtb2R1bGVzIHVzaW5nIHRoZSBGRVUgQVBJIHRvIGNyZWF0ZSBtb3JlIGZvcmVpZ24ga2V5IHJlbGF0aW9uc2hpcHMuPC9wPgoJPHA+SWYgYSB0aGlyZCBwYXJ0eSBtb2R1bGUgY3JlYXRlcyBhIGZvcmVpZ24ga2V5IHJlbGF0aW9uc2hpcCB0byB0aGUgdXNlcnMgdGFibGUsIGFuZCBkYXRhIGV4aXN0cyBpbiB0aGUgdGhpcmQgcGFydHkgdGFibGUga2V5ZWQgdG8gYW4gZXhpc3RpbmcgRkVVIGFjY291bnQgdGhlbiB0aG9zZSB1c2VycyBjYW5ub3QgYmUgZGVsZXRlZCB2aWEgdGhlIEZFVSBhZG1pbiB1bnRpbCB0aGUgdGhpcmQgcGFydHkgZGF0YSBpcyBlcmFzZWQuPC9wPgoJPC9saT4KCTxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGRlbGV0ZSBhIHByb3BlcnR5IChhcyBsb25nIGFzIGl0IGlzIG5vdCBhIG1vZHVsZSBwcm9wZXJ0eSwgb3IgYSBoaWRkZW4vcmVxdWlyZWQgbWVtYmVyIG9mIGFueSBncm91cC48L2xpPgoJPGxpPlJlbW92ZXMgdW5kb2N1bWVudGVkIGFuZCByYXJlbHkgdXNlZCBjb250ZW50X21vZHVsZSBmdW5jdGlvbmFsaXR5IGZvciBncm91cCBzZWxlY3Rvci48L2xpPgoJPGxpPkdldCByaWQgb2Ygc2VxdWVuY2UgdGFibGVzLjwvbGk+Cgk8bGk+UmV3cml0ZSB0aGUgbG9naW4gZnVuY3Rpb25hbGl0eSBmcm9tIHNjcmF0Y2guPC9saT4KCTxsaT5SZW1vdmVkIHRoZSBub2lubGluZSBwYXJhbWV0ZXIuPC9saT4KCTxsaT5BZGRlZCB0aGUgaW5saW5lIHBhcmFtZXRlciBmb3IgdGhlIGxvZ2luIGZvcm0gb25seS4gIExpbmtzIGZyb20gdGhlIGxvZ291dCBmb3JtIChpLmU6IHRvIGxvZ291dCwgYW5kIHRvIGNoYW5nZSBzZXR0aW5ncyB3aWxsIGJlIGRvbmUgbm9uLWlubGluZSk8L2xpPgoJPGxpPmZvcm09c2lsZW50L2FjdGlvbj1zaWxlbnQgbm93IG91dHB1dHMgc3R1ZmYgdG8gZ2xvYmFsIHNtYXJ0eSBzY29wZSAobm90ZSB2YXJpYWJsZSBuYW1lcyBoYXZlIGNoYW5nZWQsIHNlZSB0aGUgeyRmZXVfZGF0YX0gYXJyYXkpLiAgVGhpcyBhY3Rpb24gaXMgYWxzbyBkZXByZWNhdGVkLjwvbGk+Cgk8bGk+Rml4ZXMgdGhlIGRlbGV0ZSB1c2VyIHN0dWZmLjwvbGk+Cgk8bGk+Tm93IHNlbmQgdGhlIG9uZGVsZXRldXNlciBldmVudCBmcm9tIHdpdGhpbiB0aGUgYXBpIGZ1bmN0aW9ucy48L2xpPgoJPGxpPk1vdmVkIGFsbCBvZiB0aGUgZm9ybXMgaW50byB0aGVpciBvd24gYWN0aW9ucy4uLi4gZGVwcmVjYXRlZCB0aGUgZm9ybSBwYXJhbWV0ZXIuPC9saT4KCTxsaT5Ob3cgc3VwcG9ydCBzcGVjaWZ5aW5nIGRpZmZlcmVudCB0ZW1wbGF0ZXMgZm9yIGxvZ2luLCBsb2dvdXQsIGNoYW5nZXNldHRpbmdzLCBhbmQgZm9yZ290cHcgYWN0aW9ucy48L2xpPgoJPGxpPkNvbXBsZXRlbHkgcmV3cml0ZSB0aGUgbG9zdCB1c2VybmFtZSBmdW5jdGlvbmFsaXR5LiAgSXQgbm93IGp1c3QgYXNrcyBmb3IgYXMgbXVjaCBpbmZvcm1hdGlvbiBhcyBwb3NzaWJsZSwgYW5kIHVzZXMgdGhhdCBpbmZvcm1hdGlvbiB0byB0cnkgdG8gZmluZCBhIHVuaXF1ZSB1c2VyIGFjY291bnQuPC9saT4KCTxsaT5BZGRzIGEgcHJpdmF0ZSBzZWN0aW9uIGhlYWRlciBjdXN0b20gY29udGVudCB0eXBlLjwvbGk+Cgk8bGk+Tm93IGFmdGVyIGNoYW5nZSBzZXR0aW5ncyBhIG1lc3NhZ2UgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyIG9uIHRoZSBsb2dvdXRmb3JtLjwvbGk+Cgk8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+Cgk8bGk+QmVnaW4gd29yayBvbiBBUEkgZG9jdW1lbnRhdGlvbi48L2xpPgoJPC91bD4KPC9saT4KPGxpPjEuMzEKICA8dWw+CiAgICA8bGk+QWRkcyBhYmlsaXR5IHRvIGZvcmNlIGEgdXNlciB0byBjaGFuZ2Ugc2V0dGluZ3Mgb24gdGhlIG5leHQgbG9naW4uCiAgICAgICA8cD5Ob3RlLCB0aGlzIGFsc28gd29ya3Mgd2l0aCB0aGUgImZvcmNlIG5ldyBwYXNzd29yZCIgZnVuY3Rpb25hbGl0eSwgc28gdGhhdCBhIHVzZXIgd2lsbCBiZSBmb3JjZWQgdG8gc2V0IGEgbmV3IHBhc3N3b3JkLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+TWlub3IgbGF5b3V0IGNoYW5nZSB0byB0aGUgZmlyc3QgYWRkIHVzZXIvZWRpdCB1c2VyIGZvcm0uPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4zMS4yCiAgPHVsPgogICAgPGxpPkZpeGVzIHRvIHVwZ3JhZGUgcm91dGluZSBmb3IgaG9zdHMgd2l0aCBzdHJpY3QgbW9kZSBzZXQuPC9saT4KICAgIDxsaT5OdW1lcm91cyBtaW5vciBBUEkgZml4ZXMuPC9saT4KICAgIDxsaT5Nb3JlIHdvcmsgb24gQVBJIGRvY3VtZW50YXRpb24uPC9saT4KICAgIDxsaT5Db3JyZWN0IHNvbWUgbGljZW5zZSBkb2NzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMzEuMwogICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj5CYXJyaW5nIHNvbWUgdW5mb3JzZWVuIG5ldyBlcnJvcnMgaW4gdGhpcyBsYXRlc3QgcmVsZWFzZSBjYXVzZWQgYnkgbWUsIHRoaXMgd2lsbCBiZSB0aGUgbGFzdCByZWxlYXNlIG9mIEZyb250RW5kVXNlcnMgZm9yIENNU01TIDEueC48L2Rpdj4KICAgPHVsPgogICAgICA8bGk+Rml4ZXMgcHJvYmxlbSB3aXRoIHRoZSBBZGRHcm91cFByb3BlcnR5UmVsYXRpb24gbWV0aG9kLjwvbGk+CiAgICAgIDxsaT5GaXhlcyBwcm9ibGVtcyB3aXRoIHRoZSByZW1lbWJlcm1lIGZ1bmN0aW9uYWxpdHkuPC9saT4KICAgICAgPGxpPk1vcmUgbWlub3IgZml4ZXMuPC9saT4KICAgPC91bD4KPC9saT4KCjxsaT4yLjAKICAgICAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdmVyc2lvbiBhbmQgYW55IHN1YnNlcXVlbnQgdmVyc2lvbnMgb2YgRnJvbnRFbmRVc2VycyB3aWxsIHJlcXVpcmUgYSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBDTVNNUyAyLnguPC9kaXY+Cgk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgaXMgYSBtYWpvciByZWZhY3RvcmluZyBvZiB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUuICBUaG91Z2ggbW9zdCBmcm9udGVuZCB0ZW1wbGF0ZXMgaGF2ZSBub3QgY2hhbmdlZCwgbWFueSBhZG1pbiB0ZW1wbGF0ZXMgaGF2ZS4gIElmIHlvdSBoYXZlIGFueSBvdmVycmlkZXMgZm9yIGFkbWluIHRlbXBsYXRlcyB0aGVuIHlvdSBtdXN0IHJlbW92ZSB0aGVtIGJlZm9yZSB1cGdyYWRpbmcuPC9kaXY+Cjx1bD4KCTxsaT5SZW1vdmUgYWxsIHRlbXBsYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25hbGl0eS4gIFRlbXBsYXRlcyBhcmUgbm93IGluIERlc2lnbk1hbmFnZXIuICBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGVyZSBpcyB0aGUgcG9zc2liaWxpdHkgb2YgZGlmZmVyZW50IHRlbXBsYXRlcyBmb3IgZWFjaCB0eXBlLgoJICAgPHA+VGVtcGxhdGVzIGFyZSBtb3ZlZCBlbi1tYXNzZSBpbnRvIERlc2lnbk1hbmFnZXIgYW5kIGdpdmVuIG5ldyBuYW1lcy4gIE5vIG90aGVyIGNoYW5nZXMgYXJlIG1hZGUgdG8gdGVtcGxhdGVzLjwvcD4KCSAgIDxwPkFkZCBwYXJhbWV0ZXJzIHRvIHNvbWUgYWN0aW9ucyB0byBhbGxvdyBzcGVjaWZ5aW5nIGFsdGVybmF0ZSB0ZW1wbGF0ZXMuPC9wPgoJPC9saT4KCTxsaT5TcGxpdCB0aGUgc2V0dGluZ3MgYWN0aW9uKHMpIHRvIHRoZWlyIG93biBtZW51IGl0ZW0gaW4gdGhlIGFkbWluIG5hdmlnYXRpb24uPC9saT4KCTxsaT5SZWZhY3RvciB0aGUgcmVkaXJlY3Rpb24gYWZ0ZXIgZm9ybSBjb21wbGV0aW9uOgoJPHVsPgoJPGxpPklmIHRoZSByZXR1cm50byBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIChlaXRoZXIgYSBwYWdlIGlkIG9yIHBhZ2UgYWxpYXMpIHVzZSBpdCB0byByZWRpcmVjdCB0byBhIGNvbnRlbnQgcGFnZS48L2xpPgoJPGxpPklmIGEgUG9zdEFjdGlvblVSTCB3YXMgc3BlY2lmaWVkIGFuZCBleGlzdHMgaW4gdGhlIHNlc3Npb24sIHRoZW4gcmVkaXJlY3QgdG8gdGhhdCBVUkwuPC9saT4KCTxsaT5PdGhlcndpc2UgdXNlIHRoZSBwcmVmZXJlbmNlcyBhbmQgdGVtcGxhdGVzIHNwZWNpZmllZCBpbiB0aGUgYWRtaW4gbmF2LjwvbGk+Cgk8L3VsPgoJPC9saT4KCTxsaT5SZW1vdmUgdGhlIHJldHVybmxhc3QgcGFyYW1ldGVyLjwvbGk+Cgk8bGk+UmVtb3ZlIGRlcGVuZGVuY3kgb24gQ01TTWFpbGVyLjwvbGk+Cgk8bGk+UmVtb3ZlIHRoZSBzZXBhcmF0ZSBwZXJtaXNzaW9uIGZvciBlZGl0aW5nIEZFVSBUZW1wbGF0ZXMuPC9saT4KCTxsaT5SZW1vdmUgdGhlIHNlcGFyYXRlIHBlcm1pc3Npb24gZm9yIGVkaXRpbmcgRkVVIG1vZHVsZSBzZXR0aW5ncy48L2xpPgoJPGxpPkZpeGVzIHRvIHRoZSBwcm90ZWN0ZWQgc2VjdGlvbiBoZWFkZXIuPC9saT4KCTxsaT5JbXByb3ZlbWVudHMgdG8gdXNlciBpbXBvcnQgdG8gaGFuZGxlIG11bHRpLWxpbmUgcmVjb3Jkcy48L2xpPgoJPGxpPlJlZmFjdG9yIHRoZSBhZG1pbiBzaWRlIGFkZC9lZGl0IHVzZXIgZnVuY3Rpb25hbGl0eS4KCTxwPllvdSBjYW4gbm93IHVwbG9hZCBpbWFnZXMgZm9yIHVzZXJzIHdoZW4gY3JlYXRpbmcgdXNlcnMuPC9wPgoJPHA+UmVuYW1pbmcgYSB1c2VyIGFjY291bnQgbm93IHdvcmtzIG11Y2ggYmV0dGVyLjwvcD4KCTxsaT4KCTxsaT5BZGp1c3Qgc3R5bGluZyBvbiBzb21lIGFkbWluIHRlbXBsYXRlcy48L2xpPgoJPGxpPjxzdHJvbmc+Tm90ZTogPHN0cm9uZz4gRml4ZXMgdG8gbG9zdCB1c2VybmFtZSB0ZW1wbGF0ZSBzdHVmZi4uLiB5b3Ugd2lsbCBuZWVkIHRvIHJlc2V0IHRoZSB0ZW1wbGF0ZSB0eXBlcyB0byBmYWN0b3J5IGRlZmF1bHRzIGFuZCB2ZXJpZnkgdGhlIGNvbnRlbnRzIG9mIHlvdXIgdmFyaW91cyBsb3N0LXVzZXJuYW1lIHRlbXBsYXRlcy4gKHYyLjAuNyk8L2xpPikKPC91bD4KCTwvbGk+CgoJPGxpPjIuMQoJPHVsPgoJPGxpPlJlLWZhY3RvcnMgdGhlIGJ1bGsgYWN0aW9ucyBhbmQgYWRkcyBudW1lcm91cyBidWxrIGFjdGlvbnMgZm9yIHVzZXJzLjwvbGk+Cgk8bGk+QWRkcyB0aGUgRkVVIExvZ291dCBMaW5rIGNvbnRlbnQgdHlwZS48L2xpPgoJPGxpPkRlcHJlY2F0ZSB0aGUgbm90aWZpY2F0aW9uIGVtYWlsIGZ1bmN0aW9uYWxpdHkuLi4gYmV0dGVyIHRvIHVzZSBldmVudCBoYW5kbGVycy48L2xpPgoJPGxpPlNlbmQgdGhlIE9uRGVsZXRlVXNlciBldmVudCBiZWZvcmUgdGhlIHVzZXIgaXMgcGh5c2ljYWxseSBkZWxldGVkIGZyb20gdGhlIGRhdGFiYXNlLjwvbGk+CiAgICAgICAgPGxpPk1pbm9yIGJ1ZyBmaXhlczwvbGk+Cgk8L3VsPgoJPC9saT4KCgk8bGk+Mi4yCgk8dWw+Cgk8bGk+QWRkcyBhZG1pbmlzdHJhdGl2ZSBvcHRpb24gdG8gcmVxdWlyZSBhIHVzZXIgdG8gdmVyaWZ5IHRoZW1zZWx2ZXMgYmVmb3JlIHRoZSBuZXh0IGxvZ2luLjwvbGk+Cgk8bGk+UmUtZmFjdG9yIHRoZSB2ZXJpZnkgZW1haWwgdGVtcGxhdGUuPC9saT4KCTxsaT5GaXggYnVnIGluIHVzZXIgaGlzdG9yeSBhY3Rpb24uPC9saT4KCTxsaT5JbXByb3ZlbWVudHMgdG8gZWRpdHVzZXIgYW5kIGVkaXR1c2VyMiBhY3Rpb25zLjwvbGk+Cgk8bGk+TmV3IHByZWZlcmVuY2VzIGZvciB2ZXJpZnkgcGFnZS48L2xpPgoJPGxpPk5vdyBkaXNwbGF5IHVzZXJzIHRoYXQgbmVlZCB0byB2ZXJpZnkgdGhlbXNlbHZlcyBkaWZmZXJlbnRseSBpbiB1c2VybGlzdC48L2xpPgoJPGxpPkFkZGVkIE9uQmVmb3JlTG9naW4gRXZlbnQsIHdoaWNoIGlzIGZpcmVkIGFmdGVyIHBhc3N3b3JkIGlzIHZhbGlkYXRlZCwgYnV0IGJlZm9yZSB0aGluZ3MgYXJlIHNldHVwLjwvbGk+Cgk8bGk+QWRkcyBmZXVfc21hcnR5OjpwcmVsb2FkX3VzZXJzKCk8L2xpPgoJPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gcmVkaXJlY3QgYmFjayB0byB0aGUgb3JpZ2luYWxseSByZXF1ZXN0ZWQgVVJMIChHRVQgT05MWSkgaWYgZGlyZWN0IGFjY2VzcyB0byBwcm90ZWN0ZWQgY29udGVudCByZXN1bHRlZCBpbiBhIDQwMyBlcnJvciwgIGFuZCBhbiBlcnJvciBwYWdlIGV4aXN0cyB0byBoYW5kbGUgdGhlIHJlcXVlc3QsIHdpdGgge0Zyb250RW5kVXNlcnN9IGNhbGxlZCBvbiBpdC48L2xpPgoJPC91bD4KCTwvbGk+CjwvdWw+CjxiciAvPg==]]></about>
	<description><![CDATA[Allow users to log in to the frontend of your site]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.53.15</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>2.1.5</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.changelog.inc.swp</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[YjBWSU0gNy40AAAAABAAAIQjPFin5g4AfBMAAHJvYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb2ItZGVza3RvcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL25mcy91MTQwNC9jbXMyX3N2bi9tb2R1bGVzL0Zyb250RW5kVXNlcnMvY2hhbmdlbG9nLmluYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AMzIxMCMiISATElUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRwCQD/AAAAAgAAAEEAAAABAAAAAQAAAP////88AAAAQgAAAAEAAAD+////RQAAAH4AAAABAAAA/f///5kAAADDAAAAAQAAAPz///+JAAAAXAEAAAEAAAD7////awAAAOUBAAABAAAA+v///zgAAABQAgAAAQAAAPn///86AAAAiAIAAAEAAAADAAAAKwAAAMICAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhZAAAKQAAAEEBAAAAEAAAQQAAAPsPAACqDwAAeQ8AADsPAADzDgAA2A4AAMINAABPDQAANA0AAN0MAADDDAAAJwwAAA0MAACxCwAAOwsAADULAAAUCwAAbgoAAEIKAAAFCgAAqAkAAGAJAADjCAAArwgAAHkIAABWCAAADggAAAgIAADwBwAArAcAAE4HAAAHBwAAvgYAAHIGAABABgAADQYAAKMFAABTBQAATQUAADUFAAASBQAADAUAAPQEAAClBAAAnwQAAIkEAABlBAAANQQAAMkDAAB+AwAAWQMAAAkDAADpAgAAmAIAAGkCAABjAgAATQIAACACAADmAQAA0AEAAJ4BAACYAQAAggEAAHABAABBAQAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAgPHA+T3B0aW9uYWxseSBkaXNhbGxvdyByZXBlYXRlZCBsb2dpbnM8L3A+ACAgICA8cD5FdmVudHM8L3A+ADxsaT4xLjEuMCAtIE1heSwgMjAwNgA8L2xpPgAgICAgPHA+Rml4ZWQgYSBwcm9ibGVtIHdpdGggZWRpdGluZyBkcm9wZG93bnM8L3A+ADxsaT4xLjAuNiAtIE1heSwgMjAwNgAgICAgPHA+U3RhcnQgc3BsaXR0aW5nIHRoZSBjb2RlIHVwIGludG8gc2V2ZXJhbCBmaWxlczwvcD4AICAgIDxwPkZpeGVkIGEgcHJvYmxlbSB3aXRoIGV4cGlyeSBkYXRlczwvcD4APGxpPjEuMC41IC0gTWF5LCAyMDA2ADwvbGk+ACAgICA8cD5Ud2Vha3MgdG8gdGhlIGFkbWluIHByZWZlcmVuY2VzIHRhYjwvcD4AICAgIDxwPkFkZGVkIG1hY3JvcyBmb3IgcmVkaXJlY3RvIHRvIGEgdXNlciBzcGVjaWZpYyBwYWdlIG9uIGxvZ2luIG9yIGxvZ291dDwvcD4AICAgIDxwPkFkZGVkIGNvcHlyaWdodCBpbmZvPC9wPgAgICAgPHA+Q2xlYW5lZCB1cCBkYXRhYmFzZSBhY2Nlc3Mgc3R1ZmYgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgKGhvcGVmdWxseSk8L3A+ACAgICA8cD5BZGRlZCB0aGUgXCdzaWxlbnRcJyBmb3JtPC9wPgAgICAgPHA+UmVtb3ZlZCB0aGUgcmVxdWlyZW1lbnQgZm9yIENNUyAwLjEyLCBhbmQgcHV0IGl0IGJhY2sgdG8gMC4xMS4yPC9wPgAgICAgPHA+TWlub3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyAocmVjb21tZW5kZWQgYnkgbmlsczczKSBmb3IgZGVhbGluZyB3aXRoIHRoZSBjaGFuZ2UgcGFzc3dvcmQgc3R1ZmYuPC9wPgAgICAgPHA+Q29kZSBjbGVhbnVwIChhbHBoYWJldGl6ZSBmdW5jdGlvbnMpPC9wPgAgICAgPHA+Rml4ZXMgdG8gdGhlIGV4cG9ydCBjb2RlPC9wPgA8bGk+MS4wLjQgLSBNYXksIDIwMDYAPC9saT4AICAgIDxwPkV4cG9ydCB0byBzbWFydHkgYWxsIG9mIHRoZSB1c2VyIHByb3BlcnRpZXMgd2hlbiB0aGV5IGFyZSBsb2dnZWQgaW48L3A+ADxsaT4xLjAuMyAtIE1hcmNoLCAyMDA2ADwvbGk+ACAgICA8cD5Nb3JlIGZpZWxkIGxlbmd0aCBmaXhlczwvcD4APGxpPjEuMC4yIC0gTWFyY2gsIDIwMDYAPC9saT4AICAgIDxwPkNoYW5nZWQgdG8gcmVxdWlyZSBDTVMgMC4xMi1iZXRhMiBhdCBhIG1pbmltdW0gKGZvciBzYWZldHkgcHVycG9zZXMpPC9wPgAgICAgPHA+Rml4ZXMgdG8gcHJvYmxlbXMgd2l0aCBpbmxpbmUgYW5kIG5vbiBpbmxpbmUgZm9ybXMsIHRoZSBwYXNzd29yZCBpcyBuZXZlciBzZW50IG9uIHRoZSBnZXQgbGluZTwvcD4AICAgIDxwPkNoYW5nZXMgdG8gbGFiZWxpbmcgaW4gYWRkIG9yIGVkaXQgdXNlcjwvcD4AICAgIDxwPkFkZGVkIGFkdmFuY2VkIGZpbHRlcmluZyBvbiBwcm9wZXJ0aWVzPC9wPgAgICAgPHA+Rml4ZXMgdG8gdGhlIHNpemUgb2YgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGZpZWxkcywgYW5kIG1heGxlbmd0aDwvcD4AICAgIDxwPkZpeGVkIGEgbWlub3IgYnVnIHdoZW4gY291dGluZyB0aGUgbnVtYmVyIG9mIHVzZXJzIGluIGEgZ3JvdXA8L3A+ACAgICA8cD5BZGQgYSBjb25maXJtYXRpb24gbWVzc2FnZSB0byB0aGUgcHJlZmVyZW5jZXMgc3VibWl0IGJ1dHRvbjwvcD4AICAgIDxwPkZpeCBwcm9ibGVtIHdoZXJlIGV4cGlyeSBkYXRlIHdhcyBiZWluZyBtb2RpZmllZCB3aGVuIGFkbWluIG1vZGlmaWVkIHVzZXIgc2V0dGluZ3M8L3A+ACAgICA8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byBjaGVjayBmb3IgZHVwbGljYXRlIGVtYWlsIGFkZHJlc3NlczwvcD4APGxpPjEuMC4xIC0gTWFyY2gsIDIwMDYAPC9saT4AICAgIDxwPlRvZG8gLSBBZGQgcHJlZmVyZW5jZXMgZm9yIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmaWVsZGxlbmd0aDwvcD4AICAgIDxwPkFkZGVkIENTViBFeHBvcnQgb3B0aW9uPC9wPgAgICAgPHA+QWRkZWQgYSBjb3VwbGUgbW9yZSBjb25maXJtYXRpb24gbWVzc2FnZXMuPC9wPgAgICAgPHA+QWRkIGNvbmZpcm1hdGlvbiBtZXNzYWdlIGluIGVkaXQgZ3JvdXBzLjwvcD4AICAgIDxwPkRlbGV0ZSB1c2VyIHByb3BlcnRpZXMgd2hlbiBhIHByb3BlcnR5IGlzIGRlbGV0ZWQgPGVtPk5vdGU8L2VtPiwgbm90IHdoZW4gaXQgaXMgZGlzYWJsZWQgaW4gdGhlIGVkaXQgZ3JvdXAgZGlhbG9nPC9wPgAgICAgPHA+U2F2ZSBmaWx0ZXIgc2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMsIGFuZCB0aGUgYWN0aXZlIHRhYiB0b28uPC9wPgAgICAgPHA+Rml4ZWQgYSBzbWFsbCBwcm9ibGVtIHdpdGggdGhlIGRlZmF1bHQgZ3JvdXAgbm90IGJlaW5nIGNoZWNrZWQgd2hlbiBhZGRpbmcgYSB1c2VyPC9wPgAgICAgPHA+QWRkZWQgbWF4IGxlbmd0aCBhYmlsaXR5IHRvIHRleHQgYW5kIGVtYWlsIGZpZWxkczwvcD4AICAgIDxwPkFkZGVkIHNvcnRpbmcgdG8gdGhlIGFkbWluIHBhbmVsPC9wPgAgICAgPHA+QWRkZWQgZmlsdGVyaW5nIGFuZCByb3cgbGltaXRpbmcgdG8gdGhlIGFkbWluIHBhbmVsLiBUaGlzIHdpbGwgaGF2ZSBiaWcgYmVuZWZpdHMgdG8gdGhvc2UgdGhhdCBhcmUgdXNpbmcgdGhpcyBtb2R1bGUgZm9yIGhpZ2ggdHJhZmljLCBhbmQgaGlnaCB1c2VyIHNpdGVzLjwvcD4APGxpPjxwPjEuMC4wIC0gRmVicnVhcnksIDIwMDY8cD4APC9saT4AICAgIDxwPkZpeGVzIHRvIHRoZSBwcm9wZXJ0eSBhZGRpbmcgdG8gZml4IHByb2JsZW1zIHdpdGggc3BhY2VzIGluIHByb3BlcnR5IG5hbWVzICh3ZSBubyBsb25nZXIgbGV0IHRoYXQgaGFwcGVuKS48L3A+ACAgICA8cD5NYW55IHRoYW5rcyB0byA8Yj5rYXRvbjwvYj4gZm9yIGFkZGluZyB0aGUgdGV4dGFyZWEgYW5kIGRyb3Bkb3duIHByb3BlcnR5IHR5cGVzLjwvcD4APGxpPjAuMS43IC0gSmFudWFyeSwgMjAwNgAgICAgPHA+Q2hhbmdlcyB0byB0aGUgcGVybWlzc2lvbiBtb2RlbCwgYW5kIG1pbm9yIGJ1ZyBmaXhlcyB0byB0aGUgcHJlZmVyZW5jZXMuICBBbHNvIHNvbWUgcGhwNSBmaXhlcyBidXQgSSBhbSBzdXJlIHRoYXQgdGhlcmUgYXJlIG1vcmUgb3V0IHRoZXJlLjwvcD48L2xpPgA8bGk+MC4xLjYgLSBKYW51YXJ5LCAyMDA2ACAgICA8cD5Bbm90aGVyIHZlcnkgbWlub3IgY2hhbmdlLCBhZGRlZCBzb21lIHRleHQgdG8gdGhlIFBvc3RJbnN0YWxsIG1lc3NhZ2UuPC9wPjwvbGk+ADxsaT4wLjEuNSAtIE5vdmVtYmVyLCAyMDA1ADxsaT4wLjEuNCAtIE5vdmVtYmVyLCAyMDA1IC0gVmVyeSBtaW5vciBjaGFuZ2Ugd2l0aCByZXNwZWN0IHRvIGEgZm9yZ290dGVuIGFuZCBubyBsb25nZXIgbmVlZGVkIGZ1bmN0aW9uIGNhbGw8L2xpPgAgICAgPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBhIHJlZGlyZWN0IHBhZ2Ugb24gbG9naW4sIGxvZ291dCwgZm9yZ290IHBhc3N3b3JkLCBhbmQgY2hhbmdlIHNldHRpbmdzLCBhbmQgYWRkZWQgdGhlIHJldHVybnRvIGFuZCBmb3JtIHBhcmFtZXRlcnMgdG8gdGhlIHVzZXIgc2lkZSBvZiB0aGluZ3MsIGFsc28gZGlkIGEgY291cGxlIGxmIGxpdHRsZSBjbGVhbnVwcy4gIFRoaXMgdmVyc2lvbiByZXF1aXJlcyB2MC4xMSBhbmQgYWJvdmUgZm9yIGNlcnRhaW4uPC9wPjwvbGk+ADxsaT4wLjEuMyAtIE5vdmVtYmVyLCAyMDA1ADxsaT4wLjEuMiAtIE9jdG9iZXIsIDIwMDUgLSBBZGRlZCBmb3Jnb3R0ZW4gcGFzc3dvcmQgZnVuY3Rpb25hbGl0eTwvbGk+ADxsaT4wLjEuMSAtIE9jdG9iZXIsIDIwMDUgLSBGaXhlZCBpc3N1ZXMgd2l0aCBwcm9wZXJ0aWVzPC9saT4APGxpPjAuMS4wIC0gT2N0b2JlciwgMjAwNSAtIEluaXRpYWwgcmVsZWFzZTwvbGk+ADxsaT4wLjAuMSAtIE9jdG9iZXIsIDIwMDUgLSBJbml0aWFsIE5SUFQgKE5vdCBSZWFkeSBmb3IgUHJpbWUgVGltZSkgcmVsZWFzZTwvbGk+ADx1bD4AYWQAAMgGAACIBwAAABAAACsAAACfDwAATQ8AAEYPAAA/DwAAFA8AAOoOAACmDgAAXA4AACsOAADnDQAArQ0AAGwNAAA1DQAALw0AAP0MAAAqDAAAJAwAAB0MAAAcDAAAEwwAAA0MAAC9CwAAjAsAADILAADTCgAAsgoAAKsKAACkCgAAowoAAJoKAACUCgAAMQoAAAIKAADYCQAAngkAAHMJAAAfCQAAsQgAAIYIAACcBwAAlQcAAI4HAACIBwAAhwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L3VsPgAJPC9saT4ACTwvdWw+AAk8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byByZWRpcmVjdCBiYWNrIHRvIHRoZSBvcmlnaW5hbGx5IHJlcXVlc3RlZCBVUkwgKEdFVCBPTkxZKSBpZiBkaXJlY3QgYWNjZXNzIHRvIHByb3RlY3RlZCBjb250ZW50IHJlc3VsdGVkIGluIGEgNDAzIGVycm9yLCAgYW5kIGFuIGVycm9yIHBhZ2UgZXhpc3RzIHRvIGhhbmRsZSB0aGUgcmVxdWVzdCwgd2l0aCB7RnJvbnRFbmRVc2Vyc30gY2FsbGVkIG9uIGl0LjwvbGk+AAk8bGk+QWRkcyBmZXVfc21hcnR5OjpwcmVsb2FkX3VzZXJzKCk8L2xpPgAJPGxpPkFkZGVkIE9uQmVmb3JlTG9naW4gRXZlbnQsIHdoaWNoIGlzIGZpcmVkIGFmdGVyIHBhc3N3b3JkIGlzIHZhbGlkYXRlZCwgYnV0IGJlZm9yZSB0aGluZ3MgYXJlIHNldHVwLjwvbGk+AAk8bGk+Tm93IGRpc3BsYXkgdXNlcnMgdGhhdCBuZWVkIHRvIHZlcmlmeSB0aGVtc2VsdmVzIGRpZmZlcmVudGx5IGluIHVzZXJsaXN0LjwvbGk+AAk8bGk+TmV3IHByZWZlcmVuY2VzIGZvciB2ZXJpZnkgcGFnZS48L2xpPgAJPGxpPkltcHJvdmVtZW50cyB0byBlZGl0dXNlciBhbmQgZWRpdHVzZXIyIGFjdGlvbnMuPC9saT4ACTxsaT5GaXggYnVnIGluIHVzZXIgaGlzdG9yeSBhY3Rpb24uPC9saT4ACTxsaT5SZS1mYWN0b3IgdGhlIHZlcmlmeSBlbWFpbCB0ZW1wbGF0ZS48L2xpPgAJPGxpPkFkZHMgYWRtaW5pc3RyYXRpdmUgb3B0aW9uIHRvIHJlcXVpcmUgYSB1c2VyIHRvIHZlcmlmeSB0aGVtc2VsdmVzIGJlZm9yZSB0aGUgbmV4dCBsb2dpbi48L2xpPgAJPHVsPgAJPGxpPjIuMgAACTwvbGk+AAk8L3VsPgAgICAgICAgIDxsaT5NaW5vciBidWcgZml4ZXM8L2xpPgAJPGxpPlNlbmQgdGhlIE9uRGVsZXRlVXNlciBldmVudCBiZWZvcmUgdGhlIHVzZXIgaXMgcGh5c2ljYWxseSBkZWxldGVkIGZyb20gdGhlIGRhdGFiYXNlLjwvbGk+AAk8bGk+RGVwcmVjYXRlIHRoZSBub3RpZmljYXRpb24gZW1haWwgZnVuY3Rpb25hbGl0eS4uLiBiZXR0ZXIgdG8gdXNlIGV2ZW50IGhhbmRsZXJzLjwvbGk+AAk8bGk+QWRkcyB0aGUgRkVVIExvZ291dCBMaW5rIGNvbnRlbnQgdHlwZS48L2xpPgAJPGxpPlJlLWZhY3RvcnMgdGhlIGJ1bGsgYWN0aW9ucyBhbmQgYWRkcyBudW1lcm91cyBidWxrIGFjdGlvbnMgZm9yIHVzZXJzLjwvbGk+AAk8dWw+AAk8bGk+Mi4xAAAJPC9saT4APC91bD4ACTxsaT48c3Ryb25nPk5vdGU6IDxzdHJvbmc+IEZpeGVzIHRvIGxvc3QgdXNlcm5hbWUgdGVtcGxhdGUgc3R1ZmYuLi4geW91IHdpbGwgbmVlZCB0byByZXNldCB0aGUgdGVtcGxhdGUgdHlwZXMgdG8gZmFjdG9yeSBkZWZhdWx0cyBhbmQgdmVyaWZ5IHRoZSBjb250ZW50cyBvZiB5b3VyIHZhcmlvdXMgbG9zdC11c2VybmFtZSB0ZW1wbGF0ZXMuICh2Mi4wLjcpPC9saT4pAAk8bGk+QWRqdXN0IHN0eWxpbmcgb24gc29tZSBhZG1pbiB0ZW1wbGF0ZXMuPC9saT4ACTxsaT4ACTxwPlJlbmFtaW5nIGEgdXNlciBhY2NvdW50IG5vdyB3b3JrcyBtdWNoIGJldHRlci48L3A+AAk8cD5Zb3UgY2FuIG5vdyB1cGxvYWQgaW1hZ2VzIGZvciB1c2VycyB3aGVuIGNyZWF0aW5nIHVzZXJzLjwvcD4ACTxsaT5SZWZhY3RvciB0aGUgYWRtaW4gc2lkZSBhZGQvZWRpdCB1c2VyIGZ1bmN0aW9uYWxpdHkuAAk8bGk+SW1wcm92ZW1lbnRzIHRvIHVzZXIgaW1wb3J0IHRvIGhhbmRsZSBtdWx0aS1saW5lIHJlY29yZHMuPC9saT4ACTxsaT5GaXhlcyB0byB0aGUgcHJvdGVjdGVkIHNlY3Rpb24gaGVhZGVyLjwvbGk+AAk8bGk+UmVtb3ZlIHRoZSBzZXBhcmF0ZSBwZXJtaXNzaW9uIGZvciBlZGl0aW5nIEZFVSBtb2R1bGUgc2V0dGluZ3MuPC9saT4ACTxsaT5SZW1vdmUgdGhlIHNlcGFyYXRlIHBlcm1pc3Npb24gZm9yIGVkaXRpbmcgRkVVIFRlbXBsYXRlcy48L2xpPgAJPGxpPlJlbW92ZSBkZXBlbmRlbmN5IG9uIENNU01haWxlci48L2xpPgAJPGxpPlJlbW92ZSB0aGUgcmV0dXJubGFzdCBwYXJhbWV0ZXIuPC9saT4ACTwvbGk+AAk8L3VsPgAJPGxpPk90aGVyd2lzZSB1c2UgdGhlIHByZWZlcmVuY2VzIGFuZCB0ZW1wbGF0ZXMgc3BlY2lmaWVkIGluIHRoZSBhZG1pbiBuYXYuPC9saT4ACTxsaT5JZiBhIFBvc3RBY3Rpb25VUkwgd2FzIHNwZWNpZmllZCBhbmQgZXhpc3RzIGluIHRoZSBzZXNzaW9uLCB0aGVuIHJlZGlyZWN0IHRvIHRoYXQgVVJMLjwvbGk+AA==]]></data>
	</file>
	<file>
	  <filename>/action.addgroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmZ1bmN0aW9uIHN3YXAoJiRhLCYkYikKewogICR0bXAgPSAkYTsKICAkYSA9ICRiOwogICRiID0gJHRtcDsKfQoKCmZ1bmN0aW9uIHJlb3JkZXJfYnlfa2V5KCYkaW5wdXQsJGZsZCwka2V5cykKewogIGlmKCAhaXNfYXJyYXkoJGlucHV0KSApIHJldHVybjsKICAkdG1wID0gYXJyYXkoKTsKICBmb3JlYWNoKCAka2V5cyBhcyAkb25la2V5ICkgewogICAgZm9yZWFjaCggJGlucHV0IGFzICRyZWMgKSB7CiAgICAgIGlmKCAkcmVjWyRmbGRdID09ICRvbmVrZXkgKSB7CgkkdG1wW10gPSAkcmVjOwoJYnJlYWs7CiAgICAgIH0KICAgIH0KICB9CiAgJGlucHV0ID0gJHRtcDsKfQoKZnVuY3Rpb24gYWRqdXN0X29yZGVyX2J5X2tleXMoJiRpbnB1dCwkZmxkLCRrZXlzKQp7CiAgaWYoICFpc19hcnJheSgkaW5wdXQpICkgcmV0dXJuOwogICR0bXAgPSBhcnJheSgpOwoKICBmb3JlYWNoKCAka2V5cyBhcyAkb25la2V5ICkgewogICAgZm9yZWFjaCggJGlucHV0IGFzICRyZWMgKSB7CiAgICAgIGlmKCAkcmVjWyRmbGRdID09ICRvbmVrZXkgKSB7CgkkdG1wW10gPSAkcmVjOwoJYnJlYWs7CiAgICAgIH0KICAgIH0KICB9CiAgZm9yZWFjaCggJGlucHV0IGFzICRyZWMgKSB7CiAgICAkZjEgPSAwOwogICAgZm9yZWFjaCggJHRtcCBhcyAkdG1wcmVjICkgewogICAgICBpZiggJHJlY1skZmxkXSA9PSAkdG1wcmVjWyRmbGRdICkgewoJJGYxID0gMTsKCWJyZWFrOwogICAgICB9CiAgICB9CiAgICBpZiggJGYxID09IDAgKSAkdG1wW10gPSAkcmVjOwogIH0KICAkaW5wdXQgPSAkdG1wOwp9CgoKLy8KLy8gSW5pdGlhbGl6YXRpb24KLy8KJGdyb3VwbmFtZSA9ICcnOwokZ3JvdXBkZXNjID0gJyc7CiRnaWQgPSAtMTsKCi8vIGNoZWNrIHBlcm1pc3Npb25zIGFnYWluCmlmKCAhaXNzZXQoJHBhcmFtc1snZ3JvdXBfaWQnXSkgKSB7CiAgaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJ2FkZGdyb3VwJyApICkgewogICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgcmV0dXJuOwogIH0KfQplbHNlIHsKICBpZiggISR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCAnZWRpdGdyb3VwcycgKSApIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKICAgIHJldHVybjsKICB9Cn0KCiRwcm9wZGVmbiA9IGFycmF5KCk7CnsKICAkdG1wID0gJHRoaXMtPkdldFByb3BlcnR5RGVmbnMoKTsKICBpZiggY291bnQoJHRtcCkgPT0gMCApIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vcHJvcGVydGllcycpKTsKICAgIHJldHVybjsKICB9CiAgZm9yZWFjaCggJHRtcCBhcyAka2V5ID0+ICRyZWMgKSB7CiAgICAkcmVjWydyZXF1aXJlZCddID0gMDsKICAgICRwcm9wZGVmblska2V5XSA9ICRyZWM7CiAgfQp9CgppZiggaXNzZXQoJHBhcmFtc1snZ3JvdXBfaWQnXSkgKSB7CiAgLy8gd2UncmUgZWRpdGluZyBhIGdydW9wCiAgJGdpZCA9IChpbnQpJHBhcmFtc1snZ3JvdXBfaWQnXTsKICAkZ2luZm8gPSAkdGhpcy0+R2V0R3JvdXBJbmZvKCRnaWQpOwogIGlmKCBpc3NldCgkZ2luZm9bMF0pICYmICRnaW5mb1swXSA9PSBGQUxTRSApIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX2dyb3Vwbm90Zm91bmQnKSk7CiAgICByZXR1cm47CiAgfQogICRncm91cG5hbWUgPSAkZ2luZm9bJ2dyb3VwbmFtZSddOwogICRncm91cGRlc2MgPSAkZ2luZm9bJ2dyb3VwZGVzYyddOwoKICAvLyBsb2FkIHJlbGF0aW9ucywgYW5kIGFkanVzdCB0aGUgcHJvcGRlZm4gYXJyYXkKICAkcmVzID0gJHRoaXMtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoJGdpZCk7CiAgaWYoICRyZXNbMF0gPT0gRkFMU0UgKSB7CiAgICAvLyBlZGl0aW5nIGEgZ3JvdXAsIGJ1dCBubyBwcm9wZXJ0eSByZWxhdGlvbnMgKG1heWJlIHRoZSBncm91cHMgYXJlIGhlbGQgaW4gYSBjb25zdW1lciBtb2R1bGUsIGJ1dCBub3QgdGhlIHByb3BlcnR5IGRlZnMpLgogICAgLy8gdHJlYXQgaXQgbGlrZSB3ZSdyZSBhZGRpbmcgYSBncm91cC4KICAgIC8qCiAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCSAgICAgJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ3JvdXBwcm9wZXJ0aWVzJykpOwogICAgcmV0dXJuOwogICAgKi8KICB9CiAgZWxzZSB7CiAgICAvLyBzb3J0IHRoZW0gYnkgc29ydCBrZXkKICAgIHVhc29ydCgkcmVzLGFycmF5KCdjZ2VfYXJyYXknLCdjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXknKSk7CgogICAgLy8gc29ydCB0aGUgcHJvcGRlZm5zIGJ5IHRoZSBzb3J0IG9yZGVyLgogICAgJG5hbWVzID0gYXJyYXkoKTsKICAgIGZvcmVhY2goICRyZXMgYXMgJHRtcCApIHsKICAgICAgJG5hbWVzW10gPSAkdG1wWyduYW1lJ107CiAgICB9CiAgICBhZGp1c3Rfb3JkZXJfYnlfa2V5cygkcHJvcGRlZm4sJ25hbWUnLCRuYW1lcyk7CgogICAgLy8gdXBkYXRlIHRoZSBwcm9wZGVmbnMKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRyZXMpOyAkaSsrICkgewogICAgICBmb3IoICRqID0gMDsgJGogPCBjb3VudCgkcHJvcGRlZm4pOyAkaisrICkgewoJaWYoICRyZXNbJGldWyduYW1lJ10gPT0gJHByb3BkZWZuWyRqXVsnbmFtZSddICkgewoJICAkcHJvcGRlZm5bJGpdWydyZXF1aXJlZCddID0gJHJlc1skaV1bJ3JlcXVpcmVkJ107CgkgIGJyZWFrOwoJfQogICAgICB9CiAgICB9IC8vIGZvcgogIH0gLy8gZWxzZQogfQoKLy8gZXhjbHVkZSBwcm9wZXJ0eSBkZWZucyBmcm9tIG1vZHVsZXMKewogICR0bXAgPSBhcnJheSgpOwogIGZvcmVhY2goICRwcm9wZGVmbiBhcyAka2V5ID0+ICRyZWMgKSB7CiAgICBpZiggIWlzc2V0KCRyZWNbJ2V4dHJhJ11bJ21vZHVsZSddKSApICR0bXBbXSA9ICRyZWM7CiAgfQogICRwcm9wZGVmbiA9ICR0bXA7Cn0KCmlmIChpc3NldCAoJHBhcmFtc1snY2FuY2VsJ10pKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICdncm91cHMnICk7CmlmKCBpc3NldCgkcGFyYW1zWydtb3ZldXAnXSkgKSB7CiAgICAvLyB1cGRhdGUgdGhlIHByb3BkZWZuIHdpdGggc3RhdHVzIHZhbHVlcwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHBhcmFtc1snaW5wdXRfbmFtZSddKTsgJGkrKyApIHsKICAgICAgICAkbmFtZSA9ICRwYXJhbXNbJ2lucHV0X25hbWUnXVskaV07CiAgICAgICAgZm9yKCAkaiA9IDA7ICRqIDwgY291bnQoJHByb3BkZWZuKTsgJGorKyApIHsKICAgICAgICAgICAgaWYoICRuYW1lID09ICRwcm9wZGVmblskal1bJ25hbWUnXSApIHsKICAgICAgICAgICAgICAgICRwcm9wZGVmblskal1bJ3JlcXVpcmVkJ10gPSAkcGFyYW1zWydpbnB1dF9yZXF1aXJlZCddWyRpXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2dyb3VwbmFtZSddKSApICRncm91cG5hbWUgPSB0cmltKCRwYXJhbXNbJ2lucHV0X2dyb3VwbmFtZSddKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9ncm91cGRlc2MnXSkgKSAkZ3JvdXBkZXNjID0gdHJpbSgkcGFyYW1zWydpbnB1dF9ncm91cGRlc2MnXSk7CgogICAgLy8gd2UncmUgbW92aW5nIHN0dWZmIHVwCiAgICAvLyBzbyBhZGp1c3QgdGhlIHByb3BkZWZuIGFycmF5CiAgICAkaWR4ID0gKGludCkkcGFyYW1zWydtb3ZldXAnXSAtIDE7CiAgICBzd2FwKCRwYXJhbXNbJ2lucHV0X25hbWUnXVskaWR4XSwkcGFyYW1zWydpbnB1dF9uYW1lJ11bJGlkeC0xXSk7CiAgICByZW9yZGVyX2J5X2tleSgkcHJvcGRlZm4sJ25hbWUnLCRwYXJhbXNbJ2lucHV0X25hbWUnXSk7Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ21vdmVkb3duJ10pICkgewogICAgLy8gdXBkYXRlIHRoZSBwcm9wZGVmbiB3aXRoIHN0YXR1cyB2YWx1ZXMKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYXJhbXNbJ2lucHV0X25hbWUnXSk7ICRpKysgKSB7CiAgICAgICAgJG5hbWUgPSAkcGFyYW1zWydpbnB1dF9uYW1lJ11bJGldOwogICAgICAgIGZvciggJGogPSAwOyAkaiA8IGNvdW50KCRwcm9wZGVmbik7ICRqKysgKSB7CiAgICAgICAgICAgIGlmKCAkbmFtZSA9PSAkcHJvcGRlZm5bJGpdWyduYW1lJ10gKSB7CiAgICAgICAgICAgICAgICAkcHJvcGRlZm5bJGpdWydyZXF1aXJlZCddID0gJHBhcmFtc1snaW5wdXRfcmVxdWlyZWQnXVskaV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9ncm91cG5hbWUnXSkgKSAkZ3JvdXBuYW1lID0gdHJpbSgkcGFyYW1zWydpbnB1dF9ncm91cG5hbWUnXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfZ3JvdXBkZXNjJ10pICkgJGdyb3VwZGVzYyA9IHRyaW0oJHBhcmFtc1snaW5wdXRfZ3JvdXBkZXNjJ10pOwoKICAgIC8vIHdlJ3JlIG1vdmluZyBzdHVmZiBkb3duCiAgICAvLyBzbyBhZGp1c3QgdGhlIHByb3BkZWZuIGFycmF5CiAgICAkaWR4ID0gKGludCkkcGFyYW1zWydtb3ZlZG93biddIC0gMTsKICAgIHN3YXAoJHBhcmFtc1snaW5wdXRfbmFtZSddWyRpZHhdLCRwYXJhbXNbJ2lucHV0X25hbWUnXVskaWR4KzFdKTsKICAgIHJlb3JkZXJfYnlfa2V5KCRwcm9wZGVmbiwnbmFtZScsJHBhcmFtc1snaW5wdXRfbmFtZSddKTsKfQppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCdkb19hZGRncm91cCcsJHJldHVybmlkLCRwYXJhbXMpOwp9CgovLyBwb3B1bGF0ZSB0aGUgdGVtcGxhdGUKaWYoIGlzc2V0KCAkcGFyYW1zWydlcnJvciddICkgKSAkc21hcnR5LT5hc3NpZ24oJ2Vycm9yJywkcGFyYW1zWydlcnJvciddKTsKaWYoIGlzc2V0KCAkcGFyYW1zWydtZXNzYWdlJ10gKSApICRzbWFydHktPmFzc2lnbignbWVzc2FnZScsJHBhcmFtc1snbWVzc2FnZSddKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsICR0aGlzLT5MYW5nKCdhZGRncm91cCcpKTsKaWYoICRnaWQgPiAwICkgewogICRzbWFydHktPmFzc2lnbignaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdncm91cF9pZCcsJGdpZCkpOwogICRzbWFydHktPmFzc2lnbigndGl0bGUnLCAkdGhpcy0+TGFuZygnZWRpdGdyb3VwJykpOwogfQokc21hcnR5LT5hc3NpZ24gKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwnYWRkZ3JvdXAnLCRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24gKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQgKCkpOwokc21hcnR5LT5hc3NpZ24gKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbiAoJ2NhbmNlbCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdjYW5jZWwnLCR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwoKJHNtYXJ0eS0+YXNzaWduICgncHJvbXB0X2dyb3VwbmFtZScsICR0aGlzLT5MYW5nICgnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduICgncHJvbXB0X2dyb3VwZGVzYycsJHRoaXMtPkxhbmcgKCdkZXNjcmlwdGlvbicpKTsKJGNvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwokYWRkdGV4dCA9ICcnOwppZiggISRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFMpICYmICEkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMpICkgewogICRhZGR0ZXh0PSdyZWFkb25seT0icmVhZG9ubHkiIGRpc2FibGVkPSJkaXNhYmxlZCInOwp9CiRzbWFydHktPmFzc2lnbiAoJ2lucHV0X2dyb3VwbmFtZScsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQgKCRpZCwgJ2lucHV0X2dyb3VwbmFtZScsICRncm91cG5hbWUsIDIwLCA4MCwgJGFkZHRleHQpKTsKJHNtYXJ0eS0+YXNzaWduICgnaW5wdXRfZ3JvdXBkZXNjJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCAoJGlkLCAnaW5wdXRfZ3JvdXBkZXNjJywgJGdyb3VwZGVzYywgODAsIDI1NSwgJGFkZHRleHQpKTsKCi8vIGRpc3BsYXkgYSBsaXN0IG9mIHRoZSBwcm9wZXJ0aWVzIGluIGEgZm9ybQovLyB0byBhbGxvdyB0aGUgdXNlciB0byBwaWNrIHdoaWNoIG9uZXMgYXJlIHJlcXVpcmVkIGFuZCB3aGljaCBvbmVzIGFyZW50Lgokcm93YXJyYXkgPSBhcnJheSgpOwoka2V5cyA9IGFycmF5X2tleXMoJHRoaXMtPnR5cGVzKTsKJG9wdGlvbnMgPSBhcnJheSggJHRoaXMtPkxhbmcoJ29mZicpID0+IDAsCgkJICAkdGhpcy0+TGFuZygnb3B0aW9uYWwnKSA9PiAxLAoJCSAgJHRoaXMtPkxhbmcoJ3JlcXVpcmVkJykgPT4gMiwKCQkgICR0aGlzLT5MYW5nKCdoaWRkZW4nKSA9PiAzLAoJCSAgJHRoaXMtPkxhbmcoJ3JlYWRvbmx5JykgPT4gNCk7CgokdGhlbWVPYmplY3QgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKJGltZ191cCA9ICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vc29ydF91cC5naWYnLCR0aGlzLT5MYW5nKCdtb3ZlX3VwJywnJywnJywnc3lzdGVtaWNvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWdfdXAnLCRpbWdfdXApOwokaW1nX2Rvd24gPSAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3NvcnRfZG93bi5naWYnLCR0aGlzLT5MYW5nKCdtb3ZlX2Rvd24nLCcnLCcnLCdzeXN0ZW1pY29uJykpOwokc21hcnR5LT5hc3NpZ24oJ2ltZ19kb3duJywkaW1nX2Rvd24pOwoKJHNvcnRvcmRlciA9IDE7CmZvcmVhY2goICRwcm9wZGVmbiBhcyAkZGVmbiApIHsKICAkb25lcm93ID0gbmV3IFN0ZENsYXNzKCk7CiAgJG9uZXJvdy0+bmFtZSA9ICRkZWZuWyduYW1lJ107CiAgJG9uZXJvdy0+cHJvbXB0ID0gJGRlZm5bJ3Byb21wdCddOwogICRvbmVyb3ctPnR5cGUgPSAkdGhpcy0+TGFuZygka2V5c1skZGVmblsndHlwZSddXSk7CiAgJG9uZXJvdy0+aGlkZGVuID0gJzxkaXY+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdpbnB1dF9uYW1lW10nLCRkZWZuWyduYW1lJ10pLic8L2Rpdj4nOwogICRvbmVyb3ctPnJlcXVpcmVkID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oICRpZCwgJ2lucHV0X3JlcXVpcmVkW10nLCAkb3B0aW9ucywtMSwgJGRlZm5bJ3JlcXVpcmVkJ10pOwogICRvbmVyb3ctPmVuY3J5cHRlZCA9ICRkZWZuWydlbmNyeXB0J107CgogIGlmKCAkc29ydG9yZGVyID4gMSApIHsKICAgICRvbmVyb3ctPm1vdmV1cF9pZHggPSAkc29ydG9yZGVyOwogICAgJG9uZXJvdy0+bW92ZXVwID0gJHRoaXMtPkNHQ3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdtb3ZldXAnLCRzb3J0b3JkZXIsJycsJ2ljb25zL3N5c3RlbS9zb3J0X3VwLmdpZicpOwogIH0KICBpZiggJHNvcnRvcmRlciA8IGNvdW50KCRwcm9wZGVmbikgKSB7CiAgICAkb25lcm93LT5tb3ZlZG93bl9pZHggPSAkc29ydG9yZGVyOwogICAgJG9uZXJvdy0+bW92ZWRvd24gPSAkdGhpcy0+Q0dDcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ21vdmVkb3duJywkc29ydG9yZGVyLCcnLCdpY29ucy9zeXN0ZW0vc29ydF9kb3duLmdpZicpOwogIH0KCiAgJHJvd2FycmF5W10gPSAkb25lcm93OwogICsrJHNvcnRvcmRlcjsKfQoKJHNtYXJ0eS0+YXNzaWduKCdwcm9wcycsICRyb3dhcnJheSk7CiRzbWFydHktPmFzc2lnbigncHJvcGNvdW50Jyxjb3VudCgkcm93YXJyYXkpKTsKJHNtYXJ0eS0+YXNzaWduKCdzb3J0b3JkZXJ0ZXh0JywgJHRoaXMtPkxhbmcoJ3NvcnRvcmRlcicpKTsKJHNtYXJ0eS0+YXNzaWduKCduYW1ldGV4dCcsJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0dGV4dCcsICR0aGlzLT5MYW5nKCdwcm9tcHQnKSk7CiRzbWFydHktPmFzc2lnbigndHlwZXRleHQnLCR0aGlzLT5MYW5nKCd0eXBlJykpOwokc21hcnR5LT5hc3NpZ24oJ2ZpZWxkc3RhdHVzdGV4dCcsJHRoaXMtPkxhbmcoJ2ZpZWxkc3RhdHVzJykpOwokc21hcnR5LT5hc3NpZ24oJ3VzZWRpbmxvc3R1bnRleHQnLCR0aGlzLT5MYW5nKCd1c2VkaW5sb3N0dW4nKSk7CgovLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlICgnYWRkZ3JvdXAudHBsJyk7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.addprop.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJ2FkZHByb3AnICkgKSBleGl0OwoKIwojIEluaXRpYWxpemF0aW9uCiMKJHR5cGVzID0gJHRoaXMtPnR5cGVzOwp1bnNldCgkdHlwZXNbJ2RhdGEnXSk7CiRmaWVsZHR5cGVzID0gJHRoaXMtPmxhbmdpZnlLZXlzKCR0eXBlcyk7CiR0aXRsZSA9ICR0aGlzLT5MYW5nKCdhZGRwcm9wJyk7CiRkZWZuID0gYXJyYXkoKTsKJGRlZm5bJ25hbWUnXSA9ICcnOwokZGVmblsncHJvbXB0J10gPSAnJzsKJGRlZm5bJ3R5cGUnXSA9IDA7CiRkZWZuWydsZW5ndGgnXSA9IDgwOwokZGVmblsnbWF4bGVuZ3RoJ10gPSAyNTU7CiRkZWZuWydhdHRyaWJzJ10gPSAnJzsKJGRlZm5bJ2ZvcmNlX3VuaXF1ZSddID0gMDsKJGRlZm5bJ2VuY3J5cHQnXSA9IDA7CiRhdHRyaWJzID0gYXJyYXkoKTsKJHNlbG9wdGlvbnMgPSAnJzsKJHN0YXR1cyA9ICcnOwokbWVzc2FnZSA9ICcnOwokcHJvcG5hbWUgPSAnJzsKCgojCiMgUmVhZCBQYXJhbWV0ZXJzCiMKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApIHsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAncHJvcGVydGllcycgKTsKcmV0dXJuOwp9CmlmKCBpc3NldCgkcGFyYW1zWydwcm9wbmFtZSddKSApIHsKICAgICRwcm9wbmFtZSA9IHRyaW0oJHBhcmFtc1sncHJvcG5hbWUnXSk7CiAgICAkdGl0bGUgPSAkdGhpcy0+TGFuZygnZWRpdHByb3AnLCRwcm9wbmFtZSk7CiAgICAkZGVmbiA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm4oJHByb3BuYW1lKTsKICAgIGlmKCAkZGVmbiA9PSBGQUxTRSApIHsKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICRwYXJtc1snZXJyb3InXSA9IDE7CiAgICAgICAgJHBhcm1zWydtZXNhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9wcm9wbm90Zm91bmQnKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ3Byb3BlcnRpZXMnLCRwYXJtcyk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgJHRtcCA9ICR0aGlzLT5HZXRTZWxlY3RPcHRpb25zKCRwcm9wbmFtZSk7CiAgICBpZiggJHRtcCApIHsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgaWYoICRrZXkgPT0gJHZhbCApIHsKICAgICAgICAgICAgICAgICRzZWxvcHRpb25zIC49ICIkdmFsXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHNlbG9wdGlvbnMgLj0gIiRrZXk9JHZhbFxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGlmKCBpc3NldCgkZGVmblsnYXR0cmlicyddKSAmJiAhZW1wdHkoJGRlZm5bJ2F0dHJpYnMnXSkgKSB7CiAgICAgICAgJGF0dHJpYnMgPSB1bnNlcmlhbGl6ZSgkZGVmblsnYXR0cmlicyddKTsKICAgIH0KfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X3R5cGUnXSkgKSB7CiAgICAkZGVmblsndHlwZSddID0gKGludCkkcGFyYW1zWydpbnB1dF90eXBlJ107Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2xlbmd0aCddKSApIHsKICAgICRkZWZuWydsZW5ndGgnXSA9IChpbnQpJHBhcmFtc1snaW5wdXRfbGVuZ3RoJ107Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X21heGxlbmd0aCddKSApIHsKICAgICRkZWZuWydtYXhsZW5ndGgnXSA9IChpbnQpJHBhcmFtc1snaW5wdXRfbWF4bGVuZ3RoJ107Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X25hbWUnXSkgKSB7CiAgICAkZGVmblsnbmFtZSddID0gc3RydG9sb3dlcih0cmltKCRwYXJhbXNbJ2lucHV0X25hbWUnXSkpOwogICAgJGRlZm5bJ25hbWUnXSA9IG11bmdlX3N0cmluZ190b191cmwoJGRlZm5bJ25hbWUnXSk7CiAgICAkZGVmblsnbmFtZSddID0gc3RyX3JlcGxhY2UoJy0nLCdfJywkZGVmblsnbmFtZSddKTsKfQppZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfcHJvbXB0J10pICkgewogICAgJGRlZm5bJ3Byb21wdCddID0gdHJpbSgkcGFyYW1zWydpbnB1dF9wcm9tcHQnXSk7Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2ZvcmNlX3VuaXF1ZSddKSApIHsKICAgICRkZWZuWydmb3JjZV91bmlxdWUnXSA9IChpbnQpJHBhcmFtc1snaW5wdXRfZm9yY2VfdW5pcXVlJ107Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2VuY3J5cHQnXSkgKSB7CiAgICAkZGVmblsnZW5jcnlwdCddID0gKGludCkkcGFyYW1zWydpbnB1dF9lbmNyeXB0J107Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X3NlbG9wdGlvbnMnXSkgKSB7CiAgICAkc2Vsb3B0aW9ucyA9ICRwYXJhbXNbJ2lucHV0X3NlbG9wdGlvbnMnXTsKfQppZiAoaXNzZXQoJHBhcmFtc1snaW5wdXRfcmFkaW9vcHRpb25zJ10pKSB7CiAgICAkc2Vsb3B0aW9ucyA9ICRwYXJhbXNbJ2lucHV0X3JhZGlvb3B0aW9ucyddOwp9CmZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICBpZiggc3RhcnRzd2l0aCgka2V5LCdpbnB1dF9hdHRyaWJfJykgKSB7CiAgICAgICAgJGF0dHJpYiA9IHN1YnN0cigka2V5LDEzKTsKICAgICAgICAkYXR0cmlic1skYXR0cmliXSA9ICR2YWx1ZTsKICAgIH0KfQppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgaWYoIGVtcHR5KCRkZWZuWyduYW1lJ10pIHx8IGVtcHR5KCRkZWZuWydwcm9tcHQnXSkgKSB7CiAgICAgICAgJHN0YXR1cyA9ICdlcnJvcic7CiAgICAgICAgJG1lc3NhZ2UgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpOwogICAgfQoKICAgIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiAkc2Vsb3B0aW9ucyApIHsKICAgICAgICAkb3B0aW9ucyA9IGFycmF5KCk7CiAgICAgICAgJHRtcCA9IGV4cGxvZGUoIlxuIiwgJHNlbG9wdGlvbnMpOwogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgJG9uZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgIGlmKCAhZW1wdHkoJG9uZSkgKSB7CiAgICAgICAgICAgICAgICAkb3B0aW9uc1tdID0gJG9uZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBpZiggZW1wdHkoJHN0YXR1cykgKSB7CiAgICAgICAgc3dpdGNoKCRkZWZuWyd0eXBlJ10pIHsKICAgICAgICBjYXNlICcwJzogLyogdGV4dCAqLwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICc2JzogLyogaW1hZ2UgKi8KICAgICAgICAgICAgJGRlZm5bJ2xlbmd0aCddID0gMjU1OwogICAgICAgICAgICAkZGVmblsnZW5jcnlwdCddID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnMic6IC8qIGVtYWlsICovCiAgICAgICAgICAgIC8vIGVtYWlsIGZpZWxkcyBjYW5ub3QgYmUgZW5jcnlwdGVkLgogICAgICAgICAgICAkZGVmblsnZW5jcnlwdCddID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxOiAgIC8qIGNoZWNrYm94ICovCiAgICAgICAgICAgICRkZWZuWydsZW5ndGgnXSA9IDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMzogICAvKiB0ZXh0YXJlYSAqLwogICAgICAgICAgICAkZGVmblsnbGVuZ3RoJ10gPSAyNTU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgNDoKICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICRkZWZuWydsZW5ndGgnXSA9IGNvdW50KCRvcHRpb25zKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA3OiAvKiByYWRpb2J1dHRvbnMgKi8KICAgICAgICAgICAgJGRlZm5bJ2xlbmd0aCddID0gY291bnQoJG9wdGlvbnMpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDg6IC8qIGRhdGUgKi8KICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkZGVmblsnbGVuZ3RoJ10gPSAxOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGlmKCAoKCRkZWZuWyd0eXBlJ10gPT0gMCB8fCAkZGVmblsndHlwZSddID09IDIpICYmICggJGRlZm5bJ2xlbmd0aCddIDwgMSB8fCAkZGVmblsnbGVuZ3RoJ10gPiAyNTUgfHwgJGRlZm5bJ21heGxlbmd0aCddIDwgMSB8fCAkZGVmblsnbWF4bGVuZ3RoJ10gPiAxMDI0IHx8ICRkZWZuWydtYXhsZW5ndGgnXSA8ICRkZWZuWydsZW5ndGgnXSApKSB8fAogICAgICAgICAgICAoKCRkZWZuWyd0eXBlJ10gPT0gNCB8fCAkZGVmblsndHlwZSddID09IDUgfHwgJGRlZm5bJ3R5cGUnXSA9PSA3KSAmJiAkc2Vsb3B0aW9ucyA9PSAnJyApIHx8CiAgICAgICAgICAgICgoJGRlZm5bJ3R5cGUnXSA9PSA2KSAmJiAoJGRlZm5bJ2xlbmd0aCddIDwgMTAgfHwgJGRlZm5bJ2xlbmd0aCddID4gMTAyNCkpCiAgICAgICAgICAgICl7CiAgICAgICAgICAgICRzdGF0dXMgPSAnZXJyb3InOwogICAgICAgICAgICAkbWVzc2FnZSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkcGFyYW1zJyk7CiAgICAgICAgfQogICAgfQoKICAgIGlmKCBlbXB0eSgkc3RhdHVzKSApIHsKICAgICAgICAkZGVmblsnYXR0cmlicyddID0gc2VyaWFsaXplKCRhdHRyaWJzKTsKICAgIH0KCiAgICBpZiggZW1wdHkoJHN0YXR1cykgKSB7CiAgICAgICAgaWYoICFlbXB0eSgkcHJvcG5hbWUpICkgewogICAgICAgICAgICAkdG1wID0gJHRoaXMtPlNldFByb3BlcnR5RGVmbiggJHByb3BuYW1lLCAkZGVmblsnbmFtZSddLCAkZGVmblsncHJvbXB0J10sICRkZWZuWyd0eXBlJ10sICRkZWZuWydsZW5ndGgnXSwgJGRlZm5bJ21heGxlbmd0aCddLCAkZGVmblsnYXR0cmlicyddLCAkZGVmblsnZm9yY2VfdW5pcXVlJ10sICRkZWZuWydlbmNyeXB0J10gKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIE5ldyBwcm9wZXJ0eQogICAgICAgICAgICAkdG1wID0gJHRoaXMtPkFkZFByb3BlcnR5RGVmbiggJGRlZm5bJ25hbWUnXSwgJGRlZm5bJ3Byb21wdCddLCAkZGVmblsndHlwZSddLCAkZGVmblsnbGVuZ3RoJ10sICRkZWZuWydtYXhsZW5ndGgnXSwgJGRlZm5bJ2F0dHJpYnMnXSwgJGRlZm5bJ2ZvcmNlX3VuaXF1ZSddLCAkZGVmblsnZW5jcnlwdCddICk7CiAgICAgICAgICAgIGlmKCAhJHRtcFswXSApIHsKICAgICAgICAgICAgICAgICRzdGF0dXMgPSAnZXJyb3InOwogICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkdG1wWzFdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmKCBlbXB0eSgkc3RhdHVzKSAmJiBpc3NldCgkb3B0aW9ucykgJiYgJG9wdGlvbnMgKSB7CiAgICAgICAgaWYoICFlbXB0eSgkcHJvcG5hbWUpICkgewogICAgICAgICAgICAkdGhpcy0+RGVsZXRlU2VsZWN0T3B0aW9ucygkcHJvcG5hbWUpOwogICAgICAgIH0KCiAgICAgICAgJHRtcCA9ICR0aGlzLT5BZGRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10sJG9wdGlvbnMpOwogICAgICAgIGlmKCAhJHRtcFswXSApIHsKICAgICAgICAgICAgJHN0YXR1cyA9ICdlcnJvcic7CiAgICAgICAgICAgICRtZXNzYWdlID0gJHRtcFsxXTsKICAgICAgICB9CiAgICB9CgogICAgaWYoIGVtcHR5KCRzdGF0dXMpICkgewogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcGVyYXRpb25fY29tcGxldGVkJykpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCAkaWQsICdwcm9wZXJ0aWVzJyApOwogICAgfQoKICAgIC8vCiAgICAvLyBpZiB3ZSBnZXQgaGVyZSwgaXQncyBhbiBlcnJvciBvZiBzb21lIHNvcnQKICAgIC8vCn0KCiMKIyBHaXZlIGV2ZXlydGhpbmcgdG8gc21hcnR5CiMKaWYoICFlbXB0eSgkc3RhdHVzKSApIHsKICAgICRzbWFydHktPmFzc2lnbignZXJyb3InLDEpOwp9CmlmKCAhZW1wdHkoJG1lc3NhZ2UpICkgewogICAgJHNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywkbWVzc2FnZSk7Cn0KJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZGRwcm9wJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCcnLCRwYXJhbXMpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsJHRpdGxlKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbmFtZScsJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5mb19uYW1lJywkdGhpcy0+TGFuZygnaW5mb19uYW1lJykpOwoKJHF1ZXJ5ID0gJ1NFTEVDVCBjb3VudChpZCkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMnOwokbnVzZXJzID0gJGRiLT5HZXRPbmUoJHF1ZXJ5KTsKJHF1ZXJ5ID0gJ1NFTEVDVCBjb3VudChpZCkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBzJzsKJG5ncm91cHMgPSAkZGItPkdldE9uZSgkcXVlcnkpOwppZiggIWVtcHR5KCRwcm9wbmFtZSkgJiYgKCRudXNlcnMgPiAwIHx8ICRuZ3JvdXBzID4gMCkgKSB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X25hbWUnLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2lucHV0X25hbWUnLCRwcm9wbmFtZSkuJHByb3BuYW1lKTsKfQplbHNlIHsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfbmFtZScsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X25hbWUnLCRkZWZuWyduYW1lJ10sIDMwLCAzMCApKTsKfQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9wcm9tcHQnLCR0aGlzLT5MYW5nKCdwcm9tcHQnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfcHJvbXB0JywKICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9wcm9tcHQnLCRkZWZuWydwcm9tcHQnXSwgODAsIDI1NSApKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdHlwZScsJHRoaXMtPkxhbmcoJ3R5cGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdHlwZScsCiAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93biggJGlkLCAnaW5wdXRfdHlwZScsICRmaWVsZHR5cGVzLCAtMSwgJGRlZm5bJ3R5cGUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25jaGFuZ2U9InRoaXMuZm9ybS5zdWJtaXQoKTsiJykpOwppZiggJGRlZm5bJ3R5cGUnXSA9PSAwIHx8ICRkZWZuWyd0eXBlJ10gPT0gMiApIHsKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfZm9yY2VfdW5pcXVlJywKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnaW5wdXRfZm9yY2VfdW5pcXVlJywkZGVmblsnZm9yY2VfdW5pcXVlJ10pKTsKfQppZiggIWlzc2V0KCRwYXJhbXNbJ3Byb3BuYW1lJ10pICkgewogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9lbmNyeXB0JywKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnaW5wdXRfZW5jcnlwdCcsJGRlZm5bJ2VuY3J5cHQnXSkpOwp9CmVsc2UgewogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9lbmNyeXB0JywkZGVmblsnZW5jcnlwdCddPyR0aGlzLT5MYW5nKCd5ZXMnKTokdGhpcy0+TGFuZygnbm8nKSk7Cn0KCiRzbWFydHktPmFzc2lnbignZGVmbicsJGRlZm4pOwokc21hcnR5LT5hc3NpZ24oJ29yaWdfdHlwZScsCiAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JpZ190eXBlJywgJGRlZm5bJ3R5cGUnXSkpOwokc21hcnR5LT5hc3NpZ24gKCdzdWJtaXQnLAogICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpICkpOwokc21hcnR5LT5hc3NpZ24gKCdjYW5jZWwnLAogICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnY2FuY2VsJywkdGhpcy0+TGFuZygnY2FuY2VsJykpKTsKJGZsZHMgPSBhcnJheSgpOwpzd2l0Y2goICRkZWZuWyd0eXBlJ10gKSB7CmNhc2UgMDoKICAgICRmbGRzW10gPSBhcnJheSgkdGhpcy0+TGFuZygnbGVuZ3RoJykuJHRoaXMtPkxhbmcoJ2xlbmd0aGNvbW1lbnQnKSwKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfbGVuZ3RoJywkZGVmblsnbGVuZ3RoJ10sMywzKSk7CiAgICAkZmxkc1tdID0gYXJyYXkoJHRoaXMtPkxhbmcoJ21heGxlbmd0aCcpLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9tYXhsZW5ndGgnLCRkZWZuWydtYXhsZW5ndGgnXSwzLDMpKTsKICAgIGJyZWFrOwpjYXNlIDE6IC8vIGNoZWNrYm94CiAgICAkdmFsID0gKGlzc2V0KCRhdHRyaWJzWydjaGVja2VkJ10pKT8kYXR0cmlic1snY2hlY2tlZCddOjA7CiAgICAkZmxkc1tdID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3Byb21wdF9kZmx0X2NoZWNrZWQnKSwKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X2F0dHJpYl9jaGVja2VkJywxLCR2YWwpKTsKICAgIGJyZWFrOwpjYXNlIDI6CiAgICAkZmxkc1tdID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2xlbmd0aCcpLiR0aGlzLT5MYW5nKCdsZW5ndGhjb21tZW50JyksCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X2xlbmd0aCcsJGRlZm5bJ2xlbmd0aCddLDMsMykpOwogICAgJGZsZHNbXSA9IGFycmF5KCR0aGlzLT5MYW5nKCdtYXhsZW5ndGgnKSwKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfbWF4bGVuZ3RoJywkZGVmblsnbWF4bGVuZ3RoJ10sMywzKSk7CiAgICBicmVhazsKY2FzZSAzOgogICAgJHZhbCA9IChpc3NldCgkYXR0cmlic1snd3lzaXd5ZyddKSk/JGF0dHJpYnNbJ3d5c2l3eWcnXTowOwogICAgJGZsZHNbXSA9IGFycmF5KCR0aGlzLT5MYW5nKCdwcm9wX3RleHRhcmVhX3d5c2l3eWcnKSwKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdpbnB1dF9hdHRyaWJfd3lzaXd5ZycsJzAnKS4KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2lucHV0X2F0dHJpYl93eXNpd3lnJywnMScsJHZhbCkpOzsKICAgIGJyZWFrOwpjYXNlIDQ6CmNhc2UgNToKICAgICRmbGRzW10gPSBhcnJheSgkdGhpcy0+TGFuZygnc2Vsb3B0aW9ucycpLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJHNlbG9wdGlvbnMsJ2lucHV0X3NlbG9wdGlvbnMnKSk7CiAgICBicmVhazsKY2FzZSA2OgogICAgLy8gbm90aGluZyBoZXJlCiAgICBicmVhazsKY2FzZSA3OgogICAgJGZsZHNbXSA9IGFycmF5KCR0aGlzLT5MYW5nKCdyYWRpb29wdGlvbnMnKSwKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLCRzZWxvcHRpb25zLCdpbnB1dF9yYWRpb29wdGlvbnMnKSk7CiAgICBicmVhazsKY2FzZSA4OiAvKiBkYXRlICovCiAgICAkZmxkc1tdID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3N0YXJ0X3llYXInKS4nOicsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X2F0dHJpYl9zdGFydHllYXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzc2V0KCRhdHRyaWJzWydzdGFydHllYXInXSkpPyRhdHRyaWJzWydzdGFydHllYXInXTonLTUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0KSk7CiAgICAkZmxkc1tdID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2VuZF95ZWFyJykuJzonLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9hdHRyaWJfZW5keWVhcicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNzZXQoJGF0dHJpYnNbJ2VuZHllYXInXSkpPyRhdHRyaWJzWydlbmR5ZWFyJ106JysxMCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LDQpKTsKICAgIGJyZWFrOwp9CiRzbWFydHktPmFzc2lnbignZmllbGRzJywkZmxkcyk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkZHByb3AudHBsJyk7CnJldHVybjsKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_bulkactions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCnVzZSBcRnJvbnRFbmRVc2Vyc1x1c2VyX2VkaXRfYXNzaXN0YW50OwppZiggIWlzc2V0KCAkZ0NtcyApICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3VzZXJzJyk7CgokZGIgPSBcY2dlX3V0aWxzOjpnZXRfZGIoKTsKdHJ5IHsKICAgICRqb2IgPSB0cmltKCRwYXJhbXNbJ2pvYiddKTsKICAgICRzZWwgPSB1bnNlcmlhbGl6ZShiYXNlNjRfZGVjb2RlKCRwYXJhbXNbJ3VpZHMnXSkpOwogICAgJHNlbCA9IGFycmF5X3NsaWNlKCRzZWwsMCwyNTApOyAvLyBtYXhpbXVtIG9mIDI1MCBpZHMuCiAgICBpZiggIWlzX2FycmF5KCRzZWwpIHx8ICFjb3VudCgkc2VsKSApIHRocm93IG5ldyBcRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CgogICAgc3dpdGNoKCAkam9iICkgewogICAgY2FzZSAnZGVsZXRlJzoKICAgICAgICBpZiggISR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdyZW1vdmV1c2VycycpICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKICAgICAgICB0cnkgewogICAgICAgICAgICAkZGItPkJlZ2luVHJhbnMoKTsKICAgICAgICAgICAgZm9yZWFjaCggJHNlbCBhcyAkb25ldWlkICkgewogICAgICAgICAgICAgICAgJHRoaXMtPkRlbGV0ZVVzZXJGdWxsKCAkb25ldWlkICk7CiAgICAgICAgICAgICAgICAkcGFybXMgPSBbICd1aWQnID0+ICRvbmV1aWQgXTsKICAgICAgICAgICAgICAgICR0aGlzLT5fU2VuZE5vdGlmaWNhdGlvbkVtYWlsKCdPbkRlbGV0ZVVzZXInLCRwYXJtcyk7IC8vIGRlcHJlY2F0ZWQKICAgICAgICAgICAgfQogICAgICAgICAgICAkZGItPkNvbW1pdFRyYW5zKCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkdGhpcy0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICB0aHJvdyAkZTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnZGlzYWJsZSc6CiAgICBjYXNlICdlbmFibGUnOgogICAgICAgIGlmKCAhJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ2VkaXR1c2VycycpICkgdGhyb3cgbmV3IFxFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKICAgICAgICB0cnkgewogICAgICAgICAgICAkZGItPkJlZ2luVHJhbnMoKTsKICAgICAgICAgICAgZm9yZWFjaCggJHNlbCBhcyAkb25ldWlkICkgewogICAgICAgICAgICAgICAgJHVzZXIgPSBuZXcgdXNlcl9lZGl0X2Fzc2lzdGFudCgkb25ldWlkKTsKICAgICAgICAgICAgICAgICR1c2VyLT5pc19kaXNhYmxlZCA9ICgkam9iID09ICdkaXNhYmxlJykgPyBUUlVFIDogRkFMU0U7CiAgICAgICAgICAgICAgICAkdXNlci0+c2F2ZSgpOwogICAgICAgICAgICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25VcGRhdGVVc2VyJywgWyAnbmFtZSc9PiR1c2VyLT51c2VybmFtZSwgJ2lkJz0+JHVzZXItPmlkIF0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRkYi0+Q29tbWl0VHJhbnMoKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRkYi0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICB0aHJvdyAkZTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnZm9yY2VjaHB3JzoKICAgICAgICBpZiggISR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdlZGl0dXNlcnMnKSApIHRocm93IG5ldyBcRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJGRiLT5CZWdpblRyYW5zKCk7CiAgICAgICAgICAgIGZvcmVhY2goICRzZWwgYXMgJG9uZXVpZCApIHsKICAgICAgICAgICAgICAgICR1c2VyID0gbmV3IHVzZXJfZWRpdF9hc3Npc3RhbnQoJG9uZXVpZCk7CiAgICAgICAgICAgICAgICAkdXNlci0+Zm9yY2VfcGFzc3dvcmRfY2hhbmdlID0gVFJVRTsKICAgICAgICAgICAgICAgICR1c2VyLT5zYXZlKCk7CiAgICAgICAgICAgICAgICAkdGhpcy0+U2VuZEV2ZW50KCdPblVwZGF0ZVVzZXInLCBbICduYW1lJz0+JHVzZXItPnVzZXJuYW1lLCAnaWQnPT4kdXNlci0+aWQgXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgJGRiLT5Sb2xsYmFja1RyYW5zKCk7CiAgICAgICAgICAgIHRocm93ICRlOwogICAgICAgIH0KICAgICAgICBicmVhazsKCiAgICBjYXNlICdzZXRwYXNzd29yZCc6CiAgICAgICAgLy8gcmVxdWlyZXMgYSBmb3JtCiAgICAgICAgaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygnZWRpdHVzZXJzJykgKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSB7CiAgICAgICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfY2FuY2VsbGVkJykpOwogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkcGFzc3dkMSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncGFzc3dvcmQnKTsKICAgICAgICAgICAgICAgICRwYXNzd2QyID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdyZXBlYXRwYXNzd29yZCcpOwogICAgICAgICAgICAgICAgaWYoICEkdGhpcy0+aXNWYWxpZFBhc3N3b3JkKCAkcGFzc3dkMSApICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXNzd29yZCcpKTsKICAgICAgICAgICAgICAgIGlmKCAkcGFzc3dkMSAhPSAkcGFzc3dkMiApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9wYXNzd29yZG1pc21hdGNoJykpOwoKICAgICAgICAgICAgICAgICRkYi0+QmVnaW5UcmFucygpOwogICAgICAgICAgICAgICAgZm9yZWFjaCggJHNlbCBhcyAkb25ldWlkICkgewogICAgICAgICAgICAgICAgICAgICR1c2VyID0gbmV3IHVzZXJfZWRpdF9hc3Npc3RhbnQoJG9uZXVpZCk7CiAgICAgICAgICAgICAgICAgICAgJHVzZXItPm5ld19wYXNzd29yZCA9ICRwYXNzd2QxOwogICAgICAgICAgICAgICAgICAgICR1c2VyLT5zYXZlKCk7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25VcGRhdGVVc2VyJywgWyAnbmFtZSc9PiR1c2VyLT51c2VybmFtZSwgJ2lkJz0+JHVzZXItPmlkIF0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwogICAgICAgICAgICAgICAgJHRoaXMtPlNldG1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jb21wbGV0ZWQnKSk7CiAgICAgICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOyAvLyBkb25lCiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2goIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgJGRiLT5Sb2xsYmFja1RyYW5zKCk7CiAgICAgICAgICAgICAgICB0aHJvdyAkZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9idWxrX3NldHBhc3N3ZC50cGwnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3VpZHMnLCRwYXJhbXNbJ3VpZHMnXSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdqb2InLCRqb2IpOwogICAgICAgICR0cGwtPmFzc2lnbignc2VsZWN0ZWQnLCRzZWwpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgICAgICByZXR1cm47CgogICAgY2FzZSAnc2V0ZXhwaXJ5JzoKICAgICAgICAvLyByZXF1aXJlcyBhIGZvcm0KICAgICAgICBpZiggISR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdlZGl0dXNlcnMnKSApIHRocm93IG5ldyBcRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdhY2Nlc3NkZW5pZWQnKSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApIHsKICAgICAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jYW5jZWxsZWQnKSk7CiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICRuZXdfZXhwaXJlcyA9IFxjZ2VfcGFyYW06OmdldF9zZXBhcmF0ZWRfZGF0ZSgkcGFyYW1zLCdleHBpcmVzJyk7CgogICAgICAgICAgICAgICAgJGRiLT5CZWdpblRyYW5zKCk7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkc2VsIGFzICRvbmV1aWQgKSB7CiAgICAgICAgICAgICAgICAgICAgJHVzZXIgPSBuZXcgdXNlcl9lZGl0X2Fzc2lzdGFudCgkb25ldWlkKTsKICAgICAgICAgICAgICAgICAgICAkdXNlci0+ZXhwaXJlcyA9ICRuZXdfZXhwaXJlczsKICAgICAgICAgICAgICAgICAgICAkdXNlci0+c2F2ZSgpOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uVXBkYXRlVXNlcicsIFsgJ25hbWUnPT4kdXNlci0+dXNlcm5hbWUsICdpZCc9PiR1c2VyLT5pZCBdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRkYi0+Q29tbWl0VHJhbnMoKTsKICAgICAgICAgICAgICAgICR0aGlzLT5TZXRtZXNzYWdlKCR0aGlzLT5MYW5nKCdvcGVyYXRpb25fY29tcGxldGVkJykpOwogICAgICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsgLy8gZG9uZQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoKCBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgICAgICRkYi0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICAgICAgdGhyb3cgJGU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fYnVsa19zZXRleHBpcnkudHBsJyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd1aWRzJywkcGFyYW1zWyd1aWRzJ10pOwogICAgICAgICR0cGwtPmFzc2lnbignam9iJywkam9iKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3NlbGVjdGVkJywkc2VsKTsKICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICAgICAgcmV0dXJuOwoKICAgIGRlZmF1bHQ6CiAgICAgICAgLy8gaW52YWxpZCBqb2IKICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwogICAgfQp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgZGVidWdfZGlzcGxheSgkZSk7IGRpZSgpOwogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnRmFpbGVkIGJ1bGsgZGVsZXRlJyk7CiAgICBcY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICR0aGlzLT5TZXRFcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKfQoKJHRoaXMtPlNldG1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jb21wbGV0ZWQnKSk7CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.admin_deleteprop.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNSBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJ2RlbGV0ZXByb3AnICkgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdwcm9wZXJ0aWVzJyk7Cgp0cnkgewogICAgJHByb3BuYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdwcm9wbmFtZScpOwogICAgaWYoICEkcHJvcG5hbWUgKSByZXR1cm47CgogICAgLy8gZ2V0IHRoZSBkZXRhaWxzIGFib3V0IHRoaXMgcHJvcGVydHkKICAgIC8vIG1ha2Ugc3VyZSBpdCdzIG5vdCBhIHJlcXVpcmVkL2hpZGRlbiBwcm9wZXJ0eSBpbiBhbnkgZ3JvdXAgKE9GRiBPUiBPUFRJT05BTCBvbmx5KQogICAgLy8gSUYgSVQgSVMsIHdlIGNhbm5vdCBkZWxldGUgaXQuLi4gc28gd2UganVzdCB0aHJvdyBhbiBleGNlcHRpb24gYW5kIGdldCBvdXRhIGhlcmUKICAgICRjYW5fZGVsZXRlID0gVFJVRTsKICAgICRwcm9wZ3JvdXBzID0gJHRoaXMtPkdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoJHByb3BuYW1lKTsKICAgIGlmKCBjb3VudCgkcHJvcGdyb3VwcykgKSB7CiAgICAgICAgZm9yZWFjaCggJHByb3Bncm91cHMgYXMgJHJlYyApIHsKICAgICAgICAgICAgaWYoICRyZWNbJ3JlcXVpcmVkJ10gPiAxICkgewogICAgICAgICAgICAgICAgJGNhbl9kZWxldGUgPSBGQUxTRTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYoICEkY2FuX2RlbGV0ZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZGVsZXRlX3Byb3BkZWZuJykpOwoKICAgIC8vIGhhbmRsZSBzdWJtaXQgJiBjYW5jZWwKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSB7CiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jYW5jZWxsZWQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KICAgIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgICAgICAgJGZldV9jb25maXJtID0gXGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnZmV1X2NvbmZpcm0nKTsKICAgICAgICBpZiggISRmZXVfY29uZmlybSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfYWN0aW9uX25vdGNvbmZpcm1lZCcpKTsKCiAgICAgICAgLy8gbm93IHJlYWR5IHRvIGRlbGV0ZSB0aGUgcHJvcGVydHkKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPkRlbGV0ZVByb3BlcnR5RGVmbiggJHByb3BuYW1lICk7CiAgICAgICAgaWYoICEkcmVzdWx0ICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9kZWxldGVwcm9wJykpOwoKICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdSZW1vdmVkIHByb3BlcnR5ICcuJHByb3BuYW1lKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ3Byb3BlcnRpZXMnKTsKICAgIH0KCiAgICAvLyBnaXZlIHZlcnl0aGluZyB0byBzbWFydHkKICAgICR0eXBlcyA9ICR0aGlzLT50eXBlczsKICAgIHVuc2V0KCR0eXBlc1snZGF0YSddKTsKICAgICRmaWVsZHR5cGVzID0gYXJyYXlfZmxpcCgkdGhpcy0+bGFuZ2lmeUtleXMoJHR5cGVzKSk7CgogICAgJGRlZm4gPSAkdGhpcy0+R2V0UHJvcGVydHlEZWZuKCRwcm9wbmFtZSk7CiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9kZWxldGVwcm9wLnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdmaWVsZHR5cGVzJywkZmllbGR0eXBlcyk7CiAgICAkdHBsLT5hc3NpZ24oJ3Byb3BuYW1lJywkcHJvcG5hbWUpOwogICAgJHRwbC0+YXNzaWduKCdkZWZuJywkZGVmbik7CiAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVNUYXJ0KCRpZCwnYWRtaW5fZGVsZXRlcHJvcCcsJHJldHVybmlkLGFycmF5KCdwcm9wbmFtZSc9PiRwcm9wbmFtZSkpKTsKICAgICR0cGwtPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwp9CgoKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_doimport.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOwpmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQppZiggISR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCd1c2VycycpICkgZXhpdDsKJGZpbGUgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdmaWxlJyk7CmlmKCAhJGZpbGUgKSBleGl0OwokZmlsZSA9IFRNUF9DQUNIRV9MT0NBVElPTi4iLyRmaWxlIjsKaWYoICFpc19yZWFkYWJsZSgkZmlsZSkgKSBleGl0Owokbm93ID0gdGltZSgpOwoKJGltYWdlRGlyID0gJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uRElSRUNUT1JZX1NFUEFSQVRPUjsKJGltYWdlRGlyIC49ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywgJ2ZldXNlcnMnKTsKCiR0bXAgPSAkdGhpcy0+Q0dHZXRQcmVmZXJlbmNlKCdpbXBvcnRwcmVmcycpOwppZiggISR0bXAgKSBleGl0OwokaW1wb3J0cHJlZnMgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKCiRwcm9ncmVzc19tYXggPSBmdW5jdGlvbigkdmFsKSB7CiAgICAkdmFsID0gKGludCkkdmFsOwogICAgJHZhbCA9IG1heCgxLCR2YWwpOwogICAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnBhcmVudC5pbXBvcnRfcHJvZ3Jlc3NfbWF4KCcuJHZhbC4nKTs8L3NjcmlwdD4nOwogICAgZmx1c2goKTsKfTsKJHByb2dyZXNzX3NldCA9IGZ1bmN0aW9uKCR2YWwpIHsKICAgICR2YWwgPSAoaW50KSR2YWw7CiAgICAkdmFsID0gbWF4KDEsJHZhbCk7CiAgICBlY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+cGFyZW50LmltcG9ydF9wcm9ncmVzc19zZXQoJy4kdmFsLicpOzwvc2NyaXB0Pic7CiAgICBmbHVzaCgpOwp9OwokaW1wb3J0X3N0YXR1cyA9IGZ1bmN0aW9uKCRtc2cpIHsKICAgICRtc2cgPSB0cmltKCRtc2cpOwogICAgaWYoICEkbXNnICkgcmV0dXJuOwogICAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnBhcmVudC5pbXBvcnRfc3RhdHVzKFwnJy4kbXNnLidcJyk7PC9zY3JpcHQ+JzsKICAgIGZsdXNoKCk7Cn07CiRpbXBvcnRfd2FybmluZyA9IGZ1bmN0aW9uKCRtc2cpIHsKICAgICRtc2cgPSB0cmltKCRtc2cpOwogICAgaWYoICEkbXNnICkgcmV0dXJuOwogICAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnBhcmVudC5pbXBvcnRfd2FybmluZyhcJycuJG1zZy4nXCcpOzwvc2NyaXB0Pic7CiAgICBmbHVzaCgpOwp9OwokaW1wb3J0X2Vycm9yID0gZnVuY3Rpb24oJG1zZykgewogICAgJG1zZyA9IHRyaW0oJG1zZyk7CiAgICBpZiggISRtc2cgKSByZXR1cm47CiAgICBlY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+cGFyZW50LmltcG9ydF9lcnJvcihcJycuJG1zZy4nXCcpOzwvc2NyaXB0Pic7CiAgICBmbHVzaCgpOwp9OwokaW1wb3J0X2Vycm9yX2xpbmUgPSBmdW5jdGlvbigkbGluZW51bSwkbXNnKSB7CiAgICAkbGluZW51bSA9IChpbnQpJGxpbmVudW07CiAgICAkbXNnID0gdHJpbSgkbXNnKTsKICAgIGlmKCAhJG1zZyApIHJldHVybjsKICAgIGVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5wYXJlbnQuaW1wb3J0X2Vycm9yKFwnJy4kbGluZW51bS4nOiAnLiRtc2cuJ1wnKTs8L3NjcmlwdD4nOwogICAgZmx1c2goKTsKfTsKJGltcG9ydF9maW5pc2ggPSBmdW5jdGlvbigpIHsKICAgIGVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5wYXJlbnQuaW1wb3J0X2ZpbmlzaCgpOzwvc2NyaXB0Pic7CiAgICBmbHVzaCgpOwp9OwokY2xlYW5fZmllbGRzID0gZnVuY3Rpb24oJHRoZV9hcnJheSkgewogICAgZm9yZWFjaCggJHRoZV9hcnJheSBhcyAmJGVsZW0gKSB7CiAgICAgICAgJGVsZW0gPSB0cmltKHRyaW0oJGVsZW0sJyJcJycpKTsKICAgIH0KICAgIHJldHVybiAkdGhlX2FycmF5Owp9OwokZ2V0X2ZpZWxkID0gZnVuY3Rpb24oJGNvbHVtbnMsJGZpZWxkbWFwLCRmaWVsZCkgewogICAgaWYoICEkZmllbGQgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGZpZWxkIHNwZWNpZmllZCAnLiRmaWVsZCk7CiAgICAkaWR4ID0gYXJyYXlfc2VhcmNoKCRmaWVsZCwkZmllbGRtYXApOwogICAgaWYoICRpZHggPT09IEZBTFNFICkgcmV0dXJuOwogICAgaWYoIGlzc2V0KCRjb2x1bW5zWyRpZHhdKSApIHJldHVybiAkY29sdW1uc1skaWR4XTsKfTsKJGFsbF9jb2x1bW5zX2VtcHR5ID0gZnVuY3Rpb24oJGNvbHVtbnMpIHsKICAgIGZvcmVhY2goICRjb2x1bW5zIGFzICRjb2wgKSB7CiAgICAgICAgaWYoICRjb2wgKSByZXR1cm4gRkFMU0U7CiAgICB9CiAgICByZXR1cm4gVFJVRTsKfTsKCnRyeSB7CiAgICAkZmlsZXNpemUgPSBmaWxlc2l6ZSgkZmlsZSk7CiAgICAkZmggPSBmb3BlbigkZmlsZSwncicpOwogICAgJGxpbmVfbnVtID0gMDsKICAgICRwcm9jZXNzZWRfbGluZXMgPSAwOwogICAgJGhhdmVfaGVhZGVyID0gMDsKICAgICRmaWVsZG1hcCA9IG51bGw7CiAgICAkZ3JvdXBzID0gJHRoaXMtPkdldEdyb3VwTGlzdCgpOwogICAgJHByb3BkZWZucyA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICAkcmVsbnMgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJGdyb3VwcyBhcyAkZ25hbWUgPT4gJGdpZCApIHsKICAgICAgICAkcmVsbnNbJGduYW1lXSA9ICR0aGlzLT5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCRnaWQpOwogICAgfQogICAgJHRtcCA9IG1heCgxLChpbnQpJHRoaXMtPkNHR2V0UHJlZmVyZW5jZSgnZXhwaXJlYWdlX21vbnRocycsMTIwKSk7CiAgICAkZGZsdF9leHBpcnkgPSBzdHJ0b3RpbWUoc3ByaW50ZignKyAlZCBtb250aHMnLCR0bXApKTsKICAgICRkZmx0X3Bhc3N3b3JkID0gJ2NoYW5nZW1lJzsKICAgICRlcnJvcl91c2VycyA9IGFycmF5KCk7CiAgICAkYWxsX3VzZXJzID0gbnVsbDsKICAgIHsKICAgICAgICAkcXVlcnkgPSBuZXcgZmV1X3VzZXJfcXVlcnkoKTsKICAgICAgICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgICAgICB3aGlsZSggISRycy0+RU9GICkgewogICAgICAgICAgICAkZmxkcyA9ICRycy0+ZmllbGRzOwogICAgICAgICAgICAkYWxsX3VzZXJzWyRmbGRzWyd1c2VybmFtZSddXSA9ICRmbGRzWydpZCddOwogICAgICAgICAgICAkcnMtPk1vdmVOZXh0KCk7CiAgICAgICAgfQogICAgfQogICAgJHRvdWNoZWRfZ2lkcyA9IGFycmF5KCk7CiAgICAkdG91Y2hlZF91aWRzID0gYXJyYXkoKTsKCiAgICAkcHJvZ3Jlc3NfbWF4KCRmaWxlc2l6ZSk7CiAgICB3aGlsZSggIWZlb2YoJGZoKSApIHsKICAgICAgICBzZXRfdGltZV9saW1pdCgzMCk7CiAgICAgICAgJHByb2dyZXNzX3NldChmdGVsbCgkZmgpKTsKICAgICAgICAkcmVjID0gZmdldGNzdigkZmgpOwogICAgICAgICRsaW5lX251bSsrOwoKICAgICAgICBpZiggIWlzX2FycmF5KCRyZWMpIHx8ICFjb3VudCgkcmVjKSApIGNvbnRpbnVlOwoKICAgICAgICAkcHJvY2Vzc2VkX2xpbmVzKys7CiAgICAgICAgaWYoICRwcm9jZXNzZWRfbGluZXMgPT0gMSApIHsKICAgICAgICAgICAgLy8KICAgICAgICAgICAgLy8gcHJvY2VzcyB0aGUgaGVhZGVyCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIGlmKCAhc3RhcnRzd2l0aCgkcmVjWzBdLCcjIycpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCcpKTsKICAgICAgICAgICAgJGZpZWxkbWFwID0gJHJlYzsKICAgICAgICAgICAgJGZpZWxkbWFwWzBdID0gc3Vic3RyKCRmaWVsZG1hcFswXSwyKTsKICAgICAgICAgICAgJGZpZWxkbWFwID0gJGNsZWFuX2ZpZWxkcygkZmllbGRtYXApOwogICAgICAgICAgICBpZiggIWluX2FycmF5KCd1c2VybmFtZScsJGZpZWxkbWFwKSApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydHJlcXVpcmVkZmllbGQnLCd1c2VybmFtZScpKTsKICAgICAgICAgICAgaWYoICFpbl9hcnJheSgnZ3JvdXBuYW1lJywkZmllbGRtYXApICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCcsJ2dyb3VwbmFtZScpKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICAvLwogICAgICAgIC8vIHByb2Nlc3NpbmcgYSBkYXRhIGxpbmUKICAgICAgICAvLwogICAgICAgICRjb2x1bW5zID0gJHJlYzsKICAgICAgICAkY29sdW1ucyA9ICRjbGVhbl9maWVsZHMoJGNvbHVtbnMpOwoKICAgICAgICBpZiggJGFsbF9jb2x1bW5zX2VtcHR5KCRjb2x1bW5zKSApIGNvbnRpbnVlOwoKICAgICAgICBpZiggY291bnQoJGNvbHVtbnMpIDwgY291bnQoJGZpZWxkbWFwKSAtIDEgfHwgY291bnQoJGNvbHVtbnMpID4gY291bnQoJGZpZWxkbWFwKSApIHsKICAgICAgICAgICAgJGltcG9ydF9lcnJvcl9saW5lKCRsaW5lX251bSwkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0X2NvbHVtbmNvdW50JykpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYoIGNvdW50KCRjb2x1bW5zKSA8IGFycmF5X3NlYXJjaCgndXNlcm5hbWUnLCRmaWVsZG1hcCkgKSB7CiAgICAgICAgICAgICRpbXBvcnRfZXJyb3JfbGluZSgkbGluZV9udW0sJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydF9jb2x1bW5jb3VudCcpKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgdGhlIHVzZXIgcmVjLgogICAgICAgICR1c2VyID0gYXJyYXkoJ3VzZXJuYW1lJz0+JycsJ3Bhc3N3b3JkJz0+JycsJ2duYW1lJz0+bnVsbCwnZXhwaXJlcyc9Pm51bGwsJ3Byb3BzJz0+YXJyYXkoKSk7CiAgICAgICAgJHVzZXJbJ3VzZXJuYW1lJ10gPSAkZ2V0X2ZpZWxkKCRjb2x1bW5zLCRmaWVsZG1hcCwndXNlcm5hbWUnKTsKICAgICAgICAkdXNlclsncGFzc3dvcmQnXSA9ICRnZXRfZmllbGQoJGNvbHVtbnMsJGZpZWxkbWFwLCd0eHRwYXNzd29yZCcpOwogICAgICAgICR1c2VyWydjcmVhdGVkYXRlJ10gPSAkZ2V0X2ZpZWxkKCRjb2x1bW5zLCRmaWVsZG1hcCwnY3JlYXRlZGF0ZScsJG5vdyk7CiAgICAgICAgJHVzZXJbJ2V4cGlyZXMnXSA9ICRnZXRfZmllbGQoJGNvbHVtbnMsJGZpZWxkbWFwLCdleHBpcmVzJywkbm93KTsKICAgICAgICAkZ25hbWVzID0gJGdldF9maWVsZCgkY29sdW1ucywkZmllbGRtYXAsJ2dyb3VwbmFtZScpOwogICAgICAgIGlmKCAhJGduYW1lcyApIHsKICAgICAgICAgICAgJGltcG9ydF9lcnJvcl9saW5lKCRsaW5lX251bSwkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0Z3JvdXBuYW1lJywkZ25hbWUpKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgICRnbmFtZXMgPSAkY2xlYW5fZmllbGRzKGV4cGxvZGUoJywnLCRnbmFtZXMpKTsKICAgICAgICB0cnkgewogICAgICAgICAgICBmb3JlYWNoKCAkZ25hbWVzIGFzICRnbmFtZSApIHsKICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJGdyb3Vwc1skZ25hbWVdKSApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydGdyb3VwbmFtZScsJGduYW1lKSk7CiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRyZWxuc1skZ25hbWVdKSApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydGdyb3VwbmFtZScsJGduYW1lKSk7CgogICAgICAgICAgICAgICAgZm9yZWFjaCggJHJlbG5zWyRnbmFtZV0gYXMgJHJlbG4gKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSByZXF1aXJlZCBmaWVsZHMgZm9yIHRoaXMgZ3JvdXAgYXJlIGF2YWlsYWJsZSBpbiB0aGUgZmllbGQgbWFwCiAgICAgICAgICAgICAgICAgICAgaWYoICRyZWxuWydyZXF1aXJlZCddID09IDIgJiYgIWluX2FycmF5KCRyZWxuWyduYW1lJ10sJGZpZWxkbWFwKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCcsJHJlbG5bJ25hbWUnXSkpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAvLyBhZGQgdGhlIGZpZWxkIHRvIHRoZSB1c2VyIHJlYwogICAgICAgICAgICAgICAgICAgICR0bXAgPSAkZ2V0X2ZpZWxkKCRjb2x1bW5zLCRmaWVsZG1hcCwkcmVsblsnbmFtZSddKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHRtcCApICR1c2VyWydwcm9wcyddWyRyZWxuWyduYW1lJ11dID0gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkaW1wb3J0X2Vycm9yX2xpbmUoJGxpbmVfbnVtLCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgICAgICBpZiggJHVzZXJbJ3VzZXJuYW1lJ10gKSAkZXJyb3JfdXNlcnNbXSA9ICR1c2VyWyd1c2VybmFtZSddOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIC8vIHZhbGlkYXRlIHRoZSB1c2VyIHJlYy4KICAgICAgICBpZiggIWNnZV91dGlsczo6Z2V0X3BhcmFtKCR1c2VyLCd1c2VybmFtZScpICkgewogICAgICAgICAgICAkaW1wb3J0X2Vycm9yX2xpbmUoJGxpbmVfbnVtLCR0aGlzLT5MYW5nKCdlcnJvcl9pbXBvcnRyZXF1aXJlZGZpZWxkJywndXNlcm5hbWUnKSk7CiAgICAgICAgICAgIGlmKCAkdXNlclsndXNlcm5hbWUnXSApICRlcnJvcl91c2Vyc1tdID0gJHVzZXJbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgaWYoICFjZ2VfdXRpbHM6OmdldF9wYXJhbSgkdXNlciwnY3JlYXRlZGF0ZScpICkgJHVzZXJbJ2NyZWF0ZWRhdGUnXSA9ICRub3c7CiAgICAgICAgaWYoICFpc19pbnQoJHVzZXJbJ2NyZWF0ZWRhdGUnXSkgKSAkdXNlclsnY3JlYXRlZGF0ZSddID0gc3RydG90aW1lKCR1c2VyWydjcmVhdGVkYXRlJ10pOwogICAgICAgIGlmKCAhaXNfaW50KCR1c2VyWydleHBpcmVzJ10pICkgJHVzZXJbJ2V4cGlyZXMnXSA9IHN0cnRvdGltZSgkdXNlclsnZXhwaXJlcyddKTsKICAgICAgICAvLyB5ZXAsIGFnYWluLgogICAgICAgIGlmKCAhY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHVzZXIsJ2NyZWF0ZWRhdGUnKSApICR1c2VyWydjcmVhdGVkYXRlJ10gPSAkbm93OwogICAgICAgIGlmKCAhY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHVzZXIsJ2V4cGlyZXMnKSApICR1c2VyWydleHBpcmVzJ10gPSAkZGZsdF9leHBpcnk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yZWFjaCggJGduYW1lcyBhcyAkZ25hbWUgKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcmVsbnNbJGduYW1lXSBhcyAkcmVsbiApIHsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHVzZXJbJ3Byb3BzJ10sJHJlbG5bJ25hbWUnXSk7CiAgICAgICAgICAgICAgICAgICAgaWYoICRyZWxuWydyZXF1aXJlZCddID09IDIgJiYgISR2YWwgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgdmFsaWRhdGVzIHRoYXQgYSByZXF1aXJlZCBmaWVsZCBmb3Igb3VyIGRlc3RpbmF0aW9uIGdyb3VwIGlzIGZpbGxlZCBpbgogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbXBvcnRyZXF1aXJlZGZpZWxkJywkcmVsblsnbmFtZSddKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmKCAkdmFsICkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGEgdmFsdWUgZm9yIHRoaXMgcHJvcGVydHkKICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHByb3BlcnR5IGlzIGEgZHJvcGRvd24gb3IgbXVsdGlzZWxlY3QsIG1ha2Ugc3VyZSB0aGUgdmFsdWUgaXMgdmFsaWQuCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJHByb3BkZWZuc1skcmVsblsnbmFtZSddXVsndHlwZSddICkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICR0aGlzOjpGSUVMRFRZUEVfREFURToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc19pbnQoJHZhbCkgJiYgJHZhbCA8IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZScsJHJlbG5bJ25hbWUnXSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiggc3RydG90aW1lKCR2YWwpIDwgMSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbXBvcnRmaWVsZHZhbHVlJywkcmVsblsnbmFtZSddKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJHRoaXM6OkZJRUxEVFlQRV9FTUFJTDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhaXNfZW1haWwoJHZhbCkgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbXBvcnRmaWVsZHZhbHVlJywkcmVsblsnbmFtZSddKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJHRoaXM6OkZJRUxEVFlQRV9JTUFHRToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgZW5zdXJlIHRoYXQgdGhlIGltYWdlIGV4aXN0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaWxlc3BlYyA9ICRpbWFnZURpci4nLycuJHZhbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhZmlsZV9leGlzdHMoJGZpbGVzcGVjKSApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnLCRyZWxuWyduYW1lJ10pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAkdGhpczo6RklFTERUWVBFX01VTFRJU0VMRUNUOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9wdHMgPSBhcnJheV9mbGlwKCR0aGlzLT5HZXRTZWxlY3RPcHRpb25zKCRyZWxuWyduYW1lJ10pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWxzID0gJGNsZWFuX2ZpZWxkcyhleHBsb2RlKCcsJywkdmFsKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdmFscyBhcyAkb25ldmFsICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJG9wdHNbJG9uZXZhbF0pICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZScsJHJlbG5bJ25hbWUnXSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICR0aGlzOjpGSUVMRFRZUEVfRFJPUERPV046CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJHRoaXM6OkZJRUxEVFlQRV9SQURJT0JVVE5TOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9wdHMgPSBhcnJheV9mbGlwKCR0aGlzLT5HZXRTZWxlY3RPcHRpb25zKCRyZWxuWyduYW1lJ10pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJG9wdHNbJHZhbF0pICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZScsJHJlbG5bJ25hbWUnXSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgJGltcG9ydF9lcnJvcl9saW5lKCRsaW5lX251bSwkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgaWYoICR1c2VyWyd1c2VybmFtZSddICkgJGVycm9yX3VzZXJzW10gPSAkdXNlclsndXNlcm5hbWUnXTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICAvLyBkbyB0aGUgYWRkIG9yIHVwZGF0ZS4KICAgICAgICAkdWlkID0gbnVsbDsKICAgICAgICBpZiggaXNzZXQoJGFsbF91c2Vyc1skdXNlclsndXNlcm5hbWUnXV0pICkgewogICAgICAgICAgICAvLyB1cGRhdGUgdGhlIHVzZXIuCiAgICAgICAgICAgICR1aWQgPSAkYWxsX3VzZXJzWyR1c2VyWyd1c2VybmFtZSddXTsKICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5TZXRVc2VyKCR1aWQsJHVzZXJbJ3VzZXJuYW1lJ10sJHVzZXJbJ3Bhc3N3b3JkJ10sJHVzZXJbJ2V4cGlyZXMnXSk7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgfHwgJHRtcFswXSA9PT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAkaW1wb3J0X2Vycm9yX2xpbmUoJGxpbmVfbnVtLCR0aGlzLT5MYW5nKCdlcnJvcl9pbXBvcnR1cGRhdGV1c2VyJywkdG1wWzFdKSk7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJHVzZXJbJ2NyZWF0ZWRhdGUnXSAmJiAkdXNlclsnY3JlYXRlZGF0ZSddIDwgKCRub3cgLSA5MCkgKSB7CiAgICAgICAgICAgICAgICAkc3FsID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgU0VUIGNyZWF0ZWRhdGUgPSA/IFdIRVJFIGlkID0gPyc7CiAgICAgICAgICAgICAgICAkdG1wID0gdHJpbSgkZGItPkRiVGltZVN0YW1wKCR1c2VyWydjcmVhdGVkYXRlJ10pLCInIik7CiAgICAgICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCwgWyAkdG1wLCAkdWlkIF0gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZ2lkbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICRnbmFtZXMgYXMgJGduYW1lICkgewogICAgICAgICAgICAgICAgJGdpZGxpc3RbXSA9ICRncm91cHNbJGduYW1lXTsKICAgICAgICAgICAgICAgIGlmKCAhaW5fYXJyYXkoJGdyb3Vwc1skZ25hbWVdLCR0b3VjaGVkX2dpZHMpICkgJHRvdWNoZWRfZ2lkc1tdID0gJGdyb3Vwc1skZ25hbWVdOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT5TZXRVc2VyR3JvdXBzKCR1aWQsJGdpZGxpc3QpOwogICAgICAgICAgICAkdGhpcy0+U2V0VXNlclByb3BlcnRpZXMoJHVpZCwkdXNlclsncHJvcHMnXSk7CiAgICAgICAgICAgICRpbXBvcnRfc3RhdHVzKCd1cGRhdGVkIHVzZXIgJy4kdXNlclsndXNlcm5hbWUnXSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAvLyBpbnNlcnQgdGhlIHVzZXIKICAgICAgICAgICAgaWYoICFjZ2VfdXRpbHM6OmdldF9wYXJhbSgkdXNlciwncGFzc3dvcmQnKSApICR1c2VyWydwYXNzd29yZCddID0gJGRmbHRfcGFzc3dvcmQ7CiAgICAgICAgICAgIGlmKCAhY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHVzZXIsJ2V4cGlyZXMnKSApICR1c2VyWydleHBpcmVzJ10gPSAkZGZsdF9leHBpcnk7CiAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+QWRkVXNlcigkdXNlclsndXNlcm5hbWUnXSwkdXNlclsncGFzc3dvcmQnXSwkdXNlclsnZXhwaXJlcyddKTsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSB8fCAkdG1wWzBdID09PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICRpbXBvcnRfZXJyb3JfbGluZSgkbGluZV9udW0sJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydGluc2VydHVzZXInLCR0bXBbMV0pKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkdXNlclsnY3JlYXRlZGF0ZSddICYmICR1c2VyWydjcmVhdGVkYXRlJ10gPCAoJG5vdyAtIDkwKSApIHsKICAgICAgICAgICAgICAgICRzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyBTRVQgY3JlYXRlZGF0ZSA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICAgICAgICAgICR0bXAgPSB0cmltKCRkYi0+RGJUaW1lU3RhbXAoJHVzZXJbJ2NyZWF0ZWRhdGUnXSksIiciKTsKICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkc3FsLCBbICR0bXAsICR1aWQgXSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR1aWQgPSAkdG1wWzFdOwogICAgICAgICAgICAkZ2lkbGlzdCA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICRnbmFtZXMgYXMgJGduYW1lICkgewogICAgICAgICAgICAgICAgJGdpZGxpc3RbXSA9ICRncm91cHNbJGduYW1lXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+U2V0VXNlckdyb3VwcygkdWlkLCRnaWRsaXN0KTsKICAgICAgICAgICAgJHRoaXMtPlNldFVzZXJQcm9wZXJ0aWVzKCR1aWQsJHVzZXJbJ3Byb3BzJ10pOwogICAgICAgICAgICAkaW1wb3J0X3N0YXR1cygnY3JlYXRlZCB1c2VyICcuJHVzZXJbJ3VzZXJuYW1lJ10pOwogICAgICAgICAgICAvLyB0b2RvOiBzdGF0dXMgbXNnCiAgICAgICAgfQoKICAgICAgICAvLyBzZXQgcHJvZ3Jlc3MKICAgICAgICAkcHJvZ3Jlc3Nfc2V0KGZ0ZWxsKCRmaCkpOwoKICAgICAgICAvLyBzZXQgdGhlIHVzZXIKICAgICAgICBpZiggJHVpZCAmJiAhaW5fYXJyYXkoJHVpZCwkdG91Y2hlZF91aWRzKSApICR0b3VjaGVkX3VpZHNbXSA9ICR1aWQ7CgogICAgICAgIC8vIGRlbGV0ZSB0aGUgdXNlciBmcm9tIHRoZSBjb21wbGV0ZSB1c2VyIGxpc3QuCiAgICAgICAgdW5zZXQoJGFsbF91c2Vyc1skdXNlclsndXNlcm5hbWUnXV0pOwoKICAgIH0gLy8gZmVvZgoKICAgIC8vIGRlbGV0ZSB1c2VycyB3aG8gYXJlIG1lbWJlciBvZiB0aGUgaW1wb3J0ZWQgZ3JvdXAsIChhc3N1bWluZyB3ZSBvbmx5IGxpc3RlZCBvbmUgZ3JvdXApIGJ1dAogICAgLy8gbm90IGxpc3RlZCBpbiB0aGlzIGxpc3QuCiAgICAkdG91Y2hlZF91aWRzID0gYXJyYXlfdW5pcXVlKCR0b3VjaGVkX3VpZHMpOwogICAgaWYoIGNvdW50KCR0b3VjaGVkX2dpZHMpID09IDEgJiYgY291bnQoJHRvdWNoZWRfdWlkcykgJiYgJGltcG9ydHByZWZzWydkZWxldGVfdXNlcnMnXSApIHsKICAgICAgICAvLyBnb3R0YSBnZXQgdGhlIHVpZHMgb2YgYWxsIG9mIHRoZSB1c2VycyBpbiB0aGlzIGdyb3VwLgogICAgICAgICRxdWVyeSA9IG5ldyBmZXVfdXNlcl9xdWVyeSgpOwogICAgICAgICRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9HUk9VUElELCR0b3VjaGVkX2dpZHNbMF0pOwogICAgICAgICRycyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwogICAgICAgICRkZWxfdWlkcyA9IGFycmF5KCk7CiAgICAgICAgd2hpbGUoICEkcnMtPkVPRigpICkgewogICAgICAgICAgICBpZiggIWluX2FycmF5KCRycy0+ZmllbGRzWydpZCddLCR0b3VjaGVkX3VpZHMpICYmICFpbl9hcnJheSgkcnMtPmZpZWxkc1snaWQnXSwkZGVsX3VpZHMpICkgewogICAgICAgICAgICAgICAgJGRlbF91aWRzW10gPSAkcnMtPmZpZWxkc1snaWQnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcnMtPk1vdmVOZXh0KCk7CiAgICAgICAgfQoKICAgICAgICAvLyBnb3R0YSBkZWxldGUgcmVtYWluaW5nIHVzZXJzCiAgICAgICAgaWYoIGNvdW50KCRkZWxfdWlkcykgKSB7CiAgICAgICAgICAgICRwcm9ncmVzc19tYXgoY291bnQoJGRlbF91aWRzKSk7CiAgICAgICAgICAgICRuID0gMDsKICAgICAgICAgICAgZm9yZWFjaCggJGRlbF91aWRzIGFzICR1aWQgKSB7CiAgICAgICAgICAgICAgICBzZXRfdGltZV9saW1pdCgyMCk7CiAgICAgICAgICAgICAgICBpZiggJHVpZCA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkRlbGV0ZVVzZXJGdWxsKCAkdWlkICk7CiAgICAgICAgICAgICAgICAgICAgJGltcG9ydF9zdGF0dXMoJHRoaXMtPkxhbmcoJ2ltcG9ydF9kZWxldGVkdXNlcicsJHVpZCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG4rKzsKICAgICAgICAgICAgICAgICRwcm9ncmVzc19zZXQoJG4pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICRpbXBvcnRfZmluaXNoKCk7Cn0KY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICRpbXBvcnRfZXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7Cn0KZXhpdDsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_edituser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJ3VzZXJzJyApICkgcmV0dXJuOwoKLy8gdGhpcyBhY3Rpb24gaGFuZGxlcyB0aGUgZmlyc3QgcG9ydGlvbiBvZiB0aGUgYWRkL2VkaXQgdXNlciB3aXphcmQuCgokZGVmYXVsdF9ncm91cCA9IChpbnQpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2dyb3VwJyk7Cgp0cnkgewogICAgJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3VzZXJzJyk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgewogICAgICAgIC8vIHdlJ3JlIGNhbmNlbGxpbmcuCiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19jYW5jZWxsZWQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKICAgIH0KCiAgICAkdXNlcl9pZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywndXNlcl9pZCcpOwogICAgJHVzZXIgPSBcRnJvbnRFbmRVc2Vyc1x1c2VyX2VkaXRfYXNzaXN0YW50OjpyZXRyaWV2ZSgpOwogICAgaWYoICR1c2VyICkgewogICAgICAgIC8vIHdlIGFyZSBoZXJlIGZyb20gdGhlICdiYWNrJyBvcGVyYXRpb24uIG9yIGFuIGVycm9yIGluIHN0ZXAyLgogICAgICAgIGlmKCAkdXNlci0+aWQgIT0gJHVzZXJfaWQgKSAkdXNlciA9IG51bGw7CiAgICB9CiAgICBpZiggISR1c2VyICkgJHVzZXIgPSBuZXcgXEZyb250RW5kVXNlcnNcdXNlcl9lZGl0X2Fzc2lzdGFudCgkdXNlcl9pZCk7CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBmaWxsIHRoZSBkYXRhIGZyb20gdGhlIGZvcm0KICAgICAgICAgICAgJHVzZXItPm5ld191c2VybmFtZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywndXNlcm5hbWUnKTsKICAgICAgICAgICAgJHVzZXItPm5ld19wYXNzd29yZCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncGFzc3dvcmQnKTsKICAgICAgICAgICAgJHVzZXItPnJlcGVhdF9wYXNzd29yZCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncmVwZWF0cGFzc3dvcmQnKTsKICAgICAgICAgICAgJHVzZXItPmV4cGlyZXMgPSBcY2dlX3BhcmFtOjpnZXRfc2VwYXJhdGVkX2RhdGUoJHBhcmFtcywnZXhwaXJlcycpOwogICAgICAgICAgICAkdXNlci0+aXNfZGlzYWJsZWQgPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdkaXNhYmxlZCcpOwogICAgICAgICAgICAkdXNlci0+Zm9yY2VfY2hhbmdlX3NldHRpbmdzID0gXGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnZm9yY2VfY2hzZXR0aW5ncycpOwogICAgICAgICAgICAkdXNlci0+Zm9yY2VfcGFzc3dvcmRfY2hhbmdlID0gXGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnZm9yY2VfbmV3cHcnKTsKICAgICAgICAgICAgJHVzZXItPm11c3RfdmFsaWRhdGUgPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdtdXN0X3ZhbGlkYXRlJyk7CiAgICAgICAgICAgICR1c2VyLT5zZXRfZ3JvdXBzKFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdtZW1iZXJvZicpKTsKCiAgICAgICAgICAgIC8vIHZhbGlkYXRlIHRoZSBkYXRhCiAgICAgICAgICAgICR1c2VyLT52YWxpZGF0ZSgpOwoKICAgICAgICAgICAgLy8gc2F2ZSB0aGUgZGF0YSAodGVtcG9yYXJpbHkpCiAgICAgICAgICAgICR1c2VyLT5zdG9yZSgpOwoKICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gdGhlIG5leHQgc3RlcC4KICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnYWRtaW5fZWRpdHVzZXIyJywkcmV0dXJuaWQpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CgogICAgJGF1dGhfY29uc3VtZXIgPSBmZXVfdXRpbHM6OmdldF9hdXRoX2NvbnN1bWVyKCk7CiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9lZGl0dXNlci50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9lZGl0dXNlcicsJHJldHVybmlkLFsgJ3VzZXJfaWQnID0+ICR1c2VyX2lkIF0pKTsKICAgICR0cGwtPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3VzZXInLCR1c2VyKTsKICAgICR0cGwtPmFzc2lnbigncHJvbXB0X3VzZXJuYW1lJywkYXV0aF9jb25zdW1lci0+Z2V0X3VzZXJuYW1lX3Byb21wdCgpKTsKICAgICR0cGwtPmFzc2lnbigndW5mbGRsZW4nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpKTsKICAgICR0cGwtPmFzc2lnbignbWF4X3VuZmxkbGVuJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3VzZXJuYW1lbGVuZ3RoJykpOwogICAgJHRwbC0+YXNzaWduKCdwd2ZsZGxlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJykpOwogICAgJHRwbC0+YXNzaWduKCdtYXhfcHdmbGRsZW4nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYXhfcGFzc3dvcmRsZW5ndGgnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3JlcXVpcmVfb25lZ3JvdXAnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX29uZWdyb3VwJykpOwoKICAgICRncm91cHMgPSBudWxsOwogICAgaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdzdHJpY3RfZWRpdGdyb3VwcycpICkgJGdyb3VwcyA9ICR0aGlzLT5HZXRHcm91cExpc3RGdWxsKCk7CiAgICBpZiggJGRlZmF1bHRfZ3JvdXAgPCAxICYmIGNvdW50KCRncm91cHMpICkgewogICAgICAgICRnaWRzID0gYXJyYXlfa2V5cygkZ3JvdXBzKTsKICAgICAgICAkZGVmYXVsdF9ncm91cCA9ICRnaWRzWzBdOwogICAgfQogICAgJHRwbC0+YXNzaWduKCdkZWZhdWx0X2dyb3VwJywkZGVmYXVsdF9ncm91cCk7CiAgICAkdHBsLT5hc3NpZ24oJ2dyb3VwcycsJGdyb3Vwcyk7CgogICAgJHRwbC0+ZGlzcGxheSgpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_edituser2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEZyb250RW5kVXNlcnM7CgppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoICd1c2VycycgKSApIHJldHVybjsKCiR1c2VyX2lkID0gJHVzZXIgPSBudWxsOwp0cnkgewogICAgJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3VzZXJzJyk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgewogICAgICAgIC8vIGNsZWFyIGFueXRoaW5nIGluIHRoZSBzZXNzaW9uLCBidXQgZG9uJ3QgbmVlZCB0aGUgZGF0YS4KICAgICAgICBcRnJvbnRFbmRVc2Vyc1x1c2VyX2VkaXRfYXNzaXN0YW50OjpyZXRyaWV2ZSgpOwogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfY2FuY2VsbGVkJykpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7CiAgICB9CgogICAgJHVzZXIgPSBcRnJvbnRFbmRVc2Vyc1x1c2VyX2VkaXRfYXNzaXN0YW50OjpyZXRyaWV2ZSgpOwogICAgaWYoICEkdXNlciApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0NvdWxkIG5vdCByZXN0b3JlIHVzZXIgZWRpdCBpbmZvIGZyb20gc2Vzc2lvbicpOwogICAgJHVzZXJfaWQgPSAkdXNlci0+aWQ7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snYmFjayddKSApIHsKICAgICAgICAkdXNlci0+c3RvcmUoKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9lZGl0dXNlcicsJHJldHVybmlkLCBbICd1c2VyX2lkJyA9PiAkdXNlcl9pZCBdICk7CiAgICB9CgogICAgJGFsbGRlZm5zID0gJHRoaXMtPkdldFByb3BlcnR5RGVmbnMoKTsKICAgICRwcm9wZXJ0aWVzID0gXGZldV91dGlsczo6Z2V0X3Byb3BlcnRpZXNfZm9yX2dyb3VwcygkdXNlci0+Z2V0X2dyb3VwcygpKTsKICAgIGlmKCAhY291bnQoJHByb3BlcnRpZXMpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9wZXJ0aWVzJykpOwoKICAgICRmaWVsZHMgPSBbXTsKICAgIGZvcmVhY2goICRwcm9wZXJ0aWVzIGFzICRwcm9wICkgewogICAgICAgICRwcm9wX25hbWUgPSAkcHJvcFsnbmFtZSddOwogICAgICAgIGlmKCAhaXNzZXQoJGFsbGRlZm5zWyRwcm9wX25hbWVdKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0RlZmluaXRpb24gZm9yIHByb3BlcnR5ICcuJHByb3BfbmFtZS4nIG5vdCBmb3VuZCcpOwogICAgICAgIGlmKCAkYWxsZGVmbnNbJHByb3BfbmFtZV1bJ2VuY3J5cHQnXSAmJiAkdXNlcl9pZCA+IDAgKSBjb250aW51ZTsgIC8vIGNhbm5vdCBlZGl0IGVuY3J5cHRlZCBwcm9wZXJ0aWVzLgogICAgICAgICRmaWVsZHNbJHByb3BfbmFtZV0gPSBuZXcgcHJvcGVydHlfZWRpdG9yX2RlZm4oJGFsbGRlZm5zWyRwcm9wX25hbWVdLCRwcm9wLCR1c2VyKTsKICAgIH0KCiAgICBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgICAgIC8qIGhhbmRsZSBzdWJtaXNzaW9uICovCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gbm90ZSwgd2UgdXNlIHRoZSBzZXQgdmFsdWUgbWV0aG9kIG9uIHRoZSBmaWVsZC4uLiBpdCB3aWxsIGFjdHVhbGx5IG1vZGlmeSB0aGUgdXNlcgogICAgICAgICAgICAvLyBhbmQgc2V0IHRoZSBkYXRhLgogICAgICAgICAgICBmb3JlYWNoKCAkZmllbGRzIGFzICRwcm9wX25hbWUgPT4gJGZpZWxkICkgewogICAgICAgICAgICAgICAgJGtleSA9ICdwcm9wXycuJHByb3BfbmFtZTsKICAgICAgICAgICAgICAgICRrZXkyID0gJ3Byb3BkZWxfJy4kcHJvcF9uYW1lOwogICAgICAgICAgICAgICAgJHZhbCA9IFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCRrZXkpOwogICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSA9PSA4ICkgJHZhbCA9IFxjZ2VfcGFyYW06OmdldF9zZXBhcmF0ZWRfZGF0ZSgkcGFyYW1zLCRrZXkpOwogICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSA9PSA2ICkgewogICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWyRrZXkyXSkgKSAkZmllbGQtPmNsZWFyX3ZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICRpZC4ka2V5OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGZpZWxkLT5zZXRfdmFsdWUoJHZhbCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHBhc3MgMiAuLiB2YWxpZGF0ZSB0aGUgaW5wdXQgKHJlcXVpcmVkIGZpZWxkcywgdXBsb2FkIHR5cGVzIGFuZCBzby1vbikKICAgICAgICAgICAgZm9yZWFjaCggJGZpZWxkcyBhcyAkcHJvcF9uYW1lID0+ICRmaWVsZCApIHsKICAgICAgICAgICAgICAgICRmaWVsZC0+dmFsaWRhdGUoKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gcGFzcyAyLjEgLi4uIGVuc3VyZSB0aGF0IGlmIG11c3RfdmFsaWRhdGUgaXMgb24sIHRoYXQgd2UgaGF2ZSBhbiBlbWFpbCBhZGRyZXNzCiAgICAgICAgICAgIC8vIGZvciB0aGlzIHVzZXIuCiAgICAgICAgICAgIGlmKCAkdXNlci0+bXVzdF92YWxpZGF0ZSAmJiAhJHVzZXItPmNhbl92YWxpZGF0ZSgpICkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl92YWxpZGF0ZV9pbnN1ZmZpY2llbnRpbmZvJykpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkaXNfYWRkID0gKCR1c2VyLT5pZCA8IDEpID8gVFJVRSA6IEZBTFNFOwogICAgICAgICAgICAkdXNlci0+c2F2ZSgpOwoKICAgICAgICAgICAgLy8gcGFzcyAzIC4uIGRvIHBvc3QgcHJvb2Nlc3NpbmcuCiAgICAgICAgICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJHByb3BfbmFtZSA9PiAkZmllbGQgKSB7CiAgICAgICAgICAgICAgICAkZmllbGQtPnBvc3Rwcm9jZXNzKCR1c2VyKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gYWxsIGRvbmUuLi4ganVzdCBnb3R0YSBkbyBzb21lIG5vdGlmaWNhdGlvbnMgYW5kIGV2ZW50cy4KICAgICAgICAgICAgJGV2dF9wYXJtcyA9IFsgJ25hbWUnID0+ICR1c2VyLT51c2VybmFtZSwgJ2lkJyA9PiAkdXNlci0+aWQgXTsKICAgICAgICAgICAgaWYoICRpc19hZGQgKSB7CiAgICAgICAgICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdBZGRlZCB1c2VyICcuJHVzZXItPnVzZXJuYW1lKTsKICAgICAgICAgICAgICAgICR0aGlzLT5hZGRfaGlzdG9yeSgkdXNlci0+aWQsJ2FkbWluIGFkZCB1c2VyJyk7CiAgICAgICAgICAgICAgICAkdGhpcy0+U2VuZEV2ZW50KCdPbkNyZWF0ZVVzZXInLCAkZXZ0X3Bhcm1zICk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X1NlbmROb3RpZmljYXRpb25FbWFpbCgnT25DcmVhdGVVc2VyJywgJGV2dF9wYXJtcyApOwogICAgICAgICAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ191c2VyYWRkZWQnKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+YWRkX2hpc3RvcnkoJHVzZXJfaWQsJ2FkbWluIGNoYW5nZSBzZXR0aW5ncycpOwogICAgICAgICAgICAgICAgYXVkaXQoJHVzZXItPmlkLCR0aGlzLT5HZXROYW1lKCksJ01vZGlmaWVkIHVzZXIgJy4kdXNlci0+dXNlcm5hbWUpOwoKICAgICAgICAgICAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uVXBkYXRlVXNlcicsICRldnRfcGFybXMgKTsKICAgICAgICAgICAgICAgICR0aGlzLT5fU2VuZE5vdGlmaWNhdGlvbkVtYWlsKCdPblVwZGF0ZVVzZXInLCAkZXZ0X3Bhcm1zICk7CiAgICAgICAgICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3VzZXJtb2RpZmllZCcpKTsKCiAgICAgICAgICAgICAgICBpZiggJHVzZXItPm11c3RfdmFsaWRhdGUgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcGNvZGUgPSAkdGhpcy0+R2V0VXNlclRlbXBDb2RlKCAkdXNlci0+aWQgKTsKICAgICAgICAgICAgICAgICAgICBpZiggISR0bXBjb2RlICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZ2VuZXJhdG9yID0gbmV3IFxGcm9udEVuZFVzZXJzXGVtYWlsX3ZlcmlmeV9hc3Npc3RhbnQoJHVzZXItPmlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGdlbmVyYXRvci0+c2VuZCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CgogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdHVzZXIyLnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdyZXF1aXJlZF9maWVsZF9jb2xvcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywnYmx1ZScpKTsKICAgICR0cGwtPmFzc2lnbignaGlkZGVuX2ZpZWxkX2NvbG9yJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZGVuX2ZpZWxkX2NvbG9yJywnYmx1ZScpKTsKICAgICR0cGwtPmFzc2lnbigncmVxdWlyZWRfZmllbGRfbWFya2VyJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVxdXJpZWRfZmllbGRfbWFya2VyJywnKicpKTsKICAgICR0cGwtPmFzc2lnbignaGlkZGVuX2ZpZWxkX21hcmtlcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGRlbl9maWVsZF9tYXJrZXInLCchIScpKTsKICAgICR0cGwtPmFzc2lnbignZmllbGRzJywkZmllbGRzKTsKICAgICR0cGwtPmFzc2lnbigndXNlcicsJHVzZXIpOwogICAgJHRwbC0+ZGlzcGxheSgpOwogICAgJHVzZXItPnN0b3JlKCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBpZiggJHVzZXIgKSAkdXNlci0+c3RvcmUoKTsKICAgICR0aGlzLT5TZXRFcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2FkbWluX2VkaXR1c2VyJywkcmV0dXJuaWQsIFsgJ3VzZXJfaWQnID0+ICR1c2VyX2lkIF0gKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_enable_user.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNSBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CmlmKCAhJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ2VkaXR1c2VycycpICkgZXhpdDsKCiR1aWQgPSAoaW50KSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCd1aWQnKTsKJHN0YXRlID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnc3RhdGUnLDApOwokc3RhdGUgPSAhJHN0YXRlOwokdGhpcy0+U2V0Q3VycmVudFRhYigndXNlcnMnKTsKCnRyeSB7CiAgICAkdGhpcy0+U2V0VXNlckRpc2FibGVkKCR1aWQsJHN0YXRlKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfdXNlcl9zdGF0ZV9jaGFuZ2VkJykpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwp9CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7]]></data>
	</file>
	<file>
	  <filename>/action.admin_exportgroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoICRnQ21zICkgKSByZXR1cm47CmlmKCAhJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ2VkaXRncm91cHMnKSApIHJldHVybjsKCmlmKCAhaXNzZXQoJHBhcmFtc1snZ3JvdXBfaWQnXSkgKSByZXR1cm47CgokZ3JvdXBpZCA9ICRwYXJhbXNbJ2dyb3VwX2lkJ107CgokdGhpcy0+U2V0Q3VycmVudFRhYignZ3JvdXBzJyk7CmlmKCAhZmV1X3V0aWxzOjp1c2luZ19zdGRfY29uc3VtZXIoKSApIHsKICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vdHN1cHBvcnRlZCcpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2dyb3VwcycpOwp9CgokZ3JwX2luZm8gPSAkdGhpcy0+R2V0R3JvdXBJbmZvKCAkZ3JvdXBpZCApOwppZiggIWlzX2FycmF5KCAkZ3JwX2luZm8gKSB8fCAhaXNzZXQoJGdycF9pbmZvWydpZCddKSApIHsKICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRncm91cGlkJywkZ3JvdXBpZCkpOwogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnZ3JvdXBzJyk7CiAgcmV0dXJuOwp9CgokZ3JwX3Byb3BfcmVscyA9ICR0aGlzLT5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCAkZ3JvdXBpZCApOwppZiggIWlzX2FycmF5KCAkZ3JwX3Byb3BfcmVscyApIHx8ICFjb3VudCgkZ3JwX3Byb3BfcmVscykgKSB7CiAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3JlbGF0aW9ucycpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2dyb3VwcycpOwogIHJldHVybjsKfQoKJGZpbGVuYW1lID0gJGdycF9pbmZvWydncm91cG5hbWUnXS4nLnhtbCc7CiRzbWFydHktPmFzc2lnbignZ3JvdXBfbmFtZScsJGdycF9pbmZvWydncm91cG5hbWUnXSk7CiRzbWFydHktPmFzc2lnbignZ3JvdXBfZGVzY3JpcHRpb24nLCRncnBfaW5mb1snZ3JvdXBkZXNjJ10pOwokcHJvcGVydGllcyA9IGFycmF5KCk7CmZvcmVhY2goICRncnBfcHJvcF9yZWxzIGFzICRvbmVyZWwgKSB7CiAgJGRlZm4gPSAkdGhpcy0+R2V0UHJvcGVydHlEZWZuKCAkb25lcmVsWyduYW1lJ10gKTsKICBpZiggISRkZWZuICkgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9wbm90Zm91bmQnLCRvbmVyZWxbJ25hbWUnXSkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCdncm91cHMnKTsKICAgIHJldHVybjsKICB9CgogICRvYmogPSBuZXcgU3RkQ2xhc3MoKTsKICAkb2JqLT5uYW1lID0gJG9uZXJlbFsnbmFtZSddOwogICRvYmotPnNvcnRvcmRlciA9ICRvbmVyZWxbJ3NvcnRfa2V5J107CiAgJG9iai0+c3RhdHVzID0gJG9uZXJlbFsncmVxdWlyZWQnXTsKICAkb2JqLT5sb3N0dW5mbGFnID0gJG9uZXJlbFsnbG9zdHVuZmxhZyddOwogICRvYmotPnByb21wdCA9ICRkZWZuWydwcm9tcHQnXTsKICAkb2JqLT50eXBlID0gJGRlZm5bJ3R5cGUnXTsKICAkb2JqLT5sZW5ndGggPSAkZGVmblsnbGVuZ3RoJ107CiAgJG9iai0+bWF4bGVuZ3RoID0gJGRlZm5bJ21heGxlbmd0aCddOwogIGlmKCAkb2JqLT50eXBlID09IDQgfHwgJG9iai0+dHlwZSA9PSA1ICkgewogICAgJG9wcyA9IGFycmF5KCk7CiAgICAkc2VsZWN0X29wcyA9ICR0aGlzLT5HZXRTZWxlY3RPcHRpb25zKCAkb2JqLT5uYW1lLCAyICk7CiAgICBmb3JlYWNoKCAkc2VsZWN0X29wcyBhcyAkc2VsX29wICkgewogICAgICAkb3AgPSBuZXcgU3RkQ2xhc3M7CiAgICAgICRvcC0+bmFtZSA9IHRyaW0oJHNlbF9vcFsnb3B0aW9uX25hbWUnXSk7CiAgICAgICRvcC0+dGV4dCA9IHRyaW0oJHNlbF9vcFsnb3B0aW9uX3RleHQnXSk7CiAgICAgICRvcHNbXSA9ICRvcDsKICAgIH0KICAgICRvYmotPm9wdGlvbnMgPSAkb3BzOwogIH0KCiAgJHByb3BlcnRpZXNbXSA9ICRvYmo7Cn0KJHNtYXJ0eS0+YXNzaWduKCdwcm9wZXJ0aWVzJywkcHJvcGVydGllcyk7CgppZihpbmlfZ2V0KCd6bGliLm91dHB1dF9jb21wcmVzc2lvbicpKSBpbmlfc2V0KCd6bGliLm91dHB1dF9jb21wcmVzc2lvbicsICdPZmYnKTsKc2V0X3RpbWVfbGltaXQoOTk5OSk7CgovLyBnZXQgdGhlIGRhdGEKJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOyAKZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KJGRhdGEgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdncm91cF94bWwudHBsJyk7CgpoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CmhlYWRlcignRXhwaXJlczogMCcpOwpoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IG11c3QtcmV2YWxpZGF0ZSwgcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCcpOwpoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CmhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiRmaWxlbmFtZVwiIiApOwpoZWFkZXIoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJpbmFyeScpOwpoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gc3RybGVuKCRkYXRhKSk7CmVjaG8gJGRhdGE7CgpAZmx1c2goKTsgQG9iX2ZsdXNoKCk7IEBvYl9mbHVzaCgpOwovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_export_users.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygndXNlcnMnKSApIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3VzZXJzJyk7Cgokb2Zmc2V0ID0gMDsKJGJhdGNoc2l6ZSA9IDUwOwokY291bnQgPSAkZGItPkdldE9uZSgnU0VMRUNUIENPVU5UKERJU1RJTkNUIHUuaWQpIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIHUnKTsKaWYoICRjb3VudCA9PSAwICkgewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfZXhwb3J0X25vdXNlcnMnKSk7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKfQokdXF1ZXJ5ID0gJ1NFTEVDVCBESVNUaU5DVCB1LmlkLHUudXNlcm5hbWUsdS5leHBpcmVzLHUuY3JlYXRlZGF0ZQogICAgICAgICAgIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIHUgT1JERVIgQlkgdS5pZCc7CgokZ3JvdXBzID0gYXJyYXlfZmxpcCgkdGhpcy0+R2V0R3JvdXBMaXN0KCkpOwokcHJvcGRlZm5zID0gJHRoaXMtPkdldFByb3BlcnR5RGVmbnMoKTsKJHJlbG5zID0gYXJyYXkoKTsKZm9yZWFjaCggJGdyb3VwcyBhcyAkZ2lkID0+ICRnbmFtZSApIHsKICAkcmVsbnNbJGdpZF0gPSAkdGhpcy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucygkZ2lkKTsKfQoKLy8gYnVpbGQgdGhlIGZpZWxkIG1hcAokZmllbGRtYXAgPSBhcnJheSgndXNlcm5hbWUnPT5udWxsLCdleHBpcmVzJz0+bnVsbCwnY3JlYXRlZGF0ZSc9Pm51bGwsJ2dyb3VwbmFtZSc9Pm51bGwpOwokcHJvcGxpc3QgPSBhcnJheSgpOwpmb3JlYWNoKCAkcmVsbnMgYXMgJGdpZCA9PiAkcmVsbl9saXN0ICkgewogIGZvcmVhY2goICRyZWxuX2xpc3QgYXMgJHJlbG4gKSB7CiAgICBpZiggIWlzc2V0KCRwcm9wZGVmbnNbJHJlbG5bJ25hbWUnXV0pICkgY29udGludWU7CiAgICBpZiggJHByb3BkZWZuc1skcmVsblsnbmFtZSddXVsnZW5jcnlwdCddICkgY29udGludWU7CiAgICBpZiggJHJlbG5bJ3JlcXVpcmVkJ10gPT0gMiB8fCAkcmVsblsncmVxdWlyZWQnXSA9PSAxICkgewogICAgICAkZmllbGRtYXBbJHJlbG5bJ25hbWUnXV0gPSBudWxsOwogICAgICAkcHJvcGxpc3RbXSA9ICRyZWxuWyduYW1lJ107CiAgICB9CiAgfQp9CgovLyBjbGVhciBhbGwgYnVmZmVycwovLyBleHBvcnQgdGhlIGhlYWRlciBsaW5lCiRmbj0iZmV1c2Vycy0iLmRhdGUoJ1ktbS1kJykuJy5jc3YnOwokaGVhZGVyID0gJyMjJy5pbXBsb2RlKCcsJyxhcnJheV9rZXlzKCRmaWVsZG1hcCkpOwokaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7CmZvciAoJGNudCA9IDA7ICRjbnQgPCBzaXplb2YoJGhhbmRsZXJzKTsgJGNudCsrKSB7IG9iX2VuZF9jbGVhbigpOyB9CmhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwpoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZm9yY2UtZG93bmxvYWQnKTsKaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0nLiRmbik7CmVjaG8gJGhlYWRlci4iXG4iOwoKd2hpbGUoICRvZmZzZXQgPCAkY291bnQgKSB7CiAgICAkZGJyX3UgPSAkZGItPlNlbGVjdExpbWl0KCR1cXVlcnksJGJhdGNoc2l6ZSwkb2Zmc2V0KTsKCiAgICAvLyBnZXQgdGhlIHVzZXIgaWRzLgogICAgJHVpZHMgPSBhcnJheSgpOwogICAgd2hpbGUoICEkZGJyX3UtPkVPRigpICkgewogICAgICAgICR0bXAgPSAoaW50KSRkYnJfdS0+ZmllbGRzWydpZCddOwogICAgICAgIGlmKCAkdG1wID4gMCAmJiAhaW5fYXJyYXkoJHRtcCwkdWlkcykgKSAkdWlkc1tdID0gJHRtcDsKICAgICAgICAkZGJyX3UtPk1vdmVOZXh0KCk7CiAgICB9CiAgICAkZGJyX3UtPk1vdmVGaXJzdCgpOwoKICAgIC8vIGdldCB0aGUgYmVsb25ncyBzdHVmZiBmb3IgdGhlc2UgdXNlcnMKICAgICRicXVlcnkgPSAnU0VMRUNUIHVzZXJpZCxncm91cGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2JlbG9uZ3MKICAgICAgICAgICAgIFdIRVJFIHVzZXJpZCBJTiAoJy5pbXBsb2RlKCcsJywkdWlkcykuJykgT1JERVIgQlkgdXNlcmlkLGdyb3VwaWQnOwogICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJGJxdWVyeSk7CiAgICAkYmVsb25ncyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdG1wIGFzICRicm93ICkgewogICAgICAgIGlmKCAhaXNzZXQoJGJlbG9uZ3NbJGJyb3dbJ3VzZXJpZCddXSkgKSAkYmVsb25nc1skYnJvd1sndXNlcmlkJ11dID0gYXJyYXkoKTsKICAgICAgICAkYmVsb25nc1skYnJvd1sndXNlcmlkJ11dW10gPSAkYnJvd1snZ3JvdXBpZCddOwogICAgfQoKICAgIC8vIGdldCB0aGUgcHJvcGVydGllcyBmb3IgdGhlc2UgdXNlcnMKICAgICRwcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcwogICAgICAgICAgICAgV0hFUkUgdXNlcmlkIElOICgnLmltcGxvZGUoJywnLCR1aWRzKS4nKSBPUkRFUiBCWSB1c2VyaWQsdGl0bGUnOwogICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHBxdWVyeSk7CiAgICAkcHJvcGVydGllcyA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdG1wIGFzICRwcm93ICkgewogICAgICAgIGlmKCAhaXNzZXQoJHByb3BlcnRpZXNbJHByb3dbJ3VzZXJpZCddXSkgKSAkcHJvcGVydGllc1skcHJvd1sndXNlcmlkJ11dID0gYXJyYXkoKTsKICAgICAgICAkcHJvcGVydGllc1skcHJvd1sndXNlcmlkJ11dW10gPSBhcnJheSgkcHJvd1sndGl0bGUnXSwkcHJvd1snZGF0YSddKTsKICAgIH0KCiAgICB3aGlsZSggISRkYnJfdS0+RU9GKCkgKSB7CiAgICAgICAgLy8gYWRkIHByaW1hcnkgZmllbGRzCiAgICAgICAgJHVpZCA9ICRkYnJfdS0+ZmllbGRzWydpZCddOwogICAgICAgICRyb3cgPSAkZmllbGRtYXA7CiAgICAgICAgJHJvd1sndXNlcm5hbWUnXSA9ICRkYnJfdS0+ZmllbGRzWyd1c2VybmFtZSddOwogICAgICAgICRyb3dbJ2V4cGlyZXMnXSA9ICRkYnJfdS0+ZmllbGRzWydleHBpcmVzJ107CiAgICAgICAgJHJvd1snY3JlYXRlZGF0ZSddID0gJGRicl91LT5maWVsZHNbJ2NyZWF0ZWRhdGUnXTsKCiAgICAgICAgLy8gYWRkIGdyb3VwbmFtZShzKQogICAgICAgIGlmKCBpc3NldCgkYmVsb25nc1skdWlkXSkgKSB7CiAgICAgICAgICAgICR0bXAgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkYmVsb25nc1skdWlkXSBhcyAkZ2lkICkgewogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRncm91cHNbJGdpZF0pICkgJHRtcFtdID0gJGdyb3Vwc1skZ2lkXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcm93Wydncm91cG5hbWUnXSA9IGltcGxvZGUoJywnLCR0bXApOwogICAgICAgIH0KCiAgICAgICAgLy8gYWRkIHByb3BlcnRpZXMKICAgICAgICBpZiggaXNzZXQoJHByb3BlcnRpZXNbJHVpZF0pICkgewogICAgICAgICAgICBmb3JlYWNoKCAkcHJvcGVydGllc1skdWlkXSBhcyAkcmVjICkgewogICAgICAgICAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJHJlY1swXSwkcm93KSApIHsKICAgICAgICAgICAgICAgICAgICAkcm93WyRyZWNbMF1dID0gJHJlY1sxXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkZGJyX3UtPk1vdmVOZXh0KCk7CgogICAgICAgIC8vIG91dHB1dCB0aGUgcm93LgogICAgICAgIGVjaG8gY2dlX2FycmF5OjppbXBsb2RlX3F1b3RlZChhcnJheV92YWx1ZXMoJHJvdykpLiJcbiI7CiAgICB9CiAgICAkb2Zmc2V0ICs9ICRiYXRjaHNpemU7Cn0gLy8gd2hpbGUKCmV4aXQoKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_importgroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoICRnQ21zICkgKSByZXR1cm47CmlmKCAhJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ2VkaXRncm91cHMnKSApIHJldHVybjsKCmZ1bmN0aW9uIGNoZWNrX2dyb3VwX2NvbXBsZXRlKCAmJGdycCApCnsKICBpZiggIWlzX2FycmF5KCAkZ3JwICkgKSByZXR1cm4gZmFsc2U7CiAgaWYoIWlzc2V0KCRncnBbJ25hbWUnXSkgfHwgZW1wdHkoJGdycFsnbmFtZSddKSkgcmV0dXJuIGZhbHNlOwogIAogIC8vIHBhc3NlZAogIGlmKCAhaXNzZXQoJGdycFsncHJvcGVydGllcyddKSB8fCAhaXNfYXJyYXkoJGdycFsncHJvcGVydGllcyddKSB8fCAoY291bnQoJGdycFsncHJvcGVydGllcyddKSA9PSAwKSApIHJldHVybiBmYWxzZTsKCiAgZm9yZWFjaCggJGdycFsncHJvcGVydGllcyddIGFzICRvbmVwcm9wICkgewogICAgaWYoICFjaGVja19wcm9wZXJ0eV9jb21wbGV0ZSggJG9uZXByb3AgKSApIHJldHVybiBmYWxzZTsKICB9CgogIHJldHVybiB0cnVlOwp9CgoKZnVuY3Rpb24gY2hlY2tfcHJvcGVydHlfY29tcGxldGUoICYkcHJvcCApCnsKICBpZiggIWlzX2FycmF5KCAkcHJvcCApICkgcmV0dXJuIEZBTFNFOwogIGlmKCFpc3NldCgkcHJvcFsnbmFtZSddKSB8fCBlbXB0eSgkcHJvcFsnbmFtZSddKSkgcmV0dXJuIEZBTFNFOwogIGlmKCFpc3NldCgkcHJvcFsndHlwZSddKSB8fCAkcHJvcFsndHlwZSddID09ICcnKSByZXR1cm4gRkFMU0U7CiAgaWYoIWlzc2V0KCRwcm9wWydwcm9tcHQnXSkgfHwgZW1wdHkoJHByb3BbJ3Byb21wdCddKSkgcmV0dXJuIEZBTFNFOwogIGlmKCFpc3NldCgkcHJvcFsnc29ydG9yZGVyJ10pIHx8ICRwcm9wWydzb3J0b3JkZXInXSA9PT0gJycgKSByZXR1cm4gRkFMU0U7CiAgaWYoIWlzc2V0KCRwcm9wWydzdGF0dXMnXSkgfHwgZW1wdHkoJHByb3BbJ3N0YXR1cyddKSkgcmV0dXJuIEZBTFNFOwogIGlmKCFpc3NldCgkcHJvcFsnbG9zdHVuZmxhZyddKSB8fCBlbXB0eSgkcHJvcFsnbG9zdHVuZmxhZyddKSkgcmV0dXJuIEZBTFNFOwoKICBpZihpc3NldCgkcHJvcFsnbGVuZ3RoJ10pKSB7CiAgICBpZihlbXB0eSgkcHJvcFsnbGVuZ3RoJ10pKSByZXR1cm4gRkFMU0U7CiAgICBpZihpbnR2YWwoJHByb3BbJ2xlbmd0aCddKSA9PSAwKSByZXR1cm4gRkFMU0U7CiAgfQogIGlmKGlzc2V0KCRwcm9wWydtYXhsZW5ndGgnXSkpIHsKICAgIGlmKGVtcHR5KCRwcm9wWydtYXhsZW5ndGgnXSkpIHJldHVybiBGQUxTRTsKICAgIGlmKGludHZhbCgkcHJvcFsnbWF4bGVuZ3RoJ10pID09IDApIHJldHVybiBGQUxTRTsKICB9CgogICR0eXBlID0gaW50dmFsKCRwcm9wWyd0eXBlJ10pOwogIGlmKCAkdHlwZSA+IDYgfHwgJHR5cGUgPCAwICkgcmV0dXJuIEZBTFNFOwogIGlmKCAkdHlwZSA9PSA0IHx8ICR0eXBlID09IDUgKSB7CiAgICAvLyBjaGVjayBmb3Igb3B0aW9ucwogICAgaWYoICFpc3NldCgkcHJvcFsnb3B0aW9ucyddKSB8fCAhaXNfYXJyYXkoJHByb3BbJ29wdGlvbnMnXSkgKSByZXR1cm4gRkFMU0U7CgogICAgZm9yZWFjaCggJHByb3BbJ29wdGlvbnMnXSBhcyAkb25lb3AgKSB7CiAgICAgIGlmKCAhaXNzZXQoJG9uZW9wWyduYW1lJ10pIHx8ICFpc3NldCgkb25lb3BbJ3RleHQnXSkgKSByZXR1cm4gRkFMU0U7CiAgICB9CiAgfQoKICByZXR1cm4gVFJVRTsKfQoKaWYoICFmZXVfdXRpbHM6OnVzaW5nX3N0ZF9jb25zdW1lcigpICkgewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3Jfbm90c3VwcG9ydGVkJykpOwogICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnZ3JvdXBzJyk7Cn0KCmlmKCBpc3NldCggJHBhcmFtc1snY2FuY2VsJ10gKSApIHsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2dyb3VwcycpOwp9CgppZiggaXNzZXQoICRwYXJhbXNbJ3N1Ym1pdCddICkgKSB7CiAgLy8KICAvLyBTdWJtaXQgd2FzIHByZXNzZWQKICAvLwogIGlmKCAhaXNzZXQoICRfRklMRVNbJGlkLid4bWxmaWxlJ10gKSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ191cGxvYWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2dyb3VwcycpOwogIH0KICAkdGhlZmlsZSA9JiAkX0ZJTEVTWyRpZC4neG1sZmlsZSddOwogIGlmKCAkdGhlZmlsZVsndHlwZSddICE9ICd0ZXh0L3htbCcgfHwgJHRoZWZpbGVbJ3NpemUnXSA9PSAwIHx8ICR0aGVmaWxlWydlcnJvciddICE9IDAgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCdncm91cHMnKTsKICB9CgogIC8vCiAgLy8gV2UgZ290IGFuIFhNTCBmaWxlIChob3BlIGl0J3MgdGhlIHJpZ2h0IG9uZQogIC8vIG5vdyB3ZSBjYW4gdHJ5IHRvIHBhcnNlIGl0IAogIC8vCgogICR4bWwgPSBmaWxlX2dldF9jb250ZW50cyggJHRoZWZpbGVbJ3RtcF9uYW1lJ10gKTsKICAkcGFyc2VyID0geG1sX3BhcnNlcl9jcmVhdGUoKTsKICAkcmV0ID0geG1sX3BhcnNlX2ludG9fc3RydWN0KCAkcGFyc2VyLCAkeG1sLCAkdmFsLCAkeHQgKTsKICB4bWxfcGFyc2VyX2ZyZWUoICRwYXJzZXIgKTsKCiAgaWYoICRyZXQgPT0gMCApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfYmFkX3htbCcpLicgMScpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCdncm91cHMnKTsKICB9CgogIC8vCiAgLy8gV2UgaGF2ZSBzb21lIGtpbmQgb2YgdmFsaWQgWE1MCiAgLy8KICAkb25lcHJvcGVydHkgPSBhcnJheSgpOwogICRvbmVvcHRpb24gPSBhcnJheSgpOwogICRoYXZlX2NvbXBsZXRlX2dyb3VwID0gZmFsc2U7CiAgJGdycF9pbmZvID0gYXJyYXkoKTsKICBmb3JlYWNoKCAkdmFsIGFzICRlbGVtICkgewogICAgJHZhbHVlID0gKGlzc2V0KCRlbGVtWyd2YWx1ZSddKT8kZWxlbVsndmFsdWUnXTonJyk7CiAgICAkdHlwZSA9IChpc3NldCgkZWxlbVsndHlwZSddKT8kZWxlbVsndHlwZSddOicnKTsKICAgICR0YWcgPSBzdHJ0b2xvd2VyKCRlbGVtWyd0YWcnXSk7CiAgICAkZmxkID0gc3Vic3RyKCR0YWcsc3RycG9zKCR0YWcsJ18nKSsxKTsKCiAgICBzd2l0Y2goICR0YWcgKSB7CiAgICBjYXNlICdmZXVfZ3JvdXAnOgogICAgICB7CglpZiggJHR5cGUgIT0gJ2NvbXBsZXRlJyAmJiAkdHlwZSAhPSAnY2xvc2UnICkgY29udGludWU7CglpZiggIWNoZWNrX2dyb3VwX2NvbXBsZXRlKCRncnBfaW5mbykgKSB7CgkgIC8vIGFuIGVycm9yIHRoYXQgd2Ugc2hvdWxkIG5ldmVyIGdldAoJICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2JhZF94bWwnKS4nIDInKTsKCSAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCdncm91cHMnKTsKCSAgcmV0dXJuOwoJfQoJLy8gd2Ugc2hvdWxkIGhhdmUgYSBjb21wbGV0ZSBncm91cCBhdCB0aGlzIHBvaW50CgkkaGF2ZV9jb21wbGV0ZV9ncm91cCA9IHRydWU7CglicmVhazsKICAgICAgfQoKICAgIGNhc2UgJ2dycF9uYW1lJzoKICAgIGNhc2UgJ2dycF9kZXNjcmlwdGlvbic6CiAgICAgIHsKCWlmKCAkdHlwZSAhPSAnY29tcGxldGUnICYmICR0eXBlICE9ICdjbG9zZScgKSBjb250aW51ZTsKCWlmKCBpc3NldCgkZ3JwX2luZm9bJGZsZF0pICkgewoJICAvLyBhbiBlcnJvciB0aGF0IHdlIHNob3VsZCBuZXZlciBnZXQKCSAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9iYWRfeG1sJykuJyAzJyk7CgkgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnZ3JvdXBzJyk7CgkgIHJldHVybjsKCX0KCSRncnBfaW5mb1skZmxkXSA9ICR2YWx1ZTsKCWJyZWFrOwogICAgICB9CgoKICAgIGNhc2UgJ3Byb3BlcnR5JzoKICAgICAgewoJaWYoICR0eXBlICE9ICdjb21wbGV0ZScgJiYgJHR5cGUgIT0gJ2Nsb3NlJyApIGNvbnRpbnVlOwoJaWYoICFjaGVja19wcm9wZXJ0eV9jb21wbGV0ZSgkb25lcHJvcGVydHkpICkgewoJICAvLyBhbiBlcnJvciB0aGF0IHdlIHNob3VsZCBuZXZlciBnZXQKCSAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9iYWRfeG1sJykuJyA0Jyk7CgkgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnZ3JvdXBzJyk7CgkgIHJldHVybjsKCX0KCWlmKCAhaXNzZXQoJGdycF9pbmZvWydwcm9wZXJ0aWVzJ10pICkgJGdycF9pbmZvWydwcm9wZXJ0aWVzJ10gPSBhcnJheSgpOwoJJGdycF9pbmZvWydwcm9wZXJ0aWVzJ11bXSA9ICRvbmVwcm9wZXJ0eTsKCSRvbmVwcm9wZXJ0eSA9IGFycmF5KCk7CglicmVhazsKICAgICAgfQoKICAgIGNhc2UgJ3Byb3BfbmFtZSc6CiAgICBjYXNlICdwcm9wX3Byb21wdCc6CiAgICBjYXNlICdwcm9wX3ZhbHVlJzoKICAgIGNhc2UgJ3Byb3BfdHlwZSc6CiAgICBjYXNlICdwcm9wX2xlbmd0aCc6CiAgICBjYXNlICdwcm9wX21heGxlbmd0aCc6CiAgICBjYXNlICdwcm9wX3NvcnRvcmRlcic6CiAgICBjYXNlICdwcm9wX3N0YXR1cyc6CiAgICBjYXNlICdwcm9wX2xvc3R1bmZsYWcnOgogICAgICB7CglpZiggJHR5cGUgIT0gJ2NvbXBsZXRlJyAmJiAkdHlwZSAhPSAnY2xvc2UnICkgY29udGludWU7CglpZiggaXNzZXQoICRvbmVwcm9wZXJ0eVskZmxkXSApICkgewoJICAvLyBhbiBlcnJvciB0aGF0IHdlIHNob3VsZCBuZXZlciBnZXQKCSAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9iYWRfeG1sJykuJyA1Jyk7CgkgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnZ3JvdXBzJyk7CgkgIHJldHVybjsKCX0KCSRvbmVwcm9wZXJ0eVskZmxkXSA9ICR2YWx1ZTsKCWJyZWFrOwogICAgICB9CgogICAgY2FzZSAncHJvcF9vcHRpb24nOgogICAgICB7CglpZiggJHR5cGUgIT0gJ2NvbXBsZXRlJyAmJiAkdHlwZSAhPSAnY2xvc2UnICkgY29udGludWU7Cgkkb25lcHJvcGVydHlbJ29wdGlvbnMnXVtdID0gJG9uZW9wdGlvbjsKCSRvbmVvcHRpb24gPSBhcnJheSgpOwoJYnJlYWs7CiAgICAgIH0KCiAgICBjYXNlICdvcF9uYW1lJzoKICAgIGNhc2UgJ29wX3RleHQnOgogICAgICB7CglpZiggJHR5cGUgIT0gJ2NvbXBsZXRlJyAmJiAkdHlwZSAhPSAnY2xvc2UnICkgY29udGludWU7Cgkkb25lb3B0aW9uWyRmbGRdID0gJHZhbHVlOwoJYnJlYWs7CiAgICAgIH0KICAgIH0gLy8gc3dpdGNoCiAgfSAvLyBmb3JlYWNoCgogIC8vCiAgLy8gSWYgd2UgZ290IGhlcmUsIHdlIHBhcnNlZCB0aGUgeG1sIGZpbGUgcHJvcGVybHkKICAvLyBhbmQgaXQgbG9va3MgZ29vZC4KICAvLwoKICAvLyBJZiB0aGUgbmV3bmFtZSBpcyBzZXQsIHdlJ2xsIHVzZSB0aGF0CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X25ld25hbWUnXSkgJiYgJHBhcmFtc1snaW5wdXRfbmV3bmFtZSddICE9ICcnICkgJGdycF9pbmZvWyduYW1lJ10gPSAkcGFyYW1zWydpbnB1dF9uZXduYW1lJ107CgogIGlmKCAkdGhpcy0+R3JvdXBFeGlzdHNCeU5hbWUoICRncnBfaW5mb1snbmFtZSddICkgKSB7CiAgICAvLyBhbiBlcnJvciB0aGF0IHdlIHNob3VsZCBuZXZlciBnZXQKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfZ3JvdXBleGlzdHMnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2dyb3VwcycpOwogICAgcmV0dXJuOwogIH0KCiAgaWYoICFpc3NldCgkZ3JwX2luZm9bJ3Byb3BlcnRpZXMnXSkgfHwgIWlzX2FycmF5KCRncnBfaW5mb1sncHJvcGVydGllcyddKSB8fCAoY291bnQoJGdycF9pbmZvWydwcm9wZXJ0aWVzJ10pID09IDApICkgewogICAgLy8gbm8gcHJvcGVydGllcz8KICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfcHJvcGVydGllcycpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnZ3JvdXBzJyk7CiAgICByZXR1cm47CiAgfQoKICAvLyBOb3cgYWRkIHRoZSBwcm9wZXJ0aWVzCiAgLy8gKGZpcnN0IHNjYW4gZm9yIG5hbWVzKQogICRwYXNzZWQgPSB0cnVlOwogIGZvcmVhY2goICRncnBfaW5mb1sncHJvcGVydGllcyddIGFzICRvbmVwcm9wICkgewogICAgJHJlcyA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm4oICRvbmVwcm9wWyduYW1lJ10gKTsKICAgIGlmKCBpc19hcnJheSgkcmVzKSApIHsKICAgICAgJHBhc3NlZCA9IGZhbHNlOwogICAgICBicmVhazsKICAgIH0KICB9CiAgaWYoICEkcGFzc2VkICkgewogICAgLy8gbm8gcHJvcGVydGllcz8KICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfZHVwX3Byb3BlcnRpZXMnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2dyb3VwcycpOwogICAgcmV0dXJuOwogIH0KCiAgLy8KICAvLyBOb3cgcmVhbGx5IGFkZCB0aGVtCiAgLy8KICBmb3JlYWNoKCAkZ3JwX2luZm9bJ3Byb3BlcnRpZXMnXSBhcyAkb25lcHJvcCApIHsKICAgICRyZXMgPSAkdGhpcy0+QWRkUHJvcGVydHlEZWZuKCRvbmVwcm9wWyduYW1lJ10sICRvbmVwcm9wWydwcm9tcHQnXSwgJG9uZXByb3BbJ3R5cGUnXSwgJG9uZXByb3BbJ2xlbmd0biddLCAkb25lcHJvcFsnbWF4bGVuZ3RoJ10pOwogICAgaWYoIGlzX2FycmF5KCAkcmVzICkgJiYgJHJlc1swXSA9PT0gRkFMU0UgKSB7CiAgICAgIC8vIGZvciBzb21lIGR1bWIgcmVhc29uLCB3ZSBzdGlsbCBjb3VsZG4ndCBpbnNlcnQgCiAgICAgIC8vIHRoZSBwcm9wZXJ0eQogICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2NhbnRhZGRwcm9wJykpOwogICAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2dyb3VwcycpOwogICAgICByZXR1cm47CiAgICB9CgogICAgaWYoICRvbmVwcm9wWyd0eXBlJ10gPT0gNCB8fCAkb25lcHJvcFsndHlwZSddID09IDUgKSB7CiAgICAgIC8vIGl0J3MgYSBzZWxlY3QgdHlwZQogICAgICAkb3BzID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCggJG9uZXByb3BbJ29wdGlvbnMnXSBhcyAkb25lb3AgKSB7Cgkkb3BzW10gPSAkb25lb3BbJ3RleHQnXS4nPScuJG9uZW9wWyduYW1lJ107CiAgICAgIH0KICAgICAgJHJlcyA9ICR0aGlzLT5BZGRTZWxlY3RPcHRpb25zKCAkb25lcHJvcFsnbmFtZSddLCAkb3BzICk7CiAgICAgIGlmKCAkcmVzWzBdID09IEZBTFNFICkgewoJLy8gZm9yIHNvbWUgZHVtYiByZWFzb24sIHdlIHN0aWxsIGNvdWxkbid0IGluc2VydCAKCS8vIHRoZSBwcm9wZXJ0eQoJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9jYW50YWRkcHJvcCcpLicgMicpOwoJJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCdncm91cHMnKTsKCXJldHVybjsKICAgICAgfQogICAgfQogIH0KCiAgLy8gV29vaG9vLCB0aGUgcHJvcGVydGllcyB3ZXJlIGFkZGVkCiAgLy8gTm93IHRvIGFkZCB0aGUgZ3JvdXAgaXRzZWxmLgogICRyZXMgPSAkdGhpcy0+QWRkR3JvdXAoJGdycF9pbmZvWyduYW1lJ10sJGdycF9pbmZvWydkZXNjcmlwdGlvbiddKTsKICBpZiggaXNfYXJyYXkoICRyZXMgKSAmJiAkcmVzWzBdID09PSBGQUxTRSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfY2FudGFkZGdyb3VwJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCdncm91cHMnKTsKICAgIHJldHVybjsKICB9CiAgJGdycGlkID0gJHJlc1sxXTsKCiAgLy8gYW5kIGFzc29jaWF0ZSB0aGUgcHJvcGVydGllcyB3aXRoIHRoZSBncm91cAogICRlcnJvciA9IGZhbHNlOwogIGZvcmVhY2goICRncnBfaW5mb1sncHJvcGVydGllcyddIGFzICRvbmVwcm9wICkgewogICAgLy8gaWYgaXQncyBhbiBvcHRpb24gdHlwZSAodHlwZSA0IG9yIDUpIHRoZW4KICAgIC8vIGFkZCB0aGUgb3B0aW9ucwogICAgJHJlcyA9ICR0aGlzLT5BZGRHcm91cFByb3BlcnR5UmVsYXRpb24oICRncnBpZCwgJG9uZXByb3BbJ25hbWUnXSwgJG9uZXByb3BbJ3NvcnRvcmRlciddLCAkb25lcHJvcFsnbG9zdHVuZmxhZyddLCAkb25lcHJvcFsnc3RhdHVzJ10gKTsKICAgIGlmKCAkcmVzWzBdID09PSBGQUxTRSApICRlcnJvciA9IHRydWU7CiAgfQogIGlmKCAkZXJyb3IgPT0gdHJ1ZSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfY2FudGFkZGdyb3VwcmVscycpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwnZ3JvdXBzJyk7CiAgICByZXR1cm47CiAgfQoKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2dyb3VwcycpOwp9IC8vIGlmCgovLyBQcm92aWRlIGEgc2ltcGxlIGZvcm0gdGhhdCBhbGxvd3MgcGVvcGxlIHRvIGNob29zZSB0aGUgZmlsZSB0byBpbXBvcnQKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9pbXBvcnRncm91cCcsJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdjYW5jZWwnLCR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9maWxlbmFtZScsJHRoaXMtPkxhbmcoJ3Byb21wdF9pbXBvcnR4bWxmaWxlJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpbGVuYW1lJywkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwneG1sZmlsZScsJycsNDApKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbmV3bmFtZScsJHRoaXMtPkxhbmcoJ3Byb21wdF9uZXdncm91cG5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfbmV3bmFtZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X25ld25hbWUnKSk7CgplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ltcG9ydGdyb3VwLnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_import_users.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygndXNlcnMnKSApIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3VzZXJzJyk7CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKCmlmKCAhZmV1X3V0aWxzOjp1c2luZ19zdGRfY29uc3VtZXIoKSApIHsKICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX25vdHN1cHBvcnRlZCcpKTsKICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogIHJldHVybjsKfQoKJGltcG9ydHByZWZzID0gYXJyYXkoJ2RlbGV0ZV91c2Vycyc9PjAsJ2RlbGltaXRlcic9PicsJyk7CiR0bXAgPSAkdGhpcy0+Q0dHZXRQcmVmZXJlbmNlKCdpbXBvcnRwcmVmcycpOwppZiggJHRtcCApICR0bXAgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKaWYoIGlzX2FycmF5KCR0bXApICkgJGltcG9ydHByZWZzID0gJHRtcDsKCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgdHJ5IHsKICAgICRfZnAgPSAkaWQuJ2ZpbGUnOwogICAgLy8gY2hlY2sgdGhlIGZpbGUKICAgIGlmKCAhaXNzZXQoJF9GSUxFUykgfHwgIWlzc2V0KCRfRklMRVNbJF9mcF0pIHx8ICRfRklMRVNbJF9mcF1bJ25hbWUnXSA9PSAnJyApIHsKICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcHJvYmxlbV91cGxvYWQnKSk7CiAgICB9CiAgICBpZiggJF9GSUxFU1skX2ZwXVsnc2l6ZSddID09IDAgfHwgJF9GSUxFU1skX2ZwXVsnZXJyb3InXSAhPSAwICkgewogICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9ibGVtX3VwbG9hZCcpKTsKICAgIH0KICAgICRmaCA9IGZvcGVuKCRfRklMRVNbJF9mcF1bJ3RtcF9uYW1lJ10sJ3InKTsKICAgIGlmKCAhJGZoICkgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3VwbG9hZCcpKTsKICAgIHdoaWxlKCAhZmVvZigkZmgpICkgewogICAgICAkbGluZSA9IGNnZV91dGlsczo6ZmdldHMoJGZoKTsKICAgICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKICAgICAgaWYoICEkbGluZSApIGNvbnRpbnVlOwogICAgICBpZiggIXN0YXJ0c3dpdGgoJGxpbmUsJyMjJykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbXBvcnRmaWxlZm9ybWF0JykpOwogICAgICAkbGluZSA9IHRyaW0oc3Vic3RyKCRsaW5lLDIpKTsKICAgICAgJGZpZWxkcyA9IGNnZV9hcnJheTo6c21hcnRfZXhwbG9kZSgkbGluZSwkaW1wb3J0cHJlZnNbJ2RlbGltaXRlciddKTsKICAgICAgaWYoIGNvdW50KCRmaWVsZHMpIDwgMSApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydGZpbGVmb3JtYXQnKSk7CiAgICAgIGJyZWFrOwogICAgfQogICAgZmNsb3NlKCRmaCk7CgogICAgJGltcG9ydHByZWZzWydkZWxldGVfdXNlcnMnXSA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZGVsZXRlX3VzZXJzJywwKTsKICAgICRpbXBvcnRwcmVmc1snZGVsaW1pdGVyJ10gPSB0cmltKGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2RlbGltaXRlcicpKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRwcmVmcycsc2VyaWFsaXplKCRpbXBvcnRwcmVmcykpOwoKICAgICRmbiA9IHRlbXBuYW0oVE1QX0NBQ0hFX0xPQ0FUSU9OLCdmZXVfaW1wb3J0Jyk7CiAgICBpZiggISRmbiApIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NyZWF0ZXRtcGZpbGUnKSk7CiAgICBAY29weSgkX0ZJTEVTWyRfZnBdWyd0bXBfbmFtZSddLCRmbik7CgogICAgJHJldHVybl91cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkKTsKICAgICRzbWFydHktPmFzc2lnbigncmV0dXJuX3VybCcsJHJldHVybl91cmwpOwoKICAgICR1cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX2RvaW1wb3J0JywgJHJldHVybmlkLGFycmF5KCdmaWxlJz0+YmFzZW5hbWUoJGZuKSkpLicmc2hvd3RlbXBsYXRlPWZhbHNlJzsKICAgICRzbWFydHktPmFzc2lnbignaWZyYW1lX3NyYycsICR1cmwpOwogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9pbXBvcnRfdXNlcnMyLnRwbCcpOwogICAgcmV0dXJuOwogIH0KICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICB9Cn0KCi8vIGJ1aWxkIHRoZSBmb3JtLgokZ3JvdXBsaXN0ID0gYXJyYXlfZmxpcCgkdGhpcy0+R2V0R3JvdXBMaXN0KCkpOwppZiggIWNvdW50KCRncm91cGxpc3QpICkgewogICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnbm9ncm91cHMnKSk7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2ltcG9ydF91c2VycycpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdvcHRpb25zJywkaW1wb3J0cHJlZnMpOwokc21hcnR5LT5hc3NpZ24oJ2dyb3VwbGlzdCcsJGdyb3VwbGlzdCk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5faW1wb3J0X3VzZXJzLnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_logout.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgLy8gLSotIG1vZGU6cGhwOyBjLXNldC1zdHlsZTpsaW51eDsgdGFiLXdpZHRoOjI7IGluZGVudC10YWJzLW1vZGU6dDsgYy1iYXNpYy1vZmZzZXQ6IDI7IC0qLQojQkVHSU5fTElDRU5TRQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1vZHVsZTogRnJvbnRFbmRVc2VycyAoYykgMjAwOC0yMDE0IGJ5IFJvYmVydCBDYW1wYmVsbAojICAgICAgICAgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMgIEFuIGFkZG9uIG1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlIHRvIGFsbG93IG1hbmFnZW1lbnQgb2YgZnJvbnRlbmQKIyAgdXNlcnMsIGFuZCB0aGVpciBsb2dpbiBwcm9jZXNzIHdpdGhpbiBhIENNUyBNYWRlIFNpbXBsZSBwb3dlcmVkCiMgIHdlYnNpdGUuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdlZGl0dXNlcnMnKSApIHsKCWlmKCBpc3NldCgkcGFyYW1zWyd1c2VyX2lkJ10pICkgewoJCSR0aGlzLT5Mb2dvdXRVc2VyKCRwYXJhbXNbJ3VzZXJfaWQnXSwKCQkJCQkJCQkJCQkkdGhpcy0+TGFuZygnYWRtaW5fbG9nb3V0JykpOwoJfQp9CgkKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCd1c2VycycpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygnc2l0ZXByZWZzJykgKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoICdwcmVmcycsICR0aGlzLT5MYW5nKCdwcmVmZXJlbmNlcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCAnYXV0aCcsICR0aGlzLT5MYW5nKCdhdXRoZW50aWNhdGlvbicpKTsKZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwcmVmcycsJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3ByZWZzdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdhdXRoJywkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fYXV0aHRhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_set_auth.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdhdXRoJyk7CgppZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV91c2Vyc2FsdCcpICkgewogICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdwd3NhbHQnKSApIHsKICAgICAgICAkcHdzYWx0ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdwd3NhbHQnKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGNvdW50KGlkKSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2Vycyc7CiAgICAgICAgJG51c2VycyA9ICRkYi0+R2V0T25lKCRxdWVyeSk7CiAgICAgICAgaWYoICRudXNlcnMgPiAwICkgewogICAgICAgICAgICAkb2xkc2FsdCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwd3NhbHQnKTsKICAgICAgICAgICAgaWYoICRvbGRzYWx0ICE9ICRwd3NhbHQgKSB7CiAgICAgICAgICAgICAgICAvLyBjYW4gb25seSBjaGFuZ2UgdGhlIHNhbHQgaWYgdGhlcmUgYXJlIG5vIHVzZXJzLgogICAgICAgICAgICAgICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9hZGp1c3RzYWx0JykpOwogICAgICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAnYXV0aCcsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHdzYWx0JywkcHdzYWx0KTsKICAgIH0KfQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlcXVpcmVfb25lZ3JvdXAnLChpbnQpJHBhcmFtc1sncmVxdWlyZV9vbmVncm91cCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfZ3JvdXAnLChpbnQpJHBhcmFtc1snZGVmYXVsdF9ncm91cCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3N1cHBvcnRfbG9zdHVuJywoaW50KSRwYXJhbXNbJ3N1cHBvcnRfbG9zdHVuJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfY2hhbmdldXNlcm5hbWUnLChpbnQpJHBhcmFtc1snYWxsb3dfY2hhbmdldXNlcm5hbWUnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzdXBwb3J0X2xvc3RwdycsKGludCkkcGFyYW1zWydzdXBwb3J0X2xvc3RwdyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJywoaW50KSRwYXJhbXNbJ3B3ZmxkbGVuJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWluX3Bhc3N3b3JkbGVuZ3RoJywoaW50KSRwYXJhbXNbJ21pbnB3bGVuJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWF4X3Bhc3N3b3JkbGVuZ3RoJywoaW50KSRwYXJhbXNbJ21heHB3bGVuJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZW5oYW5jZWRfcGFzc3dvcmQnLChpbnQpJHBhcmFtc1snZW5oYW5jZWRwdyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Bhc3N3b3JkX3JlcXVpcmVkY2hhcnMnLHRyaW0oJHBhcmFtc1sncHdyZXF1aXJlZGNoYXJzJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJuYW1lZmxkbGVuZ3RoJywoaW50KSRwYXJhbXNbJ3VuZmxkbGVuJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWluX3VzZXJuYW1lbGVuZ3RoJywoaW50KSRwYXJhbXNbJ21pbnVubGVuJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWF4X3VzZXJuYW1lbGVuZ3RoJywoaW50KSRwYXJhbXNbJ21heHVubGVuJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY29va2llbmFtZScsdHJpbSgkcGFyYW1zWydjb29raWVuYW1lJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Nvb2tpZV9rZWVwYWxpdmUnLChpbnQpJHBhcmFtc1snY29va2llX2tlZXBhbGl2ZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJywoaW50KSRwYXJhbXNbJ3VzZXJuYW1lX2lzX2VtYWlsJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfZHVwbGljYXRlX2VtYWlscycsKGludCkkcGFyYW1zWydhbGxvd19kdXBsaWNhdGVfZW1haWxzJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycycsKGludCkkcGFyYW1zWydhbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10pOwoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NpZ25pbl9idXR0b24nLHRyaW0oJHBhcmFtc1snc2lnbmluX2J1dHRvbiddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLHRyaW0oJHBhcmFtc1sncmVxdWlyZWRfZmllbGRfbWFya2VyJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJyx0cmltKCRwYXJhbXNbJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGRlbl9maWVsZF9tYXJrZXInLHRyaW0oJHBhcmFtc1snaGlkZGVuX2ZpZWxkX21hcmtlciddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdoaWRkZW5fZmllbGRfY29sb3InLHRyaW0oJHBhcmFtc1snaGlkZGVuX2ZpZWxkX2NvbG9yJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NlY3VyZV9maWVsZF9tYXJrZXInLHRyaW0oJHBhcmFtc1snc2VjdXJlX2ZpZWxkX21hcmtlciddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzZWN1cmVfZmllbGRfY29sb3InLHRyaW0oJHBhcmFtc1snc2VjdXJlX2ZpZWxkX2NvbG9yJ10pKTsKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYWdlaWRmb3Jnb3RwYXNzd2QnLHRyaW0oJHBhcmFtc1sncGFnZWlkZm9yZ290cGFzc3dkJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhZ2VpZF9jaGFuZ2VzZXR0aW5ncycsdHJpbSgkcGFyYW1zWydwYWdlaWRfY2hhbmdlc2V0dGluZ3MnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncGFnZWlkX2xvZ2luJyx0cmltKCRwYXJhbXNbJ3BhZ2VpZF9sb2dpbiddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYWdlaWRfbG9nb3V0Jyx0cmltKCRwYXJhbXNbJ3BhZ2VpZF9sb2dvdXQnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncGFnZWlkX29udmVyaWZ5Jyx0cmltKCRwYXJhbXNbJ3BhZ2VpZF9vbnZlcmlmeSddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYWdlaWRfYWZ0ZXJ2ZXJpZnknLHRyaW0oJHBhcmFtc1sncGFnZWlkX2FmdGVydmVyaWZ5J10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhZ2VpZF9hZnRlcmNoYW5nZXNldHRpbmdzJyx0cmltKCRwYXJhbXNbJ3BhZ2VpZF9hZnRlcmNoYW5nZXNldHRpbmdzJ10pKTsKCmlmKCBpc3NldCgkcGFyYW1zWydlY29tbV9vcmRlcmNhbmNlbGxlZCddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbicsKGludCkkcGFyYW1zWydlY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10pOwogICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlY29tbV9wYWlkcmVnaXN0cmF0aW9uJykgKSB7CiAgICAgICAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJVcGRhdGVkJyxmYWxzZSk7CiAgICAgICAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJEZWxldGVkJyxmYWxzZSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlclVwZGF0ZWQnKTsKICAgICAgICAkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDR0Vjb21tZXJjZUJhc2UnLCdPcmRlckRlbGV0ZWQnKTsKICAgIH0KICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlY29tbV9vcmRlcmNhbmNlbGxlZCcsdHJpbSgkcGFyYW1zWydlY29tbV9vcmRlcmNhbmNlbGxlZCddKSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZWNvbW1fb3JkZXJkZWxldGVkJyx0cmltKCRwYXJhbXNbJ2Vjb21tX29yZGVyZGVsZXRlZCddKSk7Cn0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAnYXV0aCcsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTs=]]></data>
	</file>
	<file>
	  <filename>/action.changesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRjYW5fY2hhbmdlcGFzc3dkID0gVFJVRTsKJGNvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwokY2FuX2NoYW5nZXBhc3N3ZCA9ICRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoZmV1X2F1dGhfY29uc3VtZXI6OkNBUEFCSUxJVFlfQ0hBTkdFUEFTU1dEKTsKCmlmKCAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KGZldV9hdXRoX2NvbnN1bWVyOjpDQVBBQklMSVRZX0NIQU5HRVNFVFRJTkdTKSApIHsKICAgIC8vIHRoZSBjb25zdW1lciBwcm92aWRlcyB0aGUgbG9naW4gY2FwYWJpbGl0aWVzCiAgICBlY2hvICRjb25zdW1lci0+Z2V0X2NoYW5nZXNldHRpbmdzX2Rpc3BsYXkoJGlkLCRyZXR1cm5pZCwkcGFyYW1zKTsKICAgIHJldHVybjsKfQplbHNlIGlmKCAhJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eShmZXVfYXV0aF9jb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERDSEFOR0VTRVRUSU5HUykgKSB7CiAgICByZXR1cm47Cn0KCiR1aWQgPSAkdGhpcy0+TG9nZ2VkSW5JZCgpOwppZiggJHVpZCA8IDEgKSByZXR1cm47CiRyZXN1bHQgPSAkdGhpcy0+R2V0VXNlckluZm8oICR1aWQgKTsKaWYoICRyZXN1bHRbMF0gPT0gRkFMU0UgKSB7CiAgICAvLyB1c2VyIGlzbid0IGxvZ2dlZCBpbgogICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHJlc3VsdFsxXSk7CiAgICByZXR1cm47Cn0KJHVpbmZvID0gJHJlc3VsdFsxXTsKCi8vIGdldCB0aGUgdXNlcnMgbWVtYmVyIGdyb3VwcwokZ3JvdXBzID0gJHRoaXMtPkdldE1lbWJlckdyb3Vwc0FycmF5KCAkdWlkICk7CmlmKCAhJGdyb3VwcyApIHsKICAgIC8vIHRoaXMgdXNlciBpcyBub3QgYSBtZW1iZXIgb2YgYW55IGdydW9wcy4uLgogICAgLy8gaGFuZGxlIHRoaXMgbGF0ZXIgdG9kbwogICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX25vZ3JvdXBzJykpOwogICAgcmV0dXJuOwp9CgovLyBub3cgd2UgaGF2ZSB0aGUgZ3JvdXBzLCB3ZSBidWlsZCBhIHVuaW9uIG9mIGFsbCBvZiB0aGUgZ3JvdXBzIHByb3BlcnRpZXMKJHByb3BlcnRpZXMgPSBhcnJheSgpOwpmb3JlYWNoKCAkZ3JvdXBzIGFzICRncnByZWNvcmQgKSB7CiAgICAkZ2lkID0gJGdycHJlY29yZFsnZ3JvdXBpZCddOwogICAgJHByb3ByZWxhdGlvbnMgPSAkdGhpcy0+R2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucyggJGdpZCApOwogICAgaWYoIGlzX2FycmF5KCRwcm9wcmVsYXRpb25zKSAmJiBjb3VudCgkcHJvcHJlbGF0aW9ucykgPT0gMiAmJiAkcHJvcHJlbGF0aW9uc1swXSA9PT0gRkFMU0UgKSBjb250aW51ZTsKICAgIGlmKCBjb3VudCgkcHJvcGVydGllcykgKSB7CiAgICAgICAgJHByb3BlcnRpZXMgPSBSUlV0aWxzOjphcnJheV9tZXJnZV9ieV9uYW1lX3JlcXVpcmVkKCAkcHJvcGVydGllcywgJHByb3ByZWxhdGlvbnMgKTsKICAgIH0gZWxzZSB7CiAgICAgICAgJHByb3BlcnRpZXMgPSAkcHJvcHJlbGF0aW9uczsKICAgIH0KfQp1YXNvcnQoJHByb3BlcnRpZXMsIGFycmF5KCdjZ2VfYXJyYXknLCdjb21wYXJlX2VsZW1lbnRzX2J5X3NvcnRvcmRlcl9rZXknKSk7CgppZiggY291bnQoJHByb3BlcnRpZXMpID09IDAgKSB7CiAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVfb25lZ3JvdXAnKSA9PSAxICkgewogICAgICAgIC8vIHRoaXMgdXNlciBpcyBub3QgYSBtZW1iZXIgb2YgYW55IGdydW9wcy4uLgogICAgICAgIC8vIGhhbmRsZSB0aGlzIGxhdGVyIHRvZG8KICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoICRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCcpKTsKICAgICAgICByZXR1cm47CiAgICB9Cn0KCi8vIG5vdyB3ZSdyZSByZWFkeSB0byBwb3B1bGF0ZSB0aGUgdGVtcGxhdGUKLy8gZmlyc3Qgd2UgcHV0IGluIHN0dWZmIHRoYXQgaXMgcmVxdWlyZWQgKHVzZXJuYW1lLCBwYXNzd29yZCwgZXRjLCBldGMpCiRyb3dhcnJheSA9IGFycmF5KCk7CgovLyBtYWtlIHN1cmUgdXNlcm5hbWUgaXMgaW4gdGhlcmUKLy8gd2UgY2FuIGhpZGUgaXQgaW4gdGhlIHRlbXBsYXRlLgokdmFsID0gJHVpbmZvWyd1c2VybmFtZSddOwokb25lcm93ID0gbmV3IFN0ZENsYXNzKCk7CiRvbmVyb3ctPm5hbWUgPSAndXNlcm5hbWUnOwokb25lcm93LT50eXBlID0gKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpKT8yOjA7CiRvbmVyb3ctPmNvbG9yID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywnYmx1ZScpOwokb25lcm93LT5tYXJrZXIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywnKicpOwokb25lcm93LT5yZXF1aXJlZCA9IDE7CiRvbmVyb3ctPnByb21wdCA9ICRjb25zdW1lci0+Z2V0X3VzZXJuYW1lX3Byb21wdCgpOwokb25lcm93LT52YWx1ZSA9ICR2YWw7CiRvbmVyb3ctPmlucHV0X2lkID0gJ2ZldV9pbnB1dF91c2VybmFtZSc7CiRvbmVyb3ctPmlucHV0X25hbWUgPSAkaWQuJG9uZXJvdy0+aW5wdXRfaWQ7CiRvbmVyb3ctPmxlbmd0aCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcsNDApOwokb25lcm93LT5tYXhsZW5ndGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3VzZXJuYW1lbGVuZ3RoJyw4MCk7CiRvbmVyb3ctPnJlYWRvbmx5ID0gKCEkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KGZldV9hdXRoX2NvbnN1bWVyOjpDQVBBQklMSVRZX0NIQU5HRVVTRVJOQU1FKSk7CgokdG1wID0gJ2Rpc2FibGVkPSJkaXNhYmxlZCInOwppZiggJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eShmZXVfYXV0aF9jb25zdW1lcjo6Q0FQQUJJTElUWV9DSEFOR0VVU0VSTkFNRSkgKSAkdG1wID0gJyc7CiRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZldV9pbnB1dF91c2VybmFtZScsICR2YWwsICRvbmVyb3ctPmxlbmd0aCwgJG9uZXJvdy0+bWF4bGVuZ3RoLCAkdG1wKTsKJHJvd2FycmF5WyRvbmVyb3ctPm5hbWVdID0gJG9uZXJvdzsKCmlmKCAkY2FuX2NoYW5nZXBhc3N3ZCApIHsKICAgIC8vIGFuZCBwYXNzd29yZAogICAgJHZhbCA9ICcnOwogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydmZXVfaW5wdXRfcGFzc3dvcmQnXSApICkgJHZhbCA9ICRwYXJhbXNbJ2ZldV9pbnB1dF9wYXNzd29yZCddOwogICAgJG9uZXJvdyA9IG5ldyBTdGRDbGFzcygpOwogICAgJG9uZXJvdy0+bmFtZSA9ICdwYXNzd29yZCc7CiAgICAkb25lcm93LT50eXBlID0gJ3Bhc3N3b3JkJzsKICAgICRvbmVyb3ctPmNvbG9yID0gbnVsbDsKICAgICRvbmVyb3ctPnJlcXVpcmVkID0gKCR1aW5mb1snZm9yY2VfbmV3cHcnXSkgPyAxIDogMDsKICAgICRvbmVyb3ctPm1hcmtlciA9IG51bGw7CiAgICBpZiggJG9uZXJvdy0+cmVxdWlyZWQgKSB7CiAgICAgICAgJG9uZXJvdy0+Y29sb3IgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCdibHVlJyk7CiAgICAgICAgJG9uZXJvdy0+bWFya2VyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsJyonKTsKICAgIH0KICAgICRvbmVyb3ctPnByb21wdCA9ICR0aGlzLT5MYW5nKCdwYXNzd29yZCcpOwogICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFBhc3N3b3JkKCRpZCwgJ2ZldV9pbnB1dF9wYXNzd29yZCcsICR2YWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpKTsKICAgICRvbmVyb3ctPmFkZHRleHQgPSR0aGlzLT5MYW5nKCdpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCcpOwogICAgJG9uZXJvdy0+dmFsdWUgPSBudWxsOwogICAgJG9uZXJvdy0+aW5wdXRfaWQgPSAnZmV1X2lucHV0X3Bhc3N3b3JkJzsKICAgICRvbmVyb3ctPmlucHV0X25hbWUgPSAkaWQuJG9uZXJvdy0+aW5wdXRfaWQ7CiAgICAkb25lcm93LT5sZW5ndGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKTsKICAgICRvbmVyb3ctPm1heGxlbmd0aCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYXhfcGFzc3dvcmRsZW5ndGgnKTsKICAgICRvbmVyb3ctPnJlYWRvbmx5ID0gZmFsc2U7CiAgICAkcm93YXJyYXlbJG9uZXJvdy0+bmFtZV0gPSAkb25lcm93OwoKICAgIC8vIGFuZCBtYWtlIGhpbSByZXBlYXQgdGhlIHBhc3N3b3JkCiAgICAkdmFsID0gJyc7CiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2ZldV9pbnB1dF9yZXBlYXRwYXNzd29yZCddICkgKSAkdmFsID0gJHBhcmFtc1snZmV1X2lucHV0X3JlcGVhdHBhc3N3b3JkJ107CiAgICAkb25lcm93ID0gbmV3IFN0ZENsYXNzKCk7CiAgICAkb25lcm93LT5uYW1lID0gJ3JlcGVhdF9wYXNzd29yZCc7CiAgICAkb25lcm93LT50eXBlID0gJ3Bhc3N3b3JkJzsKICAgICRvbmVyb3ctPmNvbG9yID0gbnVsbDsKICAgICRvbmVyb3ctPm1hcmtlciA9IG51bGw7CiAgICAkb25lcm93LT5yZXF1aXJlZCA9ICgkdWluZm9bJ2ZvcmNlX25ld3B3J10pID8gMSA6IDA7CiAgICBpZiggJG9uZXJvdy0+cmVxdWlyZWQgKSB7CiAgICAgICAgJG9uZXJvdy0+bWFya2VyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsJyonKTsKICAgICAgICAkb25lcm93LT5jb2xvciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9jb2xvcicsJ2JsdWUnKTsKICAgIH0KICAgICRvbmVyb3ctPnByb21wdCA9ICR0aGlzLT5MYW5nKCdyZXBlYXRwYXNzd29yZCcpOwogICAgJG9uZXJvdy0+Y29udHJvbCA9JHRoaXMtPkNyZWF0ZUlucHV0UGFzc3dvcmQoJGlkLCAnZmV1X2lucHV0X3JlcGVhdHBhc3N3b3JkJywgJHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZGZsZGxlbmd0aCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpKTsKICAgICRvbmVyb3ctPmFkZHRleHQgPSR0aGlzLT5MYW5nKCdpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCcpOwogICAgJG9uZXJvdy0+dmFsdWUgPSBudWxsOwogICAgJG9uZXJvdy0+aW5wdXRfaWQgPSAnZmV1X2lucHV0X3JlcGVhdHBhc3N3b3JkJzsKICAgICRvbmVyb3ctPmlucHV0X25hbWUgPSAkaWQuJG9uZXJvdy0+aW5wdXRfaWQ7CiAgICAkb25lcm93LT5sZW5ndGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKTsKICAgICRvbmVyb3ctPm1heGxlbmd0aCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYXhfcGFzc3dvcmRsZW5ndGgnKTsKICAgICRvbmVyb3ctPnJlYWRvbmx5ID0gZmFsc2U7CiAgICAkcm93YXJyYXlbJG9uZXJvdy0+bmFtZV0gPSAkb25lcm93Owp9CgokZW5jcnlwdF9jb2xvciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZWN1cmVfZmllbGRfY29sb3InLCd5ZWxsb3cnKTsKJGVuY3J5cHRfbWFya2VyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlY3VyZV9maWVsZF9tYXJrZXInLCdeXicpOwoKCi8vIG5vdyBmb3IgdGhlIHByb3BlcnRpZXMKJHRoaXMtPlNldEVuY3J5cHRpb25LZXkoJHVpZCk7CmZvcmVhY2goICRwcm9wZXJ0aWVzIGFzICRwcm9wICkgewogICAgLy8gZ2V0IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9uCiAgICAkZGVmbiA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm4oICRwcm9wWyduYW1lJ10gKTsKCiAgICBpZiggJHByb3BbJ3JlcXVpcmVkJ10gPT0gMyApIGNvbnRpbnVlOyAvLyBoaWRkZW4uCgogICAgJG9uZXJvdyA9IG5ldyBTdGRDbGFzcygpOwogICAgJG9uZXJvdy0+cHJvcG5hbWUgICAgPSAkcHJvcFsnbmFtZSddOwogICAgJG9uZXJvdy0+aW5wdXRfaWQgICAgPSAnZmV1X2lucHV0XycuJG9uZXJvdy0+cHJvcG5hbWU7CiAgICAkb25lcm93LT5pbnB1dF9uYW1lICA9ICRpZC4kb25lcm93LT5pbnB1dF9pZDsKICAgICR2YWwgPSAkdGhpcy0+R2V0VXNlclByb3BlcnR5RnVsbCggJHByb3BbJ25hbWUnXSwgJHVpZCApOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJG9uZXJvdy0+aW5wdXRfbmFtZV0pICkgJHZhbD0kcGFyYW1zWydmZXVfJy4kb25lcm93LT5pbnB1dF9uYW1lXTsKCgogICAgLy8gYmVnaW4gYnVpbGRpbmcgdGhlIG9iamVjdCB0aGF0IGNvbnRhaW5zIGRhdGEgZm9yIGJ1aWxkaW5nIHRoZSBmaWVsZHMuCiAgICAkb25lcm93LT50eXBlICAgICAgICA9ICRkZWZuWyd0eXBlJ107CiAgICAkb25lcm93LT5lbmNyeXB0ZWQgICA9ICRkZWZuWydlbmNyeXB0J107CiAgICAkb25lcm93LT5yZXF1aXJlZCAgICA9ICgkcHJvcFsncmVxdWlyZWQnXSA9PSAyKTsKICAgICRvbmVyb3ctPnJlYWRvbmx5ICAgID0gKCRwcm9wWydyZXF1aXJlZCddID09IDQpOwogICAgJG9uZXJvdy0+c3RhdHVzICAgICAgPSAkcHJvcFsncmVxdWlyZWQnXTsKICAgICRvbmVyb3ctPmNvbG9yICAgICAgID0gbnVsbDsKICAgICRvbmVyb3ctPm1hcmtlciAgICAgID0gbnVsbDs7CiAgICAkb25lcm93LT52YWx1ZSAgICAgICA9ICR2YWw7CiAgICAkb25lcm93LT5sZW5ndGggICAgICA9ICRkZWZuWydsZW5ndGgnXTsKICAgICRvbmVyb3ctPm1heGxlbmd0aCAgID0gJGRlZm5bJ21heGxlbmd0aCddOwogICAgJG9uZXJvdy0+cHJvbXB0ICAgICAgPSAkZGVmblsncHJvbXB0J107CiAgICBpZiggJGRlZm5bJ2VuY3J5cHQnXSApIHsKICAgICAgICAkb25lcm93LT5jb2xvciA9ICRlbmNyeXB0X2NvbG9yOwogICAgICAgICRvbmVyb3ctPm1hcmtlciA9ICRlbmNyeXB0X21hcmtlcjsKICAgIH0KICAgIGVsc2UgaWYoICRvbmVyb3ctPnJlcXVpcmVkICkgewogICAgICAgICRvbmVyb3ctPmNvbG9yID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywnYmx1ZScpOwogICAgICAgICRvbmVyb3ctPm1hcmtlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLCcqJyk7CiAgICB9CgogICAgc3dpdGNoKCAkZGVmblsndHlwZSddICkgewogICAgY2FzZSAwOiAvLyB0ZXh0CiAgICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJG9uZXJvdy0+aW5wdXRfbmFtZSwgJHZhbCwgJGRlZm5bJ2xlbmd0aCddLCAkZGVmblsnbWF4bGVuZ3RoJ10gKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlIDE6IC8vIGNoZWNrYm94CiAgICAgICAgJG9uZXJvdy0+Y29udHJvbCAgPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAkb25lcm93LT5pbnB1dF9uYW1lLDApOwogICAgICAgICRvbmVyb3ctPmNvbnRyb2wgIC49IFJSVXRpbHM6Om15Q3JlYXRlSW5wdXRDaGVja2JveCggJGlkLCAkb25lcm93LT5pbnB1dF9uYW1lLCAxLCAkdmFsKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlIDI6IC8vIGVtYWlsCiAgICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJG9uZXJvdy0+aW5wdXRfbmFtZSwgJHZhbCwgJGRlZm5bJ2xlbmd0aCddLCAkZGVmblsnbWF4bGVuZ3RoJ10pOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgMzogLy8gdGV4dGFyZWEKICAgICAgICAkZmxhZyA9IGZhbHNlOwogICAgICAgIGlmKCBpc3NldCgkZGVmblsnYXR0cmlicyddKSAmJiAhZW1wdHkoJGRlZm5bJ2F0dHJpYnMnXSkgKSB7CiAgICAgICAgICAgICRhdHRyaWJzID0gdW5zZXJpYWxpemUoJGRlZm5bJ2F0dHJpYnMnXSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkYXR0cmlicykgJiYgaXNzZXQoJGF0dHJpYnNbJ3d5c2l3eWcnXSkgKSAkZmxhZyA9ICRhdHRyaWJzWyd3eXNpd3lnJ107CiAgICAgICAgfQogICAgICAgICRvbmVyb3ctPnd5c2l3eWcgPSAkZmxhZzsKICAgICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZVRleHRBcmVhKCRmbGFnLCAkaWQsICR2YWwsICRvbmVyb3ctPmlucHV0X25hbWUpOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgNDogLy8gZHJvcGRvd24KICAgICAgICAkb3B0cyA9ICR0aGlzLT5HZXRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10pOwogICAgICAgICRvbmVyb3ctPm9wdGlvbnMgPSBhcnJheV9mbGlwKCRvcHRzKTsKICAgICAgICAkb25lcm93LT5jb250cm9sID0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAkb25lcm93LT5pbnB1dF9uYW1lLCAkb3B0cywgLTEsICR2YWwpOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgNTogLy8gbXVsdGlzZWxlY3QKICAgICAgICAkb3B0cyA9ICR0aGlzLT5HZXRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10pOwogICAgICAgICRvbmVyb3ctPm9wdGlvbnMgPSBhcnJheV9mbGlwKCRvcHRzKTsKICAgICAgICAkb25lcm93LT5zZWxlY3RlZCA9IGV4cGxvZGUoJywnLCR2YWwpOwogICAgICAgICRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJG9uZXJvdy0+aW5wdXRfbmFtZS4nW10nLCAkb3B0cywgJG9uZXJvdy0+c2VsZWN0ZWQsICRkZWZuWydsZW5ndGgnXSk7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSA2OiAvLyBpbWFnZQogICAgICAgICRkZXN0RGlyMSA9ICRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLkRJUkVDVE9SWV9TRVBBUkFUT1I7CiAgICAgICAgJGRlc3REaXIxIC49ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywnZmV1c2VycycpLkRJUkVDVE9SWV9TRVBBUkFUT1I7CiAgICAgICAgJGRlc3REaXIyID0gJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc191cmwnXS4nLyc7CiAgICAgICAgJGRlc3REaXIyIC49ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywnZmV1c2VycycpLicvJzsKICAgICAgICAkZmlsZTEgPSAkZGVzdERpcjEuJHZhbDsKICAgICAgICAkZmlsZTIgPSAkZGVzdERpcjIuJHZhbDsKICAgICAgICBpZiggaXNfcmVhZGFibGUoICRmaWxlMSApICYmIGlzX2ZpbGUoJGZpbGUxKSApIHsKICAgICAgICAgICAgJG9uZXJvdy0+aW1hZ2VfdXJsID0gJGZpbGUyOwogICAgICAgICAgICAkb25lcm93LT5pbWFnZSA9ICc8aW1nIHNyYz0iJy4kZmlsZTIuJyIgYWx0PSInLiR2YWwuJyIvPic7CiAgICAgICAgICAgIGlmKCAhJG9uZXJvdy0+cmVxdWlyZWQgKSB7CiAgICAgICAgICAgICAgICAkb25lcm93LT5wcm9tcHQyID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9jbGVhcicpOwogICAgICAgICAgICAgICAgJG9uZXJvdy0+aW5wdXRfbmFtZTIgPSAkb25lcm93LT5pbnB1dF9uYW1lIC4gJ19jbGVhcic7CiAgICAgICAgICAgICAgICAkb25lcm93LT5jb250cm9sMiA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJG9uZXJvdy0+aW5wdXRfbmFtZS4nX2NsZWFyJywgJ2NsZWFyJywnJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICRvbmVyb3ctPmlucHV0X25hbWUsJHZhbCkuJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2ZldV8nLiRvbmVyb3ctPmlucHV0X25hbWUsICcnLCAkZGVmblsnbGVuZ3RoJ10pOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJzcnOiAvLyByYWRpbyBncm91cAogICAgICAgICRvcHRzID0gJHRoaXMtPkdldFNlbGVjdE9wdGlvbnMoJGRlZm5bJ25hbWUnXSk7CiAgICAgICAgJG9uZXJvdy0+b3B0aW9ucyA9IGFycmF5X2ZsaXAoJG9wdHMpOwogICAgICAgICRvbmVyb3ctPmNvbnRyb2wgPSAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJG9uZXJvdy0+aW5wdXRfbmFtZSwgJG9wdHMsICR2YWwsICcnLCAnPGJyLz4nKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICc4JzogLy8gZGF0ZQogICAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICAgJHBhcm1zWydwcmVmaXgnXSA9ICRvbmVyb3ctPmlucHV0X2lkOwogICAgICAgIGlmKCAkdmFsICkgICRwYXJtc1sndGltZSddID0gJHZhbDsKICAgICAgICAkcGFybXNbJ3N0YXJ0X3llYXInXSA9ICItNSI7CiAgICAgICAgJHBhcm1zWydlbmRfeWVhciddID0gIisxMCI7CgogICAgICAgIGlmKCBpc3NldCgkZGVmblsnYXR0cmlicyddKSAmJiAhZW1wdHkoJGRlZm5bJ2F0dHJpYnMnXSkgKSB7CiAgICAgICAgICAgICRhdHRyaWJzID0gdW5zZXJpYWxpemUoJGRlZm5bJ2F0dHJpYnMnXSk7CiAgICAgICAgICAgIGlmKCBpc3NldCgkYXR0cmlic1snc3RhcnR5ZWFyJ10pICYmICFlbXB0eSgkYXR0cmlic1snc3RhcnR5ZWFyJ10pICkgJHBhcm1zWydzdGFydF95ZWFyJ10gPSAkYXR0cmlic1snc3RhcnR5ZWFyJ107CiAgICAgICAgICAgIGlmKCBpc3NldCgkYXR0cmlic1snZW5keWVhciddKSAmJiAhZW1wdHkoJGF0dHJpYnNbJ2VuZHllYXInXSkgKSAkcGFybXNbJ2VuZF95ZWFyJ10gPSAkYXR0cmlic1snZW5keWVhciddOwogICAgICAgIH0KCiAgICAgICAgJHN0ciA9ICd7aHRtbF9zZWxlY3RfZGF0ZSAnOwogICAgICAgIGZvcmVhY2goICRwYXJtcyBhcyAka2V5PT4kdmFsdWUgKSB7CiAgICAgICAgICAgICRzdHIuPSRrZXkuJz0iJy4kdmFsdWUuJyIgJzsKICAgICAgICB9CiAgICAgICAgJHN0ciAuPSAnfSc7CiAgICAgICAgJG9uZXJvdy0+Y29udHJvbCA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkc3RyKTsKICAgICAgICBicmVhazsKICAgIH0KICAgICRyb3dhcnJheVskcHJvcFsnbmFtZSddXSA9ICRvbmVyb3c7Cn0KCi8vIGZpbGwgaW4gdGhlIHZhcmlhYmxlcyBmb3IgdGhlIHRlbXBsYXRlCgokdGhldGVtcGxhdGUgPSBcZmV1X3V0aWxzOjpnZXRfdGVtcGxhdGUoJHBhcmFtcywnY2hhbmdlc2V0dGluZ3N0ZW1wbGF0ZScsJ0Zyb250RW5kVXNlcnM6OmNoc2V0dGluZ3MgZm9ybScpOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CmlmKCBpc3NldCggJHBhcmFtc1snZXJyb3InXSApICkgJHRwbC0+YXNzaWduKCdlcnJvcicsICRwYXJhbXNbJ2Vycm9yJ10gKTsKaWYoIGlzc2V0KCAkcGFyYW1zWydtZXNzYWdlJ10gKSApICR0cGwtPmFzc2lnbignbWVzc2FnZScsICRwYXJhbXNbJ21lc3NhZ2UnXSApOwoKJHRwbC0+YXNzaWduKCd0aXRsZScsJHRoaXMtPkxhbmcoJ3VzZXJfc2V0dGluZ3MnKSk7IC8vIGRlcHJlY2F0ZWQKJHRwbC0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdkb191c2VyY2hhbmdlc2V0dGluZ3MnLCRyZXR1cm5pZCkpOwokdHBsLT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmV1X3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7IC8vIGRlcHJlY2F0ZWQKCmlmKCBpc3NldCggJHBhcmFtc1sncmV0dXJudG8nXSApICkgJHRwbC0+YXNzaWduKCdoaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmZXVfcmV0dXJudG8nLCRwYXJhbXNbJ3JldHVybnRvJ10pKTsKJHRwbC0+YXNzaWduKCdmb3JtaWQnLCRpZCk7CiR0cGwtPmFzc2lnbignY29udHJvbHMnLCAkcm93YXJyYXkpOwokdHBsLT5hc3NpZ24oJ2NvbnRyb2xjb3VudCcsIGNvdW50KCRyb3dhcnJheSkpOwokdHBsLT5kaXNwbGF5KCk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIERPIFRIRSBBQ1RJT04KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKaWYgKCEgJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoKSkgIHsKICAgIGVjaG8gIkJyZWFraW5nIGFuIGVudHJ5LCBhcmUgd2U/IjsKICAgIHJldHVybjsKfQoKLy8gdGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CgppZiggJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ3Byb3BlcnRpZXMnKSApIHsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlciggJ3Byb3BlcnRpZXMnLCAkdGhpcy0+TGFuZygndXNlcl9wcm9wZXJ0aWVzJykpOwp9CmlmKCAkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygnZ3JvdXBzJykgKSB7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCAnZ3JvdXBzJywgJHRoaXMtPkxhbmcoJ2dyb3VwcycpKTsKfQppZiggJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ3VzZXJzJykgKSB7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCAndXNlcnMnLCAkdGhpcy0+TGFuZygndXNlcnMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCAndXNlcmhpc3RvcnknLCAkdGhpcy0+TGFuZygndXNlcmhpc3RvcnknKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCAnYWRtaW4nLCAkdGhpcy0+TGFuZygnYWRtaW4nKSk7Cn0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKLy8gVGhlY29udGVudCBvZiB0aGUgdGFicwplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCmlmKCAkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygncHJvcGVydGllcycpICkgewogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwcm9wZXJ0aWVzJywkcGFyYW1zKTsKICBpbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl9wcm9wZXJ0aWVzdGFiLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwp9CgppZiggJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ2dyb3VwcycpICkgewogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdncm91cHMnLCRwYXJhbXMpOwogIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2dyb3Vwc3RhYi5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKfQppZiggJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ3VzZXJzJykgKSB7CiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3VzZXJzJywkcGFyYW1zKTsKICBpbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl91c2Vyc3RhYi5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3VzZXJoaXN0b3J5JywkcGFyYW1zKTsKICBpbmNsdWRlKF9fRElSX18uJy9hY3Rpb24udXNlcmhpc3RvcnkucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdhZG1pbicsJHBhcmFtcyk7CiAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fYWRtaW50YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_addgroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJGNvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwoKJGdpZCA9IGZhbHNlOwppZiggaXNzZXQoJHBhcmFtc1snZ3JvdXBfaWQnXSkgKSAkZ2lkID0gKGludCkkcGFyYW1zWydncm91cF9pZCddOwoKJGdyb3VwbmFtZSA9ICcnOwokZ3JvdXBkZXNjID0gJyc7CmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfZ3JvdXBuYW1lJ10gKSApICRncm91cG5hbWUgPSB0cmltKCRwYXJhbXNbJ2lucHV0X2dyb3VwbmFtZSddKTsKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9ncm91cGRlc2MnXSApICkgJGdyb3VwZGVzYyA9IHRyaW0oJHBhcmFtc1snaW5wdXRfZ3JvdXBkZXNjJ10pOwoKaWYoICRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFMpICkgewogIC8vIG1ha2Ugc3VyZSB0aGUgcGFyYW1ldGVycyBhcmUgZmlsbGVkIGluCiAgaWYoICRncm91cG5hbWUgPT0gJycgfHwgJGdyb3VwZGVzYyA9PSAnJyApIHsKICAgIHVuc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKTsKICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAnMSc7CiAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpOwogICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2FkZGdyb3VwJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICByZXR1cm47CiAgfQoKICAvLyBtYWtlIHN1cmUgdGhlIGdyb3VwIG5hbWUgZG9lc24ndCBhbHJlYWR5IGV4aXN0CiAgJHRtcCA9ICR0aGlzLT5HZXRHcm91cElEKCAkZ3JvdXBuYW1lICk7CiAgaWYoICR0bXAgIT0gJGdpZCAmJiAkdG1wICE9ICcnICkgewogICAgdW5zZXQoJHBhcmFtc1snc3VibWl0J10pOwogICAgJHBhcmFtc1snZXJyb3InXSA9ICcxJzsKICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9ncm91cGV4aXN0cycpOwogICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2FkZGdyb3VwJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICByZXR1cm47CiAgfQp9CgovLyBtYWtlIHN1cmUgbm90IGFsbCBwcm9wZXJ0aWVzIGFyZSBvZmYuCi8vIGFuZCB0aGF0IHdlJ3JlIG5vdCBzZXR0aW5nIGEgbG9zdHVuIGZsYWcgZm9yIGEgaGlkZGVuIG9yIG9wdGlvbmFsIGZpZWxkLgppZiggJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfRURJVEdST1VQUFJPUFMpICkgewogICAgJHJlbG5hZGRlZCA9IDA7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkcGFyYW1zWydpbnB1dF9uYW1lJ10pOyAkaSsrICkgewogICAgICAgIGlmKCAkcGFyYW1zWydpbnB1dF9yZXF1aXJlZCddWyRpXSAhPSAwICkgJHJlbG5hZGRlZCsrOwogICAgICAgIGlmKCAkcGFyYW1zWydpbnB1dF9yZXF1aXJlZCddWyRpXSAhPSAyICkgewogICAgICAgICAgICAvLyBpdCdzIG5vdCBhIHJlcXVpcmVkIGZpZWxkLi4uLiBzbyBjYW4ndCBiZSB1c2VkIGluIGxvc3R1bgogICAgICAgICAgICAkc3RyID0gJHBhcmFtc1snaW5wdXRfbmFtZSddWyRpXTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2xvc3R1bl8nLiRzdHJdKSApIHsKICAgICAgICAgICAgICAgIHVuc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKTsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAnMSc7CiAgICAgICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfbG9zdHVuX25vbnJlcXVpcmVkJyk7CiAgICAgICAgICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnYWRkZ3JvdXAnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGlmKCAkcmVsbmFkZGVkID09IDAgKSB7CiAgICAgICAgdW5zZXQoJHBhcmFtc1snc3VibWl0J10pOwogICAgICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAnMSc7CiAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25vcmVsYXRpb25zJyk7CiAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2FkZGdyb3VwJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICAgICAgcmV0dXJuOwogICAgfQp9CgovLyB3ZSdyZSBjbGVhciB0byBhZGQgb3IgdXBkYXRlCmlmKCAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9FRElUR1JPVVBTKSApIHsKICBpZiggJGdpZCAhPT0gZmFsc2UgKSB7CiAgICAkcmV0ID0gJHRoaXMtPlNldEdyb3VwKCAkZ2lkLCAkZ3JvdXBuYW1lLCAkZ3JvdXBkZXNjICk7CiAgICBpZiggJHJldFswXSA9PSBGQUxTRSApIHsKICAgICAgdW5zZXQoJHBhcmFtc1snc3VibWl0J10pOwogICAgICAkcGFyYW1zWydlcnJvciddID0gJzEnOwogICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkcmV0WzFdOwogICAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnYWRkZ3JvdXAnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKICAgICAgcmV0dXJuOwogICAgfQogIH0KICBlbHNlIHsKICAgICRyZXQgPSAkdGhpcy0+QWRkR3JvdXAoICRncm91cG5hbWUsICRncm91cGRlc2MgKTsKICAgIGlmKCAkcmV0WzBdID09IEZBTFNFICkgewogICAgICB1bnNldCgkcGFyYW1zWydzdWJtaXQnXSk7CiAgICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAnMSc7CiAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICRyZXRbMV07CiAgICAgICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdhZGRncm91cCcsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgICByZXR1cm47CiAgICB9CiAgICAkZ2lkID0gJHJldFsxXTsKICB9Cn0KCmlmKCAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9FRElUR1JPVVBQUk9QUykgKSB7CiAgLy8gYWxzbyBhZGQgdGhlIHByb3BlcnR5IGNob2ljZXMKICAkdGhpcy0+RGVsZXRlQWxsR3JvdXBQcm9wZXJ0eVJlbGF0aW9ucyggJGdpZCApOwogIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYXJhbXNbJ2lucHV0X25hbWUnXSk7ICRpKysgKSB7CiAgICAkcHJvcG5hbWUgPSAnJzsKICAgICRzb3J0b3JkZXIgPSAnJzsKICAgICRsb3N0dW4gPSAtMTsKICAgICRyZXF1aXJlZCA9IDA7CgogICAgJHByb3BuYW1lID0gJHBhcmFtc1snaW5wdXRfbmFtZSddWyRpXTsKICAgICRyZXF1aXJlZCA9ICRwYXJhbXNbJ2lucHV0X3JlcXVpcmVkJ11bJGldOwogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9sb3N0dW5fJy4kcHJvcG5hbWVdICkgKSB7CiAgICAgICRsb3N0dW4gPSAxOwogICAgfQoKICAgIGlmKCAkcmVxdWlyZWQgIT0gMCAmJiAkcHJvcG5hbWUgIT0gJycpIHsKICAgICAgJHJlcyA9ICR0aGlzLT5BZGRHcm91cFByb3BlcnR5UmVsYXRpb24oICRnaWQsICRwcm9wbmFtZSwgJGksICRsb3N0dW4sICRyZXF1aXJlZCApOwogICAgfQogIH0KfQoKLy8gc2VuZCBhbiBldmVudAokcGFybXMgPSBhcnJheSgpOwokcGFybXNbJ25hbWUnXSA9ICRncm91cG5hbWU7CiRwYXJtc1snZGVzY3JpcHRpb24nXSA9ICRncm91cGRlc2M7CiRwYXJtc1snaWQnXSA9ICRnaWQ7CiRzdHIgPSAnT25DcmVhdGVHcm91cCc7CmlmKCBpc3NldCgkcGFyYW1zWydncm91cF9pZCddKSApIHsKICAkc3RyID0gJ09uVXBkYXRlR3JvdXAnOwp9CiR0aGlzLT5TZW5kRXZlbnQoJHN0ciwkcGFybXMpOwokdGhpcy0+X1NlbmROb3RpZmljYXRpb25FbWFpbCgkc3RyLCRwYXJtcyk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICdncm91cHMnICk7Ci8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.do_admintasks.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygndXNlcnNuZ3JvdXBzJykgKSByZXR1cm47CgppZiggaXNzZXQoICRwYXJhbXNbJ2J1dHRvbl9leHBvcnR1c2VyaGlzdG9yeSddICkgKSB7CiAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fZXhwb3J0dXNlcmhpc3RvcnkucGhwJyk7Cn0KZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ2J1dHRvbl9jbGVhcnVzZXJoaXN0b3J5J10gKSApIHsKICBpbmNsdWRlKF9fRElSX18uJy9mdW5jdGlvbi5hZG1pbl9jbGVhcnVzZXJoaXN0b3J5LnBocCcpOwp9CiAgCi8vIEVPRg==]]></data>
	</file>
	<file>
	  <filename>/action.do_deletegroup.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJ3JlbW92ZWdyb3VwcycgKSApIHJldHVybjsKCmlmICghaXNzZXQgKCRwYXJhbXNbJ2dyb3VwX2lkJ10pIHx8ICRwYXJhbXNbJ2dyb3VwX2lkJ10gPT0gIiIpIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nICgnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwogICAgcmV0dXJuOwp9CgokZ3JvdXAgPSAkdGhpcy0+R2V0R3JvdXBJbmZvKCAkcGFyYW1zWydncm91cF9pZCddICk7CmlmKCAhaXNzZXQoJGdyb3VwWydpZCddKSAmJiAkZ3JvdXBbMF0gPT0gRkFMU0UgKSB7CiAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkZ3JvdXBbMV0gKTsKICAgIHJldHVybjsKfQoKJHF1ZXJ5ID0gbmV3IGZldV91c2VyX3F1ZXJ5KCk7CiRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9HUk9VUElELCRncm91cFsnaWQnXSk7CiRycyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwppZiggJHJzLT5nZXRfZm91bmRfcm93cygpID4gMCApIHsKICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nICgnZXJyb3Jfbm90ZW1wdHlncm91cCcpKTsKICAgIHJldHVybjsKfQoKJHJldCA9ICR0aGlzLT5EZWxldGVHcm91cEZ1bGwoICRwYXJhbXNbJ2dyb3VwX2lkJ10gKTsKaWYoICRyZXRbMF0gPT0gRkFMU0UgKSB7CiAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJGdyb3VwWzFdICk7CiAgcmV0dXJuOwp9CgokcGFybXMgPSBhcnJheSgpOwokcGFybXNbJ2lkJ10gPSAkcGFyYW1zWydncm91cF9pZCddOwokcGFybXNbJ25hbWUnXSA9ICRncm91cFsnZ3JvdXBuYW1lJ107CiR0aGlzLT5TZW5kRXZlbnQoJ09uRGVsZXRlR3JvdXAnLCRwYXJtcyk7CiR0aGlzLT5fU2VuZE5vdGlmaWNhdGlvbkVtYWlsKCdPbkRlbGV0ZUdyb3VwJywkcGFybXMpOwoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkLCAnZ3JvdXBzJyApOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.do_deleteuser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJ3JlbW92ZXVzZXJzJyApICkgcmV0dXJuOwokdGhpcy0+U2V0Q3VycmVudFRhYigndXNlcnMnKTsKCiR1c2VyX2lkID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCd1c2VyX2lkJyk7CmlmKCAkdXNlcl9pZCA8IDEgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICByZXR1cm47Cn0KCiR1c2VyID0gJHRoaXMtPkdldFVzZXJJbmZvKCAkcGFyYW1zWyd1c2VyX2lkJ10gKTsKaWYoICFpc19hcnJheSgkdXNlcikgfHwgJHVzZXJbMF0gPT0gRkFMU0UgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICByZXR1cm47Cn0KCi8vIEdldCBhbGwgb2YgdGhlIHByb3BlcnR5IGRlZmluaXRpb25zLCBpZiB0aGV5J3JlIG9mIHR5cGUgNgovLyBhbmQgdGhlIHByb3BlcnR5IGlzIG5vdCBlbXB0eSwgdGhlbiB3ZSBtYXkKLy8gaGF2ZSB0byBkZWxldGUgYSBmaWxlIGFzIHdlbGwuCiRkZWZucyA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm5zKCk7CiRwcm9wX2FyeSA9IGFycmF5KCk7CiRkZXN0RGlyMSA9ICRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLkRJUkVDVE9SWV9TRVBBUkFUT1I7CiRkZXN0RGlyMSAuPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfZGVzdGluYXRpb25fcGF0aCcsJ2ZldXNlcnMnKS5ESVJFQ1RPUllfU0VQQVJBVE9SOwokcmV0ID0gJHRoaXMtPkRlbGV0ZVVzZXJGdWxsKCAkcGFyYW1zWyd1c2VyX2lkJ10gKTsKaWYoICRyZXRbMF0gPT0gRkFMU0UgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHJldFsxXSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwp9CgovLyBzZW5kIGFuIGV2ZW50CiRwYXJtc1sndWlkJ10gPSAkdXNlcl9pZDsKJHBhcm1zWyd1c2VybmFtZSddID0gJHVzZXJbMV1bJ3VzZXJuYW1lJ107CiR0aGlzLT5fU2VuZE5vdGlmaWNhdGlvbkVtYWlsKCdPbkRlbGV0ZVVzZXInLCRwYXJtcyk7CgovLyBhbmQgbG9nIGl0CmF1ZGl0KCAnJywgJHRoaXMtPkdldE5hbWUoKSwnRGVsZXRlZCBVc2VyICcuJHBhcmFtc1sndXNlcl9pZCddKTsKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgJ3VzZXJzJyApOwoKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.do_setprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9yZW1vdmVhbGwnXSApICkgewogICAgJHRoaXMtPkV4cGlyZVRlbXBDb2RlcygnLTUgeWVhcnMnKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgJ3ByZWZzJywgJycsICdhZG1pbl9zZXR0aW5ncycpOwp9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9yZW1vdmUxd2VlayddICkgKSB7CiAgICAkdGhpcy0+RXhwaXJlVGVtcENvZGVzKCctMSB3ZWVrJyk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICdwcmVmcycsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTsKfQplbHNlIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfcmVtb3ZlMW1vbnRoJ10gKSApIHsKICAgICR0aGlzLT5FeHBpcmVUZW1wQ29kZXMoJy0xIG1vbnRoJyk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsICdwcmVmcycsICcnLCAnYWRtaW5fc2V0dGluZ3MnKTsKfQplbHNlIGlmKCBpc3NldCggJHBhcmFtc1snY2FuY2VsJ10gKSApIHsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwgJ3ByZWZzJywgJycsICdhZG1pbl9zZXR0aW5ncycpOwp9CgoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2F1dG9fY3JlYXRlX3Vua25vd24nLChpbnQpJHBhcmFtc1snYXV0b19jcmVhdGVfdW5rbm93biddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2F1dGhfbW9kdWxlJyx0cmltKCRwYXJhbXNbJ2F1dGhfbW9kdWxlJ10pKTsKCiRyYW5kb211c2VybmFtZSA9IDA7CmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfcmFuZG9tdXNlcm5hbWUnXSkgKSAkcmFuZG9tdXNlcm5hbWUgPSAoaW50KSRwYXJhbXNbJ2lucHV0X3JhbmRvbXVzZXJuYW1lJ107CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VfcmFuZG9tdXNlcm5hbWUnLCRyYW5kb211c2VybmFtZSk7CmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfZXhwaXJlYWdlJ10pICkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2V4cGlyZWFnZV9tb250aHMnLChpbnQpJHBhcmFtc1snaW5wdXRfZXhwaXJlYWdlJ10pOwoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJfc2Vzc2lvbl9leHBpcmVzJywgJHBhcmFtc1snaW5wdXRfc2Vzc2lvbnRpbWVvdXQnXSk7CgokY29va2llX2tlZXBhbGl2ZSA9IDA7CmlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfY29va2lla2VlcGFsaXZlJ10gKSApICRjb29raWVfa2VlcGFsaXZlID0gJHBhcmFtc1snaW5wdXRfY29va2lla2VlcGFsaXZlJ107CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjb29raWVfa2VlcGFsaXZlJywkY29va2llX2tlZXBhbGl2ZSk7CmlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9zaWduaW5fYnV0dG9uJ10pICkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NpZ25pbl9idXR0b24nLCAkcGFyYW1zWydpbnB1dF9zaWduaW5fYnV0dG9uJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfcmVwZWF0ZWRfbG9naW5zJywoaXNzZXQoJHBhcmFtc1snaW5wdXRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10pPyRwYXJhbXNbJ2lucHV0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddOjApKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnLCRwYXJhbXNbJ2lucHV0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnMnLCRwYXJhbXNbJ2lucHV0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddKTsKaWYgKGlzc2V0KCRwYXJhbXNbJ25vdGlmaWNhdGlvbnMnXSkpICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdub3RpZmljYXRpb25zJyxpbXBsb2RlKCcsJywkcGFyYW1zWydub3RpZmljYXRpb25zJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbl9hZGRyZXNzJywkcGFyYW1zWydub3RpZmljYXRpb25fYWRkcmVzcyddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbl9zdWJqZWN0JywkcGFyYW1zWydub3RpZmljYXRpb25fc3ViamVjdCddKTsKJHRoaXMtPlNldFRlbXBsYXRlKCdub3RpZmljYXRpb25fdGVtcGxhdGUnLCRwYXJhbXNbJ25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddKTsKCiRxdWVyeSA9ICJTRUxFQ1QgcGVybWlzc2lvbl9pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJwZXJtaXNzaW9ucyBXSEVSRSBwZXJtaXNzaW9uX25hbWUgTElLRSAnRkVVICUnIjsKJGNvdW50ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5KTsKCiRmZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zID0gMDsKaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gKSApICRmZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zID0gJHBhcmFtc1snaW5wdXRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucycsJGZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMpOwoKaWYgKGlzc2V0KCRwYXJhbXNbJ2lucHV0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSkgJiYgJHBhcmFtc1snaW5wdXRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddPT0xKSAgewogICAgLy8gdXNpbmcgRkVVc2VyLXNwZWNpZmljIHBlcm1pc3Npb25zLCBzbyBjcmVhdGUgdGhlbSBpZiBuZWNlc3NhcnkKICAgIGlmIChpbnR2YWwoJGNvdW50KSA9PSAwKSB7CiAgICAgICAgLy8gY3JlYXRlICdlbQogICAgICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdGRVUgQWRkIFVzZXJzJywnQWRkIEZyb250LUVuZCBVc2VycycpOwogICAgICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdGRVUgTW9kaWZ5IFVzZXJzJywnTW9kaWZ5IEZyb250LUVuZCBVc2VycycpOwogICAgICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdGRVUgUmVtb3ZlIFVzZXJzJywnUmVtb3ZlIEZyb250LUVuZCBVc2VycycpOwogICAgICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdGRVUgQWRkIEdyb3VwcycsJ0FkZCBGcm9udC1FbmQgVXNlciBHcm91cHMnKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRkVVIE1vZGlmeSBHcm91cHMnLCdNb2RpZnkgRnJvbnQtRW5kIFVzZXIgR3JvdXBzJyk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0ZFVSBNb2RpZnkgR3JvdXAgQXNzaWdubWVudHMnLCdNb2RpZnkgRnJvbnQtRW5kIFVzZXIgR3JvdXAgQXNzaWdubWVudHMnKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignRkVVIFJlbW92ZSBHcm91cHMnLCdSZW1vdmUgRnJvbnQtRW5kIFVzZXIgR3JvdXBzJyk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ0ZFVSBNb2RpZnkgRnJvbnRFbmRVc2VyUHJvcHMnLCdNb2RpZnkgRnJvbnQtRW5kIFVzZXIgUHJvcGVydGllcycpOwogICAgfQp9CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZm9yY2Vsb2dvdXRfdGltZXMnLHRyaW0oJHBhcmFtc1snZm9yY2Vsb2dvdXRfdGltZXMnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZScsKGludCkkcGFyYW1zWydmb3JjZWxvZ291dF9zZXNzaW9uYWdlJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZXhwaXJldXNlcnNfaW50ZXJ2YWwnLChpbnQpJHBhcmFtc1snZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSk7CmlmKCBpc3NldCgkcGFyYW1zWydwYWdldHlwZV9ncm91cHMnXSkgKSAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncGFnZXR5cGVfZ3JvdXBzJyxpbXBsb2RlKCcsJywkcGFyYW1zWydwYWdldHlwZV9ncm91cHMnXSkpOwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJlZnMnKTsKJHRoaXMtPlNldEN1cnJlbnRBY3Rpb24oJ2FkbWluX3NldHRpbmdzJyk7CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.do_userchangesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRyZXR1cm50byA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncmV0dXJudG8nKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2ZldV9jYW5jZWwnXSkgKSB7CiAgICBpZiggJHJldHVybnRvICkgewogICAgICAgICRyZXR1cm5pZCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRyZXR1cm50bywkcmV0dXJuaWQpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybmlkKTsKICAgIH0KfQoKJHVpZCA9ICR0aGlzLT5Mb2dnZWRJbklkKCk7CmlmKCAkdWlkID09IGZhbHNlICkgewogICAgLy8gdXNlciBpc24ndCBsb2dnZWQgaW4KICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9ub3Rsb2dnZWRpbicpKTsKICAgIHJldHVybjsKfQokcmVzdWx0ID0gJHRoaXMtPkdldFVzZXJJbmZvKCAkdWlkICk7CmlmKCAkcmVzdWx0WzBdID09IEZBTFNFICkgewogICAgLy8gdXNlciBpc24ndCBsb2dnZWQgaW4KICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICRyZXN1bHRbMV0pOwogICAgcmV0dXJuOwp9CiR1aW5mbyA9ICRyZXN1bHRbMV07CgokdXNlcm5hbWUgPSAkdWluZm9bJ3VzZXJuYW1lJ107CiRwYXNzd29yZCA9ICcnOwoKLy8gY2hlY2sgaWYgdXNlciBpcyBhbGxvd2VkIHRvIGNoYW5nZSBoaXMgdXNlcm5hbWUKJGNvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwppZiggJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eShmZXVfYXV0aF9jb25zdW1lcjo6Q0FQQUJJTElUWV9DSEFOR0VVU0VSTkFNRSkgKSB7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZmV1X2lucHV0X3VzZXJuYW1lJ10pICkgewogICAgICAgIC8vIHVzZXIgaXMgY2hhbmdpbmcgaGlzIHVzZXJuYW1lCiAgICAgICAgJHRtcCA9IHRyaW0oJHBhcmFtc1snZmV1X2lucHV0X3VzZXJuYW1lJ10pOwogICAgICAgIGlmKCAhJHRoaXMtPklzVmFsaWRVc2VybmFtZSgkdG1wLEZBTFNFLCR1aWQpICkgewogICAgICAgICAgICAkcGFyYW1zWydlcnJvciddID0gMTsKICAgICAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWR1c2VybmFtZScpOwogICAgICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgICAgIH0KICAgICAgICBpZiggJHRtcCApICR1c2VybmFtZSA9ICR0bXA7CiAgICB9Cn0KCi8vIGNoZWNrIGlmIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gY2hhbmdlIGhpcyBwYXNzd29yZAppZiggJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eShmZXVfYXV0aF9jb25zdW1lcjo6Q0FQQUJJTElUWV9DSEFOR0VQQVNTV0QpICkgewogICAgLy8gY2hhbmdlIHRoaXMgcGFzc3dvcmQKICAgICRwYXNzd29yZCA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUodHJpbSgkcGFyYW1zWydmZXVfaW5wdXRfcGFzc3dvcmQnXSkpOwogICAgJHJlcGVhdCAgID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSh0cmltKCRwYXJhbXNbJ2ZldV9pbnB1dF9yZXBlYXRwYXNzd29yZCddKSk7CiAgICBpZiggJHVpbmZvWydmb3JjZV9uZXdwdyddICYmICEkcGFzc3dvcmQgKSB7CiAgICAgICAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3JlcXVpcmVkZmllbGQnLCdwYXNzd29yZCcpOwogICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCRpZCwgJ2NoYW5nZXNldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICB9CiAgICBpZiggJHVpbmZvWydmb3JjZV9uZXdwdyddICYmICEkcmVwZWF0ICkgewogICAgICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywncmVwZWF0cGFzc3dvcmQnKTsKICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCgkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgfQogICAgaWYoICRwYXNzd29yZCAhPSAkcmVwZWF0ICYmICRwYXNzd29yZCAhPSAnJykgewogICAgICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9wYXNzd29yZG1pc21hdGNoJyk7CiAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoJGlkLCAnY2hhbmdlc2V0dGluZ3MnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKICAgIH0KCiAgICBpZiggJHBhc3N3b3JkICE9ICcnICYmICEkdGhpcy0+SXNWYWxpZFBhc3N3b3JkKCRwYXNzd29yZCkgKSB7CiAgICAgICAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXNzd29yZCcpOwogICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCRpZCwgJ2NoYW5nZXNldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICB9Cn0KCi8vIGdldCBwcm9wZXJ0eSBkZWZpbml0aW9ucwokZGVmbnNieW5hbWUgPSAkdGhpcy0+R2V0UHJvcGVydHlEZWZucygpOwoKLy8gR2V0IG1lbWJlciBncm91cHMKJGdyb3VwcyA9ICR0aGlzLT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdWlkKTsKCi8vIEdldCBncm91cCBwcm9wZXJ0eSByZWxhdGlvbnMgaW50byBhIHVuaW9uLgokcHJvcGVydGllcyA9IGFycmF5KCk7CiR0bXAgPSBhcnJheSgpOwpmb3JlYWNoKCAkZ3JvdXBzIGFzICRvbmVncm91cCApIHsKICAgICRwcm9wcmVsYXRpb25zID0gJHRoaXMtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRvbmVncm91cFsnZ3JvdXBpZCddICk7CiAgICAkdG1wID0gUlJVdGlsczo6YXJyYXlfbWVyZ2VfYnlfbmFtZV9yZXF1aXJlZCggJHRtcCwgJHByb3ByZWxhdGlvbnMgKTsKICAgIHVhc29ydCggJHRtcCwgYXJyYXkoJ2NnZV9hcnJheScsJ2NvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleScpICk7Cn0KJHByb3BlcnRpZXMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnbmFtZScpOwoKJHVzZXJwcm9wcyA9ICR0aGlzLT5HZXRVc2VyUHJvcGVydGllcygkdWlkKTsKJGRlbGV0ZXByb3BzID0gYXJyYXkoKTsKCi8vIGRvIHZhbGlkYXRpb24gb2YgdGhlIGZpZWxkcy4KZm9yZWFjaCggJHByb3BlcnRpZXMgYXMgJHByb3BuYW1lID0+ICRwcm9wICkgewogICAgJGZsZHR5cGUgPSAkZGVmbnNieW5hbWVbJHByb3BuYW1lXVsndHlwZSddOwogICAgJHJlcXVpcmVkID0gKCRwcm9wWydyZXF1aXJlZCddID09IDIpOwogICAgJGhpZGRlbiAgID0gKCRwcm9wWydyZXF1aXJlZCddID09IDMpOwogICAgJHJlYWRvbmx5ID0gKCRwcm9wWydyZXF1aXJlZCddID09IDQpOwoKICAgIHN3aXRjaCggJGZsZHR5cGUgKSB7CiAgICBjYXNlIEZyb250RW5kVXNlcnM6OkZJRUxEVFlQRV9URVhUOgogICAgICAgIGlmKCAkcmVxdWlyZWQgKSB7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXSkgfHwgZW1wdHkoJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXSkgKSB7CiAgICAgICAgICAgICAgICAkcGFyYW1zWydlcnJvciddID0gMTsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywkZGVmbnNieW5hbWVbJHByb3BuYW1lXVsncHJvbXB0J10pOwogICAgICAgICAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2NoYW5nZXNldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSBGcm9udEVuZFVzZXJzOjpGSUVMRFRZUEVfQ0hFQ0tCT1g6CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdKSApIHsKICAgICAgICAgICAgJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmKCAkcmVxdWlyZWQgKSB7CiAgICAgICAgICAgIGlmKCAkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdID09IDAgKSB7CiAgICAgICAgICAgICAgICAkcGFyYW1zWydlcnJvciddID0gMTsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywkZGVmbnNieW5hbWVbJHByb3BuYW1lXVsncHJvbXB0J10pOwogICAgICAgICAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2NoYW5nZXNldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSBGcm9udEVuZFVzZXJzOjpGSUVMRFRZUEVfRU1BSUw6CiAgICAgICAgaWYoICRyZXF1aXJlZCApIHsKICAgICAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdKSApIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogICAgICAgICAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnKS4nICcuJHJlc3VsdFsxXTsKICAgICAgICAgICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5Jc1ZhbGlkRW1haWxBZGRyZXNzKCAkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdLCAkdWlkICk7CiAgICAgICAgICAgICAgICBpZiggJHJlc3VsdFswXSA9PSBmYWxzZSApIHsKICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydlcnJvciddID0gMTsKICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcycpLicgJy4kcmVzdWx0WzFdOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgRnJvbnRFbmRVc2Vyczo6RklFTERUWVBFX1RFWFRBUkVBOgogICAgICAgIGlmKCAkcmVxdWlyZWQgJiYgIWlzc2V0KCRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZV0pICkgewogICAgICAgICAgICAkcGFyYW1zWydlcnJvciddID0gMTsKICAgICAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3JlcXVpcmVkZmllbGQnLCRkZWZuc2J5bmFtZVskcHJvcG5hbWVdWydwcm9tcHQnXSk7CiAgICAgICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgICAgIH0KICAgICAgICBpZiggJHJlcXVpcmVkICYmIGVtcHR5KCRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZV0pICkgewogICAgICAgICAgICAkcGFyYW1zWydlcnJvciddID0gMTsKICAgICAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3JlcXVpcmVkZmllbGQnLCRkZWZuc2J5bmFtZVskcHJvcG5hbWVdWydwcm9tcHQnXSk7CiAgICAgICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgICAgIH0KICAgICAgICBicmVhazsKCiAgICBjYXNlIEZyb250RW5kVXNlcnM6OkZJRUxEVFlQRV9NVUxUSVNFTEVDVDoKICAgICAgICBpZiggJHJlcXVpcmVkICYmICFpc3NldCgkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdKSApIHsKICAgICAgICAgICAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywkZGVmbnNieW5hbWVbJHByb3BuYW1lXVsncHJvbXB0J10pOwogICAgICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnY2hhbmdlc2V0dGluZ3MnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKICAgICAgICB9CiAgICAgICAgLy8gZW5jb2RlIGl0IGludG8gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdC4KICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXSkgKSB7CiAgICAgICAgICAgICRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZV0gPSBpbXBsb2RlKCcsJywkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdID0gJyc7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgRnJvbnRFbmRVc2Vyczo6RklFTERUWVBFX0lNQUdFOgogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWUuJ19jbGVhciddKSAmJgogICAgICAgICAgICAkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWUuJ19jbGVhciddID09ICdjbGVhcicgKSB7CiAgICAgICAgICAgIC8vIHdlJ3JlIHRvbGQgdG8gY2xlYXIgYW4gaW1hZ2UgcHJvcGVydHksIHdlIG11c3QgYWxzbwogICAgICAgICAgICAvLyBkZWxldGUgdGhlIGltYWdlCiAgICAgICAgICAgICRkZXN0RGlyMSA9ICRnQ21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLicvJzsKICAgICAgICAgICAgJGRlc3REaXIxIC49ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywnZmV1c2VycycpLicvJzsKICAgICAgICAgICAgJGZpbGUxID0gJGRlc3REaXIxLiRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZV07CiAgICAgICAgICAgIEB1bmxpbmsoICRmaWxlMSApOwoKICAgICAgICAgICAgLy8gdW5zZXQgdGhlIGhpZGRlbiBwYXJhbSB0byBwcmV2ZW50IGFueSBmdXJ0aGVyIHByb2Nlc3NpbmcKICAgICAgICAgICAgJGRlbGV0ZXByb3BzW10gPSAkcHJvcG5hbWU7CiAgICAgICAgICAgIHVuc2V0KCAkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdICk7CiAgICAgICAgfQogICAgICAgIGlmKCAkcmVxdWlyZWQgJiYKICAgICAgICAgICAgKCghaXNzZXQoJF9GSUxFU1skaWQuJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZV0pIHx8ICRfRklMRVNbJGlkLidmZXVfaW5wdXRfJy4kcHJvcG5hbWVdWydzaXplJ10gPT0gMCkgJiYKICAgICAgICAgICAgICghaXNzZXQoJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXSkgfHwgJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXSA9PSAnJykpICkgewogICAgICAgICAgICAvLyBidXQgd2UgY2FuJ3QgZmluZCBhIHZhbHVlCiAgICAgICAgICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfcmVxdWlyZWRmaWVsZCcsJHByb3BuYW1lKTsKICAgICAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2NoYW5nZXNldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgRnJvbnRFbmRVc2Vyczo6RklFTERUWVBFX0RBVEU6CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZS4nTW9udGgnXSkgKSB7CiAgICAgICAgICAgICRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZV0gPQogICAgICAgICAgICAgICAgbWt0aW1lKDAsMCwwLAogICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZS4nTW9udGgnXSwKICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWUuJ0RheSddLAogICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZS4nWWVhciddKTsKICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lLidNb250aCddKTsKICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lLidEYXknXSk7CiAgICAgICAgICAgIHVuc2V0KCRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZS4nWWVhciddKTsKICAgICAgICB9CiAgICAgICAgaWYoICRyZXF1aXJlZCAmJiAhaXNzZXQoJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXSkgKSB7CiAgICAgICAgICAgICRwYXJhbXNbJ2Vycm9yJ10gPSAxOwogICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfcmVxdWlyZWRmaWVsZCcsJHByb3BuYW1lKTsKICAgICAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2NoYW5nZXNldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgRnJvbnRFbmRVc2Vyczo6RklFTERUWVBFX0RST1BET1dOOgogICAgY2FzZSBGcm9udEVuZFVzZXJzOjpGSUVMRFRZUEVfUkFESU9CVVROUzoKICAgICAgICBpZiggJHJlcXVpcmVkICYmICFpc3NldCgkcGFyYW1zWydmZXVfaW5wdXRfJy4kcHJvcG5hbWVdKSApIHsKICAgICAgICAgICAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9yZXF1aXJlZGZpZWxkJywkcHJvcG5hbWUpOwogICAgICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnY2hhbmdlc2V0dGluZ3MnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDoKICAgICAgICAvLyB3ZSBkb24ndCBhY2NlcHQgZmllbGQgdHlwZXMgbGlrZSB0aGlzCiAgICAgICAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2NhbnRzZXRwcm9wZXJ0eXR5cGUnLCRwcm9wbmFtZSk7CiAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2NoYW5nZXNldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KCgovLwovLyBub3cgd2UgYWN0dWFsbHkgY2hhbmdlIHRoZSB1c2VyIHNldHRpbmdzCi8vCgovLyBwYXNzd29yZAppZiggJHBhc3N3b3JkICE9ICcnIHx8ICR1c2VybmFtZSAhPSAnJyApIHsKICAgICRyZXN1bHQgPSAkdGhpcy0+U2V0VXNlciggJHVpZCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQgKTsKICAgICR0aGlzLT5Gb3JjZVBhc3N3b3JkQ2hhbmdlKCR1aWQsRkFMU0UpOwogICAgaWYoICRyZXN1bHRbMF0gPT0gRkFMU0UgKSB7CiAgICAgICAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbycpLicgJy4kcmVzdWx0WzFdOwogICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgfQp9CgovLwovLyBub3cgZGVsZXRlIGFsbCB0aGUgcHJvcGVydGllcyBmb3IgdGhpcyB1c2VyCi8vIGluIHByZXBhcmF0aW9uIGZvciBzZXR0aW5nIG5ldyBvbmVzLgovLwokdGhpcy0+U2V0RW5jcnlwdGlvbktleSgkdWlkKTsKJHRoaXMtPkZvcmNlQ2hhbmdlU2V0dGluZ3MoJHVpZCxGQUxTRSk7CmZvcmVhY2goICRkZWxldGVwcm9wcyBhcyAkb25lICkgewogICAgJHRoaXMtPkRlbGV0ZVVzZXJQcm9wZXJ0eUZ1bGwoICRvbmUsICR1aWQsIGZhbHNlICk7Cn0KZm9yZWFjaCggJHByb3BlcnRpZXMgYXMgJHByb3BuYW1lID0+ICRwcm9wICkgewogICAgJHJlcXVpcmVkID0gKCRwcm9wWydyZXF1aXJlZCddID09IDIpOwogICAgJGhpZGRlbiA9ICgkcHJvcFsncmVxdWlyZWQnXSA9PSAzKTsKICAgICRyZWFkb25seSA9ICgkcHJvcFsncmVxdWlyZWQnXSA9PSA0KTsKICAgICRmbGR0eXBlICA9ICRkZWZuc2J5bmFtZVskcHJvcG5hbWVdWyd0eXBlJ107CiAgICAkZm9yY2VfdW5pcXVlID0gJGRlZm5zYnluYW1lWyRwcm9wbmFtZV1bJ2ZvcmNlX3VuaXF1ZSddOwoKICAgIGlmKCAkcmVhZG9ubHkgfHwgJGhpZGRlbiApIGNvbnRpbnVlOyAvLyBjYW5ub3Qgc2V0IHJlYWRvbmx5IG9yIGhpZGRlbiBmaWVsZHMKCiAgICBpZiggJGZsZHR5cGUgPT0gRnJvbnRFbmRVc2Vyczo6RklFTERUWVBFX0lNQUdFICkgewogICAgICAgIC8vIGltYWdlIHR5cGUKICAgICAgICAkdmFsID0gJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXTsKICAgICAgICBpZiggaXNzZXQoICRfRklMRVNbJGlkLidmZXVfaW5wdXRfJy4kcHJvcG5hbWVdICkgJiYgJF9GSUxFU1skaWQuJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZV1bJ3NpemUnXSA+IDApIHsKICAgICAgICAgICAgLy8gSXQgaXMgYW4gdXBsb2FkIGZpbGUgdHlwZQogICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPk1hbmFnZUltYWdlVXBsb2FkKCRpZC4nZmV1X2lucHV0XycuJHByb3BuYW1lLCAkcHJvcG5hbWUgKTsKICAgICAgICAgICAgaWYoICRyZXN1bHRbMF0gPT0gZmFsc2UgKSB7CiAgICAgICAgICAgICAgICAkcGFyYW1zWydlcnJvciddID0gMTsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcicpLicmbmJzcDsnLiRyZXN1bHRbMV07CiAgICAgICAgICAgICAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnY2hhbmdlc2V0dGluZ3MnLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdmFsID0gJHJlc3VsdFsxXTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKCBpc3NldCggJHBhcmFtc1snZmV1X2lucHV0XycuJHByb3BuYW1lXSApICkgewogICAgICAgICR2YWwgPSB0cmltKCRwYXJhbXNbJ2ZldV9pbnB1dF8nLiRwcm9wbmFtZV0pOwogICAgICAgICR2YWwgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCR2YWwpOwoKICAgICAgICBpZiggJGZsZHR5cGUgPT0gRnJvbnRFbmRVc2Vyczo6RklFTERUWVBFX1RFWFQgKSB7CiAgICAgICAgICAgICR2YWwgPSBmaWx0ZXJfdmFyKCR2YWwsRklMVEVSX1NBTklUSVpFX1NUUklORyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoICRmbGR0eXBlID09IEZyb250RW5kVXNlcnM6OkZJRUxEVFlQRV9URVhUQVJFQSApIHsKICAgICAgICAgICAgJHZhbCA9IGNnZV91dGlsczo6Y2xlYW5faW5wdXRfaHRtbCgkdmFsKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBjb250aW51ZTsKICAgIH0KCiAgICAvLyBjaGVjayBmb3IgZm9yY2VkIHVuaXF1ZSB2YWx1ZXMuCiAgICBpZiggJHZhbCAmJiAkZm9yY2VfdW5pcXVlICYmICEkdGhpcy0+SXNVc2VyUHJvcGVydHlWYWx1ZVVuaXF1ZSggJHVpZCwgJHByb3BuYW1lLCAkdmFsICkgKSB7CiAgICAgICAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJywkcHJvcG5hbWUpOwogICAgICAgICR0aGlzLT5teVJlZGlyZWN0KCAkaWQsICdjaGFuZ2VzZXR0aW5ncycsICRyZXR1cm5pZCwgJHBhcmFtcyApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAkcmV0ID0gJHRoaXMtPlNldFVzZXJQcm9wZXJ0eUZ1bGwoICRwcm9wbmFtZSwgJHZhbCwgJHVpZCApOwogICAgaWYoICRyZXQgPT0gZmFsc2UgKSB7CiAgICAgICAgJHBhcmFtc1snZXJyb3InXSA9IDE7CiAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eScpLicgJy4kcHJvcG5hbWU7CiAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2NoYW5nZXNldHRpbmdzJywgJHJldHVybmlkLCAkcGFyYW1zICk7CiAgICAgICAgcmV0dXJuOwogICAgfQp9CgovLyBzZW5kIHRoZSBldmVudAokdGhpcy0+YWRkX2hpc3RvcnkoJHVpZCwnY2hhbmdlIHNldHRpbmdzJyk7CgokZXZlbnRfcGFyYW1zID0gYXJyYXkoKTsKJGV2ZW50X3BhcmFtc1snbmFtZSddID0gJHVpbmZvWyd1c2VybmFtZSddOwokZXZlbnRfcGFyYW1zWydpZCddID0gJHVpZDsKJHRoaXMtPlNlbmRFdmVudCgnT25VcGRhdGVVc2VyJywkZXZlbnRfcGFyYW1zKTsKJHRoaXMtPl9TZW5kTm90aWZpY2F0aW9uRW1haWwoJ09uVXBkYXRlVXNlcicsJGV2ZW50X3BhcmFtcyk7CgppZiggJHJldHVybnRvICkgewogICAgJHBhZ2VpZCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRyZXR1cm50byk7CiAgICBpZiggJHBhZ2VpZCApICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHBhZ2VpZCk7Cn0KaWYoICgkdXJsID0gJHRoaXMtPkdldFBvc3RMb2dpblVSTCgpICkgKSB7CiAgICByZWRpcmVjdCgkdXJsKTsKfQplbHNlIGlmKCAoJHRwbHN0ciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWdlaWRfYWZ0ZXJjaGFuZ2VzZXR0aW5ncycpKSApIHsKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ3N0cmluZzonLiR0cGxzdHIpOwogICAgJHRwbC0+YXNzaWduKCd1c2VybmFtZScsJHVpbmZvWyd1c2VybmFtZSddKTsKICAgICR0cGwtPmFzc2lnbigndXNlcmluZm8nLCR1aW5mbyk7CiAgICAkZ3JvdXBzID0gJHRoaXMtPkdldE1lbWJlckdyb3Vwc0FycmF5KCAkdGhpcy0+TG9nZ2VkaW5JZCgpICk7CiAgICAkZ3JvdXBuYW1lID0gJHRoaXMtPkdldEdyb3VwTmFtZSggJGdyb3Vwc1swXVsnZ3JvdXBpZCddICk7CiAgICAkdHBsLT5hc3NpZ24oJ2dyb3VwJywkZ3JvdXBuYW1lKTsKICAgICR0bXAgPSB0cmltKCR0cGwtPmZldGNoKCkpOwogICAgaWYoICR0bXAgKSB7CiAgICAgICAgJHBhZ2VpZCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCR0bXApOwogICAgICAgIGlmKCAkcGFnZWlkICkgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkcGFnZWlkKTsKICAgIH0KfQoKJHBhcm1zID0gYXJyYXkoJ21lc3NhZ2UnPT4kdGhpcy0+TGFuZygnbXNnX3NldHRpbmdzY2hhbmdlZCcpKTsKJHRoaXMtPm15UmVkaXJlY3QoJ2NudG50MDEnLCdsb2dvdXRmb3JtJywkcmV0dXJuaWQsJHBhcm1zKTsK]]></data>
	</file>
	<file>
	  <filename>/action.forgotpw.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNSBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR1c2VybmFtZSA9ICRlbWFpbCA9IG51bGw7CiRlcnJvciA9IG51bGw7CiRtZXNzYWdlID0gbnVsbDsKJHVzZXJuYW1lX2lzX2VtYWlsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJywwKTsKJG5vY2FwdGNoYSA9IFxjZ2VfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsJ25vY2FwdGNoYScsRkFMU0UpOwokcmV0dXJudG8gPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3JldHVybnRvJywkcmV0dXJuaWQpOwoKJHRoZXRlbXBsYXRlID0gXGZldV91dGlsczo6Z2V0X3RlbXBsYXRlKCRwYXJhbXMsJ2ZvcmdvdHB3dGVtcGxhdGUnLCdGcm9udEVuZFVzZXJzOjpmb3Jnb3QgcGFzc3dvcmQgZm9ybScpOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CgppZiggaXNzZXQoJHBhcmFtc1snZmV1X2NhbmNlbCddKSApIHsKICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybnRvKTsKfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydmZXVfc3VibWl0J10pICkgewogICAgdHJ5IHsKICAgICAgICAvLyBtYWtlIHN1cmUgd2UgaGF2ZSBhIHVzZXJuYW1lCiAgICAgICAgJHVzZXJuYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmZXVfdXNlcm5hbWUnKTsKICAgICAgICBpZiggISR1c2VybmFtZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwogICAgICAgIGlmKCAkdXNlcm5hbWVfaXNfZW1haWwgJiYgIWlzX2VtYWlsKCR1c2VybmFtZSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnKSk7CgogICAgICAgIC8vIHZhbGlkYXRlIHRoZSBjYXB0Y2hhCiAgICAgICAgaWYoICEkbm9jYXB0Y2hhICkgewogICAgICAgICAgICAkY2FwdGNoYSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NhcHRjaGEnKTsKICAgICAgICAgICAgaWYoIGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRjYXB0Y2hhLT5DaGVja0NhcHRjaGEoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmZXVfaW5wdXRfY2FwdGNoYScpKSApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY2FwdGNoYW1pc21hdGNoJykpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBzZWUgaWYgd2UgY2FuIGZpbmQgdGhpcyB1c2VyCiAgICAgICAgJHVpZCA9ICR0aGlzLT5HZXRVc2VySUQoJHVzZXJuYW1lKTsKICAgICAgICBpZiggISR1aWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsKICAgICAgICAkdG1wID0gJHRoaXMtPkdldFVzZXJJbmZvKCR1aWQpOwogICAgICAgIGlmKCAhJHRtcCB8fCAhJHRtcFswXSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY291bGRub3RmaW5kZW1haWwnKSk7CiAgICAgICAgJHVzZXJfaW5mbyA9ICR0bXBbMV07CiAgICAgICAgdW5zZXQoJHRtcCk7CiAgICAgICAgaWYoICR1c2VyX2luZm9bJ2Rpc2FibGVkJ10gKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2FjY291bnRkaXNhYmxlZCcpKTsKICAgICAgICBpZiggdGltZSgpID4gc3RydG90aW1lKCR1c2VyX2luZm9bJ2V4cGlyZXMnXSkgKSAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9hY2NvdW50ZXhwaXJlZCcpKTsKICAgICAgICAkZW1haWwgPSAkdXNlcm5hbWU7CiAgICAgICAgaWYoICEkdXNlcm5hbWVfaXNfZW1haWwgKSB7CiAgICAgICAgICAgICRlbWFpbCA9ICR0aGlzLT5HZXRFbWFpbCgkdWlkKTsKICAgICAgICAgICAgaWYoICEkZW1haWwgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJykpOwogICAgICAgIH0KCiAgICAgICAgLy8gc2VlIGlmIHdlIGhhdmUgYSB0ZW1wY29kZSBmb3IgdGhpcyB1c2VyIGFscmVhZHkKICAgICAgICBpZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJykgJiYgJHRoaXMtPkdldFVzZXJUZW1wQ29kZSgkdWlkKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9yZXNldGFscmVhZHlzZW50JykpOwogICAgICAgIH0KCiAgICAgICAgLy8KICAgICAgICAvLyB3b290Li4uIGF0IHRoaXMgcG9pbnQgaXQgYWxsIHdvcmtlZC4KICAgICAgICAvLyByZWFkeSB0byBnZXQgYSB0ZW1wIGNvZGUgYW5kIHNlbmQgYW4gZW1haWwuCiAgICAgICAgLy8KICAgICAgICAkY29kZSA9IHN1YnN0cihzdHJ0b3VwcGVyKG1kNShfX0ZJTEVfXy4kdXNlcm5hbWUubWljcm90aW1lKCkpKSwwLDI1KTsKICAgICAgICAkdGhpcy0+U2V0VXNlclRlbXBDb2RlKCAkdWlkLCAkY29kZSApOwoKICAgICAgICAvLyBzZW5kIG91ciBmdW5reSBlbWFpbAogICAgICAgICRkZXN0cGFnZSA9ICRyZXR1cm5pZDsKICAgICAgICAkdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3BhZ2VpZGZvcmdvdHBhc3N3ZCcpOwogICAgICAgIGlmKCAkdG1wICkgJGRlc3RwYWdlID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHRtcCwkdG1wKTsKCiAgICAgICAgJHRoZXRlbXBsYXRlID0gXGZldV91dGlsczo6Z2V0X3RlbXBsYXRlKCRwYXJhbXMsJ2ZvcmdvdHB3ZW1haWx0ZW1wbGF0ZScsJ0Zyb250RW5kVXNlcnM6OmZvcmdvdCBwYXNzd29yZCBlbWFpbCcpOwogICAgICAgICR0cGwyID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CiAgICAgICAgJHRwbDItPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCd0aXRsZV9mb3Jnb3Rwd2VtYWlsJykpOwogICAgICAgICR0cGwyLT5hc3NpZ24oJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCcsJHRoaXMtPkxhbmcoJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCcpKTsKICAgICAgICAkdHBsMi0+YXNzaWduKCdtZXNzYWdlX2ZvcmdvdHB3bWFpbCcsJHRoaXMtPkxhbmcoJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCcpKTsKICAgICAgICAkdHBsMi0+YXNzaWduKCdwcm9tcHRfY29kZScsJHRoaXMtPkxhbmcoJ3Byb21wdF9jb2RlJykpOwogICAgICAgICR0cGwyLT5hc3NpZ24oJ2RhdGFfY29kZScsJGNvZGUpOwogICAgICAgICR0cGwyLT5hc3NpZ24oJ3Byb21wdF9saW5rJywkdGhpcy0+TGFuZygncHJvbXB0X2xpbmsnKSk7CiAgICAgICAgJHByZXR0eSA9ICJmZXUvdmVyaWZ5Y29kZS8kZGVzdHBhZ2UvJHVpZC8kY29kZSI7CiAgICAgICAgJHBhcm1zID0gYXJyYXkoJ3VpZCc9PiR1aWQsJ2NvZGUnPT4kY29kZSk7CiAgICAgICAgJHRwbDItPmFzc2lnbignZGF0YV91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCdjbnRudDAnLCd2ZXJpZnljb2RlJywkZGVzdHBhZ2UsJHBhcm1zLGZhbHNlLGZhbHNlLCRwcmV0dHkpKTsKICAgICAgICAkYm9keSA9ICR0cGwyLT5mZXRjaCgpOwoKICAgICAgICAkY21zbWFpbGVyID0gbmV3IFxjbXNfbWFpbGVyKCk7CiAgICAgICAgJGNtc21haWxlci0+cmVzZXQoKTsKICAgICAgICAkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCRlbWFpbCk7CiAgICAgICAgJGNtc21haWxlci0+U2V0Qm9keSgkYm9keSk7CiAgICAgICAgJGNtc21haWxlci0+U2V0U3ViamVjdCgkdGhpcy0+TGFuZygnbG9zdHBhc3N3b3JkX2VtYWlsc3ViamVjdCcpKTsKICAgICAgICAkY21zbWFpbGVyLT5Jc0hUTUwodHJ1ZSk7CiAgICAgICAgJGNtc21haWxlci0+U2V0UHJpb3JpdHkoMSk7CiAgICAgICAgJGNtc21haWxlci0+U2VuZCgpOwoKICAgICAgICAvLyBhdWRpdCBzb21ldGhpbmcKICAgICAgICBhdWRpdCgkdWlkLCR0aGlzLT5HZXROYW1lKCksJ1JlcXVlc3RlZCBhIHBhc3N3b3JkIHJlc2V0IGNvZGUnKTsKCiAgICAgICAgJHRoaXMtPmFkZF9oaXN0b3J5KCR1aWQsJ2ZvcmdvdHB3Jyk7CgogICAgICAgIC8vIGFuZCB3ZSdyZSBkb25lLCBkbyBhIHJlZGlyZWN0IGFmdGVyIHBvc3QKICAgICAgICAkdGhpcy0+U2hvd0Zvcm1hdHRlZE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2luZm9fZm9yZ290cHdtZXNzYWdlc2VudCcsJGVtYWlsKSxmYWxzZSwkdGhpcy0+TGFuZygndGl0bGVfZm9yZ290cHcnKSk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgJGVycm9yID0gMTsKICAgICAgICAkbWVzc2FnZSA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgICB9Cn0KCi8vIGNyZWF0ZSBhbmQgZGlzcGxheSB0aGUgdGVtcGxhdGUuCiR0cGwtPmFzc2lnbignZXJyb3InLCRlcnJvcik7CiR0cGwtPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwokdHBsLT5hc3NpZ24oJ3VzZXJuYW1lJywkdXNlcm5hbWUpOwokY2FwdGNoYSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwppZiggaXNfb2JqZWN0KCRjYXB0Y2hhKSAmJiAhJG5vY2FwdGNoYSApIHsKICAgICR0cGwtPmFzc2lnbignY2FwdGNoYV90aXRsZScsJHRoaXMtPkxhbmcoJ2NhcHRjaGFfdGl0bGUnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2NhcHRjaGEnLCRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOwogICAgJHRlc3QgPSBtZXRob2RfZXhpc3RzKCRjYXB0Y2hhLCAnTmVlZHNJbnB1dEZpZWxkJykgPyAkY2FwdGNoYS0+TmVlZHNJbnB1dEZpZWxkKCkgOiB0cnVlOwogICAgaWYoICR0ZXN0ICkgJHRwbC0+YXNzaWduKCdpbnB1dF9jYXB0Y2hhJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2ZldV9pbnB1dF9jYXB0Y2hhJywnJywxMCkpOwp9CiRwYXJtcyA9IGFycmF5KCk7CiRwYXJtc1snbm9jYXB0Y2hhJ10gPSAkbm9jYXB0Y2hhOwokcGFybXNbJ3JldHVybnRvJ10gPSAkcmV0dXJudG87CiR0cGwtPmFzc2lnbignc3RhcnRmb3JtJywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoICRpZCwgJ2ZvcmdvdHB3JywgJHJldHVybmlkLCAkcGFybXMgKSk7CiR0cGwtPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiR0cGwtPmFzc2lnbigndXNlcm5hbWVfaXNfZW1haWwnLCR1c2VybmFtZV9pc19lbWFpbCk7CiR0cGwtPmFzc2lnbigndW5mbGRsZW4nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpKTsKJHRwbC0+YXNzaWduKCdtYXhfdW5mbGRsZW4nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKSk7CiR0cGwtPmRpc3BsYXkoKTsKCiMKIyBFT0YKIw==]]></data>
	</file>
	<file>
	  <filename>/action.login.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNSBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKaWYoICFjbGFzc19leGlzdHMoJ0ZldUxvZ2luRmFpbGVkZXhjZXB0aW9uJykgKSB7CiAgICBjbGFzcyBGZXVMb2dpbkZhaWxlZEV4Y2VwdGlvbiBleHRlbmRzIFxSdW50aW1lRXhjZXB0aW9uIHt9Cn0KCgokY29uc3VtZXIgPSBmZXVfdXRpbHM6OmdldF9hdXRoX2NvbnN1bWVyKCk7CmlmKCAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KGZldV9hdXRoX2NvbnN1bWVyOjpDQVBBQklMSVRZX0xPR0lOKSApIHsKICAgIC8vIHRoZSBjb25zdW1lciBwcm92aWRlcyB0aGUgbG9naW4gY2FwYWJpbGl0aWVzCiAgICBlY2hvICRjb25zdW1lci0+Z2V0X2xvZ2luX2Rpc3BsYXkoJGlkLCRyZXR1cm5pZCwkcGFyYW1zKTsKICAgIHJldHVybjsKfQoKdHJ5IHsKICAgICRlcnJvciA9ICR1c2VybmFtZSA9ICRwYXNzd29yZCA9ICRyZW1lbWJlcm1lID0gbnVsbDsKICAgICRpbmxpbmUgPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdpbmxpbmUnKTsKICAgICRub2NhcHRjaGEgPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdub2NhcHRjaGEnKTsKICAgICRyZXR1cm50byA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncmV0dXJudG8nKTsKICAgICRvbmx5Z3JvdXBzID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdvbmx5X2dyb3VwcycpOwoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snZmV1X3N1Ym1pdCddKSApIHsKICAgICAgICAkdXNlcm5hbWUgPSBudWxsOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBob25leXBvdAogICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snZmV1X19kYXRhJ10pICkgewogICAgICAgICAgICAgICAgJGhvbmV5cG90ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmZXVfX2RhdGEnKTsKICAgICAgICAgICAgICAgIGlmKCAkaG9uZXlwb3QgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3lvdWFyZWFib3QnKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHRoaXMgaXMgdGhlIGd1dHMgb2YgdGhlIGxvZ2luIHByb2Nlc3MuCiAgICAgICAgICAgICR1c2VybmFtZSA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmZXVfaW5wdXRfdXNlcm5hbWUnKSk7CiAgICAgICAgICAgICRwYXNzd29yZCA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmZXVfaW5wdXRfcGFzc3dvcmQnKSk7CiAgICAgICAgICAgICRyZW1lbWJlcm1lID0gXGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnZmV1X3JlbWVtYmVybWUnKTsKCiAgICAgICAgICAgIC8vIGNoZWNrIHVzZXJuYW1lICYgcGFzc3dvcmQKICAgICAgICAgICAgaWYoICEkdXNlcm5hbWUgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3Npbmd1c2VybmFtZScpKTsKICAgICAgICAgICAgaWYoICEkcGFzc3dvcmQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXNzd29yZCcpKTsKCiAgICAgICAgICAgIC8vIGRvIEJlZm9yZUxvZ2luLi4uIHRoZXNlIHJlZmVyZW5jZXMgYXJlIHByZXR0eSBoYWNreQogICAgICAgICAgICAkaXAgPSBcY2dlX3V0aWxzOjpnZXRfcmVhbF9pcCgpOwogICAgICAgICAgICAkb2sgPSB0cnVlOwogICAgICAgICAgICAkbXNnID0gbnVsbDsKICAgICAgICAgICAgJHBhcm1zID0gWyAndXNlcm5hbWUnPT4kdXNlcm5hbWUsICdncm91cHMnPT4kb25seWdyb3VwcywgJ2lwJz0+JGlwLCAnYWxsb3cnPT4mJG9rLCAnbWVzc2FnZSc9PiYkbXNnIF07CiAgICAgICAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ0JlZm9yZUxvZ2luJywgJHBhcm1zICk7CiAgICAgICAgICAgIGlmKCAhXGNtc190b19ib29sKCRvaykgKSB0aHJvdyBuZXcgXEZldUxvZ2luRmFpbGVkRXhjZXB0aW9uKCRtc2cpOwoKICAgICAgICAgICAgLy8gY2hlY2sgdGhlIGNhcHRjaGEKICAgICAgICAgICAgaWYoICEkbm9jYXB0Y2hhICkgewogICAgICAgICAgICAgICAgJGNhcHRjaGEgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDYXB0Y2hhJyk7CiAgICAgICAgICAgICAgICBpZiggaXNfb2JqZWN0KCRjYXB0Y2hhKSAmJiAhJGNhcHRjaGEtPkNoZWNrQ2FwdGNoYShcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZldV9pbnB1dF9jYXB0Y2hhJykpICkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcRmV1TG9naW5GYWlsZWRFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCcpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gY2hlY2sgcGFzc3dvcmQsIGJ1dCBkbyBub3QgbG9naW4KICAgICAgICAgICAgJHVpZCA9ICR0aGlzLT5DaGVja1Bhc3N3b3JkKCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJG9ubHlncm91cHMgKTsKICAgICAgICAgICAgaWYoICR1aWQgPCAxICkgdGhyb3cgbmV3IFxGZXVMb2dpbkZhaWxlZEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbG9naW5mYWlsZWQnKSk7CgogICAgICAgICAgICAvLyBsb2dpbiBwYXNzZWQuLi4gbm93IGRvIHRoZSBhZnRlcmxvZ2luYXV0aCBldmVudAogICAgICAgICAgICAvLyB0byBzZWUgaWYgYW55IG90aGVyIG1vZHVsZSBpcyBwcmV2ZW50aW5nIGxvZ2luLgogICAgICAgICAgICAvLyByZWZlcmVuY2VzIGFyZSBwcmV0dHkgaGFja3kuCiAgICAgICAgICAgICRvayA9IHRydWU7CiAgICAgICAgICAgICRtc2cgPSBudWxsOwogICAgICAgICAgICAkcGFybXMgPSBbICdpZCc9PiR1aWQsICd1c2VybmFtZSc9PiR1c2VybmFtZSwgJ2dyb3Vwcyc9PiRvbmx5Z3JvdXBzLCAnaXAnPT4kaXAsICdhbGxvdyc9PiYkb2ssICdtZXNzYWdlJz0+JiRtc2cgXTsKICAgICAgICAgICAgJHRoaXMtPlNlbmRFdmVudCgnQWZ0ZXJMb2dpbkF1dGgnLCAkcGFybXMgKTsKICAgICAgICAgICAgaWYoICFcY21zX3RvX2Jvb2woJG9rKSApIHRocm93IG5ldyBcRmV1TG9naW5GYWlsZWRFeGNlcHRpb24oJG1zZyk7CgogICAgICAgICAgICAvLyBnZXQgdWlkIGFuZCB1c2VyaW5mbwogICAgICAgICAgICAkcmVzID0gJHRoaXMtPkdldFVzZXJJbmZvKCR1aWQpOwogICAgICAgICAgICBpZiggISRyZXNbMF0gKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3VzZXJub3Rmb3VuZCcpKTsgLy8gc2hvdWxkIG5ldmVyIGV2ZXIgaGFwcGVuLgogICAgICAgICAgICAkdXNlcl9pbmZvID0gJHJlc1sxXTsKCiAgICAgICAgICAgIGlmKCAhZW1wdHkoJHVzZXJfaW5mb1snbXVzdF92YWxpZGF0ZSddKSAmJiAkdXNlcl9pbmZvWydtdXN0X3ZhbGlkYXRlJ10gKSB7CiAgICAgICAgICAgICAgICAvLyByZWRpcmVjdCB0byB0aGUgdmVyaWZ5b25seSBhY3Rpb24uLi4KICAgICAgICAgICAgICAgICRnZW5lcmF0b3IgPSBuZXcgXEZyb250RW5kVXNlcnNcZW1haWxfdmVyaWZ5X2Fzc2lzdGFudCgkdWlkKTsKICAgICAgICAgICAgICAgICR1cmwgPSAkZ2VuZXJhdG9yLT5HZXRWZXJpZnlGb3JtVXJsKGZhbHNlKTsKICAgICAgICAgICAgICAgIHJlZGlyZWN0KCR1cmwpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBhY3R1YWxseSBsb2cgdGhlIHVzZXIgaW4uCiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+TG9naW4oICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkb25seWdyb3Vwcyk7CiAgICAgICAgICAgIGlmKCAhJHJlc1swXSApIHRocm93IG5ldyBcRmV1TG9naW5GYWlsZWRFeGNlcHRpb24oJHJlc1sxXSk7CiAgICAgICAgICAgICR1aWQgPSAkcmVzWzBdOwoKICAgICAgICAgICAgLy8KICAgICAgICAgICAgLy8gd2UncmUgbG9nZ2VkIGluCiAgICAgICAgICAgIC8vCgogICAgICAgICAgICAvLyBzZW5kIGFuIGVtYWlsIChkZXByZWNhdGVkKQogICAgICAgICAgICAkdGhpcy0+X1NlbmROb3RpZmljYXRpb25FbWFpbCgnT25Mb2dpbicsYXJyYXkoJ2lkJz0+JHVpZCwndXNlcm5hbWUnPT4kdXNlcm5hbWUpKTsKCiAgICAgICAgICAgIGlmKCAkdXNlcl9pbmZvWydtdXN0X3ZhbGlkYXRlJ10gKSB7CiAgICAgICAgICAgICAgICAvLyBmb3JjZSB0aGUgdXNlciB0byB2YWxpZGF0ZSB0aGVtc2VsdmVzLgogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkdXNlcl9pbmZvWydmb3JjZV9jaHNldHRpbmdzJ10gKSB7CiAgICAgICAgICAgICAgICAvLyBmb3JjZSB1c2VyIHRvIGNoYW5nZSBzZXR0aW5ncy4KICAgICAgICAgICAgICAgICRjc3BhZ2UgPSAkcmV0dXJuaWQ7CiAgICAgICAgICAgICAgICBpZiggKCR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFnZWlkX2NoYW5nZXNldHRpbmdzJykpICkgeyAgLy8gdGVzdCBtZQogICAgICAgICAgICAgICAgICAgICR0cGwyID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdzdHJpbmc6Jy4kdG1wLCR0bXApOwogICAgICAgICAgICAgICAgICAgICRncm91cHMgPSAkdGhpcy0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoICR1aWQgKTsKICAgICAgICAgICAgICAgICAgICAkZ3JvdXBuYW1lID0gJHRoaXMtPkdldEdyb3VwTmFtZSggJGdyb3Vwc1swXVsnZ3JvdXBpZCddICk7CiAgICAgICAgICAgICAgICAgICAgJHRwbDItPmFzc2lnbigndXNlcm5hbWUnLCR1c2VybmFtZSk7CiAgICAgICAgICAgICAgICAgICAgJHRwbDItPmFzc2lnbignZ3JvdXAnLCRncm91cG5hbWUpOwogICAgICAgICAgICAgICAgICAgICR0bXAgPSAkdHBsMi0+ZmV0Y2goKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHRtcCApICRjc3BhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdG1wLCRyZXR1cm5pZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcGFybXMgPSBhcnJheSgndWlkJz0+JHVpZCk7CiAgICAgICAgICAgICAgICBpZiggJHJldHVybnRvICkgJHBhcm1zWydyZXR1cm50byddID0gJHJldHVybnRvOwogICAgICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0Rm9yRnJvbnRlbmQoJGlkLCRjc3BhZ2UsJ2NoYW5nZXNldHRpbmdzJywkcGFybXMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkdXNlcl9pbmZvWydmb3JjZV9uZXdwdyddICkgewogICAgICAgICAgICAgICAgLy8gdXNlciBjYW5ub3QgYmUgcmVtZW1iZXJlZCBpZiBmb3JjZSBwYXNzd29yZCByZXNldCAoZm9yIHNlY3VyaXR5KQogICAgICAgICAgICAgICAgJHBhcm1zID0gYXJyYXkoJ3VpZCc9PiR1aWQpOwogICAgICAgICAgICAgICAgaWYoICRyZXR1cm50byApICRwYXJtc1sncmV0dXJudG8nXSA9ICRyZXR1cm50bzsKICAgICAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdEZvckZyb250ZW5kKCRpZCwkcmV0dXJuaWQsJ3VzZXJfZm9yY2VuZXdwdycsJHBhcm1zKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoICRyZW1lbWJlcm1lICkgewogICAgICAgICAgICAgICAgJGRhdGEgPSBhcnJheSgndWlkJz0+JHVpZCwndGltZSc9PnRpbWUoKSk7CiAgICAgICAgICAgICAgICAkbmFtZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjb29raWVuYW1lJyk7CiAgICAgICAgICAgICAgICBcY21zX2Nvb2tpZXM6OnNldCgkbmFtZSxiYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkZGF0YSkpLHRpbWUoKSs2MCoyNCozNjAwLCcvJyk7IC8vIEB0b2RvOiB1c2UgY21zX2Nvb2tpZQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyByZWRpcmVjdCBzb21ld2hlcmUgPwogICAgICAgICAgICBpZiggJHJldHVybnRvICkgewogICAgICAgICAgICAgICAgLy8gYSBwYWdlIGlkIG9yIGFsaWFzCiAgICAgICAgICAgICAgICAkcGFnZWlkID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHJldHVybnRvKTsKICAgICAgICAgICAgICAgIGlmKCAkcGFnZWlkICkgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkcGFnZWlkKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggKCR1cmwgPSAkdGhpcy0+R2V0UG9zdExvZ2luVVJMKCkgKSApIHsKICAgICAgICAgICAgICAgIC8vIHRoaXMgb3ZlcnJpZGVzIHRoZSBwcmVmZXJlbmNlLCBidXQgbm90IHJldHVybnRvLgogICAgICAgICAgICAgICAgcmVkaXJlY3QoJHVybCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggKCR0cGxzdHIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFnZWlkX2xvZ2luJykpICkgewogICAgICAgICAgICAgICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnc3RyaW5nOicuJHRwbHN0cik7CiAgICAgICAgICAgICAgICAkZ3JvdXBzID0gJHRoaXMtPkdldE1lbWJlckdyb3Vwc0FycmF5KCAkdWlkICk7CiAgICAgICAgICAgICAgICAkZ3JvdXBuYW1lID0gJHRoaXMtPkdldEdyb3VwTmFtZSggJGdyb3Vwc1swXVsnZ3JvdXBpZCddICk7CiAgICAgICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3VzZXJuYW1lJywkdXNlcm5hbWUpOwogICAgICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdncm91cCcsJGdyb3VwbmFtZSk7CiAgICAgICAgICAgICAgICAkdG1wID0gdHJpbSgkdHBsLT5mZXRjaCgpKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wICkgewogICAgICAgICAgICAgICAgICAgICRwYWdlaWQgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdG1wKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHBhZ2VpZCApICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHBhZ2VpZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gYWxsIGVsc2UgZmFpbHMsIHJlZGlyZWN0IGJhY2sgdG8gb3VyIGN1cnJlbiBwYWdlLgogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCAkcmV0dXJuaWQgKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxGZXVMb2dpbkZhaWxlZEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgJGVycm9yID0gJGUtPkdldE1lc3NhZ2UoKTsKICAgICAgICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnTG9naW4gZmFpbGVkIGZvciB1c2VyICcuJHVzZXJuYW1lKTsKICAgICAgICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25Mb2dpbkZhaWxlZCcsIFsgJ3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUsICdtc2cnID0+ICRlcnJvciBdICk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkZXJyb3IgPSAkZS0+R2V0TWVzc2FnZSgpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBidWlsZCB0aGUgZm9ybQogICAgJGNvbnRlbnQgPSBcY21zX3V0aWxzOjpnZXRfY3VycmVudF9jb250ZW50KCk7CiAgICBpZiggZ2V0X2NsYXNzKCRjb250ZW50KSA9PSAnRXJyb3JQYWdlJyApIHsKICAgICAgICAvLyB3ZSdyZSBiZWluZyBjYWxsZWQgZnJvbSBhbiBlcnJvciBwYWdlLi4uIHNvIHdoZW4gd2UncmUgZG9uZSB3ZSB3YW50IHRvIHJlZGlyZWN0IGJhY2sgdG8gdGhlCiAgICAgICAgLy8gcmVxdWVzdGVkIHBhZ2UsIGlmIGVuYWJsZWQuCiAgICAgICAgJHRoaXMtPlNldFBvc3RMb2dpblVSTCgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSk7CiAgICB9CgogICAgJHRoZXRlbXBsYXRlID0gXGZldV91dGlsczo6Z2V0X3RlbXBsYXRlKCRwYXJhbXMsJ2xvZ2ludGVtcGxhdGUnLCdGcm9udEVuZFVzZXJzOjpsb2dpbiBmb3JtJyk7CiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CiAgICAkcGFybXMgPSBhcnJheSgpOwogICAgJHBhcm1zWydpbmxpbmUnXSA9ICRpbmxpbmU7CiAgICAkcGFybXNbJ25vY2FwdGNoYSddID0gJG5vY2FwdGNoYTsKICAgICRwYXJtc1sncmV0dXJudG8nXSA9ICRyZXR1cm50bzsKICAgICRwYXJtc1snb25seV9ncm91cHMnXSA9ICRvbmx5Z3JvdXBzOwogICAgJHRwbC0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoICRpZCwgJ2xvZ2luJywgJHJldHVybmlkLCAkcGFybXMsICRpbmxpbmUgKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiAgICAkY2FwdGNoYSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2FwdGNoYScpOwogICAgaWYoIGlzX29iamVjdCgkY2FwdGNoYSkgJiYgISRub2NhcHRjaGEgKSB7CiAgICAgICAgJHRlc3QgPSBtZXRob2RfZXhpc3RzKCRjYXB0Y2hhLCAnTmVlZHNJbnB1dEZpZWxkJykgPyAkY2FwdGNoYS0+TmVlZHNJbnB1dEZpZWxkKCkgOiB0cnVlOwogICAgICAgICR0cGwtPmFzc2lnbignY2FwdGNoYV90aXRsZScsICR0aGlzLT5MYW5nKCdjYXB0Y2hhX3RpdGxlJykpOwogICAgICAgICR0cGwtPmFzc2lnbignY2FwdGNoYScsICRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOwogICAgICAgICR0cGwtPmFzc2lnbignbmVlZF9jYXB0Y2hhX2lucHV0JywkdGVzdCk7CiAgICB9CgogICAgJHRwbC0+YXNzaWduKCdlcnJvcicsJGVycm9yKTsKICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWVfaXNfZW1haWwnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpKTsKICAgICR0cGwtPmFzc2lnbignZmxkbmFtZV91c2VybmFtZScsJGlkLidmZXVfaW5wdXRfdXNlcm5hbWUnKTsKICAgICR0cGwtPmFzc2lnbigncHJvbXB0X3VzZXJuYW1lJywkY29uc3VtZXItPmdldF91c2VybmFtZV9wcm9tcHQoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3VzZXJuYW1lX21heGxlbmd0aCcsJHRoaXMtPkNHR2V0UHJlZmVyZW5jZSgnbWF4X3VzZXJuYW1lbGVuZ3RoJywyMCkpOwogICAgJHRwbC0+YXNzaWduKCdwYXNzd29yZF9tYXhsZW5ndGgnLCR0aGlzLT5DR0dldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcsMjApKTsKICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWVfc2l6ZScsbWF4KDMsKGludCkkdGhpcy0+Q0dHZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcsMTApKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3Bhc3N3b3JkX3NpemUnLG1heCgzLCR0aGlzLT5DR0dldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJywxMCkpKTsKICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCR1c2VybmFtZSk7CiAgICAkdHBsLT5hc3NpZ24oJ3Bhc3N3b3JkJywkcGFzc3dvcmQpOwogICAgJHRwbC0+YXNzaWduKCdyZW1lbWJlcm1lJywkcmVtZW1iZXJtZSk7CiAgICAkdHBsLT5hc3NpZ24oJ2ZsZG5hbWVfcGFzc3dvcmQnLCRpZC4nZmV1X2lucHV0X3Bhc3N3b3JkJyk7CiAgICAkdHBsLT5hc3NpZ24oJ3Byb21wdF9wYXNzd29yZCcsICR0aGlzLT5MYW5nKCdwcm9tcHRfcGFzc3dvcmQnKSk7CiAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Nvb2tpZW5hbWUnKSAmJiBmdW5jdGlvbl9leGlzdHMoJ21jcnlwdF9tb2R1bGVfb3BlbicpICkgewogICAgICAgICR0cGwtPmFzc2lnbigncHJvbXB0X3JlbWVtYmVybWUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfcmVtZW1iZXJtZScpKTsgLy8gY2FuIGdldCByaWQgb2YgdGhpcyB0b28KICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZsZG5hbWVfcmVtZW1iZXJtZScsJGlkLidmZXVfcmVtZW1iZXJtZScpOwogICAgfQoKICAgICRwaWQgPSAkcmV0dXJuaWQ7CiAgICBpZiggKCR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFnZWlkZm9yZ290cGFzc3dkJykpICkgewogICAgICAgICR0bXAgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3BhZ2VpZGZvcmdvdHBhc3N3ZCcpKTsKICAgICAgICBpZiggJHRtcCApICRwaWQgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdG1wLCRyZXR1cm5pZCk7CiAgICB9CiAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1cHBvcnRfbG9zdHB3JykgKSAkdHBsLT5hc3NpZ24oJ3VybF9mb3Jnb3QnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZm9yZ290cHcnLCRwaWQpKTsKICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc3VwcG9ydF9sb3N0dW4nKSApICR0cGwtPmFzc2lnbigndXJsX2xvc3R1bicsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdsb3N0dXNlcm5hbWUnLCRwaWQpKTsKCiAgICBpZiggJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfQUxUTE9HSU4pICkgJHRwbC0+YXNzaWduKCdhbHRfbG9naW5mb3JtJywkY29uc3VtZXItPmdldF9sb2dpbl9kaXNwbGF5KCRpZCwkcmV0dXJuaWQsJHBhcmFtcykpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgLy8gZmF0YWwgZXhjZXB0aW9ucyB3ZSBjYW4gZG8gbm90aGluZyB3aXRob3V0LgogICAgZWNobyAkdGhpcy0+X0Rpc3BsYXlFcnJvck1lc3NhZ2UoJGUtPkdldE1lc3NhZ2UoKSk7Cn0KLy8gRU9GCg==]]></data>
	</file>
	<file>
	  <filename>/action.logout.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR1c2VybmFtZSA9ICR0aGlzLT5Mb2dnZWRJbk5hbWUoKTsKJHVpZCA9ICR0aGlzLT5Mb2dnZWRJbklkKCk7CiR0aGlzLT5Mb2dvdXQoKTsKCmF1ZGl0KCAnJywgJHRoaXMtPkdldE5hbWUsICIkdXNlcm5hbWUgbG9nZ2VkIG91dCIpOwoKJHBhcm1zID0gYXJyYXkoKTsKJHBhcm1zWyd1c2VybmFtZSddID0gJHVzZXJuYW1lOwokcGFybXNbJ2lkJ10gPSAkdWlkOwokdGhpcy0+X1NlbmROb3RpZmljYXRpb25FbWFpbCgnT25Mb2dvdXQnLCRwYXJtcyk7CgovLyB3ZSdyZSBsb2dnZWQgb3V0Ci8vIHJlZGlyZWN0IHNvbWV3aGVyZQppZiggKCRyZXR1cm50byA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncmV0dXJudG8nKSkgKSB7CiAgICAkcGFnZWlkID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHJldHVybnRvKTsKICAgIGlmKCAkcGFnZWlkICkgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkcGFnZWlkKTsKfQppZiggKCR1cmwgPSAkdGhpcy0+R2V0UG9zdExvZ2luVVJMKCkpICkgewogICAgcmVkaXJlY3QoJHVybCk7Cn0KZWxzZSBpZiggKCR0cGxzdHIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFnZWlkX2xvZ291dCcpKSApIHsKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ3N0cmluZzonLiR0cGxzdHIpOwogICAgJGdyb3VwcyA9ICR0aGlzLT5HZXRNZW1iZXJHcm91cHNBcnJheSggJHVpZCApOwogICAgJGdyb3VwbmFtZSA9ICR0aGlzLT5HZXRHcm91cE5hbWUoICRncm91cHNbMF1bJ2dyb3VwaWQnXSApOwogICAgJHRwbC0+YXNzaWduKCd1c2VybmFtZScsJHVzZXJuYW1lKTsKICAgICR0cGwtPmFzc2lnbignZ3JvdXAnLCRncm91cG5hbWUpOwogICAgJHRtcCA9ICR0cGwtPmZldGNoKCk7CiAgICBpZiggJHRtcCApIHsKICAgICAgICAkcGFnZWlkID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHRtcCk7CiAgICAgICAgaWYoICRwYWdlaWQgKSAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRwYWdlaWQpOwogICAgfQp9Ci8vIGFsbCBlbHNlIGZhaWxzLCByZWRpcmVjdCBiYWNrIHRvIG91ciBjdXJyZW4gcGFnZS4KJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkcmV0dXJuaWQpOw==]]></data>
	</file>
	<file>
	  <filename>/action.logoutform.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJGNvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwppZiggJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eShmZXVfYXV0aF9jb25zdW1lcjo6Q0FQQUJJTElUWV9MT0dPVVQpICkgewogIC8vIHRoZSBjb25zdW1lciBwcm92aWRlcyB0aGUgbG9naW4gY2FwYWJpbGl0aWVzCiAgZWNobyAkY29uc3VtZXItPmdldF9sb2dvdXRfZGlzcGxheSgkaWQsJHJldHVybmlkLCRwYXJhbXMpOwogIHJldHVybjsKfQoKdHJ5IHsKLy8gZG8gdGhlIGRlZmF1bHQKICAgICR1aWQgPSAkdGhpcy0+TG9nZ2VkSW5JZCgpOwogICAgaWYoICEkdWlkICkgcmV0dXJuOyAvLyBub3RoaW5nIHRvIGRvLCB1c2VyIGlzIG5vdCBsb2dnZWQgaW4uCgogICAgJHJldHVybnRvID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdyZXR1cm50bycpOyAvLyB0ZXN0IG1lLgogICAgJHVzZXJuYW1lID0gJHRoaXMtPkxvZ2dlZEluTmFtZSgpOwogICAgJHRoZXRlbXBsYXRlID0gXGZldV91dGlsczo6Z2V0X3RlbXBsYXRlKCRwYXJhbXMsJ2xvZ291dHRlbXBsYXRlJywnRnJvbnRFbmRVc2Vyczo6bG9nb3V0IGZvcm0nKTsKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKICAgIC8vIHJlcGxhY2UgeyRncm91cG5hbWV9IHdpdGggdGhlIGZpcnN0IGdyb3VwbmFtZSB3ZSBjYW4gZmluZCB0aGF0IG1hdGNoZXMKICAgICRncm91cHMgPSAkdGhpcy0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoICR1aWQgKTsKICAgICRncm91cG5hbWUgPSAkdGhpcy0+R2V0R3JvdXBOYW1lKCAkZ3JvdXBzWzBdWydncm91cGlkJ10gKTsKICAgICR0cGwtPmFzc2lnbigncHJvbXB0X2xvZ2dlZGluJywgJHRoaXMtPkxhbmcoJ21zZ19jdXJyZW50bHlsb2dnZWRpbmFzJykpOyAvLyBjYW4gZ2V0IHJpZCBvZiB0aGlzLgogICAgJHRwbC0+YXNzaWduKCd1c2VyaWQnLCAkdWlkKTsKICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCAkdXNlcm5hbWUpOwogICAgJG1zZyA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbWVzc2FnZScpOwogICAgaWYoICRtc2cgKSAkdHBsLT5hc3NpZ24oJ21lc3NhZ2UnLCRtc2cpOwoKICAgIC8vIHN0YXJ0IHVnbHkKICAgIC8vIHRvZG86IG5lZWQgc29tZSBtZWNoYW5pc20gdG8gdGVsbCAnd2hpY2gnIGF1dGhlbnRpY2F0aW9uIHdhcyB1c2VkLCBpZiBhbHQgYXV0aGVudGljYXRpb24gaXMgc3VwcG9ydGVkLgogICAgJGxvZ2dlZGluX3VzaW5nX3N0ZCA9IEZBTFNFOwogICAgJG1hbmlwID0gJHRoaXMtPkdldE1hbmlwdWxhdG9yKCk7CiAgICBpZiggJG1hbmlwLT5fc3RkX0xvZ2dlZEluSWQoKSApICRsb2dnZWRpbl91c2luZ19zdGQgPSBUUlVFOwogICAgLy8gZW5kIHVnbHkKCiAgICAkcGFybXMgPSBhcnJheSgpOwogICAgaWYoICRyZXR1cm50byApICRwYXJtc1sncmV0dXJudG8nXSA9ICRyZXR1cm50bzsKICAgICR1cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2xvZ291dCcsJHJldHVybmlkLCRwYXJtcyk7CiAgICAkdHBsLT5hc3NpZ24oJ3VybF9sb2dvdXQnLCR1cmwpOwoKICAgIC8vIHJlcGxhY2UgeyRncm91cG5hbWV9IHdpdGggdGhlIGZpcnN0IGdyb3VwbmFtZSB3ZSBjYW4gZmluZCB0aGF0IG1hdGNoZXMKICAgICRjc3BhZ2UgPSAkcmV0dXJuaWQ7CiAgICBpZiggKCR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFnZWlkX2NoYW5nZXNldHRpbmdzJykpICkgeyAgLy8gdGVzdCBtZQogICAgICAgICR0cGwyID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdzdHJpbmc6Jy4kdG1wLCR0bXApOwogICAgICAgICR0bXAgPSAkdHBsMi0+ZmV0Y2goKTsKICAgICAgICBpZiggJHRtcCApICRjc3BhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdG1wLCRyZXR1cm5pZCk7CiAgICB9CiAgICAkcGFybXMgPSBhcnJheSgnZm9ybSc9PidjaGFuZ2VzZXR0aW5ncycpOwogICAgaWYoICRyZXR1cm50byApICRwYXJtc1sncmV0dXJudG8nXSA9ICRyZXR1cm50bzsKICAgICR1cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCRjc3BhZ2UsJHBhcm1zKTsKICAgICR0cGwtPmFzc2lnbigndXJsX2NoYW5nZXNldHRpbmdzJywkdXJsKTsKICAgICRwcm9wcyA9ICR0aGlzLT5HZXRVc2VyUHJvcGVydGllcyggJHRoaXMtPkxvZ2dlZEluSWQoKSApOwogICAgaWYoICRwcm9wcyAhPT0gZmFsc2UgKSB7CiAgICAgICAgZm9yZWFjaCggJHByb3BzIGFzICRwICkgewogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJHBbJ3RpdGxlJ10sJHBbJ2RhdGEnXSk7CiAgICAgICAgfQogICAgfQoKICAgIGlmKCAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9BTFRMT0dJTikgKSB7CiAgICAgICAgLy8gdGhlIGNvbnN1bWVyIGhhcyBhbHRlcm5hdGUgbG9naW4gY2FwYWJpbGl0aWVzLi4uLgogICAgICAgICRyZXMgPSAkY29uc3VtZXItPmdldF9sb2dvdXRfZGlzcGxheSgkaWQsJHJldHVybmlkLCRwYXJhbXMpOwogICAgICAgICR0cGwtPmFzc2lnbignYWx0X2xvZ291dGZvcm0nLCRyZXMpOwogICAgfQoKICAgICR0cGwtPmRpc3BsYXkoKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIC8vIGZhdGFsIGVycm9yIHdlIGNhbm5vdCB3b3JrIGFyb3VuZC4KICAgIGVjaG8gJHRoaXMtPkRpc3BsYXlFcnJvck1lc3NhZ2UoJGUtPkdldE1lc3NhZ2UoKSk7Cn0KCiMKIyBFT0YKIw==]]></data>
	</file>
	<file>
	  <filename>/action.lostusername.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCnRyeSB7CiAgICBpZiggISR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdXBwb3J0X2xvc3R1bicpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignU29ycnksIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBkaXNhYmxlZCcpOwogICAgJG1lc3NhZ2UgPSBudWxsOwogICAgJHVzZXJuYW1lX2lzX2VtYWlsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJyk7CiAgICAkbm9jYXB0Y2hhID0gXGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnbm9jYXB0Y2hhJyk7CiAgICAkdGhldGVtcGxhdGUgPSBcZmV1X3V0aWxzOjpnZXRfdGVtcGxhdGUoJHBhcmFtcywnbG9zdHVudGVtcGxhdGUnLCdGcm9udEVuZFVzZXJzOjpsb3N0IHVzZXJuYW1lIGZvcm0nKTsKICAgICRyZXR1cm50byA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywncmV0dXJudG8nLCRyZXR1cm5pZCk7CgogICAgJGdpZCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmV1X2dpZCcsLTEpOwogICAgJGdpZCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbG9zdHVuX2dyb3VwJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9ncm91cCcsJGdpZCkpOwogICAgaWYoICFpc19udW1lcmljKCRnaWQpICkgewogICAgICAgICRnaWQgPSAkdGhpcy0+R2V0R3JvdXBJRCggJGdpZCApOwogICAgICAgIGlmKCAkZ2lkIDwgMSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZ3JvdXBub3Rmb3VuZCcpKTsKICAgIH0KICAgIGlmKCAkZ2lkIDw9IDAgKSB7CiAgICAgICAgLy8gbm8gZ2lkIHNwZWNpZmllZCBvciBmb3VuZCwgIGdldCB0aGUgZ2lkIG9mIHRoZSBmaXJzdCBncm91cC4KICAgICAgICAkZ3JvdXBzID0gJHRoaXMtPkdldEdyb3VwTGlzdCgpOwogICAgICAgIGlmKCAhY291bnQoJGdyb3VwcykgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ25vZ3JvdXBzJykpOwogICAgICAgICR2YWx1ZXMgPSBhcnJheV92YWx1ZXMoJGdyb3Vwcyk7CiAgICAgICAgJGdpZCA9ICR2YWx1ZXNbMF07CiAgICB9CgogICAgJHJlbG5zID0gJHRoaXMtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRnaWQgKTsKICAgIGlmKCAhaXNfYXJyYXkoICRyZWxucyApIHx8ICRyZWxuc1swXSA9PT0gRkFMU0UgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1Vua25vd24gRXJyb3InKTsKCiAgICAvLyBOb3c6IHdlIG5lZWQgdG8gZ2V0IHRoZSBwcm9wZXJ0aWVzIHRoYXQgbWF5IGJlIGZpbGxlZCBpbiBpbiB0aGlzIGdyb3VwLgogICAgLy8gYW5kIGRpc3BsYXkgdGhlbSBpbiB0aGUgZm9ybQogICAgLy8gd2UgZG8gdGhpcyBiZWZvcmUgaGFuZGxpbmcgc3VibWl0IHNvIHRoYXQgd2UgZG9uJ3QgbG9zZSBhcyBtdWNoIHVzZXIgZW50ZXJlZCBpbmZvcm1hdGlvbgogICAgLy8gaWYgdGhlcmUgaXMgYSBzaWxseSBlcnJvciBpbiBmb3JtIHN1Ym1pc3Npb24uCiAgICAkcm93YXJyYXkgPSBhcnJheSgpOwogICAgJGRlZm5zID0gJHRoaXMtPkdldFByb3BlcnR5RGVmbnMoKTsKICAgIGZvcmVhY2goICRyZWxucyBhcyAkb25lcmVsbiApIHsKICAgICAgICAvLyBpZiBpdCdzIG5vdCByZXF1aXJlZCBoZXJlLCBkb24ndCBkbyBhbnl0aGluZwogICAgICAgIGlmKCAkb25lcmVsblsncmVxdWlyZWQnXSA9PSAzIHx8ICRvbmVyZWxuWydyZXF1aXJlZCddID09IDQgKSB7CiAgICAgICAgICAgIC8vIGhpZGRlbiBvciByZWFkLW9ubHkgZmllbGRzIGFyZSBoaWRkZW4uCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgJGRlZm4gPSAkZGVmbnNbICRvbmVyZWxuWyduYW1lJ10gXTsKCiAgICAgICAgJG9uZXJvdyA9IG5ldyBTdGRDbGFzcygpOwogICAgICAgICRvbmVyb3ctPnJlcXVpcmVkID0gZmFsc2U7CiAgICAgICAgJG9uZXJvdy0+cHJvcG5hbWUgPSAkb25lcmVsblsnbmFtZSddOwogICAgICAgICRvbmVyb3ctPm5hbWUgPSAnZmV1X2lucHV0XycuJG9uZXJlbG5bJ25hbWUnXTsKICAgICAgICAkb25lcm93LT5mbGRuYW1lID0gJGlkLiRvbmVyb3ctPm5hbWU7CiAgICAgICAgJG9uZXJvdy0+dHlwZSA9ICRkZWZuWyd0eXBlJ107CiAgICAgICAgaWYoICRvbmVyb3ctPnR5cGUgPT0gOCApIHsKICAgICAgICAgICAgLy8gZGF0ZSBmaWVsZCB1c2VzIGh0bWxfc2VsZWN0X2RhdGUgd2hpY2ggcHJvdmlkZXMgdGhyZWUgaW5wdXQgZmllbGRzLgogICAgICAgICAgICAkX20gPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJG9uZXJvdy0+bmFtZS4nTW9udGgnKTsKICAgICAgICAgICAgJF9kID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCRvbmVyb3ctPm5hbWUuJ0RheScpOwogICAgICAgICAgICAkX3kgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJG9uZXJvdy0+bmFtZS4nWWVhcicpOwogICAgICAgICAgICBpZiggJF9tICYmICRfZCAmJiAkX3kgKSAkcGFyYW1zWyRvbmVyb3ctPm5hbWVdID0gbWt0aW1lKDAsMCwwLCRfbSwkX2QsJF95KTsKICAgICAgICB9CiAgICAgICAgJG9uZXJvdy0+dmFsID0gXGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJG9uZXJvdy0+bmFtZSk7IC8vIGRvIG5vdCB1c2UgY2dlX3BhcmFtIGJlY2F1c2UgaW5wdXQgbWF5IGJlIGFuIGFycmF5CiAgICAgICAgJG9uZXJvdy0+bGVuZ3RoID0gJGRlZm5bJ2xlbmd0aCddOwogICAgICAgICRvbmVyb3ctPm1heGxlbmd0aCA9ICRkZWZuWydtYXhsZW5ndGgnXTsKICAgICAgICAkb25lcm93LT5wcm9tcHQgPSAkZGVmblsncHJvbXB0J107CgogICAgICAgIHN3aXRjaCggJGRlZm5bJ3R5cGUnXSApIHsKICAgICAgICBjYXNlIDQ6IC8vIGRyb3Bkb3duCiAgICAgICAgY2FzZSA1OiAvLyBtdWx0aXNlbGVjdAogICAgICAgIGNhc2UgNzogLy8gcmFkaW9idG5zCiAgICAgICAgICAgICRvbmVyb3ctPm9wdGlvbnMgPSBhcnJheV9mbGlwKCR0aGlzLT5HZXRTZWxlY3RPcHRpb25zKCRkZWZuWyduYW1lJ10pKTsKICAgICAgICAgICAgJG9uZXJvdy0+bGVuZ3RoID0gNTsKICAgICAgICAgICAgaWYoIGNvdW50KCRvbmVyb3ctPm9wdGlvbnMpID4gMjAgKSAkb25lcm93LT5sZW5ndGggPSAxMDsKICAgICAgICAgICAgJG9uZXJvdy0+bGVuZ3RoID0gbWluKGNvdW50KCRvbmVyb3ctPm9wdGlvbnMpLCRvbmVyb3ctPmxlbmd0aCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDg6IC8vIGRhdGUKICAgICAgICAgICAgJG9uZXJvdy0+c3RhcnRfeWVhciA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJGRlZm5bJ2V4dHJhJ10sJ3N0YXJ0eWVhcicsJy0xMCcpOwogICAgICAgICAgICAkb25lcm93LT5lbmRfeWVhciA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJGRlZm5bJ2V4dHJhJ10sJ2VuZHllYXInLCcrNScpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA2OiAvLyBpbWFnZQogICAgICAgICAgICAvLyB0aGlzIGlzbid0IGFsbG93ZWQKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgJHJvd2FycmF5WyRvbmVyb3ctPnByb3BuYW1lXSA9ICRvbmVyb3c7CiAgICB9CiAgICBpZiggIWNvdW50KCRyb3dhcnJheSkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2xvc3R1bl9ub2NvbnRyb2xzJykpOwoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydmZXVfY2FuY2VsJ10pICkgewogICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybnRvKTsKICAgIH0KICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2ZldV9zdWJtaXQnXSkgKSB7CiAgICAgICAgLy8KICAgICAgICAvLyBoYW5kbGUgZm9ybSBzdWJtaXQKICAgICAgICAvLwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIC8vIGJ5IHRoaXMgcG9pbnQgb3VyIHZhbHVlcyBzaG91bGQgYmUgdXB0b2RhdGUgaW4gdGhlICRyb3dhcnJheQoKICAgICAgICAgICAgLy8gY2hlY2sgb3VyIGhvbmV5cG90CiAgICAgICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydmZXVfX2RhdGEnXSkgKSB7CiAgICAgICAgICAgICAgICAkdG1wID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmZXVfX2RhdGEnKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl95b3VhcmVhYm90JykpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBjaGVjayB0aGUgY2FwdGNoYQogICAgICAgICAgICBpZiggISRub2NhcHRjaGEgKSB7CiAgICAgICAgICAgICAgICAkY2FwdGNoYSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NhcHRjaGEnKTsKICAgICAgICAgICAgICAgIGlmKCBpc19vYmplY3QoJGNhcHRjaGEpICYmICEkY2FwdGNoYS0+Q2hlY2tDYXB0Y2hhKCRwYXJhbXNbJ2ZldV9pbnB1dF9jYXB0Y2hhJ10pICkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfY2FwdGNoYW1pc21hdGNoJykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBjaGVjayBhbnkgcmVxdWlyZWQgZmllbGRzCiAgICAgICAgICAgIGZvcmVhY2goICRyb3dhcnJheSBhcyAka2V5ID0+ICRyZWMgKSB7CiAgICAgICAgICAgICAgICBpZiggJHJlYy0+cmVxdWlyZWQgJiYgISRyZWMtPnZhbCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcmVxdWlyZWRmaWVsZCcsJHJlYy0+cHJvbXB0KSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgIC8vIHJlYWR5IHRvIGRvIHJlYWwgd29yawogICAgICAgICAgICAvLyB3ZSBpdGVyYXRlIHRocm91Z2ggdGhlIGZpZWxkcyAoZXhjZXB0IHBhc3N3b3JkKSBhbmQgYnVpbGQgYW4gZmV1IHF1ZXJ5CiAgICAgICAgICAgIC8vIGFuZCBob3BlIHRoYXQgd2Ugb25seSBmaW5kIG9uZSByZXN1bHQuCiAgICAgICAgICAgIC8vIGlmIHdlIGZpbmQgb25lIHJlc3VsdC4uLiB3ZSBjYW4gZGlzcGxheSBzb21lIGluZm9ybWF0aW9uIHRvIHRoZSBndXkuCiAgICAgICAgICAgIC8vCiAgICAgICAgICAgICRzcWwgPSAnU0VMRUNUIERJU1RJTkNUIFUuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyBVICc7CiAgICAgICAgICAgICRuX2NvbmRzID0gMDsKICAgICAgICAgICAgJHdoZXJlID0gJGpvaW5zID0gJHBhcm1zID0gYXJyYXkoKTsKCiAgICAgICAgICAgIGZvcmVhY2goICRyb3dhcnJheSBhcyAka2V5ID0+ICRyZWMgKSB7CiAgICAgICAgICAgICAgICBpZiggISRyZWMtPnZhbCApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoICRrZXkgPT0gJ19wYXNzd29yZCcgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlmKCAka2V5ID09ICdfZW1haWwnICkgY29udGludWU7CgogICAgICAgICAgICAgICAgc3dpdGNoKCAkcmVjLT50eXBlICkgewogICAgICAgICAgICAgICAgY2FzZSAwOiAvLyB0ZXh0CiAgICAgICAgICAgICAgICBjYXNlIDI6IC8vIGVtYWlsCiAgICAgICAgICAgICAgICBjYXNlIDM6IC8vIHRleHRhcmVhCiAgICAgICAgICAgICAgICAgICAgaWYoIHN0cmxlbigkcmVjLT52YWwpID4gMyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGFsaWFzID0gIlB7JG5fY29uZHN9IjsgJG5fY29uZHMrKzsKICAgICAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzICRhbGlhcyBPTiBVLmlkID0geyRhbGlhc30udXNlcmlkIEFORCB7JGFsaWFzfS50aXRsZSA9ICd7JHJlYy0+cHJvcG5hbWV9JyI7CiAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gInskYWxpYXN9LmRhdGEgTElLRSA/IjsKICAgICAgICAgICAgICAgICAgICAgICAgJHBhcm1zW10gPSAnJScuJHJlYy0+dmFsLiclJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAxOiAvLyBjaGVja2JveAogICAgICAgICAgICAgICAgICAgICRhbGlhcyA9ICJQeyRuX2NvbmRzfSI7ICRuX2NvbmRzKys7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzICRhbGlhcyBPTiBVLmlkID0geyRhbGlhc30udXNlcmlkIEFORCB7JGFsaWFzfS50aXRsZSA9ICd7JHJlYy0+cHJvcG5hbWV9JyI7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAieyRhbGlhc30uZGF0YSA9ID8iOwogICAgICAgICAgICAgICAgICAgICRwYXJtc1tdID0gMTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIDQ6IC8vIGRyb3Bkb3duCiAgICAgICAgICAgICAgICBjYXNlIDc6IC8vIHJhZGlvYnRucwogICAgICAgICAgICAgICAgICAgICRhbGlhcyA9ICJQeyRuX2NvbmRzfSI7ICRuX2NvbmRzKys7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzICRhbGlhcyBPTiBVLmlkID0geyRhbGlhc30udXNlcmlkIEFORCB7JGFsaWFzfS50aXRsZSA9ICd7JHJlYy0+cHJvcG5hbWV9JyI7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAieyRhbGlhc30uZGF0YSA9ID8iOwogICAgICAgICAgICAgICAgICAgICRwYXJtc1tdID0gJHJlYy0+dmFsOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgNDogLy8gbXVsdGlzZWxlY3QKICAgICAgICAgICAgICAgICAgICAvLyBtdWx0aXNlbGVjdCBpcyBhIGRpZmZlcmVudCBjYXNlLi4uIHdlIG5lZWQgdG8gYnVpbGQgYW4gT1IgcmVsYXRpb25zaGlwIHNvIHRoYXQgYW55IG9mIHRoZSBzZWxlY3RlZCBpdGVtcyBtYXRjaC4KICAgICAgICAgICAgICAgICAgICAkYWxpYXMgPSAiUHskbl9jb25kc30iOyAkbl9jb25kcysrOwogICAgICAgICAgICAgICAgICAgICRqb2luc1tdID0gJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyAkYWxpYXMgT04gVS5pZCA9IHskYWxpYXN9LnVzZXJpZCBBTkQgeyRhbGlhc30udGl0bGUgPSAneyRyZWMtPnByb3BuYW1lfSciOwogICAgICAgICAgICAgICAgICAgICR0X3ZhbCA9ICRyZWMtPnZhbDsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzX2FycmF5KCR0X3ZhbCkgKSAkdF92YWwgPSBhcnJheSgkdF92YWwpOwogICAgICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkdF92YWwpID09IDEgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gInskYWxpYXN9LmRhdGEgPSA/IjsKICAgICAgICAgICAgICAgICAgICAgICAgJHBhcm1zW10gPSAkdF92YWw7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkc3RyID0gJyUnLmltcGxvZGUoJyUnLCR0X3ZhbCkuJyUnOwogICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICJ7JGFsaWFzfS5kYXRhIExJS0UgPyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgODogLy8gZGF0ZQogICAgICAgICAgICAgICAgICAgICRhbGlhcyA9ICJQeyRuX2NvbmRzfSI7ICRuX2NvbmRzKys7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzICRhbGlhcyBPTiBVLmlkID0geyRhbGlhc30udXNlcmlkIEFORCB7JGFsaWFzfS50aXRsZSA9ICd7JHJlYy0+cHJvcG5hbWV9JyI7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAieyRhbGlhc30uZGF0YSA9ID8iOwogICAgICAgICAgICAgICAgICAgICRwYXJtc1tdID0gJHJlYy0+dmFsOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGVyZSBpcyBhdCBsZWFzdCBzb21lIGluZm9ybWF0aW9uCiAgICAgICAgICAgIGlmKCAkbl9jb25kcyA9PSAwICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9sb3N0dW5fbm9kYXRhJykpOwoKICAgICAgICAgICAgLy8gYnVpbGQgdGhlIHF1ZXJ5CiAgICAgICAgICAgICRzcWwgLj0gaW1wbG9kZSgnICcsJGpvaW5zKTsKICAgICAgICAgICAgJHNxbCAuPSAnIFdIRVJFICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZSk7CiAgICAgICAgICAgICRzcWwgLj0gJyBMSU1JVCAyJzsKICAgICAgICAgICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHNxbCwkcGFybXMpOwogICAgICAgICAgICBpZiggY291bnQoJHRtcCkgPiAxICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3VuaXF1ZW1hdGNoJykpOwogICAgICAgICAgICBpZiggIWNvdW50KCR0bXApICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9sb3N0dW5fdXNlcm5vdGZvdW5kJykpOwogICAgICAgICAgICAkdWluZm8gPSAkdG1wWzBdOwogICAgICAgICAgICAkdXNlcm5hbWUgPSAkdWluZm9bJ3VzZXJuYW1lJ107CgogICAgICAgICAgICAkdGhpcy0+YWRkX2hpc3RvcnkoJHVpbmZvWydpZCddLCdnZXR1c2VybmFtZScpOwoKICAgICAgICAgICAgLy8gYW5kIGRpc3BsYXkgc29tZXRoaW5nCiAgICAgICAgICAgICR0aGV0ZW1wbGF0ZTIgPSBcZmV1X3V0aWxzOjpnZXRfdGVtcGxhdGUoJHBhcmFtcywnbG9zdHVuY29uZmlybXRlbXBsYXRlJywnRnJvbnRFbmRVc2Vyczo6bG9zdCB1c2VybmFtZSBjb25maXJtJyk7CiAgICAgICAgICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlMik7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCR1c2VybmFtZSk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbigncHJvbXB0X3lvdXJ1c2VybmFtZWlzJywkdGhpcy0+TGFuZygneW91cl91c2VybmFtZV9pcycpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdwcmVtc2cnLCR0aGlzLT5MYW5nKCdsb3N0dW5jb25maXJtX3ByZW1zZycpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdwb3N0bXNnJywkdGhpcy0+TGFuZygnbG9zdHVuY29uZmlybV9wb3N0bXNnJykpOwogICAgICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRtZXNzYWdlID0gJGUtPkdldE1lc3NhZ2UoKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gc3RhcnQgZ2l2aW5nIHN0dWZmIHRvIHNtYXJ0eS4KICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKICAgICRwYXJtcyA9IGFycmF5KCdmZXVfZ2lkJz0+JGdpZCk7CiAgICAkcGFybXNbJ25vY2FwdGNoYSddID0gJG5vY2FwdGNoYTsKICAgICRwYXJtc1sncmV0dXJudG8nXSA9ICRyZXR1cm50bzsKICAgICRwYXJtc1snZmV1X2xvc3R1bnRlbXBsYXRlJ10gPSAkdGhldGVtcGxhdGU7CiAgICAkdHBsLT5hc3NpZ24oJ3N0YXJ0Zm9ybScsICR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2xvc3R1c2VybmFtZScsJHJldHVybmlkLCRwYXJtcykpOwogICAgJHRwbC0+YXNzaWduKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ3VzZXJuYW1lX2lzX2VtYWlsJywkdXNlcm5hbWVfaXNfZW1haWwpOwogICAgJHRwbC0+YXNzaWduKCd1bmZsZGxlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lZmxkbGVuZ3RoJykpOwogICAgJHRwbC0+YXNzaWduKCdtYXhfdW5mbGRsZW4nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKCiAgICBpZiggISRub2NhcHRjaGEgKSB7CiAgICAgICAgJGNhcHRjaGEgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKICAgICAgICBpZiggaXNfb2JqZWN0KCRjYXB0Y2hhKSApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdjYXB0Y2hhJywgJGNhcHRjaGEtPmdldENhcHRjaGEoKSk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignY2FwdGNoYV90aXRsZScsICR0aGlzLT5MYW5nKCdjYXB0Y2hhX3RpdGxlJykpOwogICAgICAgICAgICAkdGVzdCA9IG1ldGhvZF9leGlzdHMoJGNhcHRjaGEsICdOZWVkc0lucHV0RmllbGQnKSA/ICRjYXB0Y2hhLT5OZWVkc0lucHV0RmllbGQoKSA6IHRydWU7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignbmVlZF9jYXB0Y2hhX2lucHV0JywkdGVzdCk7CiAgICAgICAgfQogICAgfQoKICAgICR0cGwtPmFzc2lnbignY29udHJvbHMnLCAkcm93YXJyYXkpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgLy8gZmF0YWwgZXJyb3IgdGhhdCB3ZSBjYW50IHdvcmsgYXJvdW5kLgogICAgZWNobyAkdGhpcy0+RGlzcGxheUVycm9yTWVzc2FnZSgkZS0+R2V0TWVzc2FnZSgpKTsKfQoKLy8gRU9GCg==]]></data>
	</file>
	<file>
	  <filename>/action.reset_session.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwokdWlkID0gJHRoaXMtPkxvZ2dlZEluSWQoKTsKaWYoICR1aWQgPT09IGZhbHNlICkgcmV0dXJuOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2ZldV9jaGVja29ubHknXSkgJiYgJHBhcmFtc1snZmV1X2NoZWNrb25seSddID09IDEgKSB7CiAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ2ZldV91aWQnXSkgKSByZXR1cm47CiAgICAvLyBub3RoaW5nIHRvIGRvIGhlcmUuCn0KZWxzZSB7CiAgICAkdGhldGVtcGxhdGUgPSBcZmV1X3V0aWxzOjpnZXRfdGVtcGxhdGUoJHBhcmFtcywncmVzZXRzZXNzaW9udGVtcGxhdGUnLCdGcm9udEVuZFVzZXJzOjpyZXNldCBzZXNzaW9uJyk7CiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CiAgICAkcHJldHR5dXJsID0gImZldS9yZXNldC97JHVpZH0iOwogICAgJHRwbC0+YXNzaWduKCdzZXNzaW9uX3RpbWVvdXQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VyX3Nlc3Npb25fZXhwaXJlcycpKTsKICAgICR0cGwtPmFzc2lnbigncmVzZXRfdXJsJywKICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3Jlc2V0X3Nlc3Npb24nLCRyZXR1cm5pZCwnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnZmV1X3VpZCc9PiR1aWQsJ2ZldV9jaGVja29ubHknPT4xLCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJyx0cnVlLGZhbHNlLCcnLGZhbHNlLCRwcmV0dHl1cmwpKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKfQoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.silent.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNSBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJHVpZCA9ICR0aGlzLT5Mb2dnZWRJbklkKCk7CmlmKCAkdWlkIDwgMSApIHJldHVybjsKCi8vIHJlcGxhY2UgeyRncm91cG5hbWV9IHdpdGggdGhlIGZpcnN0IGdyb3VwbmFtZSB3ZSBjYW4gZmluZCB0aGF0IG1hdGNoZXMKJGdyb3VwcyA9ICR0aGlzLT5HZXRNZW1iZXJHcm91cHNBcnJheSggJHVpZCApOwokZ3JvdXBuYW1lcyA9IGFycmF5KCk7CmZvcmVhY2goICRncm91cHMgYXMgJG9uZSApIHsKICAgICRncm91cG5hbWVzW10gPSAkdGhpcy0+R2V0R3JvdXBOYW1lKCAkb25lWydncm91cGlkJ10gKTsKfQoKJGZldV9kYXRhID0gYXJyYXkoKTsKJGZldV9kYXRhWyd1c2VyaWQnXSA9ICR1aWQ7CiRmZXVfZGF0YVsndXNlcm5hbWUnXSA9ICR0aGlzLT5Mb2dnZWRJbk5hbWUoKTsKJGZldV9kYXRhWydtZW1iZXJfZ3JvdXBzJ10gPSAkZ3JvdXBuYW1lczsKJGZldV9kYXRhWyd1cmxfbG9nb3V0J10gPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2xvZ291dCcsJHJldHVybmlkKTsKCiRwYWdlaWQgPSAkcmV0dXJuaWQ7CmlmKCAoJHRtcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWdlaWRfY2hhbmdlc2V0dGluZycpKSApIHsKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ3N0cmluZzonLiR0bXApOwogICAgJHRwbC0+YXNzaWduKCdncm91cCcsJGdyb3VwbmFtZSk7CiAgICAkdHBsLT5hc3NpZ24oJ2dyb3VwaWQnLCRncm91cHNbMF1bJ2dyb3VwaWQnXSk7CiAgICAkdHBsLT5hc3NpZ24oJ3VzZXJuYW1lJywkdXNlcm5hbWUpOwogICAgJHRwbC0+YXNzaWduKCd1aWQnLCR1aWQpOwogICAgJHRtcCA9ICR0cGwtPmZldGNoKCk7CiAgICBpZiggJHRtcCApICRwYWdlaWQgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdG1wLCRyZXR1cm5pZCk7Cn0KJGZldV9kYXRhWyd1cmxfY2hhbmdlc2V0dGluZ3MnXSA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHBhZ2VpZCxhcnJheSgnZm9ybSc9PidjaGFuZ2VzZXR0aW5ncycpKTsKCiRwcm9wcyA9ICR0aGlzLT5HZXRVc2VyUHJvcGVydGllcyggJHVpZCApOwpmb3JlYWNoKCAkcHJvcHMgYXMgJHAgKSB7CiAgICAkZmV1X2RhdGFbJHBbJ3RpdGxlJ11dID0gJHBbJ2RhdGEnXTsKfQoKJHNtYXJ0eS0+YXNzaWduKCdmZXVfZGF0YScsJGZldV9kYXRhKTsKJHNtYXJ0eS0+YXNzaWduR2xvYmFsKCdmZXVfZGF0YScsJGZldV9kYXRhKTsK]]></data>
	</file>
	<file>
	  <filename>/action.userhistory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJ2xpc3R1c2VycycgKSApIHJldHVybjsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCd1c2VyaGlzdG9yeScpOwokdXNlcmlkID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCd1c2VyX2lkJyk7CiRwYWdlbGltaXRzID0gYXJyYXkoKTsKJHBhZ2VsaW1pdHNbJzUnXSA9IDU7CiRwYWdlbGltaXRzWycxMCddID0gMTA7CiRwYWdlbGltaXRzWycyNSddID0gMjU7CiRwYWdlbGltaXRzWyc1MCddID0gNTA7CiRwYWdlbGltaXRzWycxMDAnXSA9IDEwMDsKJHBhZ2VsaW1pdHNbJzI1MCddID0gMjUwOwokcGFnZWxpbWl0c1snNTAwJ10gPSA1MDA7CgokZGF0ZWxpc3QgPSBhcnJheSgpOwokZGF0ZWxpc3RbJHRoaXMtPkxhbmcoJ2RhdGVfYWxscmVjb3JkcycpXSA9IC0xOwokZGF0ZWxpc3RbJHRoaXMtPkxhbmcoJ2RhdGVfb25laG91cm9sZCcpXSA9ICcxaCc7CiRkYXRlbGlzdFskdGhpcy0+TGFuZygnZGF0ZV9zaXhob3Vyb2xkJyldID0gJzZoJzsKJGRhdGVsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX3R3ZWx2ZWhvdXJvbGQnKV0gPSAnMTJoJzsKJGRhdGVsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX29uZWRheW9sZCcpXSA9ICcxZCc7CiRkYXRlbGlzdFskdGhpcy0+TGFuZygnZGF0ZV9vbmV3ZWVrb2xkJyldID0gJzF3JzsKJGRhdGVsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX3R3b3dlZWtzb2xkJyldID0gJzJ3JzsKJGRhdGVsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX29uZW1vbnRob2xkJyldID0gJzFtJzsKJGRhdGVsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX3RocmVlbW9udGhzb2xkJyldID0gJzNtJzsKJGRhdGVsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX3NpeG1vbnRoc29sZCcpXSA9ICc2bSc7CiRkYXRlbGlzdFskdGhpcy0+TGFuZygnZGF0ZV9vbmV5ZWFyb2xkJyldID0gJzF5JzsKCiRzb3J0b3JkZXJzID0gYXJyYXkoKTsKJHNvcnRvcmRlcnNbJHRoaXMtPkxhbmcoJ3NvcnRvcmRlcl9kYXRlX2Rlc2MnKV0gPSAncmVmZGF0ZSBERVNDJzsKJHNvcnRvcmRlcnNbJHRoaXMtPkxhbmcoJ3NvcnRvcmRlcl9kYXRlX2FzYycpXSA9ICdyZWZkYXRlIEFTQyc7CiRzb3J0b3JkZXJzWyR0aGlzLT5MYW5nKCdzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnKV0gPSAnYWN0aW9uIERFU0MnOwokc29ydG9yZGVyc1skdGhpcy0+TGFuZygnc29ydG9yZGVyX2FjdGlvbl9hc2MnKV0gPSAnYWN0aW9uIEFTQyc7CiRzb3J0b3JkZXJzWyR0aGlzLT5MYW5nKCdzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnKV0gPSAnaXBhZGRyZXNzIERFU0MnOwokc29ydG9yZGVyc1skdGhpcy0+TGFuZygnc29ydG9yZGVyX2lwYWRkcmVzc19hc2MnKV0gPSAnaXBhZGRyZXNzIEFTQyc7CmlmKCAkdXNlcmlkID09ICcnICkgewogICAgJHNvcnRvcmRlcnNbJHRoaXMtPkxhbmcoJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJyldID0gJ3VzZXJuYW1lIERFU0MnOwogICAgJHNvcnRvcmRlcnNbJHRoaXMtPkxhbmcoJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnKV0gPSAndXNlcm5hbWUgQVNDJzsKfQoKJGV2ZW50dHlwZXMgPSBhcnJheSgpOwokZXZlbnR0eXBlc1snYWxsJ10gPSAnYWxsJzsKJGV2ZW50dHlwZXNbJ2ZhaWwnXSA9ICdmYWlsJzsKJGV2ZW50dHlwZXNbJ2xvZ2luJ10gPSAnbG9naW4nOwokZXZlbnR0eXBlc1snbG9nb3V0J10gPSAnbG9nb3V0JzsKJGV2ZW50dHlwZXNbJ2V4cGlyZSddID0gJ2V4cGlyZSc7CiRldmVudHR5cGVzWydyZXNldHB3J10gPSAncmVzZXRwdyc7CiRldmVudHR5cGVzWydnZXR1c2VybmFtZSddID0gJ2dldHVzZXJuYW1lJzsKJGV2ZW50dHlwZXNbJ2ZvcmdvdHB3J10gPSAnZm9yZ290cHcnOwokZXZlbnR0eXBlc1snaW5pdF92ZXJpZnknXSA9ICdpbml0X3ZlcmlmeSc7CiRldmVudHR5cGVzWyd2ZXJpZnkgY29tcGxldGUnXSA9ICd2ZXJpZnkgY29tcGxldGUnOwokZXZlbnR0eXBlc1snYWRtaW4gYWRkIHVzZXInXSA9ICdhZG1pbiBhZGQgdXNlcic7CiRldmVudHR5cGVzWydhZG1pbiBjaGFuZ2Ugc2V0dGluZ3MnXSA9ICdhZG1pbiBjaGFuZ2Ugc2V0dGluZ3MnOwppZiggaXNzZXQoICRwYXJhbXNbJ3N1Ym1pdHVzZXJoaXN0b3J5J10gKSApIHsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfcGFnZWxpbWl0J10gKSApICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VyaGlzdG9yeV9wYWdlbGltaXQnLCRwYXJhbXNbJ2lucHV0X3BhZ2VsaW1pdCddKTsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfc29ydG9yZGVyJ10gKSApICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VyaGlzdG9yeV9zb3J0b3JkZXInLCRwYXJhbXNbJ2lucHV0X3NvcnRvcmRlciddKTsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfZXZlbnR0eXBlJ10gKSApICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VyaGlzdG9yeV9ldmVudHR5cGUnLCRwYXJhbXNbJ2lucHV0X2V2ZW50dHlwZSddKTsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfZmlsdGVyX2RhdGUnXSApICkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X2RhdGUnLCRwYXJhbXNbJ2lucHV0X2ZpbHRlcl9kYXRlJ10pOwogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9ncm91cF9pcCddICkgKSAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X2dyb3VwX2lwJywkcGFyYW1zWydpbnB1dF9ncm91cF9pcCddKTsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfdXNlcm5hbWVfcmVnZXgnXSApICkgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X3VzZXJuYW1lX3JlZ2V4JywkcGFyYW1zWydpbnB1dF91c2VybmFtZV9yZWdleCddKTsKICAgIGlmKCAhJHVzZXJpZCApICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwndXNlcmhpc3RvcnknKTsKfQplbHNlIGlmKCBpc3NldCggJHBhcmFtc1sncmVzZXQnXSApICkgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X3BhZ2VsaW1pdCcsMTApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X2V2ZW50dHlwZScsJ2FsbCcpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X2RhdGUnLCctMScpOyAvLyB0b2RvCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlcmhpc3RvcnlfZ3JvdXBfaXAnLDApOyAvLyB0b2RvCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlcmhpc3Rvcnlfc29ydG9yZGVyJywncmVmZGF0ZSBERVNDJyk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlcmhpc3RvcnlfdXNlcm5hbWVfcmVnZXgnLCcnKTsKICAgIGlmKCAhJHVzZXJpZCApICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCwndXNlcmhpc3RvcnknKTsKfQoKJGlucHV0X3BhZ2VsaW1pdCA9IChpbnQpJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X3BhZ2VsaW1pdCcsMTApOwokaW5wdXRfc29ydG9yZGVyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X3NvcnRvcmRlcicsJ3JlZmRhdGUgREVTQycpOwokaW5wdXRfZXZlbnR0eXBlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJoaXN0b3J5X2V2ZW50dHlwZScsJ2FsbCcpOwokaW5wdXRfZmlsdGVyX2RhdGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlcmhpc3RvcnlfZGF0ZScsJy0xJyk7CiRpbnB1dF9ncm91cF9pcCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VyaGlzdG9yeV9ncm91cF9pcCcsMCk7CiRpbnB1dF91c2VybmFtZV9yZWdleCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VyaGlzdG9yeV91c2VybmFtZV9yZWdleCcpOwoKLy8gQWRkIHRoZSB1c2VyIGluZm8gdG8gc21hcnR5CmlmKCAkdXNlcmlkICE9ICcnICkgewogICAgJHRoaXMtPlNldEVuY3J5cHRpb25LZXkoJHVzZXJpZCk7CiAgICAkcmVzdWx0cyA9ICR0aGlzLT5HZXRVc2VySW5mbygkcGFyYW1zWyd1c2VyX2lkJ10pOwogICAgJHVzZXJpbmZvID0gJyc7CiAgICBpZiggJHJlc3VsdHNbMF0gPT09IFRSVUUgKSAkdXNlcmluZm8gPSAkcmVzdWx0c1sxXTsKICAgIGZvcmVhY2goICR1c2VyaW5mbyBhcyAkayA9PiAkdiApIHsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3VzZXJfJy4kaywkdik7CiAgICB9CiAgICAkcHJvcHMgPSAkdGhpcy0+R2V0VXNlclByb3BlcnRpZXMoJHBhcmFtc1sndXNlcl9pZCddKTsKICAgIGZvcmVhY2goICRwcm9wcyBhcyAkb25lcHJvcCApIHsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3VzZXJwcm9wXycuJG9uZXByb3BbJ3RpdGxlJ10sJG9uZXByb3BbJ2RhdGEnXSk7CiAgICB9Cn0KCi8vIGZpZ3VyZSBvdXQgd2hhdCBwYWdlIHdlJ3JlIG9uCiRwYWdlbnVtYmVyID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdwYWdlbnVtYmVyJywxKTsKJHN0YXJ0ZWxlbWVudCA9ICgkcGFnZW51bWJlci0xKSAqICRpbnB1dF9wYWdlbGltaXQ7CgovLwovLyBBZGQgdGhlIGhpc3RvcnkgdG8gc21hcnR5Ci8vCiR3aGVyZSA9IGFycmF5KCk7CiRwYXJtcyA9IGFycmF5KCk7CiRxdWVyeTEgPSAiU0VMRUNUIEEuKixCLnVzZXJuYW1lCiAgICAgICAgICAgICBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IEEsCiAgICAgICAgICAgICAgICAgICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc191c2VycyBCCiAgICAgICAgICAgIFdIRVJFIEEudXNlcmlkID0gQi5pZCI7CiRxdWVyeTIgPSAiU0VMRUNUIENPVU5UKEEudXNlcmlkKSBBUyBjb3VudAogICAgICAgICAgICAgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfaGlzdG9yeSBBLAogICAgICAgICAgICAgICAgICAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdXNlcnMgQgogICAgICAgICAgICBXSEVSRSBBLnVzZXJpZCA9IEIuaWQiOwppZiggJHVzZXJpZCA+IDEgKSB7CiAgICAkd2hlcmVbXSA9ICd1c2VyaWQgPSA/JzsKICAgICRwYXJtc1tdID0gJHVzZXJpZDsKfQplbHNlIHsKICAgIC8vIG9ubHkgdXNlIHRoZSB1c2VybmFtZSByZWdleCBpZiB0aGUgdXNlcmlkIGlzIGVtcHR5CiAgICBpZiggJGlucHV0X3VzZXJuYW1lX3JlZ2V4ICE9ICcnICkgewogICAgICAgICR3aGVyZVtdID0gJ3VzZXJuYW1lIFJFR0VYUCA/JzsKICAgICAgICAkcGFybXNbXSA9ICRpbnB1dF91c2VybmFtZV9yZWdleDsKICAgIH0KfQppZiggJGlucHV0X2V2ZW50dHlwZSAhPSAnYWxsJyApIHsKICAgICR3aGVyZVtdID0gJ2FjdGlvbiA9ID8nOwogICAgJHBhcm1zW10gPSAkaW5wdXRfZXZlbnR0eXBlOwp9CmlmKCAkaW5wdXRfZmlsdGVyX2RhdGUgIT0gLTEgKSB7CiAgICAkZGF0ZSA9ICcnOwogICAgc3dpdGNoKCAkaW5wdXRfZmlsdGVyX2RhdGUgKSB7CiAgICBjYXNlICcxaCc6CiAgICAgICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEgaG91ciBhZ28nKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJzZoJzoKICAgICAgICAkZGF0ZSA9IHN0cnRvdGltZSgnNiBob3VycyBhZ28nKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJzEyaCc6CiAgICAgICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEyIGhvdXJzIGFnbycpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnMWQnOgogICAgICAgICRkYXRlID0gc3RydG90aW1lKCcxIGRheSBhZ28nKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJzF3JzoKICAgICAgICAkZGF0ZSA9IHN0cnRvdGltZSgnMSB3ZWVrIGFnbycpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnMncnOgogICAgICAgICRkYXRlID0gc3RydG90aW1lKCcyIHdlZWtzIGFnbycpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnMW0nOgogICAgICAgICRkYXRlID0gc3RydG90aW1lKCcxIG1vbnRoIGFnbycpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnM20nOgogICAgICAgICRkYXRlID0gc3RydG90aW1lKCczIG1vbnRocyBhZ28nKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJzZtJzoKICAgICAgICAkZGF0ZSA9IHN0cnRvdGltZSgnNiBtb250aHMgYWdvJyk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICcxeSc6CiAgICAgICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEgeWVhciBhZ28nKTsKICAgICAgICBicmVhazsKICAgIH0KICAgIGlmKCAkZGF0ZSAhPSAnJyApIHsKICAgICAgICAkd2hlcmVbXSA9ICdyZWZkYXRlID4gPyc7CiAgICAgICAgJHBhcm1zW10gPSB0cmltKCRkYi0+RGJUaW1lU3RhbXAoJGRhdGUpLCInIik7CiAgICB9Cn0KaWYoIGNvdW50KCR3aGVyZSkgPiAwICkgewogICAgJHF1ZXJ5MSAuPSAnIEFORCAnLmltcGxvZGUoJyBBTkQgJywkd2hlcmUpOwogICAgJHF1ZXJ5MiAuPSAnIEFORCAnLmltcGxvZGUoJyBBTkQgJywkd2hlcmUpOwp9CmlmKCAkaW5wdXRfZ3JvdXBfaXAgPT0gMSApIHsKICAgICRxdWVyeTEgLj0gJyBHUk9VUCBCWSBpcGFkZHJlc3MnOwogICAgJHF1ZXJ5MiAuPSAnIEdST1VQIEJZIGlwYWRkcmVzcyc7Cn0KJHF1ZXJ5MSAuPSAiIE9SREVSIEJZICIuJGlucHV0X3NvcnRvcmRlcjsKJHF1ZXJ5MSAuPSAiIExJTUlUICRzdGFydGVsZW1lbnQsJGlucHV0X3BhZ2VsaW1pdCI7CgovLyBOb3cgZ2V0IHRoZSBjb3VudCwgYW5kIG51bWJlciBvZiBwYWdlcwokdG1wcm93ID0gJGRiLT5HZXRSb3coICRxdWVyeTIsICRwYXJtcyApOwokcmVjb3JkY291bnQgPSAkdG1wcm93Wydjb3VudCddOwokcGFnZWNvdW50ID0gKGludCljZWlsKCRyZWNvcmRjb3VudCAvICRpbnB1dF9wYWdlbGltaXQpOwokc21hcnR5LT5hc3NpZ24oJ3JlY29yZGNvdW50JywkcmVjb3JkY291bnQpOwoKLy8gc29tZSBwYWdpbmF0aW9uIHZhcmlhYmxlcyB0byBzbWFydHkuCmlmKCAkcGFnZW51bWJlciA9PSAxICkgewogICAgJHNtYXJ0eS0+YXNzaWduKCdwcmV2cGFnZScsJzwnKTsKICAgICRzbWFydHktPmFzc2lnbignZmlyc3RwYWdlJywnPDwnKTsKfQplbHNlIHsKICAgICRzbWFydHktPmFzc2lnbigncHJldnBhZ2UnLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwkcGFyYW1zWydhY3Rpb24nXSwgJHJldHVybmlkLCc8JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgncGFnZW51bWJlcic9PiRwYWdlbnVtYmVyLTEsICd1c2VyX2lkJz0+JHVzZXJpZCwnY2dfYWN0aXZldGFiJz0+J3VzZXJoaXN0b3J5JykpKTsKICAgICRzbWFydHktPmFzc2lnbignZmlyc3RwYWdlJywKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJHBhcmFtc1snYWN0aW9uJ10sICRyZXR1cm5pZCwnPDwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdwYWdlbnVtYmVyJz0+MSwgJ3VzZXJfaWQnPT4kdXNlcmlkLCdjZ19hY3RpdmV0YWInPT4ndXNlcmhpc3RvcnknKSkpOwp9CmlmKCAkcGFnZW51bWJlciA+PSAkcGFnZWNvdW50ICkgewogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsJz4nKTsKICAgICRzbWFydHktPmFzc2lnbignbGFzdHBhZ2UnLCc+PicpOwp9CmVsc2UgewogICAgJHNtYXJ0eS0+YXNzaWduKCduZXh0cGFnZScsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCRwYXJhbXNbJ2FjdGlvbiddLCAkcmV0dXJuaWQsJz4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdwYWdlbnVtYmVyJz0+JHBhZ2VudW1iZXIrMSwgJ3VzZXJfaWQnPT4kdXNlcmlkLCdjZ19hY3RpdmV0YWInPT4ndXNlcmhpc3RvcnknKSkpOwoKICAgICRzbWFydHktPmFzc2lnbignbGFzdHBhZ2UnLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwkcGFyYW1zWydhY3Rpb24nXSwgJHJldHVybmlkLCc+PicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZWNvdW50LCAndXNlcl9pZCc9PiR1c2VyaWQsJ2NnX2FjdGl2ZXRhYic9Pid1c2VyaGlzdG9yeScpKSk7Cgp9CiRzbWFydHktPmFzc2lnbigncGFnZW51bWJlcicsJHBhZ2VudW1iZXIpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2Vjb3VudCcsJHBhZ2Vjb3VudCk7CiRzbWFydHktPmFzc2lnbignb2Z0ZXh0JywkdGhpcy0+TGFuZygncHJvbXB0X29mJykpOwppZiggJHVzZXJpZCA9PSAnJyApICRzbWFydHktPmFzc2lnbignbXVsdGl1c2VyJywxKTsKCi8vIFRoZSBkYXRhYmFzZSBxdWVyeQokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeTEsICRwYXJtcyApOwokcm93YXJyYXkgPSBhcnJheSgpOwokcm93Y2xhc3MgPSAncm93MSc7CndoaWxlKCAkZGJyZXN1bHQgJiYgISRkYnJlc3VsdC0+RU9GICkgewogICAgJGZpZWxkcyA9ICRkYnJlc3VsdC0+ZmllbGRzOwogICAgJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwogICAgZm9yZWFjaCggJGZpZWxkcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICAkb25lcm93LT4ka2V5ID0gJHZhbHVlOwogICAgfQoKICAgIC8vIGZpeCBzb21lIGZpZWxkcyB1cAogICAgJG9uZXJvdy0+cmVmZGF0ZSA9ICRkYi0+VW5peFRpbWVTdGFtcCgkb25lcm93LT5yZWZkYXRlKTsKICAgIGlmKCAkb25lcm93LT5pcGFkZHJlc3MgPT0gJycgKSAkb25lcm93LT5pcGFkZHJlc3MgPSAkdGhpcy0+TGFuZygndW5rbm93bicpOwogICAgJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgogICAgJHJvd2FycmF5W10gPSAkb25lcm93OwogICAgJHJvd2NsYXNzID0gKCRyb3djbGFzcyA9PSAncm93MScpID8gJ3JvdzInIDogJ3JvdzEnOwogICAgJGRicmVzdWx0LT5Nb3ZlTmV4dCgpOwp9CgppZiggY291bnQoJHJvd2FycmF5KSA9PSAwICkgJHNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywkdGhpcy0+TGFuZygnaW5mb19ub2hpc3RvcnlkZXRlY3RlZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcmVjb3Jkc2ZvdW5kJywkdGhpcy0+TGFuZygncHJvbXB0X3JlY29yZHNmb3VuZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9sZWdlbmRfZmlsdGVyJywkdGhpcy0+TGFuZygnZmlsdGVyJykpOwokc21hcnR5LT5hc3NpZ24oJ3RpdGxlX2xlZ2VuZF9ncm91cHNvcnQnLCR0aGlzLT5MYW5nKCd0aXRsZV9ncm91cHNvcnQnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCd1c2VyaGlzdG9yeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdHVzZXJoaXN0b3J5JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdyZXNldCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwncmVzZXQnLCR0aGlzLT5MYW5nKCdyZXNldCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9wYWdlbGltaXQnLCR0aGlzLT5MYW5nKCdwcm9tcHRfcGFnZWxpbWl0JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3BhZ2VsaW1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfcGFnZWxpbWl0JywkcGFnZWxpbWl0cywgLTEsICRpbnB1dF9wYWdlbGltaXQpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3NvcnRvcmRlcicsJHRoaXMtPkxhbmcoJ3NvcnRieScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zb3J0b3JkZXInLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X3NvcnRvcmRlcicsJHNvcnRvcmRlcnMsIC0xLCAkaW5wdXRfc29ydG9yZGVyKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9ncm91cF9pcCcsJHRoaXMtPkxhbmcoJ3Byb21wdF9ncm91cF9pcCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ncm91cF9pcCcsCiAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X2dyb3VwX2lwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCR0aGlzLT5MYW5nKCd5ZXMnKT0+MSwgJHRoaXMtPkxhbmcoJ25vJyk9PjApLCAtMSwgJGlucHV0X2dyb3VwX2lwKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF91c2VybmFtZV9yZWdleCcsJHRoaXMtPkxhbmcoJ3VzZXJmaWx0ZXInKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdXNlcm5hbWVfcmVnZXgnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfdXNlcm5hbWVfcmVnZXgnLCAkaW5wdXRfdXNlcm5hbWVfcmVnZXgsIDI1KSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9maWx0ZXJfZXZlbnR0eXBlJywkdGhpcy0+TGFuZygncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZmlsdGVyX2V2ZW50dHlwZScsICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5wdXRfZXZlbnR0eXBlJywgJGV2ZW50dHlwZXMsIC0xLCRpbnB1dF9ldmVudHR5cGUpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZmlsdGVyX2RhdGUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfZmlsdGVyX2RhdGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZmlsdGVyX2RhdGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X2ZpbHRlcl9kYXRlJywgJGRhdGVsaXN0LC0xLCRpbnB1dF9maWx0ZXJfZGF0ZSkpOwoKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV91c2VyaGlzdG9yeScsJHRoaXMtPkxhbmcoJ3RpdGxlX3VzZXJoaXN0b3J5JykpOwokc21hcnR5LT5hc3NpZ24oJ2ZvcicsJHRoaXMtPkxhbmcoJ2ZvcicpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdXNlcm5hbWUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdXNlcm5hbWUnKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2ZvcicsJHRoaXMtPkxhbmcoJ3Byb21wdF9mb3InKSk7CiRzbWFydHktPmFzc2lnbignaXRlbXMnLCRyb3dhcnJheSk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50Jyxjb3VudCgkcm93YXJyYXkpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcmVmZGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF9kYXRlJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hY3Rpb24nLCR0aGlzLT5MYW5nKCdwcm9tcHRfZXZlbnR0eXBlJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9pcGFkZHJlc3MnLCR0aGlzLT5MYW5nKCdwcm9tcHRfaXBhZGRyZXNzJykpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCd1c2VyaGlzdG9yeS50cGwnKTsKLy8gRU9GCg==]]></data>
	</file>
	<file>
	  <filename>/action.user_forcenewpw.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhZGVmaW5lZCgnQ01TX1ZFUlNJT04nKSApIGV4aXQ7CgokdGVtcGxhdGUgPSBcZmV1X3V0aWxzOjpnZXRfdGVtcGxhdGUoJHBhcmFtcywnZm9yY2VuZXdwd3RlbXBsYXRlJywnRnJvbnRFbmRVc2Vyczo6Zm9yY2UgbmV3IHBhc3N3b3JkJyk7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRlbXBsYXRlKTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ3VzZXJfZm9yY2VuZXdwdycsJHJldHVybmlkLCRwYXJhbXMpKTsKJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCnRyeSB7CiAgICAkdWlkID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywndWlkJyk7CiAgICBpZiggJHVpZCA8IDEgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXJhbXMnKSk7CiAgICAkdWlkMiA9ICR0aGlzLT5Mb2dnZWRJbklkKCk7CiAgICBpZiggJHVpZCAhPSAkdWlkMiApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKCiAgICBpZiggaXNzZXQoJHBhcmFtc1snZmV1X3N1Ym1pdCddKSApIHsKICAgICAgICAkcHcxID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdmZXVfcGFzc3dvcmQnKSk7CiAgICAgICAgJHB3MiA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnZmV1X3JlcGVhdHBhc3N3b3JkJykpOwogICAgICAgIGlmKCAkcHcxICE9ICRwdzIgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3Bhc3N3b3JkbWlzbWF0Y2gnKSk7CgogICAgICAgIC8vIHNlZSBpZiBpdCBpcyBhIHZhbGlkIHBhc3N3b3JkLgogICAgICAgIGlmKCAhJHRoaXMtPklzVmFsaWRQYXNzd29yZCgkcHcxICkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXNzd29yZCcpKTsKCiAgICAgICAgLy8gbm93IHNlZSBpZiB0aGUgcGFzc3dvcmQgaGFzIGFjdHVhbGx5IGNoYW5nZWQuCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkZW5jcnlwdGVkID0gJHRoaXMtPkVuY3J5cHRQYXNzd29yZCgkdWlkLCRwdzEpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgcGFzc3dvcmQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkc3RvcmVkID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR1aWQpKTsKICAgICAgICBpZiggJGVuY3J5cHRlZCA9PSAkc3RvcmVkICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9wYXNzd29yZG5vdGNoYW5nZWQnKSk7CgogICAgICAgIC8vIHNldCB0aGUgcGFzc3dvcmQKICAgICAgICAkdGhpcy0+U2V0VXNlclBhc3N3b3JkKCR1aWQsJHB3MSk7CgogICAgICAgIC8vIGRpc2FibGUgdGhlIGZvcmNlIHJlc2V0IGZsYWcKICAgICAgICAkdGhpcy0+Rm9yY2VQYXNzd29yZENoYW5nZSgkdWlkLEZBTFNFKTsKCiAgICAgICAgLy8gYW5kIHJlZGlyZWN0IG91dCBvIGhlcmUuCiAgICAgICAgaWYoICgkcmV0dXJudG8gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3JldHVybnRvJykpICkgewogICAgICAgICAgICAkcGFnZWlkID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHJldHVybnRvKTsKICAgICAgICAgICAgaWYoICRwYWdlaWQgKSAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRwYWdlaWQpOwogICAgICAgIH0KICAgICAgICBpZiggKCR1cmwgPSAkdGhpcy0+R2V0UG9zdExvZ2luVVJMKCkpICkgewogICAgICAgICAgICByZWRpcmVjdCgkdXJsKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggKCR0cGxzdHIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFnZWlkX2xvZ2luJykpICkgewogICAgICAgICAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdzdHJpbmc6Jy4kdHBsc3RyKTsKICAgICAgICAgICAgJGdyb3VwcyA9ICR0aGlzLT5HZXRNZW1iZXJHcm91cHNBcnJheSggJHVpZCApOwogICAgICAgICAgICAkZ3JvdXBuYW1lID0gJHRoaXMtPkdldEdyb3VwTmFtZSggJGdyb3Vwc1swXVsnZ3JvdXBpZCddICk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbigndXNlcm5hbWUnLCR1c2VybmFtZSk7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignZ3JvdXAnLCRncm91cG5hbWUpOwogICAgICAgICAgICAkdG1wID0gJHRwbC0+ZmV0Y2goKTsKICAgICAgICAgICAgaWYoICR0bXAgKSB7CiAgICAgICAgICAgICAgICAkcGFnZWlkID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHRtcCk7CiAgICAgICAgICAgICAgICBpZiggJHBhZ2VpZCApICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHBhZ2VpZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gYWxsIGVsc2UgZmFpbHMsIHJlZGlyZWN0IGJhY2sgdG8gb3VyIGN1cnJlbiBwYWdlLgogICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldHVybmlkKTsKICAgIH0KfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIC8vIG9uIGVycm9yLCB3ZSBqdXN0IGRpc3BsYXkgYSBtZXNzYWdlLgogICAgJHRwbC0+YXNzaWduKCdlcnJvcicsJGUtPkdldE1lc3NhZ2UoKSk7Cn0KCiR0cGwtPmRpc3BsYXkoKTs=]]></data>
	</file>
	<file>
	  <filename>/action.verifycode.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR1c2VybmFtZSA9ICRmYXRhbCA9ICRlcnJvciA9ICRtZXNzYWdlID0gbnVsbDsKJGRvX2Zvcm0gPSAxOwokdWlkID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCd1aWQnKTsKJGNvZGUgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2NvZGUnKTsKJHVzZXJuYW1lX2lzX2VtYWlsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJywwKTsKJHBhc3N3b3JkMSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmV1X3Bhc3N3b3JkMScpOwokcGFzc3dvcmQyID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmZXVfcGFzc3dvcmQyJyk7CiR0ZW1wbGF0ZSA9IFxmZXVfdXRpbHM6OmdldF90ZW1wbGF0ZSgkcGFyYW1zLCdmb3Jnb3Rwd3ZlcmlmeXRlbXBsYXRlJywnRnJvbnRFbmRVc2Vyczo6Zm9yZ290IHBhc3N3b3JkIHZlcmlmeScpOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0ZW1wbGF0ZSk7Cgp0cnkgewogICAgaWYoICR1aWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwogICAgaWYoICEkY29kZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKICAgICRyZXMgPSAkdGhpcy0+R2V0VXNlckluZm8oJHVpZCk7CiAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSk7CiAgICAkdWluZm8gPSAkcmVzWzFdOwogICAgaWYoICFpc19hcnJheSgkdWluZm8gKSkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfdXNlcm5vdGZvdW5kJykpOwogICAgaWYoICR1aW5mb1snZGlzYWJsZWQnXSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2FjY291bnRkaXNhYmxlZCcpKTsKICAgIGlmKCB0aW1lKCkgPiBzdHJ0b3RpbWUoJHVpbmZvWydleHBpcmVzJ10pICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfYWNjb3VudGV4cGlyZWQnKSk7CiAgICAkdXNlcm5hbWUgPSAkdWluZm9bJ3VzZXJuYW1lJ107CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2ZldV9hZnRlcnZlcmlmeSddKSApIHsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZldV9hZnRlcnZlcmlmeScsMSk7CiAgICAgICAgJGRvX2Zvcm0gPSAwOwogICAgICAgICRtZXNzYWdlID0gJHRoaXMtPkxhbmcoJ2luZm9fcGFzc3dvcmRfcmVzZXQnKTsKICAgIH0KICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2ZldV9zdWJtaXQnXSkgKSB7CiAgICAgICAgJHRlbXBjb2RlID0gJHRoaXMtPkdldFVzZXJUZW1wQ29kZSgkdWlkKTsKICAgICAgICBpZiggISR0ZW1wY29kZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX3RlbXBjb2Rlbm90Zm91bmQnKSk7CgogICAgICAgICRjb2RlID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmZXVfY29kZScpOwogICAgICAgICRwYXNzd29yZDEgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmV1X3Bhc3N3b3JkMScpKTsKICAgICAgICAkcGFzc3dvcmQyID0gY21zX2h0bWxfZW50aXR5X2RlY29kZShcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2ZldV9wYXNzd29yZDInKSk7CiAgICAgICAgaWYoICEkdGhpcy0+SXNWYWxpZFBhc3N3b3JkKCRwYXNzd29yZDEpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkcGFzc3dvcmQnKSk7CiAgICAgICAgaWYoICRwYXNzd29yZDEgIT0gJHBhc3N3b3JkMiApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCcpKTsKICAgICAgICBpZiggJGNvZGUgIT0gJHRlbXBjb2RlICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkY29kZScpKTsKICAgICAgICAkdGhpcy0+U2V0VXNlclBhc3N3b3JkKCR1aWQsJHBhc3N3b3JkMSk7CiAgICAgICAgJHRoaXMtPlJlbW92ZVVzZXJUZW1wQ29kZSgkdWlkKTsKICAgICAgICAkdXNlcm5hbWUgPSAkdGhpcy0+R2V0VXNlcm5hbWUoJHVpZCk7CgogICAgICAgIC8vIGFuZCBzZW5kIGFuIGV2ZW50CiAgICAgICAgJGV2ZW50X3BhcmFtcyA9IGFycmF5KCk7CiAgICAgICAgJGV2ZW50X3BhcmFtc1snbmFtZSddID0gJHVzZXJuYW1lOwogICAgICAgICRldmVudF9wYXJhbXNbJ2lkJ10gPSAkdWlkOwogICAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uVXBkYXRlVXNlcicsJGV2ZW50X3BhcmFtcyk7CiAgICAgICAgJHRoaXMtPl9TZW5kTm90aWZpY2F0aW9uRW1haWwoJ09uVXBkYXRlVXNlcicsJGV2ZW50X3BhcmFtcyk7CgogICAgICAgIC8vIGFuZCBhdWRpdCBpdAogICAgICAgIGF1ZGl0KCR1aWQsJHRoaXMtPkdldE5hbWUoKSwnU3VjY2Vzc2Z1bGx5IGNoYW5nZWQgcGFzc3dvcmQgdmlhIGZvcmdvdHB3Jyk7CiAgICAgICAgJHRoaXMtPmFkZF9oaXN0b3J5KCR1aWQsJ3Jlc2V0cHcnKTsKCiAgICAgICAgLy8gYW5kIHJlZGlyZWN0IHNvbWV3aGVyZQogICAgICAgICRwYWdldHBsID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3BhZ2VpZF9hZnRlcnZlcmlmeScpOwogICAgICAgIGlmKCAkcGFnZXRwbCApIHsKICAgICAgICAgICAgJHRwbDIgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ3N0cmluZzonLiRwYWdldHBsKTsKICAgICAgICAgICAgJHRwbDItPmFzc2lnbigndXNlcm5hbWUnLCRldmVudF9wYXJhbXNbJ25hbWUnXSk7CiAgICAgICAgICAgICR0cGwyLT5hc3NpZ24oJ3VpZCcsJHVpZCk7CiAgICAgICAgICAgICRncm91cHMgPSAkdGhpcy0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoICR1aWQgKTsKICAgICAgICAgICAgJGdyb3VwbmFtZSA9ICR0aGlzLT5HZXRHcm91cE5hbWUoICRncm91cHNbMF1bJ2dyb3VwaWQnXSApOwogICAgICAgICAgICAkdHBsMi0+YXNzaWduKCdncm91cG5hbWUnLCRncm91cG5hbWUpOwogICAgICAgICAgICAkcGFnZSA9ICR0cGwyLT5mZXRjaCgpOwogICAgICAgICAgICAkZGVzdCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYWdlLCRyZXR1cm5pZCk7CiAgICAgICAgICAgIGlmKCAhJGRlc3QgKSB7CiAgICAgICAgICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdDb3VsZCBub3QgY29udmVydCB0ZW1wbGF0ZSAmcXVvdDsnLiRwYWdldHBsLicmcXVvdDsgdG8gYSBwYWdlIGlkJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRkZXN0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgLy8gcmVkaXJlY3QgYWZ0ZXIgUE9TVAogICAgICAgICAgICAkcGFybXMgPSBhcnJheSgnZmV1X2FmdGVydmVyaWZ5Jz0+MSwndWlkJz0+JHVpZCwnY29kZSc9PidfX2ludmFsaWRfXycpOwogICAgICAgICAgICAkdGhpcy0+cmVkaXJlY3QoJ2NudG50MDAxJywndmVyaWZ5Y29kZScsJHJldHVybmlkLCRwYXJtcyk7CiAgICAgICAgfQogICAgfQp9CmNhdGNoKCBcUnVudGltZUV4Y2VwdGlvbiAkZSApIHsKICAgICRlcnJvciA9IDE7CiAgICAkbWVzc2FnZSA9ICRlLT5HZXRNZXNzYWdlKCk7Cn0KY2F0Y2goIFxMb2dpY0V4Y2VwdGlvbiAkZSApIHsKICAgICRkb19mb3JtID0gMDsKICAgICRlcnJvciA9IDE7CiAgICAkbWVzc2FnZSA9ICRlLT5HZXRNZXNzYWdlKCk7Cn0KCgovLyBjcmVhdGUgdGhlIHRlbXBsYXRlCmlmKCAkZG9fZm9ybSApIHsKICAgICRwYXJtcyA9IGFycmF5KCd1aWQnPT4kdWlkLCdjb2RlJz0+JGNvZGUpOwogICAgJHRwbC0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgnY250bnQwMScsJ3ZlcmlmeWNvZGUnLCRyZXR1cm5pZCwkcGFybXMpKTsKICAgICR0cGwtPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7Cn0KJHRwbC0+YXNzaWduKCd1bmZsZGxlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lZmxkbGVuZ3RoJykpOwokdHBsLT5hc3NpZ24oJ21heF91bmZsZGxlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcpKTsKJHRwbC0+YXNzaWduKCdwd2ZsZGxlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJykpOwokdHBsLT5hc3NpZ24oJ21heF9wd2ZsZGxlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpKTsKJHRwbC0+YXNzaWduKCd1c2VybmFtZV9pc19lbWFpbCcsJHVzZXJuYW1lX2lzX2VtYWlsKTsKJHRwbC0+YXNzaWduKCd1c2VybmFtZScsJHVzZXJuYW1lKTsKJHRwbC0+YXNzaWduKCdwYXNzd29yZDEnLCRwYXNzd29yZDEpOwokdHBsLT5hc3NpZ24oJ3Bhc3N3b3JkMicsJHBhc3N3b3JkMik7CiR0cGwtPmFzc2lnbignY29kZScsJGNvZGUpOwokdHBsLT5hc3NpZ24oJ3VpZCcsJHVpZCk7CiR0cGwtPmFzc2lnbignZXJyb3InLCRlcnJvcik7CiR0cGwtPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwokdHBsLT5kaXNwbGF5KCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.verifyonly.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR0aXRsZSA9ICRlcnJvciA9ICRtc2cgPSBudWxsOwoKdHJ5IHsKICAgICR1aWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3VpZCcpOwogICAgaWYoICR1aWQgPCAxICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgICAkcmVzID0gJHRoaXMtPkdldFVzZXJJbmZvKCR1aWQpOwogICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSk7CiAgICAkdWluZm8gPSAkcmVzWzFdOwogICAgaWYoICFpc19hcnJheSgkdWluZm8gKSkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSk7CiAgICBpZiggJHVpbmZvWydkaXNhYmxlZCddICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9hY2NvdW50ZGlzYWJsZWQnKSk7CiAgICBpZiggdGltZSgpID4gc3RydG90aW1lKCR1aW5mb1snZXhwaXJlcyddKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfYWNjb3VudGV4cGlyZWQnKSk7CiAgICB1bnNldCgkcmVzKTsKICAgICRjb2RlID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdjb2RlJyk7CiAgICBpZiggISRjb2RlICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CiAgICBpZiggJGNvZGUgPT0gJ3h4eHgnICkgJGNvZGUgPSBudWxsOwoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydmZXVfc3VibWl0J10pICkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR0aXRsZSA9ICR0aGlzLT5MYW5nKCdhY2NvdW50X3ZlcmlmaWNhdGlvbicpOwogICAgICAgICAgICAkbXNnID0gbnVsbDsKICAgICAgICAgICAgJGVycm9yID0gZmFsc2U7CgogICAgICAgICAgICAkZGJjb2RlID0gJHRoaXMtPkdldFVzZXJUZW1wQ29kZSgkdWlkKTsKICAgICAgICAgICAgaWYoICEkZGJjb2RlIHx8ICRkYmNvZGUgIT0gJGNvZGUgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRjb2RlJykpOwoKICAgICAgICAgICAgLy8gc3VjY2VzcyBjb25kaXRpb24KICAgICAgICAgICAgJHRoaXMtPlJlbW92ZVVzZXJUZW1wQ29kZSgkdWlkKTsKICAgICAgICAgICAgYXVkaXQoJHVpZCwkdGhpcy0+R2V0TmFtZSgpLCdTdWNjZXNzZnVsbHkgdmVyaWZpZWQgaGlzL2hlciBpbmZvcm1hdGlvbicpOwogICAgICAgICAgICAkdGhpcy0+YWRkX2hpc3RvcnkoJHVpZCwndmVyaWZ5IGNvbXBsZXRlJyk7CgogICAgICAgICAgICBpZiggJHVpbmZvWydtdXN0X3ZhbGlkYXRlJ10gKSB7CiAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gcmVzZXQgdGhpcy4KICAgICAgICAgICAgICAgICR0aGlzLT5Gb3JjZVZlcmlmeSgkdWlkLEZBTFNFKTsKCiAgICAgICAgICAgICAgICAkZXZlbnRfcGFybXMgPSBbXTsKICAgICAgICAgICAgICAgICRldmVudF9wYXJtc1snaWQnXSA9ICR1aWQ7CiAgICAgICAgICAgICAgICAkZXZlbnRfcGFybXNbJ25hbWUnXSA9ICR1aW5mb1sndXNlcm5hbWUnXTsKICAgICAgICAgICAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uVXBkYXRlVXNlcicsJGV2ZW50X3Bhcm1zKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gc2VlIGlmIHdlIGNhbiByZWRpcmVjdAogICAgICAgICAgICAkcGFnZSA9IFxmZXVfdXRpbHM6OnJlc29sdmVfcHJlZnRwbF90b19wYWdlKCdwYWdlaWRfYWZ0ZXJ2ZXJpZnknLCR1aWQpOwogICAgICAgICAgICBpZiggJHBhZ2UgKSAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRwYWdlKTsKCiAgICAgICAgICAgIC8vIG5vIHBhZ2V0ZW1wbGF0ZSBvciBvdGhlciBlcnJvciBtZWFucyBubyByZWRpcmVjdAogICAgICAgICAgICAvLyBmYWxsIHRocm91Z2ggdG8gZGlzcGxheWluZyBhIG1lc3NhZ2UKICAgICAgICAgICAgJG1zZyA9ICR0aGlzLT5MYW5nKCdtc2dfdmVyaWZpY2F0aW9uX2NvbXBsZXRlJyk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkbXNnID0gJGUtPkdldE1lc3NhZ2UoKTsKICAgICAgICAgICAgJGVycm9yID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPlNob3dGb3JtYXR0ZWRNZXNzYWdlKCRtc2csJGVycm9yLCR0aXRsZSk7CiAgICAgICAgcmV0dXJuOwogICAgfSAvLyBzdWJtaXQKCiAgICAvLyBkaXNwbGF5IHRoZSBmb3JtCiAgICAkdGhldGVtcGxhdGUgPSBcZmV1X3V0aWxzOjpnZXRfdGVtcGxhdGUoJHBhcmFtcywndmVyaWZ5Zm9ybXRlbXBsYXRlJywnRnJvbnRFbmRVc2Vyczo6dmVyaWZ5X2Zvcm0nKTsKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKICAgICR0cGwtPmFzc2lnbigndWlkJywkdWlkKTsKICAgICR0cGwtPmFzc2lnbignY29kZScsJGNvZGUpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJG1zZyA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgICAkZXJyb3IgPSB0cnVlOwogICAgJHRoaXMtPlNob3dGb3JtYXR0ZWRNZXNzYWdlKCRtc2csJGVycm9yLCR0aXRsZSk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/action.viewuser.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR1aWQgPSAoaW50KSR0aGlzLT5Mb2dnZWRJbklkKCk7CiR1aWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3VpZCcsJHVpZCk7CmlmKCAkdWlkIDwgMSApIHJldHVybjsKJHRtcCA9ICR0aGlzLT5HZXRVc2VySW5mbygkdWlkKTsKaWYoICR0bXBbMF0gPT09IEZBTFNFICkgcmV0dXJuOwokdXNlcl9pbmZvID0gJHRtcFsxXTsKJHRtcCA9IG51bGw7CiRncm91cHMgPSAkdGhpcy0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoICR1aWQgKTsKaWYoICEkZ3JvdXBzICkgcmV0dXJuOwoKJHRoZXRlbXBsYXRlID0gXGZldV91dGlsczo6Z2V0X3RlbXBsYXRlKCRwYXJhbXMsJ3ZpZXd1c2VydGVtcGxhdGUnLCdGcm9udEVuZFVzZXJzOjp2aWV3IHVzZXInKTsKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdGhldGVtcGxhdGUpOwokdHBsLT5hc3NpZ24oJ3VzZXJpbmZvJywkdXNlcl9pbmZvKTsKJHRwbC0+YXNzaWduKCdlbWFpbF9hZGRyZXNzJywkdGhpcy0+R2V0RW1haWwoJHVpZCkpOwoKLy8gbm93IHdlIGhhdmUgdGhlIGdyb3Vwcywgd2UgYnVpbGQgYSB1bmlvbiBvZiBhbGwgb2YgdGhlIGdyb3VwcyBwcm9wZXJ0aWVzCiRwcm9wMiA9IGFycmF5KCk7CmZvcmVhY2goICRncm91cHMgYXMgJGdycHJlY29yZCApCnsKICAgICRnaWQgPSAkZ3JwcmVjb3JkWydncm91cGlkJ107CiAgICAkcHJvcHJlbGF0aW9ucyA9ICR0aGlzLT5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCAkZ2lkICk7CiAgICAkcHJvcDIgPSBSUlV0aWxzOjphcnJheV9tZXJnZV9ieV9uYW1lX3JlcXVpcmVkKCAkcHJvcDIsICRwcm9wcmVsYXRpb25zICk7CiAgICB1YXNvcnQoICRwcm9wMiwgYXJyYXkoJ2NnZV9hcnJheScsJ2NvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleScpICk7Cn0KCi8vIG5vdyB3ZSBtZXJnZSBpbiBhbGwgb2YgdGhlIHByb3BlcnR5IGRlZmluaXRpb25zCiRkZWZucyA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm5zKCk7CiRwcm9wMyA9IGFycmF5KCk7CmZvcmVhY2goICRwcm9wMiBhcyAkb25lcHJvcCApIHsKICAgIGZvcmVhY2goICRkZWZucyBhcyAkb25lZGVmbiApIHsKICAgICAgICBpZiggJG9uZWRlZm5bJ25hbWUnXSA9PSAkb25lcHJvcFsnbmFtZSddICkgewogICAgICAgICAgICAkb25lcHJvcFsncHJvbXB0J10gPSAkb25lZGVmblsncHJvbXB0J107CiAgICAgICAgICAgICRvbmVwcm9wWyd0eXBlJ10gPSAkb25lZGVmblsndHlwZSddOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICAkcHJvcDNbXSA9ICRvbmVwcm9wOwp9CgovLyBBbmQgbm93IG1lcmdlIGluIHRoZSB2YWx1ZXMKJHVzZXJwcm9wcyA9ICR0aGlzLT5HZXRVc2VyUHJvcGVydGllcygkdWlkKTsKJHByb3BzYnluYW1lID0gYXJyYXkoKTsKZm9yZWFjaCggJHByb3AzIGFzICRvbmVwcm9wICkgewogICAgaWYoIGlzX2FycmF5KCR1c2VycHJvcHMpICkgewogICAgICAgIGZvcmVhY2goICR1c2VycHJvcHMgYXMgJG9uZXZhbCApIHsKICAgICAgICAgICAgaWYoICRvbmVwcm9wWyduYW1lJ10gPT0gJG9uZXZhbFsndGl0bGUnXSAmJiBpc3NldCgkb25ldmFsWydkYXRhJ10pICYmICFlbXB0eSgkb25ldmFsWydkYXRhJ10pICkgewogICAgICAgICAgICAgICAgJG9uZXByb3BbJ2RhdGEnXSA9ICRvbmV2YWxbJ2RhdGEnXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmKCBpc3NldCgkb25lcHJvcFsnZGF0YSddKSApICRwcm9wc2J5bmFtZVskb25lcHJvcFsnbmFtZSddXSA9ICRvbmVwcm9wOwp9CgokdHBsLT5hc3NpZ24oJ3VzZXJfcHJvcGVydGllcycsJHByb3BzYnluYW1lKTsKJHRwbC0+ZGlzcGxheSgpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgo8bGk+MC4wLjEgLSBPY3RvYmVyLCAyMDA1IC0gSW5pdGlhbCBOUlBUIChOb3QgUmVhZHkgZm9yIFByaW1lIFRpbWUpIHJlbGVhc2U8L2xpPgo8bGk+MC4xLjAgLSBPY3RvYmVyLCAyMDA1IC0gSW5pdGlhbCByZWxlYXNlPC9saT4KPGxpPjAuMS4xIC0gT2N0b2JlciwgMjAwNSAtIEZpeGVkIGlzc3VlcyB3aXRoIHByb3BlcnRpZXM8L2xpPgo8bGk+MC4xLjIgLSBPY3RvYmVyLCAyMDA1IC0gQWRkZWQgZm9yZ290dGVuIHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHk8L2xpPgo8bGk+MC4xLjMgLSBOb3ZlbWJlciwgMjAwNQogICAgPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBhIHJlZGlyZWN0IHBhZ2Ugb24gbG9naW4sIGxvZ291dCwgZm9yZ290IHBhc3N3b3JkLCBhbmQgY2hhbmdlIHNldHRpbmdzLCBhbmQgYWRkZWQgdGhlIHJldHVybnRvIGFuZCBmb3JtIHBhcmFtZXRlcnMgdG8gdGhlIHVzZXIgc2lkZSBvZiB0aGluZ3MsIGFsc28gZGlkIGEgY291cGxlIGxmIGxpdHRsZSBjbGVhbnVwcy4gIFRoaXMgdmVyc2lvbiByZXF1aXJlcyB2MC4xMSBhbmQgYWJvdmUgZm9yIGNlcnRhaW4uPC9wPjwvbGk+CjxsaT4wLjEuNCAtIE5vdmVtYmVyLCAyMDA1IC0gVmVyeSBtaW5vciBjaGFuZ2Ugd2l0aCByZXNwZWN0IHRvIGEgZm9yZ290dGVuIGFuZCBubyBsb25nZXIgbmVlZGVkIGZ1bmN0aW9uIGNhbGw8L2xpPgo8bGk+MC4xLjUgLSBOb3ZlbWJlciwgMjAwNQogICAgPHA+QW5vdGhlciB2ZXJ5IG1pbm9yIGNoYW5nZSwgYWRkZWQgc29tZSB0ZXh0IHRvIHRoZSBQb3N0SW5zdGFsbCBtZXNzYWdlLjwvcD48L2xpPgo8bGk+MC4xLjYgLSBKYW51YXJ5LCAyMDA2CiAgICA8cD5DaGFuZ2VzIHRvIHRoZSBwZXJtaXNzaW9uIG1vZGVsLCBhbmQgbWlub3IgYnVnIGZpeGVzIHRvIHRoZSBwcmVmZXJlbmNlcy4gIEFsc28gc29tZSBwaHA1IGZpeGVzIGJ1dCBJIGFtIHN1cmUgdGhhdCB0aGVyZSBhcmUgbW9yZSBvdXQgdGhlcmUuPC9wPjwvbGk+CjxsaT4wLjEuNyAtIEphbnVhcnksIDIwMDYKICAgIDxwPk1hbnkgdGhhbmtzIHRvIDxiPmthdG9uPC9iPiBmb3IgYWRkaW5nIHRoZSB0ZXh0YXJlYSBhbmQgZHJvcGRvd24gcHJvcGVydHkgdHlwZXMuPC9wPgogICAgPHA+Rml4ZXMgdG8gdGhlIHByb3BlcnR5IGFkZGluZyB0byBmaXggcHJvYmxlbXMgd2l0aCBzcGFjZXMgaW4gcHJvcGVydHkgbmFtZXMgKHdlIG5vIGxvbmdlciBsZXQgdGhhdCBoYXBwZW4pLjwvcD4KPC9saT4KPGxpPjxwPjEuMC4wIC0gRmVicnVhcnksIDIwMDY8cD4KICAgIDxwPkFkZGVkIGZpbHRlcmluZyBhbmQgcm93IGxpbWl0aW5nIHRvIHRoZSBhZG1pbiBwYW5lbC4gVGhpcyB3aWxsIGhhdmUgYmlnIGJlbmVmaXRzIHRvIHRob3NlIHRoYXQgYXJlIHVzaW5nIHRoaXMgbW9kdWxlIGZvciBoaWdoIHRyYWZpYywgYW5kIGhpZ2ggdXNlciBzaXRlcy48L3A+CiAgICA8cD5BZGRlZCBzb3J0aW5nIHRvIHRoZSBhZG1pbiBwYW5lbDwvcD4KICAgIDxwPkFkZGVkIG1heCBsZW5ndGggYWJpbGl0eSB0byB0ZXh0IGFuZCBlbWFpbCBmaWVsZHM8L3A+CiAgICA8cD5GaXhlZCBhIHNtYWxsIHByb2JsZW0gd2l0aCB0aGUgZGVmYXVsdCBncm91cCBub3QgYmVpbmcgY2hlY2tlZCB3aGVuIGFkZGluZyBhIHVzZXI8L3A+CiAgICA8cD5TYXZlIGZpbHRlciBzZXR0aW5ncyBpbiBwcmVmZXJlbmNlcywgYW5kIHRoZSBhY3RpdmUgdGFiIHRvby48L3A+CiAgICA8cD5EZWxldGUgdXNlciBwcm9wZXJ0aWVzIHdoZW4gYSBwcm9wZXJ0eSBpcyBkZWxldGVkIDxlbT5Ob3RlPC9lbT4sIG5vdCB3aGVuIGl0IGlzIGRpc2FibGVkIGluIHRoZSBlZGl0IGdyb3VwIGRpYWxvZzwvcD4KICAgIDxwPkFkZCBjb25maXJtYXRpb24gbWVzc2FnZSBpbiBlZGl0IGdyb3Vwcy48L3A+CiAgICA8cD5BZGRlZCBhIGNvdXBsZSBtb3JlIGNvbmZpcm1hdGlvbiBtZXNzYWdlcy48L3A+CiAgICA8cD5BZGRlZCBDU1YgRXhwb3J0IG9wdGlvbjwvcD4KICAgIDxwPlRvZG8gLSBBZGQgcHJlZmVyZW5jZXMgZm9yIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmaWVsZGxlbmd0aDwvcD4KPC9saT4KPGxpPjEuMC4xIC0gTWFyY2gsIDIwMDYKICAgIDxwPkFkZGVkIHRoZSBhYmlsaXR5IHRvIGNoZWNrIGZvciBkdXBsaWNhdGUgZW1haWwgYWRkcmVzc2VzPC9wPgogICAgPHA+Rml4IHByb2JsZW0gd2hlcmUgZXhwaXJ5IGRhdGUgd2FzIGJlaW5nIG1vZGlmaWVkIHdoZW4gYWRtaW4gbW9kaWZpZWQgdXNlciBzZXR0aW5nczwvcD4KICAgIDxwPkFkZCBhIGNvbmZpcm1hdGlvbiBtZXNzYWdlIHRvIHRoZSBwcmVmZXJlbmNlcyBzdWJtaXQgYnV0dG9uPC9wPgogICAgPHA+Rml4ZWQgYSBtaW5vciBidWcgd2hlbiBjb3V0aW5nIHRoZSBudW1iZXIgb2YgdXNlcnMgaW4gYSBncm91cDwvcD4KICAgIDxwPkZpeGVzIHRvIHRoZSBzaXplIG9mIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmaWVsZHMsIGFuZCBtYXhsZW5ndGg8L3A+CiAgICA8cD5BZGRlZCBhZHZhbmNlZCBmaWx0ZXJpbmcgb24gcHJvcGVydGllczwvcD4KICAgIDxwPkNoYW5nZXMgdG8gbGFiZWxpbmcgaW4gYWRkIG9yIGVkaXQgdXNlcjwvcD4KICAgIDxwPkZpeGVzIHRvIHByb2JsZW1zIHdpdGggaW5saW5lIGFuZCBub24gaW5saW5lIGZvcm1zLCB0aGUgcGFzc3dvcmQgaXMgbmV2ZXIgc2VudCBvbiB0aGUgZ2V0IGxpbmU8L3A+CiAgICA8cD5DaGFuZ2VkIHRvIHJlcXVpcmUgQ01TIDAuMTItYmV0YTIgYXQgYSBtaW5pbXVtIChmb3Igc2FmZXR5IHB1cnBvc2VzKTwvcD4KPC9saT4KPGxpPjEuMC4yIC0gTWFyY2gsIDIwMDYKICAgIDxwPk1vcmUgZmllbGQgbGVuZ3RoIGZpeGVzPC9wPgo8L2xpPgo8bGk+MS4wLjMgLSBNYXJjaCwgMjAwNgogICAgPHA+RXhwb3J0IHRvIHNtYXJ0eSBhbGwgb2YgdGhlIHVzZXIgcHJvcGVydGllcyB3aGVuIHRoZXkgYXJlIGxvZ2dlZCBpbjwvcD4KPC9saT4KPGxpPjEuMC40IC0gTWF5LCAyMDA2CiAgICA8cD5GaXhlcyB0byB0aGUgZXhwb3J0IGNvZGU8L3A+CiAgICA8cD5Db2RlIGNsZWFudXAgKGFscGhhYmV0aXplIGZ1bmN0aW9ucyk8L3A+CiAgICA8cD5NaW5vciBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzIChyZWNvbW1lbmRlZCBieSBuaWxzNzMpIGZvciBkZWFsaW5nIHdpdGggdGhlIGNoYW5nZSBwYXNzd29yZCBzdHVmZi48L3A+CiAgICA8cD5SZW1vdmVkIHRoZSByZXF1aXJlbWVudCBmb3IgQ01TIDAuMTIsIGFuZCBwdXQgaXQgYmFjayB0byAwLjExLjI8L3A+CiAgICA8cD5BZGRlZCB0aGUgXCdzaWxlbnRcJyBmb3JtPC9wPgogICAgPHA+Q2xlYW5lZCB1cCBkYXRhYmFzZSBhY2Nlc3Mgc3R1ZmYgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgKGhvcGVmdWxseSk8L3A+CiAgICA8cD5BZGRlZCBjb3B5cmlnaHQgaW5mbzwvcD4KICAgIDxwPkFkZGVkIG1hY3JvcyBmb3IgcmVkaXJlY3RvIHRvIGEgdXNlciBzcGVjaWZpYyBwYWdlIG9uIGxvZ2luIG9yIGxvZ291dDwvcD4KICAgIDxwPlR3ZWFrcyB0byB0aGUgYWRtaW4gcHJlZmVyZW5jZXMgdGFiPC9wPgo8L2xpPgo8bGk+MS4wLjUgLSBNYXksIDIwMDYKICAgIDxwPkZpeGVkIGEgcHJvYmxlbSB3aXRoIGV4cGlyeSBkYXRlczwvcD4KICAgIDxwPlN0YXJ0IHNwbGl0dGluZyB0aGUgY29kZSB1cCBpbnRvIHNldmVyYWwgZmlsZXM8L3A+CjxsaT4xLjAuNiAtIE1heSwgMjAwNgogICAgPHA+Rml4ZWQgYSBwcm9ibGVtIHdpdGggZWRpdGluZyBkcm9wZG93bnM8L3A+CjwvbGk+CjxsaT4xLjEuMCAtIE1heSwgMjAwNgogICAgPHA+RXZlbnRzPC9wPgogICAgPHA+T3B0aW9uYWxseSBkaXNhbGxvdyByZXBlYXRlZCBsb2dpbnM8L3A+CiAgICA8cD5FeHBvcnQgdGhlIHVzZXIgaWQgdG8gc21hcnR5PC9wPgogICAgPHA+QWRkZWQgb3B0aW9uYWxseSBce1wkZ3JvdXBcfSBmb3IgdGhlIHBhZ2VzIHRvIGp1bXAgdG8gb24gbG9naW48L3A+CjwvbGk+CjxsaT4xLjEuMSAtIFNlcHQsIDIwMDYKICAgIDxwPkZpeGVkIGEgYnVnIHdoZW4gYSB1c2VyIHdhcyBlZGl0aW5nIGhpcyBzZXR0aW5ncyB3aXRoIFwnYWxsb3cgZHVwbGljYXRlIGVtYWlsc1wnIHdhcyBvZmY8L3A+CiAgICA8cD5DaGFuZ2VkIHRoZSBkcm9wZG93biB0YWJsZSB0byAyNTUgY2hhcmFjdGVyczwvcD4KICAgIDxwPk1pbm9yIGNsZWFudXBzPC9wPgo8L2xpPgo8bGk+MS4xLjIgLSBEZWMsIDIwMDYKICAgIDxwPkZpeGVzIChob3BlZnVseSkgdG8gdGhlIGFkb2RiL2Fkb2RiLWxpdGUgREFURVRJTUUgaXNzdWU8L3A+CiAgICA8cD5BZGQgY2FwdGNoYSBzdXBwb3J0IHRvIHRoZSBsb2dpbiBzY3JlZW4gKG9wdGlvbmFsKSwgdGhhbmtzIGRpdHRtYW48L3A+CiAgICA8cD5GaXhlcyB0byBjYW5jZWwgaGFuZGxpbmcgb24gdGhlIGxvc3QgcGFzc3dvcmQgYW5kIGNoYW5nZSBzZXR0aW5ncyBzY3JlZW5zPC9wPgogICAgPHA+Rml4ZXMgdG8gdXNlciBleHBpcnkgKG1vcmUgREJUaW1lc3RhbXAgaXNzdWVzKSwgdGhhbmtzIGFnYWluIGRpdHRtYW48L3A+CiAgICA8cD5PcHRpb24gdG8gYWxsb3cgRkVVc2VycyB0byBoYXZlIGl0cyBvd24gc2V0IG9mIHBlcm1pc3Npb25zIGFzc2lkZSBmcm9tIHRoZSBhZG1pbiBwZXJtaXNzaW9ucy4gIFRoYW5rcyBfU2pHXzwvcD4KICAgIDxwPk9wdGlvbiB0byBhbGxvdyBkdXBsaWNhdGUgcGFzc3dvcmQgcmVtaW5kZXIgcmVxdWVzdHMgYW5kIHRvIHNwZWNpZnkgdGV4dCBvbiB0aGUgc2lnbmluIGJ1dHRvbi4gIFRoYW5rcyBfU2pHXzwvcD4KICAgIDxwPkdlbmVyYWwgY2xlYW51cCBvZiBmdW5jdGlvbnMgdGhhdCB3ZXJlIG5vdCBiZWluZyB1c2VkIGFuZCBub3RpY2VzL3dhcm5pbmdzPC9wPgogICAgPHA+QWRkZWQgdGhlIG9ubHlfZ3JvdXBzIHBhcmFtIGZvciBsb2dpbiBmb3Jtcy4gIFRoYW5rcyB3aXNoeTwvcD4KICAgIDxwPkZpeGVzIHRvIHRoZSBsZW5ndGggb2YgdGhlIGVtYWlsIGZpZWxkIGluIHRoZSBjaGFuZ2UgcGFzc3dvcmQgZm9ybTwvcD4KICAgIDxwPkZpeGVzIHRvIHRoZSBlbWFpbCB2YWxpZGF0aW9uIHN0dWZmPC9wPgo8L2xpPgogICAgPGxpPjEuMi4wIC0gQXByaWwsIDIwMDcKICAgIDxwPmVsaWphaGxvZmdyZW4gLSBGaXhlcyB0byBjYXB0Y2hhIHN1cHBvcnQsIGFuZCBzb21lIHRlbXBsYXRlIGNsZWFudXBzLjwvcD4KICAgIDxwPkFkZCBzdXBwb3J0IGZvciBtdWx0aSBzZWxlY3QgbGlzdHM8L3A+CiAgICA8cD5UZW1wbGF0ZSBjbGVhbnVwcyAobW9yZSBvZiBlbSk8L3A+CiAgICA8cD5BZGQgc3VwcG9ydCBmb3IgdmFsdWU9a2V5IHN0dWZmIGluIHRoZSBkcm9wZG93biBhbmQgbXVsdGkgc2VsZWN0IGxpc3RzLjwvcD4KICAgIDxwPmJldHRlciBjaGVja2luZyBvZiB0aGUgImF0IGxlYXN0IG9uZSBncm91cCByZXF1aXJlZCIgc3R1ZmY8L3A+CiAgICA8cD5PdXRwdXQgbW9yZSBzbWFydHkgdmFyaWFibGVzIG9uIHRoZSB1c2VyIHNldHRpbmdzIHBhZ2UsIHRvIGFsbG93IHBlb3BsZSB0byBtb2RpZnkgdGhlIHRlbXBsYXRlIHRvIHNvbWV0aGluZyB0aGF0IGlzIG1vcmUgYWNjZXNzaWJpbGU8L3A+CiAgICA8cD5TcGxpdCBpbnRvIG1vcmUgZmlsZXMgZm9yIHBlcmZvcm1hbmNlPC9wPgogICAgPHA+WW91IGNhbiBub3cgbm90IGRlbGV0ZSBhIGdyb3VwIHRoYXQgc3RpbGwgaGFzIHVzZXJzPC9wPgogICAgPHA+Tm93IGhhbmRsZSByZWdleCBwcm9ibGVtcyBiZXR0ZXIgaW4gdGhlIGFkbWluIHNlY3Rpb24gdXNlcnMgdGFiPC9wPgogICAgPHA+RW1haWwgZmllbGRzLCB3aGVuIHNwZWNpZmllZCBhcyBvcHRpb25hbCwgbWFrZSBlbSBhY3R1YWxseSBvcHRpb25hbDwvcD4KICAgIDxwPkFkZCBzdXBwb3J0IGZvciBpbWFnZSB1cGxvYWRzLCB0aGlzIGlzIGEgYmlnIGZlYXR1cmUuICBJbWFnZXMgYXJlIHNjYWxlZCB0byBhIG1heGltdW0gc2l6ZSBpbiBvbmUgZGltZW5zaW9uLCBhbmQgc3RvcmVkIGFzIGZpbGVzIGluIGEgY29uZmlndXJhYmxlIGRpcmVjdG9yeSB1bmRlciB0aGUgdXBsb2Fkc19wYXRoLjwvcD4KICAgIDxwPkNhcHRjaGEgbW9kZSBpcyBub3cgb24gYnkgZGVmYXVsdCwgdW5sZXNzIHlvdSB1c2UgdGhlIG5vY2FwdGNoYSBwYXJhbWV0ZXIgaW4gdGhlIHRhZy48L3A+CiAgICA8cD5GaXhlcyB0byBDU1YgZXhwb3J0Li4uIGl0IHdhcyBhc3N1bWluZyB0aGUgZGJfcHJlZml4IGlzIGNtc188L3A+CiAgICA8cD5JbXBvcnQgVXNlcnMgZnJvbSBDU1Y8L3A+CiAgICA8cD5GaXhlcyB0byB0aGUgaW5zdGFsbCBhbmQgdW5pbnN0YWxsIG1ldGhvZHMsIGFuZCBub3cgdGhlIGFsbG93X3JlcGVhdGVkX2xvZ2lucyBwcmVmZXJlbmNlIHNob3VsZCB3b3JrPC9wPgogICAgPHA+QWRkcyBwcm9wZXIgdXNlciBoaXN0b3J5IHRyYWNraW5nLiAgTm93IHRyYWNrIGZhaWxlZCBsb2dpbnMsIGxvZ2lucywgZXhwaXJpZXMsIGFuZCBsb2dvdXRzLCBvbiBhIHBlciB1c2VyIGJhc2lzLjwvcD4KICAgIDxwPkZpeGVzIHRvIHRoZSBjYW5jZWwgYnV0dG9uIG9mIHRoZSB1c2VyIHNldHRpbmdzIHBhZ2UsIGlmIHRoZSB1c2VyIHNldHRpbmdzIGZvcm0gaXMgb24gYSBkaWZmZXJlbnQgcGFnZS48L3A+CiAgICA8cD5GaXhlcyB0byB0aGUgY2FuY2VsIGJ1dHRvbiBvZiB0aGUgZm9yZ290IHBhc3N3b3JkIHBhZ2UsIGlmIHRoZSBmb3Jnb3QgcGFzc3dvcmQgZm9ybSBpcyBvbiBhIGRpZmZlcmVudCBwYWdlLjwvcD4KICAgIDxwPk1pbm9yIGZpeGVzIHRvIGJlaGF2aW91ciBvYWYgdGhlIHByZWZlcmVuY2VzIHBhbmVscy48L3A+CjwvbGk+CjxsaT4xLjIuMSAtIEp1bmUsIDIwMDcKCTxwPkEgY29va2llIGlzIG5vdyB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgbG9naW4gc3RhdGUgYmV0d2VlbiBzZXNzaW9ucywgaG93ZXZlciB0aGUgY29va2llIGRvZXMgbm90IGxhc3QgYW55IGxvbmdlciB0aGFuIHRoZSB0aW1lb3V0IHNwZWNpZmllZCBpbiB0aGUgdXNlciBzZXR0aW5ncy48L3A+Cgk8cD5BZGRlZCB0aGUgYWJpbGl0eSBmb3IgYW4gYWRtaW5pc3RyYXRvciB0byBsb2dvdXQgdXNlcnM8L3A+Cgk8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byBmaWx0ZXIgYnkgbG9nZ2VkIGluIHN0YXR1czwvcD4KCTxwPkFkZGVkIHRoZSBhYmlsaXR5IGZvciByZWFkLW9ubHkgcHJvcGVydGllcy48L3A+Cgk8cD5BZGRlZCBtb3JlIHZhcmlhYmxlcyBpbiBlYWNoIG9iamVjdCBpbiB0aGUgY2hhbmdlc2V0dGluZ3MgZm9ybTwvcD4KPC9saT4KPGxpPgoJPHA+MS4yLjIgLSBKdW5lLCAyMDA3PC9wPgoJPHA+dHN3IC0gQWRkZWQgZXZlbnQgT25VcGRhdGVVc2VyIHdoaWNoIGdldHMgY2FsbGVkIHdoZW4gdXNlciAob3IgYWRtaW4pIHVwZGF0ZXMgdXNlciBpbmZvPC9wPgoKPC9saT4KPGxpPjEuMyAtIE9jdG9iZXIsIDIwMDcKPHA+QWRkZWQgc3VwcG9ydCBmb3IgJ3JlbWVtYmVyIG1lJyBzbyB0aGF0IGxvZ2luIGluZm9ybWF0aW9uIGlzIHN0b3JlZCBpbiBhIGNvb2tpZS4gIEFuZCBzdXBwb3J0IGZvciBhIGZvcm0gdG8gYWxsb3cgdGhhdCBjb29raWUgdG8gYmUgcmVzZXQuPC9wPgo8cD5ObyBsb25nZXIgc3VwcG9ydCBub24gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgaW4gcHJvcGVydHkgbmFtZXMuPC9wPgo8cD5OdW1lcm91cyBzbWFsbCBidWdmaXhlcy48L3A+CjxwPlJlcXVpcmUgQ01TIDEuMiBvciBncmVhdGVyLjwvcD4KPC9saT4KPGxpPjEuMy4xIC0gTm92ZW1iZXIsIDIwMDcKPHA+Rml4ZXMgcHJvYmxlbXMgd2l0aCBwYXJhbWV0ZXJzIG5vdCBiZWluZyBjbGVhbmVkIGluIHRoZSBjaGFuZ2Ugc2V0dGluZ3MgZGlhbG9nIG9uIHRoZSBmcm9udCBlbmQuPC9wPgo8cD5GaXhlcyBhbiB1cGRyYWRlIGlzc3VlIGluIHRoZSBkYXRhYmFzZSBzY2hlbWE8L3A+CjxwPkZpeGVzIGFuIGlzc3VlIGluIGEgR2V0U21hcnR5KCkgY2FsbCB0aGF0IHdhcyBhcHBhcmVudGx5IGNhdXNpbmcgcGVvcGxlIGRpZmZpY3VsdGllcyB3aXRoIHRoZSBsb2dpbiBmb3JtLjwvcD4KPHA+QWRkIGEgcHJlZmVyZW5jZSB0aGF0IGFsbG93cyBhZG1pbnMgdG8gc3BlY2lmeSBhIHBhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgdGhlIGZvcmdvdCBwYXNzd29yZCB2YWxpZGF0aW9uIGZvcm0gaXMgY29tcGxldGUuPC9wPgo8cD5GaXhlcyBhIHByb2JsZW0gd2l0aCBoaWRkZW4gcHJvcGVydGllcyBiZWluZyBsb3N0IGFmdGVyIGEgdXNlciBjaGFuZ2VkIHRoZWlyIHNldHRpbmdzLjwvcD4KPHA+VGhlIEZvcmdvdCBQYXNzd29yZCBhbmQgTG9zdCBVc2VybmFtZSBmb3JtcyBhcmUgbm93IGlubGluZTwvcD4KPHA+Rml4ZXMgdG8gZXJyb3JzIGluIGVuY3J5cHRpb24gd2l0aCB0aGUgc2Vzc2lvbmluZzwvcD4KPHA+Rml4ZXMgdG8gdGhlIGxvc3QgdXNlcm5hbWUgZnVuY3Rpb25hbGl0eS48L3A+CjwvbGk+CjxsaT4xLjMuMyAtIERlY2VtYmVyLCAyMDA3CjxwPk5vdyBvcHRpb25hbGx5IGFsbG93IHNvbWUgZnJvbnRlbmQgZm9ybXMgdG8gYmUgaW5saW5lZC48L3A+CjxwPkFkZCBlbWFpbCBub3RpZmljYXRpb25zIHdoZW4gdXNlciBjaGFuZ2VzIHRoZWlyIHNldHRpbmdzLCBvciBvbiBhbnkgb3RoZXIgZXZlbnQuPC9wPgo8cD5DaGFuZ2UgdGhlIG1heGltdW0gZGF0YSBzaXplIGZvciBwcm9wZXJ0aWVzIGZyb20gMjU1IGNoYXJhY3RlcnMgdG8gbG9uZ3RleHQ8L3A+CjxwPkZpeGVzIGFuIGlzc3VlIHdoZXJlIHRoZSBsb2dvdXQgbGlua3MgZGlkIG5vdCBvYmV5IHRoZSBwcmVmZXJlbmNlIHdoaWNoIGRpY3RhdGVkIHdoaWNoIHBhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgbG9nb3V0LjwvcD4KPC9sST4KPGxpPjEuNCAtIEZlYnJ1YXJ5LCAyMDA4CjxwPkFkZHMgdGhlIHZpZXd1c2VyIGFjdGlvbiB0byB2aWV3IHRoZSBwcm9wZXJ0aWVzIGZvciBhIHNwZWNpZmljIHVzZXI8L3A+CjxsaT4xLjQuMSAtIEZlYnJ1YXJ5LCAyMDA4CjxwPkFkZHMgdGhlIEdldFVzZXJIaXN0b3J5IG1ldGhvZCB0byB0aGUgYXBpPC9wPgo8cD5BZGRzIGEgcHJlZmVyZW5jZSBmb3IgcGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBjaGFuZ2Ugc2V0dGluZ3M8L3A+CjxwPlVzZSB0aGUgYWZ0ZXJfdmVyaWZ5Y29kZSBwcmVmZXJlbmNlPC9wPgo8L2xpPgo8bGk+MS40LjIgLSBNYXJjaCwgMjAwOAo8cD5GaXhlcyBwcm9ibGVtcyB3aXRoIGNhbmNlbCBidXR0b25zPC9wPgo8cD5NYWtlcyBpdCBlYXNpZXIgZm9yIHRleHQgb24gdmFyaW91cyBidXR0b25zIGFuZCBsaW5rcyB0byBiZSBjaGFuZ2VkPC9wPgo8cD5VcGRhdGUgZGVwZW5kZW5jaWVzLCBldGMuPC9wPgo8cD5VcGRhdGUgYWxsIGZpbGVzIGFuZCB0aGUgaGVscCB0byByZWZsZWN0IHRoZSBuZXcgbGljZW5zZTwvcD4KPHA+QWRqdXN0bWVudHMgc28gdGhlIHNpZ25pbiBhbmQgc2lnbm91dCB0ZXh0IGNhbiBiZSBjaGFuZ2VkIGVhc2lseTwvcD4KPHA+Q2xlYW51cHMgYW5kIGJ1ZyBmaXhlczwvcD4KPC9saT4KPGxpPjEuNC4zIC0gSnVuZSwgMjAwOAo8cD5Ob3cgdXNlIHNlc3Npb24gdmFyaWFibGVzIHRvIGtlZXAgdHJhY2sgb2YgdXNlciB2YXJpYWJsZXMgYmV0d2VlbiBzdGVwcyBvZiB0aGUgZm9ybXMgZm9yIGFkZGluZyBhbmQgZWRpdGluZyB1c2Vycy48L3A+CjxwPkdldCByaWQgb2YgdGhlIHRpbWUgZmllbGRzIGZvciB0aGUgZXhwaXJ5IGRhdGUsIGFuZCBqdXN0IGV4cGlyZSBhdCAyMzo1OTo1OSBvbiB0aGF0IHNwZWNpZmllZCBkYXk8L3A+CjxwPkFkZGVkIHRoZSBhYmlsaXR5IGZvciBleHRlcm5hbCBtb2R1bGVzIHRvIGludGVyYWN0IChzb21ld2hhdCkgd2l0aCBmZXUsIGFuZCBzcGVjaWZ5IGEgcmV0dXJuIGxvY2F0aW9uPC9wPgo8cD5BZGRlZCB0aGUgR2V0RnVsbFVzZXJzSW5Hcm91cCgpIG1ldGhvZCBpbnRvIHRoZSBhcGk8L3A+CjwvbGk+CjxsaT4xLjQuNCAtIEF1Z3VzdCwgMjAwOAo8cD5UaGFua3MgdG8gX1NqR18gd2Ugbm93IHN1cHBvcnQgdXNpbmcgZW1haWwgYWRkcmVzc2VzIGFzIHVzZXJuYW1lICh0aGVyZSBpcyBhIHByZWZlcmVuY2UgaW4gdGhlIGFkbWluKS48L3A+CjxwPkFkZHMgYSBHZXRFbWFpbCBtZXRob2QgdG8gdGhlIGFwaSB0byByZXR1cm4gdGhlIGZpcnN0IGVtYWlsIGFkZHJlc3MgZm91bmQgZm9yIHRoZSBzcGVjaWZpZWQgdXNlci48L3A+CjwvbGk+CjxsaT4xLjUgLSBBdWd1c3QsIDIwMDgKPHA+QWRkIHRoZSBmZXVfc21hcnR5IGNsYXNzIHdpdGggYSBmZXcgZnVuY3Rpb25zIGluIGl0LCBmb3IgaXRlcmF0aW5nIHRocm91Z2ggdXNlcnMgaW4gc21hcnR5LjwvcD4KPC9saT4KPGxpPjEuNS4xIC0gQXVndXN0LCAyMDA4CjxwPktlZXAgdGhlIGxvZ2luaWQgaW4gYSB2YXJpYWJsZSwgdG8gY3V0IGRvd24gb24gdGhlIG51bWJlciBvZiByZXBlYXQgcXVlcmllcy48L3A+CjxwPkZpeGVzIHRvIHByb3BlcnRpZXMgd2l0aCBzcGFjZXMgaW4gdGhlIHZhbHVlcy48L3A+CjwvbGk+CjxsaT4xLjUuMiAtIEF1Z3VzdCwgMjAwOAo8cD5TcGxpdCBvdXQgYSBmZXcgbW9yZSBmaWxlcyB0byBzaHJpbmsgbWVtb3J5IGZvb3RwcmludCBhIGJpdCBtb3JlPC9wPgo8cD5GaXhlcyBzb21lIHRhYiBuYW1lIHN0dWZmPC9wPgo8cD5TbWFsbCB2YWxpZGF0aW9uIGlzc3VlIHdpdGggZGVmYXVsdCB0ZW1wbGF0ZTwvcD4KPHA+TWlub3IgZW5oYW5jZW1ldG5zIHRvIHRoZSB2aWV3dXNlciB0ZW1wbGF0ZS48L3A+CjxwPkdldCByaWQgb2YgY29tbWVudGVkIG91dCBjb2RlIHRvIHNocmluayB0aGUgZmlsZSBkb3duIGEgYml0LjwvcD4KPHA+Rml4IGZvcmdvdCBwYXNzd29yZCBmb3JtIHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB1c2VybmFtZSA9PSBlbWFpbCBhZGRyZXNzLjwvcD4KPHA+QWRkIHByZXR0eSB1cmwgc3VwcG9ydCBpbnRvIHRoZSBsb3N0IHBhc3N3b3JkIGVtYWlsLjwvcD4KPC9saT4KPGxpPjEuNS4zIC0gU2VwdGVtYmVyLCAyMDA4CjxwPk51bWVyb3VzIHNtYWxsLCBidXQgYW5ub3lpbmcgYnVnIGZpeGVzPC9wPgo8bGk+MS41LjQgLSBEZWNlbWJlciwgMjAwOAo8cD5Nb3JlIGFuZCBtb3JlIGJ1ZyBmaXhlcy48L3A+CjxwPlRoZSBzdGFydHMgb2YgcHJldHR5IHVybCBzdXBwb3J0ICh0aGFuayB5b3UgTnVubyk8L3A+CjwvbGk+CjxsaT4xLjYgLSBKYW51c2FyeSwgMjAwOQogIDx1bD4KICA8bGk+Q29tcGxldGUgcmV3cml0ZSBvZiBwcm9wZXJ0eSBjcmVhdGlvbiBhbmQgZWRpdGluZyBzdHVmZi48L2xpPgogIDxsaT5BZGQgdGhlIGFiaWxpdHkgdG8gb3B0aW9uYWxseSBlbmFibGUgYSB3eXNpd3lnIGZvciB0ZXh0IGFyZWEgcHJvcGVydGllcy48L2xpPgogIDxsaT5ObyBsb25nZXIgYWxsb3cgYXV0byBpbnN0YWxsIG9yIHVwZ3JhZGUuPC9saT4KICA8bGk+Q29tcGxldGUgcmV3cml0ZSBvZiBncm91cCBjcmVhdGlvbiBhbmQgZWRpdGluZyBzdHVmZi4uLi4gcmUtb3JkZXJpbmcgaXMgc2ltcGxlciBub3cuPC9saT4KICA8bGk+UmUtb3JnYW5pemUgdGhlIHByZWZlcmVuY2VzIHRhYiwgYW5kIHRoZSB1c2VycyBmaWx0ZXJpbmcgc3R1ZmYgdG8gYmUgYSBiaXQgbW9yZSBwcmVzZW50YWJsZS48L2xpPgogIDxsaT5BZGQgbmV3IHByZWZlcmVuY2UgZm9yIHRoZSBkZWZhdWx0IGV4cGlyeSBhZ2UgZm9yIHVzZXJzLjwvbGk+CiAgPGxpPkFkZCBuZXcgcHJlZmVyZW5jZSBpbmRpY2F0aW5nIHdldGhlciB3ZSBzaG91bGQgYXR0ZW1wdCB0byBjcmVhdGUgcmFuZG9tIHVzZXJuYW1lcyBvciBub3QuPC9saT4KICA8bGk+QWRkIGJ1bGsgdXNlciBkZWxldGUgY2FwYWJpbGl0aWVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi4xIC0gSmFudXNhcnksIDIwMDkKICA8dWw+CiAgICA8bGk+TWlub3IgdGVtcGxhdGUgY2hhbmdlcyB0byB0aGUgY2hhbmdlIHNldHRpbmdzIHN0dWZmLjwvbGk+CiAgICA8bGk+Rml4IHRleHQgcHJvcGVydHkgbGVuZ3RoIGlzc3Vlcy48L2xpPgogICAgPGxpPlJlbW92ZSBzdHVwaWQgZGllIGFuZCBkZWJ1ZyBzdGF0ZW1lbnRzIGZyb20gdGhlIHJlbWVtYmVyIG1lIHN0dWZmLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi4yIC0gSmFudXNhcnksIDIwMDkKICA8dWw+CiAgICA8bGk+QmVnaW4gaW1wbGVtZW50aW5nIHRoZSB0YWJsZXNvcnRlciBzdHVmZjwvbGk+CiAgICA8bGk+Rml4IHByb2JsZW1zIHdpdGggaW1hZ2UgZmllbGRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi4zIC0gRmVicnVhcnksIDIwMDkKICA8dWw+CiAgPGxpPkZpeCBjb29raWUgaXNzdWVzIHBlcm1hbmVudGx5LiAoSSBob3BlKS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjYuNCAtIEFwcmlsLCAyMDA5CiAgPHVsPgogIDxsaT5BZGQgZmllbGQgdHlwZSBhcyBhIG1lbWJlciBvZiB0aGUgY29udHJvbCBvYmplY3QgaW4gdmFyaW91cyBmb3Jtcy48L2xpPgogIDxsaT5BZGRlZCByYWRpbyBidXR0b25zIGZpZWxkIHR5cGUgKF9TakdfKTwvbGk+CiAgPGxpPk1vcmUgZml4ZXMgdG8gdXNlciBleHBvcnQgc3R1ZmYuPC9sPmkKICA8bGk+Rml4IGZvciByZXR1cm50byBwYXJhbSBpbiBsb2dpbiBmb3JtPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjUgLSBNYXksIDIwMDkKICA8dWw+CiAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjYuNiAtIEp1bHksIDIwMDkKICA8dWw+CiAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogIDxsaT5BZGQgRGF0ZSBmaWVsZCB0eXBlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi43IC0gSnVseSwgMjAwOQogIDx1bD4KICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi44IC0gSnVseSwgMjAwOQogIDx1bD4KICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPGxpPkFkZCBtb3JlIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIGZldV9zbWFydHkgb2JqZWN0LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi44LjEgLSBKdWx5LCAyMDA5CiAgPHVsPgogIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjkgLSBBdWd1c3QsIDIwMDkKICA8dWw+CiAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjYuMTAgLSBPY3RvYmVyLCAyMDA5CiAgPHVsPgogIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjExIC0gTm92ZW1iZXIsIDIwMDkKICA8dWw+CiAgPGxpPk5vdyBjb252ZXJ0IHByb3BlcnR5IG5hbWVzIHRvIGNvbnRhaW4gb25seSB2YWxpZCBjaGFycyBob3BlZnVsbHkuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS42LjEyIC0gSmFudWFyeSwgMjAxMAogIDx1bD4KICA8bGk+TWlub3IgaW1wcm92ZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNi4xMyAtIEZlYnJ1YXJ5LCAyMDEwCiAgPHVsPgogIDxsaT5Nb3JlIE1pbm9yIGltcHJvdmVtZW50cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjcgLSBGZWJydWFyeSwgMjAxMAogIDx1bD4KICA8bGk+QWRkcyB0aGUgcmVzZXRfc2Vzc2lvbiBhY3Rpb24uPC9saT4KICA8bGk+QnVnIGZpeGVzPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS43LjEgLSBGZWJydWFyeSwgMjAxMAogIDx1bD4KICA8bGk+Rml4ZXMgYW5kIGVuaGFuY2VtZW50cyB0byB0aGUganF1ZXJ5IHJlc2V0IHNlc3Npb24gdGVtcGxhdGUuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS43LjEgLSBNYXJjaCwgMjAxMAogIDx1bD4KICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuNy4zIC0gTWFyY2gsIDIwMTAKICA8dWw+CiAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjggLSBNYXJjaCwgMjAxMAogIDx1bD4KICA8bGk+Tm93IHRoZSByZWRpcmVjdF90byBwYWdlIHByZWZlcmVuY2VzIGFyZSBzbWFydHkgdGVtcGxhdGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuOC4yIC0gQXByaWwsIDIwMTAKICA8dWw+CiAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjguMyAtIEFwcmlsLCAyMDEwCiAgPHVsPgogIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS44LjQgLSBBcHJpbCwgMjAxMAogIDx1bD4KICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuOC41IC0gTWF5LCAyMDEwCiAgPHVsPgogICAgPGxpPkFkZHMgdGhlIHJldHVybmxhc3QgcGFyYW1ldGVyIHRvIGFsbG93IHJldHVybmluZyBiYWNrIHRvIHRoZSBwcmV2aW91cyB1cmwgb24gbG9naW4gb3IgbG9nb3V0LjwvbGk+CiAgICA8bGk+Rml4ZXMgdGhlIHJlc2V0IHRvIGRlZmF1bHRzIGJ1dHRvbiBpbiB0aGUgbG9zdCB1c2VybmFtZSB0ZW1wbGF0ZShzKSBmb3JtLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuOSAtIE1heSwgMjAxMAogIDx1bD4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgdW5pcXVlIGZpZWxkcy48L2xpPgogICAgPGxpPlZhcmlvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuOS4xIC0gTWF5LCAyMDEwCiAgPHVsPgogICAgPGxpPlJlLWFkZHMgYSBmdW5jdGlvbiBuZWVkZWQgYnkgQXZhaWxhYmlsaXR5LjwvbGk+CiAgICA8bGk+TWlub3IgYWRkaXRpb24gdG8gdGhlIHZpZXcgdXNlciB0ZW1wbGF0ZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjkuMiAtIE1heSwgMjAxMAogIDx1bD4KICAgIDxsaT5SZW1vdmUgcHJldHR5IHVybHMgZm9yIGxvc3QgdXNlcm5hbWUsIGFuZCBjaGFuZ2Ugc2V0dGluZ3MgZm9ybXMgYmVjYXVzZSB0aGV5IHdlcmUgbG9zaW5nIHBhcmFtZXRlcnMgbGlrZSB0aGUgbGFuZyBwYXJhbWV0ZXIuPC9saT4KICAgIDxsaT4oVGVkKTogRml4IGFiaWxpdHkgdG8gdW5jaGVjayBjaGVja2JveGVzIHdoaWxlIGVkaXRpbmcgYSB1c2VyIGluIHRoZSBhZG1pbjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuOS4zIC0gSnVuZSwgMjAxMAogIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMCAtIEp1bmUsIDIwMTAKICA8dWw+CiAgICA8bGk+QWRkcyBzdXBwcG9ydCBmb3IgYWRkaXRpb25hbCBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zIChzdGlsbCB0ZXN0aW5nKS48L2xpPgogICAgPGxpPkZpeGVzIGEgbWlub3IgaXNzdWUgd2l0aCByZXR1cm50by48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEwLjEgLSBKdWx5LCAyMDEwCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEwLjIgLSBKdWx5LCAyMDEwCiAgPHVsPgogICAgPGxpPkFkZHMgdGhlIEdldEV4cHJpcnlEYXRlIGFwaSBtZXRob2QuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMSAtIEp1bHksIDIwMTAKICA8dWw+CiAgICA8bGk+QWRkcyBvcHRpb25hbCBlbmNyeXB0aW9uIGZvciBwcm9wZXJ0eSBkZWZpbml0aW9ucy48L2xpPgogICAgPGxpPlZhcmlvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+SW1wcm92ZW1lbnQgdG8gdGhlIENTViBleHBvcnQgc3R1ZmYuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMiAtIEF1Z3VzdCwgMjAxMAogIDx1bD4KICAgIDxsaT5Ob3cgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCBTZWxmUmVnaXN0cmF0aW9uIHRvIGhhbmRsZSBwYWlkIHN1YnNjcmlwdGlvbnMuPC9saT4KICAgIDxsaT5UaGUgY29udGVudF9tb2R1bGUgdGFnIG5vdyBwcm92aWRlcyBhIG11bHRpLXNlbGVjdCBsaXN0IChUZWQpPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi4zIC0gU2VwdGVtYmVyLCAyMDEwCiAgPHVsPgogICAgPGxpPkFkZHMgYW4gb3ZlcmFsbCBwcmVmZXJlbmNlIGZvciBwYWlkIHJlZ2lzdHJhdGlvbiwgd2hpY2ggdHJpZ2dlcnMgdGhlIGV2ZW50IGhhbmRsZXJzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuNCAtIE9jdG9iZXIsIDIwMTAKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuNCAtIE9jdG9iZXIsIDIwMTAKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+Rml4ZXMgZm9yIHN1cHBvcnQgZm9yIENNU01TIDEuOTwvbGk+CiAgICA8bGk+UmVxdWlyZXMgQ0dFeHRlaW9ucyAxLjIxIG9yIGJldHRlcjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuNiAtIE5vdmVtYmVyLCAyMDEwCiAgPHVsPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEyLjcgLSBEZWNlbWJlciwgMjAxMAogIDx1bD4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi44IC0gRGVjZW1iZXIsIDIwMTAKICA8dWw+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+U29tZSBtaW5vciBidWcgZml4ZXMgcmVsYXRlZCB0byBFX1NUUklDVCBhbmQgRV9ERVBSRUNBVEVELjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuMTAgLSBKYW51YXJ5LCAyMDExCiAgPHVsPgogICAgPGxpPkZpeGVzIHByb2JsZW0gd2l0aCBhZGQvZWRpdCBncm91cCB3aXRoIGxvdHMgb2YgcHJvcGVydGllcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEyLjEyIC0gRmVicnVhcnksIDIwMTEKICA8dWw+CiAgICA8bGk+TWlub3IgQVBJIEZpeGVzLjwvbGk+CiAgICA8bGk+QWRkcyBhIG1ldGhvZCB0byBjbGVhciB0aGUgcHJvcGVydHkgY2FjaGUuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMi4xMyAtIE1hcmNoLCAyMDExCiAgPHVsPgogICAgPGxpPkZpeGVzIHRvIGV4cG9ydC48L2xpPgogICAgPGxpPkZpeGVzIHRvIHVzZXIgZWRpdGluZy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjEyLjEzIC0gTWFyY2gsIDIwMTEKICA8dWw+CiAgICA8bGk+Rml4ZXMgcHJvYmxlbSB3aXRoIGltYWdlIGZpZWxkcyB3aGVuIGVkaXRpbmcgYSB1c2VyLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuMTUgLSBNYXksIDIwMTEKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgc21hbGwgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTIuMTYgLSBNYXksIDIwMTEKICA8dWw+CiAgICA8bGk+QnVnIGZpeGVzIHdydCBsb3N0IHBhc3N3b3JkIGZ1bmN0aW9uYWxpdHkuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xMyAtIEp1bmUsIDIwMTEKICA8dWw+CiAgICA8bGk+Rml4ZXMgYSBtaW5vciBidWcgaW4gdGhlIExvZ291dCgpIG1ldGhvZC48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZm9yY2UgbG9nb3V0IHVzZXJzIGF0IHNwZWNpZmllZCB0aW1lcy48L2xpPgogICAgPGxpPk1vZGlmaWVzIHRoZSBiZWhhdmlvciBvZiB0aGUgKGRlZmF1bHQpIGNoYW5nZSBzZXR0aW5ncyBmb3JtIHRvIGRpc3BsYXkgdGhlIGxvZ291dCBmb3JtIHdoZW4gY29tcGxldGVkLjwvbGk+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgdG8gc3BlY2lmeSBhIChtaW5pbXVtKSB0aW1lIGludGVydmFsIGJldHdlZW4gZXhwaXJ5IGFjdGlvbnMuICBUaGlzIHNob3VsZCBzYXZlIGEgZmV3IHF1ZXJpZXMgZm9yIG1vc3QgcmVxdWVzdHMuPC9saT4KICAgIDxsaT5BZGRzIGEgcHJlZmVyZW5jZSB0byBzcGVjaWZ5IGEgdGltZSBpbnRlcnZhbCBiZXR3ZWVuIHVzZXIgY2hlY2tpbnMgdG91Y2hpbmcgdGhlIGRhdGFiYXNlLiAgVGhpcyBzaG91bGQgc2F2ZSBhIGZldyBtb3JlIGRiIHF1ZXJpZXMgZm9yIG1vc3QgcmVxdWVzdHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNCAtIEp1bHksIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBhZGp1c3QgdGhlIHBhc3N3b3JkIHNhbHQgKG9ubHkgaWYgdGhlcmUgYXJlIG5vIHVzZXJzKS48L2xpPgogICAgPGxpPkltcHJvdmVtZXRucyB0byB0aGUgQ1NWIGV4cG9ydC9pbXBvcnQgcm91dGluZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNSAtIEp1bHksIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBhZGQgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHRoZSB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTUuMSAtIEF1Z3VzdCAyMDExCiA8dWw+CiAgIDxsaT5NaW5vciBidWcgZml4LjwvbGk+CiA8L3VsPgo8bGk+MS4xNS40IC0gT2N0b2JlciAyMDExCiAgPHVsPgogICAgPGxpPk9wdGltaXphdGlvbnMuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5NaW5vciBBUEkgZW5oYW5jZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTUuNSAtIE9jdG9iZXIsIDIwMTEKICA8dWw+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTYgLSBPY3RvYmVyLCAyMDExCiAgPHVsPgogICAgPGxpPkFkZHMgYSBuZXcgJnF1b3Q7UHJvdGVjdGVkIENvbnRlbnQmcXVvdDsgY29udGVudCB0eXBlLiAgQWxvbmcgd2l0aCBhIGZldyByZWxhdGVkIHByZWZlcmVuY2VzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTYuMSAtIE9jdG9iZXIsIDIwMTEKICA8dWw+CiAgICA8bGk+Rml4ZXMgYSBtaW5vciBidWcgd3J0IGNhY2hpbmcgb2YgdXNlciBwcm9wZXJ0aWVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTYuMiAtIE9jdG9iZXIsIDIwMTEKICA8dWw+CiAgICA8bGk+Rml4ZXMgYW4gdXBncmFkZSBpc3N1ZS48L2xpPgogICAgPGxpPkZpeGVzIGEgcmVkaXJlY3QgY2FsbC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjE2LjQgLSBPY3RvYmVyLCAyMDExCiAgPHVsPgogICAgPGxpPkZpeGVzIGZvciBhZGRpdGlvbmFsIGNvbnRlbnQgYmxvY2tzLjwvbGk+CiAgICA8bGk+Rml4IGZvciBub3RpY2UgZ2VuZXJhdGVkIGluIHRoZSBBUEkuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNi42IC0gRGVjZW1iZXIsIDIwMTEKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjE3IC0gRmVicnVhcnksIDIwMTIKICA8dWw+CiAgICA8bGk+TWFueSBtZXRob2RzIGFyZSBwcm90ZWN0ZWQgbm93Li4uIGZvciBiZXR0ZXIgc2VjdXJpdHkuPC9saT4KICAgIDxsaT5BZGRzIGNhcHRjaGEgc3VwcG9ydCB0byB0aGUgZm9yZ290IHBhc3N3b3JkIGZvcm0uPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xNy4xIC0gTWFyY2gsIDIwMTIKICA8dWw+CiAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4xOC54IC0gTWFyY2gsIDIwMTIKICA8dWw+CiAgIDxsaT5JbXByb3ZlZCB1c2VycyB0YWIuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gYWxsb3cgdXNlcnMgdG8gY2hhbmdlIHRoZWlyIHVzZXJuYW1lLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMTgueCAtIE1hcmNoLCAyMDEyCiAgPHVsPgogICAgPGxpPkFkZGVkIHRoZSBkYXRhIHByb3BlcnR5IHR5cGUgKG5vdCBlZGl0YWJsZSBieSBhZG1pbnMpLjwvbGk+CiAgICA8bGk+TW9kaWZpZWQgdGhlIGFwaSB0byBhbGxvdyBkZWxldGluZyBkYXRhIGZyb20gdGhlIHVzZXJzIHdoZW4gZGVsZXRpbmcgcHJvcGVydGllcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjE5IC0gU2VwdGVtYmVyLCAyMDEyCiAgPHVsPgogICAgPGxpPk51bWVyb3VzIGd1aSBpbXByb3ZlbWVudHMuPC9saT4KICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMgYW5kIG1pbm9yIGVuaGFuY2VtZW50cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjIwIC0gT2N0b2JlciwgMjAxMgogIDx1bD4KICAgIDxsaT5GeHhlcyB0byB0aGUgYmVoYXZpb3Igb2YgY2hlY2tib3ggZmllbGRzLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHRoZSBkZWZhdWx0IHZhbHVlIG9mIGNoZWNrYm94ZXMuPC9saT4KICAgIDxsaT5OdW1lcm91cyBvdGhlciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4yMS54CiAgPHVsPgogICAgPGxpPlJlZmFjdG9yaW5nIHRvIGFsbG93IGFsdGVybmF0ZSBmb3JtcyBvZiBhdXRoZW50aWNhdGlvbi48L2xpPgogICAgPGxpPlJlZmFjdG9yaW5nIHRvIGV4cGFuZCB0aGUgdXNlIG9mIHRoZSBjb25zdW1lciBjbGFzcy48L2xpPgogICAgPGxpPk5vdyBhbGxvdyBvdGhlciBtb2R1bGVzIHRvIGNvbnRyb2wgZ3JvdXAgbWVtYmVyc2hpcC48L2xpPgogICAgPGxpPlJlZmFjdG9yaW5nIG9mIHByZWZlcmVuY2VzIGFuZCBzZXR0aW5ncy48L2xpPgogICAgPGxpPlJlZmFjdG9yaW5nIG9mIGNvb2tpZSwgc2Vzc2lvbiwgbG9nZ2luZywgYW5kIGhpc3RvcnkgZnVuY3Rpb25hbGl0aWVzLjwvbGk+CiAgICA8bGk+TnVtZXJvdXMgbWlub3IgZW5oYW5jZW1lbnRzIGFuZCBidWcgZml4ZXMuPC9saT4KICAgIDxsaT4qKiAxLjIxLjExIC0gRml4ZWQgc2lnbmlmaWNhbnQgcHJvYmxlbSB3aXRoIHRoZSBwcm90ZWN0ZWQgY29udGVudCBjb250ZW50IHR5cGUgLi4uIGV2ZXJ5Ym9keSBzaG91bGQgdXBncmFkZSBBU0FQICoqPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4yMi54CiAgPHVsPgogICAgPGxpPkZpeGVzIHRvIGFzY2lpIGltcG9ydDwvbGk+CiAgICA8bGk+RW5jcnlwdGVkIHByb3BlcnRpZXMgYXJlIG5vIGxvbmdlciBleHBvcnRlZCB0byBBU0NJSTwvbGk+CiAgICA8bGk+Rml4ZXMgdG8gZ3JvdXAgZXhwb3J0L2ltcG9ydDwvbGk+CiAgICA8bGk+QWRtaW5pc3RyYXRvcnMgY2FuIG5vIGxvbmdlciBzZWUgYW5kL29yIGVkaXQgZW5jcnlwdGVkIHByb3BlcnRpZXMuPC9saT4KICAgIDxsaT5BZG1pbiB1c2VycyB0YWIgZmlsdGVyaW5nIGhhcyBiZWVuIHJld3JpdHRlbiwgaXMgbm93IGEgdXNlciBwcmVmZXJlbmNlLjwvbGk+CiAgICA8bGk+SW1wcm92ZWQgZXJyb3IgY2hlY2tpbmcgaW4gdGhlIGFkbWluIHVzZXJzIHRhYi48L2xpPgogICAgPGxpPkltcHJvdmVtZW50cyB0byB0aGUgZmV1X3VzZXJfcXVlcnkgc3R1ZmYuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+MS4yMy54CiAgPHVsPgoJPGxpPlJld3JpdGUgQVNDSUkgZXhwb3J0IGFuZCBpbXBvcnQgY29kZS48L2xpPgoJPGxpPlJld3JpdGUgRkVVIENoYW5nZSBzZXR0aW5ncyB0ZW1wbGF0ZTogIE5PVEU6IFlvdSBtYXkgbmVlZCB0byBhZGp1c3QgeW91ciBjaGFuZ2Ugc2V0dGluZ3MgdGVtcGxhdGUuPC9saT4KCTxsaT5SZXdyaXRlIEZFVSBsb2dpbiBmb3JtIHRlbXBsYXRlLjwvbGk+Cgk8bGk+QWRkcyBhIHRyaXZpYWwsIG9wdGlvbmFsIGhvbmV5cG90IGNhcHRjaGEgZmllbGQgdG8gdGhlIGxvZ2luIGZvcm0uICBSZXNldCB5b3VyIGxvZ2luIGZvcm0gdG8gZGVmYXVsdCB2YWx1ZXMgdG8gc2VlIGl0LCBhbmQgaXRzIHVzZS48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjI0LngKCTx1bD4KCTxsaT5Ob3cgdXNlIGNnZV91dGlsczo6Y2xlYW5faW5wdXRfaHRtbCwgYW5kIG90aGVyIGZpbHRlcmluZyBtZWNoYW5pc21zIHRvIHByZXZlbnQgYmFkIGh0bWwvamF2YXNjcmlwdCBmcm9tIGJlaW5nIHN1Ym1pdHRlZCB2aWEgZnJvbnRlbmQgdGV4dCBhcmVhcy48L2xpPgoJPGxpPkFkZHMgZmV1X3NtYXJ0eTo6Z2V0X2dyb3VwX21lbWJlcmxpc3QoJGdpZCkgPGVtPigxLjI0LjEpPC9lbT48L2xpPgoJPGxpPkZpeGVzIGEgdmVyeSBpbXBvcnRhbnQgc2VjdXJpdHkgaXNzdWUgKHZpYSBhIGNydWRlIGhhY2spIHRoYXQgYWxsb3dzIGFub255bW91cyB1c2VycyB0byB2aWV3IHByaXZhdGUgY29kZS4gIFJlY29tbWVuZCB1cGdyYWRpbmcgYXMgc29vbiBhcyBwb3NzaWJsZS4gPGVtPigxLjI0LjMpPC9lbT48L2xpPgoJPGxpPk5vdyBSZXF1aXJlIFBIUCA1LjQuMyBtaW5pbXVtLjwvbGk+Cgk8L3VsPgoJPC9saT4KPGxpPjEuMjUueAoJPHVsPgoJPGxpPk5ldyBzdXBwb3J0IGZvciByZXF1aXJpbmcgc3Ryb25nZXIgcGFzc3dvcmRzIChvcHRpb25hbCBwcmVmZXJlbmNlcywgZW5hYmxlZCBmb3IgbmV3IGluc3RhbGxhdGlvbnMpPC9saT4KCTwvdWw+CjwvbGk+CjxsaT4xLjI1LngKICAgPHVsPgogICAgIDxsaT5NaW5vciB0ZW1wbGF0ZSBmaXhlcy48L2xpPgogICAgIDxsaT5JbXByb3ZlbWVudHMgdG8gcGFzc3dvcmQgc3RyZW5ndGggY2hlY2tzLjwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT4xLjI2LngKCTx1bD4KCTxsaT5QYWdlcyBvZiB0eXBlICdwcm90ZWN0ZWQgY29udGVudCcgd2lsbCBub3cgb25seSBnZW5lcmF0ZSA0MDMgZXJyb3JzIGlmIHVuYXV0aG9yaXplZCBhY2Nlc3MgaXMgZGV0ZWN0ZWQuCgkgICA8cD5UaGlzIGlzIHRvIHNvbHZlIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZXMuICBVc2VycyB3aWxsIG5lZWQgdG8gY3JlYXRlIGEgc3lzdGVtIHBhZ2UgdG8gaGFuZGxlIDQwMyBlcnJvcnMgaW4gYSBncmFjZWZ1bCB3YXkuPC9wPgogICAgICAgIDwvbGk+CiAgICAgICAgPGxpPlJlbW92ZSBjYXB0Y2hhIGFuZCBvdGhlciBwcm90ZWN0ZWQgcGFnZSBvcHRpb25zIGFzIGFueSB1bmF1dGhvcml6ZWQgYWNjZXNzIG5vdyB3aWxsIHJlc3VsdCBpbiA0MDMgZXJyb3JzLjwvbGk+CiAgICAgICAgPGxpPm1vcmUgbWV0aG9kcyB0byBmZXVfc21hcnR5LjwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+MS4yNi54Cgk8dWw+Cgk8bGk+QWRkcyB7JGZldV9zbWFydHktPmdldF9ncm91cF9saXN0KCl9PC9saT4KCTwvdWw+CjwvbGk+Cgo8bGk+MS4yOC54CiAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB2ZXJzaW9uIG9mIEZFVSBoYXMgdW5kZXJnb25lIHNpZ25maWNhbnQgY2hhbmdlcy4gIFRoZXJlIG1heSBiZSBzb21lIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMuPC9kaXY+CiAgPHVsPgoJPGxpPlJlbW92ZWQgdGhlIENoZWNrUGFzc3dvcmQgbWV0aG9kIGluIGFudGljcGF0aW9uIG9mIGFkZGluZyBwcm9wZXIgc2VlZGluZy48L2xpPgoJPGxJPkFkZGVkIEZyb250RW5kVXNlcnM6OmdldF9lbWFpbCgpIGFuZCBhIGZldyBtaW5vciBtZXRob2RzLjwvbGk+Cgk8bGk+VGVtcGxhdGUgQ2xlYW51cHMgYW5kIHJld3JpdGVzOgoJICAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBTb21lIHRlbXBsYXRlcyBtYXkgbmVlZCB0byBiZSByZWJ1aWx0LCB0aG91Z2ggdGhlIGNoYW5nZXMgc2hvdWxkIGJlIG1pbm9yLiAgTW9zdGx5IHRoZSB0ZW1wbGF0ZXMgaGF2ZSBqdXN0IGJlZW4gY29udmVydGVkIHRvIHVzZSBib290c3RyYXAgc3R5bGVzLjwvcD4KCTwvbGk+Cgk8bGk+U3Ryb25nZXIgcGFzc3dvcmQgZW5jcnlwdGlvbjoKCSAgPHA+Tm93LCBvbiBuZXcgaW5zdGFsbHMgYSBzYWx0IGlzIGdlbmVyYXRlZCBhbmQgc3RvcmVkIGZvciBlYWNoIHVzZXIgYWNjb3VudC4gIFRoaXMgaW5kaXZpZHVhbCBzYWx0IGlzIHVzZWQgd2hlbiB2ZXJpZnlpbmcgYSB1c2VycyBwYXNzd29yZC4KCSAgICAgVGhpcyBpcyBmb3IgbmV3IGluc3RhbGxzIG9ubHksIGFuZCBzaG91bGQgaGF2ZSBubyBiZWFyaW5nIG9uIGV4aXN0aW5nIHdlYnNpdGVzIGRvaW5nIGFuIHVwZ3JhZGUuICBIb3dldmVyLCBpZiB5b3UgYXJlIHVzaW5nIHNlbGZyZWcgeW91IE1VU1QgYWxzbyB1cGdyYWRlIHRoZSBzZWxmcmVnIG1vZHVsZS48L3A+Cgk8L2xpPgoJPGxpPkFkZHMgbmV3IEVuY3J5cHRQYXNzd29yZCBtZXRob2QuPC9saT4KCTxsaT5BZGRzIGFiaWxpdHkgZm9yIGFuIGFkbWluIHRvIGZvcmNlIGEgcGFzc3dvcmQgcmVzZXQuPC9saT4KCTxsaT5BZGRzIGFiaWxpdHkgdG8gZGlzYWJsZSBhIHVzZXIgYWNjb3VudCB3aXRob3V0IGNoYW5naW5nIHRoZWlyIHBhc3N3b3JkLjwvbGk+CiAgICAgICAgPGxpPk51bWVyb3VzIG1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgICAgIDxsaT5Ob3cgdXRpbGl6ZSBzbWFydHkgc2NvcGVzIHRvIHJlZHVjZSB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0cywgYW5kIGJlIG1vcmUgbWVtb3J5IGVmZmljaWVudCAoaG9wZWZ1bGx5KS48L2xpPgoJPGxpPjEuMjguMyAtIG1pbm9yIEFQSSBjaGFuZ2VzIGZvciB1c2UgaW4gc2VsZnJlZi48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjI5PGJyLz4KCTxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB2ZXJzaW9uIG9mIEZFVSBoYXMgdW5kZXJnb25lIHNpZ25pZmljYW50IGNoYW5nZXMuICBUaGVyZSBtYXkgYmUgc29tZSBjb21wYXRpYmlsaXR5IHByb2JsZW1zLjwvZGl2PgoJPHVsPgoJPGxpPjxzdHJvbmc+SW1wb3J0YW50Ojwvc3Ryb25nPiBSZS1mYWN0b3JlZCB0aGUgZmV1X3NtYXJ0eSBzdHVmZiBmb3IgQ01TTVMgMi4wIGNvbXBhdGliaWxpdHkuICBUaGlzIG1lYW50IHJlbW92aW5nIHRoZSBhc3NpZ24gcGFyYW1ldGVyLCBhbmQgbWFraW5nIGFsbCBtZXRob2RzIHN0YXRpYy4KCSAgPHA+aS5lOiA8Y29kZT57JGZldV9zbWFydHktPmdldF91c2VyX3Byb3BlcnRpZXMoJHVpZCwncHJvcHMnKX08L2NvZGU+IG11c3Qgbm93IGJlIGNhbGxlZCBsaWtlOiA8Y29kZT57JHByb3BzPWZldV9zbWFydHk6OmdldF91c2VyX3Byb3BlcnRpZXMoJHVpZCl9PC9jb2RlPjwvcD4KCSAgPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBwYXJhbWV0ZXJzIGZvciBzb21lIG1ldGhvZHMgaGFzIGNoYW5nZWQuICBwbGVhc2UgcmV2aWV3IHRoZSBoZWxwLjwvcD4KCTwvbGk+Cgk8bGk+UmUtaW1wbGVtZW50IG1ldGhvZHMgZnJvbSBDdXN0b21Db250ZW50IGludG8gZmV1X3NtYXJ0eS4uLiB3aXRoIHNvbWUgbW9yZSBwb3dlci48L2xpPgoJPGxpPkFkZHMgdGhlIGZldV9wcm90ZWN0IHBsdWdpbi48L2xpPgoJPC91bD4KPC9saT4KPGxpPjEuMzA8YnIvPgoJPGRpdiBjbGFzcz0id2FybmluZyI+Cgk8b2w+Cgk8bGk+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHZlcnNpb24gb2YgRkVVIGhhcyB1bmRlcmdvbmUgc2lnbmlmaWNhbnQgY2hhbmdlcy4gIFRoZXJlIG1heSBiZSBzb21lIGNvbXBhdGliaWxpdHkgcHJvYmxlbXMuPC9saT4KCTxsaT5UaGlzIHZlcnNpb24gdGFrZXMgYWR2YW50YWdlIG9mIHNtYXJ0eSBzY29wZXMgZm9yIHZhcmlvdXMgZGlzcGxheXMuICBUaGlzIHByZXZlbnRzIG9uZSBzbWFydHkgdmFyaWFibGUgZnJvbSBvbmUgdGVtcGxhdGUvbW9kdWxlIGFjdGlvbiBmcm9tIG92ZXJ3cml0aW5nIGRhdGEgZnJvbSBhbm90aGVyIHRlbXBsYXRlL21vZHVsZSBhY3Rpb24uICBIb3dldmVyIGl0IG1lYW5zIHRoYXQgc21hcnR5IHZhcmlhYmxlcyBhcmUgbm90IGF1dG9tYXRpY2FsbHkgZ2xvYmFsLiAgQW5kIGluIG9yZGVyIHRvIG1ha2UgZGF0YSBnbG9iYWwgeW91IG11c3QgZXhwbGljaXRseSBjb3B5IGl0IHRvIHRoZSBnbG9iYWwgc2NvcGUuPC9saT4KCTxsaT48c3Ryb25nPldhcm5pbmc6PC9zdHJvbmc+IFRoZSB1cGdyYWRlIHByb2Nlc3Mgd2lsbCBlbnN1cmUgdGhhdCBkYXRhIGludGVncml0eSBpcyBlbmFibGVkIGluIHRoZSBkYXRhYmFzZSBhbmQgdGhhdCB0aGVyZSBpcyBubyBleHRyYSBkYXRhIGV4aXN0aW5nIGluIHRoZSBoaXN0b3J5LCAgZ3JvdXBwcm9wbWFwIG9yIHByb3BlcnRpZXMgdGFibGUuICBJZiB5b3UgaGF2ZSBtYW5pcHVsYXRlZCB0aGUgRkVVIGRhdGFiYXNlIG1hbnVhbGx5IHRoZW4geW91IG1heSBiZSBzdWJqZWN0IHRvIGRhdGEgbG9zcy48L2xpPgoJPC9vbD4KCTwvZGl2PgoKCTx1bD4KCTxsaT5Db21wbGV0ZSByZXdyaXRlIG9mIGZvcmdvdHRlbiBwYXNzd29yZCBmdW5jdGlvbmFsaXR5LiAgVGhpcyBpbnZvbHZlZCBjaGFuZ2luZyBhbGwgb2YgdGhlIHRlbXBsYXRlcyBmb3IgZm9yZ290dGVuIHBhc3N3b3JkLCBzbyB5b3Ugd2lsbCBuZWVkIHRvIHJlc2V0IHlvdXIgdGVtcGxhdGVzLjwvbGk+Cgk8bGk+Q29udmVydHMgYWxsIHRhYmxlcyB0byB1c2UgaW5ub2RiLCBhbmQgbm93IGVuZm9yY2VzIHNvbWUgZm9yZWlnbiBrZXkgcmVsYXRpb25zaGlwcy4KCTxwPlRoaXMgaGVscHMgZW5zdXJlIGRhdGFiYXNlIGludGVncml0eSwgIGFuZCBhbGxvd3MgdGhpcmQgcGFydHkgbW9kdWxlcyB1c2luZyB0aGUgRkVVIEFQSSB0byBjcmVhdGUgbW9yZSBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzLjwvcD4KCTxwPklmIGEgdGhpcmQgcGFydHkgbW9kdWxlIGNyZWF0ZXMgYSBmb3JlaWduIGtleSByZWxhdGlvbnNoaXAgdG8gdGhlIHVzZXJzIHRhYmxlLCBhbmQgZGF0YSBleGlzdHMgaW4gdGhlIHRoaXJkIHBhcnR5IHRhYmxlIGtleWVkIHRvIGFuIGV4aXN0aW5nIEZFVSBhY2NvdW50IHRoZW4gdGhvc2UgdXNlcnMgY2Fubm90IGJlIGRlbGV0ZWQgdmlhIHRoZSBGRVUgYWRtaW4gdW50aWwgdGhlIHRoaXJkIHBhcnR5IGRhdGEgaXMgZXJhc2VkLjwvcD4KCTwvbGk+Cgk8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBkZWxldGUgYSBwcm9wZXJ0eSAoYXMgbG9uZyBhcyBpdCBpcyBub3QgYSBtb2R1bGUgcHJvcGVydHksIG9yIGEgaGlkZGVuL3JlcXVpcmVkIG1lbWJlciBvZiBhbnkgZ3JvdXAuPC9saT4KCTxsaT5SZW1vdmVzIHVuZG9jdW1lbnRlZCBhbmQgcmFyZWx5IHVzZWQgY29udGVudF9tb2R1bGUgZnVuY3Rpb25hbGl0eSBmb3IgZ3JvdXAgc2VsZWN0b3IuPC9saT4KCTxsaT5HZXQgcmlkIG9mIHNlcXVlbmNlIHRhYmxlcy48L2xpPgoJPGxpPlJld3JpdGUgdGhlIGxvZ2luIGZ1bmN0aW9uYWxpdHkgZnJvbSBzY3JhdGNoLjwvbGk+Cgk8bGk+UmVtb3ZlZCB0aGUgbm9pbmxpbmUgcGFyYW1ldGVyLjwvbGk+Cgk8bGk+QWRkZWQgdGhlIGlubGluZSBwYXJhbWV0ZXIgZm9yIHRoZSBsb2dpbiBmb3JtIG9ubHkuICBMaW5rcyBmcm9tIHRoZSBsb2dvdXQgZm9ybSAoaS5lOiB0byBsb2dvdXQsIGFuZCB0byBjaGFuZ2Ugc2V0dGluZ3Mgd2lsbCBiZSBkb25lIG5vbi1pbmxpbmUpPC9saT4KCTxsaT5mb3JtPXNpbGVudC9hY3Rpb249c2lsZW50IG5vdyBvdXRwdXRzIHN0dWZmIHRvIGdsb2JhbCBzbWFydHkgc2NvcGUgKG5vdGUgdmFyaWFibGUgbmFtZXMgaGF2ZSBjaGFuZ2VkLCBzZWUgdGhlIHskZmV1X2RhdGF9IGFycmF5KS4gIFRoaXMgYWN0aW9uIGlzIGFsc28gZGVwcmVjYXRlZC48L2xpPgoJPGxpPkZpeGVzIHRoZSBkZWxldGUgdXNlciBzdHVmZi48L2xpPgoJPGxpPk5vdyBzZW5kIHRoZSBvbmRlbGV0ZXVzZXIgZXZlbnQgZnJvbSB3aXRoaW4gdGhlIGFwaSBmdW5jdGlvbnMuPC9saT4KCTxsaT5Nb3ZlZCBhbGwgb2YgdGhlIGZvcm1zIGludG8gdGhlaXIgb3duIGFjdGlvbnMuLi4uIGRlcHJlY2F0ZWQgdGhlIGZvcm0gcGFyYW1ldGVyLjwvbGk+Cgk8bGk+Tm93IHN1cHBvcnQgc3BlY2lmeWluZyBkaWZmZXJlbnQgdGVtcGxhdGVzIGZvciBsb2dpbiwgbG9nb3V0LCBjaGFuZ2VzZXR0aW5ncywgYW5kIGZvcmdvdHB3IGFjdGlvbnMuPC9saT4KCTxsaT5Db21wbGV0ZWx5IHJld3JpdGUgdGhlIGxvc3QgdXNlcm5hbWUgZnVuY3Rpb25hbGl0eS4gIEl0IG5vdyBqdXN0IGFza3MgZm9yIGFzIG11Y2ggaW5mb3JtYXRpb24gYXMgcG9zc2libGUsIGFuZCB1c2VzIHRoYXQgaW5mb3JtYXRpb24gdG8gdHJ5IHRvIGZpbmQgYSB1bmlxdWUgdXNlciBhY2NvdW50LjwvbGk+Cgk8bGk+QWRkcyBhIHByaXZhdGUgc2VjdGlvbiBoZWFkZXIgY3VzdG9tIGNvbnRlbnQgdHlwZS48L2xpPgoJPGxpPk5vdyBhZnRlciBjaGFuZ2Ugc2V0dGluZ3MgYSBtZXNzYWdlIGlzIGRpc3BsYXllZCB0byB0aGUgdXNlciBvbiB0aGUgbG9nb3V0Zm9ybS48L2xpPgoJPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgoJPGxpPkJlZ2luIHdvcmsgb24gQVBJIGRvY3VtZW50YXRpb24uPC9saT4KCTwvdWw+CjwvbGk+CjxsaT4xLjMxCiAgPHVsPgogICAgPGxpPkFkZHMgYWJpbGl0eSB0byBmb3JjZSBhIHVzZXIgdG8gY2hhbmdlIHNldHRpbmdzIG9uIHRoZSBuZXh0IGxvZ2luLgogICAgICAgPHA+Tm90ZSwgdGhpcyBhbHNvIHdvcmtzIHdpdGggdGhlICJmb3JjZSBuZXcgcGFzc3dvcmQiIGZ1bmN0aW9uYWxpdHksIHNvIHRoYXQgYSB1c2VyIHdpbGwgYmUgZm9yY2VkIHRvIHNldCBhIG5ldyBwYXNzd29yZC48L3A+CiAgICA8L2xpPgogICAgPGxpPk1pbm9yIGxheW91dCBjaGFuZ2UgdG8gdGhlIGZpcnN0IGFkZCB1c2VyL2VkaXQgdXNlciBmb3JtLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPjEuMzEuMgogIDx1bD4KICAgIDxsaT5GaXhlcyB0byB1cGdyYWRlIHJvdXRpbmUgZm9yIGhvc3RzIHdpdGggc3RyaWN0IG1vZGUgc2V0LjwvbGk+CiAgICA8bGk+TnVtZXJvdXMgbWlub3IgQVBJIGZpeGVzLjwvbGk+CiAgICA8bGk+TW9yZSB3b3JrIG9uIEFQSSBkb2N1bWVudGF0aW9uLjwvbGk+CiAgICA8bGk+Q29ycmVjdCBzb21lIGxpY2Vuc2UgZG9jcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT4xLjMxLjMKICAgPGRpdiBjbGFzcz0id2FybmluZyI+QmFycmluZyBzb21lIHVuZm9yc2VlbiBuZXcgZXJyb3JzIGluIHRoaXMgbGF0ZXN0IHJlbGVhc2UgY2F1c2VkIGJ5IG1lLCB0aGlzIHdpbGwgYmUgdGhlIGxhc3QgcmVsZWFzZSBvZiBGcm9udEVuZFVzZXJzIGZvciBDTVNNUyAxLnguPC9kaXY+CiAgIDx1bD4KICAgICAgPGxpPkZpeGVzIHByb2JsZW0gd2l0aCB0aGUgQWRkR3JvdXBQcm9wZXJ0eVJlbGF0aW9uIG1ldGhvZC48L2xpPgogICAgICA8bGk+Rml4ZXMgcHJvYmxlbXMgd2l0aCB0aGUgcmVtZW1iZXJtZSBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICAgIDxsaT5Nb3JlIG1pbm9yIGZpeGVzLjwvbGk+CiAgIDwvdWw+CjwvbGk+Cgo8bGk+Mi4wCiAgICAgICAgPGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHZlcnNpb24gYW5kIGFueSBzdWJzZXF1ZW50IHZlcnNpb25zIG9mIEZyb250RW5kVXNlcnMgd2lsbCByZXF1aXJlIGEgc3VwcG9ydGVkIHZlcnNpb24gb2YgQ01TTVMgMi54LjwvZGl2PgoJPGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGlzIGEgbWFqb3IgcmVmYWN0b3Jpbmcgb2YgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLiAgVGhvdWdoIG1vc3QgZnJvbnRlbmQgdGVtcGxhdGVzIGhhdmUgbm90IGNoYW5nZWQsIG1hbnkgYWRtaW4gdGVtcGxhdGVzIGhhdmUuICBJZiB5b3UgaGF2ZSBhbnkgb3ZlcnJpZGVzIGZvciBhZG1pbiB0ZW1wbGF0ZXMgdGhlbiB5b3UgbXVzdCByZW1vdmUgdGhlbSBiZWZvcmUgdXBncmFkaW5nLjwvZGl2Pgo8dWw+Cgk8bGk+UmVtb3ZlIGFsbCB0ZW1wbGF0ZSBtYW5hZ2VtZW50IGZ1bmN0aW9uYWxpdHkuICBUZW1wbGF0ZXMgYXJlIG5vdyBpbiBEZXNpZ25NYW5hZ2VyLiAgVGhpcyBhbHNvIG1lYW5zIHRoYXQgdGhlcmUgaXMgdGhlIHBvc3NpYmlsaXR5IG9mIGRpZmZlcmVudCB0ZW1wbGF0ZXMgZm9yIGVhY2ggdHlwZS4KCSAgIDxwPlRlbXBsYXRlcyBhcmUgbW92ZWQgZW4tbWFzc2UgaW50byBEZXNpZ25NYW5hZ2VyIGFuZCBnaXZlbiBuZXcgbmFtZXMuICBObyBvdGhlciBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRlbXBsYXRlcy48L3A+CgkgICA8cD5BZGQgcGFyYW1ldGVycyB0byBzb21lIGFjdGlvbnMgdG8gYWxsb3cgc3BlY2lmeWluZyBhbHRlcm5hdGUgdGVtcGxhdGVzLjwvcD4KCTwvbGk+Cgk8bGk+U3BsaXQgdGhlIHNldHRpbmdzIGFjdGlvbihzKSB0byB0aGVpciBvd24gbWVudSBpdGVtIGluIHRoZSBhZG1pbiBuYXZpZ2F0aW9uLjwvbGk+Cgk8bGk+UmVmYWN0b3IgdGhlIHJlZGlyZWN0aW9uIGFmdGVyIGZvcm0gY29tcGxldGlvbjoKCTx1bD4KCTxsaT5JZiB0aGUgcmV0dXJudG8gcGFyYW1ldGVyIGlzIHNwZWNpZmllZCAoZWl0aGVyIGEgcGFnZSBpZCBvciBwYWdlIGFsaWFzKSB1c2UgaXQgdG8gcmVkaXJlY3QgdG8gYSBjb250ZW50IHBhZ2UuPC9saT4KCTxsaT5JZiBhIFBvc3RBY3Rpb25VUkwgd2FzIHNwZWNpZmllZCBhbmQgZXhpc3RzIGluIHRoZSBzZXNzaW9uLCB0aGVuIHJlZGlyZWN0IHRvIHRoYXQgVVJMLjwvbGk+Cgk8bGk+T3RoZXJ3aXNlIHVzZSB0aGUgcHJlZmVyZW5jZXMgYW5kIHRlbXBsYXRlcyBzcGVjaWZpZWQgaW4gdGhlIGFkbWluIG5hdi48L2xpPgoJPC91bD4KCTwvbGk+Cgk8bGk+UmVtb3ZlIHRoZSByZXR1cm5sYXN0IHBhcmFtZXRlci48L2xpPgoJPGxpPlJlbW92ZSBkZXBlbmRlbmN5IG9uIENNU01haWxlci48L2xpPgoJPGxpPlJlbW92ZSB0aGUgc2VwYXJhdGUgcGVybWlzc2lvbiBmb3IgZWRpdGluZyBGRVUgVGVtcGxhdGVzLjwvbGk+Cgk8bGk+UmVtb3ZlIHRoZSBzZXBhcmF0ZSBwZXJtaXNzaW9uIGZvciBlZGl0aW5nIEZFVSBtb2R1bGUgc2V0dGluZ3MuPC9saT4KCTxsaT5GaXhlcyB0byB0aGUgcHJvdGVjdGVkIHNlY3Rpb24gaGVhZGVyLjwvbGk+Cgk8bGk+SW1wcm92ZW1lbnRzIHRvIHVzZXIgaW1wb3J0IHRvIGhhbmRsZSBtdWx0aS1saW5lIHJlY29yZHMuPC9saT4KCTxsaT5SZWZhY3RvciB0aGUgYWRtaW4gc2lkZSBhZGQvZWRpdCB1c2VyIGZ1bmN0aW9uYWxpdHkuCgk8cD5Zb3UgY2FuIG5vdyB1cGxvYWQgaW1hZ2VzIGZvciB1c2VycyB3aGVuIGNyZWF0aW5nIHVzZXJzLjwvcD4KCTxwPlJlbmFtaW5nIGEgdXNlciBhY2NvdW50IG5vdyB3b3JrcyBtdWNoIGJldHRlci48L3A+Cgk8bGk+Cgk8bGk+QWRqdXN0IHN0eWxpbmcgb24gc29tZSBhZG1pbiB0ZW1wbGF0ZXMuPC9saT4KCTxsaT48c3Ryb25nPk5vdGU6IDxzdHJvbmc+IEZpeGVzIHRvIGxvc3QgdXNlcm5hbWUgdGVtcGxhdGUgc3R1ZmYuLi4geW91IHdpbGwgbmVlZCB0byByZXNldCB0aGUgdGVtcGxhdGUgdHlwZXMgdG8gZmFjdG9yeSBkZWZhdWx0cyBhbmQgdmVyaWZ5IHRoZSBjb250ZW50cyBvZiB5b3VyIHZhcmlvdXMgbG9zdC11c2VybmFtZSB0ZW1wbGF0ZXMuICh2Mi4wLjcpPC9saT4pCjwvdWw+Cgk8L2xpPgoKCTxsaT4yLjEKCTx1bD4KCTxsaT5SZS1mYWN0b3JzIHRoZSBidWxrIGFjdGlvbnMgYW5kIGFkZHMgbnVtZXJvdXMgYnVsayBhY3Rpb25zIGZvciB1c2Vycy48L2xpPgoJPGxpPkFkZHMgdGhlIEZFVSBMb2dvdXQgTGluayBjb250ZW50IHR5cGUuPC9saT4KCTxsaT5EZXByZWNhdGUgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbCBmdW5jdGlvbmFsaXR5Li4uIGJldHRlciB0byB1c2UgZXZlbnQgaGFuZGxlcnMuPC9saT4KCTxsaT5TZW5kIHRoZSBPbkRlbGV0ZVVzZXIgZXZlbnQgYmVmb3JlIHRoZSB1c2VyIGlzIHBoeXNpY2FsbHkgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZS48L2xpPgogICAgICAgIDxsaT5NaW5vciBidWcgZml4ZXM8L2xpPgoJPC91bD4KCTwvbGk+CgoJPGxpPjIuMgoJPHVsPgoJPGxpPkFkZHMgYWRtaW5pc3RyYXRpdmUgb3B0aW9uIHRvIHJlcXVpcmUgYSB1c2VyIHRvIHZlcmlmeSB0aGVtc2VsdmVzIGJlZm9yZSB0aGUgbmV4dCBsb2dpbi48L2xpPgoJPGxpPlJlLWZhY3RvciB0aGUgdmVyaWZ5IGVtYWlsIHRlbXBsYXRlLjwvbGk+Cgk8bGk+Rml4IGJ1ZyBpbiB1c2VyIGhpc3RvcnkgYWN0aW9uLjwvbGk+Cgk8bGk+SW1wcm92ZW1lbnRzIHRvIGVkaXR1c2VyIGFuZCBlZGl0dXNlcjIgYWN0aW9ucy48L2xpPgoJPGxpPk5ldyBwcmVmZXJlbmNlcyBmb3IgdmVyaWZ5IHBhZ2UuPC9saT4KCTxsaT5Ob3cgZGlzcGxheSB1c2VycyB0aGF0IG5lZWQgdG8gdmVyaWZ5IHRoZW1zZWx2ZXMgZGlmZmVyZW50bHkgaW4gdXNlcmxpc3QuPC9saT4KCTxsaT5BZGRlZCBPbkJlZm9yZUxvZ2luIEV2ZW50LCB3aGljaCBpcyBmaXJlZCBhZnRlciBwYXNzd29yZCBpcyB2YWxpZGF0ZWQsIGJ1dCBiZWZvcmUgdGhpbmdzIGFyZSBzZXR1cC48L2xpPgoJPGxpPkFkZHMgZmV1X3NtYXJ0eTo6cHJlbG9hZF91c2VycygpPC9saT4KCTxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHJlZGlyZWN0IGJhY2sgdG8gdGhlIG9yaWdpbmFsbHkgcmVxdWVzdGVkIFVSTCAoR0VUIE9OTFkpIGlmIGRpcmVjdCBhY2Nlc3MgdG8gcHJvdGVjdGVkIGNvbnRlbnQgcmVzdWx0ZWQgaW4gYSA0MDMgZXJyb3IsICBhbmQgYW4gZXJyb3IgcGFnZSBleGlzdHMgdG8gaGFuZGxlIHRoZSByZXF1ZXN0LCB3aXRoIHtGcm9udEVuZFVzZXJzfSBjYWxsZWQgb24gaXQuPC9saT4KCTwvdWw+Cgk8L2xpPgo8L3VsPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/classes/feu_user_query.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpIHsKICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmVbZGF0YS1zcmNdJykpLmZvckVhY2goZnVuY3Rpb24gKHByZSkgewogICAgICAgICAgICB2YXIgc3JjID0gcHJlLmdldEF0dHJpYnV0ZSgnZGF0YS1zcmMnKTsKICAgICAgICAgICAgdmFyIGV4dGVuc2lvbiA9IChzcmMubWF0Y2goL1wuKFx3KykkLykgfHwgWywgJyddKVsxXTsKICAgICAgICAgICAgdmFyIGxhbmd1YWdlID0gJ3BocCc7CgogICAgICAgICAgICB2YXIgY29kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvZGUnKTsKICAgICAgICAgICAgY29kZS5jbGFzc05hbWUgPSAnbGFuZ3VhZ2UtJyArIGxhbmd1YWdlOwoKICAgICAgICAgICAgcHJlLnRleHRDb250ZW50ID0gJyc7CgogICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ0xvYWRpbmfigKYnOwoKICAgICAgICAgICAgcHJlLmFwcGVuZENoaWxkKGNvZGUpOwoKICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoKICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHNyYywgdHJ1ZSk7CgogICAgICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09IDQpIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPCA0MDAgJiYgeGhyLnJlc3BvbnNlVGV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0geGhyLnJlc3BvbnNlVGV4dDsKCiAgICAgICAgICAgICAgICAgICAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQoY29kZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHhoci5zdGF0dXMgPj0gNDAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSAn4pyWIEVycm9yICcgKyB4aHIuc3RhdHVzICsgJyB3aGlsZSBmZXRjaGluZyBmaWxlOiAnICsgeGhyLnN0YXR1c1RleHQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ+KcliBFcnJvcjogRmlsZSBkb2VzIG5vdCBleGlzdCBvciBpcyBlbXB0eSc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7CiAgICAgICAgfSk7CiAgICB9CgogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBsb2FkRXh0ZXJuYWxDb2RlU25pcHBldHMoKTsKICAgIH0pOwogICAgJCgnI3NvdXJjZS12aWV3Jykub24oJ3Nob3duJywgZnVuY3Rpb24gKCkgewogICAgICAgIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpOwogICAgfSkKPC9zY3JpcHQ+CgogICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZyIvPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1maXhlZC10b3AiPgogICAgPGRpdiBjbGFzcz0ibmF2YmFyLWlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1uYXZiYXIiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9Ii5uYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZWxsaXBzaXMtdmVydGljYWwiPjwvaT4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0iYnJhbmQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPkZyb250RW5kVXNlcnMgMi4yLjAuNjwvYT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBwdWxsLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vaW5kZXguaHRtbCIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBEb2N1bWVudGF0aW9uIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9ImNoYXJ0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJ0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtDbGFzcyBoaWVyYXJjaHkgZGlhZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0icmVwb3J0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtFcnJvcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+OTg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7TWFya2VycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tPGRpdiBjbGFzcz0iZ29fdG9fdG9wIj4tLT4KICAgIDwhLS08YSBocmVmPSIjX19fIiBzdHlsZT0iY29sb3I6IGluaGVyaXQiPkJhY2sgdG8gdG9wJiMxNjA7JiMxNjA7PGkgY2xhc3M9Imljb24tdXBsb2FkIGljb24td2hpdGUiPjwvaT48L2E+LS0+CiAgICA8IS0tPC9kaXY+LS0+CjwvZGl2PgoKPGRpdiBpZD0iX19fIiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiBzaWRlYmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24iIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJhY2NvcmRpb24tdG9nZ2xlICIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI25hbWVzcGFjZS0xNDA0NDQzNTUyIj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vbmFtZXNwYWNlcy9kZWZhdWx0Lmh0bWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMzBweDsgcGFkZGluZy1sZWZ0OiAwIj5cPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBpZD0ibmFtZXNwYWNlLTE0MDQ0NDM1NTIiIGNsYXNzPSJhY2NvcmRpb24tYm9keSBjb2xsYXBzZSBpbiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taW5uZXIiPgoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sIj5mZXVfdXNlcl9xdWVyeV9vcHQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCI+ZmV1X3VzZXJfcXVlcnk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sIj5Gcm9udEVuZFVzZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sIj5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjEwIG9mZnNldDIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgICAgICAgICAgPG5hdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vbmFtZXNwYWNlcy9kZWZhdWx0Lmh0bWwiPlw8L2E+IDxpIGNsYXNzPSJpY29uLWxldmVsLXVwIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIj48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgoKICAgICAgICAgICAgICAgICAgICA8aDE+PHNtYWxsPlw8L3NtYWxsPmZldV91c2VyX3F1ZXJ5PC9oMT4KICAgICAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGlkPSJzdW1tYXJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlN1bW1hcnk8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIGhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjbWV0aG9kcyI+TWV0aG9kczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjb25zdGFudHMiPkNvbnN0YW50czwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIHB1YmxpYyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCNtZXRob2RfX19jb25zdHJ1Y3QiIGNsYXNzPSIiPl9fY29uc3RydWN0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI21ldGhvZF9zZXRfcGFnZWxpbWl0IiBjbGFzcz0iIj5zZXRfcGFnZWxpbWl0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI21ldGhvZF9nZXRfcGFnZWxpbWl0IiBjbGFzcz0iIj5nZXRfcGFnZWxpbWl0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI21ldGhvZF9zZXRfb2Zmc2V0IiBjbGFzcz0iIj5zZXRfb2Zmc2V0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI21ldGhvZF9nZXRfb2Zmc2V0IiBjbGFzcz0iIj5nZXRfb2Zmc2V0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI21ldGhvZF9zZXRfZGVlcCIgY2xhc3M9IiI+c2V0X2RlZXAoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX2dldF9kZWVwIiBjbGFzcz0iIj5nZXRfZGVlcCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCNtZXRob2Rfc2V0X3dlYnJlYWR5IiBjbGFzcz0iIj5zZXRfd2VicmVhZHkoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX2dldF93ZWJyZWFkeSIgY2xhc3M9IiI+Z2V0X3dlYnJlYWR5KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI21ldGhvZF9zZXRfcmVzdWx0X3R5cGUiIGNsYXNzPSIiPnNldF9yZXN1bHRfdHlwZSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCNtZXRob2RfZ2V0X3Jlc3VsdF90eXBlIiBjbGFzcz0iIj5nZXRfcmVzdWx0X3R5cGUoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX3NldF9zb3J0YnkiIGNsYXNzPSIiPnNldF9zb3J0YnkoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX2dldF9zb3J0YnkiIGNsYXNzPSIiPmdldF9zb3J0YnkoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX3NldF9zb3J0b3JkZXIiIGNsYXNzPSIiPnNldF9zb3J0b3JkZXIoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX2dldF9zb3J0b3JkZXIiIGNsYXNzPSIiPmdldF9zb3J0b3JkZXIoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX2FkZF9hbmRfb3B0IiBjbGFzcz0iIj5hZGRfYW5kX29wdCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCNtZXRob2RfYWRkX2FuZF9vcHRfb2JqIiBjbGFzcz0iIj5hZGRfYW5kX29wdF9vYmooKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX2NvdW50X29wdHMiIGNsYXNzPSIiPmNvdW50X29wdHMoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjbWV0aG9kX2dldF9vcHRzIiBjbGFzcz0iIj5nZXRfb3B0cygpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCNtZXRob2RfZXhlY3V0ZSIgY2xhc3M9IiI+ZXhlY3V0ZSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5ObyBwdWJsaWMgcHJvcGVydGllcyBmb3VuZDwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI2NvbnN0YW50X1JFU1VMVF9UWVBFX0lEIiBjbGFzcz0iIj5SRVNVTFRfVFlQRV9JRDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjY29uc3RhbnRfUkVTVUxUX1RZUEVfTElTVCIgY2xhc3M9IiI+UkVTVUxUX1RZUEVfTElTVDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjY29uc3RhbnRfUkVTVUxUX1RZUEVfRlVMTCIgY2xhc3M9IiI+UkVTVUxUX1RZUEVfRlVMTDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjY29uc3RhbnRfUkVTVUxUX1NPUlRPUkRFUl9BU0MiIGNsYXNzPSIiPlJFU1VMVF9TT1JUT1JERVJfQVNDPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCNjb25zdGFudF9SRVNVTFRfU09SVE9SREVSX0RFU0MiIGNsYXNzPSIiPlJFU1VMVF9TT1JUT1JERVJfREVTQzwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjY29uc3RhbnRfUkVTVUxUX1NPUlRCWV9VU0VSTkFNRSIgY2xhc3M9IiI+UkVTVUxUX1NPUlRCWV9VU0VSTkFNRTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjY29uc3RhbnRfUkVTVUxUX1NPUlRCWV9DUkVBVEVEIiBjbGFzcz0iIj5SRVNVTFRfU09SVEJZX0NSRUFURUQ8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI2NvbnN0YW50X1JFU1VMVF9TT1JUQllfRVhQSVJFUyIgY2xhc3M9IiI+UkVTVUxUX1NPUlRCWV9FWFBJUkVTPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBwcm90ZWN0ZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+Tm8gcHJvdGVjdGVkIG1ldGhvZHMgZm91bmQ8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5ObyBwcm90ZWN0ZWQgcHJvcGVydGllcyBmb3VuZDwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPk4vQTwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBwcml2YXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPk5vIHByaXZhdGUgbWV0aG9kcyBmb3VuZDwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI3Byb3BlcnR5X19hbmRfb3B0cyIgY2xhc3M9IiI+JF9hbmRfb3B0czwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjcHJvcGVydHlfX2dyb3VwcyIgY2xhc3M9IiI+JF9ncm91cHM8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI3Byb3BlcnR5X19wYWdlbGltaXQiIGNsYXNzPSIiPiRfcGFnZWxpbWl0PC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCNwcm9wZXJ0eV9fb2Zmc2V0IiBjbGFzcz0iIj4kX29mZnNldDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjcHJvcGVydHlfX3Jlc3VsdF90eXBlIiBjbGFzcz0iIj4kX3Jlc3VsdF90eXBlPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCNwcm9wZXJ0eV9fc29ydGJ5IiBjbGFzcz0iIj4kX3NvcnRieTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwjcHJvcGVydHlfX3NvcnRvcmRlciIgY2xhc3M9IiI+JF9zb3J0b3JkZXI8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI3Byb3BlcnR5X19kZWVwIiBjbGFzcz0iIj4kX2RlZXA8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sI3Byb3BlcnR5X193ZWJyZWFkeSIgY2xhc3M9IiI+JF93ZWJyZWFkeTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+Ti9BPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGR0PkZpbGU8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPjxhIGhyZWY9Ii4uL2ZpbGVzL2xpYi5jbGFzcy5mZXVfdXNlcl9xdWVyeS5waHAuaHRtbCI+PGRpdiBjbGFzcz0icGF0aC13cmFwcGVyIj5saWIvY2xhc3MuZmV1X3VzZXJfcXVlcnkucGhwPC9kaXY+PC9hPjwvZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5DbGFzcyBoaWVyYXJjaHk8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPSJoaWVyYXJjaHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hbWVzcGFjZS13cmFwcGVyIj5cZmV1X3VzZXJfcXVlcnk8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+CgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIDwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50cyIgbmFtZT0iY29uc3RhbnRzIj48L2E+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgICAgICAgICA8aDI+Q29uc3RhbnRzPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj48L2FzaWRlPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50X1JFU1VMVF9UWVBFX0lEIiBuYW1lPSJjb25zdGFudF9SRVNVTFRfVFlQRV9JRCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfUkVTVUxUX1RZUEVfSUQiIGNsYXNzPSJjb25zdGFudCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IiI+UkVTVUxUX1RZUEVfSUQ8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5SRVNVTFRfVFlQRV9JRDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfUkVTVUxUX1RZUEVfTElTVCIgbmFtZT0iY29uc3RhbnRfUkVTVUxUX1RZUEVfTElTVCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfUkVTVUxUX1RZUEVfTElTVCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5SRVNVTFRfVFlQRV9MSVNUPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+UkVTVUxUX1RZUEVfTElTVDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfUkVTVUxUX1RZUEVfRlVMTCIgbmFtZT0iY29uc3RhbnRfUkVTVUxUX1RZUEVfRlVMTCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfUkVTVUxUX1RZUEVfRlVMTCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5SRVNVTFRfVFlQRV9GVUxMPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+UkVTVUxUX1RZUEVfRlVMTDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfUkVTVUxUX1NPUlRPUkRFUl9BU0MiIG5hbWU9ImNvbnN0YW50X1JFU1VMVF9TT1JUT1JERVJfQVNDIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9SRVNVTFRfU09SVE9SREVSX0FTQyIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5SRVNVTFRfU09SVE9SREVSX0FTQzwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPlJFU1VMVF9TT1JUT1JERVJfQVNDPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9SRVNVTFRfU09SVE9SREVSX0RFU0MiIG5hbWU9ImNvbnN0YW50X1JFU1VMVF9TT1JUT1JERVJfREVTQyIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfUkVTVUxUX1NPUlRPUkRFUl9ERVNDIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPlJFU1VMVF9TT1JUT1JERVJfREVTQzwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPlJFU1VMVF9TT1JUT1JERVJfREVTQzwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfUkVTVUxUX1NPUlRCWV9VU0VSTkFNRSIgbmFtZT0iY29uc3RhbnRfUkVTVUxUX1NPUlRCWV9VU0VSTkFNRSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfUkVTVUxUX1NPUlRCWV9VU0VSTkFNRSIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5SRVNVTFRfU09SVEJZX1VTRVJOQU1FPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+UkVTVUxUX1NPUlRCWV9VU0VSTkFNRTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfUkVTVUxUX1NPUlRCWV9DUkVBVEVEIiBuYW1lPSJjb25zdGFudF9SRVNVTFRfU09SVEJZX0NSRUFURUQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgaWQ9ImNvbnN0YW50X1JFU1VMVF9TT1JUQllfQ1JFQVRFRCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5SRVNVTFRfU09SVEJZX0NSRUFURUQ8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5SRVNVTFRfU09SVEJZX0NSRUFURUQ8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50X1JFU1VMVF9TT1JUQllfRVhQSVJFUyIgbmFtZT0iY29uc3RhbnRfUkVTVUxUX1NPUlRCWV9FWFBJUkVTIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9SRVNVTFRfU09SVEJZX0VYUElSRVMiIGNsYXNzPSJjb25zdGFudCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IiI+UkVTVUxUX1NPUlRCWV9FWFBJUkVTPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+UkVTVUxUX1NPUlRCWV9FWFBJUkVTPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9InByb3BlcnRpZXMiIG5hbWU9InByb3BlcnRpZXMiPjwvYT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICAgICAgICAgIDxoMj5Qcm9wZXJ0aWVzPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj48L2FzaWRlPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9InByb3BlcnR5X19hbmRfb3B0cyIgbmFtZT0icHJvcGVydHlfX2FuZF9vcHRzIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX2FuZF9vcHRzPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+JF9hbmRfb3B0czwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9InByb3BlcnR5X19ncm91cHMiIG5hbWU9InByb3BlcnR5X19ncm91cHMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9InByb3BlcnR5Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHJpdmF0ZSAiPiRfZ3JvdXBzPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+JF9ncm91cHM8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJwcm9wZXJ0eV9fcGFnZWxpbWl0IiBuYW1lPSJwcm9wZXJ0eV9fcGFnZWxpbWl0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX3BhZ2VsaW1pdDwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPiRfcGFnZWxpbWl0PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0icHJvcGVydHlfX29mZnNldCIgbmFtZT0icHJvcGVydHlfX29mZnNldCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0icHJvcGVydHkiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwcml2YXRlICI+JF9vZmZzZXQ8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj4kX29mZnNldDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9InByb3BlcnR5X19yZXN1bHRfdHlwZSIgbmFtZT0icHJvcGVydHlfX3Jlc3VsdF90eXBlIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX3Jlc3VsdF90eXBlPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+JF9yZXN1bHRfdHlwZTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9InByb3BlcnR5X19zb3J0YnkiIG5hbWU9InByb3BlcnR5X19zb3J0YnkiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9InByb3BlcnR5Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHJpdmF0ZSAiPiRfc29ydGJ5PC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+JF9zb3J0Ynk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJwcm9wZXJ0eV9fc29ydG9yZGVyIiBuYW1lPSJwcm9wZXJ0eV9fc29ydG9yZGVyIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX3NvcnRvcmRlcjwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPiRfc29ydG9yZGVyPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0icHJvcGVydHlfX2RlZXAiIG5hbWU9InByb3BlcnR5X19kZWVwIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX2RlZXA8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj4kX2RlZXA8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJwcm9wZXJ0eV9fd2VicmVhZHkiIG5hbWU9InByb3BlcnR5X193ZWJyZWFkeSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0icHJvcGVydHkiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwcml2YXRlICI+JF93ZWJyZWFkeTwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPiRfd2VicmVhZHk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZHMiIG5hbWU9Im1ldGhvZHMiPjwvYT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPjxoMj5NZXRob2RzPC9oMj48L2Rpdj4KICAgICAgICAgICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+PC9hc2lkZT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX19fY29uc3RydWN0IiBuYW1lPSJtZXRob2RfX19jb25zdHJ1Y3QiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPl9fY29uc3RydWN0KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5fX2NvbnN0cnVjdCgpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2Rfc2V0X3BhZ2VsaW1pdCIgbmFtZT0ibWV0aG9kX3NldF9wYWdlbGltaXQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPnNldF9wYWdlbGltaXQoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPnNldF9wYWdlbGltaXQoIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHBhZ2VsaW1pdDwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRwYWdlbGltaXQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2dldF9wYWdlbGltaXQiIG5hbWU9Im1ldGhvZF9nZXRfcGFnZWxpbWl0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5nZXRfcGFnZWxpbWl0KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5nZXRfcGFnZWxpbWl0KCk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9zZXRfb2Zmc2V0IiBuYW1lPSJtZXRob2Rfc2V0X29mZnNldCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+c2V0X29mZnNldCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+c2V0X29mZnNldCggPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kbjwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRuPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9nZXRfb2Zmc2V0IiBuYW1lPSJtZXRob2RfZ2V0X29mZnNldCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+Z2V0X29mZnNldCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+Z2V0X29mZnNldCgpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2Rfc2V0X2RlZXAiIG5hbWU9Im1ldGhvZF9zZXRfZGVlcCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+c2V0X2RlZXAoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPnNldF9kZWVwKCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRmbGFnPC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGZsYWc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2dldF9kZWVwIiBuYW1lPSJtZXRob2RfZ2V0X2RlZXAiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPmdldF9kZWVwKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5nZXRfZGVlcCgpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2Rfc2V0X3dlYnJlYWR5IiBuYW1lPSJtZXRob2Rfc2V0X3dlYnJlYWR5IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5zZXRfd2VicmVhZHkoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPnNldF93ZWJyZWFkeSggPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZmxhZzwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRmbGFnPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9nZXRfd2VicmVhZHkiIG5hbWU9Im1ldGhvZF9nZXRfd2VicmVhZHkiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPmdldF93ZWJyZWFkeSgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+Z2V0X3dlYnJlYWR5KCk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9zZXRfcmVzdWx0X3R5cGUiIG5hbWU9Im1ldGhvZF9zZXRfcmVzdWx0X3R5cGUiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPnNldF9yZXN1bHRfdHlwZSgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+c2V0X3Jlc3VsdF90eXBlKCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR0eXBlPC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHR5cGU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2dldF9yZXN1bHRfdHlwZSIgbmFtZT0ibWV0aG9kX2dldF9yZXN1bHRfdHlwZSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+Z2V0X3Jlc3VsdF90eXBlKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5nZXRfcmVzdWx0X3R5cGUoKTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX3NldF9zb3J0YnkiIG5hbWU9Im1ldGhvZF9zZXRfc29ydGJ5IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5zZXRfc29ydGJ5KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5zZXRfc29ydGJ5KCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR2YWw8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdmFsPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9nZXRfc29ydGJ5IiBuYW1lPSJtZXRob2RfZ2V0X3NvcnRieSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+Z2V0X3NvcnRieSgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+Z2V0X3NvcnRieSgpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2Rfc2V0X3NvcnRvcmRlciIgbmFtZT0ibWV0aG9kX3NldF9zb3J0b3JkZXIiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPnNldF9zb3J0b3JkZXIoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPnNldF9zb3J0b3JkZXIoIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHZhbDwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR2YWw8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2dldF9zb3J0b3JkZXIiIG5hbWU9Im1ldGhvZF9nZXRfc29ydG9yZGVyIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5nZXRfc29ydG9yZGVyKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5nZXRfc29ydG9yZGVyKCk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9hZGRfYW5kX29wdCIgbmFtZT0ibWV0aG9kX2FkZF9hbmRfb3B0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5hZGRfYW5kX29wdCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+YWRkX2FuZF9vcHQoIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHR5cGU8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdmFsdWU8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdHlwZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdmFsdWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2FkZF9hbmRfb3B0X29iaiIgbmFtZT0ibWV0aG9kX2FkZF9hbmRfb3B0X29iaiIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+YWRkX2FuZF9vcHRfb2JqKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5hZGRfYW5kX29wdF9vYmooXGZldV91c2VyX3F1ZXJ5X29wdCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRvcHQ8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sIj5cZmV1X3VzZXJfcXVlcnlfb3B0PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRvcHQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2NvdW50X29wdHMiIG5hbWU9Im1ldGhvZF9jb3VudF9vcHRzIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5jb3VudF9vcHRzKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5jb3VudF9vcHRzKCk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9nZXRfb3B0cyIgbmFtZT0ibWV0aG9kX2dldF9vcHRzIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5nZXRfb3B0cygpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+Z2V0X29wdHMoKTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2V4ZWN1dGUiIG5hbWU9Im1ldGhvZF9leGVjdXRlIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5leGVjdXRlKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5leGVjdXRlKCk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCiAgICA8ZGl2IGlkPSJzb3VyY2UtdmlldyIgY2xhc3M9Im1vZGFsIGhpZGUgZmFkZSIgdGFiaW5kZXg9Ii0xIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0ic291cmNlLXZpZXctbGFiZWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNsb3NlIiBkYXRhLWRpc21pc3M9Im1vZGFsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+w5c8L2J1dHRvbj4KICAgICAgICAgICAgPGgzIGlkPSJzb3VyY2Utdmlldy1sYWJlbCI+Y2xhc3MuZmV1X3VzZXJfcXVlcnkucGhwPC9oMz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4KICAgICAgICAgICAgPHByZSBkYXRhLXNyYz0iLi4vZmlsZXMvbGliL2NsYXNzLmZldV91c2VyX3F1ZXJ5LnBocC50eHQiIGNsYXNzPSJsYW5ndWFnZS1waHAgbGluZS1udW1iZXJzIj48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxmb290ZXIgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgZm9vdGVyLXNlY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYmFyLWNoYXJ0Ij48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vZ3JhcGhzL2NsYXNzLmh0bWwiPkNsYXNzIEhpZXJhcmNoeSBEaWFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLXB1c2hwaW4iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj5FcnJvcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvbWFya2Vycy5odG1sIj5NYXJrZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQxIj4KICAgICAgICAgICAgICAgICAgICA8aHIgLz4KICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uIGlzIHBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5waHBkb2Mub3JnLyI+cGhwRG9jdW1lbnRvciA8L2E+IGFuZCBhdXRob3JlZAogICAgICAgICAgICAgICAgICAgIG9uIE5vdmVtYmVyIDMwdGgsIDIwMTYgYXQgMTM6NTMuCiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICA8L3NlY3Rpb24+CiAgICA8L2Zvb3Rlcj4KPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4K]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/classes/feu_user_query_opt.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpIHsKICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmVbZGF0YS1zcmNdJykpLmZvckVhY2goZnVuY3Rpb24gKHByZSkgewogICAgICAgICAgICB2YXIgc3JjID0gcHJlLmdldEF0dHJpYnV0ZSgnZGF0YS1zcmMnKTsKICAgICAgICAgICAgdmFyIGV4dGVuc2lvbiA9IChzcmMubWF0Y2goL1wuKFx3KykkLykgfHwgWywgJyddKVsxXTsKICAgICAgICAgICAgdmFyIGxhbmd1YWdlID0gJ3BocCc7CgogICAgICAgICAgICB2YXIgY29kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvZGUnKTsKICAgICAgICAgICAgY29kZS5jbGFzc05hbWUgPSAnbGFuZ3VhZ2UtJyArIGxhbmd1YWdlOwoKICAgICAgICAgICAgcHJlLnRleHRDb250ZW50ID0gJyc7CgogICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ0xvYWRpbmfigKYnOwoKICAgICAgICAgICAgcHJlLmFwcGVuZENoaWxkKGNvZGUpOwoKICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoKICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHNyYywgdHJ1ZSk7CgogICAgICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09IDQpIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPCA0MDAgJiYgeGhyLnJlc3BvbnNlVGV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0geGhyLnJlc3BvbnNlVGV4dDsKCiAgICAgICAgICAgICAgICAgICAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQoY29kZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHhoci5zdGF0dXMgPj0gNDAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSAn4pyWIEVycm9yICcgKyB4aHIuc3RhdHVzICsgJyB3aGlsZSBmZXRjaGluZyBmaWxlOiAnICsgeGhyLnN0YXR1c1RleHQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ+KcliBFcnJvcjogRmlsZSBkb2VzIG5vdCBleGlzdCBvciBpcyBlbXB0eSc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7CiAgICAgICAgfSk7CiAgICB9CgogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBsb2FkRXh0ZXJuYWxDb2RlU25pcHBldHMoKTsKICAgIH0pOwogICAgJCgnI3NvdXJjZS12aWV3Jykub24oJ3Nob3duJywgZnVuY3Rpb24gKCkgewogICAgICAgIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpOwogICAgfSkKPC9zY3JpcHQ+CgogICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZyIvPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1maXhlZC10b3AiPgogICAgPGRpdiBjbGFzcz0ibmF2YmFyLWlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1uYXZiYXIiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9Ii5uYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZWxsaXBzaXMtdmVydGljYWwiPjwvaT4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0iYnJhbmQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPkZyb250RW5kVXNlcnMgMi4yLjAuNjwvYT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBwdWxsLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vaW5kZXguaHRtbCIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBEb2N1bWVudGF0aW9uIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9ImNoYXJ0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJ0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtDbGFzcyBoaWVyYXJjaHkgZGlhZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0icmVwb3J0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtFcnJvcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+OTg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7TWFya2VycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tPGRpdiBjbGFzcz0iZ29fdG9fdG9wIj4tLT4KICAgIDwhLS08YSBocmVmPSIjX19fIiBzdHlsZT0iY29sb3I6IGluaGVyaXQiPkJhY2sgdG8gdG9wJiMxNjA7JiMxNjA7PGkgY2xhc3M9Imljb24tdXBsb2FkIGljb24td2hpdGUiPjwvaT48L2E+LS0+CiAgICA8IS0tPC9kaXY+LS0+CjwvZGl2PgoKPGRpdiBpZD0iX19fIiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiBzaWRlYmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24iIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJhY2NvcmRpb24tdG9nZ2xlICIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI25hbWVzcGFjZS0xNDMxNTI0Mjk5Ij48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vbmFtZXNwYWNlcy9kZWZhdWx0Lmh0bWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMzBweDsgcGFkZGluZy1sZWZ0OiAwIj5cPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBpZD0ibmFtZXNwYWNlLTE0MzE1MjQyOTkiIGNsYXNzPSJhY2NvcmRpb24tYm9keSBjb2xsYXBzZSBpbiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taW5uZXIiPgoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sIj5mZXVfdXNlcl9xdWVyeV9vcHQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCI+ZmV1X3VzZXJfcXVlcnk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sIj5Gcm9udEVuZFVzZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sIj5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjEwIG9mZnNldDIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgICAgICAgICAgPG5hdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vbmFtZXNwYWNlcy9kZWZhdWx0Lmh0bWwiPlw8L2E+IDxpIGNsYXNzPSJpY29uLWxldmVsLXVwIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIj48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgoKICAgICAgICAgICAgICAgICAgICA8aDE+PHNtYWxsPlw8L3NtYWxsPmZldV91c2VyX3F1ZXJ5X29wdDwvaDE+CiAgICAgICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBpZD0ic3VtbWFyeSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5TdW1tYXJ5PC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBoZWFkaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI21ldGhvZHMiPk1ldGhvZHM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNwcm9wZXJ0aWVzIj5Qcm9wZXJ0aWVzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjY29uc3RhbnRzIj5Db25zdGFudHM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBwdWJsaWMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI21ldGhvZF9fX2NvbnN0cnVjdCIgY2xhc3M9IiI+X19jb25zdHJ1Y3QoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI21ldGhvZF9nZXRfdHlwZSIgY2xhc3M9IiI+Z2V0X3R5cGUoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI21ldGhvZF9nZXRfZXhwciIgY2xhc3M9IiI+Z2V0X2V4cHIoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI21ldGhvZF9nZXRfb3B0IiBjbGFzcz0iIj5nZXRfb3B0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPk5vIHB1YmxpYyBwcm9wZXJ0aWVzIGZvdW5kPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX1VTRVJOQU1FIiBjbGFzcz0iIj5NQVRDSF9VU0VSTkFNRTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX1VTRVJOQU1FX1JFIiBjbGFzcz0iIj5NQVRDSF9VU0VSTkFNRV9SRTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX1BBU1NXT1JEIiBjbGFzcz0iIj5NQVRDSF9QQVNTV09SRDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX0VYUElSRVNfTFQiIGNsYXNzPSIiPk1BVENIX0VYUElSRVNfTFQ8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9vcHQuaHRtbCNjb25zdGFudF9NQVRDSF9OT1RFWFBJUkVEIiBjbGFzcz0iIj5NQVRDSF9OT1RFWFBJUkVEPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfb3B0Lmh0bWwjY29uc3RhbnRfTUFUQ0hfR1JPVVAiIGNsYXNzPSIiPk1BVENIX0dST1VQPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfb3B0Lmh0bWwjY29uc3RhbnRfTUFUQ0hfR1JPVVBJRCIgY2xhc3M9IiI+TUFUQ0hfR1JPVVBJRDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX1BST1BFUlRZIiBjbGFzcz0iIj5NQVRDSF9QUk9QRVJUWTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX1BST1BFUlRZX1JFIiBjbGFzcz0iIj5NQVRDSF9QUk9QRVJUWV9SRTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX1VTRVJMSVNUIiBjbGFzcz0iIj5NQVRDSF9VU0VSTElTVDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX1VTRVJOQU1FTElTVCIgY2xhc3M9IiI+TUFUQ0hfVVNFUk5BTUVMSVNUPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfb3B0Lmh0bWwjY29uc3RhbnRfTUFUQ0hfTE9HR0VESU4iIGNsYXNzPSIiPk1BVENIX0xPR0dFRElOPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfb3B0Lmh0bWwjY29uc3RhbnRfTUFUQ0hfQ1JFQVRFRF9HRSIgY2xhc3M9IiI+TUFUQ0hfQ1JFQVRFRF9HRTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI2NvbnN0YW50X01BVENIX0NSRUFURURfTFQiIGNsYXNzPSIiPk1BVENIX0NSRUFURURfTFQ8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIHByb3RlY3RlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5ObyBwcm90ZWN0ZWQgbWV0aG9kcyBmb3VuZDwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPk5vIHByb3RlY3RlZCBwcm9wZXJ0aWVzIGZvdW5kPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+Ti9BPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIHByaXZhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+Tm8gcHJpdmF0ZSBtZXRob2RzIGZvdW5kPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sI3Byb3BlcnR5X190eXBlIiBjbGFzcz0iIj4kX3R5cGU8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9vcHQuaHRtbCNwcm9wZXJ0eV9fZXhwciIgY2xhc3M9IiI+JF9leHByPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfb3B0Lmh0bWwjcHJvcGVydHlfX29wdCIgY2xhc3M9IiI+JF9vcHQ8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPk4vQTwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5GaWxlPC9kdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZD48YSBocmVmPSIuLi9maWxlcy9saWIuY2xhc3MuZmV1X3VzZXJfcXVlcnkucGhwLmh0bWwiPjxkaXYgY2xhc3M9InBhdGgtd3JhcHBlciI+bGliL2NsYXNzLmZldV91c2VyX3F1ZXJ5LnBocDwvZGl2PjwvYT48L2RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+Q2xhc3MgaGllcmFyY2h5PC9kdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZCBjbGFzcz0iaGllcmFyY2h5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lc3BhY2Utd3JhcHBlciI+XGZldV91c2VyX3F1ZXJ5X29wdDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9hc2lkZT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRzIiBuYW1lPSJjb25zdGFudHMiPjwvYT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICAgICAgICAgIDxoMj5Db25zdGFudHM8L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPjwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfTUFUQ0hfVVNFUk5BTUUiIG5hbWU9ImNvbnN0YW50X01BVENIX1VTRVJOQU1FIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9NQVRDSF9VU0VSTkFNRSIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5NQVRDSF9VU0VSTkFNRTwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPk1BVENIX1VTRVJOQU1FPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9NQVRDSF9VU0VSTkFNRV9SRSIgbmFtZT0iY29uc3RhbnRfTUFUQ0hfVVNFUk5BTUVfUkUiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgaWQ9ImNvbnN0YW50X01BVENIX1VTRVJOQU1FX1JFIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPk1BVENIX1VTRVJOQU1FX1JFPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+TUFUQ0hfVVNFUk5BTUVfUkU8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50X01BVENIX1BBU1NXT1JEIiBuYW1lPSJjb25zdGFudF9NQVRDSF9QQVNTV09SRCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfTUFUQ0hfUEFTU1dPUkQiIGNsYXNzPSJjb25zdGFudCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IiI+TUFUQ0hfUEFTU1dPUkQ8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5NQVRDSF9QQVNTV09SRDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfTUFUQ0hfRVhQSVJFU19MVCIgbmFtZT0iY29uc3RhbnRfTUFUQ0hfRVhQSVJFU19MVCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfTUFUQ0hfRVhQSVJFU19MVCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5NQVRDSF9FWFBJUkVTX0xUPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+TUFUQ0hfRVhQSVJFU19MVDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfTUFUQ0hfTk9URVhQSVJFRCIgbmFtZT0iY29uc3RhbnRfTUFUQ0hfTk9URVhQSVJFRCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfTUFUQ0hfTk9URVhQSVJFRCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5NQVRDSF9OT1RFWFBJUkVEPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+TUFUQ0hfTk9URVhQSVJFRDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfTUFUQ0hfR1JPVVAiIG5hbWU9ImNvbnN0YW50X01BVENIX0dST1VQIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9NQVRDSF9HUk9VUCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5NQVRDSF9HUk9VUDwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPk1BVENIX0dST1VQPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9NQVRDSF9HUk9VUElEIiBuYW1lPSJjb25zdGFudF9NQVRDSF9HUk9VUElEIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9NQVRDSF9HUk9VUElEIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPk1BVENIX0dST1VQSUQ8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5NQVRDSF9HUk9VUElEPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9NQVRDSF9QUk9QRVJUWSIgbmFtZT0iY29uc3RhbnRfTUFUQ0hfUFJPUEVSVFkiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgaWQ9ImNvbnN0YW50X01BVENIX1BST1BFUlRZIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPk1BVENIX1BST1BFUlRZPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+TUFUQ0hfUFJPUEVSVFk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50X01BVENIX1BST1BFUlRZX1JFIiBuYW1lPSJjb25zdGFudF9NQVRDSF9QUk9QRVJUWV9SRSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfTUFUQ0hfUFJPUEVSVFlfUkUiIGNsYXNzPSJjb25zdGFudCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IiI+TUFUQ0hfUFJPUEVSVFlfUkU8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5NQVRDSF9QUk9QRVJUWV9SRTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfTUFUQ0hfVVNFUkxJU1QiIG5hbWU9ImNvbnN0YW50X01BVENIX1VTRVJMSVNUIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9NQVRDSF9VU0VSTElTVCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5NQVRDSF9VU0VSTElTVDwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPk1BVENIX1VTRVJMSVNUPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9NQVRDSF9VU0VSTkFNRUxJU1QiIG5hbWU9ImNvbnN0YW50X01BVENIX1VTRVJOQU1FTElTVCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfTUFUQ0hfVVNFUk5BTUVMSVNUIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPk1BVENIX1VTRVJOQU1FTElTVDwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPk1BVENIX1VTRVJOQU1FTElTVDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfTUFUQ0hfTE9HR0VESU4iIG5hbWU9ImNvbnN0YW50X01BVENIX0xPR0dFRElOIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9NQVRDSF9MT0dHRURJTiIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5NQVRDSF9MT0dHRURJTjwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPk1BVENIX0xPR0dFRElOPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9NQVRDSF9DUkVBVEVEX0dFIiBuYW1lPSJjb25zdGFudF9NQVRDSF9DUkVBVEVEX0dFIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9NQVRDSF9DUkVBVEVEX0dFIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPk1BVENIX0NSRUFURURfR0U8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5NQVRDSF9DUkVBVEVEX0dFPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9NQVRDSF9DUkVBVEVEX0xUIiBuYW1lPSJjb25zdGFudF9NQVRDSF9DUkVBVEVEX0xUIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9NQVRDSF9DUkVBVEVEX0xUIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPk1BVENIX0NSRUFURURfTFQ8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5NQVRDSF9DUkVBVEVEX0xUPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaWQ9InByb3BlcnRpZXMiIG5hbWU9InByb3BlcnRpZXMiPjwvYT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICAgICAgICAgIDxoMj5Qcm9wZXJ0aWVzPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj48L2FzaWRlPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9InByb3BlcnR5X190eXBlIiBuYW1lPSJwcm9wZXJ0eV9fdHlwZSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0icHJvcGVydHkiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwcml2YXRlICI+JF90eXBlPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+JF90eXBlPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0icHJvcGVydHlfX2V4cHIiIG5hbWU9InByb3BlcnR5X19leHByIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX2V4cHI8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj4kX2V4cHI8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJwcm9wZXJ0eV9fb3B0IiBuYW1lPSJwcm9wZXJ0eV9fb3B0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX29wdDwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPiRfb3B0PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJtZXRob2RzIiBuYW1lPSJtZXRob2RzIj48L2E+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj48aDI+TWV0aG9kczwvaDI+PC9kaXY+CiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPjwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9fX2NvbnN0cnVjdCIgbmFtZT0ibWV0aG9kX19fY29uc3RydWN0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5fX2NvbnN0cnVjdCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+X19jb25zdHJ1Y3QoIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHR5cGU8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZXhwcjwvc3Bhbj4sICA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRvcHQ8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdHlwZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZXhwcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kb3B0PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9nZXRfdHlwZSIgbmFtZT0ibWV0aG9kX2dldF90eXBlIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5nZXRfdHlwZSgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+Z2V0X3R5cGUoKTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2dldF9leHByIiBuYW1lPSJtZXRob2RfZ2V0X2V4cHIiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPmdldF9leHByKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5nZXRfZXhwcigpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfZ2V0X29wdCIgbmFtZT0ibWV0aG9kX2dldF9vcHQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPmdldF9vcHQoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPmdldF9vcHQoKTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDxkaXYgaWQ9InNvdXJjZS12aWV3IiBjbGFzcz0ibW9kYWwgaGlkZSBmYWRlIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJzb3VyY2Utdmlldy1sYWJlbCIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj7DlzwvYnV0dG9uPgogICAgICAgICAgICA8aDMgaWQ9InNvdXJjZS12aWV3LWxhYmVsIj5jbGFzcy5mZXVfdXNlcl9xdWVyeS5waHA8L2gzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPgogICAgICAgICAgICA8cHJlIGRhdGEtc3JjPSIuLi9maWxlcy9saWIvY2xhc3MuZmV1X3VzZXJfcXVlcnkucGhwLnR4dCIgY2xhc3M9Imxhbmd1YWdlLXBocCBsaW5lLW51bWJlcnMiPjwvcHJlPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGZvb3RlciBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDIiPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MSI+CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBmb290ZXItc2VjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1iYXItY2hhcnQiPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9ncmFwaHMvY2xhc3MuaHRtbCI+Q2xhc3MgSGllcmFyY2h5IERpYWdyYW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tcHVzaHBpbiI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvZXJyb3JzLmh0bWwiPkVycm9yczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vcmVwb3J0cy9tYXJrZXJzLmh0bWwiPk1hcmtlcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxociAvPgogICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb24gaXMgcG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmcvIj5waHBEb2N1bWVudG9yIDwvYT4gYW5kIGF1dGhvcmVkCiAgICAgICAgICAgICAgICAgICAgb24gTm92ZW1iZXIgMzB0aCwgMjAxNiBhdCAxMzo1My4KICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDwvc2VjdGlvbj4KICAgIDwvZm9vdGVyPgo8L2Rpdj4KCjwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/classes/feu_user_query_resultset.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpIHsKICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmVbZGF0YS1zcmNdJykpLmZvckVhY2goZnVuY3Rpb24gKHByZSkgewogICAgICAgICAgICB2YXIgc3JjID0gcHJlLmdldEF0dHJpYnV0ZSgnZGF0YS1zcmMnKTsKICAgICAgICAgICAgdmFyIGV4dGVuc2lvbiA9IChzcmMubWF0Y2goL1wuKFx3KykkLykgfHwgWywgJyddKVsxXTsKICAgICAgICAgICAgdmFyIGxhbmd1YWdlID0gJ3BocCc7CgogICAgICAgICAgICB2YXIgY29kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvZGUnKTsKICAgICAgICAgICAgY29kZS5jbGFzc05hbWUgPSAnbGFuZ3VhZ2UtJyArIGxhbmd1YWdlOwoKICAgICAgICAgICAgcHJlLnRleHRDb250ZW50ID0gJyc7CgogICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ0xvYWRpbmfigKYnOwoKICAgICAgICAgICAgcHJlLmFwcGVuZENoaWxkKGNvZGUpOwoKICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoKICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHNyYywgdHJ1ZSk7CgogICAgICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09IDQpIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPCA0MDAgJiYgeGhyLnJlc3BvbnNlVGV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0geGhyLnJlc3BvbnNlVGV4dDsKCiAgICAgICAgICAgICAgICAgICAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQoY29kZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHhoci5zdGF0dXMgPj0gNDAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSAn4pyWIEVycm9yICcgKyB4aHIuc3RhdHVzICsgJyB3aGlsZSBmZXRjaGluZyBmaWxlOiAnICsgeGhyLnN0YXR1c1RleHQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ+KcliBFcnJvcjogRmlsZSBkb2VzIG5vdCBleGlzdCBvciBpcyBlbXB0eSc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7CiAgICAgICAgfSk7CiAgICB9CgogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBsb2FkRXh0ZXJuYWxDb2RlU25pcHBldHMoKTsKICAgIH0pOwogICAgJCgnI3NvdXJjZS12aWV3Jykub24oJ3Nob3duJywgZnVuY3Rpb24gKCkgewogICAgICAgIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpOwogICAgfSkKPC9zY3JpcHQ+CgogICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZyIvPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1maXhlZC10b3AiPgogICAgPGRpdiBjbGFzcz0ibmF2YmFyLWlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1uYXZiYXIiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9Ii5uYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZWxsaXBzaXMtdmVydGljYWwiPjwvaT4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0iYnJhbmQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPkZyb250RW5kVXNlcnMgMi4yLjAuNjwvYT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBwdWxsLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vaW5kZXguaHRtbCIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBEb2N1bWVudGF0aW9uIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9ImNoYXJ0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJ0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtDbGFzcyBoaWVyYXJjaHkgZGlhZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0icmVwb3J0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtFcnJvcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+OTg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7TWFya2VycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tPGRpdiBjbGFzcz0iZ29fdG9fdG9wIj4tLT4KICAgIDwhLS08YSBocmVmPSIjX19fIiBzdHlsZT0iY29sb3I6IGluaGVyaXQiPkJhY2sgdG8gdG9wJiMxNjA7JiMxNjA7PGkgY2xhc3M9Imljb24tdXBsb2FkIGljb24td2hpdGUiPjwvaT48L2E+LS0+CiAgICA8IS0tPC9kaXY+LS0+CjwvZGl2PgoKPGRpdiBpZD0iX19fIiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiBzaWRlYmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24iIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJhY2NvcmRpb24tdG9nZ2xlICIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI25hbWVzcGFjZS00ODU0NTA5MTYiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9uYW1lc3BhY2VzL2RlZmF1bHQuaHRtbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAzMHB4OyBwYWRkaW5nLWxlZnQ6IDAiPlw8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJuYW1lc3BhY2UtNDg1NDUwOTE2IiBjbGFzcz0iYWNjb3JkaW9uLWJvZHkgY29sbGFwc2UgaW4iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWlubmVyIj4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9vcHQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfb3B0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwiPmZldV91c2VyX3F1ZXJ5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCI+RnJvbnRFbmRVc2VyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICAgICAgICAgIDxuYXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL25hbWVzcGFjZXMvZGVmYXVsdC5odG1sIj5cPC9hPiA8aSBjbGFzcz0iaWNvbi1sZXZlbC11cCI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmF2PgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KCiAgICAgICAgICAgICAgICAgICAgPGgxPjxzbWFsbD5cPC9zbWFsbD5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQ8L2gxPgogICAgICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gaWQ9InN1bW1hcnkiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDI+U3VtbWFyeTwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgaGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNtZXRob2RzIj5NZXRob2RzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjcHJvcGVydGllcyI+UHJvcGVydGllczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2NvbnN0YW50cyI+Q29uc3RhbnRzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgcHVibGljIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCNtZXRob2RfX19jb25zdHJ1Y3QiIGNsYXNzPSIiPl9fY29uc3RydWN0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCNtZXRob2RfUmVjb3JkQ291bnQiIGNsYXNzPSIiPlJlY29yZENvdW50KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCNtZXRob2RfTW92ZU5leHQiIGNsYXNzPSIiPk1vdmVOZXh0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCNtZXRob2RfTW92ZUZpcnN0IiBjbGFzcz0iIj5Nb3ZlRmlyc3QoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sI21ldGhvZF9FT0YiIGNsYXNzPSIiPkVPRigpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0Lmh0bWwjbWV0aG9kX0Nsb3NlIiBjbGFzcz0iIj5DbG9zZSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0Lmh0bWwjbWV0aG9kX19fZ2V0IiBjbGFzcz0iIj5fX2dldCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0Lmh0bWwjbWV0aG9kX2dldF9mb3VuZF9yb3dzIiBjbGFzcz0iIj5nZXRfZm91bmRfcm93cygpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5ObyBwdWJsaWMgcHJvcGVydGllcyBmb3VuZDwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPk5vIGNvbnN0YW50cyBmb3VuZDwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIHByb3RlY3RlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5ObyBwcm90ZWN0ZWQgbWV0aG9kcyBmb3VuZDwvZW0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPk5vIHByb3RlY3RlZCBwcm9wZXJ0aWVzIGZvdW5kPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+Ti9BPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIHByaXZhdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sI21ldGhvZF9fZ2V0X2dyb3VwcyIgY2xhc3M9IiI+X2dldF9ncm91cHMoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sI21ldGhvZF9fZXhlY3V0ZSIgY2xhc3M9IiI+X2V4ZWN1dGUoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sI3Byb3BlcnR5X19xdWVyeSIgY2xhc3M9IiI+JF9xdWVyeTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sI3Byb3BlcnR5X19leGVjdXRlZCIgY2xhc3M9IiI+JF9leGVjdXRlZDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sI3Byb3BlcnR5X19ycyIgY2xhc3M9IiI+JF9yczwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sI3Byb3BlcnR5X19mb3VuZF9yb3dzIiBjbGFzcz0iIj4kX2ZvdW5kX3Jvd3M8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCNwcm9wZXJ0eV9fZ3JvdXBzIiBjbGFzcz0iIj4kX2dyb3VwczwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+Ti9BPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJsYWJlbCBsYWJlbC1pbmZvIj5maW5hbDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5GaWxlPC9kdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZD48YSBocmVmPSIuLi9maWxlcy9saWIuY2xhc3MuZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0LnBocC5odG1sIj48ZGl2IGNsYXNzPSJwYXRoLXdyYXBwZXIiPmxpYi9jbGFzcy5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQucGhwPC9kaXY+PC9hPjwvZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5DbGFzcyBoaWVyYXJjaHk8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPSJoaWVyYXJjaHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hbWVzcGFjZS13cmFwcGVyIj5cZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICA8L2FzaWRlPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0icHJvcGVydGllcyIgbmFtZT0icHJvcGVydGllcyI+PC9hPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgICAgICAgICAgPGgyPlByb3BlcnRpZXM8L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPjwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0icHJvcGVydHlfX3F1ZXJ5IiBuYW1lPSJwcm9wZXJ0eV9fcXVlcnkiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9InByb3BlcnR5Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHJpdmF0ZSAiPiRfcXVlcnk8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj4kX3F1ZXJ5PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0icHJvcGVydHlfX2V4ZWN1dGVkIiBuYW1lPSJwcm9wZXJ0eV9fZXhlY3V0ZWQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9InByb3BlcnR5Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHJpdmF0ZSAiPiRfZXhlY3V0ZWQ8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj4kX2V4ZWN1dGVkPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0icHJvcGVydHlfX3JzIiBuYW1lPSJwcm9wZXJ0eV9fcnMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9InByb3BlcnR5Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHJpdmF0ZSAiPiRfcnM8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj4kX3JzPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0icHJvcGVydHlfX2ZvdW5kX3Jvd3MiIG5hbWU9InByb3BlcnR5X19mb3VuZF9yb3dzIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX2ZvdW5kX3Jvd3M8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj4kX2ZvdW5kX3Jvd3M8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJwcm9wZXJ0eV9fZ3JvdXBzIiBuYW1lPSJwcm9wZXJ0eV9fZ3JvdXBzIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJwcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InByaXZhdGUgIj4kX2dyb3VwczwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPiRfZ3JvdXBzPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJtZXRob2RzIiBuYW1lPSJtZXRob2RzIj48L2E+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj48aDI+TWV0aG9kczwvaDI+PC9kaXY+CiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPjwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9fX2NvbnN0cnVjdCIgbmFtZT0ibWV0aG9kX19fY29uc3RydWN0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5fX2NvbnN0cnVjdCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+X19jb25zdHJ1Y3QoXGZldV91c2VyX3F1ZXJ5IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHF1ZXJ5PC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sIj5cZmV1X3VzZXJfcXVlcnk8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHF1ZXJ5PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9SZWNvcmRDb3VudCIgbmFtZT0ibWV0aG9kX1JlY29yZENvdW50IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5SZWNvcmRDb3VudCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+UmVjb3JkQ291bnQoKTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX01vdmVOZXh0IiBuYW1lPSJtZXRob2RfTW92ZU5leHQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPk1vdmVOZXh0KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Nb3ZlTmV4dCgpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfTW92ZUZpcnN0IiBuYW1lPSJtZXRob2RfTW92ZUZpcnN0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Nb3ZlRmlyc3QoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPk1vdmVGaXJzdCgpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfRU9GIiBuYW1lPSJtZXRob2RfRU9GIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5FT0YoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkVPRigpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfQ2xvc2UiIG5hbWU9Im1ldGhvZF9DbG9zZSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+Q2xvc2UoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkNsb3NlKCk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9fX2dldCIgbmFtZT0ibWV0aG9kX19fZ2V0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5fX2dldCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+X19nZXQoIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGtleTwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRrZXk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX2dldF9mb3VuZF9yb3dzIiBuYW1lPSJtZXRob2RfZ2V0X2ZvdW5kX3Jvd3MiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPmdldF9mb3VuZF9yb3dzKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5nZXRfZm91bmRfcm93cygpPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9fZ2V0X2dyb3VwcyIgbmFtZT0ibWV0aG9kX19nZXRfZ3JvdXBzIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwcml2YXRlICI+X2dldF9ncm91cHMoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPl9nZXRfZ3JvdXBzKCk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9fZXhlY3V0ZSIgbmFtZT0ibWV0aG9kX19leGVjdXRlIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwcml2YXRlICI+X2V4ZWN1dGUoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPl9leGVjdXRlKCk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPGRpdiBpZD0ic291cmNlLXZpZXciIGNsYXNzPSJtb2RhbCBoaWRlIGZhZGUiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9InNvdXJjZS12aWV3LWxhYmVsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAgICAgIDxoMyBpZD0ic291cmNlLXZpZXctbGFiZWwiPmNsYXNzLmZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5waHA8L2gzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPgogICAgICAgICAgICA8cHJlIGRhdGEtc3JjPSIuLi9maWxlcy9saWIvY2xhc3MuZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0LnBocC50eHQiIGNsYXNzPSJsYW5ndWFnZS1waHAgbGluZS1udW1iZXJzIj48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxmb290ZXIgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgZm9vdGVyLXNlY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYmFyLWNoYXJ0Ij48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vZ3JhcGhzL2NsYXNzLmh0bWwiPkNsYXNzIEhpZXJhcmNoeSBEaWFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLXB1c2hwaW4iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj5FcnJvcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvbWFya2Vycy5odG1sIj5NYXJrZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQxIj4KICAgICAgICAgICAgICAgICAgICA8aHIgLz4KICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uIGlzIHBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5waHBkb2Mub3JnLyI+cGhwRG9jdW1lbnRvciA8L2E+IGFuZCBhdXRob3JlZAogICAgICAgICAgICAgICAgICAgIG9uIE5vdmVtYmVyIDMwdGgsIDIwMTYgYXQgMTM6NTMuCiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICA8L3NlY3Rpb24+CiAgICA8L2Zvb3Rlcj4KPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4K]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/classes/FrontEndUsers.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpIHsKICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmVbZGF0YS1zcmNdJykpLmZvckVhY2goZnVuY3Rpb24gKHByZSkgewogICAgICAgICAgICB2YXIgc3JjID0gcHJlLmdldEF0dHJpYnV0ZSgnZGF0YS1zcmMnKTsKICAgICAgICAgICAgdmFyIGV4dGVuc2lvbiA9IChzcmMubWF0Y2goL1wuKFx3KykkLykgfHwgWywgJyddKVsxXTsKICAgICAgICAgICAgdmFyIGxhbmd1YWdlID0gJ3BocCc7CgogICAgICAgICAgICB2YXIgY29kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvZGUnKTsKICAgICAgICAgICAgY29kZS5jbGFzc05hbWUgPSAnbGFuZ3VhZ2UtJyArIGxhbmd1YWdlOwoKICAgICAgICAgICAgcHJlLnRleHRDb250ZW50ID0gJyc7CgogICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ0xvYWRpbmfigKYnOwoKICAgICAgICAgICAgcHJlLmFwcGVuZENoaWxkKGNvZGUpOwoKICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoKICAgICAgICAgICAgeGhyLm9wZW4oJ0dFVCcsIHNyYywgdHJ1ZSk7CgogICAgICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09IDQpIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPCA0MDAgJiYgeGhyLnJlc3BvbnNlVGV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0geGhyLnJlc3BvbnNlVGV4dDsKCiAgICAgICAgICAgICAgICAgICAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQoY29kZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHhoci5zdGF0dXMgPj0gNDAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSAn4pyWIEVycm9yICcgKyB4aHIuc3RhdHVzICsgJyB3aGlsZSBmZXRjaGluZyBmaWxlOiAnICsgeGhyLnN0YXR1c1RleHQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ+KcliBFcnJvcjogRmlsZSBkb2VzIG5vdCBleGlzdCBvciBpcyBlbXB0eSc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7CiAgICAgICAgfSk7CiAgICB9CgogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBsb2FkRXh0ZXJuYWxDb2RlU25pcHBldHMoKTsKICAgIH0pOwogICAgJCgnI3NvdXJjZS12aWV3Jykub24oJ3Nob3duJywgZnVuY3Rpb24gKCkgewogICAgICAgIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpOwogICAgfSkKPC9zY3JpcHQ+CgogICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZyIvPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1maXhlZC10b3AiPgogICAgPGRpdiBjbGFzcz0ibmF2YmFyLWlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1uYXZiYXIiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9Ii5uYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZWxsaXBzaXMtdmVydGljYWwiPjwvaT4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0iYnJhbmQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPkZyb250RW5kVXNlcnMgMi4yLjAuNjwvYT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBwdWxsLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vaW5kZXguaHRtbCIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBEb2N1bWVudGF0aW9uIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9ImNoYXJ0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJ0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtDbGFzcyBoaWVyYXJjaHkgZGlhZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0icmVwb3J0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtFcnJvcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+OTg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7TWFya2VycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tPGRpdiBjbGFzcz0iZ29fdG9fdG9wIj4tLT4KICAgIDwhLS08YSBocmVmPSIjX19fIiBzdHlsZT0iY29sb3I6IGluaGVyaXQiPkJhY2sgdG8gdG9wJiMxNjA7JiMxNjA7PGkgY2xhc3M9Imljb24tdXBsb2FkIGljb24td2hpdGUiPjwvaT48L2E+LS0+CiAgICA8IS0tPC9kaXY+LS0+CjwvZGl2PgoKPGRpdiBpZD0iX19fIiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiBzaWRlYmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24iIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJhY2NvcmRpb24tdG9nZ2xlICIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI25hbWVzcGFjZS03ODQyMzE0NTIiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9uYW1lc3BhY2VzL2RlZmF1bHQuaHRtbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAzMHB4OyBwYWRkaW5nLWxlZnQ6IDAiPlw8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJuYW1lc3BhY2UtNzg0MjMxNDUyIiBjbGFzcz0iYWNjb3JkaW9uLWJvZHkgY29sbGFwc2UgaW4iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWlubmVyIj4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9vcHQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfb3B0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwiPmZldV91c2VyX3F1ZXJ5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCI+RnJvbnRFbmRVc2VyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICAgICAgICAgIDxuYXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL25hbWVzcGFjZXMvZGVmYXVsdC5odG1sIj5cPC9hPiA8aSBjbGFzcz0iaWNvbi1sZXZlbC11cCI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmF2PgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KCiAgICAgICAgICAgICAgICAgICAgPGgxPjxzbWFsbD5cPC9zbWFsbD5Gcm9udEVuZFVzZXJzPC9oMT4KICAgICAgICAgICAgICAgICAgICA8cD48ZW0+VGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLCBiZXNpZGVzIGJlaW5nIGEgbW9kdWxlIHRvIHByb3ZpZGUgYXV0aGVudGljYXRpb24gc2VydmljZXMgdG8gdGhlIGZyb250ZW5kIG9mIGEgQ01TTVMgd2Vic2l0ZSBhbHNvIGhhcyBhIGNvbXBsZXRlCmFuZCBmbGV4aWJsZSBBUEkuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGlkPSJzdW1tYXJ5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlN1bW1hcnk8L2gyPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIGhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjbWV0aG9kcyI+TWV0aG9kczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3Byb3BlcnRpZXMiPlByb3BlcnRpZXM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNjb25zdGFudHMiPkNvbnN0YW50czwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIHB1YmxpYyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRBZG1pbk1lbnVJdGVtcyIgY2xhc3M9IiI+R2V0QWRtaW5NZW51SXRlbXMoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfQWRkR3JvdXAiIGNsYXNzPSIiPkFkZEdyb3VwKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0FkZEdyb3VwUHJvcGVydHlSZWxhdGlvbiIgY2xhc3M9IiI+QWRkR3JvdXBQcm9wZXJ0eVJlbGF0aW9uKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0FkZFByb3BlcnR5RGVmbiIgY2xhc3M9IiI+QWRkUHJvcGVydHlEZWZuKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0FkZFNlbGVjdE9wdGlvbnMiIGNsYXNzPSIiPkFkZFNlbGVjdE9wdGlvbnMoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfQWRkVXNlciIgY2xhc3M9IiI+QWRkVXNlcigpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9Bc3NpZ25Vc2VyVG9Hcm91cCIgY2xhc3M9IiI+QXNzaWduVXNlclRvR3JvdXAoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfQ291bnRVc2Vyc0luR3JvdXAiIGNsYXNzPSIiPkNvdW50VXNlcnNJbkdyb3VwKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0RlbGV0ZVByb3BlcnR5RGVmbiIgY2xhc3M9IiI+RGVsZXRlUHJvcGVydHlEZWZuKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0RlbGV0ZVNlbGVjdE9wdGlvbnMiIGNsYXNzPSIiPkRlbGV0ZVNlbGVjdE9wdGlvbnMoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfRGVsZXRlVXNlckZ1bGwiIGNsYXNzPSIiPkRlbGV0ZVVzZXJGdWxsKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0RlbGV0ZVVzZXJQcm9wZXJ0eUJ5TmFtZSIgY2xhc3M9IiI+RGVsZXRlVXNlclByb3BlcnR5QnlOYW1lKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0RlbGV0ZVVzZXJQcm9wZXJ0eSIgY2xhc3M9IiI+RGVsZXRlVXNlclByb3BlcnR5KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0RlbGV0ZUFsbFVzZXJQcm9wZXJ0aWVzRnVsbCIgY2xhc3M9IiI+RGVsZXRlQWxsVXNlclByb3BlcnRpZXNGdWxsKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0RlbGV0ZVVzZXJQcm9wZXJ0eUZ1bGwiIGNsYXNzPSIiPkRlbGV0ZVVzZXJQcm9wZXJ0eUZ1bGwoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfRGVsZXRlR3JvdXBGdWxsIiBjbGFzcz0iIj5EZWxldGVHcm91cEZ1bGwoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfRGVsZXRlVXNlciIgY2xhc3M9ImRlcHJlY2F0ZWQiPkRlbGV0ZVVzZXIoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfR2VuZXJhdGVSYW5kb21Vc2VybmFtZSIgY2xhc3M9IiI+R2VuZXJhdGVSYW5kb21Vc2VybmFtZSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRVc2VyUHJvcGVydGllcyIgY2xhc3M9IiI+R2V0VXNlclByb3BlcnRpZXMoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfR2V0TWVtYmVyR3JvdXBzQXJyYXkiIGNsYXNzPSIiPkdldE1lbWJlckdyb3Vwc0FycmF5KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldFVzZXJQcm9wZXJ0eSIgY2xhc3M9IiI+R2V0VXNlclByb3BlcnR5KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldFVzZXJQcm9wZXJ0eUZ1bGwiIGNsYXNzPSIiPkdldFVzZXJQcm9wZXJ0eUZ1bGwoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfR2V0UHJvcGVydHlHcm91cFJlbGF0aW9ucyIgY2xhc3M9IiI+R2V0UHJvcGVydHlHcm91cFJlbGF0aW9ucygpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRVc2VyUHJvcGVydHlSZWxhdGlvbnMiIGNsYXNzPSIiPkdldFVzZXJQcm9wZXJ0eVJlbGF0aW9ucygpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zIiBjbGFzcz0iIj5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldEdyb3VwSW5mbyIgY2xhc3M9IiI+R2V0R3JvdXBJbmZvKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldFVzZXJIaXN0b3J5IiBjbGFzcz0iIj5HZXRVc2VySGlzdG9yeSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRMb2dnZWRJblVzZXJzIiBjbGFzcz0iIj5HZXRMb2dnZWRJblVzZXJzKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldEJ1bGtVc2VySW5mbyIgY2xhc3M9IiI+R2V0QnVsa1VzZXJJbmZvKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldFVzZXJJbmZvIiBjbGFzcz0iIj5HZXRVc2VySW5mbygpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRVc2VySW5mb0J5TmFtZSIgY2xhc3M9IiI+R2V0VXNlckluZm9CeU5hbWUoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfR2V0RnVsbFVzZXJzSW5Hcm91cCIgY2xhc3M9IiI+R2V0RnVsbFVzZXJzSW5Hcm91cCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9Hcm91cEV4aXN0c0J5SUQiIGNsYXNzPSIiPkdyb3VwRXhpc3RzQnlJRCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9Hcm91cEV4aXN0c0J5TmFtZSIgY2xhc3M9IiI+R3JvdXBFeGlzdHNCeU5hbWUoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfTG9nZ2VkSW5FbWFpbCIgY2xhc3M9IiI+TG9nZ2VkSW5FbWFpbCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRFbWFpbCIgY2xhc3M9IiI+R2V0RW1haWwoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfR2V0UHJvcGVydHlEZWZucyIgY2xhc3M9IiI+R2V0UHJvcGVydHlEZWZucygpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRQcm9wZXJ0eURlZm4iIGNsYXNzPSIiPkdldFByb3BlcnR5RGVmbigpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRTZWxlY3RPcHRpb25zIiBjbGFzcz0iIj5HZXRTZWxlY3RPcHRpb25zKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldFVzZXJOYW1lIiBjbGFzcz0iIj5HZXRVc2VyTmFtZSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRVc2VySUQiIGNsYXNzPSIiPkdldFVzZXJJRCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRHcm91cE5hbWUiIGNsYXNzPSIiPkdldEdyb3VwTmFtZSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRHcm91cERlc2MiIGNsYXNzPSIiPkdldEdyb3VwRGVzYygpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRHcm91cExpc3QiIGNsYXNzPSIiPkdldEdyb3VwTGlzdCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9HZXRHcm91cExpc3RGdWxsIiBjbGFzcz0iIj5HZXRHcm91cExpc3RGdWxsKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldEdyb3VwSUQiIGNsYXNzPSIiPkdldEdyb3VwSUQoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfR2V0TWVtYmVyR3JvdXBzIiBjbGFzcz0iIj5HZXRNZW1iZXJHcm91cHMoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfR2V0RXhwaXJ5RGF0ZSIgY2xhc3M9IiI+R2V0RXhwaXJ5RGF0ZSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9Jc0FjY291bnRFeHBpcmVkIiBjbGFzcz0iIj5Jc0FjY291bnRFeHBpcmVkKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0lzVmFsaWRQYXNzd29yZCIgY2xhc3M9IiI+SXNWYWxpZFBhc3N3b3JkKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0dldFVzZXJuYW1lUHJvbXB0IiBjbGFzcz0iIj5HZXRVc2VybmFtZVByb21wdCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9Jc1ZhbGlkRW1haWxBZGRyZXNzIiBjbGFzcz0iIj5Jc1ZhbGlkRW1haWxBZGRyZXNzKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0lzVmFsaWRVc2VybmFtZSIgY2xhc3M9IiI+SXNWYWxpZFVzZXJuYW1lKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0NoZWNrUGFzc3dvcmQiIGNsYXNzPSIiPkNoZWNrUGFzc3dvcmQoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfTG9naW4iIGNsYXNzPSIiPkxvZ2luKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0xvZ2dlZEluTmFtZSIgY2xhc3M9IiI+TG9nZ2VkSW5OYW1lKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0xvZ291dCIgY2xhc3M9IiI+TG9nb3V0KCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0xvZ291dFVzZXIiIGNsYXNzPSIiPkxvZ291dFVzZXIoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfTG9nZ2VkSW5JZCIgY2xhc3M9IiI+TG9nZ2VkSW5JZCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9Mb2dnZWRJbiIgY2xhc3M9IiI+TG9nZ2VkSW4oKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfTWVtYmVyT2ZHcm91cCIgY2xhc3M9IiI+TWVtYmVyT2ZHcm91cCgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9SZW1vdmVVc2VyRnJvbUdyb3VwIiBjbGFzcz0iIj5SZW1vdmVVc2VyRnJvbUdyb3VwKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX1NldFByb3BlcnR5RGVmbkV4dHJhIiBjbGFzcz0iIj5TZXRQcm9wZXJ0eURlZm5FeHRyYSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9TZXRHcm91cCIgY2xhc3M9IiI+U2V0R3JvdXAoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfRW5jcnlwdFBhc3N3b3JkIiBjbGFzcz0iIj5FbmNyeXB0UGFzc3dvcmQoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfU2V0VXNlclBhc3N3b3JkIiBjbGFzcz0iIj5TZXRVc2VyUGFzc3dvcmQoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfU2V0VXNlckRpc2FibGVkIiBjbGFzcz0iIj5TZXRVc2VyRGlzYWJsZWQoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfRm9yY2VQYXNzd29yZENoYW5nZSIgY2xhc3M9IiI+Rm9yY2VQYXNzd29yZENoYW5nZSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9Gb3JjZUNoYW5nZVNldHRpbmdzIiBjbGFzcz0iIj5Gb3JjZUNoYW5nZVNldHRpbmdzKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX0ZvcmNlVmVyaWZ5IiBjbGFzcz0iIj5Gb3JjZVZlcmlmeSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9TZXRVc2VyIiBjbGFzcz0iIj5TZXRVc2VyKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX1NldFVzZXJHcm91cHMiIGNsYXNzPSIiPlNldFVzZXJHcm91cHMoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfQWRkVXNlclRvR3JvdXAiIGNsYXNzPSIiPkFkZFVzZXJUb0dyb3VwKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX1NldFVzZXJQcm9wZXJ0aWVzIiBjbGFzcz0iIj5TZXRVc2VyUHJvcGVydGllcygpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9TZXRVc2VyUHJvcGVydHkiIGNsYXNzPSIiPlNldFVzZXJQcm9wZXJ0eSgpPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI21ldGhvZF9Jc1VzZXJQcm9wZXJ0eVZhbHVlVW5pcXVlIiBjbGFzcz0iIj5Jc1VzZXJQcm9wZXJ0eVZhbHVlVW5pcXVlKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX1NldFVzZXJQcm9wZXJ0eUZ1bGwiIGNsYXNzPSIiPlNldFVzZXJQcm9wZXJ0eUZ1bGwoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNtZXRob2RfVXNlckV4aXN0c0J5SUQiIGNsYXNzPSIiPlVzZXJFeGlzdHNCeUlEKCk8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjbWV0aG9kX1NldEVuY3J5cHRpb25LZXkiIGNsYXNzPSIiPlNldEVuY3J5cHRpb25LZXkoKTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+Tm8gcHVibGljIHByb3BlcnRpZXMgZm91bmQ8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI2NvbnN0YW50X0ZJRUxEVFlQRV9URVhUIiBjbGFzcz0iIj5GSUVMRFRZUEVfVEVYVDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNjb25zdGFudF9GSUVMRFRZUEVfQ0hFQ0tCT1giIGNsYXNzPSIiPkZJRUxEVFlQRV9DSEVDS0JPWDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNjb25zdGFudF9GSUVMRFRZUEVfRU1BSUwiIGNsYXNzPSIiPkZJRUxEVFlQRV9FTUFJTDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNjb25zdGFudF9GSUVMRFRZUEVfVEVYVEFSRUEiIGNsYXNzPSIiPkZJRUxEVFlQRV9URVhUQVJFQTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNjb25zdGFudF9GSUVMRFRZUEVfRFJPUERPV04iIGNsYXNzPSIiPkZJRUxEVFlQRV9EUk9QRE9XTjwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNjb25zdGFudF9GSUVMRFRZUEVfTVVMVElTRUxFQ1QiIGNsYXNzPSIiPkZJRUxEVFlQRV9NVUxUSVNFTEVDVDwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNjb25zdGFudF9GSUVMRFRZUEVfSU1BR0UiIGNsYXNzPSIiPkZJRUxEVFlQRV9JTUFHRTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCNjb25zdGFudF9GSUVMRFRZUEVfUkFESU9CVVROUyIgY2xhc3M9IiI+RklFTERUWVBFX1JBRElPQlVUTlM8L2E+PGJyIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwjY29uc3RhbnRfRklFTERUWVBFX0RBVEUiIGNsYXNzPSIiPkZJRUxEVFlQRV9EQVRFPC9hPjxiciAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2NsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sI2NvbnN0YW50X0ZJRUxEVFlQRV9EQVRBIiBjbGFzcz0iIj5GSUVMRFRZUEVfREFUQTwvYT48YnIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgcHJvdGVjdGVkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPk5vIHByb3RlY3RlZCBtZXRob2RzIGZvdW5kPC9lbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+Tm8gcHJvdGVjdGVkIHByb3BlcnRpZXMgZm91bmQ8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5OL0E8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgcHJpdmF0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5ObyBwcml2YXRlIG1ldGhvZHMgZm91bmQ8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5ObyBwcml2YXRlIHByb3BlcnRpZXMgZm91bmQ8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5OL0E8L2VtPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8iPmZpbmFsPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGR0PkZpbGU8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPjxhIGhyZWY9Ii4uL2ZpbGVzL0Zyb250RW5kVXNlcnMubW9kdWxlLnBocC5odG1sIj48ZGl2IGNsYXNzPSJwYXRoLXdyYXBwZXIiPkZyb250RW5kVXNlcnMubW9kdWxlLnBocDwvZGl2PjwvYT48L2RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+UGFja2FnZTwvZHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+PGRpdiBjbGFzcz0ibmFtZXNwYWNlLXdyYXBwZXIiPlxGcm9udEVuZFVzZXJzPC9kaXY+PC9kZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0PkNsYXNzIGhpZXJhcmNoeTwvZHQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGQgY2xhc3M9ImhpZXJhcmNoeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmFtZXNwYWNlLXdyYXBwZXIiPlxDR0V4dGVuc2lvbnM8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hbWVzcGFjZS13cmFwcGVyIj5cRnJvbnRFbmRVc2VyczwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgPC9hc2lkZT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRzIiBuYW1lPSJjb25zdGFudHMiPjwvYT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICAgICAgICAgIDxoMj5Db25zdGFudHM8L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPjwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfRklFTERUWVBFX1RFWFQiIG5hbWU9ImNvbnN0YW50X0ZJRUxEVFlQRV9URVhUIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9GSUVMRFRZUEVfVEVYVCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5GSUVMRFRZUEVfVEVYVDwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPkZJRUxEVFlQRV9URVhUPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+Q29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgdGV4dCBwcm9wZXJ0eS48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50X0ZJRUxEVFlQRV9DSEVDS0JPWCIgbmFtZT0iY29uc3RhbnRfRklFTERUWVBFX0NIRUNLQk9YIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9GSUVMRFRZUEVfQ0hFQ0tCT1giIGNsYXNzPSJjb25zdGFudCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IiI+RklFTERUWVBFX0NIRUNLQk9YPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+RklFTERUWVBFX0NIRUNLQk9YPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+Q29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgY2hlY2tib3ggcHJvcGVydHkuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9GSUVMRFRZUEVfRU1BSUwiIG5hbWU9ImNvbnN0YW50X0ZJRUxEVFlQRV9FTUFJTCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfRklFTERUWVBFX0VNQUlMIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPkZJRUxEVFlQRV9FTUFJTDwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPkZJRUxEVFlQRV9FTUFJTDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkNvbnN0YW50IHRvIGluZGVudGlmeSBhbiBlbWFpbCBwcm9wZXJ0eS48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50X0ZJRUxEVFlQRV9URVhUQVJFQSIgbmFtZT0iY29uc3RhbnRfRklFTERUWVBFX1RFWFRBUkVBIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9GSUVMRFRZUEVfVEVYVEFSRUEiIGNsYXNzPSJjb25zdGFudCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IiI+RklFTERUWVBFX1RFWFRBUkVBPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+RklFTERUWVBFX1RFWFRBUkVBPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+Q29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgdGV4dGFyZWEgcHJvcGVydHkuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJjb25zdGFudF9GSUVMRFRZUEVfRFJPUERPV04iIG5hbWU9ImNvbnN0YW50X0ZJRUxEVFlQRV9EUk9QRE9XTiIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfRklFTERUWVBFX0RST1BET1dOIiBjbGFzcz0iY29uc3RhbnQiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSIiPkZJRUxEVFlQRV9EUk9QRE9XTjwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPkZJRUxEVFlQRV9EUk9QRE9XTjwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkNvbnN0YW50IHRvIGluZGVudGlmeSBhIGRyb3Bkb3duIHByb3BlcnR5LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfRklFTERUWVBFX01VTFRJU0VMRUNUIiBuYW1lPSJjb25zdGFudF9GSUVMRFRZUEVfTVVMVElTRUxFQ1QiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgaWQ9ImNvbnN0YW50X0ZJRUxEVFlQRV9NVUxUSVNFTEVDVCIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5GSUVMRFRZUEVfTVVMVElTRUxFQ1Q8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5GSUVMRFRZUEVfTVVMVElTRUxFQ1Q8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5Db25zdGFudCB0byBpbmRlbnRpZnkgYSBtdWx0aXNlbGVjdCBwcm9wZXJ0eS48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50X0ZJRUxEVFlQRV9JTUFHRSIgbmFtZT0iY29uc3RhbnRfRklFTERUWVBFX0lNQUdFIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9GSUVMRFRZUEVfSU1BR0UiIGNsYXNzPSJjb25zdGFudCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IiI+RklFTERUWVBFX0lNQUdFPC9oMz4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSI+RklFTERUWVBFX0lNQUdFPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+Q29uc3RhbnQgdG8gaW5kZW50aWZ5IGFuIGltYWdlIHByb3BlcnR5LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfRklFTERUWVBFX1JBRElPQlVUTlMiIG5hbWU9ImNvbnN0YW50X0ZJRUxEVFlQRV9SQURJT0JVVE5TIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9GSUVMRFRZUEVfUkFESU9CVVROUyIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5GSUVMRFRZUEVfUkFESU9CVVROUzwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPkZJRUxEVFlQRV9SQURJT0JVVE5TPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+Q29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgcmFkaW8gYnV0dG9uIGdyb3VwIHByb3BlcnR5LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0iY29uc3RhbnRfRklFTERUWVBFX0RBVEUiIG5hbWU9ImNvbnN0YW50X0ZJRUxEVFlQRV9EQVRFIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGlkPSJjb25zdGFudF9GSUVMRFRZUEVfREFURSIgY2xhc3M9ImNvbnN0YW50Ij4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iIj5GSUVMRFRZUEVfREFURTwvaDM+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiPkZJRUxEVFlQRV9EQVRFPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+Q29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgZGF0ZSBwcm9wZXJ0eS48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9ImNvbnN0YW50X0ZJRUxEVFlQRV9EQVRBIiBuYW1lPSJjb25zdGFudF9GSUVMRFRZUEVfREFUQSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBpZD0iY29uc3RhbnRfRklFTERUWVBFX0RBVEEiIGNsYXNzPSJjb25zdGFudCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9IiI+RklFTERUWVBFX0RBVEE8L2gzPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIj5GSUVMRFRZUEVfREFUQTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkNvbnN0YW50IHRvIGluZGVudGlmeSBhIGRhdGEgcHJvcGVydHkuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJtZXRob2RzIiBuYW1lPSJtZXRob2RzIj48L2E+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj48aDI+TWV0aG9kczwvaDI+PC9kaXY+CiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPjwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9HZXRBZG1pbk1lbnVJdGVtcyIgbmFtZT0ibWV0aG9kX0dldEFkbWluTWVudUl0ZW1zIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRBZG1pbk1lbnVJdGVtcygpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+R2V0QWRtaW5NZW51SXRlbXMoKTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0FkZEdyb3VwIiBuYW1lPSJtZXRob2RfQWRkR3JvdXAiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkFkZEdyb3VwKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5BZGRHcm91cChzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kbmFtZTwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRkZXNjcmlwdGlvbjwvc3Bhbj4pIDogYXJyYXk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5BZGQgYSBuZXcgZ3JvdXA8L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JG5hbWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgZ3JvdXAgbmFtZTwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGRlc2NyaXB0aW9uPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIGdyb3VwIGRlc2NyaXB0aW9uPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPkFycmF5IGNvbnRhaW5pbmcgdHdvIGVsZW1lbnRzLiAgVGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIHJldHVybiBzdGF0dXMgb2YgdGhlIGZ1bmN0aW9uIChib29sZWFuKSwgdGhlIHNlY29uZCBlbGVtZW50IGlzIGVpdGhlciBhIG1lc3NhZ2UgaW4gdGhlCiAgIGNhc2Ugb2YgYW4gZXJyb3IsIG9yIHRoZSBncm91cCBpZCAoaW50ZWdlcikgb24gc3VjY2Vzcy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0FkZEdyb3VwUHJvcGVydHlSZWxhdGlvbiIgbmFtZT0ibWV0aG9kX0FkZEdyb3VwUHJvcGVydHlSZWxhdGlvbiIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+QWRkR3JvdXBQcm9wZXJ0eVJlbGF0aW9uKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5BZGRHcm91cFByb3BlcnR5UmVsYXRpb24oaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGdycGlkPC9zcGFuPiwgc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHByb3BuYW1lPC9zcGFuPiwgaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHNvcnRrZXk8L3NwYW4+LCBib29sZWFuIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGxvc3R1bjwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRyZXF1aXJlZDwvc3Bhbj4pIDogYXJyYXk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5BZGQgYSBuZXcgZ3JvdXAgcHJvcGVydHkgcmVsYXRpb24uPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRncnBpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBncm91cCBpZDwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHByb3BuYW1lPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHByb3BlcnR5IG5hbWU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRzb3J0a2V5PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHNvcnRpbmcgb3JkZXIgZm9yIHRoaXMgcmVsYXRpb25zaGlwPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ib29sZWFuPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGxvc3R1bjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPldldGhlciB0aGlzIHJlbGF0aW9uc2hpcCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGxvc3R1biBzdHVmZiAoZGVwcmVjYXRlZCk8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRyZXF1aXJlZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSByZXF1aXJlZCBmbGFnIGZvciB0aGlzIHJlbGF0aW9uc2hpcC4gIDA9PW9mZiAxPT1vcHRpb25hbCwgMj09cmVxdWlyZWQ8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBhcnJheQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZGFzaDsgPHA+Rmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgdGhlIHJldHVybiBzdGF0dXMsIHNlY29uZCBlbGVtZW50IGlzIHRoZSBlcnJvciBtZXNzYWdlLCBpZiBhbnkuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9BZGRQcm9wZXJ0eURlZm4iIG5hbWU9Im1ldGhvZF9BZGRQcm9wZXJ0eURlZm4iIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkFkZFByb3BlcnR5RGVmbigpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+QWRkUHJvcGVydHlEZWZuKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRuYW1lPC9zcGFuPiwgc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHByb21wdDwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR0eXBlPC9zcGFuPiwgaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGxlbmd0aDwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRtYXhsZW5ndGg8L3NwYW4+LCBzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kYXR0cmliczwvc3Bhbj4sIGJvb2wgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZm9yY2VfdW5pcXVlPC9zcGFuPiwgYm9vbCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRlbmNyeXB0PC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5BZGQgYSBuZXcgcHJvcGVydHkgZGVmaW5pdGlvbjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kbmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBwcm9wZXJ0eSBuYW1lPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kcHJvbXB0PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHByb3BlcnR5IHByb21wdCBmb3IgdXNlIGluIHZhcmlvdXMgdmlld3M8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR0eXBlPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIGZpZWxkIHR5cGU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRsZW5ndGg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgZGVmYXVsdCBsZW5ndGggZm9yIHJlbmRlcmluZyB0aGUgcHJvcGVydHk8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRtYXhsZW5ndGg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgbWF4aW11bSBsZW5ndGggZm9yIHJlbmRlcmluZyB0aGUgcHJvcGVydHk8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRhdHRyaWJzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+QSBzZXJpYWxpemVkIGFycmF5IG9mIGF0dHJpYnV0ZXMgZm9yIHRoZSBwcm9wZXJ0eTwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Ym9vbDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRmb3JjZV91bmlxdWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5XaGV0aGVyIG9yIG5vdCB0aGUgdmFsdWUgZm9yIHRoaXMgcHJvcGVydHkgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHVzZXJzLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Ym9vbDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRlbmNyeXB0PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+V2hldGhlciBvciBub3QgdGhpcyBkYXRhIHNob3VsZCBiZSBlbmNyeXB0ZWQgaW4gdGhlIGRhdGFiYXNlLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0FkZFNlbGVjdE9wdGlvbnMiIG5hbWU9Im1ldGhvZF9BZGRTZWxlY3RPcHRpb25zIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5BZGRTZWxlY3RPcHRpb25zKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5BZGRTZWxlY3RPcHRpb25zKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRuYW1lPC9zcGFuPiwgYXJyYXkgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kc2Vsb3B0aW9uczwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+U2V0IHNlbGVjdCBvcHRpb25zIGZvciBhIGRyb3Bkb3duL3JhZGlvLWJ1dHRvbi1ncm91cCBvciBtdWx0aXNlbGVjdCBwcm9wZXJ0eS48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JG5hbWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgcHJvcGVydHkgbmFtZTwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+YXJyYXk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kc2Vsb3B0aW9uczwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPnRoZSBTZWxlY3Qgb3B0aW9ucy48L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9BZGRVc2VyIiBuYW1lPSJtZXRob2RfQWRkVXNlciIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+QWRkVXNlcigpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+QWRkVXNlcihzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kbmFtZTwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRwYXNzd29yZDwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRleHBpcmVzPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkFkZCBhIHVzZXIgdG8gdGhlIHN5ZXRlbTwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kbmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBuZXcgdXNlcm5hbWU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRwYXNzd29yZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBwbGFpbiB0ZXh0IHBhc3N3b3JkPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZXhwaXJlczwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPnRoZSBVbml4IHRpbWVzdGFtcCBvZiB0aGUgZXhwaXJ5IGRhdGU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBhcnJheQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZGFzaDsgPHA+VGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHN1Y2Nlc3Mgb3IgZmFpbHVyZSwgdGhlIHNlY29uZCBlbGVtZW50IGlzIGFuIGVycm9yIG1lc3NhZ2UsIG9yIHRoZSBuZXcgVUlELjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfQXNzaWduVXNlclRvR3JvdXAiIG5hbWU9Im1ldGhvZF9Bc3NpZ25Vc2VyVG9Hcm91cCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+QXNzaWduVXNlclRvR3JvdXAoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkFzc2lnblVzZXJUb0dyb3VwKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCBpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZ2lkPC9zcGFuPikgOiBib29sZWFuPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+QXNzaWduIHRoZSBzcGVjaWZpZWQgdXNlciB0byB0aGUgc3BlY2lmaWVkIGdyb3VwPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgdXNlciBpZGVudGlmaWVyPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZ2lkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIGdyb3VwIGlkZW50aWZpZXI8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBib29sZWFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0NvdW50VXNlcnNJbkdyb3VwIiBuYW1lPSJtZXRob2RfQ291bnRVc2Vyc0luR3JvdXAiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkNvdW50VXNlcnNJbkdyb3VwKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Db3VudFVzZXJzSW5Hcm91cChpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZ2lkPC9zcGFuPikgOiBpbnQ8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5Db3VudCB0aGUgbnVtYmVyIG9mIG5vbiBkaXNhYmxlZCB1c2VycyBpbiBhIGdyb3VwLCBvciBpbiB0aGUgZW50aXJlIHN5c3RlbS48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGdpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPk9wdGlvbmFsIGdyb3VwIGlkZW50aWZpZXIuPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgaW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0RlbGV0ZVByb3BlcnR5RGVmbiIgbmFtZT0ibWV0aG9kX0RlbGV0ZVByb3BlcnR5RGVmbiIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+RGVsZXRlUHJvcGVydHlEZWZuKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5EZWxldGVQcm9wZXJ0eURlZm4oc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JG5hbWU8L3NwYW4+KSA6IGJvb2xlYW48L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5QZXJtYW5lbnRseSByZW1vdmUgYSBwcm9wZXJ0eTwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kbmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBwcm9wZXJ0eSBuYW1lPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYm9vbGVhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9EZWxldGVTZWxlY3RPcHRpb25zIiBuYW1lPSJtZXRob2RfRGVsZXRlU2VsZWN0T3B0aW9ucyIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+RGVsZXRlU2VsZWN0T3B0aW9ucygpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+RGVsZXRlU2VsZWN0T3B0aW9ucyhzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kbmFtZTwvc3Bhbj4pIDogYXJyYXk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5EZWxldGUgdGhlIHNlbGVjdCBvcHRpb25zIChpZiBhbnkpIGZvciBhIHByb3BlcnR5PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRuYW1lPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHByb3BlcnR5IG5hbWU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBhcnJheQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZGFzaDsgPHA+VGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIGEgYm9vbGVhbiBzdGF0dXMsIHRoZSBzZWNvbmQgZWxlbWVudCAoaWYgYW55KSBpcyBhbiBlcnJvciBtZXNzYWdlLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfRGVsZXRlVXNlckZ1bGwiIG5hbWU9Im1ldGhvZF9EZWxldGVVc2VyRnVsbCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+RGVsZXRlVXNlckZ1bGwoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkRlbGV0ZVVzZXJGdWxsKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+KSA6IGFycmF5PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+Q29tcGxldGVseSBkZWxldGUgYSB1c2VyIGZyb20gdGhlIGRhdGFiYXNlLiAgSW5jbHVkaW5nIGFsbCBwcm9wZXJ0aWVzLCBncm91cCBtZW1iZXJzaGlwcywgZXRjLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHVzZXIgaWRlbnRpZmllciB0byBkZWxldGUuPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLCB0aGUgc2Vjb25kIGVsZW1lbnQgKGlmIGFueSkgaXMgYW4gZXJyb3IgbWVzc2FnZS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0RlbGV0ZVVzZXJQcm9wZXJ0eUJ5TmFtZSIgbmFtZT0ibWV0aG9kX0RlbGV0ZVVzZXJQcm9wZXJ0eUJ5TmFtZSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+RGVsZXRlVXNlclByb3BlcnR5QnlOYW1lKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5EZWxldGVVc2VyUHJvcGVydHlCeU5hbWUoc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHRpdGxlPC9zcGFuPikgOiBib29sZWFuPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+UmVtb3ZlIGEgc3BlY2lmaWVkIHByb3BlcnR5IGZvciBhbGwgdXNlcnMsIGJ1dCBkbyBub3QgcmVtb3ZlIHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9uLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdGl0bGU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgcHJvcGVydHkgbmFtZTwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGJvb2xlYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfRGVsZXRlVXNlclByb3BlcnR5IiBuYW1lPSJtZXRob2RfRGVsZXRlVXNlclByb3BlcnR5IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5EZWxldGVVc2VyUHJvcGVydHkoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkRlbGV0ZVVzZXJQcm9wZXJ0eShzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdGl0bGU8L3NwYW4+LCBib29sZWFuIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGFsbDwvc3Bhbj4pIDogYm9vbGVhbjwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkRlbGV0ZSBhIHVzZXIgcHJvcGVydHkgZm9yIGEgc3BlY2lmaWMgdXNlci48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHRpdGxlPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHByb3BlcnR5IG5hbWU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmJvb2xlYW48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kYWxsPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+V2V0aGVyIG9yIG5vdCB0byBkZWxldGUgYWxsIHByb3BlcnRpZXMgZm9yIHRoZSB1c2VyLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGJvb2xlYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfRGVsZXRlQWxsVXNlclByb3BlcnRpZXNGdWxsIiBuYW1lPSJtZXRob2RfRGVsZXRlQWxsVXNlclByb3BlcnRpZXNGdWxsIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5EZWxldGVBbGxVc2VyUHJvcGVydGllc0Z1bGwoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkRlbGV0ZUFsbFVzZXJQcm9wZXJ0aWVzRnVsbChpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdXNlcmlkPC9zcGFuPikgOiBib29sZWFuPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+RGVsZXRlIGFsbCB1c2VyIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlci48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVzZXJpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSB1c2VyaWQ8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBib29sZWFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0RlbGV0ZVVzZXJQcm9wZXJ0eUZ1bGwiIG5hbWU9Im1ldGhvZF9EZWxldGVVc2VyUHJvcGVydHlGdWxsIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5EZWxldGVVc2VyUHJvcGVydHlGdWxsKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5EZWxldGVVc2VyUHJvcGVydHlGdWxsKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR0aXRsZTwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1c2VyaWQ8L3NwYW4+LCBib29sZWFuIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGFsbDwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+RGVsZXRlIHNwZWNpZmllZCB1c2VyIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlci48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHRpdGxlPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHByb3BlcnR5IG5hbWU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1c2VyaWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgdXNlcmlkPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ib29sZWFuPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGFsbDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPldldGhlciBvciBub3QgdG8gZGVsZXRlIGFsbCBwcm9wZXJ0aWVzIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIuPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfRGVsZXRlR3JvdXBGdWxsIiBuYW1lPSJtZXRob2RfRGVsZXRlR3JvdXBGdWxsIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5EZWxldGVHcm91cEZ1bGwoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkRlbGV0ZUdyb3VwRnVsbChpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZ2lkPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkRlbGV0ZSBhIHNwZWNpZmllZCBncm91cC48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGdpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBncm91cCBpZGVudGlmaWVyPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLCB0aGUgc2Vjb25kIGVsZW1lbnQgKGlmIGFueSkgaXMgYW4gZXJyb3IgbWVzc2FnZS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0RlbGV0ZVVzZXIiIG5hbWU9Im1ldGhvZF9EZWxldGVVc2VyIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgZGVwcmVjYXRlZCI+RGVsZXRlVXNlcigpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+RGVsZXRlVXNlcihpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kaWQ8L3NwYW4+KSA6IGFycmF5PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+RGVsZXRlIHRoZSBzcGVjaWZpZWQgdXNlciBhY2NvdW50LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kaWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgdWlkPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLCB0aGUgc2Vjb25kIGVsZW1lbnQgKGlmIGFueSkgaXMgYW4gZXJyb3IgbWVzc2FnZS48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9ImFsZXJ0IGFsZXJ0LWJsb2NrIGFsZXJ0LWVycm9yIj4KICAgICAgICAgICAgICAgICAgICA8aDQ+RGVwcmVjYXRlZDwvaDQ+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2FzaWRlPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0PlNlZSBhbHNvPC9kdD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZD48YSBocmVmPSIiPjxzcGFuIGNsYXNzPSJuYW1lc3BhY2Utd3JhcHBlciI+PC9zcGFuPjwvYT48L2RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2VuZXJhdGVSYW5kb21Vc2VybmFtZSIgbmFtZT0ibWV0aG9kX0dlbmVyYXRlUmFuZG9tVXNlcm5hbWUiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdlbmVyYXRlUmFuZG9tVXNlcm5hbWUoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdlbmVyYXRlUmFuZG9tVXNlcm5hbWUoc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHByZWZpeDwvc3Bhbj4pIDogc3RyaW5nPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+R2VuZXJhdGUgYSByYW5kb20gdXNlcm5hbWU8L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHByZWZpeDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPmFuIG9wdGlvbmFsIHByZWZpeCBmb3IgdGhlIHVzZXJuYW1lPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldFVzZXJQcm9wZXJ0aWVzIiBuYW1lPSJtZXRob2RfR2V0VXNlclByb3BlcnRpZXMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldFVzZXJQcm9wZXJ0aWVzKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRVc2VyUHJvcGVydGllcyhpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCBhbGwgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCB1c2VyLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHVzZXIgaWRlbnRpZmllcjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1kYXNoOyA8cD5UaGUgdXNlciBwcm9wZXJ0aWVzIGFzIHJlYWQgZnJvbSB0aGUgZGF0YWJhc2UuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9HZXRNZW1iZXJHcm91cHNBcnJheSIgbmFtZT0ibWV0aG9kX0dldE1lbWJlckdyb3Vwc0FycmF5IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRNZW1iZXJHcm91cHNBcnJheSgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+R2V0TWVtYmVyR3JvdXBzQXJyYXkoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVzZXJpZDwvc3Bhbj4pIDogbnVsbHxhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCBhIGxpc3Qgb2YgdGhlIHNwZWNpZmllZCB1c2VycyBncm91cHMgKGlmIGFueSk8L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVzZXJpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSB1c2VyIGlkZW50aWZpZXI8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBudWxsfGFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1kYXNoOyA8cD5JZiB0aGUgdXNlciBpcyBhIG1lbWJlciBvZiBhbnkgZ3JvdXBzIHRoZSByZXN1bHRpbmcgYXJyYXkgd2lsbCBjb250YWlsIHRoZSB1c2VyaWQsIGFuZCB0aGUgZ3JvdXBpZCBpbiBlYWNoIGVsZW1lbnQgb2YgdGhlIHJldHVybmVkIGFycmF5LjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0VXNlclByb3BlcnR5IiBuYW1lPSJtZXRob2RfR2V0VXNlclByb3BlcnR5IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRVc2VyUHJvcGVydHkoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldFVzZXJQcm9wZXJ0eShzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdGl0bGU8L3NwYW4+LCBtaXhlZCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRkZWZhdWx0dmFsdWU8L3NwYW4+KSA6IHN0cmluZzwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCBhIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdGl0bGU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgcHJvcGVydHkgbmFtZTwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+bWl4ZWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZGVmYXVsdHZhbHVlPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+QW4gb3B0aW9uYWwgZGVmYXVsdCB2YWx1ZSBpZiB0aGUgcHJvcGVydHkgaXMgbm90IHNldCBmb3IgdGhlIHVzZXIuICBOb3RlLCBhbiBlbXB0eSBzdHJpbmcgbWF5IGJlIGEgdmFsaWQgcHJvcGVydHkgdmFsdWUuPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1kYXNoOyA8cD4oQWxsIHByb3BlcnRpZXMgYXJlIHN0b3JlZCBhcyBzdHJpbmdzIGluIHRoZSBkYXRhYmFzZSk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldFVzZXJQcm9wZXJ0eUZ1bGwiIG5hbWU9Im1ldGhvZF9HZXRVc2VyUHJvcGVydHlGdWxsIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRVc2VyUHJvcGVydHlGdWxsKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRVc2VyUHJvcGVydHlGdWxsKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR0aXRsZTwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1c2VyaWQ8L3NwYW4+LCBtaXhlZCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRkZWZhdWx0dmFsdWU8L3NwYW4+KSA6IHN0cmluZzwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCBhIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIgaWQ8L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHRpdGxlPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+dGhlIHByb3BlcnR5IG5hbWU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1c2VyaWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgdXNlciBpZGVudGlmaWVyPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5taXhlZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRkZWZhdWx0dmFsdWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5BbiBvcHRpb25hbCBkZWZhdWx0IHZhbHVlIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc2V0IGZvciB0aGUgdXNlci4gIE5vdGUsIGFuIGVtcHR5IHN0cmluZyBtYXkgYmUgYSB2YWxpZCBwcm9wZXJ0eSB2YWx1ZS48L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPihBbGwgcHJvcGVydGllcyBhcmUgc3RvcmVkIGFzIHN0cmluZ3MgaW4gdGhlIGRhdGFiYXNlKTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0UHJvcGVydHlHcm91cFJlbGF0aW9ucyIgbmFtZT0ibWV0aG9kX0dldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHRpdGxlPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCB0aGUgZ3JvdXAgcHJvcGVydHkgcmVsYXRpb25zIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LCBmb3IgYWxsIGdyb3Vwcy48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHRpdGxlPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+dGhlIHByb3BlcnR5IHRpdGxlLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldFVzZXJQcm9wZXJ0eVJlbGF0aW9ucyIgbmFtZT0ibWV0aG9kX0dldFVzZXJQcm9wZXJ0eVJlbGF0aW9ucyIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+R2V0VXNlclByb3BlcnR5UmVsYXRpb25zKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRVc2VyUHJvcGVydHlSZWxhdGlvbnMoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVpZDwvc3Bhbj4pIDogYXJyYXk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgdGhlIHByb3BlcnR5IHJlbGF0aW9ucyBmb3IgdGhlIHNwZWNpZmllZCB1c2VyPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMiIG5hbWU9Im1ldGhvZF9HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRHcm91cFByb3BlcnR5UmVsYXRpb25zKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRncnBpZDwvc3Bhbj4pIDogYXJyYXk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgdGhlIHByb3BlcnR5IHJlbGF0aW9ucyBmb3IgdGhlIHNwZWNpZmllZCBncm91cDwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZ3JwaWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgZ3JvdXAgaWRlbnRpZmllcjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldEdyb3VwSW5mbyIgbmFtZT0ibWV0aG9kX0dldEdyb3VwSW5mbyIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+R2V0R3JvdXBJbmZvKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRHcm91cEluZm8oaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGdpZDwvc3Bhbj4pIDogYXJyYXk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgdGhlIGdyb3VwIGluZm9ybWF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGdyb3VwPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRnaWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgZ3JvdXAgaWRlbnRpZmllcjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldFVzZXJIaXN0b3J5IiBuYW1lPSJtZXRob2RfR2V0VXNlckhpc3RvcnkiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldFVzZXJIaXN0b3J5KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRVc2VySGlzdG9yeShpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPiwgc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGFjdGlvbjwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRjb3VudDwvc3Bhbj4pIDogYXJyYXk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgdXNlciBoaXN0b3J5IHJlY29yZHMsIGJ5IGRlc2NlbmRpbmcgZGF0ZS48L2VtPjwvcD4KICAgICAgICAgICAgICAgIDxwPldhcm5pbmc6IFRoaXMgY291bGQgcG90ZW50aWFsbHkgcmV0dXJuIGEgdmVyeSBsYXJnZSBhcnJheS48L3A+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRhY3Rpb248L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5BbiBvcHRpb25hbCBhY3Rpb24gZmlsdGVyIChzdWNoIGFzIGxvZ2luIG9yIGxvZ291dCk8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRjb3VudDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPkFuIG9wdGlvbmFsIGxpbWl0PC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0TG9nZ2VkSW5Vc2VycyIgbmFtZT0ibWV0aG9kX0dldExvZ2dlZEluVXNlcnMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldExvZ2dlZEluVXNlcnMoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldExvZ2dlZEluVXNlcnMoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JG5vdF9hY3RpdmVfc2luY2U8L3NwYW4+KSA6IGludFtdPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+R2V0IGEgbGlzdCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2Vycy48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JG5vdF9hY3RpdmVfc2luY2U8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5BbiBvcHRpb25hbCB1bml4IHRpbWVzdGFtcCBmaWx0ZXIgaW5kaWNhdGluZyBsYXN0IGFjdGl2aXR5LjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGludFtdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1kYXNoOyA8cD5BcnJheSBvZiBsb2dnZWQgaW4gdWlkcy48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldEJ1bGtVc2VySW5mbyIgbmFtZT0ibWV0aG9kX0dldEJ1bGtVc2VySW5mbyIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+R2V0QnVsa1VzZXJJbmZvKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRCdWxrVXNlckluZm8oIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVpZHM8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZGVlcDwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWRzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRkZWVwPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdG5vcmUKICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldFVzZXJJbmZvIiBuYW1lPSJtZXRob2RfR2V0VXNlckluZm8iIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldFVzZXJJbmZvKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRVc2VySW5mbyhpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPiwgYm9vbCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRkZWVwPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCB1c2VyIGluZm9ybWF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Ym9vbDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRkZWVwPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+T3B0aW9uYWxseSBhbHNvIHJldHJpZXZlIHByb3BlcnR5IHZhbHVlcy48L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBhcnJheQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9HZXRVc2VySW5mb0J5TmFtZSIgbmFtZT0ibWV0aG9kX0dldFVzZXJJbmZvQnlOYW1lIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRVc2VySW5mb0J5TmFtZSgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+R2V0VXNlckluZm9CeU5hbWUoc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVzZXJuYW1lPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCB1c2VyIGluZm9ybWF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIsIGJ5IGhpcyB1c2VybmFtZS48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVzZXJuYW1lPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBhcnJheQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9HZXRGdWxsVXNlcnNJbkdyb3VwIiBuYW1lPSJtZXRob2RfR2V0RnVsbFVzZXJzSW5Hcm91cCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+R2V0RnVsbFVzZXJzSW5Hcm91cCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+R2V0RnVsbFVzZXJzSW5Hcm91cChpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZ2lkPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCBpbmZvIGZvciB0aGUgdXNlcnMgYnkgdGhlaXIgZ3JvdXAuPC9lbT48L3A+CiAgICAgICAgICAgICAgICA8cD5XYXJuaW5nOiBUaGlzIGNvdWxkIHBvdGVudGlhbGx5IHJldHVybiBhbG90IG9mIGRhdGEuPC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGdpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPkFycmF5IG9mIHVzZXJpbmZvIGRhdGEuICBPbmUgZWxlbWVudCBwZXIgdXNlci48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dyb3VwRXhpc3RzQnlJRCIgbmFtZT0ibWV0aG9kX0dyb3VwRXhpc3RzQnlJRCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+R3JvdXBFeGlzdHNCeUlEKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Hcm91cEV4aXN0c0J5SUQoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGdpZDwvc3Bhbj4pIDogYm9vbDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlRlc3QgaWYgdGhlIGd1aWQgc3BlY2lmaWVkIGlzIGEgdmFsaWQsIGV4aXN0aW5nIGdyb3VwIGlkLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZ2lkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBib29sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dyb3VwRXhpc3RzQnlOYW1lIiBuYW1lPSJtZXRob2RfR3JvdXBFeGlzdHNCeU5hbWUiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdyb3VwRXhpc3RzQnlOYW1lKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Hcm91cEV4aXN0c0J5TmFtZShzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kbmFtZTwvc3Bhbj4pIDogYm9vbDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlRlc3QgaWYgdGhlIGdyb3VwIG5hbWUgc3BlY2lmaWVkIGlzIGEgdmFsaWQsIGV4aXN0aW5nIGdyb3VwLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kbmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBncm91cCBuYW1lLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGJvb2wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfTG9nZ2VkSW5FbWFpbCIgbmFtZT0ibWV0aG9kX0xvZ2dlZEluRW1haWwiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkxvZ2dlZEluRW1haWwoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkxvZ2dlZEluRW1haWwoKSA6IHN0cmluZzwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlRoZSBlbWFpbCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIGZvciB0aGlzIHJlcXVlc3QuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldEVtYWlsIiBuYW1lPSJtZXRob2RfR2V0RW1haWwiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldEVtYWlsKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRFbWFpbChpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPikgOiBzdHJpbmc8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHNwZWNpZmllZCB1c2VyLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0UHJvcGVydHlEZWZucyIgbmFtZT0ibWV0aG9kX0dldFByb3BlcnR5RGVmbnMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldFByb3BlcnR5RGVmbnMoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldFByb3BlcnR5RGVmbnMoKSA6IGFycmF5PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+R2V0IGFsbCBwcm9wZXJ0eSBkZWZpbml0aW9ucy48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBhcnJheQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9HZXRQcm9wZXJ0eURlZm4iIG5hbWU9Im1ldGhvZF9HZXRQcm9wZXJ0eURlZm4iIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldFByb3BlcnR5RGVmbigpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+R2V0UHJvcGVydHlEZWZuKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRuYW1lPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCBhIHByb3BlcnR5IGRlZmluaXRpb24gcmVjb3JkIGJ5IGl0cyBuYW1lPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRuYW1lPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+dGhlIHByb3BlcnR5IG5hbWUuPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0U2VsZWN0T3B0aW9ucyIgbmFtZT0ibWV0aG9kX0dldFNlbGVjdE9wdGlvbnMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldFNlbGVjdE9wdGlvbnMoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldFNlbGVjdE9wdGlvbnMoc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JG5hbWU8L3NwYW4+LCBpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZGltPC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5SZXR1cm4gc2VsZWN0IG9wdGlvbnMgZm9yIGEgcHJvcGVydHkgYXMgYSBzaW1wbGUsIG9yIGEgMiBkaW1lbnNpb25hbCBhcnJheTwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kbmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBwcm9wZXJ0eSBuYW1lPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZGltPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+SWYgMSwgcmV0dXJuIGEgc2ltcGxlIGFzc29jaWF0aXZlIGFycmF5LiAgSWYgMiwgcmV0dXJuIGEgbXVsdGktZGltZW5zaW9uYWwgYXJyYXkgd2l0aCBwcm9wZXJ0aWVzIG9wdGlvbl9uYW1lLCBvcHRpb25fdGV4dCBhbmQgY29udHJvbF9uYW1lPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0VXNlck5hbWUiIG5hbWU9Im1ldGhvZF9HZXRVc2VyTmFtZSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+R2V0VXNlck5hbWUoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldFVzZXJOYW1lKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1c2VyaWQ8L3NwYW4+KSA6IHN0cmluZzwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCB0aGUgdXNlcm5hbWUgZm9yIGEgc3BlY2lmaWVkIHVpZDwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdXNlcmlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0VXNlcklEIiBuYW1lPSJtZXRob2RfR2V0VXNlcklEIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRVc2VySUQoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldFVzZXJJRChzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdXNlcm5hbWU8L3NwYW4+KSA6IFxpdDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCB0aGUgdXNlcmlkIGZvciBhIHNwZWNpZmllZCB1c2VybmFtZTwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdXNlcm5hbWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIFxpdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9HZXRHcm91cE5hbWUiIG5hbWU9Im1ldGhvZF9HZXRHcm91cE5hbWUiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldEdyb3VwTmFtZSgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+R2V0R3JvdXBOYW1lKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRncm91cGlkPC9zcGFuPikgOiBzdHJpbmc8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgdGhlIGdyb3VwIG5hbWUgZm9yIGEgc3BlY2lmaWVkIGdyb3VwIGlkPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRncm91cGlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0R3JvdXBEZXNjIiBuYW1lPSJtZXRob2RfR2V0R3JvdXBEZXNjIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRHcm91cERlc2MoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldEdyb3VwRGVzYyhpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZ3JvdXBpZDwvc3Bhbj4pIDogc3RyaW5nPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+R2V0IHRoZSBkZXNjcmlwdGlvbmYgb3IgYSBzcGVjaWZpZWQgZ3JvdXAgaWQ8L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGdyb3VwaWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIHN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9HZXRHcm91cExpc3QiIG5hbWU9Im1ldGhvZF9HZXRHcm91cExpc3QiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldEdyb3VwTGlzdCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+R2V0R3JvdXBMaXN0KCkgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdldCBhIGxpc3Qgb2YgdGhlIGdyb3VwcywgZm9yIHVzZSBpbiBhIGRyb3Bkb3duLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldEdyb3VwTGlzdEZ1bGwiIG5hbWU9Im1ldGhvZF9HZXRHcm91cExpc3RGdWxsIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5HZXRHcm91cExpc3RGdWxsKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRHcm91cExpc3RGdWxsKGJvb2wgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kd2l0aF9jb3VudDwvc3Bhbj4pIDogYXJyYXk8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgYSBmdWxsIGdyb3VwIGxpc3QsIHdpdGggYWxsIGluZm9ybWF0aW9uIGFib3V0IHRoYXQgZ3JvdXAuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmJvb2w8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kd2l0aF9jb3VudDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPm9wdGlvbmFsbHkgaW5jbHVkZSBtZW1iZXJzaGlwIGluZm8uPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0R3JvdXBJRCIgbmFtZT0ibWV0aG9kX0dldEdyb3VwSUQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldEdyb3VwSUQoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldEdyb3VwSUQoc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGdyb3VwbmFtZTwvc3Bhbj4pIDogaW50PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+R2l2ZW4gYSBncm91cCBuYW1lLCBnZXQgYSBncm91cCBpZC48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGdyb3VwbmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgaW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldE1lbWJlckdyb3VwcyIgbmFtZT0ibWV0aG9kX0dldE1lbWJlckdyb3VwcyIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+R2V0TWVtYmVyR3JvdXBzKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRNZW1iZXJHcm91cHMoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVzZXJpZDwvc3Bhbj4pIDogc3RyaW5nW108L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgdGhlIGxpc3Qgb2YgZ3JvdXBzIChieSBuYW1lKSB0aGF0IGEgdXNlciBpcyBhIG1lbWJlciBvZi48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVzZXJpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nW10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfR2V0RXhwaXJ5RGF0ZSIgbmFtZT0ibWV0aG9kX0dldEV4cGlyeURhdGUiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldEV4cGlyeURhdGUoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkdldEV4cGlyeURhdGUobWl4ZWQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPikgOiBpbnQ8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5HZXQgdGhlIGRhdGUgdGhhdCBhIHVzZXIgYWNjb3VudCBleHBpcmVzLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5taXhlZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGludAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZGFzaDsgPHA+QSB1bml4IHRpbWVzdGFtcCBvZiB0aGUgZXhwaXJ5IGRhdGUuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9Jc0FjY291bnRFeHBpcmVkIiBuYW1lPSJtZXRob2RfSXNBY2NvdW50RXhwaXJlZCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+SXNBY2NvdW50RXhwaXJlZCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+SXNBY2NvdW50RXhwaXJlZChpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPikgOiBib29sPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+VGVzdCBpZiB0aGUgc3BlY2lmaWVkIGFjY291bnQgaXMgZXhwaXJlZC48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYm9vbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9Jc1ZhbGlkUGFzc3dvcmQiIG5hbWU9Im1ldGhvZF9Jc1ZhbGlkUGFzc3dvcmQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPklzVmFsaWRQYXNzd29yZCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+SXNWYWxpZFBhc3N3b3JkKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRwYXNzd29yZDwvc3Bhbj4pIDogYm9vbDwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlRlc3QgaWYgdGhlIHNwZWNpZmllZCBwbGFpbiB0ZXh0IHBhc3N3b3JkIGlzIHN1aXRhYmxlIChtYXRjaGVzIG1vZHVsZSBzZXR0aW5ncyk8L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHBhc3N3b3JkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBib29sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0dldFVzZXJuYW1lUHJvbXB0IiBuYW1lPSJtZXRob2RfR2V0VXNlcm5hbWVQcm9tcHQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkdldFVzZXJuYW1lUHJvbXB0KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5HZXRVc2VybmFtZVByb21wdCgpIDogc3RyaW5nPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+R2V0IHRoZSBwcm9tcHQgZm9yIGEgdXNlcm5hbWUuPC9lbT48L3A+CiAgICAgICAgICAgICAgICA8cD5UaGlzIG1heSBjaGFuZ2UgYmFzZWQgb24gbW9kdWxlIHNldHRpbmdzLjwvcD4KCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0lzVmFsaWRFbWFpbEFkZHJlc3MiIG5hbWU9Im1ldGhvZF9Jc1ZhbGlkRW1haWxBZGRyZXNzIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Jc1ZhbGlkRW1haWxBZGRyZXNzKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Jc1ZhbGlkRW1haWxBZGRyZXNzKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRlbWFpbDwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kY2hlY2tfZXhpc3Rpbmc8L3NwYW4+KSA6IGJvb2xlYW48L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5UZXN0IGlmIHRoZSBlbWFpbCBzcGVjaWZpZWQgaXMgdmFsaWQsIGFuZCBvcHRpb25hbGx5IG5vdCB1c2VkLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZW1haWw8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgZW1haWwgYWRkcmVzcyB0byB0ZXN0PC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+SWYgc3BlY2lpZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBlbWFpbCBhZGRyZXNzcyBpcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIGFuZCBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciB1c2Vycy48L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRjaGVja19leGlzdGluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYm9vbGVhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZGFzaDsgPHA+aW5kaWNhdGluZyB3ZXRoZXIgdGhpcyBlbWFpbCBhZGRyZXNzIGNhbiBiZSB1c2VkIHdpdGhpbiB0aGUgc3lzdGVtLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfSXNWYWxpZFVzZXJuYW1lIiBuYW1lPSJtZXRob2RfSXNWYWxpZFVzZXJuYW1lIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Jc1ZhbGlkVXNlcm5hbWUoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPklzVmFsaWRVc2VybmFtZShzdHJpbmcgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdXNlcm5hbWU8L3NwYW4+LCBib29sZWFuIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGNoZWNrPC9zcGFuPiwgaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVpZDwvc3Bhbj4pIDogYm9vbGVhbjwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlRlc3Qgd2V0aGVyIHRoZSBzcGVjaWZpZWQgdXNlcm5hbWUgaXMgdmFsaWQgZm9yIHRoZSBzeXN0ZW0uPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1c2VybmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ib29sZWFuPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGNoZWNrPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+T3B0aW9uYWxseSB0ZXN0IHdoZXRoZXIgdGhpcyB1c2VybmFtZSBpcyBpbiBjdXJyZW50IHVzZS48L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5JZiAkY2hlY2sgaXMgdHJ1ZSwgaW5kaWNhdGUgYW4gb3B0aW9uYWwgdWlkIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgY2hlY2s8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBib29sZWFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0NoZWNrUGFzc3dvcmQiIG5hbWU9Im1ldGhvZF9DaGVja1Bhc3N3b3JkIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5DaGVja1Bhc3N3b3JkKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5DaGVja1Bhc3N3b3JkKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1c2VybmFtZTwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRwYXNzd29yZDwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRncm91cHM8L3NwYW4+KSA6IGJvb2xlYW48L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5WYWxpZGF0ZSB0aGUgdXNlciBwYXNzd29yZC48L2VtPjwvcD4KICAgICAgICAgICAgICAgIDxwPlRoaXMgaXMgaXMgbm90IGEgbG9naW4gb3BlcmF0aW9uLCBidXQgZG9lcyBwZXJmb3JtIHRoZSB2YWxpZGF0aW9uIG9mIHRoZSBwYXNzd29yZC48L3A+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdXNlcm5hbWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgdXNlciBuYW1lPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kcGFzc3dvcmQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgcGxhaW4gdGV4dCBwYXNzd29yZC48L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRncm91cHM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5BbiBvcHRpb25hbCBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cCBuYW1lcy4gIElmIHNwZWNpZmllZCwgdGhlIHVzZXIgbXVzdCBhbHNvIGJlbG9uZyB0byBvbmUgb2YgdGhlc2UgZ3JvdXBzLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGJvb2xlYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfTG9naW4iIG5hbWU9Im1ldGhvZF9Mb2dpbiIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+TG9naW4oKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkxvZ2luKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1c2VybmFtZTwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRwYXNzd29yZDwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRncm91cHM8L3NwYW4+LCBib29sZWFuIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGlnbm9yZWQ8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZm9yY2VfbG9nb3V0PC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkxvZyB0aGUgdXNlciBpbnRvIHRoZSBzeXN0ZW0uPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1c2VybmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kcGFzc3dvcmQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5UaGUgcGxhaW4gdGV4dCBwYXNzd29yZDwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGdyb3VwczwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPkFuIG9wdGlvbmFsIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3VwIG5hbWVzLiAgSWYgc3BlY2lmaWVkLCB0aGUgdXNlciBtdXN0IGFsc28gYmVsb25nIHRvIG9uZSBvZiB0aGVzZSBncm91cHMuPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ib29sZWFuPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGlnbm9yZWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5ObyBsb25nZXIgdXNlZDwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGZvcmNlX2xvZ291dDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBlaXRoZXIgdGhlIHVpZCBvciBGQUxTRS4gIElmIGZhbHNlLCB0aGUgc2Vjb25kIGVsZW1lbnQgaXMgYW4gZXJyb3Igc3RyaW5nLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfTG9nZ2VkSW5OYW1lIiBuYW1lPSJtZXRob2RfTG9nZ2VkSW5OYW1lIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Mb2dnZWRJbk5hbWUoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkxvZ2dlZEluTmFtZSgpIDogc3RyaW5nPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+VGhlIHVzZXJuYW1lIG9mIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIgZm9yIHRoaXMgcmVxdWVzdC48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfTG9nb3V0IiBuYW1lPSJtZXRob2RfTG9nb3V0IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Mb2dvdXQoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkxvZ291dChpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPiwgc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JG1lc3NhZ2U8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkxvZ291dCB0aGUgc3BlY2lmaWVkIHVzZXIsIG9yIHRoZSBjdXJyZW50IHVzZXIuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5BbiBvcHRpb25hbCB1aWQuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBsb2dnZWQgaW4gdWlkIGZvciB0aGlzIHJlcXVlc3Qgd2lsbCBiZSB1c2VkLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JG1lc3NhZ2U8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5BbiBvcHRpb25hbCBzdHJpbmcgdG8gaW5jbHVkZSBpbiB0aGllIGhpc3RvcnkgbG9nLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0xvZ291dFVzZXIiIG5hbWU9Im1ldGhvZF9Mb2dvdXRVc2VyIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Mb2dvdXRVc2VyKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Mb2dvdXRVc2VyKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZXZlbnRtc2c8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkxvZ291dCB0aGUgc3BlY2lmaWVkIHVzZXIuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48cD5BbiBvcHRpb25hbCB1aWQuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBsb2dnZWQgaW4gdWlkIGZvciB0aGlzIHJlcXVlc3Qgd2lsbCBiZSB1c2VkLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGV2ZW50bXNnPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9Mb2dnZWRJbklkIiBuYW1lPSJtZXRob2RfTG9nZ2VkSW5JZCIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+TG9nZ2VkSW5JZCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+TG9nZ2VkSW5JZCgpIDogaW50PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+UmV0dXJuIHRoZSB1aWQgb2YgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgZm9yIHRoaXMgcmVxdWVzdC48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBpbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfTG9nZ2VkSW4iIG5hbWU9Im1ldGhvZF9Mb2dnZWRJbiIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+TG9nZ2VkSW4oKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPkxvZ2dlZEluKCkgOiBib29sZWFuPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+VGVzdCB3aGV0aGVyIHRoZSBjdXJyZW50IHNpdGUgdmlzaXRvciBpcyBsb2dnZWQgaW4gdG8gRnJvbnRFbmRVc2VyczwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGJvb2xlYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfTWVtYmVyT2ZHcm91cCIgbmFtZT0ibWV0aG9kX01lbWJlck9mR3JvdXAiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPk1lbWJlck9mR3JvdXAoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPk1lbWJlck9mR3JvdXAoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVzZXJpZDwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRncm91cGlkPC9zcGFuPikgOiBib29sZWFuPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+VGVzdCB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgdXNlciBpcyBhIG1lbWJlciBvZiB0aGUgc3BlY2lmaWVkIGdyb3VwLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdXNlcmlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRncm91cGlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBib29sZWFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX1JlbW92ZVVzZXJGcm9tR3JvdXAiIG5hbWU9Im1ldGhvZF9SZW1vdmVVc2VyRnJvbUdyb3VwIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5SZW1vdmVVc2VyRnJvbUdyb3VwKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5SZW1vdmVVc2VyRnJvbUdyb3VwKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCBpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZ2lkPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlJlbW92ZSB0aGUgc3BlY2lmaWVkIHVzZXIgZnJvbSB0aGUgc3BlY2lmaWVkIGdyb3VwLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRnaWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlJldHVybnM8L2g0PgogICAgICAgICAgICAgICAgICAgIGFycmF5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1kYXNoOyA8cD5UaGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgYSBib29sZWFuIHN0YXR1cy4gIElmIGZhbHNlLCB0aGUgc2Vjb25kIGVsZW1lbnQgaXMgYW4gZXJyb3Igc3RyaW5nLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfU2V0UHJvcGVydHlEZWZuRXh0cmEiIG5hbWU9Im1ldGhvZF9TZXRQcm9wZXJ0eURlZm5FeHRyYSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+U2V0UHJvcGVydHlEZWZuRXh0cmEoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPlNldFByb3BlcnR5RGVmbkV4dHJhKHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRuYW1lPC9zcGFuPiwgc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGV4dHJhPC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5TZXQgdGhlIGV4dHJhIGluZm9ybWF0aW9uIGZvciBhIHByb2VydHkuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRuYW1lPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHByb3BlcnR5IG5hbWU8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRleHRyYTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBleHRyYSB2YWx1ZS48L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9TZXRHcm91cCIgbmFtZT0ibWV0aG9kX1NldEdyb3VwIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5TZXRHcm91cCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+U2V0R3JvdXAoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGdpZDwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRuYW1lPC9zcGFuPiwgc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGRlc2M8L3NwYW4+KSA6IGFycmF5PC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+VXBkYXRlIGEgZ3JvdXAgZGVmaW5pdGlvbi48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGdpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kbmFtZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPlRoZSBncm91cCBuYW1lPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5zdHJpbmc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZGVzYzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPkFuIG9wdGlvbmFsIGdyb3VwIGRlc2NyaXB0aW9uPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLiAgSWYgZmFsc2UsIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBhbiBlcnJvciBzdHJpbmcuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9FbmNyeXB0UGFzc3dvcmQiIG5hbWU9Im1ldGhvZF9FbmNyeXB0UGFzc3dvcmQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkVuY3J5cHRQYXNzd29yZCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+RW5jcnlwdFBhc3N3b3JkKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kcGxhaW5fcGFzc3dvcmQ8L3NwYW4+KSA6IHN0cmluZzwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPkdpdmVuIGEgcGxhaW4gdGV4dCBwYXNzd29yZCwgZW5jcnlwdCBpdCBmb3IgYSB1c2VyPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHBsYWluX3Bhc3N3b3JkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfU2V0VXNlclBhc3N3b3JkIiBuYW1lPSJtZXRob2RfU2V0VXNlclBhc3N3b3JkIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5TZXRVc2VyUGFzc3dvcmQoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPlNldFVzZXJQYXNzd29yZChpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPiwgc3RyaW5nIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHBhc3N3b3JkPC9zcGFuPikgOiBhcnJheTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlNldCB0aGUgcGFzc3dvcmQgZm9yIGEgdXNlcjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnN0cmluZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRwYXNzd29yZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UmV0dXJuczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgYXJyYXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRhc2g7IDxwPlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLiAgSWYgZmFsc2UsIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBhbiBlcnJvciBzdHJpbmcuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9TZXRVc2VyRGlzYWJsZWQiIG5hbWU9Im1ldGhvZF9TZXRVc2VyRGlzYWJsZWQiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPlNldFVzZXJEaXNhYmxlZCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+U2V0VXNlckRpc2FibGVkKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCBib29sZWFuIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGZsYWc8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlRvZ2dsZSBhIHVzZXIgYWNjb3VudCBhcyBkaXNibGVkLjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmJvb2xlYW48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZmxhZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxwPldoZXRoZXIgb3Igbm90IHRoZSBhY2NvdW50IGlzIGRpc2FibGVkLjwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0ZvcmNlUGFzc3dvcmRDaGFuZ2UiIG5hbWU9Im1ldGhvZF9Gb3JjZVBhc3N3b3JkQ2hhbmdlIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Gb3JjZVBhc3N3b3JkQ2hhbmdlKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Gb3JjZVBhc3N3b3JkQ2hhbmdlKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCBib29sZWFuIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGZsYWc8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlRvZ2dsZSB3aGV0aGVyIGEgdXNlciBpcyBmb3JjZWQgdG8gY2hhbmdlIGhpcyBwYXNzd29yZCBhdCB0aGUgbmV4dCBsb2dpbi48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ib29sZWFuPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGZsYWc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0ZvcmNlQ2hhbmdlU2V0dGluZ3MiIG5hbWU9Im1ldGhvZF9Gb3JjZUNoYW5nZVNldHRpbmdzIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Gb3JjZUNoYW5nZVNldHRpbmdzKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Gb3JjZUNoYW5nZVNldHRpbmdzKGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCBib29sZWFuIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGZsYWc8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPlRvZ2dsZSB3aGV0aGVyIGEgdXNlciBpcyBmb3JjZWQgdG8gY2hhbmdlIGhpcyBzZXR0aW5ncyBpbiBzb21lIHdheSBhdCB0aGUgbmV4dCBsb2dpbi48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ib29sZWFuPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGZsYWc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0ZvcmNlVmVyaWZ5IiBuYW1lPSJtZXRob2RfRm9yY2VWZXJpZnkiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPkZvcmNlVmVyaWZ5KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Gb3JjZVZlcmlmeShpbnQgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPiwgYm9vbGVhbiA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRmbGFnPC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5Ub2dnbGUgd2hldGhlciBhIHVzZXIgaXMgZm9yY2VkIHRvIHJldmFsaWRhdGUgdGhlbXNlbHZlczwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5pbnQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmJvb2xlYW48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZmxhZzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfU2V0VXNlciIgbmFtZT0ibWV0aG9kX1NldFVzZXIiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPlNldFVzZXIoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPlNldFVzZXIoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVpZDwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1c2VybmFtZTwvc3Bhbj4sIHN0cmluZyA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRwYXNzd29yZDwvc3Bhbj4sIGludCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRleHBpcmVzPC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5BZGp1c3QgdXNlciBkZXRhaWxzPC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVzZXJuYW1lPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHVzZXIgbmFtZTwvcD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+c3RyaW5nPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHBhc3N3b3JkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+VGhlIHVzZXJzIHBsYWluIHRleHQgcGFzc3dvcmQ8L3A+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRleHBpcmVzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHA+QW4gb3B0aW9uYWwgZXhwaXJ5IGRhdGUuPC9wPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBjbGFzcyI+CiAgICAgICAgICAgIDxhIGlkPSJtZXRob2RfU2V0VXNlckdyb3VwcyIgbmFtZT0ibWV0aG9kX1NldFVzZXJHcm91cHMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPlNldFVzZXJHcm91cHMoKTwvaDM+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjc291cmNlLXZpZXciIHJvbGU9ImJ1dHRvbiIgY2xhc3M9InB1bGwtcmlnaHQgYnRuIiBkYXRhLXRvZ2dsZT0ibW9kYWwiIHN0eWxlPSJmb250LXNpemU6IDEuMWVtOyBwYWRkaW5nOiA5cHggMTRweCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9InNpZ25hdHVyZSIgc3R5bGU9Im1hcmdpbi1yaWdodDogNTRweDsiPlNldFVzZXJHcm91cHMoaW50IDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVpZDwvc3Bhbj4sIGludFtdIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGdycGlkczwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+U2V0IGV4cGxpY2l0IGdyb3VwIG1lbWJlcnNoaXAuPC9lbT48L3A+CiAgICAgICAgICAgICAgICA8cD5UaGlzIG1ldGhvZCBkb2VzIG5vdCBhbHRlciB0aGUgdXNlciBwcm9wZXJ0aWVzLjwvcD4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmludDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+aW50W108L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZ3JwaWRzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9BZGRVc2VyVG9Hcm91cCIgbmFtZT0ibWV0aG9kX0FkZFVzZXJUb0dyb3VwIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5BZGRVc2VyVG9Hcm91cCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+QWRkVXNlclRvR3JvdXAoIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVpZDwvc3Bhbj4sICA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRnaWQ8L3NwYW4+KSA6IGJvb2xlYW48L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT5BZGQgdXNlciB0byBhIGdyb3VwPC9lbT48L3A+CiAgICAgICAgICAgICAgICA8cD5kb2VzIG5vdCBlZmZlY3QgdXNlciBwcm9wZXJ0aWVzCmRvZXMgbm90IHZhbGlkYXRlIGdpZAp1c2VyaWQgaXMgdmFsaWRhdGVkPC9wPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZ2lkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5SZXR1cm5zPC9oND4KICAgICAgICAgICAgICAgICAgICBib29sZWFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX1NldFVzZXJQcm9wZXJ0aWVzIiBuYW1lPSJtZXRob2RfU2V0VXNlclByb3BlcnRpZXMiIGNsYXNzPSJhbmNob3IiPjwvYT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9Im1ldGhvZCI+CiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InB1YmxpYyAiPlNldFVzZXJQcm9wZXJ0aWVzKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5TZXRVc2VyUHJvcGVydGllcyggPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdWlkPC9zcGFuPiwgIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHByb3BzPC9zcGFuPik8L3ByZT4KICAgICAgICAgICAgICAgIDxwPjxlbT48L2VtPjwvcD4KICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlBhcmFtZXRlcnM8L2g0PgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHVpZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kcHJvcHM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX1NldFVzZXJQcm9wZXJ0eSIgbmFtZT0ibWV0aG9kX1NldFVzZXJQcm9wZXJ0eSIgY2xhc3M9ImFuY2hvciI+PC9hPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0ibWV0aG9kIj4KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0icHVibGljICI+U2V0VXNlclByb3BlcnR5KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5TZXRVc2VyUHJvcGVydHkoIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHRpdGxlPC9zcGFuPiwgIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JGRhdGE8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdGl0bGU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JGRhdGE8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX0lzVXNlclByb3BlcnR5VmFsdWVVbmlxdWUiIG5hbWU9Im1ldGhvZF9Jc1VzZXJQcm9wZXJ0eVZhbHVlVW5pcXVlIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Jc1VzZXJQcm9wZXJ0eVZhbHVlVW5pcXVlKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5Jc1VzZXJQcm9wZXJ0eVZhbHVlVW5pcXVlKCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdGl0bGU8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kdmFsdWU8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR0aXRsZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdmFsdWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX1NldFVzZXJQcm9wZXJ0eUZ1bGwiIG5hbWU9Im1ldGhvZF9TZXRVc2VyUHJvcGVydHlGdWxsIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5TZXRVc2VyUHJvcGVydHlGdWxsKCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5TZXRVc2VyUHJvcGVydHlGdWxsKCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR0aXRsZTwvc3Bhbj4sICA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiRkYXRhPC9zcGFuPiwgIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVzZXJpZDwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR0aXRsZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kZGF0YTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdXNlcmlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWFycm93LWRvd24iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPgogICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICA8dGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9hc2lkZT4KICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGNsYXNzIj4KICAgICAgICAgICAgPGEgaWQ9Im1ldGhvZF9Vc2VyRXhpc3RzQnlJRCIgbmFtZT0ibWV0aG9kX1VzZXJFeGlzdHNCeUlEIiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5Vc2VyRXhpc3RzQnlJRCgpPC9oMz4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCIgc3R5bGU9ImZvbnQtc2l6ZTogMS4xZW07IHBhZGRpbmc6IDlweCAxNHB4Ij48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgPHByZSBjbGFzcz0ic2lnbmF0dXJlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OiA1NHB4OyI+VXNlckV4aXN0c0J5SUQoIDxzcGFuIGNsYXNzPSJhcmd1bWVudCI+JHVpZDwvc3Bhbj4pPC9wcmU+CiAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5QYXJhbWV0ZXJzPC9oND4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR1aWQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYXJyb3ctZG93biI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgIDxoMj5UYWdzPC9oMj4KICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZG8KICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2FzaWRlPgogICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgY2xhc3MiPgogICAgICAgICAgICA8YSBpZD0ibWV0aG9kX1NldEVuY3J5cHRpb25LZXkiIG5hbWU9Im1ldGhvZF9TZXRFbmNyeXB0aW9uS2V5IiBjbGFzcz0iYW5jaG9yIj48L2E+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJtZXRob2QiPgogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJwdWJsaWMgIj5TZXRFbmNyeXB0aW9uS2V5KCk8L2gzPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIiBzdHlsZT0iZm9udC1zaXplOiAxLjFlbTsgcGFkZGluZzogOXB4IDE0cHgiPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2E+CiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPSJzaWduYXR1cmUiIHN0eWxlPSJtYXJnaW4tcmlnaHQ6IDU0cHg7Ij5TZXRFbmNyeXB0aW9uS2V5KCA8c3BhbiBjbGFzcz0iYXJndW1lbnQiPiR1aWQ8L3NwYW4+LCAgPHNwYW4gY2xhc3M9ImFyZ3VtZW50Ij4kZm9yY2U8L3NwYW4+KTwvcHJlPgogICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UGFyYW1ldGVyczwvaDQ+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4kdWlkPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiRmb3JjZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgIDwvZGl2PgogICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1hcnJvdy1kb3duIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWNvbmRlbnNlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9kbwogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYXNpZGU+CiAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPGRpdiBpZD0ic291cmNlLXZpZXciIGNsYXNzPSJtb2RhbCBoaWRlIGZhZGUiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9InNvdXJjZS12aWV3LWxhYmVsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAgICAgIDxoMyBpZD0ic291cmNlLXZpZXctbGFiZWwiPkZyb250RW5kVXNlcnMubW9kdWxlLnBocDwvaDM+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAgIDxwcmUgZGF0YS1zcmM9Ii4uL2ZpbGVzL0Zyb250RW5kVXNlcnMubW9kdWxlLnBocC50eHQiIGNsYXNzPSJsYW5ndWFnZS1waHAgbGluZS1udW1iZXJzIj48L3ByZT4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxmb290ZXIgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgZm9vdGVyLXNlY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYmFyLWNoYXJ0Ij48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vZ3JhcGhzL2NsYXNzLmh0bWwiPkNsYXNzIEhpZXJhcmNoeSBEaWFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLXB1c2hwaW4iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj5FcnJvcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvbWFya2Vycy5odG1sIj5NYXJrZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQxIj4KICAgICAgICAgICAgICAgICAgICA8aHIgLz4KICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uIGlzIHBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5waHBkb2Mub3JnLyI+cGhwRG9jdW1lbnRvciA8L2E+IGFuZCBhdXRob3JlZAogICAgICAgICAgICAgICAgICAgIG9uIE5vdmVtYmVyIDMwdGgsIDIwMTYgYXQgMTM6NTMuCiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICA8L3NlY3Rpb24+CiAgICA8L2Zvb3Rlcj4KPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4K]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/css/jquery.iviewer.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LnZpZXdlciB7CiAgICAtbXMtdG91Y2gtYWN0aW9uOiBub25lOwp9CgouaXZpZXdlcl9jb21tb24gewogICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICBib3R0b206MTBweDsKICAgIGJvcmRlcjogMXB4ICBzb2xpZCAjMDAwOwogICAgaGVpZ2h0OiAyOHB4OwogICAgei1pbmRleDogNTAwMDsKfQoKLml2aWV3ZXJfY3Vyc29yIHsKICAgIGN1cnNvcjogdXJsKC4uL2ltYWdlcy9pdmlld2VyL2hhbmQuY3VyKSA2IDgsIHBvaW50ZXI7Cn0KCi5pdmlld2VyX2RyYWdfY3Vyc29yIHsKICAgIGN1cnNvcjogdXJsKC4uL2ltYWdlcy9pdmlld2VyL2dyYWIuY3VyKSA2IDgsIHBvaW50ZXI7Cn0KCi5pdmlld2VyX2J1dHRvbiB7CiAgICB3aWR0aDogMjhweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Owp9CgouaXZpZXdlcl96b29tX2luIHsKICAgIGxlZnQ6IDIwcHg7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2l2aWV3ZXIvaXZpZXdlci56b29tX2luLnBuZyk7Cn0KCi5pdmlld2VyX3pvb21fb3V0IHsKICAgIGxlZnQ6IDU1cHg7CiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2l2aWV3ZXIvaXZpZXdlci56b29tX291dC5wbmcpOwp9CgouaXZpZXdlcl96b29tX3plcm8gewogICAgbGVmdDogOTBweDsKICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaXZpZXdlci9pdmlld2VyLnpvb21femVyby5wbmcpOwp9CgouaXZpZXdlcl96b29tX2ZpdCB7CiAgICBsZWZ0OiAxMjVweDsKICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaXZpZXdlci9pdmlld2VyLnpvb21fZml0LnBuZyk7Cn0KCi5pdmlld2VyX3pvb21fc3RhdHVzIHsKICAgIGxlZnQ6IDE2MHB4OwogICAgZm9udDogMWVtLzI4cHggU2FuczsKICAgIGNvbG9yOiAjMDAwOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHdpZHRoOiA2MHB4Owp9CgouaXZpZXdlcl9yb3RhdGVfbGVmdCB7CiAgICBsZWZ0OiAyMjdweDsKICAgIGJhY2tncm91bmQ6ICNmZmYgdXJsKC4uL2ltYWdlcy9pdmlld2VyL2l2aWV3ZXIucm90YXRlX2xlZnQucG5nKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDsKfQoKLml2aWV3ZXJfcm90YXRlX3JpZ2h0IHsKICAgIGxlZnQ6IDI2MnB4OwogICAgYmFja2dyb3VuZDogI2ZmZiB1cmwoLi4vaW1hZ2VzL2l2aWV3ZXIvaXZpZXdlci5yb3RhdGVfcmlnaHQucG5nKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDsKfQo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/fonts/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.dev.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+ClRoaXMgaXMgYSBjdXN0b20gU1ZHIGZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uCjxpY29uc2V0IGlkPSJwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zIiBuYW1lPSJwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zIiBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmciIGdyaWQ9IjE2Ij48L2ljb25zZXQ+PGF1dGhvciBuYW1lPSJNaWtlIHZhbiBSaWVsIiBocmVmPSJodHRwOi8vd3d3Lm1pa2V2YW5yaWVsLmNvbSI+PC9hdXRob3I+PGxpY2Vuc2UgbmFtZT0iU0lMIj48L2xpY2Vuc2U+CjwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0icGhwZG9jdW1lbnRvci1jbGVhbi1pY29ucyIgaG9yaXotYWR2LXg9IjUxMiIgPgo8Zm9udC1mYWNlIHVuaXRzLXBlci1lbT0iNTEyIiBhc2NlbnQ9IjQ4MCIgZGVzY2VudD0iLTMyIiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iNTEyIiAvPgo8Z2x5cGggY2xhc3M9ImhpZGRlbiIgdW5pY29kZT0iJiN4ZjAwMDsiIGQ9Ik0wLDQ4MEwgNTEyIC0zMkwwIC0zMiB6IiBob3Jpei1hZHYteD0iMCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDA7IiBkPSJNIDEzOS42MzYsNDU2LjcyNyBDIDc1LjE3MSw0NTYuNzI3IDIzLjI3Myw0MDQuODI5IDIzLjI3MywzNDAuMzY0IGwgMC0yMzIuNzI3IGMgMC02NC40NjUgNTEuODk4LTExNi4zNjQgMTE2LjM2NC0xMTYuMzY0IGwgMjMyLjcyNywwIGMgNjQuNDY1LDAgMTE2LjM2NCw1MS44OTggMTE2LjM2NCwxMTYuMzY0IEwgNDg4LjcyNywzNDAuMzY0IEMgNDg4LjcyNyw0MDQuODI5IDQzNi44MjksNDU2LjcyNyAzNzIuMzY0LDQ1Ni43MjcgTCAxMzkuNjM2LDQ1Ni43MjcgeiBtIDIwLjcyNy00MS4zODEgMTkxLjI3NCwwIGMgNTMuMDAxLDAgOTUuNzA5LTQyLjcwOCA5NS43MDktOTUuNzA5IGwgMC0xOTEuMjc0IGMgMC01My4wMDEgLTQyLjcwOC05NS43MDkgLTk1LjcwOS05NS43MDkgbCAtMTkxLjI3NCwwIGMgLTUzLjAwMSwwIC05NS43MDksNDIuNzA4IC05NS43MDksOTUuNzA5IGwgMCwxOTEuMjc0IGMgMCw1My4wMDEgNDIuNzA4LDk1LjcwOSA5NS43MDksOTUuNzA5IHpNIDM1OS45NjMsMzY2LjgyNyAgbTAsMCwwLTQzLjEyNCAtODQuMjcxLDAgMC0yMzEuMDUyIC01MC4yNDYsMCAwLDIzMS4wNTIgLTg0LjI3MSwwIDAsNDMuMTI0IDIxOC43ODcsMCIgZGF0YS10YWdzPSJ0cmFpdCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDE7IiBkPSJNIDEzOS42MzYsNDU2LjcyNyBDIDc1LjE3MSw0NTYuNzI3IDIzLjI3Myw0MDQuODI5IDIzLjI3MywzNDAuMzY0IGwgMC0yMzIuNzI3IGMgMC02NC40NjUgNTEuODk4LTExNi4zNjQgMTE2LjM2NC0xMTYuMzY0IGwgMjMyLjcyNywwIGMgNjQuNDY1LDAgMTE2LjM2NCw1MS44OTggMTE2LjM2NCwxMTYuMzY0IEwgNDg4LjcyNywzNDAuMzY0IEMgNDg4LjcyNyw0MDQuODI5IDQzNi44MjksNDU2LjcyNyAzNzIuMzY0LDQ1Ni43MjcgTCAxMzkuNjM2LDQ1Ni43MjcgeiBtIDIwLjcyNy00MS4zODEgMTkxLjI3NCwwIGMgNTMuMDAxLDAgOTUuNzA5LTQyLjcwOCA5NS43MDktOTUuNzA5IGwgMC0xOTEuMjc0IGMgMC01My4wMDEgLTQyLjcwOC05NS43MDkgLTk1LjcwOS05NS43MDkgbCAtMTkxLjI3NCwwIGMgLTUzLjAwMSwwIC05NS43MDksNDIuNzA4IC05NS43MDksOTUuNzA5IGwgMCwxOTEuMjc0IGMgMCw1My4wMDEgNDIuNzA4LDk1LjcwOSA5NS43MDksOTUuNzA5IHpNIDIzMS4wNzUsMzY2LjgyNyAgbTAsMCwgNDkuODUsMCAwLTI3NC4xNzYgLTQ5Ljg1LDAgMCwyNzQuMTc2IiBkYXRhLXRhZ3M9ImludGVyZmFjZSIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDI7IiBkPSJNIDEzOS42MzYsNDU2LjcyNyBDIDc1LjE3MSw0NTYuNzI3IDIzLjI3Myw0MDQuODI5IDIzLjI3MywzNDAuMzY0IGwgMC0yMzIuNzI3IGMgMC02NC40NjUgNTEuODk4LTExNi4zNjQgMTE2LjM2NC0xMTYuMzY0IGwgMjMyLjcyNywwIGMgNjQuNDY1LDAgMTE2LjM2NCw1MS44OTggMTE2LjM2NCwxMTYuMzY0IEwgNDg4LjcyNywzNDAuMzY0IEMgNDg4LjcyNyw0MDQuODI5IDQzNi44MjksNDU2LjcyNyAzNzIuMzY0LDQ1Ni43MjcgTCAxMzkuNjM2LDQ1Ni43MjcgeiBtIDIwLjcyNy00MS4zODEgMTkxLjI3NCwwIGMgNTMuMDAxLDAgOTUuNzA5LTQyLjcwOCA5NS43MDktOTUuNzA5IGwgMC0xOTEuMjc0IGMgMC01My4wMDEgLTQyLjcwOC05NS43MDkgLTk1LjcwOS05NS43MDkgbCAtMTkxLjI3NCwwIGMgLTUzLjAwMSwwIC05NS43MDksNDIuNzA4IC05NS43MDksOTUuNzA5IGwgMCwxOTEuMjc0IGMgMCw1My4wMDEgNDIuNzA4LDk1LjcwOSA5NS43MDksOTUuNzA5IHpNIDI3OC43NDksODYuNzE3ICBtMCwwLGMgLTIwLjU3MywwIC0zOS4wMzYsMy4xNjUgLTU1LjM4OSw5LjQ5NSAtMTYuMzUzLDYuMzMgLTMwLjIsMTUuNTYyIC00MS41NDIsMjcuNjk1IC0xMS4zNDIsMTIuMzk3IC0yMC4wNDYsMjcuNDMxIC0yNi4xMTIsNDUuMTAzIC02LjA2NiwxNy42NzIgLTkuMSwzNy45ODEgLTkuMSw2MC45MjggMCwyMi45NDcgMy40MjksNDMuMjU2IDEwLjI4Nyw2MC45MjggNy4xMjEsMTcuNjcyIDE2Ljc0OSwzMi41NzQgMjguODgxLDQ0LjcwNyAxMi4xMzMsMTIuMzk2IDI2LjM3NiwyMS43NiA0Mi43MjksMjguMDkwIDE2LjM1Myw2LjMzIDMzLjg5Myw5LjQ5NSA1Mi42Miw5LjQ5NSAxMS4zNDEsMCAyMS42MjgtMC45MjMgMzAuODYtMi43NjkgOS4yMzEtMS41ODMgMTcuMjc2LTMuNDI5IDI0LjEzNC01LjUzOSA2Ljg1Ny0yLjExIDEyLjUyOC00LjM1MiAxNy4wMTItNi43MjYgNC40ODQtMi4zNzQgNy42NDktNC4wODkgOS40OTUtNS4xNDMgbCAtMTQuNjM5LTQwLjc1MSBjIC02LjMzLDMuOTU2IC0xNS40Myw3LjY0OSAtMjcuMjk5LDExLjA3OCAtMTEuNjA2LDMuNjkyIC0yNC4yNjYsNS41MzkgLTM3Ljk4MSw1LjUzOSAtMTEuODY5LDAgLTIyLjk0Ny0yLjExIC0zMy4yMzMtNi4zMyAtMTAuMjg3LTMuOTU3IC0xOS4yNTQtMTAuMDIzIC0yNi45MDMtMTguMTk5IC03LjM4NS04LjE3NyAtMTMuMTg4LTE4LjQ2MyAtMTcuNDA4LTMwLjg2IC00LjIyLTEyLjM5NyAtNi4zMy0yNi43NzIgLTYuMzMtNDMuMTI0IDAtMTQuNTA3IDEuNTgyLTI3LjgyNyA0Ljc0OC0zOS45NTkgMy40MjktMTIuMTMzIDguNTcyLTIyLjY4MyAxNS40My0zMS42NTEgNi44NTgtOC43MDQgMTUuNTYyLTE1LjU2MiAyNi4xMTItMjAuNTczIDEwLjU1LTQuNzQ4IDIzLjIxMS03LjEyMiAzNy45ODEtNy4xMjEgMTcuNjcyLDAgMzIuMDQ2LDEuNzE0IDQzLjEyNCw1LjE0MyAxMS4wNzgsMy42OTMgMTkuNjUsNy4xMjEgMjUuNzE2LDEwLjI4NyBsIDEzLjQ1Mi00MC43NTEgYyAtMy4xNjUtMi4xMSAtNy41MTctNC4yMiAtMTMuMDU2LTYuMzMgLTUuMjc1LTIuMTEgLTExLjYwNi00LjIyIC0xOC45OTEtNi4zMyAtNy4zODUtMS44NDYgLTE1LjY5NC0zLjI5NyAtMjQuOTI1LTQuMzUyIC05LjIzMi0xLjMxOSAtMTkuMTIzLTEuOTc4IC0yOS42NzMtMS45NzgiIGRhdGEtdGFncz0iY2xhc3MiIC8+CjxnbHlwaCB1bmljb2RlPSImI3gyMDsiIGhvcml6LWFkdi14PSIyNTYiIC8+CjwvZm9udD48L2RlZnM+PC9zdmc+]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.eot</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[FAkAACAIAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAABAAAAAAAAAAAAEAAIAAAAAATESX7gAAAAAAAAAAAAAAAAAAAAAAADIAcABoAHAAZABvAGMAdQBtAGUAbgB0AG8AcgAtAGMAbABlAGEAbgAtAGkAYwBvAG4AcwAAABYAYwBsAGUAYQBuAC0AaQBjAG8AbgBzAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAyAHAAaABwAGQAbwBjAHUAbQBlAG4AdABvAHIALQBjAGwAZQBhAG4ALQBpAGMAbwBuAHMAAAAAAAABAAAADQCAAAMAUEZGVE1oWxY8AAAIBAAAABxHREVGADQABgAAB+QAAAAgT1MvMi+63B8AAAFYAAAAVmNtYXDgFvPUAAAByAAAAVJnYXNw//8AAwAAB9wAAAAIZ2x5ZnXnY54AAAMsAAAB9GhlYWT9PLQpAAAA3AAAADZoaGVhBBD/5gAAARQAAAAkaG10eATBAC4AAAGwAAAAGGxvY2EAjgFCAAADHAAAABBtYXhwAE0AWAAAATgAAAAgbmFtZTYxlMIAAAUgAAACanBvc3Q1pnxxAAAHjAAAAFAAAQAAAAEAAO6XRExfDzz1AAsCAAAAAADODrm2AAAAAM4OubYAAP/gAgAB4AAAAAgAAgAAAAAAAAABAAAB4P/gAC4CAAAA/gACAAABAAAAAAAAAAAAAAAAAAAABQABAAAABwBVAAQAAAAAAAIAAAABAAEAAABAAAAAAAAAAAECAAGQAAUACAFMAWYAAABHAUwBZgAAAPUAGQCEAAACAAUDAAAAAAAAAAAAABAAAAAAAAAAAAAAAFBmRWQAQOAA8AAB4P/gAC4B4AAggAAAAQAAAAAAAAIAAAAAAAAAAKoAAAAAAAACAAAXABcAFwAAAAMAAAADAAAAHAABAAAAAABMAAMAAQAAABwABAAwAAAACAAIAAIAAAAA4ALwAP//AAAAAOAA8AD//wAAIAQQAwABAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAEgAgAD6AAEAAP/gAgAB4AACAAARASECAP4AAeD+AAAAAAAEABf/9wHpAckADwAfACAAKQAAEyIGHQEUFjsBMjY9ATQmIwczMhYdARQGKwEiJj0BNDYXMRUjFSM1IzUzjDFERDHoMUREMdTAJzg4J8AnODjvVDNU2wHJRDHoMUREMegxRCo4J8AnODgnwCc4MCvn5ysAAAQAF//3AekByQAPAB8AIAAlAAATIgYdARQWOwEyNj0BNCYjBzMyFh0BFAYrASImPQE0NhcxMxEjEYwxREQx6DFERDHUwCc4OCfAJzg4bjIyAclEMegxREQx6DFEKjgnwCc4OCfAJzgw/u4BEgAAAAAEABf/9wHpAckADwAfACAAVAAAEyIGHQEUFjsBMjY9ATQmIwczMhYdARQGKwEiJj0BNDYTMSImJy4BNDc2Nz4BMzIXHgIXByYnJiMiBwYHDgEVFBcWFxYXFjMyNzY3FwYHBgcGBwYjjDFERDHoMUREMdTAJzg4J8AnODieHzERERIKCxISMRwRDg4UDgMPChESFBIQDwsMDAUFCgoQEBYbEBEJDQQJCAsLDg0QAclEMegxREQx6DFEKjgnwCc4OCfAJzj+uBMSEzVEGxoTEhMDAgYHAikGBQYGBg0MJRkVExINDQgHBQYEKAMEAwMDAQIAAAAAAAAMAJYAAQAAAAAAAQAZADQAAQAAAAAAAgALAGYAAQAAAAAAAwA1AN4AAQAAAAAABAAZAUgAAQAAAAAABQALAXoAAQAAAAAABgAZAboAAwABBAkAAQAyAAAAAwABBAkAAgAWAE4AAwABBAkAAwBqAHIAAwABBAkABAAyARQAAwABBAkABQAWAWIAAwABBAkABgAyAYYAcABoAHAAZABvAGMAdQBtAGUAbgB0AG8AcgAtAGMAbABlAGEAbgAtAGkAYwBvAG4AcwAAcGhwZG9jdW1lbnRvci1jbGVhbi1pY29ucwAAYwBsAGUAYQBuAC0AaQBjAG8AbgBzAABjbGVhbi1pY29ucwAARgBvAG4AdABGAG8AcgBnAGUAIAAyAC4AMAAgADoAIABwAGgAcABkAG8AYwB1AG0AZQBuAHQAbwByAC0AYwBsAGUAYQBuAC0AaQBjAG8AbgBzACAAOgAgADEAOQAtADcALQAyADAAMQAzAABGb250Rm9yZ2UgMi4wIDogcGhwZG9jdW1lbnRvci1jbGVhbi1pY29ucyA6IDE5LTctMjAxMwAAcABoAHAAZABvAGMAdQBtAGUAbgB0AG8AcgAtAGMAbABlAGEAbgAtAGkAYwBvAG4AcwAAcGhwZG9jdW1lbnRvci1jbGVhbi1pY29ucwAAVgBlAHIAcwBpAG8AbgAgADEALgAwAABWZXJzaW9uIDEuMAAAcABoAHAAZABvAGMAdQBtAGUAbgB0AG8AcgAtAGMAbABlAGEAbgAtAGkAYwBvAG4AcwAAcGhwZG9jdW1lbnRvci1jbGVhbi1pY29ucwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAABAAIBAgEDAQQBBQd1bmlGMDAwB3VuaUUwMDAHdW5pRTAwMQd1bmlFMDAyAAAAAf//AAIAAQAAAA4AAAAYAAAAAAACAAEAAwAGAAEABAAAAAIAAAAAAAEAAAAAzD2izwAAAADODrm2AAAAAM4OubY=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+ClRoaXMgaXMgYSBjdXN0b20gU1ZHIGZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uCjxpY29uc2V0IGlkPSJwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zIiBuYW1lPSJwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zIiBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmciIGdyaWQ9IjE2Ij48L2ljb25zZXQ+PGF1dGhvciBuYW1lPSJNaWtlIHZhbiBSaWVsIiBocmVmPSJodHRwOi8vd3d3Lm1pa2V2YW5yaWVsLmNvbSI+PC9hdXRob3I+PGxpY2Vuc2UgbmFtZT0iU0lMIj48L2xpY2Vuc2U+CjwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0icGhwZG9jdW1lbnRvci1jbGVhbi1pY29ucyIgaG9yaXotYWR2LXg9IjUxMiIgPgo8Zm9udC1mYWNlIHVuaXRzLXBlci1lbT0iNTEyIiBhc2NlbnQ9IjQ4MCIgZGVzY2VudD0iLTMyIiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iNTEyIiAvPgo8Z2x5cGggY2xhc3M9ImhpZGRlbiIgdW5pY29kZT0iJiN4ZjAwMDsiIGQ9Ik0wLDQ4MEwgNTEyIC0zMkwwIC0zMiB6IiBob3Jpei1hZHYteD0iMCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDA7IiBkPSJNIDEzOS42MzYsNDU2LjcyNyBDIDc1LjE3MSw0NTYuNzI3IDIzLjI3Myw0MDQuODI5IDIzLjI3MywzNDAuMzY0IGwgMC0yMzIuNzI3IGMgMC02NC40NjUgNTEuODk4LTExNi4zNjQgMTE2LjM2NC0xMTYuMzY0IGwgMjMyLjcyNywwIGMgNjQuNDY1LDAgMTE2LjM2NCw1MS44OTggMTE2LjM2NCwxMTYuMzY0IEwgNDg4LjcyNywzNDAuMzY0IEMgNDg4LjcyNyw0MDQuODI5IDQzNi44MjksNDU2LjcyNyAzNzIuMzY0LDQ1Ni43MjcgTCAxMzkuNjM2LDQ1Ni43MjcgeiBtIDIwLjcyNy00MS4zODEgMTkxLjI3NCwwIGMgNTMuMDAxLDAgOTUuNzA5LTQyLjcwOCA5NS43MDktOTUuNzA5IGwgMC0xOTEuMjc0IGMgMC01My4wMDEgLTQyLjcwOC05NS43MDkgLTk1LjcwOS05NS43MDkgbCAtMTkxLjI3NCwwIGMgLTUzLjAwMSwwIC05NS43MDksNDIuNzA4IC05NS43MDksOTUuNzA5IGwgMCwxOTEuMjc0IGMgMCw1My4wMDEgNDIuNzA4LDk1LjcwOSA5NS43MDksOTUuNzA5IHpNIDM1OS45NjMsMzY2LjgyNyAgbTAsMCwwLTQzLjEyNCAtODQuMjcxLDAgMC0yMzEuMDUyIC01MC4yNDYsMCAwLDIzMS4wNTIgLTg0LjI3MSwwIDAsNDMuMTI0IDIxOC43ODcsMCIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDAxOyIgZD0iTSAxMzkuNjM2LDQ1Ni43MjcgQyA3NS4xNzEsNDU2LjcyNyAyMy4yNzMsNDA0LjgyOSAyMy4yNzMsMzQwLjM2NCBsIDAtMjMyLjcyNyBjIDAtNjQuNDY1IDUxLjg5OC0xMTYuMzY0IDExNi4zNjQtMTE2LjM2NCBsIDIzMi43MjcsMCBjIDY0LjQ2NSwwIDExNi4zNjQsNTEuODk4IDExNi4zNjQsMTE2LjM2NCBMIDQ4OC43MjcsMzQwLjM2NCBDIDQ4OC43MjcsNDA0LjgyOSA0MzYuODI5LDQ1Ni43MjcgMzcyLjM2NCw0NTYuNzI3IEwgMTM5LjYzNiw0NTYuNzI3IHogbSAyMC43MjctNDEuMzgxIDE5MS4yNzQsMCBjIDUzLjAwMSwwIDk1LjcwOS00Mi43MDggOTUuNzA5LTk1LjcwOSBsIDAtMTkxLjI3NCBjIDAtNTMuMDAxIC00Mi43MDgtOTUuNzA5IC05NS43MDktOTUuNzA5IGwgLTE5MS4yNzQsMCBjIC01My4wMDEsMCAtOTUuNzA5LDQyLjcwOCAtOTUuNzA5LDk1LjcwOSBsIDAsMTkxLjI3NCBjIDAsNTMuMDAxIDQyLjcwOCw5NS43MDkgOTUuNzA5LDk1LjcwOSB6TSAyMzEuMDc1LDM2Ni44MjcgIG0wLDAsIDQ5Ljg1LDAgMC0yNzQuMTc2IC00OS44NSwwIDAsMjc0LjE3NiIgIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlMDAyOyIgZD0iTSAxMzkuNjM2LDQ1Ni43MjcgQyA3NS4xNzEsNDU2LjcyNyAyMy4yNzMsNDA0LjgyOSAyMy4yNzMsMzQwLjM2NCBsIDAtMjMyLjcyNyBjIDAtNjQuNDY1IDUxLjg5OC0xMTYuMzY0IDExNi4zNjQtMTE2LjM2NCBsIDIzMi43MjcsMCBjIDY0LjQ2NSwwIDExNi4zNjQsNTEuODk4IDExNi4zNjQsMTE2LjM2NCBMIDQ4OC43MjcsMzQwLjM2NCBDIDQ4OC43MjcsNDA0LjgyOSA0MzYuODI5LDQ1Ni43MjcgMzcyLjM2NCw0NTYuNzI3IEwgMTM5LjYzNiw0NTYuNzI3IHogbSAyMC43MjctNDEuMzgxIDE5MS4yNzQsMCBjIDUzLjAwMSwwIDk1LjcwOS00Mi43MDggOTUuNzA5LTk1LjcwOSBsIDAtMTkxLjI3NCBjIDAtNTMuMDAxIC00Mi43MDgtOTUuNzA5IC05NS43MDktOTUuNzA5IGwgLTE5MS4yNzQsMCBjIC01My4wMDEsMCAtOTUuNzA5LDQyLjcwOCAtOTUuNzA5LDk1LjcwOSBsIDAsMTkxLjI3NCBjIDAsNTMuMDAxIDQyLjcwOCw5NS43MDkgOTUuNzA5LDk1LjcwOSB6TSAyNzguNzQ5LDg2LjcxNyAgbTAsMCxjIC0yMC41NzMsMCAtMzkuMDM2LDMuMTY1IC01NS4zODksOS40OTUgLTE2LjM1Myw2LjMzIC0zMC4yLDE1LjU2MiAtNDEuNTQyLDI3LjY5NSAtMTEuMzQyLDEyLjM5NyAtMjAuMDQ2LDI3LjQzMSAtMjYuMTEyLDQ1LjEwMyAtNi4wNjYsMTcuNjcyIC05LjEsMzcuOTgxIC05LjEsNjAuOTI4IDAsMjIuOTQ3IDMuNDI5LDQzLjI1NiAxMC4yODcsNjAuOTI4IDcuMTIxLDE3LjY3MiAxNi43NDksMzIuNTc0IDI4Ljg4MSw0NC43MDcgMTIuMTMzLDEyLjM5NiAyNi4zNzYsMjEuNzYgNDIuNzI5LDI4LjA5MCAxNi4zNTMsNi4zMyAzMy44OTMsOS40OTUgNTIuNjIsOS40OTUgMTEuMzQxLDAgMjEuNjI4LTAuOTIzIDMwLjg2LTIuNzY5IDkuMjMxLTEuNTgzIDE3LjI3Ni0zLjQyOSAyNC4xMzQtNS41MzkgNi44NTctMi4xMSAxMi41MjgtNC4zNTIgMTcuMDEyLTYuNzI2IDQuNDg0LTIuMzc0IDcuNjQ5LTQuMDg5IDkuNDk1LTUuMTQzIGwgLTE0LjYzOS00MC43NTEgYyAtNi4zMywzLjk1NiAtMTUuNDMsNy42NDkgLTI3LjI5OSwxMS4wNzggLTExLjYwNiwzLjY5MiAtMjQuMjY2LDUuNTM5IC0zNy45ODEsNS41MzkgLTExLjg2OSwwIC0yMi45NDctMi4xMSAtMzMuMjMzLTYuMzMgLTEwLjI4Ny0zLjk1NyAtMTkuMjU0LTEwLjAyMyAtMjYuOTAzLTE4LjE5OSAtNy4zODUtOC4xNzcgLTEzLjE4OC0xOC40NjMgLTE3LjQwOC0zMC44NiAtNC4yMi0xMi4zOTcgLTYuMzMtMjYuNzcyIC02LjMzLTQzLjEyNCAwLTE0LjUwNyAxLjU4Mi0yNy44MjcgNC43NDgtMzkuOTU5IDMuNDI5LTEyLjEzMyA4LjU3Mi0yMi42ODMgMTUuNDMtMzEuNjUxIDYuODU4LTguNzA0IDE1LjU2Mi0xNS41NjIgMjYuMTEyLTIwLjU3MyAxMC41NS00Ljc0OCAyMy4yMTEtNy4xMjIgMzcuOTgxLTcuMTIxIDE3LjY3MiwwIDMyLjA0NiwxLjcxNCA0My4xMjQsNS4xNDMgMTEuMDc4LDMuNjkzIDE5LjY1LDcuMTIxIDI1LjcxNiwxMC4yODcgbCAxMy40NTItNDAuNzUxIGMgLTMuMTY1LTIuMTEgLTcuNTE3LTQuMjIgLTEzLjA1Ni02LjMzIC01LjI3NS0yLjExIC0xMS42MDYtNC4yMiAtMTguOTkxLTYuMzMgLTcuMzg1LTEuODQ2IC0xNS42OTQtMy4yOTcgLTI0LjkyNS00LjM1MiAtOS4yMzItMS4zMTkgLTE5LjEyMy0xLjk3OCAtMjkuNjczLTEuOTc4IiAgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjI1NiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.ttf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAEAAAANAIAAAwBQRkZUTWhbFjwAAAgEAAAAHEdERUYANAAGAAAH5AAAACBPUy8yL7rcHwAAAVgAAABWY21hcOAW89QAAAHIAAABUmdhc3D//wADAAAH3AAAAAhnbHlmdedjngAAAywAAAH0aGVhZP08tCkAAADcAAAANmhoZWEEEP/mAAABFAAAACRobXR4BMEALgAAAbAAAAAYbG9jYQCOAUIAAAMcAAAAEG1heHAATQBYAAABOAAAACBuYW1lNjGUwgAABSAAAAJqcG9zdDWmfHEAAAeMAAAAUAABAAAAAQAA7pdETF8PPPUACwIAAAAAAM4OubYAAAAAzg65tgAA/+ACAAHgAAAACAACAAAAAAAAAAEAAAHg/+AALgIAAAD+AAIAAAEAAAAAAAAAAAAAAAAAAAAFAAEAAAAHAFUABAAAAAAAAgAAAAEAAQAAAEAAAAAAAAAAAQIAAZAABQAIAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIABQMAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUGZFZABA4ADwAAHg/+AALgHgACCAAAABAAAAAAAAAgAAAAAAAAAAqgAAAAAAAAIAABcAFwAXAAAAAwAAAAMAAAAcAAEAAAAAAEwAAwABAAAAHAAEADAAAAAIAAgAAgAAAADgAvAA//8AAAAA4ADwAP//AAAgBBADAAEAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ASACAAPoAAQAA/+ACAAHgAAIAABEBIQIA/gAB4P4AAAAAAAQAF//3AekByQAPAB8AIAApAAATIgYdARQWOwEyNj0BNCYjBzMyFh0BFAYrASImPQE0NhcxFSMVIzUjNTOMMUREMegxREQx1MAnODgnwCc4OO9UM1TbAclEMegxREQx6DFEKjgnwCc4OCfAJzgwK+fnKwAABAAX//cB6QHJAA8AHwAgACUAABMiBh0BFBY7ATI2PQE0JiMHMzIWHQEUBisBIiY9ATQ2FzEzESMRjDFERDHoMUREMdTAJzg4J8AnODhuMjIByUQx6DFERDHoMUQqOCfAJzg4J8AnODD+7gESAAAAAAQAF//3AekByQAPAB8AIABUAAATIgYdARQWOwEyNj0BNCYjBzMyFh0BFAYrASImPQE0NhMxIiYnLgE0NzY3PgEzMhceAhcHJicmIyIHBgcOARUUFxYXFhcWMzI3NjcXBgcGBwYHBiOMMUREMegxREQx1MAnODgnwCc4OJ4fMREREgoLEhIxHBEODhQOAw8KERIUEhAPCwwMBQUKChAQFhsQEQkNBAkICwsODRAByUQx6DFERDHoMUQqOCfAJzg4J8AnOP64ExITNUQbGhMSEwMCBgcCKQYFBgYGDQwlGRUTEg0NCAcFBgQoAwQDAwMBAgAAAAAAAAwAlgABAAAAAAABABkANAABAAAAAAACAAsAZgABAAAAAAADADUA3gABAAAAAAAEABkBSAABAAAAAAAFAAsBegABAAAAAAAGABkBugADAAEECQABADIAAAADAAEECQACABYATgADAAEECQADAGoAcgADAAEECQAEADIBFAADAAEECQAFABYBYgADAAEECQAGADIBhgBwAGgAcABkAG8AYwB1AG0AZQBuAHQAbwByAC0AYwBsAGUAYQBuAC0AaQBjAG8AbgBzAABwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zAABjAGwAZQBhAG4ALQBpAGMAbwBuAHMAAGNsZWFuLWljb25zAABGAG8AbgB0AEYAbwByAGcAZQAgADIALgAwACAAOgAgAHAAaABwAGQAbwBjAHUAbQBlAG4AdABvAHIALQBjAGwAZQBhAG4ALQBpAGMAbwBuAHMAIAA6ACAAMQA5AC0ANwAtADIAMAAxADMAAEZvbnRGb3JnZSAyLjAgOiBwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zIDogMTktNy0yMDEzAABwAGgAcABkAG8AYwB1AG0AZQBuAHQAbwByAC0AYwBsAGUAYQBuAC0AaQBjAG8AbgBzAABwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zAABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABwAGgAcABkAG8AYwB1AG0AZQBuAHQAbwByAC0AYwBsAGUAYQBuAC0AaQBjAG8AbgBzAABwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAgECAQMBBAEFB3VuaUYwMDAHdW5pRTAwMAd1bmlFMDAxB3VuaUUwMDIAAAAB//8AAgABAAAADgAAABgAAAAAAAIAAQADAAYAAQAEAAAAAgAAAAAAAQAAAADMPaLPAAAAAM4OubYAAAAAzg65tg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/fonts/phpdocumentor-clean-icons.woff</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[d09GRk9UVE8AAAcoAAsAAAAAC4gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABCAAAA+wAAAXZYDil1EZGVE0AAAT0AAAAGgAAABxoWxY8R0RFRgAABRAAAAAcAAAAIAAyAARPUy8yAAAFLAAAAEsAAABgL9zcQGNtYXAAAAV4AAAAPQAAAVLgFPLNaGVhZAAABbgAAAAuAAAANv08tCloaGVhAAAF6AAAAB4AAAAkBBD/5GhtdHgAAAYIAAAAEAAAABAEFwAubWF4cAAABhgAAAAGAAAABgAFUABuYW1lAAAGIAAAAPwAAAJqNjGUwnBvc3QAAAccAAAADAAAACAAAwAAeJx9VF1sFGUUvbPdn3F3dqmlW9vNdJc2VLC6SYGAiNrUxjahJAK20aQmLNhWJcC2sT8KxgeSaosD/qyrMZWYZo2kAR76sNjQkLYKCQryZ6hBGhtEWjH8SVvbETZ7Pd/MtPIC+/DNmXu/Oefec79vJbLbSZKkQNMbTfWNda3bGqItjW+G67Y2bIqGN9c1RptJspFEpXrIpi/I0HPtmpKhKfagm/Kqs1jT5oDi0rbocb3FodLxeSpRpkpnH1ZJUe1Xs8gpOGSaRzmUTytobWt0c2VJSQkeFXOPJeZj6X0ruX+JRFKH1Cntkj4gh1CykUKbKGF3+zS9xZ6K63GXj0lLnGPph37Vv8DNlN2fz/zLV23+ArzI1W3MZ95Z6Gf8BnKYi1Z0Mp+/VM5UU7GROXeil2lp6R2mP73rzBg9HhpwPoiUO5oK/idN53D6xs8TTEt+7WIpK+xjPv3o6w+sivvUg5zu25AyCFKMLtv9TO7dpzWmh67kItCTBHq6nklav1+gQiBfNvpZGwBqbmVyvfox0IVPLWRTi5mcNUcEWszkqHzNijl2payYvVa1YhnFpUZMZp7YXcW0eKjcwfzvrQCqGd7JPLMtBhSLMk9dx57UC1/MoliY+XZ3Odpe/STzzWpdw/uqy6KPQebJl34Eb2SA+Z/mZRAcfNdCDts5sK45jhJH9kFpYS1aST4l0CtAM2eY74zUCwtOmSKkFCpmMaQUnITcFhuTd/01GOTbeVLGI9Ps5jEENhK0Vr6IrQ2JOdQN1VMxUK5eKSz6CDJhTNi1r0ggn1Ddg3Iyx8WW7fBkKm1tNgg883XLNs9oG+S8fW6sSs80alkECz1fFgpjLor826LmJzCmvC7TLAxiB5DneRnVff35rMHpRVsxMu950dgxoD4chbvtuZZld9sDAg3BihpUYXt2Stiz16zCtEwMj2emdojBY0LTx0aBPisTaK+IxWH3t504PterMLCeJIZzo+Iy1putR4Xo98y3vkmA7MD796Lb350AReIsBvgbRCe7ujHqydHl1vt05BnsycPl0X93GkM3yzGRcSSu9Y5D5S/vJ8YK1zPkQyI6JhweM3feg+TkKua/Z9bAvJf3CMGIQB8KvUlYfWHY6iizdoMo8T2BIhbKausQrRzFlYr1arJPj2drfk1x4w9pPtkkafslpqv9ESdT2Vu4d8vGcDh/CgRxPjunQ+Kq4fA+UnHFIQJJpPIuirxq5INGyjmbCuTj+/EiweQJCVbVxcZvlvoPk1/kNdnDfIIxx+GqIWvBa4i57PCIy0xR8aEyM0XL6bkg02BlkVPgcjNlLkiFjJTLTJkfGJ+CJOj5D3US/u54nGNgYGBkAIIztovOg+hzfDu3wWgASzsHEgAAeJxjYGRgYOADYgkGEGBiYARCFjAG8RgABHYAN3icY2BmYmCcwMDKwMHow5jGwMDgDqW/MkgytDAwMDGwMjPAgQCCyRCQ5prC4PCA4QMD44P/Dxj0GB8wKDQwMDDCFSgAISMAEEIMHwB4nGNgYGBmgGAZBkYGEPAB8hjBfBYGAyDNAYRMIIkHTB8Y/v8HsxggLAUmAUaoLjBgZGNA5o5IAADLqAiwAAAAeJxjYGRgYABig0Vn7sfz23xl4GZiAIFzfDu3Iej/D5gYGB8AuRwMYGkAR+sLjgAAeJxjYGRgYHzw/wGDHhMDA8M/BiAJFEEBzABt5wP2AAACAAAAAAAAAAIAABcAFwAXAABQAAAFAAB4nK2QMW4CMRBFv2FBikiJkOh8Aa/WThCCA6BUKenJ4sBGYK/M0nAAjpDD5DA5S/5upklBEQlLI7/5/uMZG8AjPqHQLoUpnoV7GOFduI8ZvoUzTNWL8AAjdREeUv+iU2UPVFxX1XIPE7wK9/GBJJzBqbHwABP1JjykfkWNPWOLiBJnHOER0DBLMFQOzDdUDCpmkXQC6n29jeX56EMTkykPfhNMVcbAoxsVfzyrTm26PWFHv+YrchTcl4z/T/RbZ7GgOmc43mXxxFYxNKuYdl67vNBLfXNyntmFmRtXWJbd90/W9Cd6qs7bztm+FWufTlUM2ubFnTv+AHexdVl4nGNgZsALAAB9AAQ=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/lte-ie7.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogTG9hZCB0aGlzIHNjcmlwdCB1c2luZyBjb25kaXRpb25hbCBJRSBjb21tZW50cyBpZiB5b3UgbmVlZCB0byBzdXBwb3J0IElFIDcgYW5kIElFIDYuICovCgp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CglmdW5jdGlvbiBhZGRJY29uKGVsLCBlbnRpdHkpIHsKCQl2YXIgaHRtbCA9IGVsLmlubmVySFRNTDsKCQllbC5pbm5lckhUTUwgPSAnPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ3BocGRvY3VtZW50b3ItY2xlYW4taWNvbnNcJyI+JyArIGVudGl0eSArICc8L3NwYW4+JyArIGh0bWw7Cgl9Cgl2YXIgaWNvbnMgPSB7CgkJCSdpY29uLXRyYWl0JyA6ICcmI3hlMDAwOycsCgkJCSdpY29uLWludGVyZmFjZScgOiAnJiN4ZTAwMTsnLAoJCQknaWNvbi1jbGFzcycgOiAnJiN4ZTAwMjsnCgkJfSwKCQllbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpLAoJCWksIGF0dHIsIGh0bWwsIGMsIGVsOwoJZm9yIChpID0gMDsgOyBpICs9IDEpIHsKCQllbCA9IGVsc1tpXTsKCQlpZighZWwpIHsKCQkJYnJlYWs7CgkJfQoJCWF0dHIgPSBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWNvbicpOwoJCWlmIChhdHRyKSB7CgkJCWFkZEljb24oZWwsIGF0dHIpOwoJCX0KCQljID0gZWwuY2xhc3NOYW1lOwoJCWMgPSBjLm1hdGNoKC9pY29uLVteXHMnIl0rLyk7CgkJaWYgKGMgJiYgaWNvbnNbY1swXV0pIHsKCQkJYWRkSWNvbihlbCwgaWNvbnNbY1swXV0pOwoJCX0KCX0KfTs=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/Read Me.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VG8gbW9kaWZ5IHlvdXIgZ2VuZXJhdGVkIGZvbnQsIHVzZSB0aGUgKmRldi5zdmcqIGZpbGUsIGxvY2F0ZWQgaW4gdGhlICpmb250cyogZm9sZGVyIGluIHRoaXMgcGFja2FnZS4gWW91IGNhbiBpbXBvcnQgdGhpcyBkZXYuc3ZnIGZpbGUgdG8gdGhlIEljb01vb24gYXBwLiBBbGwgdGhlIHRhZ3MgKGNsYXNzIG5hbWVzKSBhbmQgdGhlIFVuaWNvZGUgcG9pbnRzIG9mIHlvdXIgZ2x5cGhzIGFyZSBzYXZlZCBpbiB0aGlzIGZpbGUuCgpTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mbyBvbiBob3cgdG8gdXNlIHRoaXMgcGFja2FnZTogaHR0cDovL2ljb21vb24uaW8vI2RvY3MvZm9udC1mYWNl]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/phpdocumentor-clean-icons/style.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGZvbnQtZmFjZSB7Cglmb250LWZhbWlseTogJ3BocGRvY3VtZW50b3ItY2xlYW4taWNvbnMnOwoJc3JjOnVybCgnZm9udHMvcGhwZG9jdW1lbnRvci1jbGVhbi1pY29ucy5lb3QnKTsKCXNyYzp1cmwoJ2ZvbnRzL3BocGRvY3VtZW50b3ItY2xlYW4taWNvbnMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwKCQl1cmwoJ2ZvbnRzL3BocGRvY3VtZW50b3ItY2xlYW4taWNvbnMud29mZicpIGZvcm1hdCgnd29mZicpLAoJCXVybCgnZm9udHMvcGhwZG9jdW1lbnRvci1jbGVhbi1pY29ucy50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksCgkJdXJsKCdmb250cy9waHBkb2N1bWVudG9yLWNsZWFuLWljb25zLnN2ZyNwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zJykgZm9ybWF0KCdzdmcnKTsKCWZvbnQtd2VpZ2h0OiBub3JtYWw7Cglmb250LXN0eWxlOiBub3JtYWw7Cn0KCi8qIFVzZSB0aGUgZm9sbG93aW5nIENTUyBjb2RlIGlmIHlvdSB3YW50IHRvIHVzZSBkYXRhIGF0dHJpYnV0ZXMgZm9yIGluc2VydGluZyB5b3VyIGljb25zICovCltkYXRhLWljb25dOmJlZm9yZSB7Cglmb250LWZhbWlseTogJ3BocGRvY3VtZW50b3ItY2xlYW4taWNvbnMnOwoJY29udGVudDogYXR0cihkYXRhLWljb24pOwoJc3BlYWs6IG5vbmU7Cglmb250LXdlaWdodDogbm9ybWFsOwoJZm9udC12YXJpYW50OiBub3JtYWw7Cgl0ZXh0LXRyYW5zZm9ybTogbm9uZTsKCWxpbmUtaGVpZ2h0OiAxOwoJLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7Cn0KCi8qIFVzZSB0aGUgZm9sbG93aW5nIENTUyBjb2RlIGlmIHlvdSB3YW50IHRvIGhhdmUgYSBjbGFzcyBwZXIgaWNvbiAqLwovKgpJbnN0ZWFkIG9mIGEgbGlzdCBvZiBhbGwgY2xhc3Mgc2VsZWN0b3JzLAp5b3UgY2FuIHVzZSB0aGUgZ2VuZXJpYyBzZWxlY3RvciBiZWxvdywgYnV0IGl0J3Mgc2xvd2VyOgpbY2xhc3MqPSJpY29uLSJdIHsKKi8KLmljb24tdHJhaXQsIC5pY29uLWludGVyZmFjZSwgLmljb24tY2xhc3MgewoJZm9udC1mYW1pbHk6ICdwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zJzsKCXNwZWFrOiBub25lOwoJZm9udC1zdHlsZTogbm9ybWFsOwoJZm9udC13ZWlnaHQ6IG5vcm1hbDsKCWZvbnQtdmFyaWFudDogbm9ybWFsOwoJdGV4dC10cmFuc2Zvcm06IG5vbmU7CglsaW5lLWhlaWdodDogMTsKCS13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwp9Ci5pY29uLXRyYWl0OmJlZm9yZSB7Cgljb250ZW50OiAiXGUwMDAiOwp9Ci5pY29uLWludGVyZmFjZTpiZWZvcmUgewoJY29udGVudDogIlxlMDAxIjsKfQouaWNvbi1jbGFzczpiZWZvcmUgewoJY29udGVudDogIlxlMDAyIjsKfQo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/prism.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIHByaXNtLmpzIGRlZmF1bHQgdGhlbWUgZm9yIEphdmFTY3JpcHQsIENTUyBhbmQgSFRNTAogKiBCYXNlZCBvbiBkYWJibGV0IChodHRwOi8vZGFiYmxldC5jb20pCiAqIEBhdXRob3IgTGVhIFZlcm91CiAqLwoKY29kZVtjbGFzcyo9Imxhbmd1YWdlLSJdLApwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSB7Cgljb2xvcjogYmxhY2s7Cgl0ZXh0LXNoYWRvdzogMCAxcHggd2hpdGU7Cglmb250LWZhbWlseTogQ29uc29sYXMsIE1vbmFjbywgJ0FuZGFsZSBNb25vJywgbW9ub3NwYWNlOwoJZGlyZWN0aW9uOiBsdHI7Cgl0ZXh0LWFsaWduOiBsZWZ0OwoJd2hpdGUtc3BhY2U6IHByZTsKCXdvcmQtc3BhY2luZzogbm9ybWFsOwoKCS1tb3otdGFiLXNpemU6IDQ7Cgktby10YWItc2l6ZTogNDsKCXRhYi1zaXplOiA0OwoKCS13ZWJraXQtaHlwaGVuczogbm9uZTsKCS1tb3otaHlwaGVuczogbm9uZTsKCS1tcy1oeXBoZW5zOiBub25lOwoJaHlwaGVuczogbm9uZTsKfQoKOjotbW96LXNlbGVjdGlvbiB7Cgl0ZXh0LXNoYWRvdzogbm9uZTsKCWJhY2tncm91bmQ6ICNiM2Q0ZmM7Cn0KCjo6c2VsZWN0aW9uIHsKCXRleHQtc2hhZG93OiBub25lOwoJYmFja2dyb3VuZDogI2IzZDRmYzsKfQoKQG1lZGlhIHByaW50IHsKCWNvZGVbY2xhc3MqPSJsYW5ndWFnZS0iXSwKCXByZVtjbGFzcyo9Imxhbmd1YWdlLSJdIHsKCQl0ZXh0LXNoYWRvdzogbm9uZTsKCX0KfQoKLyogQ29kZSBibG9ja3MgKi8KcHJlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gewoJcGFkZGluZzogMWVtOwoJbWFyZ2luOiAuNWVtIDA7CglvdmVyZmxvdzogYXV0bzsKfQoKOm5vdChwcmUpID4gY29kZVtjbGFzcyo9Imxhbmd1YWdlLSJdLApwcmVbY2xhc3MqPSJsYW5ndWFnZS0iXSB7CgliYWNrZ3JvdW5kOiAjZjVmMmYwOwp9CgovKiBJbmxpbmUgY29kZSAqLwo6bm90KHByZSkgPiBjb2RlW2NsYXNzKj0ibGFuZ3VhZ2UtIl0gewoJcGFkZGluZzogLjFlbTsKCWJvcmRlci1yYWRpdXM6IC4zZW07Cn0KCi50b2tlbi5jb21tZW50LAoudG9rZW4ucHJvbG9nLAoudG9rZW4uZG9jdHlwZSwKLnRva2VuLmNkYXRhIHsKCWNvbG9yOiBzbGF0ZWdyYXk7Cn0KCi50b2tlbi5wdW5jdHVhdGlvbiB7Cgljb2xvcjogIzk5OTsKfQoKLm5hbWVzcGFjZSB7CglvcGFjaXR5OiAuNzsKfQoKLnRva2VuLnByb3BlcnR5LAoudG9rZW4udGFnLAoudG9rZW4uYm9vbGVhbiwKLnRva2VuLm51bWJlciB7Cgljb2xvcjogIzkwNTsKfQoKLnRva2VuLnNlbGVjdG9yLAoudG9rZW4uYXR0ci1uYW1lLAoudG9rZW4uc3RyaW5nIHsKCWNvbG9yOiAjNjkwOwp9CgoudG9rZW4ub3BlcmF0b3IsCi50b2tlbi5lbnRpdHksCi50b2tlbi51cmwsCi5sYW5ndWFnZS1jc3MgLnRva2VuLnN0cmluZywKLnN0eWxlIC50b2tlbi5zdHJpbmcgewoJY29sb3I6ICNhNjdmNTk7CgliYWNrZ3JvdW5kOiBoc2xhKDAsMCUsMTAwJSwuNSk7Cn0KCi50b2tlbi5hdHJ1bGUsCi50b2tlbi5hdHRyLXZhbHVlLAoudG9rZW4ua2V5d29yZCB7Cgljb2xvcjogIzA3YTsKfQoKCi50b2tlbi5yZWdleCwKLnRva2VuLmltcG9ydGFudCB7Cgljb2xvcjogI2U5MDsKfQoKLnRva2VuLmltcG9ydGFudCB7Cglmb250LXdlaWdodDogYm9sZDsKfQoKLnRva2VuLmVudGl0eSB7CgljdXJzb3I6IGhlbHA7Cn0KcHJlW2RhdGEtbGluZV0gewoJcG9zaXRpb246IHJlbGF0aXZlOwoJcGFkZGluZzogMWVtIDAgMWVtIDNlbTsKfQoKLmxpbmUtaGlnaGxpZ2h0IHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCWxlZnQ6IDA7CglyaWdodDogMDsKCXBhZGRpbmc6IGluaGVyaXQgMDsKCW1hcmdpbi10b3A6IDFlbTsgLyogU2FtZSBhcyAucHJpc23igJlzIHBhZGRpbmctdG9wICovCgoJYmFja2dyb3VuZDogaHNsYSgyNCwgMjAlLCA1MCUsLjA4KTsKCWJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIGhzbGEoMjQsIDIwJSwgNTAlLC4xKSA3MCUsIGhzbGEoMjQsIDIwJSwgNTAlLDApKTsKCWJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIGhzbGEoMjQsIDIwJSwgNTAlLC4xKSA3MCUsIGhzbGEoMjQsIDIwJSwgNTAlLDApKTsKCWJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCBoc2xhKDI0LCAyMCUsIDUwJSwuMSkgNzAlLCBoc2xhKDI0LCAyMCUsIDUwJSwwKSk7CgliYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQobGVmdCwgaHNsYSgyNCwgMjAlLCA1MCUsLjEpIDcwJSwgaHNsYSgyNCwgMjAlLCA1MCUsMCkpOwoJCglwb2ludGVyLWV2ZW50czogbm9uZTsKCQoJbGluZS1oZWlnaHQ6IGluaGVyaXQ7Cgl3aGl0ZS1zcGFjZTogcHJlOwp9CgoJLmxpbmUtaGlnaGxpZ2h0OmJlZm9yZSwKCS5saW5lLWhpZ2hsaWdodFtkYXRhLWVuZF06YWZ0ZXIgewoJCWNvbnRlbnQ6IGF0dHIoZGF0YS1zdGFydCk7CgkJcG9zaXRpb246IGFic29sdXRlOwoJCXRvcDogLjRlbTsKCQlsZWZ0OiAuNmVtOwoJCW1pbi13aWR0aDogMWVtOwoJCXBhZGRpbmc6IDAgLjVlbTsKCQliYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDI0LCAyMCUsIDUwJSwuNCk7CgkJY29sb3I6IGhzbCgyNCwgMjAlLCA5NSUpOwoJCWZvbnQ6IGJvbGQgNjUlLzEuNSBzYW5zLXNlcmlmOwoJCXRleHQtYWxpZ246IGNlbnRlcjsKCQl2ZXJ0aWNhbC1hbGlnbjogLjNlbTsKCQlib3JkZXItcmFkaXVzOiA5OTlweDsKCQl0ZXh0LXNoYWRvdzogbm9uZTsKCQlib3gtc2hhZG93OiAwIDFweCB3aGl0ZTsKCX0KCQoJLmxpbmUtaGlnaGxpZ2h0W2RhdGEtZW5kXTphZnRlciB7CgkJY29udGVudDogYXR0cihkYXRhLWVuZCk7CgkJdG9wOiBhdXRvOwoJCWJvdHRvbTogLjRlbTsKCX0KcHJlLmxpbmUtbnVtYmVycyB7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglwYWRkaW5nLWxlZnQ6IDMuOGVtOwoJY291bnRlci1yZXNldDogbGluZW51bWJlcjsKfQoKcHJlLmxpbmUtbnVtYmVycyA+IGNvZGUgewoJcG9zaXRpb246IHJlbGF0aXZlOwp9CgoubGluZS1udW1iZXJzIC5saW5lLW51bWJlcnMtcm93cyB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cglwb2ludGVyLWV2ZW50czogbm9uZTsKCXRvcDogMDsKCWZvbnQtc2l6ZTogMTAwJTsKCWxlZnQ6IC0zLjhlbTsKCXdpZHRoOiAzZW07IC8qIHdvcmtzIGZvciBsaW5lLW51bWJlcnMgYmVsb3cgMTAwMCBsaW5lcyAqLwoJbGV0dGVyLXNwYWNpbmc6IC0xcHg7Cglib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjOTk5OwoKCS13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CgktbW96LXVzZXItc2VsZWN0OiBub25lOwoJLW1zLXVzZXItc2VsZWN0OiBub25lOwoJdXNlci1zZWxlY3Q6IG5vbmU7Cgp9CgoJLmxpbmUtbnVtYmVycy1yb3dzID4gc3BhbiB7CgkJcG9pbnRlci1ldmVudHM6IG5vbmU7CgkJZGlzcGxheTogYmxvY2s7CgkJY291bnRlci1pbmNyZW1lbnQ6IGxpbmVudW1iZXI7Cgl9CgoJCS5saW5lLW51bWJlcnMtcm93cyA+IHNwYW46YmVmb3JlIHsKCQkJY29udGVudDogY291bnRlcihsaW5lbnVtYmVyKTsKCQkJY29sb3I6ICM5OTk7CgkJCWRpc3BsYXk6IGJsb2NrOwoJCQlwYWRkaW5nLXJpZ2h0OiAwLjhlbTsKCQkJdGV4dC1hbGlnbjogcmlnaHQ7CgkJfQo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/css/template.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVNvdXJjZStTYW5zK1Bybyk7CkBpbXBvcnQgdXJsKCdwaHBkb2N1bWVudG9yLWNsZWFuLWljb25zL3N0eWxlLmNzcycpOwoKYm9keSB7CiAgICBwYWRkaW5nLXRvcDogICAgICA0MHB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMzsKfQoKYSB7CiAgICBjb2xvcjogIzY0OTVlZDsKfQphLmFuY2hvciB7CiAgICBoZWlnaHQ6IDQwcHg7CiAgICBtYXJnaW4tdG9wOiAtNDBweDsKICAgIGRpc3BsYXk6IGJsb2NrOwp9CgpoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCAuYnJhbmQgewogICAgZm9udC1mYW1pbHk6ICAgICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmOwogICAgZm9udC13ZWlnaHQ6ICAgIG5vcm1hbDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07Cn0KCmgyLCBoMywgLmRldGFpbHNiYXIgaDEgewogICAgb3ZlcmZsb3c6ICAgIGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBtYXJnaW46ICAgICAgMzBweCAwIDIwcHggMDsKfQoKaDI6YWZ0ZXIsIGgzOmFmdGVyLCAuZGV0YWlsc2JhciBoMTphZnRlciB7CiAgICBjb250ZW50OiAgICAgICAgJyc7CiAgICBkaXNwbGF5OiAgICAgICAgaW5saW5lLWJsb2NrOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIHdpZHRoOiAgICAgICAgICAxMDAlOwogICAgaGVpZ2h0OiAgICAgICAgIDJweDsKICAgIG1hcmdpbi1sZWZ0OiAgICAxZW07CiAgICBiYWNrZ3JvdW5kOiAgICAgc2lsdmVyOwp9CgpoMyB7CiAgICBtYXJnaW46IDEwcHggMCAyMHB4IDA7Cn0KCmg0IHsKICAgIG1hcmdpbjogICAgMjBweCAwIDEwcHggMDsKICAgIGNvbG9yOiAgICAgZ3JheTsKICAgIGZvbnQtc2l6ZTogMTguNXB4Owp9CgpoMy5wdWJsaWMsIGgzLnByb3RlY3RlZCwgaDMucHJpdmF0ZSB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKfQoKLnRhYmxlIHRyOmZpcnN0LW9mLXR5cGUgdGgsIC50YWJsZSB0cjpmaXJzdC1vZi10eXBlIHRkIHsKICAgIGJvcmRlci10b3A6IG5vbmU7Cn0KLmRldGFpbHNiYXIgewogICAgY29sb3I6ICAgICAgICAgICAgI2VlZWVlZTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7CiAgICBmb250LXNpemU6ICAgICAgICAwLjllbTsKICAgIG92ZXJmbG93OiAgICAgICAgIGhpZGRlbjsKICAgIGJvcmRlci1sZWZ0OiAgICAgIDJweCBzb2xpZCBncmF5Owp9CgouZGV0YWlsc2JhciBoMSB7CiAgICBmb250LXNpemU6ICAgICAxLjVlbTsKICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICBtYXJnaW4tdG9wOiAgICAwOwp9CgouZGV0YWlsc2JhciBoMiB7CiAgICBmb250LXNpemU6IDEuMmVtOwogICAgbWFyZ2luOiAgICAwOwogICAgcGFkZGluZzogICAwOwp9CgouZGV0YWlsc2JhciBoMTphZnRlciB7CiAgICBiYWNrZ3JvdW5kOiBncmF5Owp9Ci5kZXRhaWxzYmFyIGgyOmFmdGVyLCAuZGV0YWlsc2JhciBoMzphZnRlciB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoKLmRldGFpbHNiYXIgZHQgewogICAgZm9udC12YXJpYW50OiAgIHNtYWxsLWNhcHM7CiAgICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlOwogICAgZm9udC1zaXplOiAgICAgIDEuMWVtOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtOwogICAgY29sb3I6ICAgICAgICAgIHNpbHZlcjsKfQoKLmhpZXJhcmNoeSBkaXY6bnRoLW9mLXR5cGUoMikgeyBtYXJnaW4tbGVmdDogMTFweDsgfQouaGllcmFyY2h5IGRpdjpudGgtb2YtdHlwZSgzKSB7IG1hcmdpbi1sZWZ0OiAyMnB4OyB9Ci5oaWVyYXJjaHkgZGl2Om50aC1vZi10eXBlKDQpIHsgbWFyZ2luLWxlZnQ6IDMzcHg7IH0KLmhpZXJhcmNoeSBkaXY6bnRoLW9mLXR5cGUoNSkgeyBtYXJnaW4tbGVmdDogNDRweDsgfQouaGllcmFyY2h5IGRpdjpudGgtb2YtdHlwZSg2KSB7IG1hcmdpbi1sZWZ0OiA1NXB4OyB9Ci5oaWVyYXJjaHkgZGl2Om50aC1vZi10eXBlKDcpIHsgbWFyZ2luLWxlZnQ6IDY2cHg7IH0KLmhpZXJhcmNoeSBkaXY6bnRoLW9mLXR5cGUoOCkgeyBtYXJnaW4tbGVmdDogNzdweDsgfQouaGllcmFyY2h5IGRpdjpudGgtb2YtdHlwZSg5KSB7IG1hcmdpbi1sZWZ0OiA4OHB4OyB9Ci5oaWVyYXJjaHkgZGl2OmJlZm9yZSB7CiAgICBjb250ZW50OiAiXGYwZGEiOwogICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lOwogICAgbWFyZ2luLXJpZ2h0OiA1cHg7Cn0KCi5yb3ctZmx1aWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBvdmVyZmxvdzogICAgICAgICBoaWRkZW47Cn0KCmZvb3Rlci5yb3ctZmx1aWQsIGZvb3Rlci5yb3ctZmx1aWQgKiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzOwogICAgY29sb3I6ICAgICAgICAgICAgd2hpdGU7Cn0KCmZvb3Rlci5yb3ctZmx1aWQgewogICAgYm9yZGVyLXRvcDogMnB4IGRhc2hlZCAjNTU1OwogICAgbWFyZ2luLXRvcDogMnB4Owp9CgouZm9vdGVyLXNlY3Rpb25zIC5zcGFuNCB7CiAgICBib3JkZXI6ICAgICAgICAycHggc29saWQgIzU1NTsKICAgIHRleHQtYWxpZ246ICAgIGNlbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBtYXJnaW4tdG9wOiAgICA3MHB4OwogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIGJhY2tncm91bmQ6ICAgICMzNzM3Mzc7Cn0KCi5mb290ZXItc2VjdGlvbnMgLnNwYW40IGgxIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgbWFyZ2luLXRvcDogLTMwcHg7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgZm9udC1zaXplOiAgNWVtOwp9CgouZm9vdGVyLXNlY3Rpb25zIC5zcGFuNCBoMSAqIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50Owp9CgouZm9vdGVyLXNlY3Rpb25zIC5zcGFuNCBkaXYgewogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDsKICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBtaW4taGVpZ2h0OiA0MHB4Owp9Ci5mb290ZXItc2VjdGlvbnMgLnNwYW40IGRpdiwgLmZvb3Rlci1zZWN0aW9ucyAuc3BhbjQgZGl2ICogewogICAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTsKfQouZm9vdGVyLXNlY3Rpb25zIC5zcGFuNCB1bCB7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7Cn0KCi5jb250ZW50IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgcGFkZGluZy1yaWdodDogICAgMjBweDsKfQoKLmNvbnRlbnQgbmF2IHsKICAgIHRleHQtYWxpZ246ICAgICBjZW50ZXI7CiAgICBib3JkZXItYm90dG9tOiAgMXB4IHNvbGlkIHNpbHZlcjsKICAgIG1hcmdpbjogICAgICAgICA1cHggMCAyMHB4IDA7CiAgICBwYWRkaW5nLWJvdHRvbTogNXB4Owp9CgouY29udGVudCA+IGgxIHsKICAgIHBhZGRpbmctYm90dG9tOiAxNXB4Owp9CgouY29udGVudCA+IGgxIHNtYWxsIHsKICAgIGRpc3BsYXk6ICAgICAgICBibG9jazsKICAgIHBhZGRpbmctYm90dG9tOiA4cHg7CiAgICBmb250LXNpemU6ICAgICAgMC42ZW07Cn0KCi5kZXByZWNhdGVkIHsKICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwp9CgoubWV0aG9kIHsKICAgIG1hcmdpbi1ib3R0b206IDIwcHg7Cn0KCi5tZXRob2QgLnNpZ25hdHVyZSAuYXJndW1lbnQgewogICAgY29sb3I6ICAgICAgIG1hcm9vbjsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgouY2xhc3MgI3N1bW1hcnkgc2VjdGlvbi5yb3ctZmx1aWQgewogICAgb3ZlcmZsb3c6IGhpZGRlbgp9CgouY2xhc3MgI3N1bW1hcnkgLmhlYWRpbmcgewogICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICB0ZXh0LWFsaWduOiAgY2VudGVyOwp9CgouY2xhc3MgI3N1bW1hcnkgc2VjdGlvbiAuc3BhbjQgewogICAgcGFkZGluZzogICAgICAgIDNweDsKICAgIG92ZXJmbG93OiAgICAgICBoaWRkZW47CiAgICBtYXJnaW4tYm90dG9tOiAgLTk5OTlweDsKICAgIHBhZGRpbmctYm90dG9tOiA5OTk5cHg7CiAgICB3aGl0ZS1zcGFjZTogICAgbm93cmFwOwogICAgdGV4dC1vdmVyZmxvdzogIGVsbGlwc2lzOwogICAgYm9yZGVyLWxlZnQ6ICAgIDVweCBzb2xpZCB0cmFuc3BhcmVudDsKfQoKLmNsYXNzICNzdW1tYXJ5IHNlY3Rpb24ucHVibGljIC5zcGFuNDpmaXJzdC1vZi10eXBlOmJlZm9yZSwKLmNsYXNzICNzdW1tYXJ5IHNlY3Rpb24ucHVibGljIC5zcGFuNjpmaXJzdC1vZi10eXBlOmJlZm9yZSwKaDMucHVibGljOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAgICAgIlxmMDQ2IjsKICAgIGNvbG9yOiAgICAgICBncmVlbjsKICAgIGRpc3BsYXk6ICAgICBpbmxpbmUtYmxvY2s7CiAgICB3aWR0aDogICAgICAgMS4yZW07Cn0KCi5jbGFzcyAjc3VtbWFyeSBzZWN0aW9uIC5zcGFuNDpmaXJzdC1vZi10eXBlLAouY2xhc3MgI3N1bW1hcnkgc2VjdGlvbiAuc3BhbjY6Zmlyc3Qtb2YtdHlwZSB7CiAgICBwYWRkaW5nLWxlZnQ6IDIxcHg7Cn0KLmNsYXNzICNzdW1tYXJ5IHNlY3Rpb24gLnNwYW40OmZpcnN0LW9mLXR5cGU6YmVmb3JlLAouY2xhc3MgI3N1bW1hcnkgc2VjdGlvbiAuc3BhbjY6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUgewogICAgbWFyZ2luLWxlZnQ6IC0yMXB4Owp9Ci5jbGFzcyAjc3VtbWFyeSBzZWN0aW9uLnByb3RlY3RlZCAuc3BhbjQ6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUsCi5jbGFzcyAjc3VtbWFyeSBzZWN0aW9uLnByb3RlY3RlZCAuc3BhbjY6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUsCmgzLnByb3RlY3RlZDpiZWZvcmUgewogICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lOwogICAgY29udGVudDogICAgICJcZjEzMiI7CiAgICBjb2xvcjogICAgICAgb3JhbmdlOwogICAgZGlzcGxheTogICAgIGlubGluZS1ibG9jazsKICAgIHdpZHRoOiAgICAgICAxLjJlbTsKfQoKLmNsYXNzICNzdW1tYXJ5IHNlY3Rpb24ucHJpdmF0ZSAuc3BhbjQ6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUsCi5jbGFzcyAjc3VtbWFyeSBzZWN0aW9uLnByaXZhdGUgLnNwYW42OmZpcnN0LW9mLXR5cGU6YmVmb3JlLApoMy5wcml2YXRlOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAgICAgIlxmMDIzIjsKICAgIGNvbG9yOiAgICAgICByZWQ7CiAgICBkaXNwbGF5OiAgICAgaW5saW5lLWJsb2NrOwogICAgd2lkdGg6ICAgICAgIDEuMmVtOwp9CgouY2xhc3MgI3N1bW1hcnkgc2VjdGlvbiBlbSB7CiAgICBmb250LXNpemU6IDAuOWVtOwogICAgY29sb3I6IHNpbHZlcjsKfQouY2xhc3MgI3N1bW1hcnkgLmluaGVyaXRlZCB7CiAgICBjb2xvcjogICAgICBncmF5OwogICAgZm9udC1zdHlsZTogaXRhbGljOwp9CgouYWNjb3JkaW9uLWdyb3VwIHsKICAgIGJvcmRlcjogbm9uZTsKfQoKLmFjY29yZGlvbiB7CiAgICBtYXJnaW4tYm90dG9tOiAwOwp9CgouYWNjb3JkaW9uIGE6aG92ZXIgewogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgYmFja2dyb3VuZDogICAgICAjMzMzMzMzOwogICAgY29sb3I6ICAgICAgICAgICAjZWVlZWVlOwp9CgouYWNjb3JkaW9uLWhlYWRpbmcgLmFjY29yZGlvbi10b2dnbGU6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICAgICAgIlxmMDc4IjsKICAgIGZvbnQtZmFtaWx5OiAgRm9udEF3ZXNvbWU7CiAgICBtYXJnaW4tcmlnaHQ6IDVweDsKfQoKLmFjY29yZGlvbi1oZWFkaW5nIC5hY2NvcmRpb24tdG9nZ2xlLmNvbGxhcHNlZDpiZWZvcmUgewogICAgY29udGVudDogIlxmMDU0IjsKfQouYWNjb3JkaW9uLWhlYWRpbmcgLmFjY29yZGlvbi10b2dnbGUgewogICAgZmxvYXQ6IGxlZnQ7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIHBhZGRpbmc6IDRweCAycHggNHB4IDEycHg7Cn0KLmFjY29yZGlvbi1oZWFkaW5nIGEgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBwYWRkaW5nOiA0cHggMTJweDsKfQoKLmFjY29yZGlvbi1pbm5lciBhIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcGFkZGluZzogNHB4IDEycHg7Cn0KCi5hY2NvcmRpb24taW5uZXIgPiB1bCBhOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogJ3BocGRvY3VtZW50b3ItY2xlYW4taWNvbnMnOwogICAgY29udGVudDogICAgICAiXGUwMDEiOwogICAgbWFyZ2luLXJpZ2h0OiA1cHg7Cn0KCi5hY2NvcmRpb24taW5uZXIgbGkuY2xhc3MgYTpiZWZvcmUgewogICAgY29udGVudDogICAgICAiXGUwMDIiOwp9CgouYWNjb3JkaW9uLWlubmVyIGxpLmludGVyZmFjZSBhOmJlZm9yZSB7CiAgICBjb250ZW50OiAgICAgICJcZTAwMSI7Cn0KCi5hY2NvcmRpb24taW5uZXIgbGkudHJhaXQgYTpiZWZvcmUgewogICAgY29udGVudDogICAgICAiXGUwMDAiOwp9CgouYWNjb3JkaW9uLWlubmVyIHsKICAgIHBhZGRpbmc6IDRweCAwIDRweCAxMnB4Owp9Ci5hY2NvcmRpb24taW5uZXIgdWwgewogICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIHBhZGRpbmc6ICAgIDA7CiAgICBtYXJnaW46ICAgICAwOwp9Cgoucm93LWZsdWlkIC5zcGFuMiB7CiAgICB3aWR0aDogMTYuNSU7Cn0KCmJvZHkgLm1vZGFsIHsKICAgIHdpZHRoOiA5MCU7IC8qIGRlc2lyZWQgcmVsYXRpdmUgd2lkdGggKi8KICAgIGxlZnQ6IDUlOyAvKiAoMTAwJS13aWR0aCkvMiAqLwogICAgLyogcGxhY2UgY2VudGVyICovCiAgICBtYXJnaW4tbGVmdDphdXRvOwogICAgbWFyZ2luLXJpZ2h0OmF1dG87Cn0KCkBtZWRpYSAobWluLXdpZHRoOiA3NjdweCkgewogICAgLnNpZGViYXIgewogICAgICAgIHBvc2l0aW9uOiAgICAgICAgIGZpeGVkOwogICAgICAgIHRvcDogICAgICAgICAgICAgIDQwcHg7CiAgICAgICAgYm90dG9tOiAgICAgICAgICAgMDsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzOwogICAgICAgIGxlZnQ6ICAgICAgICAgICAgIDA7CiAgICAgICAgYm9yZGVyLXJpZ2h0OiAgICAgMXB4IHNvbGlkICNlOWU5ZTk7CiAgICAgICAgb3ZlcmZsb3cteTogICAgICAgc2Nyb2xsOwogICAgICAgIG92ZXJmbG93LXg6ICAgICAgIGhpZGRlbjsKICAgICAgICBwYWRkaW5nLXRvcDogICAgICAxMHB4OwogICAgfQoKICAgIC5zaWRlYmFyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgICAgICAgd2lkdGg6IDEwcHg7CiAgICB9CgogICAgLnNpZGViYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICAgICAgICBiYWNrZ3JvdW5kOiAgICAgICNjY2NjY2M7CiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsKICAgICAgICBib3JkZXI6ICAgICAgICAgIDNweCBzb2xpZCAjZjNmM2YzOwogICAgICAgIGJvcmRlci1yYWRpdXM6ICAgNXB4OwogICAgfQoKICAgIC5zaWRlYmFyOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24gewogICAgICAgIGRpc3BsYXk6IG5vbmU7CiAgICB9CgogICAgLnNpZGViYXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOwogICAgfQp9CgpAbWVkaWEgKG1heC13aWR0aDogOTc5cHgpIHsKICAgIGJvZHkgewogICAgICAgIHBhZGRpbmctdG9wOiAwOwogICAgfQp9CgpAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsKICAgIC5jbGFzcyAjc3VtbWFyeSAuaGVhZGluZyB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAuZGV0YWlsc2JhciBoMSB7CiAgICAgICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICBib2R5IHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIH0KCiAgICBmb290ZXIucm93LWZsdWlkLCBmb290ZXIucm93LWZsdWlkICogewogICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgfQoKICAgIC5mb290ZXItc2VjdGlvbnMgaDEgewogICAgICAgIGNvbG9yOiAjY2NjY2Q5OwogICAgfQoKICAgIC5kZXRhaWxzYmFyIHsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICBib3JkZXI6IG5vbmU7CiAgICB9Cn0KCkBtZWRpYSAobWluLXdpZHRoOiA3NjdweCkgewogICAgLmRldGFpbHNiYXIgewogICAgICAgIG1pbi1oZWlnaHQ6ICAgICAxMDAlOwogICAgICAgIG1hcmdpbi1ib3R0b206ICAtOTk5OTlweDsKICAgICAgICBwYWRkaW5nLWJvdHRvbTogOTk5OTlweDsKICAgICAgICBwYWRkaW5nLWxlZnQ6ICAgMjBweDsKICAgICAgICBwYWRkaW5nLXRvcDogICAgMTBweDsKICAgIH0KfQoKQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkgewogICAgLnJvdy1mbHVpZCAuc3BhbjIgewogICAgICAgIHdpZHRoOiAxNi41JTsKICAgIH0KfQo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/files/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/files/FrontEndUsers.module.php.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgZnVuY3Rpb24gbG9hZEV4dGVybmFsQ29kZVNuaXBwZXRzKCkgewogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmVbZGF0YS1zcmNdJykpLmZvckVhY2goZnVuY3Rpb24gKHByZSkgewogICAgICAgICAgICAgICAgdmFyIHNyYyA9IHByZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3JjJyk7CiAgICAgICAgICAgICAgICB2YXIgZXh0ZW5zaW9uID0gKHNyYy5tYXRjaCgvXC4oXHcrKSQvKSB8fCBbLCAnJ10pWzFdOwogICAgICAgICAgICAgICAgdmFyIGxhbmd1YWdlID0gJ3BocCc7CgogICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb2RlJyk7CiAgICAgICAgICAgICAgICBjb2RlLmNsYXNzTmFtZSA9ICdsYW5ndWFnZS0nICsgbGFuZ3VhZ2U7CgogICAgICAgICAgICAgICAgcHJlLnRleHRDb250ZW50ID0gJyc7CgogICAgICAgICAgICAgICAgY29kZS50ZXh0Q29udGVudCA9ICdMb2FkaW5n4oCmJzsKCiAgICAgICAgICAgICAgICBwcmUuYXBwZW5kQ2hpbGQoY29kZSk7CgogICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoKICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCBzcmMsIHRydWUpOwoKICAgICAgICAgICAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09IDQpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzIDwgNDAwICYmIHhoci5yZXNwb25zZVRleHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSB4aHIucmVzcG9uc2VUZXh0OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQoY29kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoeGhyLnN0YXR1cyA+PSA0MDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSAn4pyWIEVycm9yICcgKyB4aHIuc3RhdHVzICsgJyB3aGlsZSBmZXRjaGluZyBmaWxlOiAnICsgeGhyLnN0YXR1c1RleHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ+KcliBFcnJvcjogRmlsZSBkb2VzIG5vdCBleGlzdCBvciBpcyBlbXB0eSc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpOwogICAgICAgIH0pOwogICAgICAgICQoJyNzb3VyY2UtdmlldycpLm9uKCdzaG93bicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgbG9hZEV4dGVybmFsQ29kZVNuaXBwZXRzKCk7CiAgICAgICAgfSkKICAgIDwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Ii4uL2ltYWdlcy9hcHBsZS10b3VjaC1pY29uLnBuZyIvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iNzJ4NzIiIGhyZWY9Ii4uL2ltYWdlcy9hcHBsZS10b3VjaC1pY29uLTcyeDcyLnBuZyIvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iMTE0eDExNCIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tMTE0eDExNC5wbmciLz4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZml4ZWQtdG9wIj4KICAgIDxkaXYgY2xhc3M9Im5hdmJhci1pbm5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tbmF2YmFyIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIubmF2LWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWVsbGlwc2lzLXZlcnRpY2FsIj48L2k+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgY2xhc3M9ImJyYW5kIiBocmVmPSIuLi9pbmRleC5odG1sIj5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L2E+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYgcHVsbC1yaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkgRG9jdW1lbnRhdGlvbiA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iIGlkPSJjaGFydHMtbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9ncmFwaHMvY2xhc3MuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7Q2xhc3MgaGllcmFyY2h5IGRpYWdyYW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9InJlcG9ydHMtbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBvcnRzIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vcmVwb3J0cy9lcnJvcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7RXJyb3JzIDxzcGFuIGNsYXNzPSJsYWJlbCBsYWJlbC1pbmZvIHB1bGwtcmlnaHQiPjk4PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vcmVwb3J0cy9tYXJrZXJzLmh0bWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1saXN0LWFsdCI+PC9pPiYjMTYwO01hcmtlcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+MDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPCEtLTxkaXYgY2xhc3M9ImdvX3RvX3RvcCI+LS0+CiAgICA8IS0tPGEgaHJlZj0iI19fXyIgc3R5bGU9ImNvbG9yOiBpbmhlcml0Ij5CYWNrIHRvIHRvcCYjMTYwOyYjMTYwOzxpIGNsYXNzPSJpY29uLXVwbG9hZCBpY29uLXdoaXRlIj48L2k+PC9hPi0tPgogICAgPCEtLTwvZGl2Pi0tPgo8L2Rpdj4KCjxkaXYgaWQ9Il9fXyIgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjIgc2lkZWJhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+CiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWdyb3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYWNjb3JkaW9uLXRvZ2dsZSAiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNuYW1lc3BhY2UtMTA4NzYxOTU5NSI+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL25hbWVzcGFjZXMvZGVmYXVsdC5odG1sIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDMwcHg7IHBhZGRpbmctbGVmdDogMCI+XDwvYT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgaWQ9Im5hbWVzcGFjZS0xMDg3NjE5NTk1IiBjbGFzcz0iYWNjb3JkaW9uLWJvZHkgY29sbGFwc2UgaW4iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWlubmVyIj4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9vcHQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfb3B0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwiPmZldV91c2VyX3F1ZXJ5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCI+RnJvbnRFbmRVc2VyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgZmlsZSI+CiAgICAgICAgICAgICAgICAgICAgPG5hdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25hdj4KCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI3NvdXJjZS12aWV3IiByb2xlPSJidXR0b24iIGNsYXNzPSJwdWxsLXJpZ2h0IGJ0biIgZGF0YS10b2dnbGU9Im1vZGFsIj48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDxoMT48c21hbGw+PC9zbWFsbD5Gcm9udEVuZFVzZXJzLm1vZHVsZS5waHA8L2gxPgogICAgICAgICAgICAgICAgICAgIDxwPjxlbT5UaGlzIGZpbGUgZGVmaW5lcyB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUgY2xhc3MuPC9lbT48L3A+CiAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkNsYXNzZXM8L2gyPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCI+RnJvbnRFbmRVc2VyczwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxlbT5UaGUgRnJvbnRFbmRVc2VycyBtb2R1bGUsIGJlc2lkZXMgYmVpbmcgYSBtb2R1bGUgdG8gcHJvdmlkZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlcyB0byB0aGUgZnJvbnRlbmQgb2YgYSBDTVNNUyB3ZWJzaXRlIGFsc28gaGFzIGEgY29tcGxldGUKYW5kIGZsZXhpYmxlIEFQSS48L2VtPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgICAgICAgPGgyPlRhZ3M8L2gyPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtY29uZGVuc2VkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj48dGQgY29sc3Bhbj0iMiI+PGVtPk5vbmUgZm91bmQ8L2VtPjwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgoKICAgICAgICAgICAgICAgIDwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDxkaXYgaWQ9InNvdXJjZS12aWV3IiBjbGFzcz0ibW9kYWwgaGlkZSBmYWRlIiB0YWJpbmRleD0iLTEiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJzb3VyY2Utdmlldy1sYWJlbCIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2xvc2UiIGRhdGEtZGlzbWlzcz0ibW9kYWwiIGFyaWEtaGlkZGVuPSJ0cnVlIj7DlzwvYnV0dG9uPgogICAgICAgICAgICA8aDMgaWQ9InNvdXJjZS12aWV3LWxhYmVsIj48L2gzPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPgogICAgICAgICAgICA8cHJlIGRhdGEtc3JjPSIuLi9maWxlcy9Gcm9udEVuZFVzZXJzLm1vZHVsZS5waHAudHh0IiBjbGFzcz0ibGFuZ3VhZ2UtcGhwIGxpbmUtbnVtYmVycyI+PC9wcmU+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8Zm9vdGVyIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MiI+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQxIj4KICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIGZvb3Rlci1zZWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWJhci1jaGFydCI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj5DbGFzcyBIaWVyYXJjaHkgRGlhZ3JhbTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1wdXNocGluIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vcmVwb3J0cy9lcnJvcnMuaHRtbCI+RXJyb3JzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+TWFya2VyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MSI+CiAgICAgICAgICAgICAgICAgICAgPGhyIC8+CiAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRhdGlvbiBpcyBwb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwZG9jLm9yZy8iPnBocERvY3VtZW50b3IgPC9hPiBhbmQgYXV0aG9yZWQKICAgICAgICAgICAgICAgICAgICBvbiBOb3ZlbWJlciAzMHRoLCAyMDE2IGF0IDEzOjUzLgogICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgPC9zZWN0aW9uPgogICAgPC9mb290ZXI+CjwvZGl2PgoKPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/files/FrontEndUsers.module.php.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIGNsYXNzLgogKgogKiBAcGFja2FnZSBGcm9udEVuZFVzZXJzCiAqLwoKLyoqCiAqIFRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSwgYmVzaWRlcyBiZWluZyBhIG1vZHVsZSB0byBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2VzIHRvIHRoZSBmcm9udGVuZCBvZiBhIENNU01TIHdlYnNpdGUgYWxzbyBoYXMgYSBjb21wbGV0ZQogKiBhbmQgZmxleGlibGUgQVBJLgogKgogKiBAcGFja2FnZSBGcm9udEVuZFVzZXJzCiAqLwpmaW5hbCBjbGFzcyBGcm9udEVuZFVzZXJzIGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKICAgIC8qKgogICAgICogQ29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgdGV4dCBwcm9wZXJ0eS4KICAgICAqLwogICAgY29uc3QgRklFTERUWVBFX1RFWFQgPSAwOwoKICAgIC8qKgogICAgICogQ29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgY2hlY2tib3ggcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9DSEVDS0JPWCA9IDE7CgogICAgLyoqCiAgICAgKiBDb25zdGFudCB0byBpbmRlbnRpZnkgYW4gZW1haWwgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9FTUFJTCA9IDI7CgogICAgLyoqCiAgICAgKiBDb25zdGFudCB0byBpbmRlbnRpZnkgYSB0ZXh0YXJlYSBwcm9wZXJ0eS4KICAgICAqLwogICAgY29uc3QgRklFTERUWVBFX1RFWFRBUkVBID0gMzsKCiAgICAvKioKICAgICAqIENvbnN0YW50IHRvIGluZGVudGlmeSBhIGRyb3Bkb3duIHByb3BlcnR5LgogICAgICovCiAgICBjb25zdCBGSUVMRFRZUEVfRFJPUERPV04gPSA0OwoKICAgIC8qKgogICAgICogQ29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgbXVsdGlzZWxlY3QgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9NVUxUSVNFTEVDVCA9IDU7CgogICAgLyoqCiAgICAgKiBDb25zdGFudCB0byBpbmRlbnRpZnkgYW4gaW1hZ2UgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9JTUFHRSA9IDY7CgogICAgLyoqCiAgICAgKiBDb25zdGFudCB0byBpbmRlbnRpZnkgYSByYWRpbyBidXR0b24gZ3JvdXAgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9SQURJT0JVVE5TID0gNzsKCiAgICAvKioKICAgICAqIENvbnN0YW50IHRvIGluZGVudGlmeSBhIGRhdGUgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9EQVRFID0gODsKCiAgICAvKioKICAgICAqIENvbnN0YW50IHRvIGluZGVudGlmeSBhIGRhdGEgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9EQVRBID0gOTsKCiAgICAvKioKICAgICAqIEhvdyBtYW55IHNlY29uZHMgb2YgaW5hY3Rpdml0eSBiZWZvcmUgYSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgbG9nZ2VkIG91dC4KICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRleHBpcnl0aW1lOwoKICAgIC8qKgogICAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB1c2VyIHNob3VsZCBiZSByZWRpcmVjdGVkIHRvIGRlZmF1bHQgcGFnZSBhZnRlciBsb2dnaW5nIGluL291dC4KICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRsb2dpbnRhcmdldDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRvdGhlcmludGFyZ2V0OwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgJGxvZ291dHRhcmdldDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRvdGhlcm91dHRhcmdldDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRhbGxvd3VzZXJhZG1pbjsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRlbmFibGVlbWFpbHB3OwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgJGxhbmc9IiI7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJHVzZXJtYW5pcCA9IGZhbHNlOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgJHR5cGVzID0gZmFsc2U7CgoKICAgIC8qKgogICAgICogQ29uc3RydWN0b3IKICAgICAqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgICAgICR0aGlzLT50eXBlcyA9IFsgJ3RleHQnID0+IHNlbGY6OkZJRUxEVFlQRV9URVhULAogICAgICAgICAgICAgICAgICAgICAgICAgJ2NoZWNrYm94JyA9PiBzZWxmOjpGSUVMRFRZUEVfQ0hFQ0tCT1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZW1haWwnID0+IHNlbGY6OkZJRUxEVFlQRV9FTUFJTCwKICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYScgPT4gc2VsZjo6RklFTERUWVBFX1RFWFRBUkVBLAogICAgICAgICAgICAgICAgICAgICAgICAgJ2Ryb3Bkb3duJyA9PiBzZWxmOjpGSUVMRFRZUEVfRFJPUERPV04sCiAgICAgICAgICAgICAgICAgICAgICAgICAnbXVsdGlzZWxlY3QnID0+IHNlbGY6OkZJRUxEVFlQRV9NVUxUSVNFTEVDVCwKICAgICAgICAgICAgICAgICAgICAgICAgICdpbWFnZScgPT4gc2VsZjo6RklFTERUWVBFX0lNQUdFLAogICAgICAgICAgICAgICAgICAgICAgICAgJ3JhZGlvYnV0dG9ucycgPT4gc2VsZjo6RklFTERUWVBFX1JBRElPQlVUTlMsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0ZScgPT4gc2VsZjo6RklFTERUWVBFX0RBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgPT4gc2VsZjo6RklFTERUWVBFX0RBVEEgXTsKCiAgICAgICAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKICAgICAgICBpZiggIWlzc2V0KCRDTVNfQURNSU5fUEFHRSkgKSB7CiAgICAgICAgICAgICRzbWFydHkgPSBTbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAgICAgaWYoICEkc21hcnR5ICkgcmV0dXJuOwogICAgICAgICAgICAkc21hcnR5LT5yZWdpc3RlckNsYXNzKCdmZXVfc21hcnR5JywnZmV1X3NtYXJ0eScpOwogICAgICAgICAgICAkc21hcnR5LT5yZWdpc3RlclBsdWdpbignYmxvY2snLCdmZXVfcHJvdGVjdCcsJ2ZldV9zbWFydHlfcGx1Z2luczo6ZmV1X3Byb3RlY3QnKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPkFkZEltYWdlRGlyKCdpY29ucycpOwoKICAgICAgICAkY29udGVudG9wcyA9IENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsKCiAgICAgICAgJG9iaiA9IG5ldyBDbXNDb250ZW50VHlwZVBsYWNlaG9sZGVyKCk7CiAgICAgICAgJG9iai0+Y2xhc3MgPSAnZmV1X3Byb3RlY3RlZF9wYWdlJzsKICAgICAgICAkb2JqLT50eXBlICA9IHN0cnRvbG93ZXIoJG9iai0+Y2xhc3MpOwogICAgICAgICRvYmotPmZpbGVuYW1lID0gX19ESVJfXy4nL2xpYi9jbGFzcy5mZXVfcHJvdGVjdGVkX3BhZ2UucGhwJzsKICAgICAgICAkb2JqLT5sb2FkZWQgPSBmYWxzZTsKICAgICAgICAkb2JqLT5mcmllbmRseW5hbWUgPSAkdGhpcy0+TGFuZygnZmV1X3Byb3RlY3RlZF9wYWdlJyk7CiAgICAgICAgJGNvbnRlbnRvcHMtPnJlZ2lzdGVyX2NvbnRlbnRfdHlwZSgkb2JqKTsKCiAgICAgICAgJG9iaiA9IG5ldyBDbXNDb250ZW50VHlwZVBsYWNlaG9sZGVyKCk7CiAgICAgICAgJG9iai0+Y2xhc3MgPSAnZmV1X3Byb3RlY3RlZF9zZWN0aW9uaGVhZCc7CiAgICAgICAgJG9iai0+dHlwZSAgPSBzdHJ0b2xvd2VyKCRvYmotPmNsYXNzKTsKICAgICAgICAkb2JqLT5maWxlbmFtZSA9IF9fRElSX18uJy9saWIvY2xhc3MuZmV1X3Byb3RlY3RlZF9zZWN0aW9uaGVhZGVyLnBocCc7CiAgICAgICAgJG9iai0+bG9hZGVkID0gZmFsc2U7CiAgICAgICAgJG9iai0+ZnJpZW5kbHluYW1lID0gJHRoaXMtPkxhbmcoJ2ZldV9wcm90ZWN0ZWRfc2VjdGlvbmhlYWQnKTsKICAgICAgICAkY29udGVudG9wcy0+cmVnaXN0ZXJfY29udGVudF90eXBlKCRvYmopOwoKICAgICAgICAkb2JqID0gbmV3IENtc0NvbnRlbnRUeXBlUGxhY2Vob2xkZXIoKTsKICAgICAgICAkb2JqLT5jbGFzcyA9ICdmZXVfcHJvdGVjdGVkX2xvZ291dGxpbmsnOwogICAgICAgICRvYmotPnR5cGUgID0gc3RydG9sb3dlcigkb2JqLT5jbGFzcyk7CiAgICAgICAgJG9iai0+ZmlsZW5hbWUgPSBfX0RJUl9fLicvbGliL2NsYXNzLmZldV9wcm90ZWN0ZWRfbG9nb3V0bGluay5waHAnOwogICAgICAgICRvYmotPmxvYWRlZCA9IGZhbHNlOwogICAgICAgICRvYmotPmZyaWVuZGx5bmFtZSA9ICR0aGlzLT5MYW5nKCdmZXVfcHJvdGVjdGVkX2xvZ291dGxpbmsnKTsKICAgICAgICAkY29udGVudG9wcy0+cmVnaXN0ZXJfY29udGVudF90eXBlKCRvYmopOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9sb2FkKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPnVzZXJtYW5pcCA9PSBOVUxMICkgewogICAgICAgICAgICAvLyBjaGVjayBhIHByZWZlcmVuY2UgdG8gc2VlIHdoaWNoIHVzZXIgbWFuaXB1bGF0b3IgY2xhc3MKICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIHVzZS4KICAgICAgICAgICAgJG1hbmlwdWxhdG9yID0gJ0Zyb250RW5kVXNlcnNNYW5pcHVsYXRvcic7CiAgICAgICAgICAgICR0aGlzLT51c2VybWFuaXAgPSBuZXcgRnJvbnRFbmRVc2Vyc01hbmlwdWxhdG9yKCAkdGhpcyApOwogICAgICAgICAgICBpZiggIWlzX29iamVjdCggJHRoaXMtPnVzZXJtYW5pcCApICkgZGllKCJFcnJvciBpbnN0YW50aWF0aW9uZyAkbWFuaXB1bGF0b3Igb2JqZWN0Iik7CiAgICAgICAgICAgICR0aGlzLT51c2VybWFuaXAtPlNldEV4cGlyZU5vdGlmaWVyKGFycmF5KCR0aGlzLCdOb3RpZnlFeHBpcmVkVXNlcicpKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIFVzZXIgTWFuaXB1bGF0b3IgT2JqZWN0CiAgICAgKiBOT1QgRk9SIEVYVEVSTkFMIFVTRQogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQHJldHVybiBvYmplY3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uICZHZXRNYW5pcHVsYXRvcigpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXA7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAnRnJvbnRFbmRVc2Vycyc7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcyLjIuMC42JzsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBIYXNDb250ZW50VHlwZSgpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkgeyByZXR1cm4gRkFMU0U7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMi4xLjMnOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24gKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcgKCdtb2RkZXNjcmlwdGlvbicpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbiAoKSB7IHJldHVybiAndXNlcnNncm91cHMnOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIGFycmF5KCAnQ0dFeHRlbnNpb25zJyA9PiAnMS41My45JywnQ0dTaW1wbGVTbWFydHknID0+ICcxLjknICk7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbiAoICRldmVudG5hbWUgKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZXZlbnRfaW5mb18nLiRldmVudG5hbWUgKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRFdmVudEhlbHAgKCAkZXZlbnRuYW1lICkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lICgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBIYXNBZG1pbiAoKSB7IHJldHVybiBUUlVFOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbG1lc3NhZ2UnKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnY2FsZ3V5MTAwMCc7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7IHJldHVybiAnY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSc7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgeyByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nL2NoYW5nZWxvZy5pbmMnKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGRlcHJlY2F0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGxhbmdpZnlLZXlzKCAkYXJyICkKICAgIHsKICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkYXJyIGFzICRrPT4kdiApIHsKICAgICAgICAgICAgJGsgPSAkdGhpcy0+TGFuZygkayk7CiAgICAgICAgICAgICRvdXRbICRrIF0gPSAkdjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgICB7CiAgICAgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogICAgICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjb2RlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmb3JtJyxDTEVBTl9TVFJJTkcpOyAvLyBkZXByZWNhdGVkCiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3JldHVybnRvJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvbmx5X2dyb3VwcycsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9jYXB0Y2hhJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF91c2VybmFtZScsQ0xFQU5fU1RSSU5HKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9wYXNzd29yZCcsQ0xFQU5fU1RSSU5HKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9yZXBlYXRwYXNzd29yZCcsQ0xFQU5fU1RSSU5HKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdlcnJvcicsQ0xFQU5fSU5UKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtZXNzYWdlJyxDTEVBTl9TVFJJTkcpOyAvLyBkZXByZWNhdGVkCiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xvc3R1bl9ncm91cCcsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaW5wdXRfY2FwdGNoYScsQ0xFQU5fU1RSSU5HKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdWJtaXQnLENMRUFOX1NUUklORyk7IC8vIGRlcHJlY2F0ZWQKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2FuY2VsJyxDTEVBTl9TVFJJTkcpOyAvLyBkZXByZWNhdGVkCiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lucHV0X2NvZGUnLENMRUFOX1NUUklORyk7IC8vIGRlcHJlY2F0ZWQKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndWlkJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjaGVja29ubHknLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lubGluZScsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbG9nb3V0dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xvZ2ludGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NoYW5nZXNldHRpbmdzdGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZvcmdvdHB3dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZvcmdvdHB3ZW1haWx0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbG9zdHVudGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xvc3R1bmNvbmZpcm10ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9yY2VuZXdwd3RlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd2aWV3dXNlcnRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhZnRlcnZlcmlmeXRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXNldHNlc3Npb250ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndmVyaWZ5Zm9ybXRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUC4nL2ZldV8uKi8nLENMRUFOX1NUUklORyk7CgogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2ZGXWV1XC92ZXJpZnljb2RlXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPHVpZD5bMC05XSspXC8oP1A8Y29kZT4uKj8pJC8nLGFycmF5KCdhY3Rpb24nPT4ndmVyaWZ5Y29kZScpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvdmVyaWZ5XC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPHVpZD5bMC05XSspXC8oP1A8Y29kZT4uKj8pJC8nLGFycmF5KCdhY3Rpb24nPT4ndmVyaWZ5b25seScpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvcmVzZXRcLyg/UDx1aWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J3Jlc2V0X3Nlc3Npb24nLCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnLCdjaGVja29ubHknPT4nMScpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvZWRpdFwvKD9QPHJldHVybmlkPlswLTldKykkLycsYXJyYXkoJ2FjdGlvbic9PidjaGFuZ2VzZXR0aW5ncycpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvbG9nb3V0XC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2xvZ291dCcpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvZm9yZ290XC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2ZvcmdvdHB3JykpOwogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2ZGXWV1XC9sb3N0dXNlcm5hbWVcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLGFycmF5KCdhY3Rpb24nPT4nbG9zdHVzZXJuYW1lJykpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQogICAgewogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBnZXRfdGFza3MoKQogICAgewogICAgICAgICR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZm9yY2Vsb2dvdXRfdGltZXMnKTsKICAgICAgICBpZiggJHRtcCAhPSAnJyApIHsKICAgICAgICAgICAgJG9iaiA9IG5ldyBGRVVGb3JjZWRMb2dvdXRUYXNrKCk7CiAgICAgICAgICAgIHJldHVybiAkb2JqOwogICAgICAgIH0KICAgICAgICAkdG1wID0gbnVsbDsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwoJcHVibGljIGZ1bmN0aW9uIGdldF9wcmV0dHlfdXJsKCRpZCwkYWN0aW9uLCRyZXR1cm5pZD0nJywkcGFyYW1zPWFycmF5KCksJGlubGluZT1mYWxzZSkKICAgIHsKICAgICAgICBpZiggJGFjdGlvbiA9PSAnZGVmYXVsdCcgKSB7CiAgICAgICAgICAgICRmb3JtID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmb3JtJyk7CiAgICAgICAgICAgIHN3aXRjaCggJGZvcm0gKSB7CiAgICAgICAgICAgIGNhc2UgJ2ZvcmdvdHB3JzoKICAgICAgICAgICAgICAgICRhY3Rpb24gPSAnZm9yZ290cHcnOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdsb2dpbic6CiAgICAgICAgICAgICAgICAkYWN0aW9uID0gJ2xvZ2luJzsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbG9zdHVzZXJuYW1lJzoKICAgICAgICAgICAgICAgICRhY3Rpb24gPSAnbG9zdHVzZXJuYW1lJzsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnY2hhbmdlc2V0dGluZ3MnOgogICAgICAgICAgICAgICAgcmV0dXJuICJmZXUvZWRpdC8kcmV0dXJuaWQiOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggJGFjdGlvbiA9PSAndmVyaWZ5b25seScgKSB7CiAgICAgICAgICAgICR1aWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3VpZCcpOwogICAgICAgICAgICAkY29kZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnY29kZScpOwogICAgICAgICAgICBpZiggJHVpZCA8IDEgfHwgISRjb2RlICkgcmV0dXJuOwogICAgICAgICAgICByZXR1cm4gImZldS92ZXJpZnkvJHJldHVybmlkLyR1aWQvJGNvZGUiOwogICAgICAgIH0KICAgICAgICBpZiggJGFjdGlvbiA9PSAnZm9yZ290cHcnKSB7CiAgICAgICAgICAgIHJldHVybiAiZmV1L2ZvcmdvdC8kcmV0dXJuaWQiOwogICAgICAgIH0gZWxzZSBpZiggJGFjdGlvbiA9PSAnbG9zdHVzZXJuYW1lJyApIHsKICAgICAgICAgICAgcmV0dXJuICJmZXUvbG9zdHVzZXJuYW1lLyRyZXR1cm5pZCI7CiAgICAgICAgfSBlbHNlaWYoICRhY3Rpb24gPT0gJ2xvZ291dCcgKSB7CiAgICAgICAgICAgICRyZXR1cm50byA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncmV0dXJudG8nKTsKICAgICAgICAgICAgaWYoICRyZXR1cm50byApIHJldHVybjsKICAgICAgICAgICAgcmV0dXJuICJmZXUvbG9nb3V0LyRyZXR1cm5pZCI7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJHBlcm0gPSAnJyApCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJywnMCcpID09ICcxJykgewogICAgICAgICAgICAkcDEgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnRkVVIEFkZCBVc2VycycgKTsKICAgICAgICAgICAgJHAyID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ0ZFVSBNb2RpZnkgVXNlcnMnICk7CiAgICAgICAgICAgICRwMyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdGRVUgUmVtb3ZlIFVzZXJzJyApOwogICAgICAgICAgICAkcDQgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnRkVVIEFkZCBHcm91cHMnICk7CiAgICAgICAgICAgICRwNSA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdGRVUgTW9kaWZ5IEdyb3VwcycgKTsKICAgICAgICAgICAgJHA2ID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ0ZFVSBNb2RpZnkgR3JvdXAgQXNzaWdubWVudHMnICk7CiAgICAgICAgICAgICRwNyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdGRVUgUmVtb3ZlIEdyb3VwcycgKTsKICAgICAgICAgICAgJHA5ID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ0ZFVSBNb2RpZnkgRnJvbnRFbmRVc2VyUHJvcHMnICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkcDEgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnQWRkIFVzZXJzJyApOwogICAgICAgICAgICAkcDIgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFVzZXJzJyApOwogICAgICAgICAgICAkcDMgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnUmVtb3ZlIFVzZXJzJyApOwogICAgICAgICAgICAkcDQgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnQWRkIEdyb3VwcycgKTsKICAgICAgICAgICAgJHA1ID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ01vZGlmeSBHcm91cHMnICk7CiAgICAgICAgICAgICRwNiA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgR3JvdXAgQXNzaWdubWVudHMnICk7CiAgICAgICAgICAgICRwNyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdSZW1vdmUgR3JvdXBzJyApOwogICAgICAgICAgICAkcDkgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IEZyb250RW5kVXNlclByb3BzJyApOwogICAgICAgIH0KCiAgICAgICAgJGNvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwogICAgICAgICRyZXQgPSAwOwogICAgICAgIHN3aXRjaCggJHBlcm0gKSB7CiAgICAgICAgY2FzZSAnJzogIC8vIGFueSBwZXJtaXNzaW9uIGZvciB3b3JraW5nIHdpdGggZ3JvdXBzIGFuZCB1c2VycwogICAgICAgICAgICAkcmV0ID0gKCRwMSB8fCAkcDIgfHwgJHAzIHx8ICRwNCB8fCAkcDUgfHwgJHA2IHx8ICRwNyB8fCAkcDkgKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3VzZXJzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDEgfHwgJHAyIHx8ICRwMyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdhZGR1c2VyJzoKICAgICAgICAgICAgJHJldCA9ICgkcDEpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnYWRkcHJvcCc6CiAgICAgICAgY2FzZSAnZWRpdHByb3AnOgogICAgICAgIGNhc2UgJ2RlbGV0ZXByb3AnOgogICAgICAgICAgICAkcmV0ID0gKCRwOSkgJiYgJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfRURJVFBST1BTKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3Byb3BlcnRpZXMnOgogICAgICAgICAgICAkcmV0ID0gKCRwOSkgJiYgJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfTElTVFBST1BTKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2xpc3R1c2Vycyc6CiAgICAgICAgICAgICRyZXQgPSAoJHAyIHx8ICRwMyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdsaXN0Z3JvdXBzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDUgfHwgJHA2KSAmJgogICAgICAgICAgICAgICAgKCRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGNvbnN1bWVyOjpDQVBBQklMSVRZX1VTRVNUREdST1VQUykgfHwgJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfTElTVEdST1VQUykpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZ3JvdXBzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDQgfHwgJHA1IHx8ICRwNykgJiYKICAgICAgICAgICAgICAgICgkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMpIHx8ICRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGNvbnN1bWVyOjpDQVBBQklMSVRZX0xJU1RHUk9VUFMpKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2FkZGdyb3VwJzoKICAgICAgICAgICAgJHJldCA9ICgkcDQpICYmICgkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMpIHx8ICRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFMpKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3N0cmljdF9lZGl0Z3JvdXBzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDUgfHwgJHA2KSAmJiAoJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfVVNFU1RER1JPVVBTKSB8fCAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9FRElUR1JPVVBTKSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdlZGl0Z3JvdXBzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDUgfHwgJHA2KSAmJiAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMsJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFMsJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFBST1BTKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2VkaXR1c2Vycyc6CiAgICAgICAgICAgICRyZXQgPSAoJHAyKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3JlbW92ZWdyb3Vwcyc6CiAgICAgICAgICAgICRyZXQgPSAoJHA3KSAmJiAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMsJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFMpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAncmVtb3ZldXNlcnMnOgogICAgICAgICAgICAkcmV0ID0gKCRwMyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd1c2Vyc25ncm91cHMnOgogICAgICAgICAgICAkcmV0ID0gKCRwMSB8fCAkcDIgfHwgJHAzIHx8ICRwNCB8fCAkcDUgfHwgJHA2IHx8ICRwNyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkcmV0ID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJldDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnLCcwJykgPT0gJzEnKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgQWRkIEdyb3VwcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgTW9kaWZ5IEdyb3VwcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgUmVtb3ZlIEdyb3VwcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgQWRkIFVzZXJzJykgfHwKICAgICAgICAgICAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0ZFVSBNb2RpZnkgVXNlcnMnKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRkVVIFJlbW92ZSBVc2VycycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgTW9kaWZ5IEZyb250RW5kVXNlclByb3BzJyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRkIEdyb3VwcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgR3JvdXBzJykgfHwKICAgICAgICAgICAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1JlbW92ZSBHcm91cHMnKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRkIFVzZXJzJykgfHwKICAgICAgICAgICAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBVc2VycycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdSZW1vdmUgVXNlcnMnKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEZyb250RW5kVXNlclByb3BzJyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbk1lbnVJdGVtcygpCiAgICB7CiAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCcnKSApICRvdXRbXSA9IFxDbXNBZG1pbk1lbnVJdGVtOjpmcm9tX21vZHVsZSgkdGhpcyk7CiAgICAgICAgaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSB7CiAgICAgICAgICAgICRvYmogPSBuZXcgQ21zQWRtaW5NZW51SXRlbSgpOwogICAgICAgICAgICAkb2JqLT5tb2R1bGUgPSAkdGhpcy0+R2V0TmFtZSgpOwogICAgICAgICAgICAkb2JqLT5zZWN0aW9uID0gJ3NpdGVhZG1pbic7CiAgICAgICAgICAgICRvYmotPnRpdGxlID0gJHRoaXMtPkxhbmcoJ3RpdGxlX2FkbWlubmF2X3NldHRpbmdzJyk7CiAgICAgICAgICAgICRvYmotPmRlc2NyaXB0aW9uID0gJHRoaXMtPkxhbmcoJ2Rlc2NfYWRtaW5uYXZfc2V0dGluZ3MnKTsKICAgICAgICAgICAgJG9iai0+YWN0aW9uID0gJ2FkbWluX3NldHRpbmdzJzsKICAgICAgICAgICAgJG9iai0+dXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJ20xXycsJG9iai0+YWN0aW9uKTsKICAgICAgICAgICAgJG91dFtdID0gJG9iajsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogICAgewogICAgICAgIGVjaG8gJHRoaXMtPkRpc3BsYXlFcnJvck1lc3NhZ2UoJG1lc3NhZ2UpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCA9IC0xKQogICAgewogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydmZXVfZW5jJ10pICkgewogICAgICAgICAgICAvLyByZXN0b3JlIHBhcmFtZXRlcnMgc2F2ZWQgaW4gdGhlIHNlc3Npb24gb24gcmVkaXJlY3QuCiAgICAgICAgICAgICRzaWcgPSAkcGFyYW1zWydmZXVfZW5jJ107CiAgICAgICAgICAgIHVuc2V0KCRwYXJhbXNbJ2ZldV9lbmMnXSk7CiAgICAgICAgICAgIGlmKCBpc3NldCgkX1NFU1NJT05bJHNpZ10pICkgewogICAgICAgICAgICAgICAgJHRtcCA9ICRfU0VTU0lPTlskc2lnXTsKICAgICAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlskc2lnXSk7CiAgICAgICAgICAgICAgICAkcGFyYW1zID0gYXJyYXlfbWVyZ2UoJHRtcCwkcGFyYW1zKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoICRhY3Rpb24gPT0gJ2RlZmF1bHQnICkgewogICAgICAgICAgICAkZm9ybSA9ICdsb2dpbic7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+TG9nZ2VkSW5JZCgpICkgJGZvcm0gPSAnbG9nb3V0JzsKICAgICAgICAgICAgJGZvcm0gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Zvcm0nLCRmb3JtKTsKICAgICAgICAgICAgc3dpdGNoKCAkZm9ybSApIHsKICAgICAgICAgICAgY2FzZSAnbG9naW4nOgogICAgICAgICAgICBjYXNlICdmb3Jnb3Rwdyc6CiAgICAgICAgICAgIGNhc2UgJ3NpbGVudCc6CiAgICAgICAgICAgIGNhc2UgJ2NoYW5nZXNldHRpbmdzJzoKICAgICAgICAgICAgY2FzZSAnbG9zdHVzZXJuYW1lJzoKICAgICAgICAgICAgICAgICRhY3Rpb24gPSAkZm9ybTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbG9nb3V0JzoKICAgICAgICAgICAgICAgICRhY3Rpb24gPSAnbG9nb3V0Zm9ybSc7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjY2VwdGlvbigiJGZvcm0gaXMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgdGhlIGZvcm0gcGFyYW1ldGVyIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHN3aXRjaCAoJGFjdGlvbikgewogICAgICAgIGNhc2UgJ2NoYW5nZXNldHRpbmdzX3VybCc6CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBwYXJlbnQ6OkRvQWN0aW9uKCRhY3Rpb24sJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICovCiAgICBmdW5jdGlvbiBteVJlZGlyZWN0KCAkaWQsICRhY3Rpb24sICRyZXR1cm5pZCwgJHBhcmFtcyA9IGFycmF5KCksICRpZ25vcmVfcmV0dXJudG8gPSBmYWxzZSApCiAgICB7CiAgICAgICAgLy8gZmluZCBhbnkgcGFyYW1ldGVyIHZhbHVlcyB0aGF0IGFyZSBhcnJheXMKICAgICAgICAvLyBhdXRvbWF0aWNhbGx5IHN0b3JlIHRoaXMgZGF0YSBpbiB0aGUgc2Vzc2lvbgogICAgICAgIHVuc2V0KCRwYXJhbXNbJ2FjdGlvbiddLCRwYXJhbXNbJ3JldHVybmlkJ10pOwoKICAgICAgICAkc2lnID0gbWQ1KF9fTUVUSE9EX18udGltZSgpLnNlcmlhbGl6ZSgkcGFyYW1zKSk7CiAgICAgICAgJF9TRVNTSU9OWyRzaWddID0gJHBhcmFtczsKICAgICAgICAkcGFyYW1zID0gWyAnZmV1X2VuYycgPT4gJHNpZyBdOwogICAgICAgICR0aGlzLT5SZWRpcmVjdCggJGlkLCAkYWN0aW9uLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgICB7CiAgICAgICAgJHR4dCA9IHBhcmVudDo6R2V0SGVhZGVySFRNTCgpOwogICAgICAgICR0bXBsID08PDxFT1QKe0pRdWVyeVRvb2xzIGFjdGlvbj0ncmVxdWlyZScgbGliPSd0YWJsZXNvcnRlcixKUXVlcnlUb29scyd9CntKUXVlcnlUb29scyBhY3Rpb249J3BsYWNlbWFya2VyJ30KRU9UOwoKICAgICAgICAkb2JqID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdKUXVlcnlUb29scycsJzEuMicpOwogICAgICAgIGlmKCBpc19vYmplY3QoJG9iaikgKSB7CiAgICAgICAgICAgICRzbWFydHkgPSBTbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAgICAgJHR4dCAuPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRtcGwpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHR4dDsKICAgIH0KCiAgICAvKioKICAgICAqIHNlbmQgYW4gZXZlbnQgdGhhdCB0aGlzIHVzZXIgYWNjb3VudCBoYXMgYmVlbiBleHBpcmVkCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIE5vdGlmeUV4cGlyZWRVc2VyKCAkdXNlcmlkICkKICAgIHsKICAgICAgICAkdXNlciA9ICR0aGlzLT5HZXRVc2VySW5mbyggJHVzZXJpZCApOwogICAgICAgIGlmKCAkdXNlclswXSA9PSBGQUxTRSApIHJldHVybjsgLy8gdGhpcyBzaG91bGQgYmUgYW4gZXJyb3IKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICRwYXJtc1snaWQnXSA9ICR1c2VyaWQ7CiAgICAgICAgJHBhcm1zWyd1c2VybmFtZSddID0gJHVzZXJbMV1bJ3VzZXJuYW1lJ107CiAgICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25FeHBpcmVVc2VyJywkcGFybXMpOwogICAgICAgICR0aGlzLT5fU2VuZE5vdGlmaWNhdGlvbkVtYWlsKCdPbkV4cGlyZVVzZXInLCRwYXJtcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGlzX2FsbG93ZWRfdXBsb2FkKCRzcmNmaWxlKQogICAgewogICAgICAgICRhbGxvd2VkX2V4dGVuc2lvbnM9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucycsJy5naWYsLnBuZywuanBnJyk7CiAgICAgICAgJHRtcCA9IGV4cGxvZGUoICcsJywgJGFsbG93ZWRfZXh0ZW5zaW9ucyk7CgogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJGV4dCApIHsKICAgICAgICAgICAgaWYoIGVuZHN3aXRoKCAkc3JjZmlsZSwgJGV4dCApICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICogQHRvZG86IG1vdmUgbWUgb3V0IG9mIGhlcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF91cGxvYWRfZGlydXJsKCkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRkbiA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfZGVzdGluYXRpb25fcGF0aCcsICdmZXVzZXJzJykpOwogICAgICAgICRkbiA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRkbik7CiAgICAgICAgcmV0dXJuICRkbjsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VwbG9hZF9kaXJuYW1lKCkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRkbiA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnLCAnZmV1c2VycycpKTsKICAgICAgICByZXR1cm4gJGRuOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXBsb2FkX2ZpbGVuYW1lKCRmbGRuYW1lLCRzcmNmaWxlKQogICAgewogICAgICAgIC8vIGdldCB0aGUgZmlsZW5hbWUgb25seSwgbm90IHRoZSBkaXJlY3RvcnkKICAgICAgICAkZXh0ID0gc3RyY2hyKCRzcmNmaWxlLCcuJyk7CiAgICAgICAgcmV0dXJuIG1kNShfX0ZJTEVfXy5zZXNzaW9uX2lkKCkuJGZsZG5hbWUuJHNyY2ZpbGUpLiRleHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIE1hbmFnZUltYWdlVXBsb2FkKCRrZXksICRmbGRuYW1lKQogICAgewogICAgICAgICRyZXMgPSBcZmV1X3V0aWxzOjpjaGVja1VwbG9hZCgka2V5KTsKICAgICAgICBpZiggISRyZXNbMF0gKSByZXR1cm4gJHJlczsKCiAgICAgICAgJGZpbGUgPSAkX0ZJTEVTWyRrZXldOwogICAgICAgIC8vIHNldCB0aGUgZGVzdGluYXRpb24gbmFtZQogICAgICAgICRkZXN0RGlyID0gJHRoaXMtPmdldF91cGxvYWRfZGlybmFtZSgpOwogICAgICAgICRkZXN0bmFtZSA9ICR0aGlzLT5nZXRfdXBsb2FkX2ZpbGVuYW1lKCRmbGRuYW1lLCRmaWxlWyduYW1lJ10pOwoKICAgICAgICAvLyBDcmVhdGUgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBpZiBuZWNlc3NhcnkKICAgICAgICBAbWtkaXIoJGRlc3REaXIsMDc3NyxUUlVFKTsKICAgICAgICBAdG91Y2goJGRlc3RkaXIuJy9pbmRleC5odG1sJyk7CiAgICAgICAgaWYoICFpc193cml0YWJsZSggJGRlc3REaXIgKSApIHJldHVybiBbIGZhbHNlLCAkbW9kLT5MYW5nKCdlcnJvcl9kZXN0aW5hdGlvbm5vdHdyaXRhYmxlJykgXTsKICAgICAgICBAY21zX21vdmVfdXBsb2FkZWRfZmlsZSgkZmlsZVsndG1wX25hbWUnXSwgY21zX2pvaW5fcGF0aCgkZGVzdERpciwkZGVzdG5hbWUpKTsKCiAgICAgICAgcmV0dXJuIFsgdHJ1ZSwgJGRlc3RuYW1lIF07CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfU2VuZE5vdGlmaWNhdGlvbkVtYWlsKCRldmVudCwkcGFyYW1zKQogICAgewogICAgICAgICRub3RpZmljYXRpb25zID0gZXhwbG9kZSgnLCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbnMnLCcnKSk7CiAgICAgICAgaWYoICFpbl9hcnJheSggJGV2ZW50LCAkbm90aWZpY2F0aW9ucyApICkgcmV0dXJuOwogICAgICAgICRkZXN0ID0gdHJpbSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbm90aWZpY2F0aW9uX2FkZHJlc3MnKSk7CiAgICAgICAgaWYoIGVtcHR5KCRkZXN0KSApIHJldHVybjsKCiAgICAgICAgLy8gU2V0dXAgc29tZSBzbWFydHkgc3R1ZmYuCiAgICAgICAgJHNtYXJ0eSA9IFxTbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2V2ZW50JywkZXZlbnQpOwogICAgICAgICRzbWFydHktPmFzc2lnbignZXZlbnRfbmFtZScsJHRoaXMtPkxhbmcoJGV2ZW50KSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwbGFpbnRleHRfZXZlbnQnLCR0aGlzLT5MYW5nKCdldmVudCcpKTsKICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3BhcmFtXycuJGtleSwkdmFsdWUpOwogICAgICAgIH0KICAgICAgICAkdGV4dCA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ25vdGlmaWNhdGlvbl90ZW1wbGF0ZScpOwoKICAgICAgICAkY21zbWFpbGVyID0gbmV3IFxjbXNfbWFpbGVyKCk7CiAgICAgICAgJGNtc21haWxlci0+cmVzZXQoKTsKICAgICAgICAkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCRkZXN0KTsKICAgICAgICAkY21zbWFpbGVyLT5TZXRTdWJqZWN0KCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdub3RpZmljYXRpb25fc3ViamVjdCcpKTsKICAgICAgICAkY21zbWFpbGVyLT5TZXRCb2R5KCR0ZXh0KTsKICAgICAgICAkY21zbWFpbGVyLT5Jc0hUTUwoZmFsc2UpOwogICAgICAgICRjbXNtYWlsZXItPlNlbmQoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0UG9zdExvZ2luVVJMKCR1cmwpCiAgICB7CiAgICAgICAgaWYoICR1cmwgKSAkdGhpcy0+c2Vzc2lvbl9wdXQoJ3Bvc3Rsb2dpbl91cmwnLCR1cmwpOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRQb3N0TG9naW5VUkwoKQogICAgewogICAgICAgICRvdXQgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJ3Bvc3Rsb2dpbl91cmwnKTsKICAgICAgICAkdGhpcy0+c2Vzc2lvbl9jbGVhcigncG9zdGxvZ2luX3VybCcpOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy8gIEFQSSBGVU5DVElPTlMgLy8KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFkZF9oaXN0b3J5KCAkdWlkLCAkbWVzc2FnZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPmFkZF9oaXN0b3J5KCAkdWlkLCAkbWVzc2FnZSApOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGEgbmV3IGdyb3VwCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgZ3JvdXAgbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAkZGVzY3JpcHRpb24gVGhlIGdyb3VwIGRlc2NyaXB0aW9uCiAgICAgKiBAcmV0dXJuIGFycmF5IEFycmF5IGNvbnRhaW5pbmcgdHdvIGVsZW1lbnRzLiAgVGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIHJldHVybiBzdGF0dXMgb2YgdGhlIGZ1bmN0aW9uIChib29sZWFuKSwgdGhlIHNlY29uZCBlbGVtZW50IGlzIGVpdGhlciBhIG1lc3NhZ2UgaW4gdGhlCiAgICAgKiAgICBjYXNlIG9mIGFuIGVycm9yLCBvciB0aGUgZ3JvdXAgaWQgKGludGVnZXIpIG9uIHN1Y2Nlc3MuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEFkZEdyb3VwKCAkbmFtZSwgJGRlc2NyaXB0aW9uICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+QWRkR3JvdXAoICRuYW1lLCAkZGVzY3JpcHRpb24gKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBBZGQgYSBuZXcgZ3JvdXAgcHJvcGVydHkgcmVsYXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZ3JwaWQgVGhlIGdyb3VwIGlkCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwcm9wbmFtZSBUaGUgcHJvcGVydHkgbmFtZQogICAgICogQHBhcmFtIGludCAkc29ydGtleSBUaGUgc29ydGluZyBvcmRlciBmb3IgdGhpcyByZWxhdGlvbnNoaXAKICAgICAqIEBwYXJhbSBpbnQgJHJlcXVpcmVkIFRoZSByZXF1aXJlZCBmbGFnIGZvciB0aGlzIHJlbGF0aW9uc2hpcC4gIDA9PW9mZiAxPT1vcHRpb25hbCwgMj09cmVxdWlyZWQKICAgICAqIEBwYXJhbSBib29sZWFuICRsb3N0dW4gV2V0aGVyIHRoaXMgcmVsYXRpb25zaGlwIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgbG9zdHVuIHN0dWZmIChkZXByZWNhdGVkKQogICAgICogQHJldHVybiBhcnJheSBGaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyB0aGUgcmV0dXJuIHN0YXR1cywgc2Vjb25kIGVsZW1lbnQgaXMgdGhlIGVycm9yIG1lc3NhZ2UsIGlmIGFueS4KICAgICAqLwogICAgZnVuY3Rpb24gQWRkR3JvdXBQcm9wZXJ0eVJlbGF0aW9uKCAkZ3JwaWQsICRwcm9wbmFtZSwgJHNvcnRrZXksICRsb3N0dW4sICRyZXF1aXJlZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkFkZEdyb3VwUHJvcGVydHlSZWxhdGlvbiggJGdycGlkLCAkcHJvcG5hbWUsICRzb3J0a2V5LCAkbG9zdHVuLCAkcmVxdWlyZWQgKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBBZGQgYSBuZXcgcHJvcGVydHkgZGVmaW5pdGlvbgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHByb3BlcnR5IG5hbWUKICAgICAqIEBwYXJhbSBzdHJpbmcgJHByb21wdCBUaGUgcHJvcGVydHkgcHJvbXB0IGZvciB1c2UgaW4gdmFyaW91cyB2aWV3cwogICAgICogQHBhcmFtIGludCAkdHlwZSBUaGUgZmllbGQgdHlwZQogICAgICogQHBhcmFtIGludCAkbGVuZ3RoIFRoZSBkZWZhdWx0IGxlbmd0aCBmb3IgcmVuZGVyaW5nIHRoZSBwcm9wZXJ0eQogICAgICogQHBhcmFtIGludCAkbWF4bGVuZ3RoIFRoZSBtYXhpbXVtIGxlbmd0aCBmb3IgcmVuZGVyaW5nIHRoZSBwcm9wZXJ0eQogICAgICogQHBhcmFtIHN0cmluZyAkYXR0cmlicyBBIHNlcmlhbGl6ZWQgYXJyYXkgb2YgYXR0cmlidXRlcyBmb3IgdGhlIHByb3BlcnR5CiAgICAgKiBAcGFyYW0gYm9vbCAkZm9yY2VfdW5pcXVlIFdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eSBzaG91bGQgYmUgdW5pcXVlIGFjcm9zcyBhbGwgdXNlcnMuCiAgICAgKiBAcGFyYW0gYm9vbCAkZW5jcnlwdCBXaGV0aGVyIG9yIG5vdCB0aGlzIGRhdGEgc2hvdWxkIGJlIGVuY3J5cHRlZCBpbiB0aGUgZGF0YWJhc2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEFkZFByb3BlcnR5RGVmbiggJG5hbWUsICRwcm9tcHQsICR0eXBlLCAkbGVuZ3RoLCAkbWF4bGVuZ3RoID0gMCwgJGF0dHJpYnMgPSAnJywgJGZvcmNlX3VuaXF1ZSA9IDAsICRlbmNyeXB0ID0gMCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkFkZFByb3BlcnR5RGVmbiggJG5hbWUsICRwcm9tcHQsICR0eXBlLCAkbGVuZ3RoLCAkbWF4bGVuZ3RoLCAkYXR0cmlicywgJGZvcmNlX3VuaXF1ZSwgJGVuY3J5cHQgICk7CiAgICB9CgoKICAgIC8qKgogICAgICogU2V0IHNlbGVjdCBvcHRpb25zIGZvciBhIGRyb3Bkb3duL3JhZGlvLWJ1dHRvbi1ncm91cCBvciBtdWx0aXNlbGVjdCBwcm9wZXJ0eS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gYXJyYXkgJHNlbG9wdGlvbnMgdGhlIFNlbGVjdCBvcHRpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBBZGRTZWxlY3RPcHRpb25zKCAkbmFtZSwgJHNlbG9wdGlvbnMgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5BZGRTZWxlY3RPcHRpb25zKCAkbmFtZSwgJHNlbG9wdGlvbnMgKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBBZGQgYSB1c2VyIHRvIHRoZSBzeWV0ZW0KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBuZXcgdXNlcm5hbWUKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkIFRoZSBwbGFpbiB0ZXh0IHBhc3N3b3JkCiAgICAgKiBAcGFyYW0gaW50ICRleHBpcmVzIHRoZSBVbml4IHRpbWVzdGFtcCBvZiB0aGUgZXhwaXJ5IGRhdGUKICAgICAqIEByZXR1cm4gYXJyYXkgVGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHN1Y2Nlc3Mgb3IgZmFpbHVyZSwgdGhlIHNlY29uZCBlbGVtZW50IGlzIGFuIGVycm9yIG1lc3NhZ2UsIG9yIHRoZSBuZXcgVUlELgogICAgICovCiAgICBmdW5jdGlvbiBBZGRVc2VyKCAkbmFtZSwgJHBhc3N3b3JkLCAkZXhwaXJlcyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkFkZFVzZXIoICRuYW1lLCAkcGFzc3dvcmQsICRleHBpcmVzICk7CiAgICB9CgoKICAgIC8qKgogICAgICogQXNzaWduIHRoZSBzcGVjaWZpZWQgdXNlciB0byB0aGUgc3BlY2lmaWVkIGdyb3VwCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkIFRoZSB1c2VyIGlkZW50aWZpZXIKICAgICAqIEBwYXJhbSBpbnQgJGdpZCBUaGUgZ3JvdXAgaWRlbnRpZmllcgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEFzc2lnblVzZXJUb0dyb3VwKCAkdWlkLCAkZ2lkICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+QXNzaWduVXNlclRvR3JvdXAoICR1aWQsICRnaWQgKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIENvdW50VGVtcENvZGVSZWNvcmRzKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+Q291bnRUZW1wQ29kZVJlY29yZHMoKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBDb3VudCB0aGUgbnVtYmVyIG9mIG5vbiBkaXNhYmxlZCB1c2VycyBpbiBhIGdyb3VwLCBvciBpbiB0aGUgZW50aXJlIHN5c3RlbS4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRnaWQgT3B0aW9uYWwgZ3JvdXAgaWRlbnRpZmllci4KICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIGZ1bmN0aW9uIENvdW50VXNlcnNJbkdyb3VwKCAkZ2lkID0gJycgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Db3VudFVzZXJzSW5Hcm91cCggJGdpZCApOwogICAgfQoKCiAgICAvKioKICAgICAqIERlbGV0ZSBhbGwgcHJvcGVydHkgcmVsYXRpb25zIGZvciBhIGdyb3VwCiAgICAgKgogICAgICogQGludGVybmFsCiAgICAgKiBAcGFyYW0gaW50ICRncm91cGlkCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyB0aGUgYm9vbGVhbiByZXN1bHQsIHNlY29uZCBlbGVtZW50IChpZiBhbnkpIGlzIGFuIGVycm9yIG1lc3NhZ2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZUFsbEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZUFsbEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApOwogICAgfQoKCiAgICAvKioKICAgICAqIFBlcm1hbmVudGx5IHJlbW92ZSBhIHByb3BlcnR5CiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgcHJvcGVydHkgbmFtZQogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZVByb3BlcnR5RGVmbiggJG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5EZWxldGVQcm9wZXJ0eURlZm4oICRuYW1lICk7CiAgICB9CgoKICAgIC8qKgogICAgICogRGVsZXRlIGFsbCBwcm9wZXJ0eSBkZWZpbml0aW9ucy4KICAgICAqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlUHJvcGVydHlEZWZucygpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVByb3BlcnR5RGVmbnMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSB0aGUgc2VsZWN0IG9wdGlvbnMgKGlmIGFueSkgZm9yIGEgcHJvcGVydHkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLCB0aGUgc2Vjb25kIGVsZW1lbnQgKGlmIGFueSkgaXMgYW4gZXJyb3IgbWVzc2FnZS4KICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlU2VsZWN0T3B0aW9ucyggJG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5EZWxldGVTZWxlY3RPcHRpb25zKCAkbmFtZSApOwogICAgfQoKICAgIC8qKgogICAgICogQ29tcGxldGVseSBkZWxldGUgYSB1c2VyIGZyb20gdGhlIGRhdGFiYXNlLiAgSW5jbHVkaW5nIGFsbCBwcm9wZXJ0aWVzLCBncm91cCBtZW1iZXJzaGlwcywgZXRjLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZCBUaGUgdXNlciBpZGVudGlmaWVyIHRvIGRlbGV0ZS4KICAgICAqIEByZXR1cm4gYXJyYXkgVGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIGEgYm9vbGVhbiBzdGF0dXMsIHRoZSBzZWNvbmQgZWxlbWVudCAoaWYgYW55KSBpcyBhbiBlcnJvciBtZXNzYWdlLgogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVVc2VyRnVsbCggJHVpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVVzZXJGdWxsKCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZW1vdmUgYSBzcGVjaWZpZWQgcHJvcGVydHkgZm9yIGFsbCB1c2VycywgYnV0IGRvIG5vdCByZW1vdmUgdGhlIHByb3BlcnR5IGRlZmluaXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdGl0bGUgVGhlIHByb3BlcnR5IG5hbWUKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVVc2VyUHJvcGVydHlCeU5hbWUoICR0aXRsZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVVzZXJQcm9wZXJ0eUJ5TmFtZSgkdGl0bGUpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIGEgdXNlciBwcm9wZXJ0eSBmb3IgYSBzcGVjaWZpYyB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRpdGxlIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkYWxsIFdldGhlciBvciBub3QgdG8gZGVsZXRlIGFsbCBwcm9wZXJ0aWVzIGZvciB0aGUgdXNlci4KICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVVc2VyUHJvcGVydHkoJHRpdGxlLCRhbGw9ZmFsc2UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVVzZXJQcm9wZXJ0eSgkdGl0bGUsJGFsbCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBEZWxldGUgYWxsIHVzZXIgcHJvcGVydGllcywgZm9yIGFsbCB1c2VycwogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZUFsbFVzZXJQcm9wZXJ0aWVzKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+RGVsZXRlQWxsVXNlclByb3BlcnRpZXMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSBhbGwgdXNlciBwcm9wZXJ0aWVzIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdXNlcmlkIFRoZSB1c2VyaWQKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVBbGxVc2VyUHJvcGVydGllc0Z1bGwoJHVzZXJpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+RGVsZXRlQWxsVXNlclByb3BlcnRpZXNGdWxsKCR1c2VyaWQpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIHNwZWNpZmllZCB1c2VyIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlci4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZSBUaGUgcHJvcGVydHkgbmFtZQogICAgICogQHBhcmFtIGludCAkdXNlcmlkIFRoZSB1c2VyaWQKICAgICAqIEBwYXJhbSBib29sZWFuICRhbGwgV2V0aGVyIG9yIG5vdCB0byBkZWxldGUgYWxsIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlci4KICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlVXNlclByb3BlcnR5RnVsbCgkdGl0bGUsJHVzZXJpZCwkYWxsPWZhbHNlKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5EZWxldGVVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkdXNlcmlkLCRhbGwpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIGEgc3BlY2lmaWVkIGdyb3VwLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdpZCBUaGUgZ3JvdXAgaWRlbnRpZmllcgogICAgICogQHJldHVybiBhcnJheSBUaGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgYSBib29sZWFuIHN0YXR1cywgdGhlIHNlY29uZCBlbGVtZW50IChpZiBhbnkpIGlzIGFuIGVycm9yIG1lc3NhZ2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZUdyb3VwRnVsbCggJGdpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZUdyb3VwRnVsbCggJGdpZCApOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIHRoZSBzcGVjaWZpZWQgdXNlciBhY2NvdW50LgogICAgICoKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKiBAc2VlIERlbGV0ZVVzZXJGdWxsCiAgICAgKiBAcGFyYW0gaW50ICRpZCBUaGUgdWlkCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLCB0aGUgc2Vjb25kIGVsZW1lbnQgKGlmIGFueSkgaXMgYW4gZXJyb3IgbWVzc2FnZS4KICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlVXNlcigkaWQpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVVzZXIoICRpZCApOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBFeHBpcmVVc2VycygpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkV4cGlyZVVzZXJzKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEV4cGlyZVRlbXBDb2RlcyggJGV4cGlyeWNvZGUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5FeHBpcmVUZW1wQ29kZXMoICRleHBpcnljb2RlICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZW5lcmF0ZSBhIHJhbmRvbSB1c2VybmFtZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHByZWZpeCBhbiBvcHRpb25hbCBwcmVmaXggZm9yIHRoZSB1c2VybmFtZQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgZnVuY3Rpb24gR2VuZXJhdGVSYW5kb21Vc2VybmFtZSggJHByZWZpeCA9ICd1c2VyJyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdlbmVyYXRlUmFuZG9tVXNlcm5hbWUoICRwcmVmaXggKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhbGwgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZCBUaGUgdXNlciBpZGVudGlmaWVyCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSB1c2VyIHByb3BlcnRpZXMgYXMgcmVhZCBmcm9tIHRoZSBkYXRhYmFzZS4KICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlclByb3BlcnRpZXMoJHVpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0VXNlclByb3BlcnRpZXMoJHVpZCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBsaXN0IG9mIHRoZSBzcGVjaWZpZWQgdXNlcnMgZ3JvdXBzIChpZiBhbnkpCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdXNlcmlkIFRoZSB1c2VyIGlkZW50aWZpZXIKICAgICAqIEByZXR1cm4gbnVsbHxhcnJheSBJZiB0aGUgdXNlciBpcyBhIG1lbWJlciBvZiBhbnkgZ3JvdXBzIHRoZSByZXN1bHRpbmcgYXJyYXkgd2lsbCBjb250YWlsIHRoZSB1c2VyaWQsIGFuZCB0aGUgZ3JvdXBpZCBpbiBlYWNoIGVsZW1lbnQgb2YgdGhlIHJldHVybmVkIGFycmF5LgogICAgICovCiAgICBmdW5jdGlvbiBHZXRNZW1iZXJHcm91cHNBcnJheSgkdXNlcmlkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdXNlcmlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRpdGxlIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gbWl4ZWQgJGRlZmF1bHR2YWx1ZSBBbiBvcHRpb25hbCBkZWZhdWx0IHZhbHVlIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc2V0IGZvciB0aGUgdXNlci4gIE5vdGUsIGFuIGVtcHR5IHN0cmluZyBtYXkgYmUgYSB2YWxpZCBwcm9wZXJ0eSB2YWx1ZS4KICAgICAqIEByZXR1cm4gc3RyaW5nIChBbGwgcHJvcGVydGllcyBhcmUgc3RvcmVkIGFzIHN0cmluZ3MgaW4gdGhlIGRhdGFiYXNlKQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHkoJHRpdGxlLCRkZWZhdWx0dmFsdWU9ZmFsc2UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldFVzZXJQcm9wZXJ0eSggJHRpdGxlLCAkZGVmYXVsdHZhbHVlICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBwcm9wZXJ0eSB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCB1c2VyIGlkCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdGl0bGUgdGhlIHByb3BlcnR5IG5hbWUKICAgICAqIEBwYXJhbSBpbnQgJHVzZXJpZCBUaGUgdXNlciBpZGVudGlmaWVyCiAgICAgKiBAcGFyYW0gbWl4ZWQgJGRlZmF1bHR2YWx1ZSBBbiBvcHRpb25hbCBkZWZhdWx0IHZhbHVlIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc2V0IGZvciB0aGUgdXNlci4gIE5vdGUsIGFuIGVtcHR5IHN0cmluZyBtYXkgYmUgYSB2YWxpZCBwcm9wZXJ0eSB2YWx1ZS4KICAgICAqIEByZXR1cm4gc3RyaW5nIChBbGwgcHJvcGVydGllcyBhcmUgc3RvcmVkIGFzIHN0cmluZ3MgaW4gdGhlIGRhdGFiYXNlKQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkdXNlcmlkLCAkZGVmYXVsdHZhbHVlPWZhbHNlKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkdXNlcmlkLCRkZWZhdWx0dmFsdWUpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyVGVtcENvZGUoICR1aWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VyVGVtcENvZGUoICR1aWQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZ3JvdXAgcHJvcGVydHkgcmVsYXRpb25zIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LCBmb3IgYWxsIGdyb3Vwcy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZSB0aGUgcHJvcGVydHkgdGl0bGUuCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoICR0aXRsZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoICR0aXRsZSApOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBwcm9wZXJ0eSByZWxhdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlcgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHlSZWxhdGlvbnMoJHVpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0VXNlclByb3BlcnR5UmVsYXRpb25zKCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHByb3BlcnR5IHJlbGF0aW9ucyBmb3IgdGhlIHNwZWNpZmllZCBncm91cAogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdycGlkIFRoZSBncm91cCBpZGVudGlmaWVyCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBncm91cCBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBncm91cAogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdpZCBUaGUgZ3JvdXAgaWRlbnRpZmllcgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRHcm91cEluZm8oICRnaWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRHcm91cEluZm8oICRnaWQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB1c2VyIGhpc3RvcnkgcmVjb3JkcywgYnkgZGVzY2VuZGluZyBkYXRlLgogICAgICogV2FybmluZzogVGhpcyBjb3VsZCBwb3RlbnRpYWxseSByZXR1cm4gYSB2ZXJ5IGxhcmdlIGFycmF5LgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIHN0cmluZyAkYWN0aW9uIEFuIG9wdGlvbmFsIGFjdGlvbiBmaWx0ZXIgKHN1Y2ggYXMgbG9naW4gb3IgbG9nb3V0KQogICAgICogQHBhcmFtIGludCAkY291bnQgQW4gb3B0aW9uYWwgbGltaXQKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlckhpc3RvcnkoICR1aWQsICRhY3Rpb24gPSAnJywgJGNvdW50ID0gLTEgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VySGlzdG9yeSgkdWlkLCRhY3Rpb24sJGNvdW50KTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGxpc3Qgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlcnMuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkbm90X2FjdGl2ZV9zaW5jZSBBbiBvcHRpb25hbCB1bml4IHRpbWVzdGFtcCBmaWx0ZXIgaW5kaWNhdGluZyBsYXN0IGFjdGl2aXR5LgogICAgICogQHJldHVybiBpbnRbXSBBcnJheSBvZiBsb2dnZWQgaW4gdWlkcy4KICAgICAqLwogICAgZnVuY3Rpb24gR2V0TG9nZ2VkSW5Vc2VycyggJG5vdF9hY3RpdmVfc2luY2UgPSAnJyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldExvZ2dlZEluVXNlcnMoJG5vdF9hY3RpdmVfc2luY2UpOwogICAgfQoKCiAgICAvKioKICAgICAqIEBpdG5vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0QnVsa1VzZXJJbmZvKCAkdWlkcywgJGRlZXAgPSBUUlVFICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0QnVsa1VzZXJJbmZvKCR1aWRzLCRkZWVwKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBHZXQgdXNlciBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIGJvb2wgJGRlZXAgT3B0aW9uYWxseSBhbHNvIHJldHJpZXZlIHByb3BlcnR5IHZhbHVlcy4KICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlckluZm8oICR1aWQsICRkZWVwID0gRkFMU0UgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VySW5mbyggJHVpZCwgJGRlZXAgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB1c2VyIGluZm9ybWF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIsIGJ5IGhpcyB1c2VybmFtZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZQogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VySW5mb0J5TmFtZSggJHVzZXJuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0VXNlckluZm9CeU5hbWUoICR1c2VybmFtZSApOwogICAgfQoKCiAgICAvKioKICAgICAqIEdldCBpbmZvIGZvciB0aGUgdXNlcnMgYnkgdGhlaXIgZ3JvdXAuCiAgICAgKiBXYXJuaW5nOiBUaGlzIGNvdWxkIHBvdGVudGlhbGx5IHJldHVybiBhbG90IG9mIGRhdGEuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZ2lkCiAgICAgKiBAcmV0dXJuIGFycmF5IEFycmF5IG9mIHVzZXJpbmZvIGRhdGEuICBPbmUgZWxlbWVudCBwZXIgdXNlci4KICAgICAqLwogICAgZnVuY3Rpb24gR2V0RnVsbFVzZXJzSW5Hcm91cCgkZ2lkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRGdWxsVXNlcnNJbkdyb3VwKCRnaWQpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGRlcHJlY2F0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlcnNJbkdyb3VwKCAkZ2lkID0gJycsICRyZWdleCA9ICcnLCAkbGltaXQgPSAnJywgJHNvcnQgPSAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByb3BlcnR5ID0gJycsICRwcm9wcmVnZXggPSAnJywgJGxvZ2dlZGlub25seSA9IDAsICRzdGFydF9yZWNvcmQgPSAwKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2Vyc0luR3JvdXAoICRnaWQsICRyZWdleCwgJGxpbWl0LCAkc29ydCwgJHByb3BlcnR5LCAkcHJvcHJlZ2V4LCAkbG9nZ2VkaW5vbmx5LCAkc3RhcnRfcmVjb3JkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICovCiAgICBmdW5jdGlvbiBnZXRfbGFzdHVzZXJxdWVyeV9tYXRjaGVzKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+Z2V0X2xhc3R1c2VycXVlcnlfbWF0Y2hlcygpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGRlcHJlY2F0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0X2xhc3R1c2VycXVlcnlfY291bnQoKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5nZXRfbGFzdHVzZXJxdWVyeV9jb3VudCgpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGRlcHJlY2F0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gcmVzZXRfbGFzdHVzZXJxdWVyeSgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPnJlc2V0X2xhc3R1c2VycXVlcnkoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRlc3QgaWYgdGhlIGd1aWQgc3BlY2lmaWVkIGlzIGEgdmFsaWQsIGV4aXN0aW5nIGdyb3VwIGlkLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdpZAogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdyb3VwRXhpc3RzQnlJRCggJGdpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdyb3VwRXhpc3RzQnlJRCggJGdpZCApOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBpZiB0aGUgZ3JvdXAgbmFtZSBzcGVjaWZpZWQgaXMgYSB2YWxpZCwgZXhpc3RpbmcgZ3JvdXAuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgZ3JvdXAgbmFtZS4KICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBmdW5jdGlvbiBHcm91cEV4aXN0c0J5TmFtZSggJG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Hcm91cEV4aXN0c0J5TmFtZSggJG5hbWUgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBlbWFpbCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIGZvciB0aGlzIHJlcXVlc3QuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgZnVuY3Rpb24gTG9nZ2VkSW5FbWFpbCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkxvZ2dlZEluRW1haWwoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgc3BlY2lmaWVkIHVzZXIuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBHZXRFbWFpbCgkdWlkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRFbWFpbCgkdWlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBDbGVhclByb3BlcnR5Q2FjaGUoKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5DbGVhclByb3BlcnR5Q2FjaGUoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhbGwgcHJvcGVydHkgZGVmaW5pdGlvbnMuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRQcm9wZXJ0eURlZm5zKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0UHJvcGVydHlEZWZucygpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGEgcHJvcGVydHkgZGVmaW5pdGlvbiByZWNvcmQgYnkgaXRzIG5hbWUKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIHRoZSBwcm9wZXJ0eSBuYW1lLgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRQcm9wZXJ0eURlZm4oICRuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0UHJvcGVydHlEZWZuKCAkbmFtZSApOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHNlbGVjdCBvcHRpb25zIGZvciBhIHByb3BlcnR5IGFzIGEgc2ltcGxlLCBvciBhIDIgZGltZW5zaW9uYWwgYXJyYXkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gaW50ICRkaW0gIElmIDEsIHJldHVybiBhIHNpbXBsZSBhc3NvY2lhdGl2ZSBhcnJheS4gIElmIDIsIHJldHVybiBhIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5IHdpdGggcHJvcGVydGllcyBvcHRpb25fbmFtZSwgb3B0aW9uX3RleHQgYW5kIGNvbnRyb2xfbmFtZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRTZWxlY3RPcHRpb25zKCAkbmFtZSwgJGRpbSA9IDEgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRTZWxlY3RPcHRpb25zKCAkbmFtZSwgJGRpbSApOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB1c2VybmFtZSBmb3IgYSBzcGVjaWZpZWQgdWlkCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdXNlcmlkCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyTmFtZSgkdXNlcmlkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VyTmFtZSgkdXNlcmlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgdXNlcmlkIGZvciBhIHNwZWNpZmllZCB1c2VybmFtZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCiAgICAgKiBAcmV0dXJuIGl0CiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldFVzZXJJRCgkdXNlcm5hbWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldFVzZXJJRCgkdXNlcm5hbWUpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBncm91cCBuYW1lIGZvciBhIHNwZWNpZmllZCBncm91cCBpZAogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdyb3VwaWQKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEdyb3VwTmFtZSgkZ3JvdXBpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0R3JvdXBOYW1lKCAkZ3JvdXBpZCApOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZXNjcmlwdGlvbmYgb3IgYSBzcGVjaWZpZWQgZ3JvdXAgaWQKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRncm91cGlkCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBHZXRHcm91cERlc2MoJGdyb3VwaWQpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldEdyb3VwRGVzYyggJGdyb3VwaWQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGxpc3Qgb2YgdGhlIGdyb3VwcywgZm9yIHVzZSBpbiBhIGRyb3Bkb3duLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gR2V0R3JvdXBMaXN0KCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0R3JvdXBMaXN0KCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBmdWxsIGdyb3VwIGxpc3QsIHdpdGggYWxsIGluZm9ybWF0aW9uIGFib3V0IHRoYXQgZ3JvdXAuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2wgJHdpdGhfY291bnQgb3B0aW9uYWxseSBpbmNsdWRlIG1lbWJlcnNoaXAgaW5mby4KICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gR2V0R3JvdXBMaXN0RnVsbCgkd2l0aF9jb3VudCA9IEZBTFNFKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRHcm91cExpc3RGdWxsKCR3aXRoX2NvdW50KTsKICAgIH0KCiAgICAvKioKICAgICAqIEdpdmVuIGEgZ3JvdXAgbmFtZSwgZ2V0IGEgZ3JvdXAgaWQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkZ3JvdXBuYW1lCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBmdW5jdGlvbiBHZXRHcm91cElEKCRncm91cG5hbWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldEdyb3VwSUQoICRncm91cG5hbWUgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbGlzdCBvZiBncm91cHMgKGJ5IG5hbWUpIHRoYXQgYSB1c2VyIGlzIGEgbWVtYmVyIG9mLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVzZXJpZAogICAgICogQHJldHVybiBzdHJpbmdbXQogICAgICovCiAgICBmdW5jdGlvbiBHZXRNZW1iZXJHcm91cHMoJHVzZXJpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0TWVtYmVyR3JvdXBzKCR1c2VyaWQpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkYXRlIHRoYXQgYSB1c2VyIGFjY291bnQgZXhwaXJlcy4KICAgICAqCiAgICAgKiBAcGFyYW0gJHVpZAogICAgICogQHJldHVybiBpbnQgQSB1bml4IHRpbWVzdGFtcCBvZiB0aGUgZXhwaXJ5IGRhdGUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEV4cGlyeURhdGUoICR1aWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRFeHBpcnlEYXRlKCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUZXN0IGlmIHRoZSBzcGVjaWZpZWQgYWNjb3VudCBpcyBleHBpcmVkLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIGZ1bmN0aW9uIElzQWNjb3VudEV4cGlyZWQoICR1aWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Jc0FjY291bnRFeHBpcmVkKCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUZXN0IGlmIHRoZSBzcGVjaWZpZWQgcGxhaW4gdGV4dCBwYXNzd29yZCBpcyBzdWl0YWJsZSAobWF0Y2hlcyBtb2R1bGUgc2V0dGluZ3MpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcGFzc3dvcmQKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBmdW5jdGlvbiBJc1ZhbGlkUGFzc3dvcmQoICRwYXNzd29yZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPklzVmFsaWRQYXNzd29yZCggJHBhc3N3b3JkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHByb21wdCBmb3IgYSB1c2VybmFtZS4KICAgICAqIFRoaXMgbWF5IGNoYW5nZSBiYXNlZCBvbiBtb2R1bGUgc2V0dGluZ3MuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlcm5hbWVQcm9tcHQoKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VybmFtZVByb21wdCgpOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBpZiB0aGUgZW1haWwgc3BlY2lmaWVkIGlzIHZhbGlkLCBhbmQgb3B0aW9uYWxseSBub3QgdXNlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRlbWFpbCBUaGUgZW1haWwgYWRkcmVzcyB0byB0ZXN0CiAgICAgKiBAcGFyYW0gaW50ICR1aWQgSWYgc3BlY2lpZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBlbWFpbCBhZGRyZXNzcyBpcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIGFuZCBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciB1c2Vycy4KICAgICAqIEBwYXJhbSBib29sZWFuICRjaGVja19leGlzdGluZy4gIElmIHNwZWNpZmllZCwgdGhpcyBmbGFnIGluZGljYXRlcyB0aGF0IHRoZSBzeXN0ZW0gc2hvdWxkIGNoZWNrIGlmIHRoZSBlbWFpbCBhZGRyZXNzIGlzIG5vdCB1c2VkIGN1cnJlbnRseSBpbiB0aGUgc3lzdGVtLgogICAgICogQHJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2V0aGVyIHRoaXMgZW1haWwgYWRkcmVzcyBjYW4gYmUgdXNlZCB3aXRoaW4gdGhlIHN5c3RlbS4KICAgICAqLwogICAgZnVuY3Rpb24gSXNWYWxpZEVtYWlsQWRkcmVzcyggJGVtYWlsLCAkdWlkID0gLTEsICRjaGVja19leGlzdGluZyA9IEZBTFNFICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+SXNWYWxpZEVtYWlsQWRkcmVzcyggJGVtYWlsLCAkdWlkLCAkY2hlY2tfZXhpc3RpbmcgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRlc3Qgd2V0aGVyIHRoZSBzcGVjaWZpZWQgdXNlcm5hbWUgaXMgdmFsaWQgZm9yIHRoZSBzeXN0ZW0uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdXNlcm5hbWUKICAgICAqIEBwYXJhbSBib29sZWFuICRjaGVjayBPcHRpb25hbGx5IHRlc3Qgd2hldGhlciB0aGlzIHVzZXJuYW1lIGlzIGluIGN1cnJlbnQgdXNlLgogICAgICogQHBhcmFtIGludCAkdWlkIElmICRjaGVjayBpcyB0cnVlLCBpbmRpY2F0ZSBhbiBvcHRpb25hbCB1aWQgdG8gZXhjbHVkZSBmcm9tIHRoZSBjaGVjawogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIElzVmFsaWRVc2VybmFtZSggJHVzZXJuYW1lLCAkY2hlY2sgPSB0cnVlLCAkdWlkID0gLTEgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Jc1ZhbGlkVXNlcm5hbWUoICR1c2VybmFtZSwgJGNoZWNrLCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBWYWxpZGF0ZSB0aGUgdXNlciBwYXNzd29yZC4KICAgICAqIFRoaXMgaXMgaXMgbm90IGEgbG9naW4gb3BlcmF0aW9uLCBidXQgZG9lcyBwZXJmb3JtIHRoZSB2YWxpZGF0aW9uIG9mIHRoZSBwYXNzd29yZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZSBUaGUgdXNlciBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZCBUaGUgcGxhaW4gdGV4dCBwYXNzd29yZC4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGdyb3VwcyBBbiBvcHRpb25hbCBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cCBuYW1lcy4gIElmIHNwZWNpZmllZCwgdGhlIHVzZXIgbXVzdCBhbHNvIGJlbG9uZyB0byBvbmUgb2YgdGhlc2UgZ3JvdXBzLgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIENoZWNrUGFzc3dvcmQoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRncm91cHMgPSAnJykKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+Q2hlY2tQYXNzd29yZCgkdXNlcm5hbWUsICRwYXNzd29yZCwgJGdyb3Vwcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2cgdGhlIHVzZXIgaW50byB0aGUgc3lzdGVtLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZCBUaGUgcGxhaW4gdGV4dCBwYXNzd29yZAogICAgICogQHBhcmFtIHN0cmluZyAkZ3JvdXBzIEFuIG9wdGlvbmFsIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3VwIG5hbWVzLiAgSWYgc3BlY2lmaWVkLCB0aGUgdXNlciBtdXN0IGFsc28gYmVsb25nIHRvIG9uZSBvZiB0aGVzZSBncm91cHMuCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkaWdub3JlZCBObyBsb25nZXIgdXNlZAogICAgICogQHBhcmFtIGJvb2xlYW4gJGZvcmNlX2xnb3V0IEZvcmNlIHRoZSB1c2VyIHRvIGEgbG9nZ2VkIG91dCBzdGF0ZSBiZWZvcmUgYmVpbmcgbG9nZ2VkIGluIGFnYWluLgogICAgICogQHJldHVybiBhcnJheSBUaGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgZWl0aGVyIHRoZSB1aWQgb3IgRkFMU0UuICBJZiBmYWxzZSwgdGhlIHNlY29uZCBlbGVtZW50IGlzIGFuIGVycm9yIHN0cmluZy4KICAgICAqLwogICAgZnVuY3Rpb24gTG9naW4oICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZ3JvdXBzID0gJycsICRpZ25vcmVkID0gZmFsc2UsICRmb3JjZV9sb2dvdXQgPSBmYWxzZSkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+TG9naW4oICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZ3JvdXBzLCBmYWxzZSwgJGZvcmNlX2xvZ291dCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGUgdXNlcm5hbWUgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlciBmb3IgdGhpcyByZXF1ZXN0LgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIGZ1bmN0aW9uIExvZ2dlZEluTmFtZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgJHN0ciA9ICR0aGlzLT51c2VybWFuaXAtPkxvZ2dlZEluTmFtZSgpOwogICAgICAgIHJldHVybiAkc3RyOwogICAgfQoKICAgIC8qKgogICAgICogTG9nb3V0IHRoZSBzcGVjaWZpZWQgdXNlciwgb3IgdGhlIGN1cnJlbnQgdXNlci4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR1aWQgQW4gb3B0aW9uYWwgdWlkLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVpZCBmb3IgdGhpcyByZXF1ZXN0IHdpbGwgYmUgdXNlZC4KICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgQW4gb3B0aW9uYWwgc3RyaW5nIHRvIGluY2x1ZGUgaW4gdGhpZSBoaXN0b3J5IGxvZy4KICAgICAqLwogICAgZnVuY3Rpb24gTG9nb3V0KCR1aWQgPSAnJywkbWVzc2FnZSA9ICdsb2dvdXQnKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Mb2dvdXQoJHVpZCwkbWVzc2FnZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2dvdXQgdGhlIHNwZWNpZmllZCB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZCBBbiBvcHRpb25hbCB1aWQuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBsb2dnZWQgaW4gdWlkIGZvciB0aGlzIHJlcXVlc3Qgd2lsbCBiZSB1c2VkLgogICAgICogQHBhcmFtIHN0cmluZyAkbWVzc2FnZSBBbiBvcHRpb25hbCBzdHJpbmcgdG8gaW5jbHVkZSBpbiB0aGllIGhpc3RvcnkgbG9nLgogICAgICovCiAgICBmdW5jdGlvbiBMb2dvdXRVc2VyKCR1aWQsJGV2ZW50bXNnID0gJ2xvZ291dCcpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkxvZ291dFVzZXIoJHVpZCwkZXZlbnRtc2cpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSB1aWQgb2YgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgZm9yIHRoaXMgcmVxdWVzdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBmdW5jdGlvbiBMb2dnZWRJbklkKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+TG9nZ2VkSW5JZCgpOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCB3aGV0aGVyIHRoZSBjdXJyZW50IHNpdGUgdmlzaXRvciBpcyBsb2dnZWQgaW4gdG8gRnJvbnRFbmRVc2VycwogICAgICoKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBMb2dnZWRJbigpCiAgICB7CiAgICAgICAgJHRtcCA9ICR0aGlzLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgaWYoICR0bXAgPiAwICkgcmV0dXJuIFRSVUU7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgdXNlciBpcyBhIG1lbWJlciBvZiB0aGUgc3BlY2lmaWVkIGdyb3VwLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVzZXJpZAogICAgICogQHBhcmFtIGludCAkZ3JvdXBpZAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIE1lbWJlck9mR3JvdXAoJHVzZXJpZCwkZ3JvdXBpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+TWVtYmVyT2ZHcm91cCgkdXNlcmlkLCRncm91cGlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBmdW5jdGlvbiBSZW1vdmVVc2VyVGVtcENvZGUoICR1aWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5SZW1vdmVVc2VyVGVtcENvZGUoICR1aWQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIHVzZXIgZnJvbSB0aGUgc3BlY2lmaWVkIGdyb3VwLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIGludCAkZ2lkCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLiAgSWYgZmFsc2UsIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBhbiBlcnJvciBzdHJpbmcuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFJlbW92ZVVzZXJGcm9tR3JvdXAoICR1aWQsICRnaWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5SZW1vdmVVc2VyRnJvbUdyb3VwKCAkdWlkLCAkZ2lkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgZnVuY3Rpb24gU2V0VXNlclRlbXBDb2RlKCAkdWlkLCAkY29kZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPlNldFVzZXJUZW1wQ29kZSggJHVpZCwgJGNvZGUsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJykgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFVwZGF0ZSB0aGUgaW5mb3JtYXRpb24gZm9yIGFuIGV4aXN0aW5nIHByb3BlcnR5IGRlZmluaXRpb24uCiAgICAgKiBUaGlzIG1ldGhvZCBkb2VzIG5vdCB1cGRhdGUgdGhlIHByb3BlcnRpZXMgdGFibGUgaWYgdGhlIHByb3BlcnR5IGlzIGdpdmVuIGEgbmV3IG5hbWUsIG9yIGZvcmNlX3VuaXF1ZSBvciBlbmNyeXB0IHZhbHVlcy4KICAgICAqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHByb3BlcnR5IGRlZmluaXRpb24gbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAkbmV3bmFtZSBBIG5ldyBuYW1lIGZvciB0aGUgcHJvcGVydHkuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwcm9tcHQgVGhlIHByb3BlcnR5IHByb21wdAogICAgICogQHBhcmFtIGludCAkbGVuZ3RoIFRoZSBwcm9wZXJ0eSBpbnB1dCBmaWVsZCBsZW5ndGgKICAgICAqIEBwYXJhbSBpbnQgJHR5cGUgVGhlIHByb3BlcnR5IHR5cGUKICAgICAqIEBwYXJhbSBpbnQgJG1heGxlbmd0aCBUaGUgcHJvcGVydHkgaW5wdXQgZmllbGQgbWF4aW11bSBsZW5ndGguCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhdHRyaWJzIEEgc2VyaWFsaXplZCBhcnJheSBvZiBhdHRyaWJ1dGVzIGZvciB0aGUgcHJvcGVydHkKICAgICAqIEBwYXJhbSBib29sICRmb3JjZV91bmlxdWUgRm9yY2UgdGhpcyBwcm9wZXJ0eSB0byBiZSB1bmlxdWUgYWNyb3NzIGFsbCB1c2Vycy4KICAgICAqIEBwYXJhbSBib29sICRlbmNyeXB0IEZvcmNlIHRoZSB2YWx1ZXMgb2YgdGhpcyBwcm9wZXJ0eSB0byBiZSBlbmNyeXB0ZWQgd2hlbiBzYXZlZC4KICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBTZXRQcm9wZXJ0eURlZm4oICRuYW1lLCAkbmV3bmFtZSwgJHByb21wdCwgJGxlbmd0aCwgJHR5cGUsICRtYXhsZW5ndGggPSAwLCAkYXR0cmlicyA9ICcnLCAkZm9yY2VfdW5pcXVlID0gMCwgJGVuY3J5cHQgPSAwICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0UHJvcGVydHlEZWZuKCAkbmFtZSwgJG5ld25hbWUsICRwcm9tcHQsICR0eXBlLCAkbGVuZ3RoLCAkbWF4bGVuZ3RoLCAkYXR0cmlicywgJGZvcmNlX3VuaXF1ZSwgJGVuY3J5cHQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgZXh0cmEgaW5mb3JtYXRpb24gZm9yIGEgcHJvZXJ0eS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRleHRyYSBUaGUgZXh0cmEgdmFsdWUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFByb3BlcnR5RGVmbkV4dHJhKCRuYW1lLCRleHRyYSkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0UHJvcGVydHlEZWZuRXh0cmEoJG5hbWUsJGV4dHJhKTsKICAgIH0KCiAgICAvKioKICAgICAqIFVwZGF0ZSBhIGdyb3VwIGRlZmluaXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZ2lkCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBncm91cCBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRkZXNjIEFuIG9wdGlvbmFsIGdyb3VwIGRlc2NyaXB0aW9uCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLiAgSWYgZmFsc2UsIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBhbiBlcnJvciBzdHJpbmcuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldEdyb3VwKCAkZ2lkLCAkbmFtZSwgJGRlc2MgPSBudWxsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0R3JvdXAoICRnaWQsICRuYW1lLCAkZGVzYyApOwogICAgfQoKICAgIC8qKgogICAgICogR2l2ZW4gYSBwbGFpbiB0ZXh0IHBhc3N3b3JkLCBlbmNyeXB0IGl0IGZvciBhIHVzZXIKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR1aWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBFbmNyeXB0UGFzc3dvcmQoICR1aWQsICRwbGFpbl9wYXNzd29yZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkVuY3J5cHRQYXNzd29yZCggJHVpZCwgJHBsYWluX3Bhc3N3b3JkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHBhc3N3b3JkIGZvciBhIHVzZXIKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR1aWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLiAgSWYgZmFsc2UsIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBhbiBlcnJvciBzdHJpbmcuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFVzZXJQYXNzd29yZCggJHVpZCwgJHBhc3N3b3JkICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0VXNlclBhc3N3b3JkKCAkdWlkLCAkcGFzc3dvcmQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRvZ2dsZSBhIHVzZXIgYWNjb3VudCBhcyBkaXNibGVkLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIGJvb2xlYW4gJGZsYWcgV2hldGhlciBvciBub3QgdGhlIGFjY291bnQgaXMgZGlzYWJsZWQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFVzZXJEaXNhYmxlZCggJHVpZCwgJGZsYWcgPSBUUlVFICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyRGlzYWJsZWQoJHVpZCwkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUb2dnbGUgd2hldGhlciBhIHVzZXIgaXMgZm9yY2VkIHRvIGNoYW5nZSBoaXMgcGFzc3dvcmQgYXQgdGhlIG5leHQgbG9naW4uCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkZmxhZwogICAgICovCiAgICBmdW5jdGlvbiBGb3JjZVBhc3N3b3JkQ2hhbmdlKCAkdWlkLCAkZmxhZyA9IFRSVUUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgICR0aGlzLT51c2VybWFuaXAtPkZvcmNlUGFzc3dvcmRDaGFuZ2UoJHVpZCwkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUb2dnbGUgd2hldGhlciBhIHVzZXIgaXMgZm9yY2VkIHRvIGNoYW5nZSBoaXMgc2V0dGluZ3MgaW4gc29tZSB3YXkgYXQgdGhlIG5leHQgbG9naW4uCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkZmxhZwogICAgICovCiAgICBmdW5jdGlvbiBGb3JjZUNoYW5nZVNldHRpbmdzKCAkdWlkLCAkZmxhZyA9IFRSVUUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgICR0aGlzLT51c2VybWFuaXAtPkZvcmNlQ2hhbmdlU2V0dGluZ3MoJHVpZCwkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUb2dnbGUgd2hldGhlciBhIHVzZXIgaXMgZm9yY2VkIHRvIHJldmFsaWRhdGUgdGhlbXNlbHZlcwogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIGJvb2xlYW4gJGZsYWcKICAgICAqLwogICAgZnVuY3Rpb24gRm9yY2VWZXJpZnkoICR1aWQsICRmbGFnID0gVFJVRSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgJHRoaXMtPnVzZXJtYW5pcC0+Rm9yY2VWZXJpZnkoJHVpZCwkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGp1c3QgdXNlciBkZXRhaWxzCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZSBUaGUgdXNlciBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZCBUaGUgdXNlcnMgcGxhaW4gdGV4dCBwYXNzd29yZAogICAgICogQHBhcmFtIGludCAkZXhwaXJlcyBBbiBvcHRpb25hbCBleHBpcnkgZGF0ZS4KICAgICAqLwogICAgZnVuY3Rpb24gU2V0VXNlciggJHVpZCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRleHBpcmVzID0gZmFsc2UgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyKCAkdWlkLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCBleHBsaWNpdCBncm91cCBtZW1iZXJzaGlwLgogICAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgYWx0ZXIgdGhlIHVzZXIgcHJvcGVydGllcy4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR1aWQKICAgICAqIEBwYXJhbSBpbnRbXSAkZ3JwaWRzCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFVzZXJHcm91cHMoICR1aWQsICRncnBpZHMgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyR3JvdXBzKCAkdWlkLCAkZ3JwaWRzICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgdXNlciB0byBhIGdyb3VwCiAgICAgKgogICAgICogZG9lcyBub3QgZWZmZWN0IHVzZXIgcHJvcGVydGllcwogICAgICogZG9lcyBub3QgdmFsaWRhdGUgZ2lkCiAgICAgKiB1c2VyaWQgaXMgdmFsaWRhdGVkCiAgICAgKgogICAgICogQHBhcmFtIGludCB1c2VyIGlkCiAgICAgKiBAcGFyYW0gaW50IGdyb3VwIGlkCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgZnVuY3Rpb24gQWRkVXNlclRvR3JvdXAoICR1aWQsICRnaWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5BZGRVc2VyVG9Hcm91cCggJHVpZCwgJGdpZCApOwogICAgfQoKICAgIGZ1bmN0aW9uIFNldFVzZXJQcm9wZXJ0aWVzKCAkdWlkLCAkcHJvcHMgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyUHJvcGVydGllcyggJHVpZCwgJHByb3BzICk7CiAgICB9CgogICAgZnVuY3Rpb24gU2V0VXNlclByb3BlcnR5KCR0aXRsZSwkZGF0YSkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0VXNlclByb3BlcnR5KCR0aXRsZSwkZGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gSXNVc2VyUHJvcGVydHlWYWx1ZVVuaXF1ZSgkdWlkLCR0aXRsZSwkdmFsdWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPklzVXNlclByb3BlcnR5VmFsdWVVbmlxdWUoJHVpZCwkdGl0bGUsJHZhbHVlKTsKICAgIH0KCiAgICBmdW5jdGlvbiBTZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkZGF0YSwkdXNlcmlkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkZGF0YSwkdXNlcmlkKTsKICAgIH0KCiAgICBmdW5jdGlvbiBVc2VyRXhpc3RzQnlJRCggJHVpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPlVzZXJFeGlzdHNCeUlEKCAkdWlkICk7CiAgICB9CgogICAgZnVuY3Rpb24gU2V0RW5jcnlwdGlvbktleSgkdWlkID0gLTEsJGZvcmNlID0gRkFMU0UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPlNldEVuY3J5cHRpb25LZXkoICR1aWQsICRmb3JjZSApOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlY3J5cHRVc2VyRGF0YSgkdWlkLCRkYXRhKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5EZWNyeXB0VXNlckRhdGEoJHVpZCwkZGF0YSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgZnVuY3Rpb24gSGFzQ2FwYWJpbGl0eSgkY2FwYWJpbGl0eSwkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICBzd2l0Y2goICRjYXBhYmlsaXR5ICkgewogICAgICAgIGNhc2UgJ2NvbnRlbnRfdHlwZXMnOgogICAgICAgIGNhc2UgJ2NvbnRlbnRfYXR0cmlidXRlcyc6CiAgICAgICAgY2FzZSAndGFza3MnOgogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldF9jb250ZW50X2F0dHJpYnV0ZXMoJGNvbnRlbnRfdHlwZSkKICAgIHsKICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAkYXR0ciA9IG5ldyBDbXNDb250ZW50VHlwZVByb2ZpbGVBdHRyaWJ1dGUoJ2ZldV9ncm91cHMnLCd2aXNpdG9ycycpOwogICAgICAgICRhdHRyLT5zZXRfaGVscGVyKGZldV9jb250ZW50X2F0dHJpYnV0ZV9oZWxwZXI6OmdldF9pbnN0YW5jZSgpKTsKICAgICAgICAkdG1wW10gPSAkYXR0cjsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIHBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrKCRzdHIpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnICcsJ18nLCRzdHIpOwogICAgICAgIGlmKCAkc3RyID09ICdmb3Jnb3RfcGFzc3dvcmRfZW1haWwnICkgJHN0ciA9ICd2ZXJpZnlfZW1haWwnOwogICAgICAgICRzdHIgPSAndHBsdHlwZV8nLiRzdHI7CiAgICAgICAgaWYoIGlzX29iamVjdCgkbW9kKSApIHJldHVybiAkbW9kLT5MYW5nKCRzdHIpOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gcmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzKENtc0xheW91dFRlbXBsYXRlVHlwZSAkdHlwZSkKICAgIHsKICAgICAgICBpZiggJHR5cGUtPmdldF9vcmlnaW5hdG9yKCkgIT0gJ0Zyb250RW5kVXNlcnMnICkgdGhyb3cgbmV3IENtc0xvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgcmVzZXQgY29udGVudHMgZm9yIHRoaXMgdGVtcGxhdGUgdHlwZScpOwoKICAgICAgICAkZm4gPSBudWxsOwogICAgICAgIHN3aXRjaCggJHR5cGUtPmdldF9uYW1lKCkgKSB7CiAgICAgICAgY2FzZSAnbG9naW4gZm9ybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX2xvZ2luZm9ybS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdsb2dvdXQgZm9ybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX2xvZ291dGZvcm0udHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY2hzZXR0aW5ncyBmb3JtJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfY2hhbmdlc2V0dGluZ3MudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZm9yZ290IHBhc3N3b3JkIGZvcm0nOgogICAgICAgICAgICAkZm4gPSAnb3JpZ19mb3Jnb3RwYXNzd29yZDEudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZm9yZ290IHBhc3N3b3JkIGVtYWlsJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfZm9yZ290cGFzc3dvcmQyLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2ZvcmdvdCBwYXNzd29yZCB2ZXJpZnknOgogICAgICAgICAgICAkZm4gPSAnb3JpZ19mb3Jnb3RwYXNzd29yZDMudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZm9yY2UgbmV3IHBhc3N3b3JkJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfZm9yY2VfbmV3cHdfZm9ybS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdsb3N0IHVzZXJuYW1lIGZvcm0nOgogICAgICAgICAgICAkZm4gPSAnb3JpZ19sb3N0dW5mb3JtX3RlbXBsYXRlLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2xvc3QgdXNlcm5hbWUgY29uZmlybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX2xvc3R1bmZvcm1fY29uZmlybV90ZW1wbGF0ZS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICd2aWV3IHVzZXInOgogICAgICAgICAgICAkZm4gPSAnb3JpZ192aWV3dXNlcl90ZW1wbGF0ZS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdyZXNldCBzZXNzaW9uJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfcmVzZXRzZXNzaW9uX3RlbXBsYXRlLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3ZlcmlmeV9mb3JtJzoKICAgICAgICBjYXNlICd2ZXJpZnkgZm9ybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX3ZlcmlmeWZvcm0udHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdHlwZS0+Z2V0X25hbWUoKS4nIGlzIG5vdCBhIGtub3duIHR5cGUgZm9yIHRoZSAnLiR0eXBlLT5nZXRfb3JpZ2luYXRvcigpLicgb3JpZ2luYXRvcicpOwogICAgICAgIH0KCiAgICAgICAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCRmbik7CiAgICAgICAgaWYoIGlzX2ZpbGUoJGZuKSApIHJldHVybiBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgIH0KfSAvLyBjbGFzcwoKLy8gRU9GCgo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/files/lib.class.feu_user_query.php.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgZnVuY3Rpb24gbG9hZEV4dGVybmFsQ29kZVNuaXBwZXRzKCkgewogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmVbZGF0YS1zcmNdJykpLmZvckVhY2goZnVuY3Rpb24gKHByZSkgewogICAgICAgICAgICAgICAgdmFyIHNyYyA9IHByZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3JjJyk7CiAgICAgICAgICAgICAgICB2YXIgZXh0ZW5zaW9uID0gKHNyYy5tYXRjaCgvXC4oXHcrKSQvKSB8fCBbLCAnJ10pWzFdOwogICAgICAgICAgICAgICAgdmFyIGxhbmd1YWdlID0gJ3BocCc7CgogICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb2RlJyk7CiAgICAgICAgICAgICAgICBjb2RlLmNsYXNzTmFtZSA9ICdsYW5ndWFnZS0nICsgbGFuZ3VhZ2U7CgogICAgICAgICAgICAgICAgcHJlLnRleHRDb250ZW50ID0gJyc7CgogICAgICAgICAgICAgICAgY29kZS50ZXh0Q29udGVudCA9ICdMb2FkaW5n4oCmJzsKCiAgICAgICAgICAgICAgICBwcmUuYXBwZW5kQ2hpbGQoY29kZSk7CgogICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoKICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCBzcmMsIHRydWUpOwoKICAgICAgICAgICAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09IDQpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzIDwgNDAwICYmIHhoci5yZXNwb25zZVRleHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSB4aHIucmVzcG9uc2VUZXh0OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQoY29kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoeGhyLnN0YXR1cyA+PSA0MDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSAn4pyWIEVycm9yICcgKyB4aHIuc3RhdHVzICsgJyB3aGlsZSBmZXRjaGluZyBmaWxlOiAnICsgeGhyLnN0YXR1c1RleHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ+KcliBFcnJvcjogRmlsZSBkb2VzIG5vdCBleGlzdCBvciBpcyBlbXB0eSc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpOwogICAgICAgIH0pOwogICAgICAgICQoJyNzb3VyY2UtdmlldycpLm9uKCdzaG93bicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgbG9hZEV4dGVybmFsQ29kZVNuaXBwZXRzKCk7CiAgICAgICAgfSkKICAgIDwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Ii4uL2ltYWdlcy9hcHBsZS10b3VjaC1pY29uLnBuZyIvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iNzJ4NzIiIGhyZWY9Ii4uL2ltYWdlcy9hcHBsZS10b3VjaC1pY29uLTcyeDcyLnBuZyIvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iMTE0eDExNCIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tMTE0eDExNC5wbmciLz4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZml4ZWQtdG9wIj4KICAgIDxkaXYgY2xhc3M9Im5hdmJhci1pbm5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tbmF2YmFyIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIubmF2LWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWVsbGlwc2lzLXZlcnRpY2FsIj48L2k+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgY2xhc3M9ImJyYW5kIiBocmVmPSIuLi9pbmRleC5odG1sIj5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L2E+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYgcHVsbC1yaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkgRG9jdW1lbnRhdGlvbiA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iIGlkPSJjaGFydHMtbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9ncmFwaHMvY2xhc3MuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7Q2xhc3MgaGllcmFyY2h5IGRpYWdyYW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9InJlcG9ydHMtbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBvcnRzIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vcmVwb3J0cy9lcnJvcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7RXJyb3JzIDxzcGFuIGNsYXNzPSJsYWJlbCBsYWJlbC1pbmZvIHB1bGwtcmlnaHQiPjk4PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vcmVwb3J0cy9tYXJrZXJzLmh0bWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1saXN0LWFsdCI+PC9pPiYjMTYwO01hcmtlcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+MDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPCEtLTxkaXYgY2xhc3M9ImdvX3RvX3RvcCI+LS0+CiAgICA8IS0tPGEgaHJlZj0iI19fXyIgc3R5bGU9ImNvbG9yOiBpbmhlcml0Ij5CYWNrIHRvIHRvcCYjMTYwOyYjMTYwOzxpIGNsYXNzPSJpY29uLXVwbG9hZCBpY29uLXdoaXRlIj48L2k+PC9hPi0tPgogICAgPCEtLTwvZGl2Pi0tPgo8L2Rpdj4KCjxkaXYgaWQ9Il9fXyIgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjIgc2lkZWJhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+CiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWdyb3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYWNjb3JkaW9uLXRvZ2dsZSAiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNuYW1lc3BhY2UtNzQ2MTcxOTEyIj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vbmFtZXNwYWNlcy9kZWZhdWx0Lmh0bWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMzBweDsgcGFkZGluZy1sZWZ0OiAwIj5cPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBpZD0ibmFtZXNwYWNlLTc0NjE3MTkxMiIgY2xhc3M9ImFjY29yZGlvbi1ib2R5IGNvbGxhcHNlIGluIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjY29yZGlvbi1pbm5lciI+CgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfb3B0Lmh0bWwiPmZldV91c2VyX3F1ZXJ5X29wdDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sIj5mZXVfdXNlcl9xdWVyeTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwiPkZyb250RW5kVXNlcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0Lmh0bWwiPmZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMTAgb2Zmc2V0MiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGZpbGUiPgogICAgICAgICAgICAgICAgICAgIDxuYXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uYXY+CgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8aDE+PHNtYWxsPmxpYjwvc21hbGw+Y2xhc3MuZmV1X3VzZXJfcXVlcnkucGhwPC9oMT4KICAgICAgICAgICAgICAgICAgICA8cD48ZW0+PC9lbT48L3A+CiAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkNsYXNzZXM8L2gyPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sIj5mZXVfdXNlcl9xdWVyeV9vcHQ8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48ZW0+PC9lbT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwiPmZldV91c2VyX3F1ZXJ5PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGVtPjwvZW0+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSIyIj48ZW0+Tm9uZSBmb3VuZDwvZW0+PC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgPC9hc2lkZT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPGRpdiBpZD0ic291cmNlLXZpZXciIGNsYXNzPSJtb2RhbCBoaWRlIGZhZGUiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9InNvdXJjZS12aWV3LWxhYmVsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAgICAgIDxoMyBpZD0ic291cmNlLXZpZXctbGFiZWwiPjwvaDM+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAgIDxwcmUgZGF0YS1zcmM9Ii4uL2ZpbGVzL2xpYi9jbGFzcy5mZXVfdXNlcl9xdWVyeS5waHAudHh0IiBjbGFzcz0ibGFuZ3VhZ2UtcGhwIGxpbmUtbnVtYmVycyI+PC9wcmU+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8Zm9vdGVyIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MiI+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQxIj4KICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIGZvb3Rlci1zZWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWJhci1jaGFydCI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj5DbGFzcyBIaWVyYXJjaHkgRGlhZ3JhbTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1wdXNocGluIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vcmVwb3J0cy9lcnJvcnMuaHRtbCI+RXJyb3JzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+TWFya2VyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MSI+CiAgICAgICAgICAgICAgICAgICAgPGhyIC8+CiAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRhdGlvbiBpcyBwb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwZG9jLm9yZy8iPnBocERvY3VtZW50b3IgPC9hPiBhbmQgYXV0aG9yZWQKICAgICAgICAgICAgICAgICAgICBvbiBOb3ZlbWJlciAzMHRoLCAyMDE2IGF0IDEzOjUzLgogICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgPC9zZWN0aW9uPgogICAgPC9mb290ZXI+CjwvZGl2PgoKPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/files/lib.class.feu_user_query_resultset.php.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgZnVuY3Rpb24gbG9hZEV4dGVybmFsQ29kZVNuaXBwZXRzKCkgewogICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdwcmVbZGF0YS1zcmNdJykpLmZvckVhY2goZnVuY3Rpb24gKHByZSkgewogICAgICAgICAgICAgICAgdmFyIHNyYyA9IHByZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3JjJyk7CiAgICAgICAgICAgICAgICB2YXIgZXh0ZW5zaW9uID0gKHNyYy5tYXRjaCgvXC4oXHcrKSQvKSB8fCBbLCAnJ10pWzFdOwogICAgICAgICAgICAgICAgdmFyIGxhbmd1YWdlID0gJ3BocCc7CgogICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjb2RlJyk7CiAgICAgICAgICAgICAgICBjb2RlLmNsYXNzTmFtZSA9ICdsYW5ndWFnZS0nICsgbGFuZ3VhZ2U7CgogICAgICAgICAgICAgICAgcHJlLnRleHRDb250ZW50ID0gJyc7CgogICAgICAgICAgICAgICAgY29kZS50ZXh0Q29udGVudCA9ICdMb2FkaW5n4oCmJzsKCiAgICAgICAgICAgICAgICBwcmUuYXBwZW5kQ2hpbGQoY29kZSk7CgogICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoKICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCBzcmMsIHRydWUpOwoKICAgICAgICAgICAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09IDQpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzIDwgNDAwICYmIHhoci5yZXNwb25zZVRleHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSB4aHIucmVzcG9uc2VUZXh0OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXNtLmhpZ2hsaWdodEVsZW1lbnQoY29kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoeGhyLnN0YXR1cyA+PSA0MDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUudGV4dENvbnRlbnQgPSAn4pyWIEVycm9yICcgKyB4aHIuc3RhdHVzICsgJyB3aGlsZSBmZXRjaGluZyBmaWxlOiAnICsgeGhyLnN0YXR1c1RleHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLnRleHRDb250ZW50ID0gJ+KcliBFcnJvcjogRmlsZSBkb2VzIG5vdCBleGlzdCBvciBpcyBlbXB0eSc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgICAgICAgICAgIGxvYWRFeHRlcm5hbENvZGVTbmlwcGV0cygpOwogICAgICAgIH0pOwogICAgICAgICQoJyNzb3VyY2UtdmlldycpLm9uKCdzaG93bicsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgbG9hZEV4dGVybmFsQ29kZVNuaXBwZXRzKCk7CiAgICAgICAgfSkKICAgIDwvc2NyaXB0PgoKICAgIDxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIGhyZWY9Ii4uL2ltYWdlcy9hcHBsZS10b3VjaC1pY29uLnBuZyIvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iNzJ4NzIiIGhyZWY9Ii4uL2ltYWdlcy9hcHBsZS10b3VjaC1pY29uLTcyeDcyLnBuZyIvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBzaXplcz0iMTE0eDExNCIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tMTE0eDExNC5wbmciLz4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZml4ZWQtdG9wIj4KICAgIDxkaXYgY2xhc3M9Im5hdmJhci1pbm5lciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tbmF2YmFyIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIubmF2LWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWVsbGlwc2lzLXZlcnRpY2FsIj48L2k+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgY2xhc3M9ImJyYW5kIiBocmVmPSIuLi9pbmRleC5odG1sIj5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L2E+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYgcHVsbC1yaWdodCI+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkgRG9jdW1lbnRhdGlvbiA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iIGlkPSJjaGFydHMtbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9ncmFwaHMvY2xhc3MuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7Q2xhc3MgaGllcmFyY2h5IGRpYWdyYW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9InJlcG9ydHMtbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBvcnRzIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vcmVwb3J0cy9lcnJvcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7RXJyb3JzIDxzcGFuIGNsYXNzPSJsYWJlbCBsYWJlbC1pbmZvIHB1bGwtcmlnaHQiPjk4PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vcmVwb3J0cy9tYXJrZXJzLmh0bWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1saXN0LWFsdCI+PC9pPiYjMTYwO01hcmtlcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+MDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPCEtLTxkaXYgY2xhc3M9ImdvX3RvX3RvcCI+LS0+CiAgICA8IS0tPGEgaHJlZj0iI19fXyIgc3R5bGU9ImNvbG9yOiBpbmhlcml0Ij5CYWNrIHRvIHRvcCYjMTYwOyYjMTYwOzxpIGNsYXNzPSJpY29uLXVwbG9hZCBpY29uLXdoaXRlIj48L2k+PC9hPi0tPgogICAgPCEtLTwvZGl2Pi0tPgo8L2Rpdj4KCjxkaXYgaWQ9Il9fXyIgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjIgc2lkZWJhciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+CiAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWdyb3VwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYWNjb3JkaW9uLXRvZ2dsZSAiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNuYW1lc3BhY2UtNTQ0NTc1NjUyIj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vbmFtZXNwYWNlcy9kZWZhdWx0Lmh0bWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMzBweDsgcGFkZGluZy1sZWZ0OiAwIj5cPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBpZD0ibmFtZXNwYWNlLTU0NDU3NTY1MiIgY2xhc3M9ImFjY29yZGlvbi1ib2R5IGNvbGxhcHNlIGluIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFjY29yZGlvbi1pbm5lciI+CgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfb3B0Lmh0bWwiPmZldV91c2VyX3F1ZXJ5X29wdDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeS5odG1sIj5mZXVfdXNlcl9xdWVyeTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwiPkZyb250RW5kVXNlcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9Ii4uL2NsYXNzZXMvZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0Lmh0bWwiPmZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMTAgb2Zmc2V0MiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuOCBjb250ZW50IGZpbGUiPgogICAgICAgICAgICAgICAgICAgIDxuYXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uYXY+CgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNzb3VyY2UtdmlldyIgcm9sZT0iYnV0dG9uIiBjbGFzcz0icHVsbC1yaWdodCBidG4iIGRhdGEtdG9nZ2xlPSJtb2RhbCI+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8aDE+PHNtYWxsPmxpYjwvc21hbGw+Y2xhc3MuZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0LnBocDwvaDE+CiAgICAgICAgICAgICAgICAgICAgPHA+PGVtPjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMj5DbGFzc2VzPC9oMj4KICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGVtPjwvZW0+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxhc2lkZSBjbGFzcz0ic3BhbjQgZGV0YWlsc2JhciI+CiAgICAgICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICAgICAgICA8aDI+VGFnczwvaDI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1jb25kZW5zZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSIyIj48ZW0+Tm9uZSBmb3VuZDwvZW0+PC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CgogICAgICAgICAgICAgICAgPC9hc2lkZT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPGRpdiBpZD0ic291cmNlLXZpZXciIGNsYXNzPSJtb2RhbCBoaWRlIGZhZGUiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9InNvdXJjZS12aWV3LWxhYmVsIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1oaWRkZW49InRydWUiPsOXPC9idXR0b24+CiAgICAgICAgICAgIDxoMyBpZD0ic291cmNlLXZpZXctbGFiZWwiPjwvaDM+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgICAgIDxwcmUgZGF0YS1zcmM9Ii4uL2ZpbGVzL2xpYi9jbGFzcy5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQucGhwLnR4dCIgY2xhc3M9Imxhbmd1YWdlLXBocCBsaW5lLW51bWJlcnMiPjwvcHJlPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGZvb3RlciBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDIiPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MSI+CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBmb290ZXItc2VjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1iYXItY2hhcnQiPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9ncmFwaHMvY2xhc3MuaHRtbCI+Q2xhc3MgSGllcmFyY2h5IERpYWdyYW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tcHVzaHBpbiI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvZXJyb3JzLmh0bWwiPkVycm9yczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vcmVwb3J0cy9tYXJrZXJzLmh0bWwiPk1hcmtlcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxociAvPgogICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb24gaXMgcG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmcvIj5waHBEb2N1bWVudG9yIDwvYT4gYW5kIGF1dGhvcmVkCiAgICAgICAgICAgICAgICAgICAgb24gTm92ZW1iZXIgMzB0aCwgMjAxNiBhdCAxMzo1My4KICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDwvc2VjdGlvbj4KICAgIDwvZm9vdGVyPgo8L2Rpdj4KCjwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/files/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/files/lib/class.feu_user_query.php.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBmZXVfdXNlcl9xdWVyeV9vcHQKewogIGNvbnN0IE1BVENIX1VTRVJOQU1FICAgID0gJyp1c2VybmFtZSonOwogIGNvbnN0IE1BVENIX1VTRVJOQU1FX1JFID0gJyp1c2VybmFtZS1yZSonOwogIGNvbnN0IE1BVENIX1BBU1NXT1JEICAgID0gJypwYXNzd29yZConOwogIGNvbnN0IE1BVENIX0VYUElSRVNfTFQgID0gJypleHBpcmVzLWx0Kic7CiAgY29uc3QgTUFUQ0hfTk9URVhQSVJFRCAgPSAnKm5vdGV4cGlyZWQqJzsKICBjb25zdCBNQVRDSF9HUk9VUCAgICAgICA9ICcqZ3JvdXAqJzsKICBjb25zdCBNQVRDSF9HUk9VUElEICAgICA9ICcqZ2lkKic7CiAgY29uc3QgTUFUQ0hfUFJPUEVSVFkgICAgPSAnKnByb3BlcnR5Kic7CiAgY29uc3QgTUFUQ0hfUFJPUEVSVFlfUkUgPSAnKnByb3BlcnR5LXJlKic7CiAgY29uc3QgTUFUQ0hfVVNFUkxJU1QgICAgPSAnKnVzZXJsaXN0Kic7CiAgY29uc3QgTUFUQ0hfVVNFUk5BTUVMSVNUID0gJyp1c2VybmFtZWxpc3QqJzsKICBjb25zdCBNQVRDSF9MT0dHRURJTiAgICA9ICcqbG9nZ2VkaW4qJzsKICBjb25zdCBNQVRDSF9DUkVBVEVEX0dFICA9ICcqY3JlYXRlZF9nZSonOwogIGNvbnN0IE1BVENIX0NSRUFURURfTFQgID0gJypjcmVhdGVkX2x0Kic7CgogIHByaXZhdGUgJF90eXBlOwogIHByaXZhdGUgJF9leHByOwogIHByaXZhdGUgJF9vcHQ7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdHlwZSwkZXhwciA9IG51bGwsJG9wdCA9IG51bGwpCiAgewogICAgc3dpdGNoKCR0eXBlKSB7CiAgICBjYXNlIHNlbGY6Ok1BVENIX1VTRVJOQU1FOgogICAgY2FzZSBzZWxmOjpNQVRDSF9VU0VSTkFNRV9SRToKICAgIGNhc2Ugc2VsZjo6TUFUQ0hfUEFTU1dPUkQ6CiAgICBjYXNlIHNlbGY6Ok1BVENIX0VYUElSRVNfTFQ6CiAgICBjYXNlIHNlbGY6Ok1BVENIX0NSRUFURURfR0U6CiAgICBjYXNlIHNlbGY6Ok1BVENIX0NSRUFURURfTFQ6CiAgICBjYXNlIHNlbGY6Ok1BVENIX0dST1VQOgogICAgY2FzZSBzZWxmOjpNQVRDSF9HUk9VUElEOgogICAgY2FzZSBzZWxmOjpNQVRDSF9VU0VSTElTVDoKICAgIGNhc2Ugc2VsZjo6TUFUQ0hfVVNFUk5BTUVMSVNUOgogICAgY2FzZSBzZWxmOjpNQVRDSF9MT0dHRURJTjoKICAgICAgICBpZiggZW1wdHkoJGV4cHIpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCB2YWx1ZSBmb3IgZXhwcicpOwogICAgICAgICR0aGlzLT5fdHlwZSA9ICR0eXBlOwogICAgICAgICR0aGlzLT5fZXhwciA9ICRleHByOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2Ugc2VsZjo6TUFUQ0hfTk9URVhQSVJFRDoKICAgICAgICAkdGhpcy0+X3R5cGUgPSAkdHlwZTsKICAgICAgICBicmVhazsKCiAgICBjYXNlIHNlbGY6Ok1BVENIX1BST1BFUlRZX1JFOgogICAgICAgIGlmKCBlbXB0eSgkZXhwcikgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdpbnZhbGlkIHZhbHVlIGZvciBleHByJyk7CiAgICAgICAgaWYoIGVtcHR5KCRvcHQpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCBvcHQgdmFsdWUnKTsKICAgICAgICAkdGhpcy0+X3R5cGUgPSAkdHlwZTsKICAgICAgICAkdGhpcy0+X2V4cHIgPSAkZXhwcjsKICAgICAgICAkdGhpcy0+X29wdCA9ICRvcHQ7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSBzZWxmOjpNQVRDSF9QUk9QRVJUWToKICAgICAgICBpZiggZW1wdHkoJGV4cHIpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCB2YWx1ZSBmb3IgZXhwcicpOwogICAgICAgICR0aGlzLT5fdHlwZSA9ICR0eXBlOwogICAgICAgICR0aGlzLT5fZXhwciA9ICRleHByOwogICAgICAgICR0aGlzLT5fb3B0ID0gJG9wdDsKICAgICAgICBicmVhazsKCiAgICBkZWZhdWx0OgogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ2ludmFsaWQgdmFsdWUnKTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHlwZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fdHlwZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZXhwcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5fZXhwcjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9vcHQ7CiAgfQp9IC8vIGNsYXNzCgoKY2xhc3MgZmV1X3VzZXJfcXVlcnkKewogIGNvbnN0IFJFU1VMVF9UWVBFX0lEID0gJyppZConOwogIGNvbnN0IFJFU1VMVF9UWVBFX0xJU1QgPSAnKmxpc3QqJzsKICBjb25zdCBSRVNVTFRfVFlQRV9GVUxMID0gJypmdWxsKic7CiAgY29uc3QgUkVTVUxUX1NPUlRPUkRFUl9BU0MgPSAnKmFzYyonOwogIGNvbnN0IFJFU1VMVF9TT1JUT1JERVJfREVTQyA9ICcqZGVzYyonOwogIGNvbnN0IFJFU1VMVF9TT1JUQllfVVNFUk5BTUUgPSAnKnVzZXJuYW1lKic7CiAgY29uc3QgUkVTVUxUX1NPUlRCWV9DUkVBVEVEID0gJypjcmVhdGVkYXRlKic7CiAgY29uc3QgUkVTVUxUX1NPUlRCWV9FWFBJUkVTID0gJypleHBpcmVzKic7CgogIHByaXZhdGUgJF9hbmRfb3B0cyAgID0gYXJyYXkoKTsKICBwcml2YXRlICRfZ3JvdXBzID0gJyc7CiAgcHJpdmF0ZSAkX3BhZ2VsaW1pdCA9IDEwMDAwMDsKICBwcml2YXRlICRfb2Zmc2V0ID0gMDsKICBwcml2YXRlICRfcmVzdWx0X3R5cGUgPSBzZWxmOjpSRVNVTFRfVFlQRV9JRDsKICBwcml2YXRlICRfc29ydGJ5ID0gc2VsZjo6UkVTVUxUX1NPUlRCWV9VU0VSTkFNRTsKICBwcml2YXRlICRfc29ydG9yZGVyID0gc2VsZjo6UkVTVUxUX1NPUlRPUkRFUl9BU0M7CiAgcHJpdmF0ZSAkX2RlZXAgPSBGQUxTRTsKICBwcml2YXRlICRfd2VicmVhZHkgPSBGQUxTRTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3BhZ2VsaW1pdCgkcGFnZWxpbWl0KQogIHsKICAgICRwYWdlbGltaXQgPSAoaW50KSRwYWdlbGltaXQ7CiAgICAkcGFnZWxpbWl0ID0gbWF4KDEsJHBhZ2VsaW1pdCk7CiAgICAkdGhpcy0+X3BhZ2VsaW1pdCA9ICRwYWdlbGltaXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhZ2VsaW1pdCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fcGFnZWxpbWl0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9vZmZzZXQoJG4pCiAgewogICAgJHRoaXMtPl9vZmZzZXQgPSBtYXgoMCwoaW50KSRuKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfb2Zmc2V0KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9vZmZzZXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RlZXAoJGZsYWcgPSBUUlVFKQogIHsKICAgICR0aGlzLT5fZGVlcCA9IChib29sKSRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZWVwKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9kZWVwOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF93ZWJyZWFkeSgkZmxhZyA9IFRSVUUpCiAgewogICAgJHRoaXMtPl93ZWJyZWFkeSA9IChib29sKSRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF93ZWJyZWFkeSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fd2VicmVhZHk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3Jlc3VsdF90eXBlKCR0eXBlKQogIHsKICAgICAgLy8gY3VycmVudGx5IG5vdCB1c2VkIGluIHRoZSByZXN1bHRzZXQsIG1heSByZW1vdmUKICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICBjYXNlIHNlbGY6OlJFU1VMVF9UWVBFX0lEOgogICAgY2FzZSBzZWxmOjpSRVNVTFRfVFlQRV9MSVNUOgogICAgY2FzZSBzZWxmOjpSRVNVTFRfVFlQRV9GVUxMOgogICAgICAkdGhpcy0+X3Jlc3VsdF90eXBlID0gJHR5cGU7CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0ludmFsaWQgcmVzdWx0IHR5cGUgJy4kdHlwZSk7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Jlc3VsdF90eXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9yZXN1bHRfdHlwZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfc29ydGJ5KCR2YWwpCiAgewogICAgc3dpdGNoKCAkdmFsICkgewogICAgY2FzZSBzZWxmOjpSRVNVTFRfU09SVEJZX1VTRVJOQU1FOgogICAgY2FzZSBzZWxmOjpSRVNVTFRfU09SVEJZX0NSRUFURUQ6CiAgICBjYXNlIHNlbGY6OlJFU1VMVF9TT1JUQllfRVhQSVJFUzoKICAgICAgJHRoaXMtPl9zb3J0YnkgPSAkdmFsOwogICAgICBicmVhazsKCiAgICBkZWZhdWx0OgogICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnZhbGlkIHNvcnRieSB2YWx1ZTogJy4kdmFsKTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc29ydGJ5KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9zb3J0Ynk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NvcnRvcmRlcigkdmFsKQogIHsKICAgIHN3aXRjaCggJHZhbCApIHsKICAgIGNhc2Ugc2VsZjo6UkVTVUxUX1NPUlRPUkRFUl9BU0M6CiAgICBjYXNlIHNlbGY6OlJFU1VMVF9TT1JUT1JERVJfREVTQzoKICAgICAgJHRoaXMtPl9zb3J0b3JkZXIgPSAkdmFsOwogICAgICBicmVhazsKCiAgICBkZWZhdWx0OgogICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnZhbGlkIHNvcnRvcmRlciB2YWx1ZTogJy4kdmFsKTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc29ydG9yZGVyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9zb3J0b3JkZXI7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYWRkX2FuZF9vcHQoJHR5cGUsJHZhbHVlID0gbnVsbCkKICB7CiAgICAkdGhpcy0+X2FuZF9vcHRzW10gPSBuZXcgZmV1X3VzZXJfcXVlcnlfb3B0KCR0eXBlLCR2YWx1ZSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYWRkX2FuZF9vcHRfb2JqKGZldV91c2VyX3F1ZXJ5X29wdCYgJG9wdCkKICB7CiAgICAkdGhpcy0+X2FuZF9vcHRzW10gPSAkb3B0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGNvdW50X29wdHMoKQogIHsKICAgIHJldHVybiBjb3VudCgkdGhpcy0+X2FuZF9vcHRzKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0cygpCiAgewogICAgcmV0dXJuICR0aGlzLT5fYW5kX29wdHM7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gJmV4ZWN1dGUoKQogIHsKICAgICRycyA9IG5ldyBmZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQoJHRoaXMpOwogICAgcmV0dXJuICRyczsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/files/lib/class.feu_user_query_resultset.php.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBmZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQKewogICAgcHJpdmF0ZSAkX3F1ZXJ5OwogICAgcHJpdmF0ZSAkX2V4ZWN1dGVkOwogICAgcHJpdmF0ZSAkX3JzOwogICAgcHJpdmF0ZSAkX2ZvdW5kX3Jvd3M7CiAgICBwcml2YXRlICRfZ3JvdXBzOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChmZXVfdXNlcl9xdWVyeSAmJHF1ZXJ5KQogICAgewogICAgICAgICR0aGlzLT5fcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJHRoaXMtPl9leGVjdXRlKCRxdWVyeSk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X2dyb3VwcygpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2dyb3VwcykgKSB7CiAgICAgICAgICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgICAgICAgJHRtcCA9ICRmZXUtPkdldEdyb3VwTGlzdEZ1bGwoKTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgJHRoaXMtPl9ncm91cHMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnZ3JvdXBuYW1lJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+X2dyb3VwczsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9leGVjdXRlKCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICR3aGVyZSAgPSBhcnJheSgpOwogICAgICAgICRxcGFybXMgPSBhcnJheSgpOwogICAgICAgICRqb2lucyAgPSBhcnJheSgpOwogICAgICAgICRqY291bnQgPSAwOwogICAgICAgICRoYXZpbmcgPSBudWxsOwoKICAgICAgICAkcXJlYyA9ICdTRUxFQ1QgU1FMX0NBTENfRk9VTkRfUk9XUyB1LiosY291bnQobGkudXNlcmlkKSBBUyBsb2dnZWRpbiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyB1JzsKICAgICAgICAkam9pbnNbXSA9ICdMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2xvZ2dlZGluIGxpIE9OIHUuaWQgPSBsaS51c2VyaWQnOwoKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X3F1ZXJ5LT5nZXRfb3B0cygpIGFzICRvcHQgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJG9wdC0+Z2V0X3R5cGUoKSApIHsKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1VTRVJOQU1FOgogICAgICAgICAgICAgICAgJHdoZXJlW10gID0gJ3UudXNlcm5hbWUgTElLRSA/JzsKICAgICAgICAgICAgICAgICRleHByID0gc3RyX3JlcGxhY2UoJyonLCclJywkb3B0LT5nZXRfZXhwcigpKTsKICAgICAgICAgICAgICAgICRleHByID0gc3RyX3JlcGxhY2UoJyUlJywnJScsJGV4cHIpOwogICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJGV4cHI7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9VU0VSTkFNRV9SRToKICAgICAgICAgICAgICAgICR3aGVyZVtdICA9ICd1LnVzZXJuYW1lIFJFR0VYUCAnLiRkYi0+cXN0cigkb3B0LT5nZXRfZXhwcigpKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1BBU1NXT1JEOgogICAgICAgICAgICAgICAgJHdoZXJlW10gID0gJ3UucGFzc3dvcmQgPSA/JzsKICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICRvcHQtPmdldF9leHByKCk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9OT1RFWFBJUkVEOgogICAgICAgICAgICAgICAgJHRtcCA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpIC0gMzApOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAidS5leHBpcmVzID4geyR0bXB9IjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX0VYUElSRVNfTFQ6CiAgICAgICAgICAgICAgICAkdG1wID0gJGRiLT5EYlRpbWVTdGFtcCgkb3B0LT5nZXRfZXhwcigpKTsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gInUuZXhwaXJlcyA8IHskdG1wfSI7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9DUkVBVEVEX0dFOgogICAgICAgICAgICAgICAgJHRtcCA9ICRkYi0+RGJUaW1lU3RhbXAoJG9wdC0+Z2V0X2V4cHIoKSk7CiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICJ1LmNyZWF0ZWRhdGUgPj0geyR0bXB9IjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX0NSRUFURURfTFQ6CiAgICAgICAgICAgICAgICAkdG1wID0gJGRiLT5EYlRpbWVTdGFtcCgkb3B0LT5nZXRfZXhwcigpKTsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gInUuY3JlYXRlZGF0ZSA8IHskdG1wfSI7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9HUk9VUDoKICAgICAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+X2dldF9ncm91cHMoKTsKICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRtcFskb3B0LT5nZXRfZXhwcigpXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCB2YWx1ZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIGJsIE9OIHUuaWQgPSBibC51c2VyaWQnOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnYmwuZ3JvdXBpZCA9ID8nOwogICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJHRtcFskb3B0LT5nZXRfZXhwcigpXVsnaWQnXTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX0xPR0dFRElOOgogICAgICAgICAgICAgICAgJGhhdmluZyA9ICdjb3VudChsaS51c2VyaWQpID4gMCc7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9HUk9VUElEOgogICAgICAgICAgICAgICAgJGV4cHIgPSAkb3B0LT5nZXRfZXhwcigpOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRleHByKSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkZXhwciBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICAgICAkb25lID0gKGludCkkb25lOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9uZSA8IDEgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkb25lLCR0bXApICkgJHRtcFtdID0gJG9uZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApID09IDAgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyB2YWxpZCBncm91cCBpZHMgc3BlY2lmaWVkJyk7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIGJsIE9OIHUuaWQgPSBibC51c2VyaWQnOwogICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ2JsLmdyb3VwaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHRtcCkuJyknOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIGJsIE9OIHUuaWQgPSBibC51c2VyaWQnOwogICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ2JsLmdyb3VwaWQgPSA/JzsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkZXhwcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1VTRVJOQU1FTElTVDoKICAgICAgICAgICAgICAgICR0bXAgPSAkb3B0LT5nZXRfZXhwcigpOwogICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApICR0bXAgPSBleHBsb2RlKCcsJywkdG1wKTsKICAgICAgICAgICAgICAgICR0bXAyID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wMltdID0gIiciLnRyaW0oJG9uZSkuIiciOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRtcDIgPSBhcnJheV91bmlxdWUoJHRtcDIpOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAndS51c2VybmFtZSBJTiAoJy5pbXBsb2RlKCcsJywkdG1wMikuJyknOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfVVNFUkxJU1Q6CiAgICAgICAgICAgICAgICAkdG1wID0gJG9wdC0+Z2V0X2V4cHIoKTsKICAgICAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICAgICAgICAgICAgICAkdG1wMiA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoIChpbnQpJG9uZSA8IDEgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkdG1wMltdID0gKGludCkkb25lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRtcDIgPSBhcnJheV91bmlxdWUoJHRtcDIpOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAndS5pZCBJTiAoJy5pbXBsb2RlKCcsJywkdG1wMikuJyknOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfUFJPUEVSVFk6CiAgICAgICAgICAgICAgICAkZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgICAgICAgICAkZGVmbnMgPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCRvcHQtPmdldF9leHByKCksYXJyYXlfa2V5cygkZGVmbnMpKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ2ludmFsaWQgdmFsdWUnKTsKICAgICAgICAgICAgICAgICRqY291bnQrKzsKICAgICAgICAgICAgICAgICRqb2luc1tdID0gJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBwcnskamNvdW50fQogICAgICAgICAgICAgICAgICAgIE9OIHByeyRqY291bnR9LnVzZXJpZCA9IHUuaWQiOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAicHJ7JGpjb3VudH0udGl0bGUgPSAnIi4kb3B0LT5nZXRfZXhwcigpLiInIjsKICAgICAgICAgICAgICAgIGlmKCAkb3B0LT5nZXRfb3B0KCkgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoIHN0cnN0cigkb3B0LT5nZXRfb3B0KCksJyonKSA9PT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gInByeyRqY291bnR9LmRhdGEgPSAnIi4kb3B0LT5nZXRfb3B0KCkuIiciOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAicHJ7JGpjb3VudH0uZGF0YSBMSUtFICciLnN0cl9yZXBsYWNlKCcqJywnJScsJG9wdC0+Z2V0X29wdCgpKS4iJyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfUFJPUEVSVFlfUkU6CiAgICAgICAgICAgICAgICAkZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgICAgICAgICAkZGVmbnMgPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCRvcHQtPmdldF9leHByKCksYXJyYXlfa2V5cygkZGVmbnMpKSApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdpbnZhbGlkIHZhbHVlJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkamNvdW50Kys7CiAgICAgICAgICAgICAgICAkam9pbnNbXSA9ICdMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMgcHJ7JGpjb3VudH0KICAgICAgICAgICAgICAgICAgICAgIE9OIHByeyRqY291bnR9LnVzZXJpZCA9IHUuaWQKICAgICAgICAgICAgICAgICAgICAgQU5EIHByeyRqY291bnR9LnRpdGxlID0gJyIuJG9wdC0+Z2V0X2V4cHIoKS4iJyI7CiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICJwcnskamNvdW50fS5kYXRhIFJFR0VYUCAiLiRkYi0+cXN0cigkb3B0LT5nZXRfb3B0KCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGFzc2VtYmx5CiAgICAgICAgaWYoIGNvdW50KCRqb2lucykgKSAkcXJlYyAuPSAnICcuaW1wbG9kZSgnICcsJGpvaW5zKTsKICAgICAgICBpZiggY291bnQoJHdoZXJlKSApICRxcmVjIC49ICJcbldIRVJFICIuaW1wbG9kZSgnIEFORCAnLCR3aGVyZSk7CgogICAgICAgICRvcmRlcmJ5ID0gJ3VzZXJuYW1lJzsKICAgICAgICBzd2l0Y2goICR0aGlzLT5fcXVlcnktPmdldF9zb3J0YnkoKSApIHsKICAgICAgICBjYXNlIGZldV91c2VyX3F1ZXJ5OjpSRVNVTFRfU09SVEJZX1VTRVJOQU1FOgogICAgICAgICAgICAkb3JkZXJieSA9ICd1c2VybmFtZSc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUQllfQ1JFQVRFRDoKICAgICAgICAgICAgJG9yZGVyYnkgPSAnY3JlYXRlZGF0ZSc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUQllfRVhQSVJFUzoKICAgICAgICAgICAgJG9yZGVyYnkgPSAnZXhwaXJlcyc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgc3dpdGNoKCAkdGhpcy0+X3F1ZXJ5LT5nZXRfc29ydG9yZGVyKCkgKSB7CiAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRPUkRFUl9BU0M6CiAgICAgICAgICAgICRvcmRlcmJ5IC49ICcgQVNDJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRPUkRFUl9ERVNDOgogICAgICAgICAgICAkb3JkZXJieSAuPSAnIERFU0MnOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgICRxcmVjIC49ICcgR1JPVVAgQlkgdS5pZCc7CiAgICAgICAgaWYoICRoYXZpbmcgKSAkcXJlYyAuPSAnIEhBVklORyAnLiRoYXZpbmc7CiAgICAgICAgJHFyZWMgLj0gJyBPUkRFUiBCWSAnLiRvcmRlcmJ5OwoKICAgICAgICAkdGhpcy0+X3JzID0gJGRiLT5TZWxlY3RMaW1pdCgkcXJlYywkdGhpcy0+X3F1ZXJ5LT5nZXRfcGFnZWxpbWl0KCksJHRoaXMtPl9xdWVyeS0+Z2V0X29mZnNldCgpLCRxcGFybXMpOwogICAgICAgIGlmKCAhJHRoaXMtPl9ycyApIHRocm93IG5ldyBFeGNlcHRpb24oJ0lOVEVSTkFMIEVSUk9SOiBRdWVyeSBmYWlsZWQgLSAnLiRkYi0+c3FsLicgLS0gJy4kZGItPkVycm9yTXNnKCkpOwogICAgICAgICR0aGlzLT5fZm91bmRfcm93cyA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgRk9VTkRfUk9XUygpJyk7CgogICAgICAgIC8vIHRoaXMgcHJlbG9hZHMgdGhlIHVzZXIgaW5mby4KICAgICAgICAkdWlkcyA9IGFycmF5KCk7CiAgICAgICAgd2hpbGUoICEkdGhpcy0+X3JzLT5FT0YgKSB7CiAgICAgICAgICAgIGZldV91c2VyX2NhY2hlOjpzZXRfbmV3X3VzZXIoJHRoaXMtPl9ycy0+ZmllbGRzKTsKICAgICAgICAgICAgJHVpZHNbXSA9ICR0aGlzLT5fcnMtPmZpZWxkc1snaWQnXTsKICAgICAgICAgICAgJHRoaXMtPl9ycy0+TW92ZU5leHQoKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9ycy0+TW92ZUZpcnN0KCk7CgogICAgICAgIGlmKCBjb3VudCgkdWlkcykgJiYgJHRoaXMtPl9xdWVyeS0+Z2V0X2RlZXAoKSApIHsKICAgICAgICAgICAgLy8gdXNlcnMgYXJlIGFscmVhZHkgbG9hZGVkIChzaGFsbG93KS4uLiB0aGlzIHdpbGwgZ2V0IHByb3BlcnR5IGluZm9ybWF0aW9uLgogICAgICAgICAgICBmZXVfdXNlcl9jYWNoZTo6bG9hZF91c2VycygkdWlkcyxUUlVFKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5fZXhlY3V0ZWQgPSBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBSZWNvcmRDb3VudCgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+UmVjb3JkQ291bnQoKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gTW92ZU5leHQoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVOZXh0KCk7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBNb3ZlRmlyc3QoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVGaXJzdCgpOwogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gRU9GKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5FT0YoKTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gQ2xvc2UoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPkNsb3NlKCk7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgaWYoICRrZXkgPT0gJ0VPRicgJiYgJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5FT0Y7CgogICAgICAgIGlmKCAka2V5ID09ICdmaWVsZHMnICYmICR0aGlzLT5fcnMgKSB7CiAgICAgICAgICAgICRyZWMgPSBmZXVfdXNlcl9jYWNoZTo6Z2V0X3VzZXIoJHRoaXMtPl9ycy0+ZmllbGRzWydpZCddKTsKICAgICAgICAgICAgaWYoICR0aGlzLT5fcXVlcnktPmdldF93ZWJyZWFkeSgpICkgewogICAgICAgICAgICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgICAgICAgICAgaWYoICRmZXUtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlY1snZW1haWwnXSA9ICRyZWNbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1bnNldCgkcmVjWydwYXNzd29yZCddKTsKICAgICAgICAgICAgICAgICRkZWZucyA9ICRmZXUtPkdldFByb3BlcnR5RGVmbnMoKTsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcmVjWydmcHJvcHMnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJHJlY1snZnByb3BzJ10gYXMgJiRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhJGZldS0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkZGVmbnNbJG9uZVsndGl0bGUnXV1bJ3R5cGUnXSA9PSBGcm9udEVuZFVzZXJzOjpGSUVMRFRZUEVfRU1BSUwgJiYgIWlzc2V0KCRyZWNbJ2VtYWlsJ10pICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWNbJ2VtYWlsJ10gPSAkb25lWydkYXRhJ107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRkZWZuc1skb25lWyd0aXRsZSddXVsndHlwZSddID09IEZyb250RW5kVXNlcnM6OkZJRUxEVFlQRV9JTUFHRSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgZnVsbCB1cmwuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9uZVsndXJsJ10gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvZmV1c2Vycy8nLiRvbmVbJ2RhdGEnXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggIWlzc2V0KCRyZWNbJ2VtYWlsJ10pICYmIGlzX2VtYWlsKCRyZWNbJ3VzZXJuYW1lJ10pICkgJHJlY1snZW1haWwnXSA9ICRyZWNbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgIHJldHVybiAkcmVjOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZvdW5kX3Jvd3MoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9ycyApIHJldHVybjsKICAgICAgICByZXR1cm4gJHRoaXMtPl9mb3VuZF9yb3dzOwogICAgfQoKfSAvLyBjbGFzcwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/graphs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/graphs/class.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAgICAgPGxpbmsgaHJlZj0iLi4vY3NzL2pxdWVyeS5pdmlld2VyLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICA8c3R5bGU+CiAgICAgICAgI3ZpZXdlciB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgfQogICAgICAgIC53cmFwcGVyIHsKICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB9CiAgICA8L3N0eWxlPgoKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgICAgICA8c2NyaXB0IHNyYz0iLi4vanMvanF1ZXJ5Lm1vdXNld2hlZWwubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii4uL2pzL2pxdWVyeS5pdmlld2VyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgICQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKXsKICAgICAgICAgICAgJCgiI3ZpZXdlciIpLmhlaWdodCgkKHdpbmRvdykuaGVpZ2h0KCkgLSAxMDApOwogICAgICAgIH0pOwoKICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAgICAgICAgICAgJCgiI3ZpZXdlciIpLml2aWV3ZXIoe3NyYzogJy4uL2dyYXBocy9jbGFzc2VzLnN2ZycsIHpvb21fYW5pbWF0aW9uOiBmYWxzZX0pOwogICAgICAgICAgICAkKCcjdmlld2VyIGltZycpLmJpbmQoJ2RyYWdzdGFydCcsIGZ1bmN0aW9uKGV2ZW50KXsKICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAkKHdpbmRvdykucmVzaXplKCk7CiAgICAgICAgfSk7CiAgICA8L3NjcmlwdD4KCiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii4uL2ltYWdlcy9mYXZpY29uLmljbyIvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi5wbmciLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjcyeDcyIiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi03Mng3Mi5wbmciLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjExNHgxMTQiIGhyZWY9Ii4uL2ltYWdlcy9hcHBsZS10b3VjaC1pY29uLTExNHgxMTQucG5nIi8+CjwvaGVhZD4KPGJvZHk+Cgo8ZGl2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWZpeGVkLXRvcCI+CiAgICA8ZGl2IGNsYXNzPSJuYXZiYXItaW5uZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxhIGNsYXNzPSJidG4gYnRuLW5hdmJhciIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iLm5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1lbGxpcHNpcy12ZXJ0aWNhbCI+PC9pPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDxhIGNsYXNzPSJicmFuZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+RnJvbnRFbmRVc2VycyAyLjIuMC42PC9hPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2IHB1bGwtcmlnaHQiPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9pbmRleC5odG1sIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJIERvY3VtZW50YXRpb24gPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0iY2hhcnRzLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcnRzIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vZ3JhcGhzL2NsYXNzLmh0bWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1saXN0LWFsdCI+PC9pPiYjMTYwO0NsYXNzIGhpZXJhcmNoeSBkaWFncmFtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iIGlkPSJyZXBvcnRzLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3J0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL3JlcG9ydHMvZXJyb3JzLmh0bWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1saXN0LWFsdCI+PC9pPiYjMTYwO0Vycm9ycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij45ODwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL3JlcG9ydHMvbWFya2Vycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtNYXJrZXJzIDxzcGFuIGNsYXNzPSJsYWJlbCBsYWJlbC1pbmZvIHB1bGwtcmlnaHQiPjA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwhLS08ZGl2IGNsYXNzPSJnb190b190b3AiPi0tPgogICAgPCEtLTxhIGhyZWY9IiNfX18iIHN0eWxlPSJjb2xvcjogaW5oZXJpdCI+QmFjayB0byB0b3AmIzE2MDsmIzE2MDs8aSBjbGFzcz0iaWNvbi11cGxvYWQgaWNvbi13aGl0ZSI+PC9pPjwvYT4tLT4KICAgIDwhLS08L2Rpdj4tLT4KPC9kaXY+Cgo8ZGl2IGlkPSJfX18iIGNsYXNzPSJjb250YWluZXItZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjEyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0id3JhcHBlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ2aWV3ZXIiIGNsYXNzPSJ2aWV3ZXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxmb290ZXIgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgZm9vdGVyLXNlY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYmFyLWNoYXJ0Ij48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vZ3JhcGhzL2NsYXNzLmh0bWwiPkNsYXNzIEhpZXJhcmNoeSBEaWFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLXB1c2hwaW4iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj5FcnJvcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvbWFya2Vycy5odG1sIj5NYXJrZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQxIj4KICAgICAgICAgICAgICAgICAgICA8aHIgLz4KICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uIGlzIHBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5waHBkb2Mub3JnLyI+cGhwRG9jdW1lbnRvciA8L2E+IGFuZCBhdXRob3JlZAogICAgICAgICAgICAgICAgICAgIG9uIE5vdmVtYmVyIDMwdGgsIDIwMTYgYXQgMTM6NTMuCiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICA8L3NlY3Rpb24+CiAgICA8L2Zvb3Rlcj4KPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4K]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/graphs/classes.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIEdlbmVyYXRlZCBieSBncmFwaHZpeiB2ZXJzaW9uIDIuMzYuMCAoMjAxNDAxMTEuMjMxNSkKIC0tPgo8IS0tIFRpdGxlOiBHIFBhZ2VzOiAxIC0tPgo8c3ZnIHdpZHRoPSIzNTJwdCIgaGVpZ2h0PSIyNThwdCIKIHZpZXdCb3g9IjAuMDAgMC4wMCAzNTIuMDAgMjU4LjAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGcgaWQ9ImdyYXBoMCIgY2xhc3M9ImdyYXBoIiB0cmFuc2Zvcm09InNjYWxlKDEgMSkgcm90YXRlKDApIHRyYW5zbGF0ZSg0IDI1NCkiPgo8dGl0bGU+RzwvdGl0bGU+Cjxwb2x5Z29uIGZpbGw9IndoaXRlIiBzdHJva2U9Im5vbmUiIHBvaW50cz0iLTQsNCAtNCwtMjU0IDM0OCwtMjU0IDM0OCw0IC00LDQiLz4KPGcgaWQ9ImNsdXN0MSIgY2xhc3M9ImNsdXN0ZXIiPjx0aXRsZT5jbHVzdGVyX0dsb2JhbDwvdGl0bGU+CjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iZ3JheSIgZD0iTTIwNCwtOEMyMDQsLTggMzI0LC04IDMyNCwtOCAzMzAsLTggMzM2LC0xNCAzMzYsLTIwIDMzNiwtMjAgMzM2LC0yMzAgMzM2LC0yMzAgMzM2LC0yMzYgMzMwLC0yNDIgMzI0LC0yNDIgMzI0LC0yNDIgMjA0LC0yNDIgMjA0LC0yNDIgMTk4LC0yNDIgMTkyLC0yMzYgMTkyLC0yMzAgMTkyLC0yMzAgMTkyLC0yMCAxOTIsLTIwIDE5MiwtMTQgMTk4LC04IDIwNCwtOCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNjQiIHk9Ii0yMjkuMiIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjExLjAwIiBmaWxsPSJncmF5Ij5HbG9iYWw8L3RleHQ+CjwvZz4KPCEtLSBcXGZldV91c2VyX3F1ZXJ5X29wdCAtLT4KPGcgaWQ9Im5vZGUxIiBjbGFzcz0ibm9kZSI+PHRpdGxlPlxcZmV1X3VzZXJfcXVlcnlfb3B0PC90aXRsZT4KPHBvbHlnb24gZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMTYsLTIxNCAyMTIsLTIxNCAyMTIsLTE3OCAzMTYsLTE3OCAzMTYsLTIxNCIvPgo8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSIyNjQiIHk9Ii0xOTMuMiIgZm9udC1mYW1pbHk9IlRpbWVzLHNlcmlmIiBmb250LXNpemU9IjExLjAwIj5mZXVfdXNlcl9xdWVyeV9vcHQ8L3RleHQ+CjwvZz4KPCEtLSBcXGZldV91c2VyX3F1ZXJ5IC0tPgo8ZyBpZD0ibm9kZTIiIGNsYXNzPSJub2RlIj48dGl0bGU+XFxmZXVfdXNlcl9xdWVyeTwvdGl0bGU+Cjxwb2x5Z29uIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzA2LjUsLTE2MCAyMjEuNSwtMTYwIDIyMS41LC0xMjQgMzA2LjUsLTEyNCAzMDYuNSwtMTYwIi8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI2NCIgeT0iLTEzOS4yIiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTEuMDAiPmZldV91c2VyX3F1ZXJ5PC90ZXh0Pgo8L2c+CjwhLS0gXFxGcm9udEVuZFVzZXJzIC0tPgo8ZyBpZD0ibm9kZTMiIGNsYXNzPSJub2RlIj48dGl0bGU+XFxGcm9udEVuZFVzZXJzPC90aXRsZT4KPHBvbHlnb24gZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIzMDUuNSwtMTA2IDIyMi41LC0xMDYgMjIyLjUsLTcwIDMwNS41LC03MCAzMDUuNSwtMTA2Ii8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI2NCIgeT0iLTg1LjIiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxMS4wMCI+RnJvbnRFbmRVc2VyczwvdGV4dD4KPC9nPgo8IS0tIFxcQ0dFeHRlbnNpb25zIC0tPgo8ZyBpZD0ibm9kZTUiIGNsYXNzPSJub2RlIj48dGl0bGU+XFxDR0V4dGVuc2lvbnM8L3RpdGxlPgo8ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBjeD0iNjQiIGN5PSItODgiIHJ4PSI2My44ODkzIiByeT0iMTgiLz4KPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgeD0iNjQiIHk9Ii04NC4zIiBmb250LWZhbWlseT0iVGltZXMsc2VyaWYiIGZvbnQtc2l6ZT0iMTQuMDAiIGZpbGw9ImdyYXkiPlxDR0V4dGVuc2lvbnM8L3RleHQ+CjwvZz4KPCEtLSBcXEZyb250RW5kVXNlcnMmIzQ1OyZndDtcXENHRXh0ZW5zaW9ucyAtLT4KPGcgaWQ9ImVkZ2UxIiBjbGFzcz0iZWRnZSI+PHRpdGxlPlxcRnJvbnRFbmRVc2VycyYjNDU7Jmd0O1xcQ0dFeHRlbnNpb25zPC90aXRsZT4KPHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgZD0iTTIyMi40NTQsLTg4QzE5OC4xNywtODggMTY2LjU3NCwtODggMTM4LjA2NiwtODgiLz4KPHBvbHlnb24gZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgcG9pbnRzPSIxMzcuNzIyLC04NC41MDAxIDEyNy43MjIsLTg4IDEzNy43MjIsLTkxLjUwMDEgMTM3LjcyMiwtODQuNTAwMSIvPgo8L2c+CjwhLS0gXFxmZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQgLS0+CjxnIGlkPSJub2RlNCIgY2xhc3M9Im5vZGUiPjx0aXRsZT5cXGZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldDwvdGl0bGU+Cjxwb2x5Z29uIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHBvaW50cz0iMzI4LC01MiAyMDAsLTUyIDIwMCwtMTYgMzI4LC0xNiAzMjgsLTUyIi8+Cjx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjI2NCIgeT0iLTMxLjIiIGZvbnQtZmFtaWx5PSJUaW1lcyxzZXJpZiIgZm9udC1zaXplPSIxMS4wMCI+ZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0PC90ZXh0Pgo8L2c+CjwvZz4KPC9zdmc+Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/images/apple-touch-icon-72x72.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wCBBQgAaUmrVsAACAASURBVHjaZLx5uCVVfe/9WWNV7b3P1DNDN5MgUUAEREFA0RBnxUSS9/VC9GZyiEbjFI3JjVFzbxKSaEz0isZIMM5JnCcERVCJDCJCi8xN0/OZzx6qao3vH7XVPHnPX6ef8+x+dq1a61ffsQT/7UdKSUqJQb/PaDwWgAJ6b3zV7zx+26aZHUZQlIWWMmUhhRRSCLIQKK3JyuJdg1SKHAJGSgBSjiQUKSdySkgyOXps0SMqRU4ZUsIUluwcpEzSkpghxYiWEi0VKQVyziSlSd4jpESSUUojlaF1NUIZckrE0GJNgciZTMo55rwxGaY2Cre4Pj78nqs+ejcwBuLsoJ83RuOfX/t//RH/9R9KKWKMKClFTMkAC+95x1tf9+THn/xanX2xdGi/OXLkEEcOH2Y0aSiERAhQSlBagzaWNgRS8qQICoFUkhgiLmeiAGImhRYlFL2qIJEQWZCkoldo6nFNjBlTapyPZCGRKVFoTQZ8ziAlddNilcSIhDEaayrWxyNMUdA4T46BTYMZWh8J3oMSzMwtsHlhns07jvZB2vbOBx798B9d+f4rU/DLUsqQUkpaSsJ/WSTx33fQ/Exfrg3HM//7za/57TOP3/GWMFzbvu+RB/NkMiGCcCmCVDmGIEChRSbnhDWGfr8khEDjHMaUxBBQUhBTJIRAVqbbFcGjMlSlRSkFWuNcy0xR4HwkhIg2Ep8FMXiEEFTWEEIi5ETKUDcN/arEak1pLY1zuBBACOo2MFdZhIAQIjFmxq3LbQxCASGEPNPr85jjTxD9LduP7N639LdvvfL9Vw3KYjhq2vT/20FSClLKCIHKmYW/e9trr9w1a15+z113JWuEKIpCKKXQWtO4Bpe6LxnaFikNOQWssZSFRhuJQyNypq0nGGmQUuKjJ+ZIiBkhQERBryqRKpOlIqZEaRW+aQkhYwqNS0DqznhhLW3bIqymaRwpZSprsFqDiLQxk3xD7SJFUdHTmZg1MSZq56jbhsIW5BSJMWGVIfiQSTGf9cSz5Z5x+thr3vV3bwaWgSCFIOWMAsgZZnuVan2Y/+Cfve6jvTT5jd2778ptCtJoIwprQYLUEmsMWQgyGam6C7PGAolMpqhKSIGYM8aWkDPaKqRUCCkQQiKEQEiJMRpjNFIJUooYJUEYEKDLguRbco4UVYUQmZQTSIFrW2xpsVpjrCZGR0KC0OQs6RUCpQtSTDjf0oaIlgKtFTlnrDGIbjaKkII4cPhw3jTXf8KzLzzv8V/97q1fm+mVbetDZjqAAWTrw+yf/v7L373FpMvv3v2TbLUQtihw3qOVwlqDEAlBd5xiSkipEVIQU0ILiZQSCZS9PilnJJGUM0ZpyAm0ATJkIEaMsSjhSXRzRSuNkgpyQhtLiiAkaCVQUpNzQmhNzlAYi1ZgraX1EVIgRCjKgsJovA8kBONmgtEWLTMoRbc0AoFAKo2UknHTiD2P7s9bZquTzzn77E3f/P7t3wEckH+2QMVLnvOMFz77cTv/8r777stCCSG1ykYbYazGBTf98hIBKG272UI3T7KQZDJKdndIaxBSknOenuKMVBIx/V1ojRQSiJS9GZCSFFqsLUg5k1JAGUsIHoSgLAqCd8QcSFmQc8IYhTaKjCBMv0PKmcoqEJLgPSEkEgJbWnIGLTVKqe5JKgVSKSZtQ5tEtkaL8XiUn/RLJ59t+/2f/vjeh34KBDm9gi1PPXXXK39y7725bRtKo7DGCsiIDEoqah8IKSO0JaXu0Wu1QhuDMYqUM0IIcs7EkDBaIZVCKUgJRE4oKZACREoIKZBSkpl+WakQSiOlwJii2y1SoISAHBFSom1JThGtJFpJjNZ416CtxTtHaTVaCvL0KeRzxBQWMYUvStB93miklrgYccFTGCX6vRJS5J7dd+dzT9n1CmALICVQAkftmOtd6JzPSmuRYsJKMFqDBGMKlNYMxxPatiUjiBmUCGijESJjrKH1DSQIMZNjRKoOBwktu7OSE8ZYBJFMJqVIShEhBMoYgq+72UAiJ4/UCkHuLlAIUnCkGFBKoaQgZ8jS4NoWKQWF1YQYcc0YF3N35KUgOI+WqpubQgKZ1nlG4yFGa6zqbl6/rISrh2yZqc4DdgKFAmaveMEz/qJMk9OEFMIYmRFKSClREoSQpOAQUiKkxPmIEiAEICRaCHw7QeiK3EEASBEpQIo8vbxE9C1KaWJwHRjLIFAoEZGyOyoiJ8gCKRRZQM55OtQhATFEQGGtRsmMD4kUHN4nCmuJviUmQUgCHzxaK6IPKNntIDIIKaibGhcS1hrKskKikDlQ2AKljDApsOukx+y45a57vyKBmeOPmn/G/gMHObS0lKXUorCSnBMpJAqj0Vp1w9U7hMgMa0eMqbuDKdAfzCJ8gwRSaIFMCLlbyJyROZOzREmJFBJtLCIlIBNDJERHaGui94TgidHh64YwGdNNOhBCdLhKK7ToBmxoW1IS5BjQSiGkJvia1jmM1YS2QRKRCFKMQGRST3Cpm5OFVkjAToGuINN6l/ctLrKpL88DZjQwY9y4wJY5eScOLi+zbfNmBr2C1jmapu0e7THiEBihgMRw0jDoVd1Fx4gpS2JdI4ylrVtEBc0kUAz6NJMaITqslXPmoQcf5NG9j3LsiY/n1Ceew7EnPZaFbcdQ9vuQoRkPWTr8KPsevI89P7mdg3seYPtROzh61wnI5BDK4kPqkHXKFGVBzuDqGp81yghC65DKIoUkJIcg432miVAWBTJ1WKosFEooXAiMm5ZR68Wo9WxXWv9sgcrkvRiPN5ibWwAyyxsbOGeZH1QoqfEhoJTESAiuQSpNIrG+vsb83AyZjDEF0WhCyiQj8D4gpMZ4DzmyNhwxHrbMHn0cL3nduznvkhf+NwzfkvP0KSdst2ORP//rjV/7N677t4+TJsvMVSPKskdEIIVECU1wDQGIoUEiQCkkCXI3d1yM1ClhjUKkFqUNpTXk6PFJ0rSR9dGYxkdcTFmRJNDXgO5JAaIbdr2yIOfMuG6IWbB5to9REec8WmmkTvjYgcSkFeOJZ6ZXkGOitIZJE5B0xyGJzP4jixwZjnnNX1zFSY97ImWvO5qwTM4WIRpgnpzHCGEAQ84BIWogk3OFEJELn30JFz3n2dQTuOfW73HVu/6QrbMz7DjmKHJKeO+JCbQpCSlipnBAaU3dOCatxxqBUSUSQaXNFFULxq1j2HSfF1KRnRdSKaG0LjUgC1uI2V4pAJq2oap6FEoSY2RxZZ25QYU1mpASKQSM0bi220mtd0CmXxkUisIoUpSsjUYcCYoX/tabefqLXgI05NyQs0AIDVQIEUhpQIoB6BNjB0SFBCE0SmWEzNNdJck5UlaGs572y1z1tJ9w7Weu4Tv//k/0NBhbIrUmBo8SkHJCa0vd1DQhURqF0hoRW4rCksk0LjJpPRPnSSGRSYiUKZSmlFIAQgOsra3S1C3zM32kNNSuJSuJLSzJeVaHEyqjGPQKglYQE6UtcSmhixIfA5MaBhWIFDhwYD/HPu4C/uD/vA8pN8h5HZAIochZ4NrE6qEj7Hvwpxx64G5GR/ZQT9ZZfnQfutBs3rGTrAq2HHsiR518OkedeCrz2xewdg4hAjkPAccll13GxZf+Bn/9h7/Dnrtv4YRTTkQKUGSEMbQuMJrUDAYDIGNkh8BThknTMm4dPsYOWWuJih2odI3Htw0/XyDTK3BrY4aTml5VMChLMuBaj1ICqxR1CPhhZH52QEyemAJaSnwISKkIMbK6VhOS4KVvupKzn34JOR/5OZsRYo7Dex/g7pu+wdJDuylUJucIWbBl0Cf0DMds34HIAkTC+YQ//AAHV/dy/42fx6M55pQncOpTn8X2nceSsyJnh7aJt7//w9z4la/x6ff8ObuO3oSwlqZxuJjp9/vkGKjKAq06mFK3nnHTdjAw08EZBNJomrah8RGhBwBogLoNVL0KI6GeTEgx0u+V9Kym9YGYA5rufK5tjJnpWRSdjFEZiw+e4caQtYngHVd/li07tpLSCCEUQpSM1mtu/8Y/sfe2bzLoVWyamcP5ho2NMa0LjIfrCKloJxO01kiRCVlhtKSsAkoZ5nuWZs8dfO3Wb7HrnEt48nMvpT9XkHMg5SEXPe857Dr5sXzoT15F2YyQRUGhBDkm+r2KnCN146hbh5seJ4VE6o4See+JMSMRGGMQ3QM3K2DnGccuXHFkdWitsfR7fZSkkxaExEqBNhofI0IolBJMGk/yLYXSZDLeeZbG8Fef+Qpzm+J0ZhiEmOfmL32eb1/zD7B+iIW5eYbjEUeWVnCNZ1KPmUxqUkzk2OJSIoZEjJHReISUGte2rK8PaVuHkAJjC9zaYe6+4euMa8nOx54JYgNyZH5zxdkX/xpf/MQnmJ8tIAcG/Q7Ajsc14ybgQkAIidEGTacipJgAgdaamCK1Cyij/Pfu2fdJCVCUJZAZTiYsra/S+E6wyjniQiQnGBQFkkCKEaMhSU2dMxBZn3j+4prP0p8BMAjhaCaRL/7DO3j0B19kbmAY1RMOHT7EpK5pmiGTyQakhJSSmALEAEKSY0CIjLaG6BuatsX7Fl9vsHTkCMtrq7T1iLnZip9++9/41JXvpBmXHTTIgYWthj/7509xaHGV2X6f4FrGtaeOmTxVIqw1KCFIOaKExCiFEJlJW9NGSEJiptJIt0BFQVkWFNZCiGwMh6yNminiVOQUqeuWQmp6VpNTp/Rl33LrbffxRx/8DLObuu0OmfFQ8/43/C5+8RGqsmJ9eYmV5UVWlhbJrUcrQ0oCSe7oSIiIDHjfDcwM2SeMUiQfURkQAh8zvm0Zrq1x4MA+tNXk1Uf46Nt+n8mo7TSp1LDt2Fne+Pf/yi0338bEQ+06oKilQJJI7QTSzzTzSBsiTdMCGiMlIid8iCBEt0ClEJS2QJMpqx79fr9j8HXD6toQFzNaiY4I+kghM7P9AYcOrPCKd7+XzdsBPEIoQij41z9/K5v7mbXhkIMHDkBKiAxCabx3qJQIriHFjAiJ6ANCKozRaJlxdYvRghQCITQoKQhtR0NkSngXGA0nLC8ukn3DQl/zkT95Kz7OgrSQBbtOPpYXv/7dHDm8hJUChUBLhQKsMojULYJLnVCvlQKRabynbhpc4xBiClWz6AQsawpKY7BKUxhDaTS2KBiNxqyOJ7Tek5PDtS2TjSHV3NE84wUXd6QSRw6ZD73pD5gVE2SOjIdDRnVLypmeUQjAuYhWBm01ccqJ2hBYXFrmuuu/w9333MeDB1d4+OFHEDkjhKLQhixUx+LJhJyJwSOjZ2V5kfX1dfps8E9vfi2CASIPyeMDXHr5C9gYZnJMKDJagNaGSKaNEaEUKkdSTjSh+76ubcg+IMSUOAO0raN1jratSTkhhaBQAiMF1kqq0lIUBW3rGdUBYSzL6zVv/8g/gag7tCAEN33pm9g4xsVEPZ5AjOSU2BjXnTSrBFkK6rbBCMmPfvhDliaCpXFk32LNG9/7Cd71ue9y5Vdu4jX/+O+w7WTuuXs3bVOzvLJCbBtCzoSUpvKspo2SxrWUVjNvam783BdACigL0Im/+sxnWVlaoyoKXAg03oHSCCHwITBpWpq6mSoFGVIHMnOcCn0AWUqkUkBn0UTvOqnUGEzOVEqhc6KqSgqjaVvPzic8jU1bKnIMQGL1iOb6f/57UHDw0H6G9RApJIUSSAltyGghGK+tsHf/Cqux5GXv+iCHHnmAC5/zq/z9dT/inEueSn9WkvOIY07axG/9+ft4xZX/wp13PYDecgKhfxyP7j8CrqXUBp8SUkClFOsrq4yayLUffR8rRwwoCzmx7dhNHP+E82lci5Ca5AP1ZELjAm3jOzoiQISIRELyWFN0ECnzix0UYqYNjpAhpIhva9q6JvjYCd1SUynJoKq4/eYf8/I3vhbaMfhI9pH3vfb3OP30k0lNS86J4COjegIJTPDs3bOPW+5+hGe95s955+e+yxuv+hgLm7fzvN99M3d880t85UN/SwxyysdKVg61fPSPX8Vo+Qhv+sh/cMJjTuaNH7iGt3/8m8TB0dx59/2InOipblauTyZM6gmnnLKTq97we+SUySkjcs2lr3wVt996N963tD50DwXvIQU0Eq0t2iqsMaAUtfeM2m4GaQDnPc57ysJ0OrCEQKYqOrnAhYAikbOGtuZ5L30Z23ZU5NQiEOx7ZI3BILP/yGFi01IpRRKK8XjC3g3HY895Ki971aWccf7T+OH1X+ZL//huWpeYmZ3lMWc9hT/97Le4+Yuf4Yt/8y6Of+J5LO3fR1GU/Mbb3k5v5ljuu/VGDuy+gztu+DJnPu0i3nzVp7n7Bzdz7dXv5757bmdh61zHr1xDchVzvczBPWscc2xJjpHjH7ODE8+4kOAOoMgoo8lKkjOEDClEJo3HhUBCEnxLjmWnswM7zzxm/oqN8cQWhZnq/RmlDGk6Q6RWhClOGY1qLn3NH7J91xaQCqG28Zkr/wbpVhmPxjTOda6DVgzXR1z+jvdz0aUvZO/dd/PVD17JrsefzjNe+krOuPCXWXz0AZb3PsT2k07kxDNO5JcufDFfv+pvef5r385JZ5+KEIEfXns9//mFT3DRS1/B7m9/jR9+83p2nnoSx516NOc//zIed8EzueHL32BW+w5iNA5rC+65+yHOffZzILQILZnZdBT33PQtqsp0nl5OTBpHGyI+po52CEHKiYhgYK2/bc/iJzWAEt1ZliGSRSIpScy5kznJ3UoqibGGI63l2JOOhbpFKMGoXuXB277D8ScehSEjlCTEzMR7Nm2a4/qPfYADTzqf4B2veO8/Aavk9AgIwQW/9qsc2XOIGz95DQvbj+K8X72Can4zMTjuuuEm9tx5Jyed/RRe/pd/hbElp1/wJB647Uf8x9/9DdtPOJlfefllHHXcLnZs30qaHCHljG8alNXsu/U7jNaHDCogek547DFsOIH0HhcSCTpxP2XIgkQi+k6Ew3skgZ/5Yjuf9vjjr2h8tEZ3yr+SGasVMsdOMZQdJlFGk808L7r8JYiptPqtL3yT0aGHaCYbCKHQJKyRyJwoq5LVwwdYWd7ACBitLrLjhJNRRkzNFEdvLnHKuc/myMMPcP01H2Bx34OsHtxPf36Bp/+P32LrrhIpWsCTc6aa24Qu5rj/5m/RjAU3fu7fGB+8twsexIgiU2jNYKZi5CpOPmEbIiZKW/Clz3yVuRnZzdWYOntJayChfmZKpc79HZTW37pnuaMatiiwRYGQCluWWGPQSlGUJYVRFEbTK0vGq+ucds65iDDuRnzO3PfDOykrg0PSxMCoaYhCYpThkfse5tQLX8DMlm0MjjqO4087l2uvuoql/RsIIYCAlFsYruxnce9eisEco9UhvflNrB1a5P5bvgtsR8hjWHxknR988XruvflWTnvq+Zx47gVc/8kP0+zfzea5AYXKGCVxKbDROJBw7x13QtUjx4jqWU45/TTqjRorMkZmekWFBrSUpBzIORJTAiGI0f+CzU9lKqTUpNyZfmnqLihlkFqiyLhxy0mPexyisIiUSbYiDVeQwSNjhyNyEoyHY+7dt8Jlb3w7v/LS3wDgqx/8MHd++xuc9+sv55YvfIoTzzyLwaYdPHTb11g9vMTJ553HqU9+Jh943W9y8UtfwfriPTx85718/YPvY27zZqq5BX7p/HOY37YdGFCPR+za2kepyPqkYVJPwwsZUmrBaNJolVxUyHYMRE553Gk8cuv12M2ziJSIKSKUJLkAwpJFd0oEAaHLzgTtBLN1xuMJVgmS6RzU0mpCDBhrkCGjjWZpbcj2E45DuG4gZr2derRKv8ydhxZaZmZK9h+pefNHPsspT9hCSiuQEs995Uu564bb+eJ7/zcv/8v38uX3/x1KCM55/rPYuutEcp7hhn/9AKmpufnzH+OCl/wGCzu2sXr4bG7+90/xvMueA/RYO7zIV696N4uHVxk3gry2jDEWmT0zZZcFcK5FkmgmK+SkQRWQYceJJ7AxrqnmBmShcd51Ljjd0I45E1PCO0+I9hc7KKdEzpGM7qh/DISpowlACJAKmjrR61lwjiwVmcTG+hrZQ4yhA4SjGqkNrq5BlAg3RkhBzo7Tn/4kipkZPvKGVyPIPO/1b2N536P86NqPYivDKU85lwv/35ew+Mh+bvr4NWQpOfHsC1g9cIBvXf051g8vMn/0Dp7+0pey48Rj+Oj/upLFH1+HLRVt0DgXyELgI4RxTeMTOReQEyJIev0K77pBnEJAooi5kzsEU98sgbEGEbtrlwCxneDGE1RKiBSRKSJzQKWI8o5CS7RIGGPQNpJDQDgHORG9IwbXCefOkXJi2+aCz7zzbdxx/R0IY6ZabyD7DU456zgu+5O30Y5W+NCrf5vVwwe5+GWX8bT/8QKOPmEeKdbZceJ2zv9/Lmew+Wj+9U2/w+rSYU580nlc+pbf5+IrfoWjT1pAMub4M85go87Uk3H3tJWiS7jpjvel4H5hmoSGst+DkOlZhVaZQgl61tAvLJVRWEHnegSPluIXbF5JhS06uUIJgVISkTJaTg3EGFFSUVmDFKbbEUZ1LqeS9IzBSkHPWgZlSSEkp560hds+/n6+dfWXEGZzN9tSIgfP7Bz8z/f8IyecdTbz23agjSATQM2R4ma+9r6P8PE/fgNKCl71kQ/z2g++l+MfNw9pDXIm+0j2gSc983yEKCiLAiMEMngKY6BtKLTqnFoUpADaIkREC5BZTM3MSGhbYuvIKRNjIIXYkWLVWdQaIOZECAEvFEp2WzATCBmMsaSUoW1YH09w3oGcRYQAomGSFCZEYggIASYlau+YRM/m+Xn23vZNvrixxnNf/T+R1kEKZARFVXP5O9/F/331qxgv/zInnP0U9t55Iw/echPnv/Q3OfqUk4F1cnbg1sDYDhmkBEogoqI/s4WxV2xC0EZHCBFEJORMCh4vCxBjcBGoGY8mNMDaeERMdLgpBHKC1o+ICFKGcdNiYscSugVCIrVFaInQprNMjEJOGa/ICalLykHB0sFlTpgvu3MtGqreLEqvE5qEVBlTWDQC0TaktjMB3CN38M+vv58rrnw3VRHJSuGaBW742IeJw0Nc/7Fr2HXt57nw1e/kzOc+GZEDOR1CCN1hE1NA7BxVZEE9zHzlgx/h4f+8njMeM0PbjMlBEIzAhYgko5Wi7A06322ab1xbXKc/KFHGknxES0UMCQqNyl0YIsSAUJbuf/kZF2sb6rolOkkOAa0lKYBRCknGKIVCsHW+z5GHD5DPfSzCO4RvWdi0QNFM8DOC7DuaEaMnp8zhpVWs1Yybkqdf/mI++cfv5MxnP4dHd9/NZHWJ4858Apf/zT9yaM9hvveBd/Dl9/wpr/zwP5NZgxBBQRYSITXeVTx02z3c/e3vsrLnAU6+6GIeFJnxZMLGqCalgNYGmWKnZ5Exg3mE9+QUyVqz/7772LowQAlBFnSBVa27pIqWpAgag1IeY02XjusyioqyqugZRTl1AwqjUVKgZTfJlRIsDBbYd99usn0WCJDB0duynfUH97C2vIQuKrTypOgpy7KL76aMlZFTzj2D0y96Ij+56Vae//rXo3QNaYOM5JF7VhjWDcODq3zzqqu55PcuBaXJsqBeb3j4R3dy08c/ibEVF778ck550h9SjzI3fupqZotMaTR17Qkx0Ym+gtB45nbuQDYN5EwSgj27d9PvW0ajDugq6Gz0lLpsEwmhBNGYbkb9bAZtmZ8nb0wolECLjFYSKcBoiRFyChwjVb/i3h/fhV8bUbiarARPuOhCrr7uC2zfNoOSYLXCmC4WAxlpDM4JUm7YtG0TF7z4AuAgOUtE7FxUJTVt7Tn/N1/NbZ+6iiddeimj1SXu/Mo3WD18iF2nn8aL3/bHbD9xDpqaPDkI4mi899RB4UOgLAoQ0MYu0nfoyJBLXnlRpw6mTDMJHD64j4Wq25HdAoBz3ezyCXyKuNCpi/NzfYSQ3QIJ2QFBKTJlVZJjIE/dR+8cOXZ55Unr8HnA0uIqx8xaRFJc8LwL+OCbJH1rSMGhRCbEhMsZpRV4T6UrpCjIwUPsInhMcQa5C1BZoznvRS9g349/yMf/6PVs23Uij73wIp77y69BiDWy89CMu8+4FkygZw2lhroOTNouoC6lpNKWepx46vMvgkN7QQgOL66ic0PdOkZ1Q5aCGDok3SXbQEWBSoEcA23bQs5ZQ5fda9oxTfKM67rjWSkiJcg8zRfmLipXWcGD9z/KMRed3rkQYcxlb/hDbvvsVSgtcSGhhMBahcmRwnTx3euv/jiXveW1FEVDbltEl2oCrTuSKxTt+DCXvf31tGPH7LZ5lGyhPUSWGpG6LU9OiPmj0Y1i5CJVEFgitjDULjKuG2qXeeEfvAH8BvRKEJL77vwRlprWTZNvQiBtl+ZvJg1RCJwPxJQRWqFUFxqVAAcWF1leXWNjNKZuGoL3CCkgdaGBwlr6vR6DwrB5rsd113yaaKsOTa9t8PQXXcziRsBUJRpBpTU2J7JQ1C7Sm61I++7gE29+Kw/cdRDRnwMpyEJCXaOUh6mr0JsRLGxVSCYdYjfFFMcYhB1w5HDkhms+z7+87lVsm5M0wVOnLmlbWcmm2RmW1hwXP/8C8tIqufU4LNf/y9XMzVT0raHSEhEjwTmi7waykpqyrLBFgQuRNqRfUI2Y0tSZEB03yQmLpiwMlbEoMlIIRO4Q0vrBn/Kjm3dz9hm7yEXJnFac9rTncfj2r7CwMEP0kTqBIFEWmtQ0tDZQ2lV+cNXfcODJl3DBy16EoCFLSYoCpRVSWEixS4BIyDEijIbyGPb86C6+95lPU0wW0TLSsw2yX5I3HE5A7boLziHy5EtezNxcRR5PEM7x3W/fSAxr1MHiYxe1E0JS5ISLmbppaOuWkAXCWKqyYjDb+8VTjJy79Kcu6BUFlZZY3Z1LQcLYDqT5EFlcXee4x+zkhn//Amc95Y+6uywSr/nrt/GWjYMbxgAAEUNJREFUZ9xMIFCHgLUWTcLkRF23jFvJvJBs37KZvbd8g889fB9P+91XsmVnRUwKqQHhu8yQd2C3MXQNu7/yLQ7ddRtp4xAzOjMOnta1jOqWtdEIazQDk6hFQqqCwxsDfud/vZo8GYFWpNk5vvulrzO3UHFkaQmyQFszLchoEp6qrNC6oHYtjY+MxmMmOvwX49AoBlVBZSz25/QidPm9smRYN6yPapCS3mDAcDxm7923sPsnS4he2c2S0RK/9dfv5P77D3SPeBIiR+rgmISAFBIZA/sOHiRFx2w4zH+8/U3ce/Oj5FyikkBgyKpiEvp8430f5dOvfSXDH11HPy7T+prxxpDFpSMcPLJEamtECLTOk7Vh08yAxYOrvO6v/wSWl6BtEUrxwxt/ilx9mOi6KkLMmdFwxNrGBhtNi09dglYZhdGasiiZmRlQ2U4BUMDOc4/fcsW4DdaaLl5bVgVCatrQefPWGgaDGVKMtHVNZTQ7j9rEndd9i7Of+zxM7CpMW4/ewtzRj+M///1TLMz18ChaFymsptKCceNonUdnT+0DM4OSvd+/ltu+/336wjEOA27+12s48N3ryMMDbJoxHFpepp6MWV5dx0WPCJ46ROqmpTSShCIryU92P8jlf/4PnHXxGeRxjRCwXMMH3vQWNm8yOB8gTS0eZQgpMRmNaZ0ndIktMgKJIKTIbFX4Wx5Z+UQn2m/vX+GzslVlycC4diQBVhsGszOIlAjBY7Vitt9D5q6XMdMvuPf+Jc566tngHVjN8aedyNKKYPdtP8AUitIqZsuC1kW8AJPBGsOodrjJiMFMn34R2bFplv333Mb2hRLXNiwvr9BMxmzUDa5pAJg0rqtQ5UQQXc+sVxoefuQwT37Jb/PC334+2bVQaISp+OD/+RBVPMLiyirj0RCRE0IqZOpqENoanPdMJjWN66yvKARZKQbW+FseWe4W6PyTj75ieTi2LkZiiMwtzDKoeiitusaOlsxWJUp0gDGnxHDS0riW8ZFDtHqexzzlCeAaWF/lzKedg5jbyfe/+FV2HTVLloZx2yIF9KzGJ6jrmp41TLzvvCrf4GNmMh4zXF+ljp3s0vhICJ7SWnzOeB8otGYyGROlYM8Dh/i1t/wFl77ixeT1dYgJMbfAFz7wSZbu/h6jpmY8meBjwqcOgkjZ8UwlJFrrLiXnAqPJhOFoTExQaOnv2L/WLdBjNtsrmpDtoCyZn59F5IxrGkTwzFYVpVaEFIgx4FrPZAqwyl6PhbmKtQfupbftZLYdNQNRQNNw8hNOYfMJp3Hnjd9nPNpAKpjrVQA0vhPXrdFMml8kL0Z1A6HL6kwmNVp2KaY2REqrSSnjY7drgoscXhO8+I/+mGe85GKyazrBq9fj1mvv4MFvf4H+wLK+uoJzsQOGKdOEgGvb7oksOvtUTMOeylhAMJrUiBz8vSvtJyTA/NwcmzZtoqhKRqMRvm3oF4Z+vwIBLgRCjNQ+0k7tWC0l0bV0lZyWf3nrm/nx7fsguM5fioELXvBk3vqZT8Pmx7G66ruFn4aViqrLCiYyCtG1C6e9sratMVUFQv082OR8wOpOxXzokSXsjlP5iy//Bxc/7zzS0mKHzAez3P6tH3Pdh/+OJjmWlpcoy5KF2T5Gdg9sJTVZa0ato2maTpeeQhgtMoN+j7n5eXq9HnnK13aec9yWK5bXhza5ltmqpFdYhBQk76Ymf2TiHEJIysIipaRfFVRas3zkMFkothy1wI9uuAk1fxzHnXky4CFkitTwzMtfxEnnXsx9ux9i355HiG3NTFUQgJQF/bKY5gM9pS0wxtK0DVoolMw0PrK6uMx4HOgfdwa//qd/xvNf+TJsGnf+nJZQ9rnhE9fyk69/GmES6+vrjCYNelqhKK0ixoTznhACSNUBQucQueuvZehaRTGxaVD62/dOj9jp23pXJKRdmJvpVMQUETmRhaTxAR8jRmuM1iglmS1LtISVlWVM1aNNifW1dTYv9Dh01w85fGDM8Wc+EaMzeTyGlNi0czNPedFL2HnamdRes3RoiUOHjjCZNJRa4nzA+4BMifF4yMbYsTGqWV9tCNVmTnjqs3j2q17DC175GjbPB6jHUFhE2WNcSz79nqt54IYvMTtnWVlZYTiaIKbhU4lACoFU3dwJKU1rV4ksJY3vSjUd8FO03jNbFP62/WufEMD5b3jmad9YHDcDJboMjZk2CV3oiiDWaIy1qJiZn60QSbC8vIgtCiIC5x2FscwUhqO2b0UKS2s2c96vX8ZZzzwb/JgcEiJmpjIBtdeMVjd49J77WTu0yGi0weG9ByhtZGH7seiqYvtxx7HzsafQny+phAerOzdlOrcYHMMd136H733q44RmmSQT45Vl1DSA0CaIrkPjvbLETqM3zgfGjaNuPTFnfIz42HVllRQkodk2KMcfuuXR53e+WE5dAUQAxuCjJ8WAINMr+ygh0CkyPzOL956V5SWqXg+PoB6N6fVK8A5VdXevPzeHzIe47v/+Aw//4Mmc++IXcvRJO1A6wHhIJlHGmmqTZesl5wCDqX/gp+wnQa5BZEiePBySE50AWg4IRY999zzMzf92NWLxAbb0IwebwJGDh4khUhUGay3EjLNd0W59NGJQ9SiKEujaS0jBpPVdAo4uATdpHDEFUq8A6Nj8pB53np8UYlzXSDL9XkVhLUpKrMrMDWYZj4asra7Sn5nDA6ONdWZmZxHB068KvPcELOOlFXJIHLV9M/nIT/jOP/yESbGds571K5z1K09GqgyrS2RfI3KAviCvryO0gdL+Ip4iBVmJjo/1thJD4rYvXMeD37+JevUAQmVEiqQm0oxHSK3xKTNqWqqcsLYkp0w7HfSra2v0ej0Gg5LsBP0ERhtWhxNCSJ2mXhjaScvaZNw1kzrpvsyNHwoZwOqOvWutu/yNLSisZm1tlY2NDQZz89Rti3OOwcwMbjRkdnamq0HmjEayvrbKzOyAyXjMipIIW1CKA+z+/DXs/sKn2PqYX6LcsYttu47m6JOOo696qEGJVhYoCXlIjJHh4jJLew+wtPcRlvbsYfnRB5i3gb4ReJNZH03YWF9lruqhp33ZlBNCdgpjzgJrLDF3tYOi16P2jjQSzPRKQJLahtl+Bz9GretcDaOz0TanFIIG4rD23ruWsiyx1nYDWUj6lcUYzfrGOsPRiNmFzQTvmDQNg14fQqAoO2OujWCrHhsb62hryM2EXBYsLi4jpynavpTMzg0YP3oX7eL97L+55S66TPa4TYxGnpmqc1LaCP2eZWFgMFpQ1y1WRJY3xmTfklAdqMuwsr5OvyrpF5ambXGp05pb57scpNFYbXBTBD2pJ8QY6ZcWW1QI1TktWQp8Aia1iKIXgKgBv+rT4fmZ3iahCiChp3xMG8Pi0hGaSc38lq00TctoPKJfdtVv7x3z8wvE5JHa0ExqRqMxm2Zn0EqRgUnjKbQmTWqS7LLIwlisLdDAwvyAQa+inzKbN0cW+n3aZkwdYGNjnfG4oG1rVjfGoDVt22AE00ZRJ+atjxsGgwFaJPq9AampadsWow1hMqEc9LGFoRnV+JAx1jJpGpz3zM4MSFOgaLVhtux6mOsuHwJaBcxE5M6TNvfP9jHlSmvRKy1KSFaWl5iMJsxv3UrjWjbWN+j3KqzWZNcymJkhpYTznVSytrba/V1JelWf2rvOWY0JlRO+bcnAaDyhHtddBzVl6saxvLzK2uoqRM/q6hrD8YRx0+LqBh89w9GQjGRSN5TWEmPEFgXjusYWBRvDEZs2LdBMRiBVt3u6ftTPK6WFsWTRZZ+00rTe07iuvSS0AmSOUoi+lty5VH91eWNyvQQ2Hj68cruUqpVSZFsVxCw4cPAgw+GQua1baVrH2tpaJ2MoQzMZ0+sPunagaxnMz7O0dARtLaVSKClBKXyclsJz15WXSnVvXlCaQPcGhtY1jOsJGxvrOB8YDjdo6hYXIpPxpGsmO4eSEhe7HmrXH+kSqNqYriBMZjgc0ev3MVJSVRVZ5A7vZMVkPMGHSKEUUkDMGVsWxJRYHU6m7wlBgMimGvj79i3dDGxIYAg8tHe9uWXrTE/WdZP379+XG+cZbNrKZNKwurqKtV0SP7QTqqrXHZ/WUc3Os7G+QSBjlerOvC2om6a7WylPX3ASCD4waVtSSnjXEKfvNkhIpC1wbdsJ/sERQ8C5zsrxbUvO0NYt2lgmjQME3nustbgQMVWPxZUVpDIdoAW0trTO06ZETJlJUxNzwghJCp4QIlJrXAysDcd50rg8KIx4aHH1VuBhYCiBGtjznXsPfDXGFA4fOkzro+jNLdC0jqWVFUxRYI2haSaklFHGMBpPyLp7A8Pi4jLWdL1zpos0agMpJkKKyJhwIYLSRDrSKKUm50wIofOzUqdhZyFAaiIglOoKe1JjtJ2m5SQueCKC9Y0NBOBd1ycJ0rK0soo2BiUlSpmOKvlO84kpsba+1lnfxhB8xIeI0hbnvVjdGKGliDfcd/jr0wWqf/bmBZdSFg8vbshfOmrudFX1RcypO1ZVIXpVRWhrhJTMDGZp25aAZHZujsXFJaRWFNNmdFVVjFtHpANiAkGK/ucFXD+thEfv0UIghKAJmbpuup57TsREF2HJCT+toccYmdRtV5TzqVM9c+6i3sYwnowpq4q19TWq/qAjzGlqcztP4xxCaVKItC6gywIpBJOmzTELUoLZXpG++ONHP7VRuy8D9/xsSDOFsM3Ex4CtZk/a1DvxwOFFoYylX/WFryc5+Ch6vR4hJWoXGMzOsjHcYLgxpCotKQasLsgoRs5jtMI7R1EUuLompURAIZTqOFdOlGWJsSV17EhjCBEtJFlKXOyORaJ7p0dMmTZ42tS9sWFjY0T//6vmbH4kp4Eo/nOcpDtJb093zzIrwQVGCK3EAYm/e/eC4ICExAkuCLghrYDlMMzCbIue7nS+HMcuDnYPsxIfyw1yiRKl7LjkKqtU772yCkl7ltONgVIwiaJtG1arNeMYGIUOYq3nSLKccbQYayXJZkp8UIfZVHP5+kX9+fNt/QT4CtjdFzchhlqzrbvmat/Ke49Wl+tqntZdL9aOqigKtM6kbltVVAucF3a7W/JZHo5xEYqq4tC2eBFQGu89iQjjGLQ1ehcwgON46oQGEYDBeroh0AGKogx8scEgKqXtehQqQFO8UHeGeVVyaFpmeco4OdIsxynoB0uaZRwPDfksJ53NQh7zghMJyR1EqUQNxqjeOLlYLZROtP302S8f/3BzeAp8AbwI9c6rDvJAA+y70dXXR1svy3y10jxYVIXOspRj1ys1K8jSTLa/7dTkXNgpkyPL51jnOQ4GnQUtjUQHJxk74lRKbyYSHarlLOIgndJ0p0V4QSuFsY7WTqg8px0G0iyj7Xoc0BhLkuWRvqSxUziqkzSnGUwIIxTHpmFelDgPozGMosQG2pNKdBIUs5Sfro/26rPvX360rftPgC+BqxhRf65AFavFC+B94MOzIv/g7c3i8bsPq3cWRba8WC+T5nik3u/ZrB6QOEeiNOvNkrrtsGakXC4RERY6wQwDOlWY2NzLshzXd2wWJfM8x2dzbpsGpQQ9eTZlzuAs/QRpVXHYH6jyHO0tCsXL2wPFek2Cou871mVJ27acnT+kMSO9MRRFyfbmVzbLBedvPOJ2t2NwnmYwHEfnd910vNo1P/28757te/st8A3wHXADESD9Nw46QfNK4E3gErhU8JZO1CZJVIWIFpEkUaHRqFBBXyPK4UTcQlSD8VHoI15CpGyGBM6d3R8Ty+mzKKcTxjohjyV0fVERoxSkee6GP83rfUCgnGR6BBFk8kLnRHYiXAPPgR9jSLV3076Gg+7/7xw4A87jvYzv/8n2v3ZJTCMdcIhJ+BCf5a+M/s0i1b2c9X9zziv7NyJ/5XUMfgfreajRpyEnJAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/apple-touch-icon-114x114.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAHIAAAByCAYAAACP3YV9AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wCBBQfJLb8UyAAACAASURBVHjanLx5uGVpVeb5W9+w9znnjjHPkUPkAJkkmZBMmUJCQgKSlCAoMpUlkxYUaolSSFdbTjiUjUOVPmW3LdgqWKiopSgKCBQJyZSZJDkPkVMMGRnzcIdzzt77G1b/8e0bEdYj3dUdz3OHOPfefc7Z6/vWete73vcT/r/9k/6rBZx3zs/OjKrKe59ycihOUSNgVBFQOfc3cu5z/0lRUEAE+u9Fznu2/sff+Z/21xSQc/9D++/OXkzPfZHzrqn/9F2d/e3/4fF/7kXIuTeCrv3Bee9j7clk7bHyae0jK2RBkjESQ0zd6mTahRACEIH0nZ/5/zkw/zO/J30Aqz0X7p5zRoYvv+GFVz/zist/cPPGxRskh7mBs7W1lpmBx4jBxIDzFaZ/QypgjUMqB25A6lpiClhXkVKAlKiM6d+8oJrImslYsgiaM5pSuY4qOQUEpR6MwDiSMRixhG6KYPCDAVYgNw0qAimBM2SxJM3kmFAUZyxWDM4YsiZS7MBYsnHlrocOBZx1iCZEBOcqrKvIOdK0UxCLcZ6cEjkFUgrUvqKqhqTQkmJARcgxszKZsNqMaZN0Ocv46NLKV+5/6NE/+tyXvvJtNWb62L6Dq0DXB1X/ZwL6/xpIY4zknF0fwIVnX/G0C172wue/fc+ube/aODuUFFrOnDnFeOkUp8+cYXVlmdOnzzBpO80xSW0toCWwBqyx1JXF+ZoYO6JC1oymgKpB1eCNIsagWUk5E3Mmi5AFNGVAyLHFqMVYYVBVGJvJCgYpy91Yam9xBqbjKdZWtF2HrwxYT+g6MoIYgZioqwqjJSXEpGRRjHOEEGlDRDQz8A6jCe88xkLla2JUVpsprqoAaEMkpowXZXFmlpRTuV5OxJBUnMjc/AK+GjA/O2Jh/QZm5xfA16xMI/uPHP/Yrd+65/dvu+f+x584cOgM0BljUs45//8OpLXWpJR8PRjMveK7nnfxd9/wgrc9bffO98yZxNHDBzj05CGdTsdkzdLFTEJJMWB8TewaMA6DwRshpghkal8jBmZmhsSuIWYIMWGsxVhP6KZ4WyH0AVYldC1Yj1pHTrnc7NBgVXDWUlUeYxUrFSoZFUsILYPBgEoMIURiTOSsVJWjjS0YT4wBRNAUGdWDPl0amrZBjeB8zXQ6JaSMd5aBd1hj8NbgnSdrZtp2JAQrSszQhIgB5gY1zhq6tiHTZxM1NDHShIAiWAEjQoxB68GQyy66WHbt3MlYHY8ePvZ7n7n1jj/8x6/e9mgzna44a0NM6TsG036nABsjNuc8wNj1P/5Db/zeV15/7e/sWT+66cTBR7n3vnv02NEjqCZxzomvKsTZsos0Y4wgxiLWkFUxAsaY/ufgnMMYgx8MMdaQcwJRnHGIq8gpYa3FGFAUMQ5sqaqIgBGcdYAiSEmNzgAZqSoQyDnjvcfkQBYhhBZjHc4ZVAQ15fVKVlxV463FWkvO5TmcL9dJCuSIdxbvK6wRrLOIEXJWuhgRjYj3dLEEqBZlULuSSjVjjEMRgia6WN6rdxYngvEOI1ZyznLs8GHd98QTVDnKnl3bnrPnwgv+xQU7dpz65t0PHIgpRpHvnGbtdwiiyVkHG9Ytbvngj/zLd119ya5fdc3SugfuvVcPHz2CNYivKjG2BMdYwVuHkDEiiLUYZ0th1URWcN6jOZXfMwKaqOsBEDHVEOM81pXg5BSwxmGs4GyFGEFEEQFrPTm1GCN448tX7xnUA8SAsaXGijF4X66hOWGsK2+4sms1o6R7a7AiVN5jjEU1o6LYyqMCKUSc91R1hTcGZx3el1oaVRHnEI2olN1X1wNGA4cRUCwipkc3SkiJlCOV93hnEVFQQTRROU/lvSBGjp04qaePH2Pbwuzcjh3bb77q6ZdPH9x/8LGVldVGIP9zwbT/TE10Oetg/eLClg/+8Fve97QdGz8wPXXUPPTwXj29vCTWWRlUNdZZjDEgCkaw1uK8L/VLE6oJY30PUC0qJQ1qTmeXlbNlV6omcsqogvUOwfSAwpddQ9nhGDmLDI21JWAKzlucsxhryi7tl67zHmcsqgVoqSZ8PewXSzoLNL2vcE6ATM6KWAsGYghnF2HlLNYYrDNYK+SUSCqINQiG0AaMG1A7g7OCdQNyTqiW7BBSoksR73yfkQTEgmaMgDOmR9QKRmV1OpFTp5d0ZuBk29YtN1x6wa7hXQ8+evekaabGmKyq+TsGcm0nYs3G9739De952o6NP3niyJPsffQRzTmJrz0Yg+aMcyUViYAxFkERtKQde27Viyk3SHPGWov3vqRAY1BN5U2LnA2wdR4x0qfoctNEBBFDD2ZLoEvqwNiyiNZSsfQLLKeItQK5w7i6R8ceVzkwgsaCeFUjvqqw1qEKKSWMKwsidh0IeG/x1mKMUFUVqpGYYgFLCBkhAd4KAy/9LhQ0lyC2oSEm+lKQsP2CzCnijKPyFaqKUMqMkvHOEXKSQydOqsYgW9ctXrt718701bvuvz/n3BqRfH53dn4gjSr1zMzMhne/6XVvufaSnT+7dPyIPLbvgFqyOGdwziFiiClijMFZg7UGayyqEUExRjDS1z0VjFiMc2hWsirWGFDta6bHoFSDIWJdDzwCxpRUJDnjnC87SDNY16PZc22WpIyzDmctkkuboDmhxmJEsK4ALpFSQ53zqIJmwJSFaI3grO9bHsVYwDhyBmtdQakiWFPqO2JLrcsJVElZETEM6gHOWXLK5LwWtkTTtRhXYQWsAesrVKC8snPNsyAYa/G+JudEFyIxJTl24rRWkmTHts3X7d69+9R9j+7b23Vdy3lp1pyHXh0we83TL7niOXu2/7uqncjBJ59UaxBjHWJcWdH9mwk50XQNqkrOob8zJeU4Z6gHA4yGsrtywtpyI5OWnZRiV1azGlIPbkRzqWfGYJ0j5dSnQAWNBTQB1jlsXZ9tbrNmEMVWg7P1UXLEiMH2aTKn7uxCE1WMrzDOlYXWl4icyr0REVTP7XgjlGu5kt5zVjQGjLOknFEE7x3Oll2FWFJoS5CToioYIyUt+wrE9CXBIQZKllTEaLlPWlquiBBjwghy8MgRpRtzzSU73//8q6+4BpjrYyb/YyDrzRvWbX3F869+36KE9Y/v26ekINaAOAf9Exrn8ZVDROlSpI0R1T7fn+1mDN5aXFVjrEFjh4hgXUVMHSkr1tYApZcMgRwbnPcY60qa0Yw4hxowzuFcVYBUXxpEShq21QDVUouM8RjrMb4utXst0n1w12qsCuTYluAaU2qxGHLO5BzIWmqo5lSSp4DxJbVrToQUML4CsWTK41YyhjVYqWBKkLuuwfkK6yzWV2URQAF9YsrrFXPeojN0ORBTRsVgvGc4rHFG5MBTR3S9l7lXPv+q92/duG4rUK/FcC2QHpi//MKdz7xo/eiV+588xMlTJ/ueSRg4i+3RZkGiihUQlbL9M6XdcBXGlbQgCJUVrBGqqsYYwTkDqSsv0FjQkppyzoiWvsp5V4JuCprLWftd2vddziJkSKlHqNq3Ihml1FXR8vzGW0RcX7t9SZ+a+5oLpFh2KEpOETEWVw0KsFLFoFgRrCmsjzWWGNqyoL0rNdQIlXdU3hXUm0vlBIg5llbJO6xwtqQ4KbsczeW12TUsAKnfjSEFDMpwUDOoPM4K0/GY/fueYPfi6EXPvPzSa8WYhT52mP6j3rppw+ZX3fD8985XliMnT6tYK0kVaz1GoLIWckbLeitvuh6AdUzaKZPphNA1ZFVUIaY+mM5hqgElPVuqwQyaO6ImMgpiCTGQMCWl+qrnYTOmGpatl+NZMCQYzFmuM6MipJzKTtOCWMWW1U/fs4mcx/GKoLHD+BpbDTGYQg8KGOOw1qMxkVPEOIf1pZUQU/4+q0WMQxRiDEiKWDIihtCOUVVijCSFhOCqAaZH0TmXFK2pK8Aql4VqrAVrCQpdF0ipvJaq8tS+7FznKryInDx1Wmcrw40vuOrHN69f3Ly2K02fZ2di1264aN3gulMrY2pnqavCrsTQIQpWtPRaa0hVDNY6rC1AomkDIaZCIEshrtU40A6nobQGOWC9w/mKLkwLp54zRiwpJlKMEBuMK2laNCHWoKZvQzRjpDTwQqlTpd2AlEJJsSn1dGAJUKlVhbdVlBybkj3IhXDIXdnRuYC1FJqyMHoUbkTOA3CK9v9v2waxDucEX/UACiE0YxSIuZSHglAhxVTqqghGXKnpZo2ESISuo23bwtuSqb3FEqG/Ru083lssQU6cXuLC9bPXOGs2AzOAs0BdebflpuuvfeOeDaPrnjpyjNq7s80+fdF3zvYVYI3LV8gFwhvngQJaJOceIPRIUcA7T2ynxNggpi6Pp3S2JUAVzYoxYHJX6pNqqZc5FnZIy6rPKZXgGIu1vlCCYkpgyLiqJrcNiENj29fU0g6Ytd1tfD/iKOnSOEuMEWMLwApdi7F1ATDGIpJBMykJqRujIsQ2YL2ndp4cW8ASU8kMXVBSnOJ8DakQ/SKGyplz0xroWzMlhI6gQkoZ6zxVVVFVHhSclAVsbclu3nsmk1Y3z41E61H34OMH74wprRqg9s4t7t60+KrTy8scW1rWJkacs3irVINSM2K/Gn1/MUUL9hVHDi2gJLGsTsd0XaDrpsQYSDETQsdgOCw3pQccph5gXE3IJcWoUMhlM8DVI4yr0b5Jjt2EpOUmGVdakBxbUtdgrCWLQcSD9CCuqlCjmHqIDEYl8UhZkOJqVMurj+24gJIYSSmSyPS9R19zFaT0vDFFQo7gh4QuoMaV5eEMGUPbNSgQEkRVrB+cRecJQeO055uFtQKVVelC4V670KGacUaxUkqOdxUigpFM5UomixlWJmPaZsrWDYs3OmvXAbUBBkaYX5wfXHTyxAkmq2M5deYMkzZQVQO8VYwkWBv7pIS3htoXvrTQTCAxYEmIrZh2kazm3ExQyo0fzsxBaJHQQugwopC6EtycyEnRnEvbkvtUpIp1NZoFY0yfOqUwNMZAjBj6vhRFNGCtwVHaJJtLO+T6vteIQdsJhA5XDxEN50gNgRQCWTPWOZwYrCnALCfQENCcyDFDCnjnERWMsRiB0E7oug5nyg6K01WwDquRyg9KNsuJHEsr1LVTgiqZ0qPWlS3UnbFYVQyZqvJUvpSwthkTUyRllYNHj1HbtEvQOaB2QKWqc5WmQXQDRJbpYubM0hIwz+xwwGjoCSGRM4RYWA3vHFaVdrKKcVWh13K5oTlEJhlGVbnpzleI8Vgx1NbSucJG55wRa2knLcPRkKyRrk0YqXHOlR4yl3SYVckxlvRoygjMqICznDh2nMnqCiEFVpbOkI1h6eRJYs5Y7yCVGjWaGTEYjchk5ucWmJsZsXnLZubnFvC2KgtJwRhBuwapB6AWTZBjQGMkJQ/G4bTDoKR+HKZqSFq4XRFDmKyC8VgVjPGkWNKr5oz3NW3omDYRjOKcpfKu9NFJMVYxmrDG4my5bgiRlIUYIqvjMVFhVr3L+Vwga9U8kjBl0jaM5hbQFEginF5eIiPMDQfUgwEhBnLoG38xWO8YuJqmnaJrEw8R8I6UEpMIo8GAjJA1krqAqStsVLrpCm4wKjvMGqbNlEFdI87QtVMGfrYHWy3GWXISUgbrMktLSxw7eYpDBw/SJWX3nmdw8TUv4sKnXcnFT78KXw/ZsvOiMueTcxTz8qnjHD98gMl4lf177+eJB+7m8P693P6tuxgOKtatX2T9pm3MjYb9RMOCFUJKZAzqa3KZouHcDCqGbKCbrJDFk8X0HKqArRDrsFJwhhpDSC1WhDYI0yagzvdSCw8aCV2D80Osc3hbMkxWaFOmCYG2CzQxEYwlho55bVDNw7VAOlXqnDKT6SreVdSDnljOltXphBgDc7Fm4IW68qSUSSmVNGjLvDEhpVb2rAlWiKFjpW2Ynx8VWK+FGPdW0NGQdjpFfIWpLLlNxFhWqPR/a8WUqb/3TKcrHD54iKeOHGbbxZfz7Bd/D+98yXdz6VXX9jTeeVoOtB+wJ/Rsis+s27yVdZu3AMo117/sLDfZtQ0P3vlVvvWVz3PbFz7DqcMHuPSyi9m5czsYS+giWXOpdVrAm6EfFjerZGMIXVf4t5DpUsDWI5zIWdYm50zlBoQcaVMkiuCM4CxobFBjqYYzVM4hOZJTGTZ0IZGiMp1OaWImpFJhY5fUFinFAPAOsKrqyIEuJBWi1CjOGrCF7Wi6jhgbFmfnmZtxGI1oDOQs51iYnBBToTGUABtDyglxnpXxlPkZV2i8OMYPZqmsI1VlQmDEYqsazYqogWTQKKhNrK4ss//gU2RT8bybvoefesPb2H7RZX0IMrCCqiAS+06q6iUvDmgRGfaBbXpqebVvvRSwqBqq2nL1dS/j6utexjs+8Ks89sBd/OOff5R7v/Z5amvYvn071XBI7mJpn6whhw4wGFuTu1i45tig1Wzhi7OiOZBywFdDJAeiZpo2kMRgURwZZyoUwYnBG4OloOwuRlLOhKRMmpaohhCawqIBOaukLrBj88btjxw8bBxgRMTMuIra14KxdG0HVYW3gsmpoKXQsTxpiSrMDSt85YkxEWNCKEQvZNpeZZJV8dWgp6QM06ZlNKwxpiLlhDFQe0fbUcZeoUUztEHx1rC81PDUseMMFjfy5vf9Etd/9+uw1vUBOYOq7YOniFQ90uz6QNbAMjALTPtF686bE6T+o58JkoCI6hQRYc8VV7Ln53+H0DZ8/i/+mM9+8g9oV55k++ZNzK9bIIdY6LmsTCYr4Gp8PUB1QNKEoWiA1EpRoQmoqZlOxsQM1lucJJwfknPCG6H2FWgkZyWrkLPQxkQTIm1SYghYVxfCJWfoGvygJpfIWteTJDIcDpkZ1KhCyEozWYHhDHU9KHM4Y0gxMp02xLZhdjigHtYYk+liJOYyDXCuCKViOwE/QHImpY5JkxBZoK4LXZVTIZqzNbQ54X1NzJnl06c4euQUC1t28daf+o9c/6rv7QMwRnWMSAL6XhSPakJk3AdrttcreWCh/7vZ81LuWiaa9t83/a6MiAxKC0MG2jLeqh2veuuP8Mo3vYPPffLj/OOff5SlAwfZumVLwQzNFFxdSHfNxBBAlaqqCbHBuhrb1/wmKEkp7ZspNTS2YwaDGYxG0FAeC4EuRLqQSj3siuqAnlbUGJGkVM7jxWB60sr1vb2ZNlOgsDe1KCENe9K3LU9uDaYuICYoLE+njHKmskJlDTGXcY5qxtUGet2OqQclfXihjZGcAjMzo4JucyqjISssLS9x4sQSZnaRF7/xHbzlve/HWA8s9akzIWJ7+WE+L6AJZZbQBEK3TIoQ29Mg0DVNSdemzDTLrlF8VZdhdG3x9ajfleP+2ufUCNCg2mKs8t1vehs3vPr1/Pn//mvc/40vYsNRRqN5BrNDRCkD6V7PU/hThzVCzIY2C9mU2mo1F7pPldrXeGewdkBKSte0dDHQRT2bWjWnMgPWMgly1pOlsGFO9KzmswQS1cl4zGQ8ZTQqKW9UDUkp0MZI7CcBviozNWIii2Fl2jBwltnRsDSxzpQVnpTa+Z6bLIhNtICQadPiXMWgMiQBkxOT1VUOHTnJjkufxds+8B/YtefpfQDpCW5Fte6DByIVKWUmy0tMllc4dfwIJ598gpUTR+jGpxifOkzSzIkn96NJsJXDGmX9tgtpu8D8hq3MLm5kcct2FrddyOKmrQzn5piZH2DtbJ9qc//8oU+7HaO5Bd72gV/m4btu4w9//UPse+xBtm5ZYP3mzUUBoYkeWmOsIeXMZNrQdS3D0Uy5d2JRVWpr8d6hqSNmRxcioU+lIaVeWyuILyXBpCLBFGvRlAldomvbHkwVKqSsRAPTrimyQ60ZiOCtZcb7vuhmuhDxRkr61EzCMg2RsLrC3GiGqvLkpDTTwjdazSBFrSb9oNcPR0xDAAyV8yyvjFlpMze94Z18/3t+CuhQPVqmFmcD2E8rGDFZOcXJw3s5euAJTu5/iKNPPMjyqeMMRyMG1YDFhXl2b9/OdLrKhds240dz5eamliYkuqhMJyuceuwgxx++nabtqObWsbjjUrZfdhXbLriE9Vt3MJyd73eqouoQyagWHvTya57DL370T/nYf/41bvvsp8icYuP6RYxzpBhwCDElpl0ixkDlK4RMDhFjLYOqwleuL2NCTIE2RJq2LQxvz9uKKEbXGCmHACln2rYjpEzScxoBtzbbG8yMGI0aUCWEQE6J4aCi8g5vDN46uhCKrLDX6FTWEDCEGFheHTM7M6K2Ql0PyKplcdpc8jqmEOopYcUyHrccOn2ILRdezhv+9bu55oUvA1ZR7foACpAKz8kC7WSFfQ98lX333snhvXeRJ2dYt349OzZvYPeOrcQYaact1sBkdYWYldWl0xi/XAROAr5yxAxOhHXr1jG7uA5RZWV1zIn993Lsodt4eH4D2y+/mu1PfzYXXnEl9XCESEDV9q8HVJ/C1yPe8YFf5OKnXcmn/uB3OXboKTbv2oGzjpwz06ZFsQyHo54xaqkHQ2pfaMoYi/61bTtiLnrYlHOZ2qTcT1wETYpISdXTZkKICYzFaC87kfMCqQptV1JnrzYhhsBkMiUNaryhrHjv6GIgJS3cZ09m174iI4ynHcFkZkZDnLXkENAs1PWwdB4pkjXRNi0PPvAY1770u3nzv/1pdl78NFRPA66/UWvSjHlSzDx+3zfYf/c3OfzwHdBO2bRxI4PNF5FzpmvGjE81xBAJqZ+OmCL2KjUy95qeHpBQ1H7OGibjMa6qUDGsW7eBwZbCrhx74OscuO92Hr/0Oex59nPZc9U1hdxnuR+Vub5On+Ilr/kBNu+4gL/83Q9z+NBeNm3YUKY1YnBS5rYpRAb1sJDmmkhRaLtQslzMpFx6UmMEyRnry8iwgGxTNlYGzeW9YRxKpN+6uobFtzoju5+xbf7mM03AieCtx1W2KLuglyuAs5a6rstoBi0X1zJ4tb3lIiKEEBES3hT9ChTJoXWGkOCeex7guS9/He/4X36Orbt2oLrS12wHGEQGKAMOPLyXb/79p3joy3/P5PAjbN24gfl165lMp5xZWmI6GdM2HU3TMBlPaJuWti1SyZQSzXRaBrUhgRi66ZRp/5hmiF1HFwKry2NCCKSc8b5ifn4dkhOHH3uII48/zOmjx3DDAQsbdvQpVvq2R1GdsHn7Jex5xrM5tH8/D951D7MLs1SVL+UgK95aBrUHFbquIybogtK0LV1XJC/GGLyryqxVy/A+p0Toyk41va0h94PxEDPDynLnvuO3nF4ZP2yBrdaa3dfu2Xrz8dPLpFzGhNZaqmpQJvVFDX1WAiGa8K5IJFJOJVeLLaq1VCTyoW0QKEyFpCJEyom7v3U3z77ptfzoh36NhfWzqB4/rxaWIIY28q3P/T23/d2fcXr//cwPKxbXrSMrLK8ssbKyxLRpSako0VOONE1DyrnXDFlyaogpl0mdguZQaLIYibEALgS6nvpa85WkFFhZXiaLYd3GDdQmc2r/XvY/+ADTaWTzrotwfoDIKqq+zyBLLKzfySVXXcvD997P4X172bhpAzl21JWjrj2qStNO6bqONiltU6Yl1tpeOO36Kb+U0d15hiTnHNYUxJ5U6WKijcpwWHHP/uO3nFmZlEB6a3Zfd/mOm8+sjrG26hVcgawRa1yB6rZIE0qzWlRjlXX4omEgxliIc9FetuCIFHmis4aqsux7Yj97rn0J7/n5X2VucQbVSSGSNfaIdJYzx49xyyd+n0P3fZWKjvnFeTKwurpSbkTb0oVA1056mrCfzGhRLYTYUlcVhAa1vlcERIwpbYhKkZiIlhrUhq5Qg5oxmui6hmlT0l5KHbV3zC8uEKcr7N97Pwcf38fWCy9nOLvQL0DTf22YmZvlsquvZ++9d3Ps4ONs37oZawyha4hZaLtIm0s/ifQyzl5Wao1gMaQcySn1E5WiAsw5EGKgi6XHDz3GWTc74K4njt1yZrUPpHN294uecfHN4y7iTIH82u+0GAOKQSQXhbS1ZaFkehFV0Xw6W8alMZfpgbVFkBVTAQhPHTrCht2X8u5f/G3Wba5RbXsQ4fv+cIbD+w7zd//Hh2mOPsLmDQuItZw+fYpJM2HatMQu9AruXmqYElaKfaD4RHIRJhtbmCctFgVU8a7XrWqxL9jCZdO2AWMt1iiWIiQOMRdBcyygrwsB5zyVg8NPPMpj997D9kuvYnZhIyItmqZlQUpmfnGBS555PXd88dPEZszMaK40910gZCkz3BTOqvJtvxMl56KQ6MdvztheBqqlr0y5sGjGFqWftSyMBtz5+LFbzqyOz+3IF155wc0rTRH8eO8xmkqezrl3RBUm3lh3Vp+paGEeVIuc3glWDDEpXTMp6jEiR48tceJ04Cd/6/fZdsHmPoicXc1Qs+/hg3zytz5EXjrGjp1bySkznUyYjsdMm4bQtYRmiu3V5XoeW2PIpX4AOUasGCyJrp1ijCt1ytmefYmQoXIWzUrsyjyzyGYcKZUFSl+rUtfQdh1dLBqexYV5JqeP8eDtX2PzRVeysGG+Lx0O0Q4ls7BuG7suuYq//sPfpx7UqLU0zRSxRWJSSlNRBWqM5Fjuh7FruETLIDsJTTstygvrsUrpIxW6LjKqXUmtq5OH11R0DJ2nsrYX+paiPxiOGA6GeFcm720bWB1PmDSBmAVvCruQeodRiBlyYOgMo8EMmpWuUx7Z+zg/+iv/md17NoKeQcSeF0ThqSeO88lf/zmqsMym7Rs5dXqJE8eP0k4mxUanvZnUWEIXIHVYpaSt0J412miMkFIZAtPTWeSS+kLX72glxoYcOnLKJO2K3QGDqvTkRy4caVZCgvG4YTyecPrUaZrVFbZu3UiVpvzph3+ep/adBBmW5xAQPOgKlz/7mfzgB3+NW7/6bVLqhdax6xkfizW2BzUJZxxGM4ZCBISodKmQjcY4rOSiKzCGmFJPHkTaNpw15Z4NZApt1zpdhgAAIABJREFUsag5j7dFICy9PNH3vaSzlpwj0/Eqq5Mpq11HtpaqqsrPkpYGNwYq51gYDdj/+EHe8J6f5tobngtpFboOpemDOODE4Ya/+I3/wJzrWLdhjsl4zJmlM6xMWpq2wzqDF4Ol6D5jziS1RVHQtUjOaCxmGGc8YsuUQMQyGM2VZipFxHiapsM6S+VrjPV07aSn14qQulldJcVU1N8pkVKkbacAhVeNgRhaxivLjObnqLTh47/8Mxx7aowyg8hMLw9JGLPKDa95Fa/4gbfzxGP7qWzhq7VtccajKfUSS1MEbdbTdYmm6wqd7xySujJIdzVZIaRIGwJdCISuwfR9LeeNBBBrSV2H8x5rSzALI1vyujjT60ld4VFDYDKJtEao69JrWpNxdkhoW5z1HD+zxGh+E69/14/gdRm8h64t14ljmm4jf/kbv4Btlti2azsrK8tMVpbJmbPzzpGp+v6rFPqUSnocjQaoBNQIEcWp4hyEaJjEjuXlJe6+90EisDAzZDKeMJhbRw5jLttzKaN1C71/MzPwg9ICVINeYpEwQNRiHYgxFG9FCkzHgaWVVUYzc2zZvMCRI6f4q9/8Bd7+od+mHhpEVqGdQoKhdfzQ+3+SH7/506yOp8yOBiVIprjy1zwyIfW0HFrsfP1AXZGCUkOga1tST6pILGDtfG/+2R3ZdaHUmJR6ViZhezOmozhwrbW96lsYztTUVdFcdiEybSNtqzTNBOsMzsJtX7uXt/37X2F+MUJVFxbClyFwlhk+9/E/4NShfezctY3J6irNdAoxk2Mh39umYXl5CdVMVQ8KwjJCEqGZjrFG8K4q80GF44cPc/TYUfYfXuLoSpmoVNUcr3znv+M/fXEv/9vffYvv/dGf57EDR/j2t+9kZXmF0XAAGmlTR9c1mKx406sCe6+kt5bhYIhgaVpFxdJ1HSvLy1xy8Q5k9Qi3/OkfcM5UbFELWGHj1nne/sGf58ATBxkMBj2YBKQ0+tNQ5pPOV/i6LkPjEIgJQsyFDIgFqxilZIpcFIXkc+cXFNRqze7rL9tx88mllWLgjF3xRZiiP1mDx0VHUnofTeVivvKgqdjEiy0VV9U89dQxnvPyV/PqH3oDdbUmFHa9NDHzwO2P8cU//h0uvGAby+MJbRtIoaMLHc5KebHOo2ssSgo98tR+oSnDumKyusLDDz7KXfc/yI6nX8vmPVdy+MDjiDje9L6f4d3/8fe47JqrqQZCVScufsazeekb342bWcdtt36Jo08eYGYwRGzN8VOn6bqGmUFFm1JRBKSE6TWwXQY1xX2MEUb1ACMwHNZ8++vfYNOFz2TTjoUiJnO+8MtW2Lr7Qu752jeYnD7K3MICoQu0oSP3iNsYUySRoSNnaNqGGBMpdGVWu+Z4FsiUldDFjsWZGe47dPqWpfHkfNR64c2TmNGwVpB7r6GWD2N7N1Yfisr2etSUegeRx1lL7Ioz+I47HuEnPvw7bL9gQxnbpICKQcSyujziox/8MdYvjHC1ZWXpNMsrZ8gkHIqzg4KKUyoLS8EaT2UNmiMpRk6cWOKRh/ey0kZueOMP87ybXsM9t3wag/KW9/8yP/jBX2H30y7HmFVEuoIsFSDgq5ZLnnkdL3/zj1AN57j9C/9IJGEXtxOC5a5v3M7cwjzDwaBwx9bRxVxKTPGQMvKeHDq6LhESVIMB3/zCF3juK99KPZSzZiAwOF+zuGEX//Anf8TGzeuIYjHYcrCFQoi9uFssMeReS6y910XIIZUdaWzZZNZhxLE4W3PvwVNfWhr3qFVVmTSTYhxxFWp6KJ8Le58004aup94sqCWm0PsBHZUxGAQnwsLCAkcPH+em172JXXvWIWFcFOGakThFteaLH/99NswKW7euZ7wyoW0brBvQtYkgFV1s0RjwxqCpEA3jySpLS0scP3mSu+56GLvuAt714T/iN//xfr7vvT/NQ9+6lYF35JCoqprYraA6Pu+4FYdI6M06hmY84cFvfpkHb7uFuW0XwOwmnn3Dy/nQX3ye9/72H3KqMTxw/8OsLq8waTui9qRmVioDKXZMQ2RpPGESOmZnHHMD5XN//H+iOipBVEXTBGunXPqsS9nxjOdx4vQKlXMkjUXT2hWKMcVIbhtsv/tz6EgpEjVhXAGUxkBxVQlJlBAzuU+t5typEKV5jl1H17UkVZKaokbMsSC2rqVr22IjwNCTKjhrGDhTzCzWcuCJo7zmbW9nbnYIqkiIaCpP99QTJ/nCJz7Gtm2baVbHeCm7u2tXgUzoGpq2I+MgBmyMrJw6w97HDvPwU6tcesPr+K3P38kvfPyvueoF1xPjUnkDQbj53f+ei654Fh/54A/zyV//ECcPrRI77QkHR4pDxkvKg1+/mz/5xffztb/6M970kz/LBz/6F+y64GIktUDi+le9gt/41Jd48wd+iSPLykN7DzAdT7A5M3IWMjRtOe0jhIbYtqwsrbJzx0a+8d8+zpF9x3qBc7HPkZW5hRGve+e/4fFHnqRpJuVUEc2Iapn051ROJEkJSZmqGlJXI2rnKSYtOauYb0OgaUI/DuSf1shrL95y85nVaUkdvUpMel9FF4tH3vm6twOs5WzpfYe9pctZTh47wUVXPptXvPn1DF1EnSn27KxQz/OJX/8v1G5Mlo520tA2E4xmnAhi67Mi4WkXOHlmlaMnlpjbvoc3/Pj/yo/84m9y1fUvoZ2scN+tn+cz/9d/4fjBw2y5YA97v/4Znn7dS3jpW36YZ730FTxyxze46+8+hmjN/JYLCNPEw7ffzlc/8VFOH9jLi3/wX/Oyt/4Is+vWs3r6GA9//RbCdMyuK59JPShm1wuf/ixe9qa3Im6WB+68mzPHjmGtMG2nqLW9o9qSYsegrhkNarz3HHnqMM980Y1IWAVXFRt+CtRz6/ny338RbwsfXHwv2gdJehea6c9CcMVfqcq0i0yacrpIVgrxHiLzMwMePrJ0y/J42pPmxuy+ZtfGmyddRKzpbYRy1oxjRM4ZSovbo5jYUlFpi7GkXOi9fY89xc1v/zdc/qyLsJbivcgKgxkO71vmT//TL3PxRVsZr06YTCfFgdw7iZ2UOnDq5ArLnecZN97M237213n1297D5p27OfLEXu74x7/lH/7gd1h6ah/Pv/n7OLL/Cb79hU9zbO99XP6Cl7Jp1zwzCyOufsnr2HThHu774t9y1xf+gSdu+yLLJ45x3Rt+kBe8/m3MbwCYELrMU488ysG7v8mJA4/zrS99nsFwI4ubNuMGDdYolz/rRdz4A29k0ioP3ruXpTOnqSuHM2A0MajqsptyZmZuxO1f+ybXvPh7mZsX6DqkacF7jMtMlhP3fuVLbN26npQizhVjlHPlYIvSchThVRtTAT6pHGahvaIo54hxnlnveOjI0i3Lk6bnWo3Zfc3OdTefWR0j6HmrxfQTcu29hb27dg3y+qrMGHsSPeXEydOR7//R97Bx62KBBs6jziEs8Pcf+Si6epTB0NNMm36kE0mpsKfWOjQEumx41bt+gu/94R/DmIbH7r6LOz/3d9z+6b9ARHnl29/Li9/0w2y58EKuuO6lzK9f5ORTB7DGMFrcwszCekSWWNyyg2fc+Dr23v5VUjS88Wd/k/mNc8AKOWWOPnGEb33uC3z7c3/F4pYdXP/Gd1B7zzf/+uM8+cgTzCxsZnZxHdY3WNdy5fNu5PpX30ybLI/c/yAzLjOoyz1ou0jIJY37qubYsSWufvENaFhFbFX43sEAU83yuT/9c3bv2tz3gWWXxRTpUu5dbbHXP5X7uuZO01zYI6wjpczcsOaho8vndqQzsvtZO+ZvXmkCdeWxCBr7QSdlu+dUDnSg9z+qFsm1Uno+aw3Hji1z+XNezHe9+iUMa9frVIvYKISKT374V9i9Y5HQdYTpFE2ZnGOhnroAxlAPauJ0zLEjx7jyuhu47R8+zZf/6k+56KqreeU738M1N/4L5jd40JMoZ4AJG7bt4pkv+x4O3Hs7j9zxTaYrU4ZzGxjOjoCKx+++gxharnrxK4Exxw8c5OGv38Pdn/8MyyeOc+Nbf4jrX/9DbNq5jUuvfQGb9zyNA/feyX1f+Cynjy8xWtjI7MIQ4RT1aJ5nPP8mnnzoAZaOHsAPBiQKKaEpo6a4pvbe/wg3vuEHsGkFfFXcz71W+NG7HmLlzBFEioq87dUCOSsxpLN+GnppR7H3l4+UlRRCCWTtePjoyvmBNLufd8nWm1cmU+p60CugpS/UqU+12ntOU9naPXqS3idZD2r2PfoUL/n+t3Llc5+OC22fnhXckHu/ejf3f+WzbNgwRzudFGcmmcqX1ep8OUlKjGU4nGHlzBnOnDqDMxnvhOte830sbloATqDaICqI+H6ElLCm5aJrbmRmbp57vvRZnnrwAWIQFrZs49E7vkHqxlz4zOdy3y238Mjtd3Dm6AGuvulmXvzmt7K4eQScKteVCRu2XcAV178YU9Xc8ZlP8+gd36KqZ9iw8zKMG/Hpj/4ud3/hr1lcmC0ushjpmhZNIE6YrStWziyz+aIr2XrpdgihAK4eHR4+tMLd37yVucUhMcb+FJBzvtLUD4VzvwNVMynms7VUY4sRy+KM54Ej5wXSW7P7+st33jxpSxG2vZG1NMLSn3phMFrUZWt9pmiZNtC7mY4eXea173wnu3ZvgtT1LuKM+EU+9dGPopPT5NgwnUwKzsq5TFKsFEcVGYNhMPDk1HHgsX0IhunSKU499STNeJUNOy7EuhmQhEpGtFCHZWh/msWtu7jsBTewcvwY933l8xx+7AGOHXyMlWOHSTmzdPwYlz7naq57/fezftsW4Bia1wBb7hGuYLwn5wpEWD3+JI/feRvbLnkW99z6Fb74Xz/CuoUB1tmz0x+rZWpUr0lHneX4iTHPednL0OWTSFLICW8cyw186a//hp27N9G1HWKKsi7FVCQfdu3MoH7U1feuZzNiLvaFuUHFg0eWb1keNw+7teajqsq0A8oOLFOQ/jQKkcLWW1MIAnMOEGmPtMbLq2zZeTHrt8xD7NC2Q6oKUYWh8OAdt3PRrlna8ZiAIfbu3a5tqStfDoJQi/WO8Zklmq5MEh6483a+510/ziXPeCbf/tzfsHz0CFe97JWs27oeYYqS+oOT+j6PZapqlhe8/odIWfmr3/w5/MxsmTRUX+Cmt/0Yl1z7HKA9K7lEquKDZI6cDE/cew/HDxwgRuGy5zyf0WjAN/7+v/EPH/sIJw4+wpaNs4xmB4SmgUTZUbaiaZvi3eznoffedjvgy2EaPTkglWfLrvUMZ9fRtalMRbRIPSyFHTN27VSRwnBpLxkpBxTGouJASbE7e9COW1MUmLWjxSjHeInpR1oUlr4YLte0Obk/LMkgTqgqx8qZVS58+mWMhg5SW/SYprjbD+87zOTMGdg+JMSuyBiyokZJKeHMgJQyHlg6cYal5SnXvvoHuPKFN3H3lz7LXf/9H9hx6dO58V+9m3s+/7d85U/+iCtufDmXPPuqXnJRvB/COmKyPHb7V7n/y7eiAje983089LWvELoxL3jtWzhw77d59LavsPOyy7nkBc9lNHsBEFANPH7ntzj82GPYasTCps3sfvpFzK6/hKMHHifHyMlH72Lb1vUMKtsDtVRGaVlp25YkQgoRLwYngenyaY7sP8LWrTVMJqWvrCrmFkZcdNmltGf2sbAwQ9dOi0/GWKwth2mkXHZjTKkccaprR8vY3kAkZ6WT/3T6YYp2JMZQEKpIObSoh8NG6Y8qM1jWfIBlJzgxaEhs3bWTwaAqxHgvsGXg2X//XayfH2JyLqMnUzQsJZ0ozXSK854jR09yejnyfe/9KV7yhtcyM7+Bi67Yw5f/7JN8/iO/xYve+K943uv+JY/edit3ffYznHhiL8961WuoR5topid47Jv/nQdu/SrGetbtuoiLnnExO6+4nuMH9rF6+jjPfvn3cOLJ+zm89xGOHzrK47/3UTbt3M7GnRdw6OEHGS5uZMtFe9h2yQXMrlsAVgrCzZGRF7Zs3gxGGU8a2hCZduWIs6brd0YGlWLO9XXFuoUhj9/7AFsveBaMV5D+4MNh5dm2czePHX2kF7JJOZ9H13zg5fjRGBKYMpjAZOgSxpdBeUpaXN26xlv1HNakmfQTkESOxRtoeuWb9H0kRnoNNsX3l4uRVZ1jedyxbutOBjOzYNJ5hwbPcfjxRxjVgkimris0c/agCTeoyRp5ct8RxqHm7T/3S3zXzTfgvEP1KDMLI17+trewYds2vvKJj3H60CFe+KY3s2H3du741Kf4/Ec/wuziPIf2PsTc4kYuftb1bL/8YjZfvBtrHDCEDIPRCICNO7eycecmVk6tcOSxw+y779s8cOsXufqVr2Xz7k3Mrp/vvSEtsBmwHD9wiOUzpxlWsT/aMxCBrpkW8qQvPSkXHtTbckjh/Gzi8BOPANdRxkgONDEYjti0Yxf33dqRUcR5SLlQcjH2NJwpdI0KKaaz5+5oVmJKxJBIuT7L7JzVtU7G5YiVAnQALYfomViAjnf2bF2zvohwNUesK8Ll8bRhbuMi3jtoJj3V44Ga/Y8+TjWsSbrmrRAkBYwxDGvL6jgxt/ki3vuzv8wV117c60fXDoko2tPnvPq7mN+4ji994r9y+uhBbn7Pv+WV7/4J/vLXfobJ0gmuvum1bLt0K+u2b0ZYAGoOPngH3/7sp5kunwRVbvu7P+OaV7yUqpplbr0wt34T1cwMt/3Nn3HxNc8DDvWLbzMnD+3n7i/8JQ/+34S9ebSl11ne+dvTN5xz7r01l8bSaFuSLWRjWbaw5QkHbDmYjiEOSXsR2umE7tVNCHRCwtAhOCRkaAidpKEZkw4EMASHycbGeJZHbFm2NVrzUKr5Dmf6hj31H+++JdndvbrWqrVqaVXpnvPtb0/v+zy/5/OfI6mag9e9lHPPPoSKK+EGAc5qtEoXobvZ1Hg/QsjkGKgry6knHpWVyTQiT8xCAZkdOUzngxhZh1Fs9NqS4ij3xSSzXZREcnpNORdtkpyU0/O4gvbr+OEpk63gRFJM6NL0NHVFCLnAhsohJwdi8DiXyNYy9ImqdqgcYRzAVuADNHDh9GmaGFh3geDFPq4EG8By3bPuI4evPsFNr7gdeJbsk+yxCsiBnEa0dtxw+0uZHj7GB3/p/+C3f+rH+Gs/8a+p6wlXvPhl3HjHrWh9gHG8wP0fex/3fvSDbB49wfW338Gr3/G95NTzxFfu473v/ikuv/GlvOw73sZsc4O6mYm9HU0YZtz/yU9yz5//Gd18hytvfjlv/G/fxaXXXcmZp0/zX/71u6nimkYrklLEZEViOXrBYJNJypC0Ztl1aDvh9FNnigMsXyTHGQV1WxFDKkI2qWjFEIQipBUhP7dqqYIjDYMU/bWGqq5KoTx//UCmGEhhxFkH2VzksUktUSrwZMhKpjaFZ4MSkC3KULcV+FGuFlmJ54LE9vkLXHFUk4KnW6+o2rawi+TvbGxMOfXQl/mlH/0h/ta73411mbyeF7+YRVW1nE7pufKFl/H2H/mHfOAX/z2/9b/+XS48+wwves2bOPP4Kb70gV/g8bvv4YZXv5bXf9/f5sCxI7SbGmnEH2LzyKu47qW38PAXvsjv/9Mf5+g1N3HlTTdx5omHef+//9fcf9cnOH71tdz8+m/nype8mNnBhrqJKAMHjt1GVDMW62epplNCiAwhoI0jayN8Be8JwePaFmLC1Yrdc2e/nqWfBa7h6prgs6DZ7EAKvpQ/FdnLahdKpUgpUW+YIvgWBZ4WwuXXH3YyyQ8MfY8hU+8D+0QygGtqoV+U3qSN+5TEjFGJNHZUdYVxEZKXHxACVEJ29MMA2RKjF/ZMEuu62mfKVYbLjk945p7P8W9/4H/hb/3TH2Pr6Iy8XhTm+FiokB6lPIeOV3zXP/r7vO8Xfp3dU4/x3n/+kxy8/BJu+da38M6feQftpsHVhWcQO3JSKDVSNS3VZce49S+/g+nhS3n///7PuPfPfp8RjTIV7/jJf87xqy/B2h5jE6gAKRSHVceVN76Ir931OMPoCWOPso6YAspYxm6FMhpb1+gy+ciCRnvuV5LvMjtIXdfkmHEaaqsIShNCxClbkC+GWCo6uRRZE4qkDWkIEAN2UtAzzx12IEXRbhpnC70fqrpBG7HJmYL0lCbzPp9VDj21a5hYhynmLqUU1DXEABhqk7E5yUthtcAtrdxFnbY4EhsHNrniqGN7+zF+4yd+nHf8w5/g2LWXk/NOiYNQqORFBBkH6rri7T/8w3zydy7nw//pl3jVd/0NbnnD67CuB9YXpZJZt8VH0gJTHv3Sl/jMb/8ap752P4evv5FvfvN38aLbb6WqM1r1qLBzcdfJaLmso1FEXvyKl/HMF+/CjCvaScs4jhhnLxJDxqEnhoG6mcl2lDxS6q5kJJyTA0gYMTrRWk2lLU7JNmKcIkcBJ6WUCjdtH07FRaihMZakUrH/5a+/R9Z1i+mWhVSYi0Q9k1LA2bqw4KT+EccgjqxCpVBakSieCFPuj7ks8mSq6YSUPVXd4qOQD3VSIpzKmRwzy25gqixHjh9ivVryxz/3M9zxvd/HC297KTkvYOxlRQApwocezFnu+J6/wtbxy/jDn/9phsWS2972WqwTlp0wdA4RvOLBj3+Kv/ij32E53+El3/odvPnv/WOOXLZFzhdQcQm+g3YiBpx9PtUwCpIzBqgC191yC8lO6YeVCIoxIgYLAV18LymCX+3RTDZJ2WCbCeBFGT128nysKcJjoX/54PGF5iX11hGlnWDZtBblQPTkQoNOKZCTwpjq/3nY2QfcxRiIOaGdGDUVipADpIQvQl+ZkXL5TYUHsLdc40Nfprop+6MSk2i1yXI8jbMQRw+62Ki9AIGIgT6M9NFT9ysOHTpMCCs+9Cu/wO657+G2t74RKgH5ZpVlXygQBfIe3/SG2zh0yb/jN378R9g99RRv+lvfi2umrBcjD37iQ3zhD97D8RfcwOu+73/k2m++sbzJI5kLUnkKfWmx5+cA+CmRrZE+aoqQHIcvu5boZsTVaVplSMozDD0pgtOaYRwFil+3DEm8mNXssFxnvBeHVQjkrFn3A6PWzNdrFt1aojIYy+RTxL6/GHIzemkspBABRT8OxAQL5cnpGw47Q8iiIy1ioDEVXILWRQVgBayXM4oCFrQGZQ1VO8HVltU8QFBgDIxjQd0tOXBwk70nH2VzsxGRcCEuCpcgkkOgblriKIkAe+fPcejgIS7dcnzhd36N5bltXvM9b6eql6hxlE5CBlXVpfm6x+U3vIRv+/7/mXvf+2u896ef4dDlV/HsA/dw0+vfzDt/7heZbG4AOzCeIRuHMpW4qHWGeiLI0SR1TFUseApFNpbcbLFzZslfvP//ZPvJh7nsqCsyf6hsTbZSMqurqtj5OhQNKlXC+iGDqwvVxBO0ZVh2TBsr25lxpecoPNfkS/VLFbpHBj94UlHeibZX4akurpIXB1IbTdtOsJUwTeumRpUirYiV90NVEj54KQYYg8MxjAO2MuztXMD3HS70z9FTyFx27bXsPXUvxhmcqoh9kMtuyjRtg24qdBZPhFWOurIM/QI7mXL0yJQv/uFvs3fuDG98199ga6tG6UDShuhrlruZB+/6BH/xvt+DfpdopqTHHiZtP0k0B7n1v/nraHNWXNAocJXMOsFZgXEFlZtR0UvvMCkSDTFoTj9yis/80X/gvk9+iFmVuO2WS/Ghl2J3UvTDIIWS0oKK+4yCqmK5N3LttdfKjMypyDkNPgTm2wuMkyQDtIKoSkKDJkaROqrKgtYEH7CuxseIsYaEYuj8fn84P48hINePmAJDL0VzUqZ0qohl4BSISzZGyBGnVDkoZTbbivmpHYascdOp7JHjAEPPtS+8nvs+5Gl1wxAD9eYUFWRZtoVAiRZn03rds1isqZuaU2e2oTnGlbe9jtOPPsqf/vtf543v+j42Dmxx8qFH+NpdH+drn7sLdOTab34FN73u27j+1jv4/X/1T+ke+xxh50nues9/4I6/fudFMRRDD80Ugix1WSdUDChbQdKEUbGcB56+90G+8oE/Yf7s4+R2yqrzHDo0ox89u/Ol7GVjjzEOqwzkct8rBxqTIrkPXHnddYUbq2R5taJ43372JLNpBSGjs8JqXTh4uUCnxOMh3FhNSmL4oWS42IpC7Hz+HpkzXd+zXHa0bYMuBGTMPoBeiBj7DiFlTQkgEd1KWzkOH5gIjCF4cBN523MFWnHVjTcSx+KlVxvEUpvs+x6TwIfxYm3WVFaE0TGgsqJfrXjRbbdz3bvexfv+zU/zpz/7MyhXsdo5zyXXv4C3/uAPce0rXlmY6XvAHiF2LJdrdIKP/adf5EW3v4Hj10yKVcGIG8oUYqSyYGu6pWf39JxHPn839370z1kvLnDsqqv5pu/4bl79jnfyf/2Tn+SZz/8peqtFKUUMYkMIiJA4J0k2SH5NM2kBw2LRc+KGa+WFTkEwb1YzLHeZnz7F4Q0RLFdWEaIqSQcaH2IhZmZcIY1JoyEVMGGSA9F0+g3dDxR1VbOxaXHWUBXgQ+0qrJIkncpJTVFIjBSGqNwlrcpsbEy48MyT9H0Pbos8ZlRlYOi55iXXsRhg0fUMfUe3WuLaCTlknBapCCkK0L5I6nVMGCtdyjBss3X8CG/+wR/kng99kq0jR7jpjtfSbsxk38tnS8F5H/cJMUcePbnm+AHLh3/53/KOd/8TrO2gqlAxgqpJKbDa6Tn/1Eke/NRf8NgXPgdoLnnBi7j52/97rrv1pRglyrr1ekVKGWfA+0hTOfq+L5olSz/2QqzMjiEkxpjY6zXX33IjzE/K6Td4cIrOZ04/8RiHDmj6Tjyfz09kMUqShdK+mWg/UWE/0UgpaFv082Q3VmrhisMHDpKWvSTGOXPROmdLTFJOEW1F2aWyEB+FVJzRxjGbNjz0tYfZ2+657NKE6nsYPVmBnq25/KZRlLMCAAAgAElEQVSXc+bpLzGtQRkn2qDKCf/GWpyt0SHirKgTnKsKL10TicAuhy6d8cbv/c6LACXSXO6VIYiyGyl56axZLzte/Vfezv2f+RjP3v85vvRnH+MVb301EPEJth99lpMPfo1HP/dFdk8+xYFLL+Elb/p2XvLGOzh8+XEhZ4VdKUJUW6Ayy3XP1E+kaVAox1oZfE6ELG5tVeQvXQ/Xf/PLUTqQ+0EgxlHQaudP7bB34QxXXn4ZO7sjVdWI9imKTnUY+iLxeE5Z7gtvpzC00Shq5wTW9Px7pCKJt1ArUghC91eGjCyfzjms1ai0n0tVEmZCZAxrUIrdxYonH3mU6688gBs6MCXAZbXg9m/7Vn7v33yWg1duCr4zJzH+GI2OEUtElX2hD4lkwUdpFksXw4BfQFjKnlO5IsvnOZBgFr6c0YYwBpppy9t/+Ef5w3/2o9z93v/IlTe+mPXuaZ7+6gM8cfcXCKHn6DXX8Zpv+z6uufWbaZqJzO7hLHkolaymAgyVMVTOgBI+3JCTYDiVGGun01bC2LQjK8Op3Tlv/5vfCv1cuhtKCubduueJBx9BNYbdxZp+8BdnoxRcKCTOQIxRikHFWuiHsdw9IyErNt3sG5fWUqC3+xboTFNXFyOQ9hHY4xgIQXyFOaaSt6FRxe4222x45CsPcvvtN7OligosKVivec1bX8Nv/UvJ0AJBX5skqTdJweDTfikSW1thr2lFYwzONkVFlqRvZ/bjKbIgi1N+LjrTyJtblb3lhle9is/dfDu799/FH/zMT1A3MzYPH+AFt7+K6151K8evvgrYhbgij3NUeUlUlaHvYRigFjRZay2NNYRRihohJtYxYLUWsnOx42ulCT7z6re+HlZ7EKJ4Zeqa1Wrk4bu/yqEDE+nyp8RQ7tZoyZdUSqOMKnleSc4msRCwlBcfZwh4P5LT806tAG3T0IyisUljf5GpE4MXi1uMKGuIxY5tbaE9poxzluAMG1PLVz77Ofbe+ZfZOrohlRErqJStI5vc/KrXsHr6i0xbSyDjE6RS0TfOXVwRchBF3Wxjyu58ydMPPcbL3ngHyjXksZNCOhkGXyolDqKXvaCEtFRWFA457/AdP/D9fPDn12xdeTVXv+QlnLjlxcwOHoRwHoZTwrJJGdXUgrErbPJcV5Ak0iEZzVhCvawSdUNIEFJiTPIccgwoW7PY7bjxlXeweWSTvFgLx7bvISd2dlc8fM/dXHGZwxffTNOY0qYSRKgUZyB4qUnvX1OE/mGxToE2TOqaXCxg9jlmqWdnbw+tldCCs0QV5ZxK1kcS3HWh2O3rW5USzoAPkUMHJpx99BmefeIsV1xyGO1kz1IG6Be87X/4m/zkX/0AL73lUnEgKkXWmcJ5oaqsAFpyFG66MlgbeeBjH6SuHK9625vZOn4Ihm1ySMVfWGakLoUIKrnIRyFGQeTQpTPe9D/9HQ4dP46pHbAmh9My+5RG1Q66odSGKTlVoNoJsEUOkb3zO9JMTpl+8DgDbTEujSEJ8CgEfErc97Uz/It/+Tehu4DaJ4tMJ/ioefL+J3FxQeMOMvReJsp+QrHWWGex5e4op2tLTPliBmYuYTQ+ZQYf9zE7+43lzPndHfYWC4wq4AfrSGmUBuo+v7zccXIpjGtjcNZiFbSVpbaWK45v8KWPfpqX3HYDs6Ymh+KqXa+58ZZruPIlt7K3fIytgzP8MKASWG2ptUKlSFVVjGNiGBPZRqabE0wKPPOpD/DBpx7n1u/6Lq596XUotSt2BF/AQVZMtNQdxsgVSZc8LNLI0Ss2IS7IUaz1KuZynxylb2r3c0NANRtCGDl7jq9+9I84ee9XUBeeZDYpwKhS4bI+SipRBqMc3mh2dtdc97JXcuPNJ2A5l0A1FMo61mPgix/4INdcfRSItJXM+NGPjD4Q0YK6sQaV5LlLnTWJA8vIoPf9wBgzvddfbz3PGfoi66McHoRG6FFKFS1rviiWraxjUjfMmprGQG0Fpu5Hz/FLDvCVj32Y0yd3RWEWInR9ieyM/Hc/9vd58KGThGEUAJPTVEYCYpRSwm9TmqhlqYnjwHRiOHTQsvPYl/njn/05Pvm7HyTkgyg9LbNaoogYRiBjtUxSa57XPcj5uaCGkpdFyU7OWkHToJoDUB/hmQdP8+e//Gv80b/433jkI++jP3U/xw9bjhzcoDLSAPYxM8TIeghkpaidpa0sTz96inf92A+hxjV5HGEYUYs1qQ889bXTPH7fPcw22mJgDVTW0jYNs8mEaVNRG4XyAykINqYfesZ9ZlFdU1cVddPQ1DXtpP1/sZ6rfZZAwJpCodJGnMuuKqJlTVNVWCUpayqmi+q6VJbHEEbqyvPp932cK77/O2mUIrcTwYr0PTfddj2veNPb2H3k05y44hgpenJMdF5qimQR7FbOlhJhYr43Z92PTLcmTELHs5/8Yz709GPc+lf/GkdPzISmEb2kuWKkzOtMEfQ6yJ0MXrEmkJIszTqimk1gRvSZhz71Ge775MdZnzvDTPccUJG4oel9Rb9eSxJcTkxqSx+F/DX6QLf2TKcNO+dX3P7m7+SmV14P812Uc6UJFOiC54Pv+QOmm4691ZoxKUIqybVoIgmjNU0tEYgJGEbJDYshMsqXKtEXBussVV1dzCO72FgmZcZxpC7WcKUNjTM4IykwRiu0AVfynyAXV7MU1DMwX64YY+SSK47wqT/6L7zu7W/mxBUbKD+ClzulSR3v+skf5cff8q1sTefMNls6n0haYH+5nNCcUtgUiTmxHAN1EH3ZkQMHmE0cZx6+h9//Zw/xLX/9e7n59a9EmYWcDKnIWsn31Uidc7+vl8TIq6YTlJ0AG8zPL/jSn/4eT9z9WTZMoGIEUzKzFPihY73umC8W5NL9qYzBaOiC2PRtXbO91/P4Mx0//Fs/iOlX5H25aL8iNROefGyHez/1ca67asrefIEPXnAwRe6hTcnEzIaYBkDRNg3GOKoQ6MeBUOKaxujph5HN6jmpR3FjqRMvvnTzzt5nnFG0TU1bSYqp0/pitUUVn4dWUnO1WpGzYt0PdIP88KZt2dicEf1I3zluvOV6TM5kZ1FWmr2zIzOmW9fwod/9XQ5fdpgYRbJgKkdlLY2RVLoxeNa9F8SlUlRaoXOiDwHXWFzynP7yFzh/asllN9yCaw3QcO8nPs/q7ONc9sKbufLmm8CvJZ9yGFCzo8AGT95/ik/95m/wuf/8q+i9U0ycx+QepwU1tujW7O3uEcaRFCLrfrgI0N6/llXWXswmeuC+k7zrp/8F33zLCVTXS/RDzqi6Zaha3vOzv4rqz6B1ZrVa4X2Qva4EdqcshXcZULFixChaV6WFkKWyyCRjkBdtVikePt9/ZDX4R+x+xE9tNI3TpYaqC5goi4IrRbRyRU1nsc4xjiNdP5TyXkXTOOqmwVjLar3m0KGWP/2t/8wr3vKXeOFNh1HjKD6QnNH9mtd+1x188RNv54m7/4xrrr5EFOs5EYdBQrbJDCHt20UxpZqy7NbErhdJ4dYGdeU4+YUP85tf/gJv/rs/whUvOiECp6Qulq9U3QAbxLrl/g/fwwMf+gP2Tj3LoYMt1125RU6R3fXI2PfYnBm6NcthYBhGbJbnUhvDqu/JxjA4h3MVTikONQ33P/g4t9353bzpL78CPQxyFSnJP0llHv7i4zz7lc9y1bUHOHf+Am3TSJtPBUbv6dad3BKqijG6MvNdgUBpskmi+i/xVGoqoN66qvcByvtGV3XiFScO3dmFYhUoVQb5h5a6buQEBcSs6PpRIue1om1bJrNZie5LrNZLyJmt2YxjWy1P3Ps1vvkt34qJvewXIYAPWJW48bWv56P/5f30yz0uO35QTo9kklIMowi+tNFYMrVVRGXZmy/xIVA5Qw49Y85sbk0JywWf/6/vQbdb7F04zXDmcQ5efTNXv+y17J4fuOf3/5D3/fzPcfarX+CSLcOxQy1jGIRq1a3Y3d2jGz3rbk30PX3Xi7FUMvWoKnGXZa3xPlxUf589dZ5cH+KHfvHfsdkiJ+eMJAlZyzw7fvUfvJsjBxIxesYQySlcvBMqrQq4Kcu9PSWBNpVtJpGeUywYI61vJXKQzUnF/WcWH1n1/pGLtrqXXnHozkXvySkIlK9ERjgntGQfM0OIEjdU+HPtdIpzFSEIB8aPPZN2wkZbo2LgwOFNtp89ia4u4cTN16P7Xtow1oExtLXmxXe8iT//jd8k+0EkLa5hPQrRKYVAUzkaK9zEVdcRUqSuKnSUJcmHTLfuOLg1YWPmuPdTH+O+L36BoxsN0VZ8+SMf5uO/+rNMhrNcdulB2omk2I3dmu29Oav1muAD0QcWq3UhbUheY0jgY6Lve7FJqCQo6+JWPnN+j5NnVvzIf/xdLr12ExVHqTQZA9aSZhv88a+9jyfu+yybW9VFVkAsLUGVpVRpnASmpmI98KN8nhAlZiop4e2kWNRzSGvxQNtw3+nFR5b9WAZSceLmY5M7+6BwztA0NZVzpAxd7xmTFHO1UlSVYzKZYI2w3QSbKQ98YzbFKYlV0iULeTZp+ej7PsKNd7yBgzVSPRlHciV5kluXHuKam1/JH/z67zDdbIkqF72sobaGaVNByvQxEo2k1TXG0DQVQ8z4EOjXKyySZ1XXlisuP8ylRw9y/unHiKsLnLjiKAc2JsyXK3Z3dxmGsZD/BfEZvceozBijtNasxVmBE0UUyljRyJTQT6UN57cXPPbENv/o13+DF916NTqOcmd2FqIk4t17/yl++ad+mhdee5C9vTmrvqNfr8RaUDRQRotiX8D2DuPELNX3fTHPlhmKJBHF/SuG1mw0Ffee2nveQBp94lXXHL1zKGniISb60bNer9FWY5VhOp3QVjVVXYlBs1szDCOVNWy0jRybgRgDfpSyWz96VO2wleOeT3yB2777u6niQNYyoDl5dL/i+DWXc93LXsd7/8N/RuvM1laLIjNrasFKe88YZIlpq4pKi/Qholh3a0lGcI5+DCwXC0Y/oFLANQ5TW8LoiWHkwvY263XHajEXDVLeN5kGVPA41xBVoV6isVoCTWPx8qckKQw753d57Jk9/v4v/Tove+1N6L1t2TacJRuFmm1wbtfz8z/wjzhxSUUMPSFLTXUMSV4cayVEPGdSiBcjOXTx4LiqwhT23NAPdF0vfdv9lPWsaK3m/jPz5y+t+sTLrzl257ndOSEkwj5tonJsbG4wnU6l2K1E+TwOA9ZoNqcTJnUlt5cQiTkWeK6ij0LYD95z/JJDdLt7nH76HDe98Vswk0bqkutOrgMqc9nlW9zwmjfw57/7IUK34OiBhspakjKypJfAbavlCpCMKcDcLO0koA+CNNuPZRgjrBYrKS7HyGq9IpSsZWtELxRKBLpBYStLSMU5HEMp8MPQd3gvirZnn9lmb234kV/7T9xyxw2osS/wKEUePWo2Y+gV7/kn/4pJ3mG2UbNYCy8hlKJLUgYfCyOWImYr7UJdJFcogXIY62QPTYkQEuuuk5crRlqneejs8iOroQykUerEC49O7px3o0DctWEyaZlNJiLtSEkwm8MAOdI6y2zS4owmRkmSC6Eo7WKkL50R6xx125JC5NixTS48/hj92nDiJTdjVtvSMTdOHkDKXHLt5bz0jW/gvs/cw3rnvOxTObNer9DGMqkdk7omZOGsKmPQMVFXoj1ddbKXOWtQKTJG6LqukBgD3idRvYVUls7nli1jpMaZlRJ4EXI+qJ1FG0c/jJw6vcQeuoq/9wv/lhe94oUwrsihSDT7DtW09LHij3/uV9h5/Ctccukh1usly/mCofPSKHaS35xQ+MKGT6UpobUmJLmbiqFb+pumkt6vMjLM3brHh4hVkSf2xo+sh1AGUnPipmPTO31SzCYzprMJTVOjjKJfrfF9j0qZuszCpm4FSDsMRe0lcNNulODsjHDrrC1GIKOwGY4dPcAjd3+O3rdcdfMLJHaolJ9ySKj1kkNXX8Ztb30bp06e52v3PcRisaKdNEzqikmpTe5fA2IMOCNYGAnRU3jvqa3FVJZ+FA5NGEaqWhRq3TBQt63ECmo53vd9R0a8KyQYRr8fA4rKmb3dJef3Eje+/k7+7s+/m8uu2ITVnGxsoZJkVNMw6Jb3//J7efwLH+aqq4+zu7dLv+5JWWrImSysgNI1yhl58YehsMoFL55T+rrMk+iFFWtdJWAqJ52TiTM8MffPDaQ15sSrb7jizmwqmkYCwNarFcELiLdxjmlTyxeltLqS4MWkp5bpfSQhKjADuFrCqrWCtna0VSWEK2O55xOfwUwv59IXXo7zA7mqUN6TJxPQ0EwVL3vj66i3TvDoQ0+xd2EXlz3TSSUPQhuRaGpNXQu8wqPwwVM5R6WE2rWPjM4xUlWOrltj20mhFEtLDuMuUjP0/rXLWnwInD+3x2KdaY+c4M3f/4N89w+8k9YFcjdIcUErqeA0U1bLwMff8wHu+9gfsHVgwt58TrdeXsw8UVoa0NLJkDbdPudP+rkUnXB6jiegVHFkFRFWmZXaWJQxbLQVj1zoPrIenrdH3nbN0Tvn3SCV+K4jhcCkqpjUjrp2RS1X3JElPsh7TzeM+CRiZGtElGWsNFed1my0DTondrd3GLxntjHl0NEtPvknH0LXG1z24hupJxZCgIlkaeWuR4Wea2+5ltf+le9AVZucP3We3bPn2ZvvYStH1dbSnVeakKTJq7T8zLq2GFsxlAdTV00BE1lCka2YAn6Xx6aJPmCUtPB2d+bsrBLu8FW88m3fzTt/8h9z3S03oNbnyN1QCu9aas2bM/bOjXz8N/4rD971fjYPTPB+ZL6Y0w0jprBZ9z0aVYEY718n0r5ZVEksVSj7YS6p8SjZvigdl1SW25zhwKTmoXPP2yOtViduvuzAnbvLNURJ29mYtEyapoiB9nU7pQdptISPjHIxVoXDXVcVMQZUhrZybEwb/OiZ7+3R9x11OyGQ6YeeI8e2OPnAA2yf8xy76gqmlx9DjZ2YYKuKPHiYL3ATyw23fwvf9IY3sB4Nu7s9e9u77J3fRqdAVTsx35buTOMclRNH9OijoH60+FYyStTg3ktINgm0ZhgDi8WK7Qtzem9oL72eF7/xTt754/+Al73+FVi1IkeJ85VeZ0JZA5MZzzx6lj//ld9k59HPc/DglL35jhTSu06KCiVJwBhT7HNyjclRCg1+kLQEWRFkgIYggrS4zzPahyVluRWEKAnxB6c1D5xZPW8glTrxkmOTO3ufmE1appMW52Q/yjmWjEiB9yQFY4iMo+h6jNYYFM5JxLyOUQ5JVoj58709SfXZ2CQqxXy+wI8jbVMxm1TsPPkYzzz8LPXsAEevPIFykPsB+h5VVyWc3NNutrz49m/hhltvpT5whKxbQlDsnNvm7NlzdN1A3/VURsRcoSgaVOGtKhLr1ZJ+8HT9yHKxpFuuOXN6l3UwVAev5NKXvIJb/tKbecvf+du88i3fTtv25OUcQihiYSN136Yh0HD3p77CB3/1t9l74l4OHZbW1HK5kM/S97i6xo8FSJgyRqkC1pc6vlZKXMhc7LLJyVVrUZUnMfOk/RhZAZ9fDGLdahvuP7f8yKrfr7Uq2JhOGRipnBNqcozkGEqCjSxBIcgMjCGiSFSuxhkpXe1LINrphKau6Po1y8WC6D2TrQNEFKvFguQ9s40N5rt7qI3AJccOszr7MH/2i7/CM9/+Vl71llezcWACfScbflUiH1ZLVJpzyVUHeOu7/gbj93wnTzzwME898DCnnniKCydPsdzZZey3OXN+hyEmzjxzmhQT00ajUmR65BhDqpgePMb0+GEOHDnMtYcv5fh1l3PVi17ANS9+EdVkKgq9cEGWeGPAB/nz7ACoKdunz3DXH/4pd7//fWxOA9NDNds7O5JQNAZUFJ3TPvFkHEYiGjWdYAtQCa1QWmIhel8id0OQHm6JjsgoQhL4rgpyqk3FxmGdFdjj1/kjlXjelZLE7zAGdE640tKKpUgQQpIfYoQfbq1UIRg9zlgmTYWzjq7rWSyWeD/STmckFMu9PSiBl+PoURpybJjPF7RtC2PPV9/3+5x95FFufM1tfNOrX4qtxVCboyQeoDR0HTkuqGrHC1/+Il748lsAxc4zJ9m5sEO3HFhu7xJS5NzJ0+QccVZSYw8cu4yYEgeOH2S2dZCDx49x4OhhcUsxwmJO7kunRAlSM2fJLlHTCd5X3PvRT/D45z7NE1+9h0OzhHaw6npWezJzrRPUjI2esZh6VFZgNcu+p61rWm2xWqxxxihqbDn4Z8YsOqCScyEp6WXyxCjceaUNWekif/wG74ccjaMspTFQlxJdiLFMb4FEWGtwVVt4dRmVg5xKG/lve7u7kjnlLFXdgq1YLpeMg2cybSUyIQScc/hxYJkTq/WKQ0cvYWY8px/8PKcfeZgnvnw/t7759Zx48YtQbgXLhSzxPogGKGVYzyWOyToObjkOXn41qP0Q0PB1YZ/PwTA9jAuoJIGWuC2zLWvwcpBAK9mrmwala1J0fO3z93L/xz9J99RDKL/HZZe0LHrPhe0LLBZLydlU4ve3yAurU6IbAtrpopCLUi/2jknbiDscyctS5Y+JTA6CLkMJQk7ljNaiVOxHaaZpY0tz5xs0O+M4yhR2BmMsPglcVmuh9ButqeqaqnKy+RbfRmU0TdNijGExX7BcLjHWUk1mxBTZ3dlGKUUzaUu0/YDJiaqeEWLE+456NuPC9jaJzHQyQccd9u77DHedfISNK6/lhte8jutffgNKj7DalVptRpRvUYwx5VImckiTIQyislNZTLdKibTRVbBYwDSIAq9Q1kQ158RGZy1KbxJzw0Of+TwP3vVJzj3+GKwvcPzoBtnVLJYrlnsLiZUPgRASGIMKmZSGIqIy1M4wJmEyGCXnhsVyQQYZTKdl68OgosVoR+8D63Ekjl4iB7OkCDlVEdMgV7DgGbzfH8f8nIrOj2ilckarkCXbyhhN8EJArJzDlQavViJ5aSrLpGnJKbK9c571cgVK0dQtISXW6zUpJdpJK/JJ77FGM6lbxnGQL1c3hJTZPX8WZxxxGDlycIvZhkaHbXYf2uZDDzzAZ//oUl74ilu54VUvZ+vYphzNx05m6mqFcpX4HN1E3tJ1J4OW0n4utgx4jFwU9Wi5iiirQVeo+oAwD57d4cG7/oST936Ffvc843qXaeMYqsyF7Z2yPYSLKe/GOXRMZA1rP9I6Rw4eazKVq8nDyIjMdKskFXexWDB6z6SpqWpLDuKdNErRVkV4nWDIIvUQeKPEdyQCYQyshv6iSMfuz01ra8bklc0iPt4HEzjnsNriih1N50SlHXVVy0AHz3K5ZG9nh6qdMNnYwo8Dw1poyxsbM3LODKsFTVVRN3IhDyGCsVSVYzFfMA4eM7VEP9Kt11RWNCnKKjbVmnD2Eb76J0/yxT/8rxw+cTUvePnLueSGG7ns+utQ9FxEZpBlWZ22sOrI3oPNKNtC7eQrKw3VBGhRNEDkqfse4JkH/oJHvnQ3/fYpDtQRpwKHpjW72TL4kWH0zOd7zFq57yolGtwYgnDpkqjdQs7kbiRWibbETWWFEI+TXCeUNowxkHt5p+rKQVWTohxunFJMmwqlNTFKdahsm8Kqc2SjnVr28/75A5k6ISipft2VfqPYBCSFB2IUolPbNtRVjTVSSdnb2WHoR6rJlMl0RoyB9XpNTInJbIo2hrBeoxGAOykTsiR7123LetGxWq+kcF0ghD4E5ss5aQ6mnTBpJDVvo1LYnEkXHuWhP3uSz743EKg5cuXVXH7dCS677jpml14h1BBjOXTs+qKSN0DN+VOPk3OiX6yYP/soZx9/nPmpxzn31FMMfWA2NVibONhknIJx7Ik54MeBvfmCBPgQ2N7Z4cDGJtbVVN6DMnTe03W95EwWmINOUhN21lJZc1H1IHfYTA4ZHwN5EPZQ5aygy4xB54RRmSZncluz9p44BkF8JjBWK+ssPsRuf2nNGdIwhJj8aH0QcbBWMhtNcWBVWqSLdVWhtWIYB5aLJf044uqadrZBipHlaoWPkbaqxa0VIzF5NmabApq3jpAzbjIh9ANDEINLVVXEYQ1mQk6J1XJFzAYbIsGP6Ayj0UwmDXVVUZnE8UMObWB54Ws8u/sIp7/4EYZ+JBtFN0RWC7nrTmqwGXTlyFrRrTKbm45pY2hs5rID0HkYw4gxmgvnd7BOoXIUQ6uxInoahS7Shch8uWTaNpASzli6Uc4MMSdUFPtcTIk4jiLQygmVodKGoVRnrHGEHBiGnhACG5NWRG7a4CqNLtmb5dJZigSVnBFGT8iTfRpEsiWS0HdjWjlnt3COqpbyF/txRCrjGulFaqNYr9cs5guGvqNuWiYbm6ScWKxWjN7TNo0sizEyrtdMJjO0Vlhr6dZrlK2oYmYIgeViyWxjAxVleXJOsFx974kq0VhNWK1prEUZhY8jTdPgY77o2cxasbGxgU6BQ5OKbGuipKQQY2RWO6pig/NZsdhboCykMEI29INnuVrSjQlXOdZjjx4zFhjCSFMrwujxo6CrU0ysYs90MsU1NSEmrFa0sxn9MDB0Pa6WtAa8J5TT/nQ2I2UBH/lcoMbGkJ0jpMR83TGpa+qmSEGVPLOkwMRIVVKHgtY4rRiyWmVhrQVbkoOGJZy7pHFb8yjISZR80aZuqJ1gK7WWONu93V38OFC3U6ZbW8QUme/u4WOQCMKsyD4wdCuxzDnxyns/oFxN207ou55VLy4urVSJcTdkUonZy9StkWN4zkQFvQ/klCTcyxh0Pwiw10fyekkzmzBpG/pVL1+471HOEdqWylqWiz180iQN83O7VK6itoZxkGSDZTdi60pUDzEwqWv80JNGL2cIo8ka2knLYnfBYrng4KFDMAw0VcMQhdm6XiyleaAl84qxJ2UjrSenRI0wegYvL47SmhwjPmbm3jMtd3iJ6wgoJcFoddNibEXuOjYbywimxl8AAA4OSURBVNl1Op9zHoAowY1wZKNtTly+Ub2w8yJ3tEBTVVROMicMmvV6xc72Nn70TGYbTDY28WGUE9gw4KxlMpthtCIOHcYoptMNXFUV1V1PXbeAYr6Yk8lMmoa6VI+aupEHMQxgrdQkU5ZabxCyvnGW4CPrriflRL8eSF6O+/sJr4vlmtVqzegj890drFYM6zXrvpfy2TiICCpnxq6XqlWMrPu1MFW1pu/k+1hjSEDTtKS0r98RG/h8scQ5y2QykRS5bgVlxuZC14whoKsalTPeD0X6b7BFCeCjlOSkfSX11cFLxcYUaH26GBQAsRCbD7UVjy3C3c/uLD+VM08boMmwOV8P02+65pLXjMOgrDZZg6pqizOWFDyLxZz5ckEMEVtVNLMZMQSWixVdt6aqa2YbG8SxJ5XWTe3E0Cran57J1gHqtmU+F9FTXVeoGCRZ3VmapsWHwLrzEtWEREeQQgEdFvxlAf4qpSRTOSeBGZa4pW709ENHQmQbOku5bL67TdivJaxXhGFEOy0Mm5gZxpFsDJVzjCGWDMmEH3qhVWolD94aFJpARqVE5Wwx3LgCy5AgNqU1WYEv4XEUGKBSiqquCyVFPqMqyUdJgvcYBnHDWeukXZaRxHMliUhN0/LxB0/+3noMDwCndCl9zENMZ87Ph6eOz8T330wabEkzX3Y9e/MFQ9djKyeWNG1YLJf0Q0ddNVSuEm9fVsQYqCpH007QRpZU7RxVXbG3vcNyMaduG5wxTJqGcRypXC0QoZiESZolZ0sbgzFOXFMlxCSGwvAp/TlXV0Xp5+mHHh9EK9ovO4L3DP2aED1KO8QBl4khoawVlVqUVpIxmmHoyeWuPAyjBHBWNd4HLKLrjTFJs9g5lus1q67HlK6L0Ya6rphuzERMHBO2qssKIPKScQhChMyZyoj4OwRpVbm6QmuRfgwhsug6fIgiypRJmY9utFxYx5PdGE6LtZpe7zOhxxhPf/mZ859xdUtltNLGZu8D29sX2N3bI+RMvbFJM9tk6Ad2t7dFcaY0dVuXboknDD1VVaO0sNWG0TNGxWRjk6EbWXVrQk5YY0qlI1M3kyKxCKJnLbVEcUdJw3fsRfE9eC+BMinJIHUlazkr4f9oJ2EzdUMi4YeREDI5S1i3L6JqP/gSYZgYu46xHyArwjASY0JrK7lXPgKafhC1gasqYoyEIKgUXM18vkfKkjhntEhFyRmjZEBGLwE4/Sh3zhADYxALhbUOpzWU+2NKokJUWuNjoOt6Vt1A3w8oY7PWWmkSX3r6zGeGkM4UAsagS1FyL2fOntxe3H9qFZ6+8sgBlosF586fZ3dvjh+DeBDqhpQy666X8pDSVJMJGkMcxTVk66psyobRS9O53ZihtGa5WpBQNO0EI5pAkYVoyQzpxpGkcincSwHfFBVCuvhbiUA4Q9ZaeHlODkX77aBY4oS1LVxZ5I0WTFhpIzktvnyrMVWNdlXZhhR9PwhvyGlW3aokxmX6fhC2gjUkpdDW4pyjD7C32EVpjXFyUNRkTOVK2HWSq0tloWok27kfWK/XDP1AThHnxD7vx+dgSfsr4noYWHYDg/ccmThOLsOZJ8/Nv5pz3h9Ivz+Qa+Ds4OMTn3zo5Md3FuuQxl7t7i1yTBnXtjSzDVKGnZ1dFsslGWgnk9JVFw/DvlcvA0N5k5R1OOtYrdbs7szljVNa2G0poYzIAkcfGcqSmUIiKaTCFCN9P4KSE2DMuYD+JPNSRk+WphgjIQvbIJXPoGwFWtgE2tZCWJQmJ2MnKTcpS2Pa2gpTZB4p7zvbEwlRBi6WC2IIOFfjBy9B28qAdezszlmu1pLpnIXlp1KB+iu5Bnkv+R7xIjCiY/AjSluMsuIlyUpWn/1uDxKKuuz6HMZBjTHHTz9y5mO9j08DZ6XnJqfWfUaVAqr1MNYhpa1DLl+RyMrUTd7Y2lIoJXetrkMbzWQyxRrp8wXvUWgm7RTrJKJ33Q+gLRtbW8QY2N7eJmURStmydECiaRrxAYZMyGJRQIsQ2Sh5S0OhRoUoMUNKi/526AeMylTG4L3HKLE0jKEAfp2DGCXqQmu6lQDi0SIAzkpJYbqkpUvN2dN7sdbHooJwzqEUdP2AsQ7nanofGPyIrSq00aJZCh5X1Rjjiga1lHSNQAS9F5W5NrbQzEoPUmmMlf9PTEHEX0WrI6sL2WmlppXjy8/O737w2e2P5ZzvBZ4ue2Qyz0fClpaYPb239lvTyeFrjh04ql2lQsx5uVwqkSUaJpMJtasgR8Z+EF1M2xSlmMDaE5rZxibGGhbLFV3X4SpHUwnHLQRP00wwRossfxQ0NlqWTmMdRhcpREpUVUVA042hYNbURQ6NAN7BVsK4CTkz9L0gSlNEpShoUS0a2WwEA+ZLO81acxEt7X2g9xHXNmhj6YZBzL2uCL/y/tKqWS1XF53bKWdWiwV101DXTVGGi3MkZjn0xEJByaUHfPE0GqOYbZWEY6ecGLwnZUXKKldGq0ObEx7b6R769COnPphy/irwCHBeGqnPNer4hqqzObsah6MHt44en9UHd3Z21Xy1ykppNWlbKuvIKTJ2Eq1eVY1QHhFbtI9ZXLWTlsVyyWK+wHtPVUno9uhHOSQ1DSnB2gdiStLjBIL3VJUcAoa+l+QDVzFGMdFYawvVQuSQdd2I8KqqGUEOMTHIvTKJ+FhyvCKj9+i6uVipqepG9uhiYYs5sx5kS7C2oluLol6cT5qhNMW1khcwFlWhNlYk/n4U60LTyM8bR7lilIC4EBN+8OXELeqKEOJzA6zNxYpU70OurVZbbc3JhX/6rkdOf3AM6SvAA8ApYLlP/Hv+QO6HoQUgx5TUqb117xSziYmHjEJp63LlahRZjX0nb3RVCXFZSRG9HzyubaibhmEc2NvdkwfuHI2Te5bSmqadYoymGwbWwyiXZOekklOkjjklRu9LUIxmLHFDKcl+k6IkxRkjS7VShj4kcVj5UXBg3kuaXCUQ/TFEspLitKSqSyJQKlrSTKYfAyEi+LAi9ddGKl7j6MkpUbctURuGUfBr1knXY71aSSJP1QjdcRxAiSFIguCSzM5yWKPoePapjygD2mSlFY1G1bXLT+0Nj3760TMfW/bjPcD9wJNlSfXPz4/kG2ZlLNM1jCHGp3ZWq6qq3CUHZwcPzxqbUlKrrs/ee6X3o+utDMCq68A52rZFacN8vmAYRnQJCJVQa1EZOefkLrpekwtwff+Ol0uuYixvqtaagGLw4aLm04eI0eLNpGCkI1osBoMv/84QvZcie1UzDCPrYSBlQaOt1x37eaiytEootU9SDqzqGpRmuV6X5dURi93c2oL0LJ/ROHfxjphSlMZyVRNiIEQJqklluY37you8fzhRBcQbGH3MbV2pw7NaJcx4/9nFfZ9+9MwnuiHcA9wHPCHcNobnD9w3DuT+YI7lL3ognF2OyyGrsa2rdqvWsypFJYoyl0tpTHXDSFKa6cYmRimWqzXLcrrVBVMmeBGonKjjhpjovcc6Jx2GUToNRsvdsffildDGMiZpIaly7JeBpByI5FSZtcGXB3Jxn8hJmAfW0g+jvAzWoYyhK7PFVbJVDN6TlSSmjinLYalsFzkrqqrGhyCfozjOfMjlsg/GWrJSdF0nA183UidO8oKEGIi5zMAQGAe5aoSUc1YKp5WaOqXqynJqEc7e/czul7789IXPxpi+Wmbi48CFMjb5/28g95dYX5JMeqDfWQ2L0/N+vhhC56qquvTQ5uTItFGtMWr0o5w4m4aqqun7Ic8XSzV6kSpUZU/bV2/aSoCxq25gHD3aChc8KblGmBJQ0PV9IY0Y1r0nJDC2kgPJMAid0hgxHWmNT4p+lOU976u0Y0IZySpZd52U3pz4M/tekseVNhJJ7GUW+5jpBoEAGy3GnnXXS9hnTqz7nmH0VHVDjPLCDcOIcRVkRe+lLoyWmAelDMMwispcsnZyjknC0Y1is63UZlsrV1nOdeH8V0/P7/3SM7tfeGZncXeWg82DZSZul/FI3zhoiv/vX1qQGGyWSJqr9n9vttWVhybVJZdsTi6/ZKM+0lq90baVPTCbaKsVe3t7LPfm2Nr93+2dbWvbMBSFH0uy/JI0pGOQbf//j3UfygppmxenthxZ2od7XTIYXdd9GxEYCww2+HCle6Sjc1m1Nd5YxtBjTUldexbLBS8hcDh2OGNob27Iry6HidaVcuAznvFVScJyCqNYmjWN8KwxsGo9lRPTosp7QuHo45nu0OErRxwjrbO0zrBcLnnu9pzDRGxbfFlyPBxIGRpX0liZpwqxJmS720NVc7teE2NkdzjQ+pJV09BrkrdYrXC+phsGutMJ7z2+qhmGgf3TI4vas9l8ofQV3fHIEIJsNU2JPowMU07hHOMu5O6xG7bbbrjf9eOPfX++03nwDviufHGvwZV+B9ZbQM6tVIv+NbABvgLfgI0zZtN6e+udWVpjqtJaXxTZifVZLIw1YqyrQ1yBEaW1tcQ0yVKYpu+zH05RiLJ9mmTPVA7JCGFHyyGKjlaKj4oBsdFzKCLFn80SUsoqoBYuF1MUI2O1ypRv8Gp2kbXIKTr0ZSNrq3JCWArPOGs1MRLFvTFWExjZLDZGnkfRQMniuGbFFwlVnlKOU+accg5DTF0/Ts9TSg/AA3Cv14MY5dFfJjYfBfIyOlvVGn4CPut9rVHbApXKR4qL69p+nba4YAdBV9WOCtiTcsNHjcCXt6LwI0BeAuq0RlALLIEb7TcKpL2C+Ecws7KDoNE2g3nSfq9Ap/e+9F9+9gxqqRVKZhsmcwXx3WDODGGcGcLfgHdt/2H7CRF0llZq0xhLAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/apple-touch-icon.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wCBBQgJ3crKKYAACAASURBVGjezZt5tO1nWd8/zzv8hr33Ge/JnXIzc5OQmSGBEEIkEkwQBafWGq2soi1qxaoVKrRUrVYqSFGhpVqslUpJBwyYCBJImAJhCGQyc3KTO5/57PE3vFP/+B1cbVf7v+9a+4+z9l77vL/nfd7n+Q7PFnbX4qDPzmT6nT/54Td+f++Ss/fvW15avErjVgheJx/EKCUigrYG0Tmta4CEAQQhpEhIEGNEYkArQWU5KXXfa7QQG0+yCh8TkhKZMsQUiECI3QeNJIzN8cGTRBFCQFLEakOMIcUYUxNC8GI2V9fWHzi2OTl92+1/MfvO/vtFzrRuABAAEf5mE4B5z9t//pVnzPf+wRkL/Z8IzYyN9dNsbGwyns7IRKNUIreGoiyo25YQIyoKSgvOexyQkhBcQ2EsNtOIKCJCpoS6brG5ofGRFCOlNcQEPiUa5zFKyLWQ5zlV40ArqsbRzwxaNG3rCAKDuXkWl5cxeZ/xrL1tu/H/4e3v+XdfAjz/25K5smBc1aSUEBHe96s//2vL2v/CbGdjsa1npESKgjQxpBiTRBcQAaMNg35GFIho2rrGKkNMER89LtJFXgxFYUlGE0Mg00JTO0ymaaMgIVLkGa51RCVUdUuRWQprQSWapqF2HqMzepnCB6hbx7Suk1ZKXNumMitk0OuzsnffcKz6f/Cz/+p977rrQ7+dbnrLrzIoC3TrPR96x89z9Wtexwf/xVs/XLjxLz755ON56x1FkYu2WooiT0orSUISLaKURgkkEmVZEGLAZDkC2NyilAIRlBKMMeR5htYK6NItIZgyJ7Q11mZYqwkxkqQLdJFnZLnBB0cSQ4zQLzVKDK1rqb1PVosYY1KeZ6JFmFbTtLmxkS/M9W547SuvPe/HfvXdt3/8376Tj9xxDxrgji993bzrZ3/y7cva/dNHHn00DvqFCinJd/6hSJA8y4gpihJDSBEFaK0xRmOyDEmemBJWadAaBCSBSpDZLiAohTUZpIjJMkJIaA1aGRIRtMEojbWKzGY0bUsIkbwoyIym9YFZU2OMEaNBayMKEFEYY6QNXp468nxcmS+uevk118Sf+Ve//xUgaoAfvvm7rn7xwcX3Hn3u2bmylyvRJuXWiI8OUZrMGERprNGElCAlQozY3c3ZzJC+c8FT6k4tdZtWQJaXKGtJ3mGzjJQiojXBe6w1EAORRPARYxRFbvHeE1IiJiitJiZo25aEwmYWImilEUBphYuJadOmXq+nxuNhOm/fygvnl5e//NCTR44rIL9o/9L1o+HOmTElNJAbLQgpzwpcjMyalpgSCSEzYGx3gm1oiCFBTGhjEOlOS0hYmyHRkyQRk0cElDWkFFFak6JDG41KEaXUboAi1mi00vgEIQSKzAAJ11SEBCYzBOcxWiMktNb4EJhU05QZpMwNhTHsbJw+cOby3PVAoS8+/6wzz923+O5Sp33GKBAlRiuU1hK8Q2mD9xEhdu1AKZJvQVliCCAKSQmtuiDE6BEgRU+MEZJCS8RoTUJBjChRxN2KrgSSCN7tZo3VeB8JviVFQRMJAdqQCCmSUkIRu1MUoWlrahfIMytZliPBp7IoxSghKXvOVu1uV4PC7C1NuuL5EyeTj0nyTKcUE0YJmelSSaJnUjta50kxkecFOnoUEIPD+4hKCcXuPVQaJYq2bZkMd2hdJBmLyUuy/jym1ydFoZ3NmIyG1LNpV3mNRmuDbxpCEJSAUgbXVjjvUUQkehRCCI66rah9xJhEpjWZUpS5lZRC2hiNkvezC03yZ5jZdDqXXI3Jc9kcT1hIfVno5d0poVAkWrqIT2YVZWYpcktW5PjYNf7WNUgV6M8NqKsZm2vrmP48Z5zzQlYOnseBcy7gjIOHGCwsoIwhuMBkuMX6qeNsHH+O00ef4vjTj5OPd1haXiEJhJQojaZpalqfUAIxgtkFDj4GapewRnfAQQtGCY1TbI1HMqpaFhLMptN5k0LMVIi4EJgvelTVDOdaVhbnIQaci2RK4UJAtKJqA0ZrMkn0ipxp1YEBQuTIE0/QO3Aef/ftv8bCyhxLZ+ylKAdACwyAEZADGbCPw5dfChRUszW219cYrg/57//uXzNdO845F1xADB7nA0p3LcYgKEk0LjBtWvI8wygobY5IpG49O7OWqnGEGBGBiPSNiOi5smTmAnVdpX6vL1pgY3vE4qDEGoXzHqsVbVOD0owmjvlBD2sNeWbYGo84tT7i1l9+D1e/+iZSGnUVVCwpOWJUBD8jpYwYPEpFREWMiYiqKMqS/WedxYGzX8C7/vhO7v30J7jzw7/DXG7RRUkMAU1ClNC2nsp5SmtQJHKtgcSkcozrBtcGEhFNotQaBdp45xiOhhBgvldK41qwGi2wM6korKJX5KQYybMClyIxJaZVSz8G6qpm7+GX8K7feC/ChMSYhGa0ucl4c5uN40c5/sRDTNeeYzLaYLq1zeLefYjtsXLWBRy88EqWDh5gYeUc5lcyYJPrbr6Zl910M7/3tp9j++jjzA1KtFb4JEzqmrLIMVpRaE1MwmgyY9Y6QgJlFDZqlNVE74kxikEpVGbxs4bJbEa/LDFK473fzfFApKWXma7CSkIjtE3NM6fGvOkdv81V198IaQNkjsnOmEc+/2nWn36IWI0JoaFpA72yIF/ey/LiGShJuACzk0/xzOoREMPc0gr9Qxdz+atvYX4povWUX3zv7/GFT97JXX/yPhbmerRJKGxGpjTWKBrnmVaO2jVobbHSEYMo4FsHZQ4iybTOs7E9IqBZnh8QgicET24MSitC8KQE41lLJoF+URBT5Mjzp/nNj97BwXMWSKlCZB9f//THeea+z7CQK6rJkKr2CInJdMrEGLRO+ABGhFlTMxjME+KMPCvQsspwc53Tj36Tc65+DS/9njcCJ/muN9zICy69jH/5E2/koovOwhiDUcJ4PGXWdswlMxmSwEdPDAmrDY04ps7hQ0x6ea48fOGZe24dzSpa12BNRgdCElppCqsJwaMURAQUDIdj3v6hj3LmeXtJKeC94dN/+LusPfx5UooMhzs0bcNkOoQQSAgheowkfBKURJJ0/bZpWgg14/EEFwJzvYyjj3ydpx97nIuufhVKGhb2DLjkZTfx1b/8n8z1MiaVY+YDSgRrMzSQYkArTSIyaxqaoChzy+PHN27TK/O9w5eft//WEBM6JVrX5bbRGq2E6AN5Bz6BxHBrxM1v/mWufMWLSSlQV5Hb3vPbNKefxhrDxvoao9GIDIUoTYoJJUJ0vkMvSVApEWPCiOCdx2hF6yPROcajEcpaZLbFE99+gPNffA3GBPbsP0Cgz0NfuxcUaBG0EnAtIiAitCF2QRNLjBFF4vETW7cpEchEkSlNv9dn0O+jlaJpHONpTe0crWvBt1iExYOHefUbvpuUJkhS3PHBDxA2nmM0mXDq9CqZ0WTWUjctVoREwkrCOcfG5hYPP/htnnzqOU4dew6JnsxoUuwAvEqJum4Zb29RTYbsHHuKT37gg4haIIUxr3nj96DKFawIBsiUxmiD956YIMVIQqjrGbOqwrUNpISKMVE3DW3bMXyrND2jKQuLMYoowmRaE5VmdX3IL/zuexAVEdF85S/vYeuZh4kh4Oua1gVmdYtVQhQhxMDG6VOc2JhwaqdmY6L4mX/7X/nn/+0ufuzX/4jVGaydPMH29g60NYEuW7RohtOGRKA99ShfvfMziE7oMvJPf+/32VrfpswzGu+IWpNEaL2nqiqa1uFdSwyBFDoyoRKQlAJRBB8IrkGUYAX6xpAJ9MqSyWjMRde/gfnFASTH1mriUx/8LYJKrG2ehgSFAR8C3nlcU7M6hqve8A/IBvNce9P38+5P3ssLr76MwYLl4pdeyFt//2OsXHwtYf4gZv8VbO9MMDHhYsQoRWpaKgef/MBvsbmqAMXK/r288LqbGY1GEKGaTqkaR9u4jpGEgBbd4VutSQnk3DMWXnfLi867c1w19MucTBJWQW46omuUkOeWBx88wp/e/00sIyjmec9P/WPOXFKsra7TuBofEoTE/N6D2D1ncc1Nt3DGvgOMdzaZjWcc/etvM7e0zBXXX0eIidHGmBPPPMxlr7yZu/7k9/m77/g3THY2uO19v8Pw2GOE8Ram30O05sD+vWxN4K3//t+DHzIaK950zdVcfOm5xBBJoStkUYTaOZyPjJuW0ho++9cnfkDPl/bwWQvFrS4mtMiuKNKhCEThfct0POKmH/9pLn/F5WAKHv3a45x67BusrZ2mbRt6WcZwa5sbf/odvOS1r0ealqzImV/ez3B9nfUjj/N9P/cr7Dm4xGNf+hrK9Nh/7l4uvOYavvaJ2ykG8zz4uTvQWvN9//AfcdYlL0H1F3jyW/czKISm8RRFSb58FnsP7CHvZYy2A1tH/hqb50QRGh9ofcCFSOs9fpfvPrs2uk0vlPbw+Su9W0OIaEBSghTxziMKlNFMpoGbfuJW9q8sgjZ84X98nNGxJ0nOEVKXXoOyZDyukZS47JWv5vCLD7OwR3Pg/LNZOXQh9/yXD2Nsn3xugZWzzuH0kSd54DOf48rX3MgVN1zPhVdfw7PffoAvf/zjvOjGl3HOJS/iG3/5SbRKzGYNzjc4B5e+4qXgGyJw3113Ibqrqt55QoiEFPG+I/W5hmfXx7cZYwz9wTxhOsMowaouXUmdEBXagC0H7FleIrqWrdUN1o8fZTIdY5Ql764zWgnrzz5MO5tBaMmLm1g6sAB4FvcnXveWX+Fzf/IBHvryZ9h71vkcfum13PyWtwJrBD/Ct5GLX/kqNk4c5+6P3M7xZx6lbz0xCUYSucDm8aOsP/0cK3uXWFleAttDCeAdIhGjFSoCCrwLkDQJMKIUWZ6jGo/NNEYiRhuMAm00yXn27D3E3FyOKMVsVjHdWCWKpvaO5B1tVTNYOcQbf/FtnDpyhMHcIkceeJSTz+RccNUljDeGnD5yO8XcPIcuuorzLn8Jxngeuvuv2HPwLOrJiKoac+jCF3L5a27hz3/rbSwv5MQiZzqrqL3D1QqzeppZSBA9c2cssHfvQerto1gFVuc47ztiTSIpTRI6ku19YDSeUtc1Vd1Qu0jrA20C5yO1c/SW9lD2+4gkYurh6zFWCRkBneD8l93Mm3/nt7j02sv4rh96DYOFgqOPP8Khiy7nCx/9czZPHOesSy7hyu9+Pb6aMt5c56rXvI5zLr+QIw99i6WD81x2/Q1Mh1t84WMfA5uxPRoync5IKdKzFhNapJ101dJYyrJkbs8KdeuImK7gpIRHERASEJJ0ymCKEe9afAx4J93RW0sImjYGoouItujgiQitc+xs79DrZyjpmvfSvoMs7z9ArEdoo7nsVVdTzC/ysV9/Jxdf+0p6iwf45h2fYrBngde/9edoq4Yv/pf/TH/PXryL3H/n55lsfYIzL72YN/3G2/lvv/shnr/3f5L352gah1eC85GqGuJa1aUgGpPl+JAQH5CkCNFDElJMCB2yIiVMigFfzZAISknXX5JCO0+WWVyEvFAQPRK6ohRdA9Hgo2cwV/LwHX9Gz1pe9aOvpcwtqd3hBVcdYs+7/hl//E9+mdHmDt//C2/eJc+OKYFLb7yJBz5zF0/e91le+zO/zAVXXgIMgZpLr38FD3zqNpZtTVIG39YoY5HYdsJQSig81mT0rAYTkaTJsPhIh5dVd5eVEgwiKK2Jwf2NshRj6GQ+HzqolATRBlKHSZQyCAljDAKs7FvguXs/wWz9GNe/6SdZOXOO6BqW9vb4qT94P1//5N2sPvMMCwcO8Py3H2P79Co6s7z4luv57je9AWiJYQ1BEBGuvO5GPtwarLVUVYNSGt/WpF2YiHOkpAnJ0bQOjSZEj3cBn6B2nYKvrSLFiEkJYtcriNoQSGjT6Zjs0qzJbIavGnKVEOMIJqd2Dq0SRpdMRiP2LC1Sn36Uz73/vVz3U2/h0EX7gD7NrOHZr93Nw3ffwYuufTmXvv4HOfeq88n7BRBJYQbRoWwJzPPIl77Kt/7i3Vz0gjMIfkqroA1dq8IWKNMgsoBvHHXj8AIxdnfP09UTj9B4T4oBHyMmxkhdV8waj8SAtZoUOlEo0xprDXE8pVGavDRkbLMyP4eRmtg2pBSJIXJ6fRNrDQtnH+LLH/1zLnjpSzj68EPYTPHGf/ZOdjYrPvvuX6J/6GyuecNNpGYExoAyhFDy+Ocf5Ft3fIqVs89m7fhzZNTsTGq0VujYeS+FLrFASpGqqfHDbfp5hgsRH0FpjQa0TxgjWANKBKOUoihKjE30iozSanJryLRCSWe1taN1ZlXFXH+BwhhiOcfpo8cwebFbvhXWGGyCheU+P/i2n+fxL3+NH3rHO4EdoGH12DHGVcs3P3knh6++kv5ij62ja2ye2ODhz32R/uKAH3rnL9FfOszDX/kCSgK51viY8CRCTNjBPJnSSIzMJjOG66d3JdOARVB0LSOk2LXATrLGWKNZHPSZ1i1lbtG7yK51jhQjohVussrm8VX2G+GMPXvorxxgfPIZCk0n8++i/SiCKIWWmituuILknu9AhdEYZVncf4jzX34dn/2PH2Vp/36ycsDBiw/x/b/00/SWejAbQtpAS8InaH3oAg1ISJxx6Gz27VsB37C5OWQ2G6EkEWKntoeUiBFiDLR1i7K6q65KusteNQ3Ot92Dpe6lpNNbrbI8d+Q4l156Hsoornv9Ldz51ANEN+vEXa3IiWRaWHv6SdaOjzlw7hxp5lBGg7KIaHKjufaHv5fNoydYOrCH/pzFWNVVw2qMZDnIHtoAlkQmgTYqJlVDOVjmmlu+B9XPwAnPPvYcKtQ46XpiVIJrO+zaOI9PIKqT6VXVtpxYW2dzZ8h4MqVt2l15H/I8Z9Ar2bdnnns+8jF83ie1jpdcewW17mN7BVYUpRIQRR0SZRrxyX/5qzz8pSeQ3hxJK2gatHGgFL15w7mX7mN+KUNLIsVEFI1LOY9/4zn+7FfewpyMmbqWJoI1sGd+QEXBS66+hDQcU6ece/70T1hZnqdvNSpGQutQIiilyfMCZTSNT8SUUCmlzvqWzufQSiisZb5X0Dcaq7pWQrvGZz/+OaQsQAKv/4c/x87pbXqlpQ4JFxJGEtVkgjY1D/7p+/nsBz/CaNhCnhO8wmQaSZB8RGyJc8LGiTGP3v0t/uvb/jkP/uf3o6ZHyXJNqRQA06rl6LFNfuRnfhYkIL2C2//4v5MVjmHVINpQFjkL/ZJMC9E1NNWUFBNFkaN26SKZFpK19POcTCVyrcgy03kfAZLS7DlwBp/76Ee44Y23UPoxr3jddRx/7O9z78f+AwfPPogKjuBbZi6ijcb0YfWRe/ni+49y2Y/8OMoudoaR6YPJeeiur3LigW+iJutsr5+kT2BtMkH5wHBWIcawOOhx9LljXPsjb+alN1wJsxnj0OOJz/8VZT9jczgleI/SiiwvsNayMGeZ1TXTNnTGVEzopV5++AVnzN8aUyLTiqLMianjZ8YYirKHdy0qJg7s6fH8k89zxQ3XkcY7HH7x5Rx/bpvtpx7A9HpUjaPINClERpMZmQoQWk7efx/f+PJ99CRw6tg2T97xPxg+9SBh+yQ7OxtsD0fM2oammjGeVRQaAorNrS3Of/n3cevbfxq1tYOUPf7oN9+PqVdpmhaVEkkUtXOMx5PuHuqOFglCmRme2Zzdpudzffi8pfJWsRZRwqz2aKPoDwa7Up9nUBbYXfvczSqyub0cPLCCLi3nXnEp93/lIcbbq8z3c0pjmIWABbRSDMcTcqsY2JqFXBiffAqJLWtrq9TVjNFkCikyrRt6RUYbIYTUiWALZ/MT/+KXmOtZpFfw1Xvu58mv3sPaxiqzyQSlBJ0SNss73jurmFZ1BwhEUWaWp9fHt+mFXnb47D39W8ezFm008/NzZEYTnSM3il7e+ZAuBCZ1i3c1W8dXOefa6xj0hL5KXHHjjTz8jSfw2ydxCCLQywyV63qY86FjC65lWrVMR0OmbYNKgartpEpHp/Wq6FnbntA/82L+8e/9LsvzFgGOnxjypQ//IZPhKuPprGMcoSuQWjoJ1eYZKcG0qv8meM/vVJ0y8IL9i7favEArkODJdRcFLeCCp249zne2ea/M6SvHNz59L4df/ir6WaIsM6567Q3ky2fzxTvvYbkEbS0hQZ5pGufRu7iz8a7zKJRG0/VDpQRrNNs7IyZTuOWtv8L3vvnvMF8qGAw4/uwmt7/3vcRmmxAcCqEOAb8rejVNuzuv0w1WaG1QNkNIHNupb9OLvfzweSuDWyeTCXOZpZdndGQGnA/M2hZrLNpoBmWODp7xeEJ/YPj6XV/mzMuvYenQIpkI55x7gFf+vR/l9OmKx779APiGQb/EJaFfZKA1ISSKLKdxLZk2xJTYWN1gPG4571Wv503veTcXX3YuufdIkfHEN5/hi3/0AaazDTa3h8QQsZkl14qm7YzhgFC3jhACSukO9QTPXJHz/HZ9m57PujtZ9nqd0BsCJKh9oA2BzFqs0Sz0eqgYGI5GJGvZ2tlhec5w5L6vUyydxeLeZWxoKQYZV772+7j8u17NrDWsr28znlSUeU7rEyF0cz7TVqi9IuRLXHDD9/LD73gnr/rBH6EIG0hR0kTN/Xd/m7/60B9Q2pbNzS2qpqWJEZJ0UydKEWIkxERMkTZ2DgAihCRkSnFku7pNzl+Ze90tlx26c2dakRuVlIg45zBGkVtLbg1zRYlvG2azKcpmtK7FKMXSoGRlaZE2WPZd8lKu/YFbOOvw2WgdoalhMICg2V7fYnt1xGQ6ZbazxdziIlkvY+XMgyztWQBfdbMwJsdPWp5/8hRPfO6veOr+e6l8zXh7myLPaFOibiNRhMxaCqNp2pZp3TCuGhrnaXxn3IaQ2DPocfez2280PnjquiLEyLT2ooj0ioI8y8g0zPd6TEZDnI/oPGcymVLmGaVRxBDYGI5JCeLDX+b+0Qke3HOQg1e9jKtvua6b/ppusrRoWNp/PswmUFzcDcO4GoxAGEG2BGi+ecdnOf7g/WyffB7dTsgzYWNnQh0ibjajV5bkVlOHRNU0NDXMzfUoRRBRjKqmw7vapMY7GVVVB9YRlXxSzOqG3CqKosAYTWkN/TJne3urs7SNYToa0y8LVAoYk+ESxMbhXENhhK2Nk6jxFsPnn+TRT9zG/ktfxPw5F3DepYdZPpRjygwlfUKq8TFn85mTnHzyaU49/gRrzzzCchFovGM6mTDc3mKuKDvTiURKiumsplcWWC34AI7EzqRmcdDbLTsQY2JY1QKgjEFS8saF5Md1m0SQLMvIjKGfZ2SZZWNzAxciRdljPB7RL3tI9NjM0ISALUomO9uUuptaOHlqlazfY2AMiwt9Nh+7l/XHvspTn3D4tmU4C0TvGZSGOghz/Yzl+Zxx00KE46dHSErszBp8TOyMx/SLnKpuqXynMU1mFXmRkxtL7T1t27C54xn0CoqiJIlOQZDWR0IUkogzUxdG08CRPWV5vhJSYa0orVk9fRptLLYo2RkOO/O1rdB5TkJhbM5wewdIlHkPFyNtBFrHqKmpmoqAkBnL8sKA/kIfiobC9jEEpi4ynU3xWzO2doZgM9qmoTQahSaGSOsC/YGll+d4oKqbjjM2DUWpkRDQxuCcZ2s0pdcrUNZIkRVpeV5kY9o+P/NppBsXsr2D4rLlfnZJr1eglJK106dSVpRi8pztnS16RY/kW/plidIaZS3j0YRIYr7IKYqCmfMYayB0vmCM0IRI9B5JnTG6vr6Baxqq6Yxp45hMp6QUca7tUj8mRCDPcmof/jc2ZHZ7YiAgECF4T5HnhBSJu01vVrVJGyMoBUrL6qi5+8nVndsVsLk6ae4r82zYNC3Hjh1LmEyiaNbXN1KeFSgimc1A1O5klDBrG3JrQbrxl5iEsLvJ4D3Tuu4ewDsSqtNAlaZpGhrX4J2jrh1t03Ytq6oRrWl9pG1b8jwnimJrNELpjNwYrLY4F6hDpHWeqm2wShFcmyLgSbI1mqRZ3SIwOjWc3AdsKoHJs2vDL5waVg9srK8TlUVsltY3N1Pe64kSknMOZQyj6QzJcra2dzDakoIHrZk0Hh8iPgSC8wQUDumcLgTnWprW48Ju1MXgEyQBFyJaW3xI+JRwMbEzGkFMeBdJpuDU2jo2yztl31icc7QJprMZVeNSkefinU8JlZwPjKczNibNQ0+vjb8gMN61r5g+tTocnbln8ZL9i4O9pza3Uln2xCrBN430+gPqpk227ItzjqqqsFqhlQZtaULoSrW2+LbuUk8U3ntUit0Eso9UdY3aFX6bkHCpC0JKkWldE5Slqmsyk9E4B1oTU2RSNSBCUWT4GGh9ZFY3CWWkrhuJSpLWhvGsSoMiU5t1eOJTjxx7H/BVoNZ0I2VNgq2To3rUOLfv3OXBmSEmmU2nlGUPFyLJGNHGpo3NTSnyjJQSvf6A4XRGkq5QGKBtHW3aPZU2UOQZiKHyiWk16wxSoxhXDSEKznnSLtiufKQJnZzSuoDNc6Z1i7aWne0hg/l5Wu9xkdR6L62PCaWZzmYkNGfM99S3T2zf/43nN/8wxPRprWQ9Jbqh3t3x83GI6fT6pN2okzZ7S7V3rl9mSiupfJSi6KXVjU1hd4w7y3LaEJm2HuhUhRA6KFj7hChN6xxWa6IYZq3HxYQAMcC0dSRraUOgaRoCMG09iW4E23tHiNCERFSqm09vG7KspKlraZNKVV0TSeSZjc658X3HRvc8cnL7P4WYPg2c+Jvhfv7PdRz4i2fWhs89s8a95yzPXX14pf/C5YXe/LSulXNOBvN98B1InlQ1WgQxBiNC27aI0bBbnCR23CCmbm5cBIjg8Z19H8G5SKE0JIhtQzYoqKoZC0VJ6xxZXjKpKrKsYDTcptcboJXGatB5EbYqP37u1PCxY9uzbwBfAR4Gtv6PQXv+H0vAJlgGDu2+9uxO/in+9qwENMAGcAI4LrCR/q9fEvx/H/L/LQ7lDwAAABpJREFUet/QpfXfpgf8zopA2P2JRPr/feh/Ad1YUv7Sf+rMAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/custom-icons.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMjIwIgogICBoZWlnaHQ9IjIyMCIKICAgaWQ9InN2ZzIiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC4zLjEgcjk4ODYiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImN1c3RvbS1pY29ucy5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMi40MTgxODE4IgogICAgIGlua3NjYXBlOmN4PSI2MC4zNzU5NCIKICAgICBpbmtzY2FwZTpjeT0iMTEwIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjQiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTM2NiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI3MTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpzaG93cGFnZXNoYWRvdz0iZmFsc2UiCiAgICAgZml0LW1hcmdpbi10b3A9IjEwIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMTAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMTAiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEwIiAvPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkJhY2tncm91bmQiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDIxNzM2MSw4LjA2OTQ5NjIpIgogICAgIHNvZGlwb2RpOmluc2Vuc2l0aXZlPSJ0cnVlIj4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIgogICAgICAgZD0iTSA2MCwxMCBDIDMyLjMsMTAgMTAsMzIuMyAxMCw2MCBsIDAsMTAwIGMgMCwyNy43IDIyLjMsNTAgNTAsNTAgbCAxMDAsMCBjIDI3LjcsMCA1MCwtMjIuMyA1MCwtNTAgTCAyMTAsNjAgQyAyMTAsMzIuMyAxODcuNywxMCAxNjAsMTAgTCA2MCwxMCB6IG0gOC45MDYyNSwxNy43ODEyNSA4Mi4xODc1LDAgYyAyMi43NzQ0LDAgNDEuMTI1LDE4LjM1MDYwMSA0MS4xMjUsNDEuMTI1IGwgMCw4Mi4xODc1IGMgMCwyMi43NzQ0IC0xOC4zNTA2LDQxLjEyNSAtNDEuMTI1LDQxLjEyNSBsIC04Mi4xODc1LDAgYyAtMjIuNzc0Mzk5LDAgLTQxLjEyNSwtMTguMzUwNiAtNDEuMTI1LC00MS4xMjUgbCAwLC04Mi4xODc1IGMgMCwtMjIuNzc0Mzk5IDE4LjM1MDYwMSwtNDEuMTI1IDQxLjEyNSwtNDEuMTI1IHoiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNy4wMjE3MzYxLC04LjA2OTQ5NjIpIgogICAgICAgaWQ9InJlY3Q0OTkxIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICA8L2c+CiAgPGcKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjIiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkNsYXNzIgogICAgIHN0eWxlPSJkaXNwbGF5Om5vbmUiCiAgICAgc29kaXBvZGk6aW5zZW5zaXRpdmU9InRydWUiPgogICAgPGcKICAgICAgIHN0eWxlPSJmb250LXNpemU6MjBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzMzMzMzMztmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpVYnVudHU7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUiCiAgICAgICBpZD0idGV4dDM3NjEiPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDExOS43NzUsMTY4Ljk4ODkzIGMgLTguODQwMDYsMCAtMTYuNzczMzgsLTEuMzYgLTIzLjgsLTQuMDggLTcuMDI2NzAyLC0yLjcxOTk5IC0xMi45NzY2OTYsLTYuNjg2NjUgLTE3Ljg1LC0xMS45IC00Ljg3MzM1MywtNS4zMjY2NCAtOC42MTMzNDksLTExLjc4NjY0IC0xMS4yMiwtMTkuMzggLTIuNjA2Njc3LC03LjU5MzI5IC0zLjkxMDAwOSwtMTYuMzE5OTUgLTMuOTEsLTI2LjE4IC05ZS02LC05Ljg1OTkyNyAxLjQ3MzMyMiwtMTguNTg2NTg1IDQuNDIsLTI2LjE3OTk5NiAzLjA1OTk4MywtNy41OTMyNCA3LjE5NjY0NiwtMTMuOTk2NTY3IDEyLjQxLC0xOS4yMSA1LjIxMzMwMiwtNS4zMjY1NTcgMTEuMzMzMjk2LC05LjM0OTg4NiAxOC4zNiwtMTIuMDcgNy4wMjY2MiwtMi43MTk4ODEgMTQuNTYzMjcsLTQuMDc5ODc5IDIyLjYxLC00LjA4IDQuODczMjYsMS4yMWUtNCA5LjI5MzI2LDAuMzk2Nzg3IDEzLjI2LDEuMTkgMy45NjY1OCwwLjY4MDExOSA3LjQyMzI1LDEuNDczNDUyIDEwLjM3LDIuMzggMi45NDY1NywwLjkwNjc4MyA1LjM4MzI0LDEuODcwMTE1IDcuMzEsMi44OSAxLjkyNjU3LDEuMDIwMTEzIDMuMjg2NTcsMS43NTY3NzkgNC4wOCwyLjIxIGwgLTYuMjksMTcuNTEgYyAtMi43MjAwOSwtMS42OTk5MDQgLTYuNjMwMDksLTMuMjg2NTY5IC0xMS43MywtNC43NiAtNC45ODY3NSwtMS41ODY1NjYgLTEwLjQyNjc0LC0yLjM3OTg5OCAtMTYuMzIsLTIuMzggLTUuMTAwMDYsMS4wMmUtNCAtOS44NjAwNiwwLjkwNjc2OCAtMTQuMjgsMi43MiAtNC40MjAwNSwxLjcwMDA5NyAtOC4yNzMzNzksNC4zMDY3NjEgLTExLjU2LDcuODIgLTMuMTczMzcyLDMuNTEzNDIxIC01LjY2NjcwMyw3LjkzMzQxNyAtNy40OCwxMy4yNiAtMS44MTMzNjYsNS4zMjY3MzkgLTIuNzIwMDMyLDExLjUwMzM5NiAtMi43MiwxOC41Mjk5OTYgLTMuMmUtNSw2LjIzMzM5IDAuNjc5OTY3LDExLjk1NjcyIDIuMDQsMTcuMTcgMS40NzMyOTgsNS4yMTMzNyAzLjY4MzI5Niw5Ljc0NjcgNi42MywxMy42IDIuOTQ2NjIzLDMuNzQwMDMgNi42ODY2Miw2LjY4NjY5IDExLjIyLDguODQgNC41MzMyOCwyLjA0MDAyIDkuOTczMjcsMy4wNjAwMiAxNi4zMiwzLjA2IDcuNTkzMjYsMmUtNSAxMy43Njk5MiwtMC43MzY2NSAxOC41MywtMi4yMSA0Ljc1OTkxLC0xLjU4NjY0IDguNDQzMjQsLTMuMDU5OTcgMTEuMDUsLTQuNDIgbCA1Ljc4LDE3LjUxIGMgLTEuMzYwMSwwLjkwNjY4IC0zLjIzMDEsMS44MTMzNCAtNS42MSwyLjcyIC0yLjI2Njc2LDAuOTA2NjcgLTQuOTg2NzYsMS44MTMzNCAtOC4xNiwyLjcyIC0zLjE3MzQyLDAuNzkzMzQgLTYuNzQzNDIsMS40MTY2NyAtMTAuNzEsMS44NyAtMy45NjY3NCwwLjU2NjY3IC04LjIxNjc0LDAuODUgLTEyLjc1LDAuODUiCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTcwcHg7Zm9udC13ZWlnaHQ6NTAwO2ZpbGw6IzMzMzMzMzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSBNZWRpdW0iCiAgICAgICAgIGlkPSJwYXRoNTAxMyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDwvZz4KICA8L2c+CiAgPGcKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjMiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkludGVyZmFjZSIKICAgICBzdHlsZT0iZGlzcGxheTpub25lIgogICAgIHNvZGlwb2RpOmluc2Vuc2l0aXZlPSJ0cnVlIj4KICAgIDxnCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjIwcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O3RleHQtYW5jaG9yOm1pZGRsZTtmaWxsOiMzMzMzMzM7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VWJ1bnR1Oy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VWJ1bnR1IgogICAgICAgaWQ9InRleHQzNzYxLTkiPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDk5LjI4OTk5Myw0OC42Mjg5MzQgMjEuNDE5OTk3LDAgMCwxMTcuODA5OTk2IC0yMS40MTk5OTcsMCAwLC0xMTcuODA5OTk2IgogICAgICAgICBzdHlsZT0iZm9udC1zaXplOjE3MHB4O2ZvbnQtd2VpZ2h0OjUwMDtmaWxsOiMzMzMzMzM7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUgTWVkaXVtIgogICAgICAgICBpZD0icGF0aDUwODYiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICA8L2c+CiAgPC9nPgogIDxnCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXI0IgogICAgIGlua3NjYXBlOmxhYmVsPSJUcmFpdCIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiCiAgICAgc29kaXBvZGk6aW5zZW5zaXRpdmU9InRydWUiPgogICAgPGcKICAgICAgIHN0eWxlPSJmb250LXNpemU6MjBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzMzMzMzMztmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpVYnVudHU7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUiCiAgICAgICBpZD0idGV4dDM3NjEtNyI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMTU0LjY3MTQ4LDQ4LjYyODkzNCAwLDE4LjUzIC0zNi4yMSwwIDAsOTkuMjc5OTk2IC0yMS41ODk5OTUsMCAwLC05OS4yNzk5OTYgLTM2LjIxLDAgMCwtMTguNTMgOTQuMDA5OTk1LDAiCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTcwcHg7Zm9udC13ZWlnaHQ6NTAwO2ZpbGw6IzMzMzMzMzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSBNZWRpdW0iCiAgICAgICAgIGlkPSJwYXRoNTA4OSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/favicon.ico</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAABAAEAEBAAAAAAAABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAA4ODgAAAAABgAAAHIAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAhQAAAIUAAACFAAAAcgAAAAcAAAAAAAAAFwwfQv8dNGH/KUFr/yhCdP8tSXv/KUR1/y5Kff8nRHz/KkeA/y5IgP8nQG7/KD9r/xw0YP8aLlL/AAAAFytBZfofN2T/DyhV/yNAdf8cOW3/L02A/ytKgP85WJL/M1SP/ydHf/85WZL/OFaP/xs2Zv8rQ3L/Ijhj/ytBa/scL1X/IThh/zlShP8VMGH/J0V//05no//Q8f//4f///9z9///U9P//SmCY/yZDd/8tRnj/NlCB/xwzXP8PIkP/JThb/ylBb/8kPmv/NlOI/9fz+v/T8v//MlOM/zdcnf8zVY//MVOU/+H////l9vn/MU2F/yE5Zv8fOGf/HS9Q/xsuU/8lPmz/M015/213nf9QWH//Lk2F/zhalf9zf6X/SFua/zxdl/83WZb/UF6J/1lch/8nQW//KD5n/x4wVf8XKkz/GTBZ/x03Zf/O6v//ME6B/zlWkv/S8v//doGq/9v9///S8///ICpg/y5Lhf/S8P//JD9w/yE5ZP8XKUn/HC9Q/xsyXP8yS3j/0uz3/zhXj/83WJH/5u3y/3J7o//U+P//2vv//yk3bf8zUov/1e/3/zhRfv8oP2f/ITJS/xwvUf8qP2j/OFF8/9vs8P8wTYH/1fX//6u3zP+jrsj/8////05ajf/y9fb/OFOF/9rt8P89VoL/KD9o/yY4WP8eM1b/KUNs/zVPeP/e+f//PluQ/yEzY//n////2t3l/1VmlP/k////cICm/zhVg//W8v//KkZx/ytCaf8kNlj/MENi/zVPdv89VYD/3fj//09pl/9GZJf/MUBq/9nc5f/s////wcjU/0Ngjf9Pa5X/4P3//zlRef8qRW3/Kz9d/zFFYf82UXX/RF+I/z1Yfv/q////aYi1/0xrl/9Na5v/TWuX/0lrm/9gfKn/3vz//0dijP9BW4H/PliA/zhMaP8oP2H/PlV2/0Vihv9IYYX/UW6Y/+v////t8PL/epjC/3SRuP/t7/L/7f///0lki/87Vnz/TGmR/z5Vdv80SWr/Rlt9/0tkjP9KZIf/TmqU/0xni/9Vc5j/Um2V/x07Yf8dOmH/UW2V/0hpk/9Qa5P/TGaM/0Nafv9KZI7/QlV3/wAAAC5EXYD/VG+X/1JukP9MZ4//T22S/1Ntj/9beJn/W3id/05tlf9ceZ7/UGyQ/0tlhv9OZ4//P1Z2/wAAAC/9/f0AIyUqMEtjjf9HW4L/SWSN/0dhiv9EXID/UGeO/09nkv9OZ5H/R2CF/0xliv9KY43/RlyB/yMmKzEAAAAA4AcAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAAwAMAAA==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/hierarchy-item.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA8AAAARCAIAAACNaGH2AAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAAIhJREFUKM9jNDY2ZiAaMDGQAihRzSqurCHLTaRqVuWIhsZYTe5B4G4kR3GzEq2a26p63pIGN1lWgqrZ2NhYf12cO/2icn5PNZoGFnS1QtaNq7bBeBL5maZHq459hfEZccS8uENVT6n+9e687gMvfxN0d2amJrpSPGazsrL+/v2b2BDEopTGcQkAlj4m+FZaLVQAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/icon-class-13x13.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA6AAAAOgBhtX2rwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEpSURBVCiRjZIhS0NhFIaf892rIMw2BJNBwWTxOxdhDkxWq9FVy9KyTYta9gsM/gWDaQhOGLtLBstEl4yDlV2G9x7DHFw3Lu7El+eBl+97xXu/DzSBQ/6/NlAPf4VX4CzLsu8i2jkXAg2gKd57A3biOH6fAap6ICInwGaWZW8ich/H8ZeqbgN9B5CmaZoTGsCLmR2Z2aqI1MxM81yYrxBF0S5wJSIX3W73cpaLiPypOlf9GHClUuk2H5qZFUpmtgUMW61WUvQgC5KIDICyqpaXlpxzD0ACXKvqCkClUlmrVqvrhVKn0/kws3PgFBip6udkMhkmSVLLcyFAEATBLOj1eneq+igikZltiMhgPB4/5Tnx3j8zXcTNkovYC4E60yn1nZv/gYVrA/Uf6WhrDeKPiz4AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/icon-class.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB2ZXJzaW9uPSIxLjEiCiAgIHdpZHRoPSIyMjAiCiAgIGhlaWdodD0iMjIwIgogICBpZD0ic3ZnMiI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3LjAyMTczNjEsOC4wNjk0OTYyKSIKICAgICBpZD0ibGF5ZXIxIj4KICAgIDxwYXRoCiAgICAgICBkPSJNIDYwLDEwIEMgMzIuMywxMCAxMCwzMi4zIDEwLDYwIGwgMCwxMDAgYyAwLDI3LjcgMjIuMyw1MCA1MCw1MCBsIDEwMCwwIGMgMjcuNywwIDUwLC0yMi4zIDUwLC01MCBMIDIxMCw2MCBDIDIxMCwzMi4zIDE4Ny43LDEwIDE2MCwxMCBMIDYwLDEwIHogbSA4LjkwNjI1LDE3Ljc4MTI1IDgyLjE4NzUsMCBjIDIyLjc3NDQsMCA0MS4xMjUsMTguMzUwNjAxIDQxLjEyNSw0MS4xMjUgbCAwLDgyLjE4NzUgYyAwLDIyLjc3NDQgLTE4LjM1MDYsNDEuMTI1IC00MS4xMjUsNDEuMTI1IGwgLTgyLjE4NzUsMCBjIC0yMi43NzQzOTksMCAtNDEuMTI1LC0xOC4zNTA2IC00MS4xMjUsLTQxLjEyNSBsIDAsLTgyLjE4NzUgYyAwLC0yMi43NzQzOTkgMTguMzUwNjAxLC00MS4xMjUgNDEuMTI1LC00MS4xMjUgeiIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjAyMTczNjEsLTguMDY5NDk2MikiCiAgICAgICBpZD0icmVjdDQ5OTEiCiAgICAgICBzdHlsZT0iZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgogIDwvZz4KICA8ZwogICAgIGlkPSJsYXllcjIiCiAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KICAgIDxnCiAgICAgICBpZD0idGV4dDM3NjEiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjIwcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O3RleHQtYW5jaG9yOm1pZGRsZTtmaWxsOiMzMzMzMzM7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VWJ1bnR1Oy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VWJ1bnR1Ij4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSAxMTkuNzc1LDE2OC45ODg5MyBjIC04Ljg0MDA2LDAgLTE2Ljc3MzM4LC0xLjM2IC0yMy44LC00LjA4IC03LjAyNjcwMiwtMi43MTk5OSAtMTIuOTc2Njk2LC02LjY4NjY1IC0xNy44NSwtMTEuOSAtNC44NzMzNTMsLTUuMzI2NjQgLTguNjEzMzQ5LC0xMS43ODY2NCAtMTEuMjIsLTE5LjM4IC0yLjYwNjY3NywtNy41OTMyOSAtMy45MTAwMDksLTE2LjMxOTk1IC0zLjkxLC0yNi4xOCAtOWUtNiwtOS44NTk5MjcgMS40NzMzMjIsLTE4LjU4NjU4NSA0LjQyLC0yNi4xNzk5OTYgMy4wNTk5ODMsLTcuNTkzMjQgNy4xOTY2NDYsLTEzLjk5NjU2NyAxMi40MSwtMTkuMjEgNS4yMTMzMDIsLTUuMzI2NTU3IDExLjMzMzI5NiwtOS4zNDk4ODYgMTguMzYsLTEyLjA3IDcuMDI2NjIsLTIuNzE5ODgxIDE0LjU2MzI3LC00LjA3OTg3OSAyMi42MSwtNC4wOCA0Ljg3MzI2LDEuMjFlLTQgOS4yOTMyNiwwLjM5Njc4NyAxMy4yNiwxLjE5IDMuOTY2NTgsMC42ODAxMTkgNy40MjMyNSwxLjQ3MzQ1MiAxMC4zNywyLjM4IDIuOTQ2NTcsMC45MDY3ODMgNS4zODMyNCwxLjg3MDExNSA3LjMxLDIuODkgMS45MjY1NywxLjAyMDExMyAzLjI4NjU3LDEuNzU2Nzc5IDQuMDgsMi4yMSBsIC02LjI5LDE3LjUxIGMgLTIuNzIwMDksLTEuNjk5OTA0IC02LjYzMDA5LC0zLjI4NjU2OSAtMTEuNzMsLTQuNzYgLTQuOTg2NzUsLTEuNTg2NTY2IC0xMC40MjY3NCwtMi4zNzk4OTggLTE2LjMyLC0yLjM4IC01LjEwMDA2LDEuMDJlLTQgLTkuODYwMDYsMC45MDY3NjggLTE0LjI4LDIuNzIgLTQuNDIwMDUsMS43MDAwOTcgLTguMjczMzc5LDQuMzA2NzYxIC0xMS41Niw3LjgyIC0zLjE3MzM3MiwzLjUxMzQyMSAtNS42NjY3MDMsNy45MzM0MTcgLTcuNDgsMTMuMjYgLTEuODEzMzY2LDUuMzI2NzM5IC0yLjcyMDAzMiwxMS41MDMzOTYgLTIuNzIsMTguNTI5OTk2IC0zLjJlLTUsNi4yMzMzOSAwLjY3OTk2NywxMS45NTY3MiAyLjA0LDE3LjE3IDEuNDczMjk4LDUuMjEzMzcgMy42ODMyOTYsOS43NDY3IDYuNjMsMTMuNiAyLjk0NjYyMywzLjc0MDAzIDYuNjg2NjIsNi42ODY2OSAxMS4yMiw4Ljg0IDQuNTMzMjgsMi4wNDAwMiA5Ljk3MzI3LDMuMDYwMDIgMTYuMzIsMy4wNiA3LjU5MzI2LDJlLTUgMTMuNzY5OTIsLTAuNzM2NjUgMTguNTMsLTIuMjEgNC43NTk5MSwtMS41ODY2NCA4LjQ0MzI0LC0zLjA1OTk3IDExLjA1LC00LjQyIGwgNS43OCwxNy41MSBjIC0xLjM2MDEsMC45MDY2OCAtMy4yMzAxLDEuODEzMzQgLTUuNjEsMi43MiAtMi4yNjY3NiwwLjkwNjY3IC00Ljk4Njc2LDEuODEzMzQgLTguMTYsMi43MiAtMy4xNzM0MiwwLjc5MzM0IC02Ljc0MzQyLDEuNDE2NjcgLTEwLjcxLDEuODcgLTMuOTY2NzQsMC41NjY2NyAtOC4yMTY3NCwwLjg1IC0xMi43NSwwLjg1IgogICAgICAgICBpZD0icGF0aDUwMTMiCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTcwcHg7Zm9udC13ZWlnaHQ6NTAwO2ZpbGw6IzMzMzMzMzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSBNZWRpdW0iIC8+CiAgICA8L2c+CiAgPC9nPgogIDxnCiAgICAgaWQ9ImxheWVyMyIKICAgICBzdHlsZT0iZGlzcGxheTpub25lIj4KICAgIDx0ZXh0CiAgICAgICB4PSIxMTAuMDgyMzQiCiAgICAgICB5PSIxNjYuNDM4OTMiCiAgICAgICBpZD0idGV4dDM3NjEtOSIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjIwcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O3RleHQtYW5jaG9yOm1pZGRsZTtmaWxsOiMzMzMzMzM7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VWJ1bnR1Oy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VWJ1bnR1Ij48dHNwYW4KICAgICAgICAgeD0iMTEwLjA4MjM0IgogICAgICAgICB5PSIxNjYuNDM4OTMiCiAgICAgICAgIGlkPSJ0c3BhbjM3NjMtNSIKICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZToxNzBweDtmb250LXdlaWdodDo1MDA7ZmlsbDojMzMzMzMzOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VWJ1bnR1IE1lZGl1bSI+STwvdHNwYW4+PC90ZXh0PgogIDwvZz4KICA8ZwogICAgIGlkPSJsYXllcjQiCiAgICAgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CiAgICA8dGV4dAogICAgICAgeD0iMTA3LjU5MjExIgogICAgICAgeT0iMTY2LjQzODkzIgogICAgICAgaWQ9InRleHQzNzYxLTciCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZToyMHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt0ZXh0LWFuY2hvcjptaWRkbGU7ZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlVidW50dTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSI+PHRzcGFuCiAgICAgICAgIHg9IjEwNy41OTIxMSIKICAgICAgICAgeT0iMTY2LjQzODkzIgogICAgICAgICBpZD0idHNwYW4zNzYzLTgiCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTcwcHg7Zm9udC13ZWlnaHQ6NTAwO2ZpbGw6IzMzMzMzMzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSBNZWRpdW0iPlQ8L3RzcGFuPjwvdGV4dD4KICA8L2c+Cjwvc3ZnPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/icon-interface-13x13.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA6AAAAOgBhtX2rwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACxSURBVCiR7ZIxCsJAEEXf7ibkBoK22krASWflSQQPkMo72FjlAJ7GdGmC7XoBD5Am7moRFxZEkgM45eP9YQa+EpENUAFbxqcGyuQTuAF77/3zl621ToAjUCkReQGrpmnuQcjzfJam6aHv+0vbto/Ai6JYAlYDOOdcvNUYMwdOWZYtYh48PeGP71P/oShkjDExdM5ZpdSu6zob8+ApEbkyNOI8sRHrBCgZqmS1Hr22Bso335szaMsx+TsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/icon-interface.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB2ZXJzaW9uPSIxLjEiCiAgIHdpZHRoPSIyMjAiCiAgIGhlaWdodD0iMjIwIgogICBpZD0ic3ZnMiI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3LjAyMTczNjEsOC4wNjk0OTYyKSIKICAgICBpZD0ibGF5ZXIxIj4KICAgIDxwYXRoCiAgICAgICBkPSJNIDYwLDEwIEMgMzIuMywxMCAxMCwzMi4zIDEwLDYwIGwgMCwxMDAgYyAwLDI3LjcgMjIuMyw1MCA1MCw1MCBsIDEwMCwwIGMgMjcuNywwIDUwLC0yMi4zIDUwLC01MCBMIDIxMCw2MCBDIDIxMCwzMi4zIDE4Ny43LDEwIDE2MCwxMCBMIDYwLDEwIHogbSA4LjkwNjI1LDE3Ljc4MTI1IDgyLjE4NzUsMCBjIDIyLjc3NDQsMCA0MS4xMjUsMTguMzUwNjAxIDQxLjEyNSw0MS4xMjUgbCAwLDgyLjE4NzUgYyAwLDIyLjc3NDQgLTE4LjM1MDYsNDEuMTI1IC00MS4xMjUsNDEuMTI1IGwgLTgyLjE4NzUsMCBjIC0yMi43NzQzOTksMCAtNDEuMTI1LC0xOC4zNTA2IC00MS4xMjUsLTQxLjEyNSBsIDAsLTgyLjE4NzUgYyAwLC0yMi43NzQzOTkgMTguMzUwNjAxLC00MS4xMjUgNDEuMTI1LC00MS4xMjUgeiIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjAyMTczNjEsLTguMDY5NDk2MikiCiAgICAgICBpZD0icmVjdDQ5OTEiCiAgICAgICBzdHlsZT0iZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgogIDwvZz4KICA8ZwogICAgIGlkPSJsYXllcjIiCiAgICAgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CiAgICA8ZwogICAgICAgaWQ9InRleHQzNzYxIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZToyMHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt0ZXh0LWFuY2hvcjptaWRkbGU7ZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlVidW50dTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMTE5Ljc3NSwxNjguOTg4OTMgYyAtOC44NDAwNiwwIC0xNi43NzMzOCwtMS4zNiAtMjMuOCwtNC4wOCAtNy4wMjY3MDIsLTIuNzE5OTkgLTEyLjk3NjY5NiwtNi42ODY2NSAtMTcuODUsLTExLjkgLTQuODczMzUzLC01LjMyNjY0IC04LjYxMzM0OSwtMTEuNzg2NjQgLTExLjIyLC0xOS4zOCAtMi42MDY2NzcsLTcuNTkzMjkgLTMuOTEwMDA5LC0xNi4zMTk5NSAtMy45MSwtMjYuMTggLTllLTYsLTkuODU5OTI3IDEuNDczMzIyLC0xOC41ODY1ODUgNC40MiwtMjYuMTc5OTk2IDMuMDU5OTgzLC03LjU5MzI0IDcuMTk2NjQ2LC0xMy45OTY1NjcgMTIuNDEsLTE5LjIxIDUuMjEzMzAyLC01LjMyNjU1NyAxMS4zMzMyOTYsLTkuMzQ5ODg2IDE4LjM2LC0xMi4wNyA3LjAyNjYyLC0yLjcxOTg4MSAxNC41NjMyNywtNC4wNzk4NzkgMjIuNjEsLTQuMDggNC44NzMyNiwxLjIxZS00IDkuMjkzMjYsMC4zOTY3ODcgMTMuMjYsMS4xOSAzLjk2NjU4LDAuNjgwMTE5IDcuNDIzMjUsMS40NzM0NTIgMTAuMzcsMi4zOCAyLjk0NjU3LDAuOTA2NzgzIDUuMzgzMjQsMS44NzAxMTUgNy4zMSwyLjg5IDEuOTI2NTcsMS4wMjAxMTMgMy4yODY1NywxLjc1Njc3OSA0LjA4LDIuMjEgbCAtNi4yOSwxNy41MSBjIC0yLjcyMDA5LC0xLjY5OTkwNCAtNi42MzAwOSwtMy4yODY1NjkgLTExLjczLC00Ljc2IC00Ljk4Njc1LC0xLjU4NjU2NiAtMTAuNDI2NzQsLTIuMzc5ODk4IC0xNi4zMiwtMi4zOCAtNS4xMDAwNiwxLjAyZS00IC05Ljg2MDA2LDAuOTA2NzY4IC0xNC4yOCwyLjcyIC00LjQyMDA1LDEuNzAwMDk3IC04LjI3MzM3OSw0LjMwNjc2MSAtMTEuNTYsNy44MiAtMy4xNzMzNzIsMy41MTM0MjEgLTUuNjY2NzAzLDcuOTMzNDE3IC03LjQ4LDEzLjI2IC0xLjgxMzM2Niw1LjMyNjczOSAtMi43MjAwMzIsMTEuNTAzMzk2IC0yLjcyLDE4LjUyOTk5NiAtMy4yZS01LDYuMjMzMzkgMC42Nzk5NjcsMTEuOTU2NzIgMi4wNCwxNy4xNyAxLjQ3MzI5OCw1LjIxMzM3IDMuNjgzMjk2LDkuNzQ2NyA2LjYzLDEzLjYgMi45NDY2MjMsMy43NDAwMyA2LjY4NjYyLDYuNjg2NjkgMTEuMjIsOC44NCA0LjUzMzI4LDIuMDQwMDIgOS45NzMyNywzLjA2MDAyIDE2LjMyLDMuMDYgNy41OTMyNiwyZS01IDEzLjc2OTkyLC0wLjczNjY1IDE4LjUzLC0yLjIxIDQuNzU5OTEsLTEuNTg2NjQgOC40NDMyNCwtMy4wNTk5NyAxMS4wNSwtNC40MiBsIDUuNzgsMTcuNTEgYyAtMS4zNjAxLDAuOTA2NjggLTMuMjMwMSwxLjgxMzM0IC01LjYxLDIuNzIgLTIuMjY2NzYsMC45MDY2NyAtNC45ODY3NiwxLjgxMzM0IC04LjE2LDIuNzIgLTMuMTczNDIsMC43OTMzNCAtNi43NDM0MiwxLjQxNjY3IC0xMC43MSwxLjg3IC0zLjk2Njc0LDAuNTY2NjcgLTguMjE2NzQsMC44NSAtMTIuNzUsMC44NSIKICAgICAgICAgaWQ9InBhdGg1MDEzIgogICAgICAgICBzdHlsZT0iZm9udC1zaXplOjE3MHB4O2ZvbnQtd2VpZ2h0OjUwMDtmaWxsOiMzMzMzMzM7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUgTWVkaXVtIiAvPgogICAgPC9nPgogIDwvZz4KICA8ZwogICAgIGlkPSJsYXllcjMiCiAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KICAgIDxnCiAgICAgICBpZD0idGV4dDM3NjEtOSIKICAgICAgIHN0eWxlPSJmb250LXNpemU6MjBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzMzMzMzMztmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpVYnVudHU7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUiPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDk5LjI4OTk5Myw0OC42Mjg5MzQgMjEuNDE5OTk3LDAgMCwxMTcuODA5OTk2IC0yMS40MTk5OTcsMCAwLC0xMTcuODA5OTk2IgogICAgICAgICBpZD0icGF0aDUwODYiCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTcwcHg7Zm9udC13ZWlnaHQ6NTAwO2ZpbGw6IzMzMzMzMzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSBNZWRpdW0iIC8+CiAgICA8L2c+CiAgPC9nPgogIDxnCiAgICAgaWQ9ImxheWVyNCIKICAgICBzdHlsZT0iZGlzcGxheTpub25lIj4KICAgIDxnCiAgICAgICBpZD0idGV4dDM3NjEtNyIKICAgICAgIHN0eWxlPSJmb250LXNpemU6MjBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzMzMzMzMztmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpVYnVudHU7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUiPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDE1NC42NzE0OCw0OC42Mjg5MzQgMCwxOC41MyAtMzYuMjEsMCAwLDk5LjI3OTk5NiAtMjEuNTg5OTk1LDAgMCwtOTkuMjc5OTk2IC0zNi4yMSwwIDAsLTE4LjUzIDk0LjAwOTk5NSwwIgogICAgICAgICBpZD0icGF0aDUwODkiCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTcwcHg7Zm9udC13ZWlnaHQ6NTAwO2ZpbGw6IzMzMzMzMzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSBNZWRpdW0iIC8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/icon-trait-13x13.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA6AAAAOgBhtX2rwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADRSURBVCiR3ZKxTQNBFETf7K4uoQwISCDgn5wQQUQXFIB0EWUQOXAtLgCLZO8AITK7CVJu9xMYpBMWsmN+OJr3NSONzOwCmAOX7L8V0KVv4A24rbWOf7lDCAm4B+YyMwdOcs4bM7uWNPsNuPtL3/fLtm2PgXUCKKUUAEmn7n4TQjhy9xZ4dvcPSZ/AspRSYoyk6cec8wJYmNm5pNda690wDE87UQ8ov9vvv0IxxjgVx3HcSLpqmuZ9qv/4ZGaPbBfxcOAizhLQsZ3SOoS9aVdA9wUmn0iraysBGAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/icon-trait.svg</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB2ZXJzaW9uPSIxLjEiCiAgIHdpZHRoPSIyMjAiCiAgIGhlaWdodD0iMjIwIgogICBpZD0ic3ZnMiI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3LjAyMTczNjEsOC4wNjk0OTYyKSIKICAgICBpZD0ibGF5ZXIxIj4KICAgIDxwYXRoCiAgICAgICBkPSJNIDYwLDEwIEMgMzIuMywxMCAxMCwzMi4zIDEwLDYwIGwgMCwxMDAgYyAwLDI3LjcgMjIuMyw1MCA1MCw1MCBsIDEwMCwwIGMgMjcuNywwIDUwLC0yMi4zIDUwLC01MCBMIDIxMCw2MCBDIDIxMCwzMi4zIDE4Ny43LDEwIDE2MCwxMCBMIDYwLDEwIHogbSA4LjkwNjI1LDE3Ljc4MTI1IDgyLjE4NzUsMCBjIDIyLjc3NDQsMCA0MS4xMjUsMTguMzUwNjAxIDQxLjEyNSw0MS4xMjUgbCAwLDgyLjE4NzUgYyAwLDIyLjc3NDQgLTE4LjM1MDYsNDEuMTI1IC00MS4xMjUsNDEuMTI1IGwgLTgyLjE4NzUsMCBjIC0yMi43NzQzOTksMCAtNDEuMTI1LC0xOC4zNTA2IC00MS4xMjUsLTQxLjEyNSBsIDAsLTgyLjE4NzUgYyAwLC0yMi43NzQzOTkgMTguMzUwNjAxLC00MS4xMjUgNDEuMTI1LC00MS4xMjUgeiIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03LjAyMTczNjEsLTguMDY5NDk2MikiCiAgICAgICBpZD0icmVjdDQ5OTEiCiAgICAgICBzdHlsZT0iZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgogIDwvZz4KICA8ZwogICAgIGlkPSJsYXllcjIiCiAgICAgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CiAgICA8ZwogICAgICAgaWQ9InRleHQzNzYxIgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZToyMHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MTI1JTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt0ZXh0LWFuY2hvcjptaWRkbGU7ZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OlVidW50dTstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Im0gMTE5Ljc3NSwxNjguOTg4OTMgYyAtOC44NDAwNiwwIC0xNi43NzMzOCwtMS4zNiAtMjMuOCwtNC4wOCAtNy4wMjY3MDIsLTIuNzE5OTkgLTEyLjk3NjY5NiwtNi42ODY2NSAtMTcuODUsLTExLjkgLTQuODczMzUzLC01LjMyNjY0IC04LjYxMzM0OSwtMTEuNzg2NjQgLTExLjIyLC0xOS4zOCAtMi42MDY2NzcsLTcuNTkzMjkgLTMuOTEwMDA5LC0xNi4zMTk5NSAtMy45MSwtMjYuMTggLTllLTYsLTkuODU5OTI3IDEuNDczMzIyLC0xOC41ODY1ODUgNC40MiwtMjYuMTc5OTk2IDMuMDU5OTgzLC03LjU5MzI0IDcuMTk2NjQ2LC0xMy45OTY1NjcgMTIuNDEsLTE5LjIxIDUuMjEzMzAyLC01LjMyNjU1NyAxMS4zMzMyOTYsLTkuMzQ5ODg2IDE4LjM2LC0xMi4wNyA3LjAyNjYyLC0yLjcxOTg4MSAxNC41NjMyNywtNC4wNzk4NzkgMjIuNjEsLTQuMDggNC44NzMyNiwxLjIxZS00IDkuMjkzMjYsMC4zOTY3ODcgMTMuMjYsMS4xOSAzLjk2NjU4LDAuNjgwMTE5IDcuNDIzMjUsMS40NzM0NTIgMTAuMzcsMi4zOCAyLjk0NjU3LDAuOTA2NzgzIDUuMzgzMjQsMS44NzAxMTUgNy4zMSwyLjg5IDEuOTI2NTcsMS4wMjAxMTMgMy4yODY1NywxLjc1Njc3OSA0LjA4LDIuMjEgbCAtNi4yOSwxNy41MSBjIC0yLjcyMDA5LC0xLjY5OTkwNCAtNi42MzAwOSwtMy4yODY1NjkgLTExLjczLC00Ljc2IC00Ljk4Njc1LC0xLjU4NjU2NiAtMTAuNDI2NzQsLTIuMzc5ODk4IC0xNi4zMiwtMi4zOCAtNS4xMDAwNiwxLjAyZS00IC05Ljg2MDA2LDAuOTA2NzY4IC0xNC4yOCwyLjcyIC00LjQyMDA1LDEuNzAwMDk3IC04LjI3MzM3OSw0LjMwNjc2MSAtMTEuNTYsNy44MiAtMy4xNzMzNzIsMy41MTM0MjEgLTUuNjY2NzAzLDcuOTMzNDE3IC03LjQ4LDEzLjI2IC0xLjgxMzM2Niw1LjMyNjczOSAtMi43MjAwMzIsMTEuNTAzMzk2IC0yLjcyLDE4LjUyOTk5NiAtMy4yZS01LDYuMjMzMzkgMC42Nzk5NjcsMTEuOTU2NzIgMi4wNCwxNy4xNyAxLjQ3MzI5OCw1LjIxMzM3IDMuNjgzMjk2LDkuNzQ2NyA2LjYzLDEzLjYgMi45NDY2MjMsMy43NDAwMyA2LjY4NjYyLDYuNjg2NjkgMTEuMjIsOC44NCA0LjUzMzI4LDIuMDQwMDIgOS45NzMyNywzLjA2MDAyIDE2LjMyLDMuMDYgNy41OTMyNiwyZS01IDEzLjc2OTkyLC0wLjczNjY1IDE4LjUzLC0yLjIxIDQuNzU5OTEsLTEuNTg2NjQgOC40NDMyNCwtMy4wNTk5NyAxMS4wNSwtNC40MiBsIDUuNzgsMTcuNTEgYyAtMS4zNjAxLDAuOTA2NjggLTMuMjMwMSwxLjgxMzM0IC01LjYxLDIuNzIgLTIuMjY2NzYsMC45MDY2NyAtNC45ODY3NiwxLjgxMzM0IC04LjE2LDIuNzIgLTMuMTczNDIsMC43OTMzNCAtNi43NDM0MiwxLjQxNjY3IC0xMC43MSwxLjg3IC0zLjk2Njc0LDAuNTY2NjcgLTguMjE2NzQsMC44NSAtMTIuNzUsMC44NSIKICAgICAgICAgaWQ9InBhdGg1MDEzIgogICAgICAgICBzdHlsZT0iZm9udC1zaXplOjE3MHB4O2ZvbnQtd2VpZ2h0OjUwMDtmaWxsOiMzMzMzMzM7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUgTWVkaXVtIiAvPgogICAgPC9nPgogIDwvZz4KICA8ZwogICAgIGlkPSJsYXllcjMiCiAgICAgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CiAgICA8ZwogICAgICAgaWQ9InRleHQzNzYxLTkiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjIwcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxMjUlO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O3RleHQtYW5jaG9yOm1pZGRsZTtmaWxsOiMzMzMzMzM7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6VWJ1bnR1Oy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246VWJ1bnR1Ij4KICAgICAgPHBhdGgKICAgICAgICAgZD0ibSA5OS4yODk5OTMsNDguNjI4OTM0IDIxLjQxOTk5NywwIDAsMTE3LjgwOTk5NiAtMjEuNDE5OTk3LDAgMCwtMTE3LjgwOTk5NiIKICAgICAgICAgaWQ9InBhdGg1MDg2IgogICAgICAgICBzdHlsZT0iZm9udC1zaXplOjE3MHB4O2ZvbnQtd2VpZ2h0OjUwMDtmaWxsOiMzMzMzMzM7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUgTWVkaXVtIiAvPgogICAgPC9nPgogIDwvZz4KICA8ZwogICAgIGlkPSJsYXllcjQiCiAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KICAgIDxnCiAgICAgICBpZD0idGV4dDM3NjEtNyIKICAgICAgIHN0eWxlPSJmb250LXNpemU6MjBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjEyNSU7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzMzMzMzMztmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpVYnVudHU7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpVYnVudHUiPgogICAgICA8cGF0aAogICAgICAgICBkPSJtIDE1NC42NzE0OCw0OC42Mjg5MzQgMCwxOC41MyAtMzYuMjEsMCAwLDk5LjI3OTk5NiAtMjEuNTg5OTk1LDAgMCwtOTkuMjc5OTk2IC0zNi4yMSwwIDAsLTE4LjUzIDk0LjAwOTk5NSwwIgogICAgICAgICBpZD0icGF0aDUwODkiCiAgICAgICAgIHN0eWxlPSJmb250LXNpemU6MTcwcHg7Zm9udC13ZWlnaHQ6NTAwO2ZpbGw6IzMzMzMzMzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlVidW50dSBNZWRpdW0iIC8+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/grab.cur</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////DAwM/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////wICAv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////DQ0N/wAAAAAAAAAAAAAAAAAAAAADAwP//////////////////////////////////////////////////////wUFBf8AAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////////BQUF/wAAAAAAAAAAAAAAAAAAAAABAQH/AAAA/////////////////////////////////////////////////wEBAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAcHB/////////////////////////////////////////////////8CAgL/AAAAAAAAAAAAAAAAAAAAABoaGv///////////////////////////////////////////wAAAP//////AgIC/wAAAAAAAAAAAAAAAAAAAAAAAAD///////////8AAAD///////////8AAAD///////////8NDQ3/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJCf8AAAD/AAAAAAICAv8AAAD/AAAAAAEBAf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AcAwPgH3cDwBwAA4AMAAMADAADAAQAA4AEAAPABAADgAQAA4AMAAPJPAAD//wAA//8AAP//AAD//wAA//8AAA==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/hand.cur</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////8aGhr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQH//////////////////////////////////////wEBAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////AQEB/wAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////////////////xQUFP8AAAAAAAAAAAAAAAAAAAAAHh4e////////////////////////////////////////////////////////////DQ0N/wAAAAAAAAAAAAAA/////////////////////////////////////////////////////////////////wMDA/8AAAAADw8P/////////////////w8PD/////////////////////////////////////////////////8AAAD/AAAAAAAAAP///////////wwMDP8AAAD//////////////////////////////////////////////////////wAAAP8AAAAAAAAA/yEhIf8AAAD/AAAA//////////////////////////////////////8AAAD///////////8BAQH/AAAAAAAAAAAAAAAAAAAA////////////AAAA////////////AAAA////////////BAQE////////////AAAA/wAAAAAAAAAAAAAAAAkJCf///////////xYWFv///////////wICAv///////////wEBAf8AAAD//////wwMDP8AAAAAAAAAAAAAAP///////////wAAAP8NDQ3///////////8AAAD///////////8YGBj/AAAAAAcHB/8AAAAAAAAAAAAAAAABAQH///////////8BAQH/AAAA////////////BQUF////////////AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAP///////////wUFBf8EBAT/AwMD/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wQEBP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AcgIPgHICDwByAg4AMgIMADICDAASAggAEgIAABICAAACAggAAgIOAAICDgACAgwAUgIMAHICDkDyAg/n8gIA==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/iviewer.rotate_left.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABXdJREFUWMPFlntQlFUYxg9qjjqiVprllONE/VGOOkmjqZiwkIymjgaIaZlTNjg14zRNSiFNIMoiiJI3QDRQEfEGLKh5SW7LrojKRVYJ5bbLLgsrIPebyNN7vt2lBZZFTO3M/ObAt+ec9/ne814+BoD9nzzLMWxxIEtauovxU4ezFzyGOm1nceLTDIt3CgJefqHGHbexuN9OMfyt8oJTgCDgtRf35tz4WYaMe6txV70V87YyiPwZHMXdqMk7Yr72WRsfttCfJflKGOQl6xCazlCg3Yu8qqXI162A4sEylNVEoKAyHJHS9fD4YypEW9lPtG/IUxlz3JIoXeCVBHuvC/jEWy7l9+wcyHCr4hscus4Qfo0hTM5wLJtjJcyxOW/hzO13kV6yCoW6MIRcXA1HPxbPzxuM8SF2G6M8vGPzoGkFKtsB+1/S+T1PEf3KrvpeZIjMY4ggg4eIyFyGqDz9s8M5DAfpWdhNEpM/CXd1gdh10R0iHxY0mCsZOd8zvkJa1IQ/C5ugagLm/3yJC3ibmP6xJ0vzuURG7zIcIRy2MSyku18SzLDhOEMgXU3kHfIQCTqqsEaObjO+PjgZsz3Y+7TfaiDjVh9+tUP07QE5lI1A4FUVVI1cwDkuYBIxnpjJRfgmM5xQMjjvELJgkY09+266OwtYuJ21eJCQyEISQUISlbYIz/wITr5MQuteGkjAcLsfT0ii5WqklLTA/4oK5YIHEo2pNtQoYgGJ8Kc4+DRIEPAeMZngb7mAiwjKoisqJi+UWOO8djac9ek6xqL1KXNdX/8s4IpgNFRWgeCU8t4CmKkIR28mX6avhBMNgTaKC5n5JfNZH8MQXUFohiGhZiIW6T013mKO2/1wLDjk/D1cU7VjT5qa0JgTYBQxgZgxYgyz7VUJR81cw75YQhWSG3UW6+clQaxxoII12s5TgsKaLpzMqUGYTCugD0KJuWrH39iaGNurF/B7foOYRTgaEBEfEOP6Tb0530ds8IrJRW5lJyKuVeJQZpUwWxDQbyATI4hXDHuMjLMUhCPnb47TZlDqxSvqEJWlwxEiMqtKyALumedZ77tTL1/Xiejsahw3EH2rWkjH5y1ASL1jMjWSi5pxMrcGpwg+x1IslJGAeZsThDqw9oA0YRUJdd8nrVrud+adJyksAw6eeivEV1BUD8Tdru3BWaKsAZi7KZ4LsFm1XwY+mlsfwet0HtyCLz91s+mRersp9TLK2pB4p64HEsJEwFS3vRmCgAxVrTAfTi2Ca0hK6mCbTZ/UU1Q9prrfgAsF9X0o/VfANFeDgL+KdZAqq/EYXcgurcW6iEys8E+YNdgr6U69G5oOXCYB5iit7ysgs7wW19WE5iEetFK77OrCptgcuO2+Gj64rkepl3q/AdLSFiTfbzKLOQH5lQ1QcKoahL/L6pqF5zFyJVx/T9cs9zttM5A3rGwNqad40IV0EpBW0tyH9NJmlJgIcNmjF1BcS89N4P8bRRRo6rH2YCZW7rIcoELqHZGWI4vcLy9rhcwMcmWbWQHaxrY+VBjmjsddwhrfeAXcQlLNByhPveXiy7j3ELip7sB1VZtZbpS3o5gEzOkloL6tA3Wt/dPa2Smsk2Sr4bJHChexpEeAdqdeATWe3MpHyNV2IMcMefSb3gMJPWKAv2MnBZ4ljENd24KNR29h9d6UKGOAjhZ5nxMqnJIaDX/D/uApqG3rbkbTjIXoacaaUDk/YzQX8KrTloRyhy1JQp/ndaA/+O/8y9jB84ySf+24BZ5Lc98nA78KwbVPAPfa5wdkWLnzvNTQIYX+PYNwMOnXluDrphNv8mrIP7mecJ8p9oa91sYPhrG9erUlJhjWjzAcMGEQe03PsP4vJfuZjX8AgDmxlj4vX40AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/iviewer.rotate_right.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABWxJREFUWMPFlgtQlFUYho9CTjUaWqRlkzlZzWRppY2mQsolTVNHE7zmZRobnJpxmkbRQR3FlFUJNTRhRcMLKooKC97C5LYXLioXQQmFZXdZWFhlBeWyIOzbd35WhGWBHyfzzDxz/tv5v/ec873nHAaAPU96UvrM2MkwbQeLo2tH9hzKgGm/MUiiGDy3srN07/B/CxjouY3hH50fNp5i8NjybEU4UC8lHhKmJ8BxD2CYsJnhln4zFLcXYuOZZzMSvd03s1U+fw5HuHw58sul0FSGIe/uTOQaZyOnYgbyDXsQksKgUi+Dv4xhiuS/ywnHGYF9onddWoACYyhS1PNx+sb7iMx6G0czGdFLqENVDNJUhgPpDNcNy/B1IOOpPOCrDRfkk9bFYaJfHDzWxcp7KsrBfRML3HlpLm4atyMydzBCrzHsp4AHsxjCcxgOEeHZFJiehWW2PPO/RFOzgV2h9kMn+V1AeQNQWg+sj8yBy8pDPnxExQTvNdaHDf9+/xBkGX1xJK8fpDzYTYYdNNQrjjFMD2KYTHngtoXh8C0SQ2z6i+HLNSyZ2o8k3nVdex66GuBiQQ3khTVwXRNdRs9fEiPgBU9/JpOmfYFY7WhIKXB4AYMPBZ68ldWNnMe2DZvEfqTvpk7ZznBCSz1PaA0+inAmBruuPQfdQ2DHFR20VP+wT4XPl2535x3sTsArU8he5w1jcUTdDweKGAIzWoLTu4nEcGII8eE3NN8BNP8T2wfnLhjoujYWJTQCAZd1SFTXIUKlh8svJ2R8AetOgPNU6llM5SBElDoiooxh+XGGUYvZJmvgl60JNWgmrYQe61mqTXDWVkBQYglClGXC9bfbLmPoeK83ul1gpgeyh1wEWQq8nk4r3qhF7Dtr8NaV0DrfnxCv2/i/VUBwcimhR6quAbvP34bLz0eDulsr+hOfEXy+PKyMId7k+dF2LyCciH52LEYCZEIShioNAiezKlFQaYHLGhm3ad8uk9AqYmAbXiVeFJNAtgLCUstxIK1CqLPLm+B3PBvjfgpbIdaST71P8J5yF4RnVOBwhhGHiOi8Kii4JX3PGsRa8qkFTPCNEewXcf0ejmW2EEHkGpt6ZElRC9esX0+/N2+vvGL+H0oslaZW0LO3xq+OgYYERNLcn8yuxKnsljqhsBZHleIt2e1m5R0Uv8ovKge15kfghYug5x+MXx0NzQPgzA0TztpQWA3MloizZJebldfuxKSDSYVobLJAoTMJArz3KLiAjx8LkN2sQqwNCo0Zu0Ra0u6Qzw6IGbMsLA2ZxSaYm5uh0N7D30VGQYBXi4ARXEAxCbiQX92BiwUPkFfRLMqSHXZJ710J0tUns/CoqRllNWakl95Hut6ENL2powAa6ngKZo+rpY09siQlWtQwr99TSk+otEIgTVUtcst5Twiq+bU9AQl3auwiL65D0p0HoizZe+7O+FVL9qchv6xaCKKl4EWmWqjbwO95mRP8RICaPk8prkWyuiMpJCDvrkWw5OguLOnovTspyT86T/h5Q7MFhofmTrEnQKU1Q6mp74CKyKBpOCwvsWvJXnMksjFzguWQZeqFH9fTnFfVN3ZKtbmxnYBxJKCIBFwtaUC6zmyXa/pG3L4PzJLEt7Okw8I9ieErj1yH3lSHx6XJYukSi/W7JzkQI4xATvkjZBkaO5DNoXf5tEHZWrLvohAVnrZYF6IRfDMy0KxwK/KR6AwtbVh8xXRff67Vks5LQpU1C/Yphd7waRCHAvP2KrE4RHGf/vGRm2+Uhp+I+bmA+70z+Hs3Oj17rospoXavdXYeEAtv8ynxjvWw4iaynZv1YOPU2XmgJ/S3npycrCclse2cbA48z6f8CxeSsmD2KTWvAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/iviewer.zoom_fit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozRjE4NkRCRkVCN0JFMDExODBERUJDM0QxRjY2MzNCMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RkU1MjFBN0YzNTQxMUUwQTgxRkE0QUYwRjU5QkY0QSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RkU1MjFBNkYzNTQxMUUwQTgxRkE0QUYwRjU5QkY0QSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MTc5MDFEQTYyRERFMDExQTdBMTk4NkNFRjM1MkFEMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozRjE4NkRCRkVCN0JFMDExODBERUJDM0QxRjY2MzNCMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PlTc7RkAAAEWSURBVHja3FddCoMwDF72Jgy6QwiCFxIED6aPgoMdYLBb7Ml7bAh7dS2kkJXK2rSdboUP/CH52vRL0sIucMzzzLLbM/mE4lQAAPFN4uij1ytJgF5tiwaYW5ZyVZIQYoT6hIgzKUeMEgfE6GpHQ80hfkqUxKbEb8mJG0seN6mJW1sBQUetD3GIqsHXhqNqH/WeY6h6kqhpiSRYshFoM3H3WKVJYdZmF2J0XJipZhKLBRFlH6Ly9k6dEueZTXTq32aaBJ3ZTSIPCHWOPlh5rARSMcRVhYiLYvAgHv6igOjRISFQZ+iwS90WV2kSq7bFKAeBEHHpxlFzxLWZw94lIe/Vloucm8Qdn49yJY+fuUlAhH1j2b0EGAAsrdDtPhEtrAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/iviewer.zoom_in.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozRjE4NkRCRkVCN0JFMDExODBERUJDM0QxRjY2MzNCMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNzg4MzJBMUYzNTQxMUUwQTRCNENENUJBMjhGNTEyOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNzg4MzJBMEYzNTQxMUUwQTRCNENENUJBMjhGNTEyOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NzM1OEYwMDY4RTBFMDExQTEyN0Q1MzRBODU0NTU1RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozRjE4NkRCRkVCN0JFMDExODBERUJDM0QxRjY2MzNCMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pic1crIAAAG+SURBVHjavJbBSsNAEIYbC4GCEMipUAgUhEJPgT6AJ6FvUBC8CoJQ8FTwGfoCgg/gXdBLoVdBqHhKj0KLXpReK5U4A5MyrLubySZx4Kdldme/7GR2Nl6jpKVp6hTn5YyHoBFoCOqAYvK/gNagR9AdwL8aFVkLNAFtcFM52tDcFu5eKp21QU8CoCqMabuCMZ1vyoIJ6Ao0ADVJA/IlylyM7RQF+5qdTinttlcy1ezcLwKesOAtFZS0qocUk8VPpOAA9MkCxzqGoj2YFhqzMVwrkIBPWdArvcei4CbFZuMXNvABxY8Y4Bb049BIMOaGuUSvildnz7JLrdiu+8y/kqSaNwq/BPiQF6gk1XXYt20wA38wX1QCxmPXEvDSUBQek+6C8SBtfOyY/V9KnvSsouO0kB4n3kB4gV06gM+VGyv4j5Z54toys0viuYJLYgfqulyLK8O1GLN5MfXmxHC20T/DZlTkQyBy/BDYaXzvJrgthdcFPn1w7pEhA1p4noVU4ffKUVmQD8dCttjM8HB/4KVNWaxPkFx4pWAhvFsLWACf1wamhXsG+LZWsAU+rx1MADxmDwTF3wj9XhVgF/sVYAAy1yBFOaoPDQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/iviewer.zoom_out.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozRjE4NkRCRkVCN0JFMDExODBERUJDM0QxRjY2MzNCMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBN0QxOThDNEYzNTQxMUUwQkZCOUE5NTNBRTAyQ0IyRCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBN0QxOThDM0YzNTQxMUUwQkZCOUE5NTNBRTAyQ0IyRCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NTM1OEYwMDY4RTBFMDExQTEyN0Q1MzRBODU0NTU1RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozRjE4NkRCRkVCN0JFMDExODBERUJDM0QxRjY2MzNCMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrmQubEAAAG6SURBVHjavJbBSsNAEIYbC4GCEMipUAgUhEJPgT6AJ6FvUBC8CoJQ8BTwGfoCgg/gXdBLoVdBqHhKj0KLXpReK5U4AxMY1mx2dpM48NMy2ZkvO9mdXa9V0bIsc4rzDM9D0AQ0BvVAMflfQBvQI+gO4F+tmqwDSkBbnJRBWxrbwdlLVWRd0JMAqApjuq5gLOebkjAFXYFGoDZpRL5UGYuxPVuwXzDTGZW97JPMCmbu24ATFryjBSVd1WOKyeMTKTgAfbLAqc12okRTFo+5Agn4lAW90ne0BbcpNs9zUQY+oPgJy3UL+nFoJBhzw1yiT8VX54Dnk4jNesj8a0mpeaPwK4AP+QKVlLoJ+y57mIM/mC+qAOOxGwl4pVkUnklQNn7QHLP/K8mbntW0nZbS7cQbCF9glw7gc+XECv6jZZ64tsz8kHiu4ZDYg/oux+JacyzGbFxMvTnV7G30z7EZ2VwEIseLwL7A966Dl5Xw2uLqg2OPNBUohJsspBV+r2yVJfnwWciSzTUv9wde2ZRkQ4IY4bWChfB+I2ABfNEYmBIPNPBdo+AS+KJxMAFwmz0QFH8j9Ht1gF3sV4ABAAkfEFlXCHkAAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/images/iviewer/iviewer.zoom_zero.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozRjE4NkRCRkVCN0JFMDExODBERUJDM0QxRjY2MzNCMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyQjA3QTVCMUYzNTQxMUUwQTYxOUM5MDMzMjNGMEQ5OSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyQjA3QTVCMEYzNTQxMUUwQTYxOUM5MDMzMjNGMEQ5OSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MDgwMkVEN0YyREZFMDExQjM5QTlBMjFDMkNBNzIyQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozRjE4NkRCRkVCN0JFMDExODBERUJDM0QxRjY2MzNCMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnMNZRoAAAB1SURBVHjaYvz//z/DQAAmhgECGBYzMjJSHATEmDFgPmYh18U0sRiY4BiHbVAzDlR2YqFV/IKiC5tZsGhkoaWvYJaAHICebgZPATJq8ajFQ8ZiYFZiHigf84zG8ajFoxbTv81FxcLjPzobXkeP9iSGvcUAAQYA3cwkU5PSBGAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9ImNzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJqcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0ianMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgIAogICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJpbWFnZXMvZmF2aWNvbi5pY28iLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSJpbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZyIvPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1maXhlZC10b3AiPgogICAgPGRpdiBjbGFzcz0ibmF2YmFyLWlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1uYXZiYXIiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9Ii5uYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZWxsaXBzaXMtdmVydGljYWwiPjwvaT4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0iYnJhbmQiIGhyZWY9ImluZGV4Lmh0bWwiPkZyb250RW5kVXNlcnMgMi4yLjAuNjwvYT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBwdWxsLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaW5kZXguaHRtbCIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBEb2N1bWVudGF0aW9uIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9ImNoYXJ0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJ0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9ImdyYXBocy9jbGFzcy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtDbGFzcyBoaWVyYXJjaHkgZGlhZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0icmVwb3J0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJyZXBvcnRzL2Vycm9ycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtFcnJvcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+OTg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJyZXBvcnRzL21hcmtlcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7TWFya2VycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tPGRpdiBjbGFzcz0iZ29fdG9fdG9wIj4tLT4KICAgIDwhLS08YSBocmVmPSIjX19fIiBzdHlsZT0iY29sb3I6IGluaGVyaXQiPkJhY2sgdG8gdG9wJiMxNjA7JiMxNjA7PGkgY2xhc3M9Imljb24tdXBsb2FkIGljb24td2hpdGUiPjwvaT48L2E+LS0+CiAgICA8IS0tPC9kaXY+LS0+CjwvZGl2PgoKPGRpdiBpZD0iX19fIiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiBzaWRlYmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24iIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJhY2NvcmRpb24tdG9nZ2xlICIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI25hbWVzcGFjZS0xMjQwMjIwMjMwIj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ibmFtZXNwYWNlcy9kZWZhdWx0Lmh0bWwiIHN0eWxlPSJtYXJnaW4tbGVmdDogMzBweDsgcGFkZGluZy1sZWZ0OiAwIj5cPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBpZD0ibmFtZXNwYWNlLTEyNDAyMjAyMzAiIGNsYXNzPSJhY2NvcmRpb24tYm9keSBjb2xsYXBzZSBpbiI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taW5uZXIiPgoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSJjbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sIj5mZXVfdXNlcl9xdWVyeV9vcHQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9ImNsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCI+ZmV1X3VzZXJfcXVlcnk8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iY2xhc3MiPjxhIGhyZWY9ImNsYXNzZXMvRnJvbnRFbmRVc2Vycy5odG1sIj5Gcm9udEVuZFVzZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSJjbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sIj5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjEwIG9mZnNldDIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhbjggY29udGVudCBuYW1lc3BhY2UiPgogICAgICAgICAgICAgICAgICAgIDxuYXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmF2PgogICAgICAgICAgICAgICAgICAgIDxoMT48c21hbGw+PC9zbWFsbD5cPC9oMT4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDI+Q2xhc3NlczwvaDI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1ob3ZlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9ImNsYXNzZXMvZmV1X3VzZXJfcXVlcnlfb3B0Lmh0bWwiPmZldV91c2VyX3F1ZXJ5X29wdDwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxlbT48L2VtPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9ImNsYXNzZXMvZmV1X3VzZXJfcXVlcnkuaHRtbCI+ZmV1X3VzZXJfcXVlcnk8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48ZW0+PC9lbT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSJjbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCI+RnJvbnRFbmRVc2VyczwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxlbT5UaGUgRnJvbnRFbmRVc2VycyBtb2R1bGUsIGJlc2lkZXMgYmVpbmcgYSBtb2R1bGUgdG8gcHJvdmlkZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlcyB0byB0aGUgZnJvbnRlbmQgb2YgYSBDTVNNUyB3ZWJzaXRlIGFsc28gaGFzIGEgY29tcGxldGUKYW5kIGZsZXhpYmxlIEFQSS48L2VtPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9ImNsYXNzZXMvZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0Lmh0bWwiPmZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldDwvYT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxlbT48L2VtPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8YXNpZGUgY2xhc3M9InNwYW40IGRldGFpbHNiYXIiPgogICAgICAgICAgICAgICAgICAgIDxkbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGR0Pk5hbWVzcGFjZSBoaWVyYXJjaHk8L2R0PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGQgY2xhc3M9ImhpZXJhcmNoeSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hbWVzcGFjZS13cmFwcGVyIj5cPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+CiAgICAgICAgICAgICAgICAgICAgPC9kbD4KICAgICAgICAgICAgICAgIDwvYXNpZGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgoKICAgIDxmb290ZXIgY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQgZm9vdGVyLXNlY3Rpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tY29kZSI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tYmFyLWNoYXJ0Ij48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iZ3JhcGhzL2NsYXNzLmh0bWwiPkNsYXNzIEhpZXJhcmNoeSBEaWFncmFtPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLXB1c2hwaW4iPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJyZXBvcnRzL2Vycm9ycy5odG1sIj5FcnJvcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InJlcG9ydHMvbWFya2Vycy5odG1sIj5NYXJrZXJzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQxIj4KICAgICAgICAgICAgICAgICAgICA8aHIgLz4KICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uIGlzIHBvd2VyZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5waHBkb2Mub3JnLyI+cGhwRG9jdW1lbnRvciA8L2E+IGFuZCBhdXRob3JlZAogICAgICAgICAgICAgICAgICAgIG9uIE5vdmVtYmVyIDMwdGgsIDIwMTYgYXQgMTM6NTMuCiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICA8L3NlY3Rpb24+CiAgICA8L2Zvb3Rlcj4KPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4K]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/js/jquery.dotdotdot-1.5.9.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoJCiAqCWpRdWVyeSBkb3Rkb3Rkb3QgMS41LjkKICoJCiAqCUNvcHlyaWdodCAoYykgMjAxMyBGcmVkIEhldXNzY2hlbgogKgl3d3cuZnJlYnNpdGUubmwKICoKICoJUGx1Z2luIHdlYnNpdGU6CiAqCWRvdGRvdGRvdC5mcmVic2l0ZS5ubAogKgogKglEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgYW5kIEdQTCBsaWNlbnNlcy4KICoJaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQogKglodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0dOVV9HZW5lcmFsX1B1YmxpY19MaWNlbnNlCiAqLwoKKGZ1bmN0aW9uKCAkICkKewoJaWYgKCAkLmZuLmRvdGRvdGRvdCApCgl7CgkJcmV0dXJuOwoJfQoKCSQuZm4uZG90ZG90ZG90ID0gZnVuY3Rpb24oIG8gKQoJewoJCWlmICggdGhpcy5sZW5ndGggPT0gMCApCgkJewoJCQlpZiAoICFvIHx8IG8uZGVidWcgIT09IGZhbHNlICkKCQkJewoJCQkJZGVidWcoIHRydWUsICdObyBlbGVtZW50IGZvdW5kIGZvciAiJyArIHRoaXMuc2VsZWN0b3IgKyAnIi4nICk7CQkJCQoJCQl9CgkJCXJldHVybiB0aGlzOwoJCX0KCQlpZiAoIHRoaXMubGVuZ3RoID4gMSApCgkJewoJCQlyZXR1cm4gdGhpcy5lYWNoKAoJCQkJZnVuY3Rpb24oKQoJCQkJewoJCQkJCSQodGhpcykuZG90ZG90ZG90KCBvICk7CgkJCQl9CgkJCSk7CgkJfQoKCgkJdmFyICRkb3QgPSB0aGlzOwoKCQlpZiAoICRkb3QuZGF0YSggJ2RvdGRvdGRvdCcgKSApCgkJewoJCQkkZG90LnRyaWdnZXIoICdkZXN0cm95LmRvdCcgKTsKCQl9CgoJCSRkb3QuZGF0YSggJ2RvdGRvdGRvdC1zdHlsZScsICRkb3QuYXR0ciggJ3N0eWxlJyApICk7CgkJJGRvdC5jc3MoICd3b3JkLXdyYXAnLCAnYnJlYWstd29yZCcgKTsKCgkJJGRvdC5iaW5kX2V2ZW50cyA9IGZ1bmN0aW9uKCkKCQl7CgkJCSRkb3QuYmluZCgKCQkJCSd1cGRhdGUuZG90JywKCQkJCWZ1bmN0aW9uKCBlLCBjICkKCQkJCXsKCQkJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCgkJCQkJb3B0cy5tYXhIZWlnaHQgPSAoIHR5cGVvZiBvcHRzLmhlaWdodCA9PSAnbnVtYmVyJyApIAoJCQkJCQk/IG9wdHMuaGVpZ2h0IAoJCQkJCQk6IGdldFRydWVJbm5lckhlaWdodCggJGRvdCApOwoKCQkJCQlvcHRzLm1heEhlaWdodCArPSBvcHRzLnRvbGVyYW5jZTsKCgkJCQkJaWYgKCB0eXBlb2YgYyAhPSAndW5kZWZpbmVkJyApCgkJCQkJewoJCQkJCQlpZiAoIHR5cGVvZiBjID09ICdzdHJpbmcnIHx8IGMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCApCgkJCQkJCXsKCQkJCQkgCQljID0gJCgnPGRpdiAvPicpLmFwcGVuZCggYyApLmNvbnRlbnRzKCk7CgkJCQkJCX0KCQkJCQkJaWYgKCBjIGluc3RhbmNlb2YgJCApCgkJCQkJCXsKCQkJCQkJCW9yZ0NvbnRlbnQgPSBjOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQkkaW5yID0gJGRvdC53cmFwSW5uZXIoICc8ZGl2IGNsYXNzPSJkb3Rkb3Rkb3QiIC8+JyApLmNoaWxkcmVuKCk7CgkJCQkJJGluci5lbXB0eSgpCgkJCQkJCS5hcHBlbmQoIG9yZ0NvbnRlbnQuY2xvbmUoIHRydWUgKSApCgkJCQkJCS5jc3MoewoJCQkJCQkJJ2hlaWdodCcJOiAnYXV0bycsCgkJCQkJCQknd2lkdGgnCQk6ICdhdXRvJywKCQkJCQkJCSdib3JkZXInCTogJ25vbmUnLAoJCQkJCQkJJ3BhZGRpbmcnCTogMCwKCQkJCQkJCSdtYXJnaW4nCTogMAoJCQkJCQl9KTsKCgkJCQkJdmFyIGFmdGVyID0gZmFsc2UsCgkJCQkJCXRydW5jID0gZmFsc2U7CgoJCQkJCWlmICggY29uZi5hZnRlckVsZW1lbnQgKQoJCQkJCXsKCQkJCQkJYWZ0ZXIgPSBjb25mLmFmdGVyRWxlbWVudC5jbG9uZSggdHJ1ZSApOwoJCQkJCQljb25mLmFmdGVyRWxlbWVudC5yZW1vdmUoKTsKCQkJCQl9CgkJCQkJaWYgKCB0ZXN0KCAkaW5yLCBvcHRzICkgKQoJCQkJCXsKCQkJCQkJaWYgKCBvcHRzLndyYXAgPT0gJ2NoaWxkcmVuJyApCgkJCQkJCXsKCQkJCQkJCXRydW5jID0gY2hpbGRyZW4oICRpbnIsIG9wdHMsIGFmdGVyICk7CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CgkJCQkJCQl0cnVuYyA9IGVsbGlwc2lzKCAkaW5yLCAkZG90LCAkaW5yLCBvcHRzLCBhZnRlciApOwoJCQkJCQl9CgkJCQkJfQoJCQkJCSRpbnIucmVwbGFjZVdpdGgoICRpbnIuY29udGVudHMoKSApOwoJCQkJCSRpbnIgPSBudWxsOwoJCQkJCQoJCQkJCWlmICggJC5pc0Z1bmN0aW9uKCBvcHRzLmNhbGxiYWNrICkgKQoJCQkJCXsKCQkJCQkJb3B0cy5jYWxsYmFjay5jYWxsKCAkZG90WyAwIF0sIHRydW5jLCBvcmdDb250ZW50ICk7CgkJCQkJfQoKCQkJCQljb25mLmlzVHJ1bmNhdGVkID0gdHJ1bmM7CgkJCQkJcmV0dXJuIHRydW5jOwoJCQkJfQoKCQkJKS5iaW5kKAoJCQkJJ2lzVHJ1bmNhdGVkLmRvdCcsCgkJCQlmdW5jdGlvbiggZSwgZm4gKQoJCQkJewoJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCQllLnN0b3BQcm9wYWdhdGlvbigpOwoKCQkJCQlpZiAoIHR5cGVvZiBmbiA9PSAnZnVuY3Rpb24nICkKCQkJCQl7CgkJCQkJCWZuLmNhbGwoICRkb3RbIDAgXSwgY29uZi5pc1RydW5jYXRlZCApOwoJCQkJCX0KCQkJCQlyZXR1cm4gY29uZi5pc1RydW5jYXRlZDsKCQkJCX0KCgkJCSkuYmluZCgKCQkJCSdvcmlnaW5hbENvbnRlbnQuZG90JywKCQkJCWZ1bmN0aW9uKCBlLCBmbiApCgkJCQl7CgkJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJCWUuc3RvcFByb3BhZ2F0aW9uKCk7CgoJCQkJCWlmICggdHlwZW9mIGZuID09ICdmdW5jdGlvbicgKQoJCQkJCXsKCQkJCQkJZm4uY2FsbCggJGRvdFsgMCBdLCBvcmdDb250ZW50ICk7CgkJCQkJfQoJCQkJCXJldHVybiBvcmdDb250ZW50OwoJCQkJfQoKCQkJKS5iaW5kKAoJCQkJJ2Rlc3Ryb3kuZG90JywKCQkJCWZ1bmN0aW9uKCBlICkKCQkJCXsKCQkJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCgkJCQkJJGRvdC51bndhdGNoKCkKCQkJCQkJLnVuYmluZF9ldmVudHMoKQoJCQkJCQkuZW1wdHkoKQoJCQkJCQkuYXBwZW5kKCBvcmdDb250ZW50ICkKCQkJCQkJLmF0dHIoICdzdHlsZScsICRkb3QuZGF0YSggJ2RvdGRvdGRvdC1zdHlsZScgKSApCgkJCQkJCS5kYXRhKCAnZG90ZG90ZG90JywgZmFsc2UgKTsKCQkJCX0KCQkJKTsKCQkJcmV0dXJuICRkb3Q7CgkJfTsJLy8JL2JpbmRfZXZlbnRzCgoJCSRkb3QudW5iaW5kX2V2ZW50cyA9IGZ1bmN0aW9uKCkKCQl7CgkJCSRkb3QudW5iaW5kKCcuZG90Jyk7CgkJCXJldHVybiAkZG90OwoJCX07CS8vCS91bmJpbmRfZXZlbnRzCgoJCSRkb3Qud2F0Y2ggPSBmdW5jdGlvbigpCgkJewoJCQkkZG90LnVud2F0Y2goKTsKCQkJaWYgKCBvcHRzLndhdGNoID09ICd3aW5kb3cnICkKCQkJewoJCQkJdmFyICR3aW5kb3cgPSAkKHdpbmRvdyksCgkJCQkJX3dXaWR0aCA9ICR3aW5kb3cud2lkdGgoKSwKCQkJCQlfd0hlaWdodCA9ICR3aW5kb3cuaGVpZ2h0KCk7IAoKCQkJCSR3aW5kb3cuYmluZCgKCQkJCQkncmVzaXplLmRvdCcgKyBjb25mLmRvdElkLAoJCQkJCWZ1bmN0aW9uKCkKCQkJCQl7CgkJCQkJCWlmICggX3dXaWR0aCAhPSAkd2luZG93LndpZHRoKCkgfHwgX3dIZWlnaHQgIT0gJHdpbmRvdy5oZWlnaHQoKSB8fCAhb3B0cy53aW5kb3dSZXNpemVGaXggKQoJCQkJCQl7CgkJCQkJCQlfd1dpZHRoID0gJHdpbmRvdy53aWR0aCgpOwoJCQkJCQkJX3dIZWlnaHQgPSAkd2luZG93LmhlaWdodCgpOwoJCgkJCQkJCQlpZiAoIHdhdGNoSW50ICkKCQkJCQkJCXsKCQkJCQkJCQljbGVhckludGVydmFsKCB3YXRjaEludCApOwoJCQkJCQkJfQoJCQkJCQkJd2F0Y2hJbnQgPSBzZXRUaW1lb3V0KAoJCQkJCQkJCWZ1bmN0aW9uKCkKCQkJCQkJCQl7CgkJCQkJCQkJCSRkb3QudHJpZ2dlciggJ3VwZGF0ZS5kb3QnICk7CgkJCQkJCQkJfSwgMTAKCQkJCQkJCSk7CgkJCQkJCX0KCQkJCQl9CgkJCQkpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJd2F0Y2hPcmcgPSBnZXRTaXplcyggJGRvdCApOwoJCQkJd2F0Y2hJbnQgPSBzZXRJbnRlcnZhbCgKCQkJCQlmdW5jdGlvbigpCgkJCQkJewoJCQkJCQl2YXIgd2F0Y2hOZXcgPSBnZXRTaXplcyggJGRvdCApOwoJCQkJCQlpZiAoIHdhdGNoT3JnLndpZHRoICAhPSB3YXRjaE5ldy53aWR0aCB8fAoJCQkJCQkJIHdhdGNoT3JnLmhlaWdodCAhPSB3YXRjaE5ldy5oZWlnaHQgKQoJCQkJCQl7CgkJCQkJCQkkZG90LnRyaWdnZXIoICd1cGRhdGUuZG90JyApOwoJCQkJCQkJd2F0Y2hPcmcgPSBnZXRTaXplcyggJGRvdCApOwoJCQkJCQl9CgkJCQkJfSwgMTAwCgkJCQkpOwoJCQl9CgkJCXJldHVybiAkZG90OwoJCX07CgkJJGRvdC51bndhdGNoID0gZnVuY3Rpb24oKQoJCXsKCQkJJCh3aW5kb3cpLnVuYmluZCggJ3Jlc2l6ZS5kb3QnICsgY29uZi5kb3RJZCApOwoJCQlpZiAoIHdhdGNoSW50ICkKCQkJewoJCQkJY2xlYXJJbnRlcnZhbCggd2F0Y2hJbnQgKTsKCQkJfQoJCQlyZXR1cm4gJGRvdDsKCQl9OwoKCQl2YXIJb3JnQ29udGVudAk9ICRkb3QuY29udGVudHMoKSwKCQkJb3B0cyAJCT0gJC5leHRlbmQoIHRydWUsIHt9LCAkLmZuLmRvdGRvdGRvdC5kZWZhdWx0cywgbyApLAoJCQljb25mCQk9IHt9LAoJCQl3YXRjaE9yZwk9IHt9LAoJCQl3YXRjaEludAk9IG51bGwsCgkJCSRpbnIJCT0gbnVsbDsKCgkJY29uZi5hZnRlckVsZW1lbnQJPSBnZXRFbGVtZW50KCBvcHRzLmFmdGVyLCAkZG90ICk7CgkJY29uZi5pc1RydW5jYXRlZAk9IGZhbHNlOwoJCWNvbmYuZG90SWQJCQk9IGRvdElkKys7CgoKCQkkZG90LmRhdGEoICdkb3Rkb3Rkb3QnLCB0cnVlICkKCQkJLmJpbmRfZXZlbnRzKCkKCQkJLnRyaWdnZXIoICd1cGRhdGUuZG90JyApOwoKCQlpZiAoIG9wdHMud2F0Y2ggKQoJCXsKCQkJJGRvdC53YXRjaCgpOwoJCX0KCgkJcmV0dXJuICRkb3Q7Cgl9OwoKCgkvLwlwdWJsaWMKCSQuZm4uZG90ZG90ZG90LmRlZmF1bHRzID0gewoJCSdlbGxpcHNpcycJOiAnLi4uICcsCgkJJ3dyYXAnCQk6ICd3b3JkJywKCQknbGFzdENoYXJhY3Rlcic6IHsKCQkJJ3JlbW92ZScJCTogWyAnICcsICcsJywgJzsnLCAnLicsICchJywgJz8nIF0sCgkJCSdub0VsbGlwc2lzJwk6IFtdCgkJfSwKCQkndG9sZXJhbmNlJwk6IDAsCgkJJ2NhbGxiYWNrJwk6IG51bGwsCgkJJ2FmdGVyJwkJOiBudWxsLAoJCSdoZWlnaHQnCTogbnVsbCwKCQknd2F0Y2gnCQk6IGZhbHNlLAoJCSd3aW5kb3dSZXNpemVGaXgnOiB0cnVlLAoJCSdkZWJ1ZycJCTogZmFsc2UKCX07CgkKCgkvLwlwcml2YXRlCgl2YXIgZG90SWQgPSAxOwoKCWZ1bmN0aW9uIGNoaWxkcmVuKCAkZWxlbSwgbywgYWZ0ZXIgKQoJewoJCXZhciAkZWxlbWVudHMgCT0gJGVsZW0uY2hpbGRyZW4oKSwKCQkJaXNUcnVuY2F0ZWQJPSBmYWxzZTsKCgkJJGVsZW0uZW1wdHkoKTsKCgkJZm9yICggdmFyIGEgPSAwLCBsID0gJGVsZW1lbnRzLmxlbmd0aDsgYSA8IGw7IGErKyApCgkJewoJCQl2YXIgJGUgPSAkZWxlbWVudHMuZXEoIGEgKTsKCQkJJGVsZW0uYXBwZW5kKCAkZSApOwoJCQlpZiAoIGFmdGVyICkKCQkJewoJCQkJJGVsZW0uYXBwZW5kKCBhZnRlciApOwoJCQl9CgkJCWlmICggdGVzdCggJGVsZW0sIG8gKSApCgkJCXsKCQkJCSRlLnJlbW92ZSgpOwoJCQkJaXNUcnVuY2F0ZWQgPSB0cnVlOwoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlpZiAoIGFmdGVyICkKCQkJCXsKCQkJCQlhZnRlci5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gaXNUcnVuY2F0ZWQ7Cgl9CglmdW5jdGlvbiBlbGxpcHNpcyggJGVsZW0sICRkLCAkaSwgbywgYWZ0ZXIgKQoJewoJCXZhciAkZWxlbWVudHMgCT0gJGVsZW0uY29udGVudHMoKSwKCQkJaXNUcnVuY2F0ZWQJPSBmYWxzZTsKCgkJJGVsZW0uZW1wdHkoKTsKCgkJdmFyIG5vdHggPSAndGFibGUsIHRoZWFkLCB0Ym9keSwgdGZvb3QsIHRyLCBjb2wsIGNvbGdyb3VwLCBvYmplY3QsIGVtYmVkLCBwYXJhbSwgb2wsIHVsLCBkbCwgc2VsZWN0LCBvcHRncm91cCwgb3B0aW9uLCB0ZXh0YXJlYSwgc2NyaXB0LCBzdHlsZSc7CgkJZm9yICggdmFyIGEgPSAwLCBsID0gJGVsZW1lbnRzLmxlbmd0aDsgYSA8IGw7IGErKyApCgkJewoKCQkJaWYgKCBpc1RydW5jYXRlZCApCgkJCXsKCQkJCWJyZWFrOwoJCQl9CgoJCQl2YXIgZQk9ICRlbGVtZW50c1sgYSBdLAoJCQkJJGUJPSAkKGUpOwoKCQkJaWYgKCB0eXBlb2YgZSA9PSAndW5kZWZpbmVkJyApCgkJCXsKCQkJCWNvbnRpbnVlOwoJCQl9CgoJCQkkZWxlbS5hcHBlbmQoICRlICk7CgkJCWlmICggYWZ0ZXIgKQoJCQl7CgkJCQkkZWxlbVsgKCAkZWxlbS5pcyggbm90eCApICkgPyAnYWZ0ZXInIDogJ2FwcGVuZCcgXSggYWZ0ZXIgKTsKCQkJfQoJCQlpZiAoIGUubm9kZVR5cGUgPT0gMyApCgkJCXsKCQkJCWlmICggdGVzdCggJGksIG8gKSApCgkJCQl7CgkJCQkJaXNUcnVuY2F0ZWQgPSBlbGxpcHNpc0VsZW1lbnQoICRlLCAkZCwgJGksIG8sIGFmdGVyICk7CgkJCQl9CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlpc1RydW5jYXRlZCA9IGVsbGlwc2lzKCAkZSwgJGQsICRpLCBvLCBhZnRlciApOwoJCQl9CgoJCQlpZiAoICFpc1RydW5jYXRlZCApCgkJCXsKCQkJCWlmICggYWZ0ZXIgKQoJCQkJewoJCQkJCWFmdGVyLnJlbW92ZSgpOwoJCQkJfQoJCQl9CgkJfQoJCXJldHVybiBpc1RydW5jYXRlZDsKCX0KCWZ1bmN0aW9uIGVsbGlwc2lzRWxlbWVudCggJGUsICRkLCAkaSwgbywgYWZ0ZXIgKQoJewoJCXZhciBpc1RydW5jYXRlZAk9IGZhbHNlLAoJCQllID0gJGVbIDAgXTsKCgkJaWYgKCB0eXBlb2YgZSA9PSAndW5kZWZpbmVkJyApCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQl2YXIgc2Vwb3JhdG9yCT0gKCBvLndyYXAgPT0gJ2xldHRlcicgKSA/ICcnIDogJyAnLAoJCQl0ZXh0QXJyCQk9IGdldFRleHRDb250ZW50KCBlICkuc3BsaXQoIHNlcG9yYXRvciApLAoJCQlwb3NpdGlvbiAJPSAtMSwKCQkJbWlkUG9zCQk9IC0xLAoJCQlzdGFydFBvcwk9IDAsCgkJCWVuZFBvcwkJPSB0ZXh0QXJyLmxlbmd0aCAtIDE7CgoJCXdoaWxlICggc3RhcnRQb3MgPD0gZW5kUG9zICkKCQl7CgkJCXZhciBtID0gTWF0aC5mbG9vciggKCBzdGFydFBvcyArIGVuZFBvcyApIC8gMiApOwoJCQlpZiAoIG0gPT0gbWlkUG9zICkgCgkJCXsKCQkJCWJyZWFrOwoJCQl9CgkJCW1pZFBvcyA9IG07CgoJCQlzZXRUZXh0Q29udGVudCggZSwgdGV4dEFyci5zbGljZSggMCwgbWlkUG9zICsgMSApLmpvaW4oIHNlcG9yYXRvciApICsgby5lbGxpcHNpcyApOwoKCQkJaWYgKCAhdGVzdCggJGksIG8gKSApCgkJCXsKCQkJCXBvc2l0aW9uID0gbWlkUG9zOwoJCQkJc3RhcnRQb3MgPSBtaWRQb3M7IAoJCQl9CgkJCWVsc2UKCQkJewoJCQkJZW5kUG9zID0gbWlkUG9zOwoJCQl9CQkJCQoJCX0JCgkKCQlpZiAoIHBvc2l0aW9uICE9IC0xICYmICEoIHRleHRBcnIubGVuZ3RoID09IDEgJiYgdGV4dEFyclsgMCBdLmxlbmd0aCA9PSAwICkgKQoJCXsKCQkJdmFyIHR4dCA9IGFkZEVsbGlwc2lzKCB0ZXh0QXJyLnNsaWNlKCAwLCBwb3NpdGlvbiArIDEgKS5qb2luKCBzZXBvcmF0b3IgKSwgbyApOwoJCQlpc1RydW5jYXRlZCA9IHRydWU7CgkJCXNldFRleHRDb250ZW50KCBlLCB0eHQgKTsKCQl9CgkJZWxzZQoJCXsKCQkJdmFyICR3ID0gJGUucGFyZW50KCk7CgkJCSRlLnJlbW92ZSgpOwoKCQkJdmFyIGFmdGVyTGVuZ3RoID0gKCBhZnRlciApID8gYWZ0ZXIubGVuZ3RoIDogMCA7CgoJCQlpZiAoICR3LmNvbnRlbnRzKCkuc2l6ZSgpID4gYWZ0ZXJMZW5ndGggKQoJCQl7CgkJCQl2YXIgJG4gPSAkdy5jb250ZW50cygpLmVxKCAtMSAtIGFmdGVyTGVuZ3RoICk7CgkJCQlpc1RydW5jYXRlZCA9IGVsbGlwc2lzRWxlbWVudCggJG4sICRkLCAkaSwgbywgYWZ0ZXIgKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCXZhciAkcCA9ICR3LnByZXYoKQoJCQkJdmFyIGUgPSAkcC5jb250ZW50cygpLmVxKCAtMSApWyAwIF07CgoJCQkJaWYgKCB0eXBlb2YgZSAhPSAndW5kZWZpbmVkJyApCgkJCQl7CgkJCQkJdmFyIHR4dCA9IGFkZEVsbGlwc2lzKCBnZXRUZXh0Q29udGVudCggZSApLCBvICk7CgkJCQkJc2V0VGV4dENvbnRlbnQoIGUsIHR4dCApOwoJCQkJCWlmICggYWZ0ZXIgKQoJCQkJCXsKCQkJCQkJJHAuYXBwZW5kKCBhZnRlciApOwoJCQkJCX0KCQkJCQkkdy5yZW1vdmUoKTsKCQkJCQlpc1RydW5jYXRlZCA9IHRydWU7CgkJCQl9CgoJCQl9CgkJfQoKCQlyZXR1cm4gaXNUcnVuY2F0ZWQ7Cgl9CglmdW5jdGlvbiB0ZXN0KCAkaSwgbyApCgl7CgkJcmV0dXJuICRpLmlubmVySGVpZ2h0KCkgPiBvLm1heEhlaWdodDsKCX0KCWZ1bmN0aW9uIGFkZEVsbGlwc2lzKCB0eHQsIG8gKQoJewoJCXdoaWxlKCAkLmluQXJyYXkoIHR4dC5zbGljZSggLTEgKSwgby5sYXN0Q2hhcmFjdGVyLnJlbW92ZSApID4gLTEgKQoJCXsKCQkJdHh0ID0gdHh0LnNsaWNlKCAwLCAtMSApOwoJCX0KCQlpZiAoICQuaW5BcnJheSggdHh0LnNsaWNlKCAtMSApLCBvLmxhc3RDaGFyYWN0ZXIubm9FbGxpcHNpcyApIDwgMCApCgkJewoJCQl0eHQgKz0gby5lbGxpcHNpczsKCQl9CgkJcmV0dXJuIHR4dDsKCX0KCWZ1bmN0aW9uIGdldFNpemVzKCAkZCApCgl7CgkJcmV0dXJuIHsKCQkJJ3dpZHRoJwk6ICRkLmlubmVyV2lkdGgoKSwKCQkJJ2hlaWdodCc6ICRkLmlubmVySGVpZ2h0KCkKCQl9OwoJfQoJZnVuY3Rpb24gc2V0VGV4dENvbnRlbnQoIGUsIGNvbnRlbnQgKQoJewoJCWlmICggZS5pbm5lclRleHQgKQoJCXsKCQkJZS5pbm5lclRleHQgPSBjb250ZW50OwoJCX0KCQllbHNlIGlmICggZS5ub2RlVmFsdWUgKQoJCXsKCQkJZS5ub2RlVmFsdWUgPSBjb250ZW50OwoJCX0KCQllbHNlIGlmIChlLnRleHRDb250ZW50KQoJCXsKCQkJZS50ZXh0Q29udGVudCA9IGNvbnRlbnQ7CgkJfQoKCX0KCWZ1bmN0aW9uIGdldFRleHRDb250ZW50KCBlICkKCXsKCQlpZiAoIGUuaW5uZXJUZXh0ICkKCQl7CgkJCXJldHVybiBlLmlubmVyVGV4dDsKCQl9CgkJZWxzZSBpZiAoIGUubm9kZVZhbHVlICkKCQl7CgkJCXJldHVybiBlLm5vZGVWYWx1ZTsKCQl9CgkJZWxzZSBpZiAoIGUudGV4dENvbnRlbnQgKQoJCXsKCQkJcmV0dXJuIGUudGV4dENvbnRlbnQ7CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiAiIjsKCQl9Cgl9CglmdW5jdGlvbiBnZXRFbGVtZW50KCBlLCAkaSApCgl7CgkJaWYgKCB0eXBlb2YgZSA9PSAndW5kZWZpbmVkJyApCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWlmICggIWUgKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlpZiAoIHR5cGVvZiBlID09ICdzdHJpbmcnICkKCQl7CgkJCWUgPSAkKGUsICRpKTsKCQkJcmV0dXJuICggZS5sZW5ndGggKQoJCQkJPyBlIAoJCQkJOiBmYWxzZTsKCQl9CgkJaWYgKCB0eXBlb2YgZSA9PSAnb2JqZWN0JyApCgkJewoJCQlyZXR1cm4gKCB0eXBlb2YgZS5qcXVlcnkgPT0gJ3VuZGVmaW5lZCcgKQoJCQkJPyBmYWxzZQoJCQkJOiBlOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9CglmdW5jdGlvbiBnZXRUcnVlSW5uZXJIZWlnaHQoICRlbCApCgl7CgkJdmFyIGggPSAkZWwuaW5uZXJIZWlnaHQoKSwKCQkJYSA9IFsgJ3BhZGRpbmdUb3AnLCAncGFkZGluZ0JvdHRvbScgXTsKCgkJZm9yICggdmFyIHogPSAwLCBsID0gYS5sZW5ndGg7IHogPCBsOyB6KysgKSB7CgkJCXZhciBtID0gcGFyc2VJbnQoICRlbC5jc3MoIGFbIHogXSApLCAxMCApOwoJCQlpZiAoIGlzTmFOKCBtICkgKQoJCQl7CgkJCQltID0gMDsKCQkJfQoJCQloIC09IG07CgkJfQoJCXJldHVybiBoOwoJfQoJZnVuY3Rpb24gZGVidWcoIGQsIG0gKQoJewoJCWlmICggIWQgKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlpZiAoIHR5cGVvZiBtID09ICdzdHJpbmcnICkKCQl7CgkJCW0gPSAnZG90ZG90ZG90OiAnICsgbTsKCQl9CgkJZWxzZQoJCXsKCQkJbSA9IFsgJ2RvdGRvdGRvdDonLCBtIF07CgkJfQoKCQlpZiAoIHR5cGVvZiB3aW5kb3cuY29uc29sZSAhPSAndW5kZWZpbmVkJyApCgkJewoJCQlpZiAoIHR5cGVvZiB3aW5kb3cuY29uc29sZS5sb2cgIT0gJ3VuZGVmaW5lZCcgKQoJCQl7CgkJCQl3aW5kb3cuY29uc29sZS5sb2coIG0gKTsKCQkJfQoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9CgkKCgkvLwlvdmVycmlkZSBqUXVlcnkuaHRtbAoJdmFyIF9vcmdIdG1sID0gJC5mbi5odG1sOwogICAgJC5mbi5odG1sID0gZnVuY3Rpb24oIHN0ciApIHsKCQlpZiAoIHR5cGVvZiBzdHIgIT0gJ3VuZGVmaW5lZCcgKQoJCXsKCQkJaWYgKCB0aGlzLmRhdGEoICdkb3Rkb3Rkb3QnICkgKQoJCQl7CgkJCQlpZiAoIHR5cGVvZiBzdHIgIT0gJ2Z1bmN0aW9uJyApCgkJCQl7CgkJCQkJcmV0dXJuIHRoaXMudHJpZ2dlciggJ3VwZGF0ZScsIFsgc3RyIF0gKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gX29yZ0h0bWwuY2FsbCggdGhpcywgc3RyICk7CgkJfQoJCXJldHVybiBfb3JnSHRtbC5jYWxsKCB0aGlzICk7CiAgICB9OwoKCgkvLwlvdmVycmlkZSBqUXVlcnkudGV4dAoJdmFyIF9vcmdUZXh0ID0gJC5mbi50ZXh0OwogICAgJC5mbi50ZXh0ID0gZnVuY3Rpb24oIHN0ciApIHsKCQlpZiAoIHR5cGVvZiBzdHIgIT0gJ3VuZGVmaW5lZCcgKQoJCXsKCQkJaWYgKCB0aGlzLmRhdGEoICdkb3Rkb3Rkb3QnICkgKQoJCQl7CgkJCQl2YXIgdGVtcCA9ICQoICc8ZGl2IC8+JyApOwoJCQkJdGVtcC50ZXh0KCBzdHIgKTsKCQkJCXN0ciA9IHRlbXAuaHRtbCgpOwoJCQkJdGVtcC5yZW1vdmUoKTsKCQkJCXJldHVybiB0aGlzLnRyaWdnZXIoICd1cGRhdGUnLCBbIHN0ciBdICk7CgkJCX0KCQkJcmV0dXJuIF9vcmdUZXh0LmNhbGwoIHRoaXMsIHN0ciApOwoJCX0KICAgICAgICByZXR1cm4gX29yZ1RleHQuY2FsbCggdGhpcyApOwogICAgfTsKCgp9KSggalF1ZXJ5ICk7Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/js/jquery.dotdotdot-1.5.9.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoJCiAqCWpRdWVyeSBkb3Rkb3Rkb3QgMS41LjkKICoJCiAqCUNvcHlyaWdodCAoYykgMjAxMyBGcmVkIEhldXNzY2hlbgogKgl3d3cuZnJlYnNpdGUubmwKICoKICoJUGx1Z2luIHdlYnNpdGU6CiAqCWRvdGRvdGRvdC5mcmVic2l0ZS5ubAogKgogKglEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgYW5kIEdQTCBsaWNlbnNlcy4KICoJaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZQogKglodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0dOVV9HZW5lcmFsX1B1YmxpY19MaWNlbnNlCiAqLwoKKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGMoYSxiLGMpe3ZhciBkPWEuY2hpbGRyZW4oKSxlPSExO2EuZW1wdHkoKTtmb3IodmFyIGc9MCxoPWQubGVuZ3RoO2g+ZztnKyspe3ZhciBpPWQuZXEoZyk7aWYoYS5hcHBlbmQoaSksYyYmYS5hcHBlbmQoYyksZihhLGIpKXtpLnJlbW92ZSgpLGU9ITA7YnJlYWt9YyYmYy5yZW1vdmUoKX1yZXR1cm4gZX1mdW5jdGlvbiBkKGIsYyxnLGgsaSl7dmFyIGo9Yi5jb250ZW50cygpLGs9ITE7Yi5lbXB0eSgpO2Zvcih2YXIgbD0idGFibGUsIHRoZWFkLCB0Ym9keSwgdGZvb3QsIHRyLCBjb2wsIGNvbGdyb3VwLCBvYmplY3QsIGVtYmVkLCBwYXJhbSwgb2wsIHVsLCBkbCwgc2VsZWN0LCBvcHRncm91cCwgb3B0aW9uLCB0ZXh0YXJlYSwgc2NyaXB0LCBzdHlsZSIsbT0wLG49ai5sZW5ndGg7bj5tJiYhazttKyspe3ZhciBvPWpbbV0scD1hKG8pO3ZvaWQgMCE9PW8mJihiLmFwcGVuZChwKSxpJiZiW2IuaXMobCk/ImFmdGVyIjoiYXBwZW5kIl0oaSksMz09by5ub2RlVHlwZT9mKGcsaCkmJihrPWUocCxjLGcsaCxpKSk6az1kKHAsYyxnLGgsaSksa3x8aSYmaS5yZW1vdmUoKSl9cmV0dXJuIGt9ZnVuY3Rpb24gZShhLGIsYyxkLGgpe3ZhciBrPSExLGw9YVswXTtpZihsPT09dm9pZCAwKXJldHVybiExO2Zvcih2YXIgbT0ibGV0dGVyIj09ZC53cmFwPyIiOiIgIixuPWoobCkuc3BsaXQobSksbz0tMSxwPS0xLHE9MCxyPW4ubGVuZ3RoLTE7cj49cTspe3ZhciBzPU1hdGguZmxvb3IoKHErcikvMik7aWYocz09cClicmVhaztwPXMsaShsLG4uc2xpY2UoMCxwKzEpLmpvaW4obSkrZC5lbGxpcHNpcyksZihjLGQpP3I9cDoobz1wLHE9cCl9aWYoLTE9PW98fDE9PW4ubGVuZ3RoJiYwPT1uWzBdLmxlbmd0aCl7dmFyIHU9YS5wYXJlbnQoKTthLnJlbW92ZSgpO3ZhciB2PWg/aC5sZW5ndGg6MDtpZih1LmNvbnRlbnRzKCkuc2l6ZSgpPnYpe3ZhciB3PXUuY29udGVudHMoKS5lcSgtMS12KTtrPWUodyxiLGMsZCxoKX1lbHNle3ZhciB4PXUucHJldigpLGw9eC5jb250ZW50cygpLmVxKC0xKVswXTtpZihsIT09dm9pZCAwKXt2YXIgdD1nKGoobCksZCk7aShsLHQpLGgmJnguYXBwZW5kKGgpLHUucmVtb3ZlKCksaz0hMH19fWVsc2V7dmFyIHQ9ZyhuLnNsaWNlKDAsbysxKS5qb2luKG0pLGQpO2s9ITAsaShsLHQpfXJldHVybiBrfWZ1bmN0aW9uIGYoYSxiKXtyZXR1cm4gYS5pbm5lckhlaWdodCgpPmIubWF4SGVpZ2h0fWZ1bmN0aW9uIGcoYixjKXtmb3IoO2EuaW5BcnJheShiLnNsaWNlKC0xKSxjLmxhc3RDaGFyYWN0ZXIucmVtb3ZlKT4tMTspYj1iLnNsaWNlKDAsLTEpO3JldHVybiAwPmEuaW5BcnJheShiLnNsaWNlKC0xKSxjLmxhc3RDaGFyYWN0ZXIubm9FbGxpcHNpcykmJihiKz1jLmVsbGlwc2lzKSxifWZ1bmN0aW9uIGgoYSl7cmV0dXJue3dpZHRoOmEuaW5uZXJXaWR0aCgpLGhlaWdodDphLmlubmVySGVpZ2h0KCl9fWZ1bmN0aW9uIGkoYSxiKXthLmlubmVyVGV4dD9hLmlubmVyVGV4dD1iOmEubm9kZVZhbHVlP2Eubm9kZVZhbHVlPWI6YS50ZXh0Q29udGVudCYmKGEudGV4dENvbnRlbnQ9Yil9ZnVuY3Rpb24gaihhKXtyZXR1cm4gYS5pbm5lclRleHQ/YS5pbm5lclRleHQ6YS5ub2RlVmFsdWU/YS5ub2RlVmFsdWU6YS50ZXh0Q29udGVudD9hLnRleHRDb250ZW50OiIifWZ1bmN0aW9uIGsoYixjKXtyZXR1cm4gYj09PXZvaWQgMD8hMTpiPyJzdHJpbmciPT10eXBlb2YgYj8oYj1hKGIsYyksYi5sZW5ndGg/YjohMSk6Im9iamVjdCI9PXR5cGVvZiBiP2IuanF1ZXJ5PT09dm9pZCAwPyExOmI6ITE6ITF9ZnVuY3Rpb24gbChhKXtmb3IodmFyIGI9YS5pbm5lckhlaWdodCgpLGM9WyJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLGQ9MCxlPWMubGVuZ3RoO2U+ZDtkKyspe3ZhciBmPXBhcnNlSW50KGEuY3NzKGNbZF0pLDEwKTtpc05hTihmKSYmKGY9MCksYi09Zn1yZXR1cm4gYn1mdW5jdGlvbiBtKGEsYil7cmV0dXJuIGE/KGI9InN0cmluZyI9PXR5cGVvZiBiPyJkb3Rkb3Rkb3Q6ICIrYjpbImRvdGRvdGRvdDoiLGJdLHdpbmRvdy5jb25zb2xlIT09dm9pZCAwJiZ3aW5kb3cuY29uc29sZS5sb2chPT12b2lkIDAmJndpbmRvdy5jb25zb2xlLmxvZyhiKSwhMSk6ITF9aWYoIWEuZm4uZG90ZG90ZG90KXthLmZuLmRvdGRvdGRvdD1mdW5jdGlvbihlKXtpZigwPT10aGlzLmxlbmd0aClyZXR1cm4gZSYmZS5kZWJ1Zz09PSExfHxtKCEwLCdObyBlbGVtZW50IGZvdW5kIGZvciAiJyt0aGlzLnNlbGVjdG9yKyciLicpLHRoaXM7aWYodGhpcy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5kb3Rkb3Rkb3QoZSl9KTt2YXIgZz10aGlzO2cuZGF0YSgiZG90ZG90ZG90IikmJmcudHJpZ2dlcigiZGVzdHJveS5kb3QiKSxnLmRhdGEoImRvdGRvdGRvdC1zdHlsZSIsZy5hdHRyKCJzdHlsZSIpKSxnLmNzcygid29yZC13cmFwIiwiYnJlYWstd29yZCIpLGcuYmluZF9ldmVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gZy5iaW5kKCJ1cGRhdGUuZG90IixmdW5jdGlvbihiLGUpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLGoubWF4SGVpZ2h0PSJudW1iZXIiPT10eXBlb2Ygai5oZWlnaHQ/ai5oZWlnaHQ6bChnKSxqLm1heEhlaWdodCs9ai50b2xlcmFuY2UsZSE9PXZvaWQgMCYmKCgic3RyaW5nIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkmJihlPWEoIjxkaXYgLz4iKS5hcHBlbmQoZSkuY29udGVudHMoKSksZSBpbnN0YW5jZW9mIGEmJihpPWUpKSxxPWcud3JhcElubmVyKCc8ZGl2IGNsYXNzPSJkb3Rkb3Rkb3QiIC8+JykuY2hpbGRyZW4oKSxxLmVtcHR5KCkuYXBwZW5kKGkuY2xvbmUoITApKS5jc3Moe2hlaWdodDoiYXV0byIsd2lkdGg6ImF1dG8iLGJvcmRlcjoibm9uZSIscGFkZGluZzowLG1hcmdpbjowfSk7dmFyIGg9ITEsaz0hMTtyZXR1cm4gbi5hZnRlckVsZW1lbnQmJihoPW4uYWZ0ZXJFbGVtZW50LmNsb25lKCEwKSxuLmFmdGVyRWxlbWVudC5yZW1vdmUoKSksZihxLGopJiYoaz0iY2hpbGRyZW4iPT1qLndyYXA/YyhxLGosaCk6ZChxLGcscSxqLGgpKSxxLnJlcGxhY2VXaXRoKHEuY29udGVudHMoKSkscT1udWxsLGEuaXNGdW5jdGlvbihqLmNhbGxiYWNrKSYmai5jYWxsYmFjay5jYWxsKGdbMF0sayxpKSxuLmlzVHJ1bmNhdGVkPWssa30pLmJpbmQoImlzVHJ1bmNhdGVkLmRvdCIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCksImZ1bmN0aW9uIj09dHlwZW9mIGImJmIuY2FsbChnWzBdLG4uaXNUcnVuY2F0ZWQpLG4uaXNUcnVuY2F0ZWR9KS5iaW5kKCJvcmlnaW5hbENvbnRlbnQuZG90IixmdW5jdGlvbihhLGIpe3JldHVybiBhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKSwiZnVuY3Rpb24iPT10eXBlb2YgYiYmYi5jYWxsKGdbMF0saSksaX0pLmJpbmQoImRlc3Ryb3kuZG90IixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKSxnLnVud2F0Y2goKS51bmJpbmRfZXZlbnRzKCkuZW1wdHkoKS5hcHBlbmQoaSkuYXR0cigic3R5bGUiLGcuZGF0YSgiZG90ZG90ZG90LXN0eWxlIikpLmRhdGEoImRvdGRvdGRvdCIsITEpfSksZ30sZy51bmJpbmRfZXZlbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGcudW5iaW5kKCIuZG90IiksZ30sZy53YXRjaD1mdW5jdGlvbigpe2lmKGcudW53YXRjaCgpLCJ3aW5kb3ciPT1qLndhdGNoKXt2YXIgYj1hKHdpbmRvdyksYz1iLndpZHRoKCksZD1iLmhlaWdodCgpO2IuYmluZCgicmVzaXplLmRvdCIrbi5kb3RJZCxmdW5jdGlvbigpe2M9PWIud2lkdGgoKSYmZD09Yi5oZWlnaHQoKSYmai53aW5kb3dSZXNpemVGaXh8fChjPWIud2lkdGgoKSxkPWIuaGVpZ2h0KCkscCYmY2xlYXJJbnRlcnZhbChwKSxwPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnRyaWdnZXIoInVwZGF0ZS5kb3QiKX0sMTApKX0pfWVsc2Ugbz1oKGcpLHA9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgYT1oKGcpOyhvLndpZHRoIT1hLndpZHRofHxvLmhlaWdodCE9YS5oZWlnaHQpJiYoZy50cmlnZ2VyKCJ1cGRhdGUuZG90Iiksbz1oKGcpKX0sMTAwKTtyZXR1cm4gZ30sZy51bndhdGNoPWZ1bmN0aW9uKCl7cmV0dXJuIGEod2luZG93KS51bmJpbmQoInJlc2l6ZS5kb3QiK24uZG90SWQpLHAmJmNsZWFySW50ZXJ2YWwocCksZ307dmFyIGk9Zy5jb250ZW50cygpLGo9YS5leHRlbmQoITAse30sYS5mbi5kb3Rkb3Rkb3QuZGVmYXVsdHMsZSksbj17fSxvPXt9LHA9bnVsbCxxPW51bGw7cmV0dXJuIG4uYWZ0ZXJFbGVtZW50PWsoai5hZnRlcixnKSxuLmlzVHJ1bmNhdGVkPSExLG4uZG90SWQ9YisrLGcuZGF0YSgiZG90ZG90ZG90IiwhMCkuYmluZF9ldmVudHMoKS50cmlnZ2VyKCJ1cGRhdGUuZG90Iiksai53YXRjaCYmZy53YXRjaCgpLGd9LGEuZm4uZG90ZG90ZG90LmRlZmF1bHRzPXtlbGxpcHNpczoiLi4uICIsd3JhcDoid29yZCIsbGFzdENoYXJhY3Rlcjp7cmVtb3ZlOlsiICIsIiwiLCI7IiwiLiIsIiEiLCI/Il0sbm9FbGxpcHNpczpbXX0sdG9sZXJhbmNlOjAsY2FsbGJhY2s6bnVsbCxhZnRlcjpudWxsLGhlaWdodDpudWxsLHdhdGNoOiExLHdpbmRvd1Jlc2l6ZUZpeDohMCxkZWJ1ZzohMX07dmFyIGI9MSxuPWEuZm4uaHRtbDthLmZuLmh0bWw9ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT12b2lkIDA/dGhpcy5kYXRhKCJkb3Rkb3Rkb3QiKSYmImZ1bmN0aW9uIiE9dHlwZW9mIGE/dGhpcy50cmlnZ2VyKCJ1cGRhdGUiLFthXSk6bi5jYWxsKHRoaXMsYSk6bi5jYWxsKHRoaXMpfTt2YXIgbz1hLmZuLnRleHQ7YS5mbi50ZXh0PWZ1bmN0aW9uKGIpe2lmKGIhPT12b2lkIDApe2lmKHRoaXMuZGF0YSgiZG90ZG90ZG90Iikpe3ZhciBjPWEoIjxkaXYgLz4iKTtyZXR1cm4gYy50ZXh0KGIpLGI9Yy5odG1sKCksYy5yZW1vdmUoKSx0aGlzLnRyaWdnZXIoInVwZGF0ZSIsW2JdKX1yZXR1cm4gby5jYWxsKHRoaXMsYil9cmV0dXJuIG8uY2FsbCh0aGlzKX19fSkoalF1ZXJ5KTs=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/js/jquery.iviewer.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogaXZpZXdlciBXaWRnZXQgZm9yIGpRdWVyeSBVSQogKiBodHRwczovL2dpdGh1Yi5jb20vY2FuM3AvaXZpZXdlcgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDEyIERtaXRyeSBQZXRyb3YKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMuCiAqICAtIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCiAqICAtIGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbAogKgogKiBBdXRob3I6IERtaXRyeSBQZXRyb3YKICogVmVyc2lvbjogMC43LjcKICovCgooIGZ1bmN0aW9uKCAkLCB1bmRlZmluZWQgKSB7CgovL3RoaXMgY29kZSB3YXMgdGFrZW4gZnJvbSB0aGUgaHR0cHM6Ly9naXRodWIuY29tL2Z1cmYvanF1ZXJ5LXVpLXRvdWNoLXB1bmNoCnZhciBtb3VzZUV2ZW50cyA9IHsKICAgICAgICB0b3VjaHN0YXJ0OiAnbW91c2Vkb3duJywKICAgICAgICB0b3VjaG1vdmU6ICdtb3VzZW1vdmUnLAogICAgICAgIHRvdWNoZW5kOiAnbW91c2V1cCcKICAgIH0sCiAgICBnZXN0dXJlc1N1cHBvcnQgPSAnb25nZXN0dXJlc3RhcnQnIGluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoKCi8qKgogKiBDb252ZXJ0IGEgdG91Y2ggZXZlbnQgdG8gYSBtb3VzZS1saWtlCiAqLwpmdW5jdGlvbiBtYWtlTW91c2VFdmVudCAoZXZlbnQpIHsKICAgIHZhciB0b3VjaCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF07CgogICAgcmV0dXJuICQuZXh0ZW5kKGV2ZW50LCB7CiAgICAgICAgdHlwZTogICAgbW91c2VFdmVudHNbZXZlbnQudHlwZV0sCiAgICAgICAgd2hpY2g6ICAgMSwKICAgICAgICBwYWdlWDogICB0b3VjaC5wYWdlWCwKICAgICAgICBwYWdlWTogICB0b3VjaC5wYWdlWSwKICAgICAgICBzY3JlZW5YOiB0b3VjaC5zY3JlZW5YLAogICAgICAgIHNjcmVlblk6IHRvdWNoLnNjcmVlblksCiAgICAgICAgY2xpZW50WDogdG91Y2guY2xpZW50WCwKICAgICAgICBjbGllbnRZOiB0b3VjaC5jbGllbnRZLAogICAgICAgIGlzVG91Y2hFdmVudDogdHJ1ZQogICAgfSk7Cn0KCnZhciBtb3VzZVByb3RvID0gJC51aS5tb3VzZS5wcm90b3R5cGUsCiAgICBfbW91c2VJbml0ID0gJC51aS5tb3VzZS5wcm90b3R5cGUuX21vdXNlSW5pdDsKCm1vdXNlUHJvdG8uX21vdXNlSW5pdCA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHNlbGYgPSB0aGlzOwogICAgc2VsZi5fdG91Y2hBY3RpdmUgPSBmYWxzZTsKCiAgICB0aGlzLmVsZW1lbnQuYmluZCggJ3RvdWNoc3RhcnQuJyArIHRoaXMud2lkZ2V0TmFtZSwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICBpZiAoZ2VzdHVyZXNTdXBwb3J0ICYmIGV2ZW50Lm9yaWdpbmFsRXZlbnQudG91Y2hlcy5sZW5ndGggPiAxKSB7IHJldHVybjsgfQogICAgICAgIHNlbGYuX3RvdWNoQWN0aXZlID0gdHJ1ZTsKICAgICAgICByZXR1cm4gc2VsZi5fbW91c2VEb3duKG1ha2VNb3VzZUV2ZW50KGV2ZW50KSk7CiAgICB9KQoKICAgIHZhciBzZWxmID0gdGhpczsKICAgIC8vIHRoZXNlIGRlbGVnYXRlcyBhcmUgcmVxdWlyZWQgdG8ga2VlcCBjb250ZXh0CiAgICB0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgaWYgKGdlc3R1cmVzU3VwcG9ydCAmJiBldmVudC5vcmlnaW5hbEV2ZW50LnRvdWNoZXMgJiYgZXZlbnQub3JpZ2luYWxFdmVudC50b3VjaGVzLmxlbmd0aCA+IDEpIHsgcmV0dXJuOyB9CiAgICAgICAgaWYgKHNlbGYuX3RvdWNoQWN0aXZlKSB7CiAgICAgICAgICAgIHJldHVybiBzZWxmLl9tb3VzZU1vdmUobWFrZU1vdXNlRXZlbnQoZXZlbnQpKTsKICAgICAgICB9CiAgICB9OwogICAgdGhpcy5fbW91c2VVcERlbGVnYXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICBpZiAoc2VsZi5fdG91Y2hBY3RpdmUpIHsKICAgICAgICAgICAgc2VsZi5fdG91Y2hBY3RpdmUgPSBmYWxzZTsKICAgICAgICAgICAgcmV0dXJuIHNlbGYuX21vdXNlVXAobWFrZU1vdXNlRXZlbnQoZXZlbnQpKTsKICAgICAgICB9CiAgICB9OwoKICAgICQoZG9jdW1lbnQpCiAgICAgICAgLmJpbmQoJ3RvdWNobW92ZS4nKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKQogICAgICAgIC5iaW5kKCd0b3VjaGVuZC4nICsgdGhpcy53aWRnZXROYW1lLCB0aGlzLl9tb3VzZVVwRGVsZWdhdGUpOwoKICAgIF9tb3VzZUluaXQuYXBwbHkodGhpcyk7Cn0KCi8qKgogKiBTaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgalF1ZXJ5IGxpa2UgZ2V0dGVycy9zZXR0ZXJzCiAqIHZhciB2YWwgPSBzb21ldGhpbmcoKTsKICogc29tZXRoaW5nKHZhbCk7CiAqLwp2YXIgc2V0dGVyID0gZnVuY3Rpb24oc2V0dGVyLCBnZXR0ZXIpIHsKICAgIHJldHVybiBmdW5jdGlvbih2YWwpIHsKICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICByZXR1cm4gZ2V0dGVyLmFwcGx5KHRoaXMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNldHRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH0KICAgIH0KfTsKCi8qKgogKiBJbnRlcm5ldCBleHBsb3JlciByb3RhdGVzIGltYWdlIHJlbGF0aXZlIGxlZnQgdG9wIGNvcm5lciwgc28gd2Ugc2hvdWxkCiAqIHNoaWZ0IGltYWdlIHdoZW4gaXQncyByb3RhdGVkLgogKi8KdmFyIGllVHJhbnNmb3JtcyA9IHsKICAgICAgICAnMCc6IHsKICAgICAgICAgICAgbWFyZ2luTGVmdDogMCwKICAgICAgICAgICAgbWFyZ2luVG9wOiAwLAogICAgICAgICAgICBmaWx0ZXI6ICdwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuTWF0cml4KE0xMT0xLCBNMTI9MCwgTTIxPTAsIE0yMj0xLCBTaXppbmdNZXRob2Q9ImF1dG8gZXhwYW5kIiknCiAgICAgICAgfSwKCiAgICAgICAgJzkwJzogewogICAgICAgICAgICBtYXJnaW5MZWZ0OiAtMSwKICAgICAgICAgICAgbWFyZ2luVG9wOiAxLAogICAgICAgICAgICBmaWx0ZXI6ICdwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuTWF0cml4KE0xMT0wLCBNMTI9LTEsIE0yMT0xLCBNMjI9MCwgU2l6aW5nTWV0aG9kPSJhdXRvIGV4cGFuZCIpJwogICAgICAgIH0sCgogICAgICAgICcxODAnOiB7CiAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDAsCiAgICAgICAgICAgIG1hcmdpblRvcDogMCwKICAgICAgICAgICAgZmlsdGVyOiAncHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lk1hdHJpeChNMTE9LTEsIE0xMj0wLCBNMjE9MCwgTTIyPS0xLCBTaXppbmdNZXRob2Q9ImF1dG8gZXhwYW5kIiknCiAgICAgICAgfSwKCiAgICAgICAgJzI3MCc6IHsKICAgICAgICAgICAgbWFyZ2luTGVmdDogLTEsCiAgICAgICAgICAgIG1hcmdpblRvcDogMSwKICAgICAgICAgICAgZmlsdGVyOiAncHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lk1hdHJpeChNMTE9MCwgTTEyPTEsIE0yMT0tMSwgTTIyPTAsIFNpemluZ01ldGhvZD0iYXV0byBleHBhbmQiKScKICAgICAgICB9CiAgICB9LAogICAgLy8gdGhpcyB0ZXN0IGlzIHRoZSBpbnZlcnNpb24gb2YgdGhlIGNzcyBmaWx0ZXJzIHRlc3QgZnJvbSB0aGUgbW9kZXJuaXpyIHByb2plY3QKICAgIHVzZUllVHJhbnNmb3JtcyA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBtb2RFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbW9kZXJuaXpyJyksCgkJbVN0eWxlID0gbW9kRWxlbS5zdHlsZSwKCQlvbVByZWZpeGVzID0gJ1dlYmtpdCBNb3ogTyBtcycsCgkJZG9tUHJlZml4ZXMgPSBvbVByZWZpeGVzLnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKSwKICAgICAgICAJcHJvcHMgPSAoInRyYW5zZm9ybSIgKyAnICcgKyBkb21QcmVmaXhlcy5qb2luKCJUcmFuc2Zvcm0gIikgKyAiVHJhbnNmb3JtIikuc3BsaXQoJyAnKTsKICAgICAgICBmb3IgKCB2YXIgaSBpbiBwcm9wcyApIHsKICAgICAgICAgICAgdmFyIHByb3AgPSBwcm9wc1tpXTsKICAgICAgICAgICAgaWYgKCAhJC5jb250YWlucyhwcm9wLCAiLSIpICYmIG1TdHlsZVtwcm9wXSAhPT0gdW5kZWZpbmVkICkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cnVlOwogICAgfSgpOwoKJC53aWRnZXQoICJ1aS5pdmlld2VyIiwgJC51aS5tb3VzZSwgewogICAgd2lkZ2V0RXZlbnRQcmVmaXg6ICJpdmlld2VyIiwKICAgIG9wdGlvbnMgOiB7CiAgICAgICAgLyoqCiAgICAgICAgKiBzdGFydCB6b29tIHZhbHVlIGZvciBpbWFnZSwgbm90IHVzZWQgbm93CiAgICAgICAgKiBtYXkgYmUgZXF1YWwgdG8gImZpdCIgdG8gZml0IGltYWdlIGludG8gY29udGFpbmVyIG9yIHNjYWxlIGluICUKICAgICAgICAqKi8KICAgICAgICB6b29tOiAiZml0IiwKICAgICAgICAvKioKICAgICAgICAqIGJhc2UgdmFsdWUgdG8gc2NhbGUgaW1hZ2UKICAgICAgICAqKi8KICAgICAgICB6b29tX2Jhc2U6IDEwMCwKICAgICAgICAvKioKICAgICAgICAqIG1heGltdW0gem9vbQogICAgICAgICoqLwogICAgICAgIHpvb21fbWF4OiA4MDAsCiAgICAgICAgLyoqCiAgICAgICAgKiBtaW5pbXVtIHpvb20KICAgICAgICAqKi8KICAgICAgICB6b29tX21pbjogMjUsCiAgICAgICAgLyoqCiAgICAgICAgKiBiYXNlIG9mIHJhdGUgbXVsdGlwbGllci4KICAgICAgICAqIHpvb20gaXMgY2FsY3VsYXRlZCBieSBmb3JtdWxhOiB6b29tX2Jhc2UgKiB6b29tX2RlbHRhXnJhdGUKICAgICAgICAqKi8KICAgICAgICB6b29tX2RlbHRhOiAxLjQsCiAgICAgICAgLyoqCiAgICAgICAgKiB3aGV0aGVyIHRoZSB6b29tIHNob3VsZCBiZSBhbmltYXRlZC4KICAgICAgICAqLwogICAgICAgIHpvb21fYW5pbWF0aW9uOiB0cnVlLAogICAgICAgIC8qKgogICAgICAgICogaWYgdHJ1ZSBwbHVnaW4gZG9lc24ndCBhZGQgaXRzIG93biBjb250cm9scwogICAgICAgICoqLwogICAgICAgIHVpX2Rpc2FibGVkOiBmYWxzZSwKICAgICAgICAvKioKICAgICAgICAgKiBJZiBmYWxzZSBtb3VzZXdoZWVsIHdpbGwgYmUgZGlzYWJsZWQKICAgICAgICAgKi8KICAgICAgICBtb3VzZXdoZWVsOiB0cnVlLAogICAgICAgIC8qKgogICAgICAgICogaWYgZmFsc2UsIHBsdWdpbiBkb2Vzbid0IGJpbmQgcmVzaXplIGV2ZW50IG9uIHdpbmRvdyBhbmQgdGhpcyBtdXN0CiAgICAgICAgKiBiZSBoYW5kbGVkIG1hbnVhbGx5CiAgICAgICAgKiovCiAgICAgICAgdXBkYXRlX29uX3Jlc2l6ZTogdHJ1ZSwKICAgICAgICAvKioKICAgICAgICAqIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHpvb20gdmFsdWUgaXMgY2hhbmdlZAogICAgICAgICogQHBhcmFtIGludCBuZXcgem9vbSB2YWx1ZQogICAgICAgICogQHJldHVybiBib29sZWFuIGlmIGZhbHNlIHpvb20gYWN0aW9uIGlzIGFib3J0ZWQKICAgICAgICAqKi8KICAgICAgICBvblpvb206IGpRdWVyeS5ub29wLAogICAgICAgIC8qKgogICAgICAgICogZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gem9vbSB2YWx1ZSBpcyBjaGFuZ2VkIGFmdGVyIGltYWdlIGlzIHNldCB0byB0aGUgbmV3IGRpbWVuc2lvbnMKICAgICAgICAqIEBwYXJhbSBpbnQgbmV3IHpvb20gdmFsdWUKICAgICAgICAqIEByZXR1cm4gYm9vbGVhbiBpZiBmYWxzZSB6b29tIGFjdGlvbiBpcyBhYm9ydGVkCiAgICAgICAgKiovCiAgICAgICAgb25BZnRlclpvb206IGpRdWVyeS5ub29wLAogICAgICAgIC8qKgogICAgICAgICogZXZlbnQgaXMgZmlyZWQgb24gZHJhZyBiZWdpbgogICAgICAgICogQHBhcmFtIG9iamVjdCBjb29yZHMgbW91c2UgY29vcmRpbmF0ZXMgb24gdGhlIGltYWdlCiAgICAgICAgKiBAcmV0dXJuIGJvb2xlYW4gaWYgZmFsc2UgaXMgcmV0dXJuZWQsIGRyYWcgYWN0aW9uIGlzIGFib3J0ZWQKICAgICAgICAqKi8KICAgICAgICBvblN0YXJ0RHJhZzogalF1ZXJ5Lm5vb3AsCiAgICAgICAgLyoqCiAgICAgICAgKiBldmVudCBpcyBmaXJlZCBvbiBkcmFnIGFjdGlvbgogICAgICAgICogQHBhcmFtIG9iamVjdCBjb29yZHMgbW91c2UgY29vcmRpbmF0ZXMgb24gdGhlIGltYWdlCiAgICAgICAgKiovCiAgICAgICAgb25EcmFnOiBqUXVlcnkubm9vcCwKICAgICAgICAvKioKICAgICAgICAqIGV2ZW50IGlzIGZpcmVkIG9uIGRyYWcgc3RvcAogICAgICAgICogQHBhcmFtIG9iamVjdCBjb29yZHMgbW91c2UgY29vcmRpbmF0ZXMgb24gdGhlIGltYWdlCiAgICAgICAgKiovCiAgICAgICAgb25TdG9wRHJhZzogalF1ZXJ5Lm5vb3AsCiAgICAgICAgLyoqCiAgICAgICAgKiBldmVudCBpcyBmaXJlZCB3aGVuIG1vdXNlIG1vdmVzIG92ZXIgaW1hZ2UKICAgICAgICAqIEBwYXJhbSBvYmplY3QgY29vcmRzIG1vdXNlIGNvb3JkaW5hdGVzIG9uIHRoZSBpbWFnZQogICAgICAgICoqLwogICAgICAgIG9uTW91c2VNb3ZlOiBqUXVlcnkubm9vcCwKICAgICAgICAvKioKICAgICAgICAqIG1vdXNlIGNsaWNrIGV2ZW50CiAgICAgICAgKiBAcGFyYW0gb2JqZWN0IGNvb3JkcyBtb3VzZSBjb29yZGluYXRlcyBvbiB0aGUgaW1hZ2UKICAgICAgICAqKi8KICAgICAgICBvbkNsaWNrOiBqUXVlcnkubm9vcCwKICAgICAgICAvKioKICAgICAgICAqIGV2ZW50IGlzIGZpcmVkIHdoZW4gaW1hZ2Ugc3RhcnRzIHRvIGxvYWQKICAgICAgICAqLwogICAgICAgIG9uU3RhcnRMb2FkOiBudWxsLAogICAgICAgIC8qKgogICAgICAgICogZXZlbnQgaXMgZmlyZWQsIHdoZW4gaW1hZ2UgaXMgbG9hZGVkIGFuZCBpbml0aWFsbHkgcG9zaXRpb25lZAogICAgICAgICovCiAgICAgICAgb25GaW5pc2hMb2FkOiBudWxsLAogICAgICAgIC8qKgogICAgICAgICogZXZlbnQgaXMgZmlyZWQgd2hlbiBpbWFnZSBsb2FkIGVycm9yIG9jY3VycwogICAgICAgICovCiAgICAgICAgb25FcnJvckxvYWQ6IG51bGwKICAgIH0sCgogICAgX2NyZWF0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG1lID0gdGhpczsKCiAgICAgICAgLy9kcmFnIHZhcmlhYmxlcwogICAgICAgIHRoaXMuZHggPSAwOwogICAgICAgIHRoaXMuZHkgPSAwOwoKICAgICAgICAvKiBvYmplY3QgY29udGFpbmluZyBhY3R1YWwgaW5mb3JtYXRpb24gYWJvdXQgaW1hZ2UKICAgICAgICAqICAgQGltZ19vYmplY3Qub2JqZWN0IC0ganF1ZXJ5IGltZyBvYmplY3QKICAgICAgICAqICAgQGltZ19vYmplY3Qub3JpZ197d2lkdGh8aGVpZ2h0fSAtIG9yaWdpbmFsIGRpbWVuc2lvbnMKICAgICAgICAqICAgQGltZ19vYmplY3QuZGlzcGxheV97d2lkdGh8aGVpZ2h0fSAtIGFjdHVhbCBkaW1lbnNpb25zCiAgICAgICAgKi8KICAgICAgICB0aGlzLmltZ19vYmplY3QgPSB7fTsKCiAgICAgICAgdGhpcy56b29tX29iamVjdCA9IHt9OyAvL29iamVjdCB0byBzaG93IHpvb20gc3RhdHVzCgogICAgICAgIHRoaXMuX2FuZ2xlID0gMDsKCiAgICAgICAgdGhpcy5jdXJyZW50X3pvb20gPSB0aGlzLm9wdGlvbnMuem9vbTsKCiAgICAgICAgaWYodGhpcy5vcHRpb25zLnNyYyA9PT0gbnVsbCl7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5lbGVtZW50OwoKICAgICAgICB0aGlzLl91cGRhdGVDb250YWluZXJJbmZvKCk7CgogICAgICAgIC8vaW5pdCBjb250YWluZXIKICAgICAgICB0aGlzLmNvbnRhaW5lci5jc3MoIm92ZXJmbG93IiwiaGlkZGVuIik7CgogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXBkYXRlX29uX3Jlc2l6ZSA9PSB0cnVlKSB7CiAgICAgICAgICAgICQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBtZS51cGRhdGUoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICB0aGlzLmltZ19vYmplY3QgPSBuZXcgJC51aS5pdmlld2VyLkltYWdlT2JqZWN0KHRoaXMub3B0aW9ucy56b29tX2FuaW1hdGlvbik7CgogICAgICAgIGlmICh0aGlzLm9wdGlvbnMubW91c2V3aGVlbCkgewogICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5iaW5kKCdtb3VzZXdoZWVsLml2aWV3ZXInLCBmdW5jdGlvbihldiwgZGVsdGEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgLy90aGlzIGV2ZW50IGlzIHRoZXJlIGluc3RlYWQgb2YgY29udGFpbmluZyBkaXYsIGJlY2F1c2UKICAgICAgICAgICAgICAgICAgICAvL2F0IG9wZXJhIGl0IHRyaWdnZXJzIG1hbnkgdGltZXMgb24gZGl2CiAgICAgICAgICAgICAgICAgICAgdmFyIHpvb20gPSAoZGVsdGEgPiAwKT8xOi0xLAogICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJfb2Zmc2V0ID0gbWUuY29udGFpbmVyLm9mZnNldCgpLAogICAgICAgICAgICAgICAgICAgICAgICBtb3VzZV9wb3MgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2pxdWVyeS5tb3VzZXdoZWVsIDMuMS4wIHVzZXMgc3RyYW5nZSBNb3pNb3VzZVBpeGVsU2Nyb2xsIGV2ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3doaWNoIGlzIG5vdCBiZWluZyBmaXhlZCBieSBqUXVlcnkuRXZlbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IChldi5wYWdlWCB8fCBldi5vcmlnaW5hbEV2ZW50LnBhZ2VYKSAtIGNvbnRhaW5lcl9vZmZzZXQubGVmdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IChldi5wYWdlWSB8fCBldi5vcmlnaW5hbEV2ZW50LnBhZ2VYKSAtIGNvbnRhaW5lcl9vZmZzZXQudG9wCiAgICAgICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIG1lLnpvb21fYnkoem9vbSwgbW91c2VfcG9zKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGlmIChnZXN0dXJlc1N1cHBvcnQpIHsKICAgICAgICAgICAgICAgIHZhciBnZXN0dXJlVGhyb3R0bGUgPSArbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIHZhciBvcmlnaW5hbFNjYWxlLCBvcmlnaW5hbENlbnRlcjsKICAgICAgICAgICAgICAgIHRoaXMuaW1nX29iamVjdC5vYmplY3QoKQogICAgICAgICAgICAgICAgICAgIC8vIC5iaW5kKCdnZXN0dXJlc3RhcnQnLCBmdW5jdGlvbihldikgewogICAgICAgICAgICAgICAgICAgIC5iaW5kKCd0b3VjaHN0YXJ0JywgZnVuY3Rpb24oZXYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxTY2FsZSA9IG1lLmN1cnJlbnRfem9vbTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvdWNoZXMgPSBldi5vcmlnaW5hbEV2ZW50LnRvdWNoZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJfb2Zmc2V0OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodG91Y2hlcy5sZW5ndGggPT0gMikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyX29mZnNldCA9IG1lLmNvbnRhaW5lci5vZmZzZXQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsQ2VudGVyID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6ICh0b3VjaGVzWzBdLnBhZ2VYICsgdG91Y2hlc1sxXS5wYWdlWCkgLyAyICAtIGNvbnRhaW5lcl9vZmZzZXQubGVmdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiAodG91Y2hlc1swXS5wYWdlWSArIHRvdWNoZXNbMV0ucGFnZVkpIC8gMiAtIGNvbnRhaW5lcl9vZmZzZXQudG9wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxDZW50ZXIgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkuYmluZCgnZ2VzdHVyZWNoYW5nZScsIGZ1bmN0aW9uKGV2KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vZG8gbm90IHdhbnQgdG8gaW1wb3J0IHRocm90dGxlIGZ1bmN0aW9uIGZyb20gdW5kZXJzY29yZQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgZCA9ICtuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGQgLSBnZXN0dXJlVGhyb3R0bGUpIDwgNTApIHsgcmV0dXJuOyB9CiAgICAgICAgICAgICAgICAgICAgICAgIGdlc3R1cmVUaHJvdHRsZSA9IGQ7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB6b29tID0gb3JpZ2luYWxTY2FsZSAqIGV2Lm9yaWdpbmFsRXZlbnQuc2NhbGU7CiAgICAgICAgICAgICAgICAgICAgICAgIG1lLnNldF96b29tKHpvb20sIG9yaWdpbmFsQ2VudGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICB9KS5iaW5kKCdnZXN0dXJlZW5kJywgZnVuY3Rpb24oZXYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxDZW50ZXIgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvL2luaXQgb2JqZWN0CiAgICAgICAgdGhpcy5pbWdfb2JqZWN0Lm9iamVjdCgpCiAgICAgICAgICAgIC8vYmluZCBtb3VzZSBldmVudHMKICAgICAgICAgICAgLmNsaWNrKGZ1bmN0aW9uKGUpe3JldHVybiBtZS5fY2xpY2soZSl9KQogICAgICAgICAgICAgICAgLnByZXBlbmRUbyh0aGlzLmNvbnRhaW5lcik7CgogICAgICAgIHRoaXMuY29udGFpbmVyLmJpbmQoJ21vdXNlbW92ZScsIGZ1bmN0aW9uKGV2KSB7IG1lLl9oYW5kbGVNb3VzZU1vdmUoZXYpOyB9KTsKCiAgICAgICAgdGhpcy5sb2FkSW1hZ2UodGhpcy5vcHRpb25zLnNyYyk7CgogICAgICAgIGlmKCF0aGlzLm9wdGlvbnMudWlfZGlzYWJsZWQpCiAgICAgICAgewogICAgICAgICAgICB0aGlzLmNyZWF0ZXVpKCk7CiAgICAgICAgfQoKICAgICAgICB0aGlzLl9tb3VzZUluaXQoKTsKICAgIH0sCgogICAgZGVzdHJveTogZnVuY3Rpb24oKSB7CiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCggdGhpcyApOwogICAgICAgIHRoaXMuX21vdXNlRGVzdHJveSgpOwogICAgICAgIHRoaXMuaW1nX29iamVjdC5vYmplY3QoKS5yZW1vdmUoKTsKICAgICAgICB0aGlzLmNvbnRhaW5lci5vZmYoJy5pdmlld2VyJyk7CiAgICAgICAgdGhpcy5jb250YWluZXIuY3NzKCdvdmVyZmxvdycsICcnKTsgLy9jbGVhbnVwIHN0eWxlcyBvbiBkZXN0cm95CiAgICB9LAoKICAgIF91cGRhdGVDb250YWluZXJJbmZvOiBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdGhpcy5vcHRpb25zLmhlaWdodCA9IHRoaXMuY29udGFpbmVyLmhlaWdodCgpOwogICAgICAgIHRoaXMub3B0aW9ucy53aWR0aCA9IHRoaXMuY29udGFpbmVyLndpZHRoKCk7CiAgICB9LAoKICAgIHVwZGF0ZTogZnVuY3Rpb24oKQogICAgewogICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRhaW5lckluZm8oKQogICAgICAgIHRoaXMuc2V0Q29vcmRzKHRoaXMuaW1nX29iamVjdC54KCksIHRoaXMuaW1nX29iamVjdC55KCkpOwogICAgfSwKCiAgICBsb2FkSW1hZ2U6IGZ1bmN0aW9uKCBzcmMgKQogICAgewogICAgICAgIHRoaXMuY3VycmVudF96b29tID0gdGhpcy5vcHRpb25zLnpvb207CiAgICAgICAgdmFyIG1lID0gdGhpczsKCiAgICAgICAgdGhpcy5fdHJpZ2dlcignb25TdGFydExvYWQnLCAwLCBzcmMpOwoKICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRDbGFzcygiaXZpZXdlcl9sb2FkaW5nIik7CiAgICAgICAgdGhpcy5pbWdfb2JqZWN0LmxvYWQoc3JjLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgbWUuX2ltYWdlTG9hZGVkKHNyYyk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIG1lLl90cmlnZ2VyKCJvbkVycm9yTG9hZCIsIDAsIHNyYyk7CiAgICAgICAgfSk7CiAgICB9LAoKICAgIF9pbWFnZUxvYWRlZDogZnVuY3Rpb24oc3JjKSB7CiAgICAgICAgdGhpcy5jb250YWluZXIucmVtb3ZlQ2xhc3MoIml2aWV3ZXJfbG9hZGluZyIpOwogICAgICAgIHRoaXMuY29udGFpbmVyLmFkZENsYXNzKCJpdmlld2VyX2N1cnNvciIpOwoKICAgICAgICBpZih0aGlzLm9wdGlvbnMuem9vbSA9PSAiZml0Iil7CiAgICAgICAgICAgIHRoaXMuZml0KHRydWUpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGhpcy5zZXRfem9vbSh0aGlzLm9wdGlvbnMuem9vbSwgdHJ1ZSk7CiAgICAgICAgfQoKICAgICAgICB0aGlzLl90cmlnZ2VyKCdvbkZpbmlzaExvYWQnLCAwLCBzcmMpOwogICAgfSwKCiAgICAvKioKICAgICogZml0cyBpbWFnZSBpbiB0aGUgY29udGFpbmVyCiAgICAqCiAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2tpcF9hbmltYXRpb24KICAgICoqLwogICAgZml0OiBmdW5jdGlvbihza2lwX2FuaW1hdGlvbikKICAgIHsKICAgICAgICB2YXIgYXNwZWN0X3JhdGlvID0gdGhpcy5pbWdfb2JqZWN0Lm9yaWdfd2lkdGgoKSAvIHRoaXMuaW1nX29iamVjdC5vcmlnX2hlaWdodCgpOwogICAgICAgIHZhciB3aW5kb3dfcmF0aW8gPSB0aGlzLm9wdGlvbnMud2lkdGggLyAgdGhpcy5vcHRpb25zLmhlaWdodDsKICAgICAgICB2YXIgY2hvb3NlX2xlZnQgPSAoYXNwZWN0X3JhdGlvID4gd2luZG93X3JhdGlvKTsKICAgICAgICB2YXIgbmV3X3pvb20gPSAwOwoKICAgICAgICBpZihjaG9vc2VfbGVmdCl7CiAgICAgICAgICAgIG5ld196b29tID0gdGhpcy5vcHRpb25zLndpZHRoIC8gdGhpcy5pbWdfb2JqZWN0Lm9yaWdfd2lkdGgoKSAqIDEwMDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG5ld196b29tID0gdGhpcy5vcHRpb25zLmhlaWdodCAvIHRoaXMuaW1nX29iamVjdC5vcmlnX2hlaWdodCgpICogMTAwOwogICAgICAgIH0KCiAgICAgIHRoaXMuc2V0X3pvb20obmV3X3pvb20sIHNraXBfYW5pbWF0aW9uKTsKICAgIH0sCgogICAgLyoqCiAgICAqIGNlbnRlciBpbWFnZSBpbiBjb250YWluZXIKICAgICoqLwogICAgY2VudGVyOiBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdGhpcy5zZXRDb29yZHMoLU1hdGgucm91bmQoKHRoaXMuaW1nX29iamVjdC5kaXNwbGF5X3dpZHRoKCkgLSB0aGlzLm9wdGlvbnMud2lkdGgpLzIpLAogICAgICAgICAgICAgICAgLU1hdGgucm91bmQoKHRoaXMuaW1nX29iamVjdC5kaXNwbGF5X2hlaWdodCgpIC0gdGhpcy5vcHRpb25zLmhlaWdodCkvMikpOwogICAgfSwKCiAgICAvKioKICAgICogICBtb3ZlIGEgcG9pbnQgaW4gY29udGFpbmVyIHRvIHRoZSBjZW50ZXIgb2YgZGlzcGxheSBhcmVhCiAgICAqICAgQHBhcmFtIHggYSBwb2ludCBpbiBjb250YWluZXIKICAgICogICBAcGFyYW0geSBhIHBvaW50IGluIGNvbnRhaW5lcgogICAgKiovCiAgICBtb3ZlVG86IGZ1bmN0aW9uKHgsIHkpCiAgICB7CiAgICAgICAgdmFyIGR4ID0geC1NYXRoLnJvdW5kKHRoaXMub3B0aW9ucy53aWR0aC8yKTsKICAgICAgICB2YXIgZHkgPSB5LU1hdGgucm91bmQodGhpcy5vcHRpb25zLmhlaWdodC8yKTsKCiAgICAgICAgdmFyIG5ld194ID0gdGhpcy5pbWdfb2JqZWN0LngoKSAtIGR4OwogICAgICAgIHZhciBuZXdfeSA9IHRoaXMuaW1nX29iamVjdC55KCkgLSBkeTsKCiAgICAgICAgdGhpcy5zZXRDb29yZHMobmV3X3gsIG5ld195KTsKICAgIH0sCgogICAgLyoqCiAgICAgKiBHZXQgY29udGFpbmVyIG9mZnNldCBvYmplY3QuCiAgICAgKi8KICAgIGdldENvbnRhaW5lck9mZnNldDogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGpRdWVyeS5leHRlbmQoe30sIHRoaXMuY29udGFpbmVyLm9mZnNldCgpKTsKICAgIH0sCgogICAgLyoqCiAgICAqIHNldCBjb29yZGluYXRlcyBvZiB1cHBlciBsZWZ0IGNvcm5lciBvZiBpbWFnZSBvYmplY3QKICAgICoqLwogICAgc2V0Q29vcmRzOiBmdW5jdGlvbih4LHkpCiAgICB7CiAgICAgICAgLy9kbyBub3RoaW5nIHdoaWxlIGltYWdlIGlzIGJlaW5nIGxvYWRlZAogICAgICAgIGlmKCF0aGlzLmltZ19vYmplY3QubG9hZGVkKCkpIHsgcmV0dXJuOyB9CgogICAgICAgIHZhciBjb29yZHMgPSB0aGlzLl9jb3JyZWN0Q29vcmRzKHgseSk7CiAgICAgICAgdGhpcy5pbWdfb2JqZWN0LngoY29vcmRzLngpOwogICAgICAgIHRoaXMuaW1nX29iamVjdC55KGNvb3Jkcy55KTsKICAgIH0sCgogICAgX2NvcnJlY3RDb29yZHM6IGZ1bmN0aW9uKCB4LCB5ICkKICAgIHsKICAgICAgICB4ID0gcGFyc2VJbnQoeCwgMTApOwogICAgICAgIHkgPSBwYXJzZUludCh5LCAxMCk7CgogICAgICAgIC8vY2hlY2sgbmV3IGNvb3JkaW5hdGVzIHRvIGJlIGNvcnJlY3QgKHRvIGJlIGluIHJlY3QpCiAgICAgICAgaWYoeSA+IDApewogICAgICAgICAgICB5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYoeCA+IDApewogICAgICAgICAgICB4ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYoeSArIHRoaXMuaW1nX29iamVjdC5kaXNwbGF5X2hlaWdodCgpIDwgdGhpcy5vcHRpb25zLmhlaWdodCl7CiAgICAgICAgICAgIHkgPSB0aGlzLm9wdGlvbnMuaGVpZ2h0IC0gdGhpcy5pbWdfb2JqZWN0LmRpc3BsYXlfaGVpZ2h0KCk7CiAgICAgICAgfQogICAgICAgIGlmKHggKyB0aGlzLmltZ19vYmplY3QuZGlzcGxheV93aWR0aCgpIDwgdGhpcy5vcHRpb25zLndpZHRoKXsKICAgICAgICAgICAgeCA9IHRoaXMub3B0aW9ucy53aWR0aCAtIHRoaXMuaW1nX29iamVjdC5kaXNwbGF5X3dpZHRoKCk7CiAgICAgICAgfQogICAgICAgIGlmKHRoaXMuaW1nX29iamVjdC5kaXNwbGF5X3dpZHRoKCkgPD0gdGhpcy5vcHRpb25zLndpZHRoKXsKICAgICAgICAgICAgeCA9IC0odGhpcy5pbWdfb2JqZWN0LmRpc3BsYXlfd2lkdGgoKSAtIHRoaXMub3B0aW9ucy53aWR0aCkvMjsKICAgICAgICB9CiAgICAgICAgaWYodGhpcy5pbWdfb2JqZWN0LmRpc3BsYXlfaGVpZ2h0KCkgPD0gdGhpcy5vcHRpb25zLmhlaWdodCl7CiAgICAgICAgICAgIHkgPSAtKHRoaXMuaW1nX29iamVjdC5kaXNwbGF5X2hlaWdodCgpIC0gdGhpcy5vcHRpb25zLmhlaWdodCkvMjsKICAgICAgICB9CgogICAgICAgIHJldHVybiB7IHg6IHgsIHk6eSB9OwogICAgfSwKCgogICAgLyoqCiAgICAqIGNvbnZlcnQgY29vcmRpbmF0ZXMgb24gdGhlIGNvbnRhaW5lciB0byB0aGUgY29vcmRpbmF0ZXMgb24gdGhlIGltYWdlIChpbiBvcmlnaW5hbCBzaXplKQogICAgKgogICAgKiBAcmV0dXJuIG9iamVjdCB3aXRoIGZpZWxkcyB4LHkgYWNjb3JkaW5nIHRvIGNvb3JkaW5hdGVzIG9yIGZhbHNlCiAgICAqIGlmIGluaXRpYWwgY29vcmRzIGFyZSBub3QgaW5zaWRlIGltYWdlCiAgICAqKi8KICAgIGNvbnRhaW5lclRvSW1hZ2UgOiBmdW5jdGlvbiAoeCx5KQogICAgewogICAgICAgIHZhciBjb29yZHMgPSB7IHggOiB4IC0gdGhpcy5pbWdfb2JqZWN0LngoKSwKICAgICAgICAgICAgICAgICB5IDogIHkgLSB0aGlzLmltZ19vYmplY3QueSgpCiAgICAgICAgfTsKCiAgICAgICAgY29vcmRzID0gdGhpcy5pbWdfb2JqZWN0LnRvT3JpZ2luYWxDb29yZHMoY29vcmRzKTsKCiAgICAgICAgcmV0dXJuIHsgeCA6ICB1dGlsLmRlc2NhbGVWYWx1ZShjb29yZHMueCwgdGhpcy5jdXJyZW50X3pvb20pLAogICAgICAgICAgICAgICAgIHkgOiAgdXRpbC5kZXNjYWxlVmFsdWUoY29vcmRzLnksIHRoaXMuY3VycmVudF96b29tKQogICAgICAgIH07CiAgICB9LAoKICAgIC8qKgogICAgKiBjb252ZXJ0IGNvb3JkaW5hdGVzIG9uIHRoZSBpbWFnZSAoaW4gb3JpZ2luYWwgc2l6ZSwgYW5kIHplcm8gYW5nbGUpIHRvIHRoZSBjb29yZGluYXRlcyBvbiB0aGUgY29udGFpbmVyCiAgICAqCiAgICAqIEByZXR1cm4gb2JqZWN0IHdpdGggZmllbGRzIHgseSBhY2NvcmRpbmcgdG8gY29vcmRpbmF0ZXMKICAgICoqLwogICAgaW1hZ2VUb0NvbnRhaW5lciA6IGZ1bmN0aW9uICh4LHkpCiAgICB7CiAgICAgICAgdmFyIGNvb3JkcyA9IHsKICAgICAgICAgICAgICAgIHggOiB1dGlsLnNjYWxlVmFsdWUoeCwgdGhpcy5jdXJyZW50X3pvb20pLAogICAgICAgICAgICAgICAgeSA6IHV0aWwuc2NhbGVWYWx1ZSh5LCB0aGlzLmN1cnJlbnRfem9vbSkKICAgICAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIHRoaXMuaW1nX29iamVjdC50b1JlYWxDb29yZHMoY29vcmRzKTsKICAgIH0sCgogICAgLyoqCiAgICAqIGdldCBtb3VzZSBjb29yZGluYXRlcyBvbiB0aGUgaW1hZ2UKICAgICogQHBhcmFtIGUgLSBvYmplY3QgY29udGFpbmluZyBwYWdlWCBhbmQgcGFnZVkgZmllbGRzLCBlLmcuIG1vdXNlIGV2ZW50IG9iamVjdAogICAgKgogICAgKiBAcmV0dXJuIG9iamVjdCB3aXRoIGZpZWxkcyB4LHkgYWNjb3JkaW5nIHRvIGNvb3JkaW5hdGVzIG9yIGZhbHNlCiAgICAqIGlmIGluaXRpYWwgY29vcmRzIGFyZSBub3QgaW5zaWRlIGltYWdlCiAgICAqKi8KICAgIF9nZXRNb3VzZUNvb3JkcyA6IGZ1bmN0aW9uKGUpCiAgICB7CiAgICAgICAgdmFyIGNvbnRhaW5lck9mZnNldCA9IHRoaXMuY29udGFpbmVyLm9mZnNldCgpOwogICAgICAgICAgICBjb29yZHMgPSB0aGlzLmNvbnRhaW5lclRvSW1hZ2UoZS5wYWdlWCAtIGNvbnRhaW5lck9mZnNldC5sZWZ0LCBlLnBhZ2VZIC0gY29udGFpbmVyT2Zmc2V0LnRvcCk7CgogICAgICAgIHJldHVybiBjb29yZHM7CiAgICB9LAoKICAgIC8qKgogICAgKiBzZXQgaW1hZ2Ugc2NhbGUgdG8gdGhlIG5ld196b29tCiAgICAqCiAgICAqIEBwYXJhbSB7bnVtYmVyfSBuZXdfem9vbSBpbWFnZSBzY2FsZSBpbiAlCiAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2tpcF9hbmltYXRpb24KICAgICogQHBhcmFtIHt4OiBudW1iZXIsIHk6IG51bWJlcn0gQ29vcmRpbmF0ZXMgb2YgcG9pbnQgdGhlIHNob3VsZCBub3QgYmUgbW92ZWQgb24gem9vbS4gVGhlIGRlZmF1bHQgaXMgdGhlIGNlbnRlciBvZiBpbWFnZS4KICAgICoqLwogICAgc2V0X3pvb206IGZ1bmN0aW9uKG5ld196b29tLCBza2lwX2FuaW1hdGlvbiwgem9vbV9jZW50ZXIpCiAgICB7CiAgICAgICAgaWYgKHRoaXMuX3RyaWdnZXIoJ29uWm9vbScsIDAsIG5ld196b29tKSA9PSBmYWxzZSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAvL2RvIG5vdGhpbmcgd2hpbGUgaW1hZ2UgaXMgYmVpbmcgbG9hZGVkCiAgICAgICAgaWYoIXRoaXMuaW1nX29iamVjdC5sb2FkZWQoKSkgeyByZXR1cm47IH0KCiAgICAgICAgem9vbV9jZW50ZXIgPSB6b29tX2NlbnRlciB8fCB7CiAgICAgICAgICAgIHg6IE1hdGgucm91bmQodGhpcy5vcHRpb25zLndpZHRoLzIpLAogICAgICAgICAgICB5OiBNYXRoLnJvdW5kKHRoaXMub3B0aW9ucy5oZWlnaHQvMikKICAgICAgICB9CgogICAgICAgIGlmKG5ld196b29tIDwgIHRoaXMub3B0aW9ucy56b29tX21pbikKICAgICAgICB7CiAgICAgICAgICAgIG5ld196b29tID0gdGhpcy5vcHRpb25zLnpvb21fbWluOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKG5ld196b29tID4gdGhpcy5vcHRpb25zLnpvb21fbWF4KQogICAgICAgIHsKICAgICAgICAgICAgbmV3X3pvb20gPSB0aGlzLm9wdGlvbnMuem9vbV9tYXg7CiAgICAgICAgfQoKICAgICAgICAvKiB3ZSBmYWtlIHRoZXNlIHZhbHVlcyB0byBtYWtlIGZpdCB6b29tIHByb3Blcmx5IHdvcmsgKi8KICAgICAgICBpZih0aGlzLmN1cnJlbnRfem9vbSA9PSAiZml0IikKICAgICAgICB7CiAgICAgICAgICAgIHZhciBvbGRfeCA9IHpvb21fY2VudGVyLnggKyBNYXRoLnJvdW5kKHRoaXMuaW1nX29iamVjdC5vcmlnX3dpZHRoKCkvMik7CiAgICAgICAgICAgIHZhciBvbGRfeSA9IHpvb21fY2VudGVyLnkgKyBNYXRoLnJvdW5kKHRoaXMuaW1nX29iamVjdC5vcmlnX2hlaWdodCgpLzIpOwogICAgICAgICAgICB0aGlzLmN1cnJlbnRfem9vbSA9IDEwMDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBvbGRfeCA9IC10aGlzLmltZ19vYmplY3QueCgpICsgem9vbV9jZW50ZXIueDsKICAgICAgICAgICAgdmFyIG9sZF95ID0gLXRoaXMuaW1nX29iamVjdC55KCkgKyB6b29tX2NlbnRlci55CiAgICAgICAgfQoKICAgICAgICB2YXIgbmV3X3dpZHRoID0gdXRpbC5zY2FsZVZhbHVlKHRoaXMuaW1nX29iamVjdC5vcmlnX3dpZHRoKCksIG5ld196b29tKTsKICAgICAgICB2YXIgbmV3X2hlaWdodCA9IHV0aWwuc2NhbGVWYWx1ZSh0aGlzLmltZ19vYmplY3Qub3JpZ19oZWlnaHQoKSwgbmV3X3pvb20pOwogICAgICAgIHZhciBuZXdfeCA9IHV0aWwuc2NhbGVWYWx1ZSggdXRpbC5kZXNjYWxlVmFsdWUob2xkX3gsIHRoaXMuY3VycmVudF96b29tKSwgbmV3X3pvb20pOwogICAgICAgIHZhciBuZXdfeSA9IHV0aWwuc2NhbGVWYWx1ZSggdXRpbC5kZXNjYWxlVmFsdWUob2xkX3ksIHRoaXMuY3VycmVudF96b29tKSwgbmV3X3pvb20pOwoKICAgICAgICBuZXdfeCA9IHpvb21fY2VudGVyLnggLSBuZXdfeDsKICAgICAgICBuZXdfeSA9IHpvb21fY2VudGVyLnkgLSBuZXdfeTsKCiAgICAgICAgbmV3X3dpZHRoID0gTWF0aC5mbG9vcihuZXdfd2lkdGgpOwogICAgICAgIG5ld19oZWlnaHQgPSBNYXRoLmZsb29yKG5ld19oZWlnaHQpOwogICAgICAgIG5ld194ID0gTWF0aC5mbG9vcihuZXdfeCk7CiAgICAgICAgbmV3X3kgPSBNYXRoLmZsb29yKG5ld195KTsKCiAgICAgICAgdGhpcy5pbWdfb2JqZWN0LmRpc3BsYXlfd2lkdGgobmV3X3dpZHRoKTsKICAgICAgICB0aGlzLmltZ19vYmplY3QuZGlzcGxheV9oZWlnaHQobmV3X2hlaWdodCk7CgogICAgICAgIHZhciBjb29yZHMgPSB0aGlzLl9jb3JyZWN0Q29vcmRzKCBuZXdfeCwgbmV3X3kgKSwKICAgICAgICAgICAgc2VsZiA9IHRoaXM7CgogICAgICAgIHRoaXMuaW1nX29iamVjdC5zZXRJbWFnZVByb3BzKG5ld193aWR0aCwgbmV3X2hlaWdodCwgY29vcmRzLngsIGNvb3Jkcy55LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9hbmltYXRpb24sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzZWxmLl90cmlnZ2VyKCdvbkFmdGVyWm9vbScsIDAsIG5ld196b29tICk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5jdXJyZW50X3pvb20gPSBuZXdfem9vbTsKCiAgICAgICAgdGhpcy51cGRhdGVfc3RhdHVzKCk7CiAgICB9LAoKICAgIC8qKgogICAgKiBjaGFuZ2VzIHpvb20gc2NhbGUgYnkgZGVsdGEKICAgICogem9vbSBpcyBjYWxjdWxhdGVkIGJ5IGZvcm11bGE6IHpvb21fYmFzZSAqIHpvb21fZGVsdGFecmF0ZQogICAgKiBAcGFyYW0gSW50ZWdlciBkZWx0YSBudW1iZXIgdG8gYWRkIHRvIHRoZSBjdXJyZW50IG11bHRpcGxpZXIgcmF0ZSBudW1iZXIKICAgICogQHBhcmFtIHt4OiBudW1iZXIsIHk6IG51bWJlcj19IENvb3JkaW5hdGVzIG9mIHBvaW50IHRoZSBzaG91bGQgbm90IGJlIG1vdmVkIG9uIHpvb20uCiAgICAqKi8KICAgIHpvb21fYnk6IGZ1bmN0aW9uKGRlbHRhLCB6b29tX2NlbnRlcikKICAgIHsKICAgICAgICB2YXIgY2xvc2VzdF9yYXRlID0gdGhpcy5maW5kX2Nsb3Nlc3Rfem9vbV9yYXRlKHRoaXMuY3VycmVudF96b29tKTsKCiAgICAgICAgdmFyIG5leHRfcmF0ZSA9IGNsb3Nlc3RfcmF0ZSArIGRlbHRhOwogICAgICAgIHZhciBuZXh0X3pvb20gPSB0aGlzLm9wdGlvbnMuem9vbV9iYXNlICogTWF0aC5wb3codGhpcy5vcHRpb25zLnpvb21fZGVsdGEsIG5leHRfcmF0ZSkKICAgICAgICBpZihkZWx0YSA+IDAgJiYgbmV4dF96b29tIDwgdGhpcy5jdXJyZW50X3pvb20pCiAgICAgICAgewogICAgICAgICAgICBuZXh0X3pvb20gKj0gdGhpcy5vcHRpb25zLnpvb21fZGVsdGE7CiAgICAgICAgfQoKICAgICAgICBpZihkZWx0YSA8IDAgJiYgbmV4dF96b29tID4gdGhpcy5jdXJyZW50X3pvb20pCiAgICAgICAgewogICAgICAgICAgICBuZXh0X3pvb20gLz0gdGhpcy5vcHRpb25zLnpvb21fZGVsdGE7CiAgICAgICAgfQoKICAgICAgICB0aGlzLnNldF96b29tKG5leHRfem9vbSwgdW5kZWZpbmVkLCB6b29tX2NlbnRlcik7CiAgICB9LAoKICAgIC8qKgogICAgKiBSb3RhdGUgaW1hZ2UKICAgICogQHBhcmFtIHtudW19IGRlZyBEZWdyZWVzIGFtb3VudCB0byByb3RhdGUuIFBvc2l0aXZlIHZhbHVlcyByb3RhdGUgaW1hZ2UgY2xvY2t3aXNlLgogICAgKiAgICAgQ3VycmVudGx5IDAsIDkwLCAxODAsIDI3MCBhbmQgLTkwLCAtMTgwLCAtMjcwIHZhbHVlcyBhcmUgc3VwcG9ydGVkCiAgICAqCiAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gYWJzIElmIHRoZSBmbGFnIGlzIHRydWUgaWYsIHRoZSBkZWcgcGFyYW1ldGVyIHdpbGwgYmUgY29uc2lkZXJlZCBhcwogICAgKiAgICAgYSBhYnNvbHV0ZSB2YWx1ZSBhbmQgcmVsYXRpdmUgb3RoZXJ3aXNlLgogICAgKiBAcmV0dXJuIHtudW18bnVsbH0gTWV0aG9kIHdpbGwgcmV0dXJuIGN1cnJlbnQgaW1hZ2UgYW5nbGUgaWYgY2FsbGVkIHdpdGhvdXQgYW55IGFyZ3VtZW50cy4KICAgICoqLwogICAgYW5nbGU6IGZ1bmN0aW9uKGRlZywgYWJzKSB7CiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHsgcmV0dXJuIHRoaXMuaW1nX29iamVjdC5hbmdsZSgpOyB9CgogICAgICAgIGlmIChkZWcgPCAtMjcwIHx8IGRlZyA+IDI3MCB8fCBkZWcgJSA5MCAhPT0gMCkgeyByZXR1cm47IH0KICAgICAgICBpZiAoIWFicykgeyBkZWcgKz0gdGhpcy5pbWdfb2JqZWN0LmFuZ2xlKCk7IH0KICAgICAgICBpZiAoZGVnIDwgMCkgeyBkZWcgKz0gMzYwOyB9CiAgICAgICAgaWYgKGRlZyA+PSAzNjApIHsgZGVnIC09IDM2MDsgfQoKICAgICAgICBpZiAoZGVnID09PSB0aGlzLmltZ19vYmplY3QuYW5nbGUoKSkgeyByZXR1cm47IH0KCiAgICAgICAgdGhpcy5pbWdfb2JqZWN0LmFuZ2xlKGRlZyk7CiAgICAgICAgLy90aGUgcm90YXRlIGJlaGF2aW9yIGlzIGRpZmZlcmVudCBpbiBhbGwgZWRpdG9ycy4gRm9yIG5vdyB3ZSAganVzdCBjZW50ZXIgdGhlCiAgICAgICAgLy9pbWFnZS4gSG93ZXZlciwgaXQgd2lsbCBiZSBiZXR0ZXIgdG8gdHJ5IHRvIGtlZXAgdGhlIHBvc2l0aW9uLgogICAgICAgIHRoaXMuY2VudGVyKCk7CiAgICAgICAgdGhpcy5fdHJpZ2dlcignYW5nbGUnLCAwLCB7IGFuZ2xlOiB0aGlzLmltZ19vYmplY3QuYW5nbGUoKSB9KTsKICAgIH0sCgogICAgLyoqCiAgICAqIGZpbmRzIGNsb3Nlc3QgbXVsdGlwbGllciByYXRlIGZvciB2YWx1ZQogICAgKiBiYXNpbmcgb24gem9vbV9iYXNlIGFuZCB6b29tX2RlbHRhIHZhbHVlcyBmcm9tIHNldHRpbmdzCiAgICAqIEBwYXJhbSBOdW1iZXIgdmFsdWUgem9vbSB2YWx1ZSB0byBleGFtaW5lCiAgICAqKi8KICAgIGZpbmRfY2xvc2VzdF96b29tX3JhdGU6IGZ1bmN0aW9uKHZhbHVlKQogICAgewogICAgICAgIGlmKHZhbHVlID09IHRoaXMub3B0aW9ucy56b29tX2Jhc2UpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGRpdih2YWwxLHZhbDIpIHsgcmV0dXJuIHZhbDEgLyB2YWwyIH07CiAgICAgICAgZnVuY3Rpb24gbXVsKHZhbDEsdmFsMikgeyByZXR1cm4gdmFsMSAqIHZhbDIgfTsKCiAgICAgICAgdmFyIGZ1bmMgPSAodmFsdWUgPiB0aGlzLm9wdGlvbnMuem9vbV9iYXNlKT9tdWw6ZGl2OwogICAgICAgIHZhciBzZ24gPSAodmFsdWUgPiB0aGlzLm9wdGlvbnMuem9vbV9iYXNlKT8xOi0xOwoKICAgICAgICB2YXIgbWx0cGxyID0gdGhpcy5vcHRpb25zLnpvb21fZGVsdGE7CiAgICAgICAgdmFyIHJhdGUgPSAxOwoKICAgICAgICB3aGlsZShNYXRoLmFicyhmdW5jKHRoaXMub3B0aW9ucy56b29tX2Jhc2UsIE1hdGgucG93KG1sdHBscixyYXRlKSkgLSB2YWx1ZSkgPgogICAgICAgICAgICAgIE1hdGguYWJzKGZ1bmModGhpcy5vcHRpb25zLnpvb21fYmFzZSwgTWF0aC5wb3cobWx0cGxyLHJhdGUrMSkpIC0gdmFsdWUpKQogICAgICAgIHsKICAgICAgICAgICAgcmF0ZSsrOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHNnbiAqIHJhdGU7CiAgICB9LAoKICAgIC8qIHVwZGF0ZSBzY2FsZSBpbmZvIGluIHRoZSBjb250YWluZXIgKi8KICAgIHVwZGF0ZV9zdGF0dXM6IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICBpZighdGhpcy5vcHRpb25zLnVpX2Rpc2FibGVkKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHBlcmNlbnQgPSBNYXRoLnJvdW5kKDEwMCp0aGlzLmltZ19vYmplY3QuZGlzcGxheV9oZWlnaHQoKS90aGlzLmltZ19vYmplY3Qub3JpZ19oZWlnaHQoKSk7CiAgICAgICAgICAgIGlmKHBlcmNlbnQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRoaXMuem9vbV9vYmplY3QuaHRtbChwZXJjZW50ICsgIiUiKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0sCgogICAgLyoqCiAgICAgKiBHZXQgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW1hZ2UuCiAgICAgKiAgICAgQ3VycmVudGx5IG9yaWdfKHdpZHRofGhlaWdodCksIGRpc3BsYXlfKHdpZHRofGhlaWdodCksIGFuZ2xlLCB6b29tIGFuZCBzcmMgcGFyYW1zIGFyZSBzdXBwb3J0ZWQuCiAgICAgKgogICAgICogIEBwYXJhbSB7c3RyaW5nfSBwYXJhbWV0ZXIgdG8gY2hlY2sKICAgICAqICBAcGFyYW0ge2Jvb2xlYW59IHdpdGhvdXRSb3RhdGlvbiBpZiBwYXJhbSBpcyBvcmlnX3dpZHRoIG9yIG9yaWdfaGVpZ2h0IGFuZCB0aGlzIGZsYWcgaXMgc2V0IHRvIHRydWUsCiAgICAgKiAgICAgIG1ldGhvZCB3aWxsIHJldHVybiBvcmlnaW5hbCBpbWFnZSB3aWR0aCB3aXRob3V0IGNvbnNpZGVyaW5nIHJvdGF0aW9uLgogICAgICoKICAgICAqLwogICAgaW5mbzogZnVuY3Rpb24ocGFyYW0sIHdpdGhvdXRSb3RhdGlvbikgewogICAgICAgIGlmICghcGFyYW0pIHsgcmV0dXJuOyB9CgogICAgICAgIHN3aXRjaCAocGFyYW0pIHsKICAgICAgICAgICAgY2FzZSAnb3JpZ193aWR0aCc6CiAgICAgICAgICAgIGNhc2UgJ29yaWdfaGVpZ2h0JzoKICAgICAgICAgICAgICAgIGlmICh3aXRob3V0Um90YXRpb24pIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHRoaXMuaW1nX29iamVjdC5hbmdsZSgpICUgMTgwID09PSAwID8gdGhpcy5pbWdfb2JqZWN0W3BhcmFtXSgpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtID09PSAnb3JpZ193aWR0aCcgPyB0aGlzLmltZ19vYmplY3Qub3JpZ19oZWlnaHQoKSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWdfb2JqZWN0Lm9yaWdfd2lkdGgoKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmltZ19vYmplY3RbcGFyYW1dKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXlfd2lkdGgnOgogICAgICAgICAgICBjYXNlICdkaXNwbGF5X2hlaWdodCc6CiAgICAgICAgICAgIGNhc2UgJ2FuZ2xlJzoKICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmltZ19vYmplY3RbcGFyYW1dKCk7CiAgICAgICAgICAgIGNhc2UgJ3pvb20nOgogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudF96b29tOwogICAgICAgICAgICBjYXNlICdzcmMnOgogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW1nX29iamVjdC5vYmplY3QoKS5hdHRyKCdzcmMnKTsKICAgICAgICAgICAgY2FzZSAnY29vcmRzJzoKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgeDogdGhpcy5pbWdfb2JqZWN0LngoKSwKICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLmltZ19vYmplY3QueSgpCiAgICAgICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0sCgogICAgLyoqCiAgICAqICAgY2FsbGJhY2sgZm9yIGhhbmRsaW5nIG1vdXNkb3duIGV2ZW50IHRvIHN0YXJ0IGRyYWdnaW5nIGltYWdlCiAgICAqKi8KICAgIF9tb3VzZVN0YXJ0OiBmdW5jdGlvbiggZSApCiAgICB7CiAgICAgICAgJC51aS5tb3VzZS5wcm90b3R5cGUuX21vdXNlU3RhcnQuY2FsbCh0aGlzLCBlKTsKICAgICAgICBpZiAodGhpcy5fdHJpZ2dlcignb25TdGFydERyYWcnLCAwLCB0aGlzLl9nZXRNb3VzZUNvb3JkcyhlKSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIC8qIHN0YXJ0IGRyYWcgZXZlbnQqLwogICAgICAgIHRoaXMuY29udGFpbmVyLmFkZENsYXNzKCJpdmlld2VyX2RyYWdfY3Vyc29yIik7CgogICAgICAgIC8vIzEwOiBmaXggbW92ZW1lbnQgcXVpcmtzIGZvciBpcGFkCiAgICAgICAgdGhpcy5fZHJhZ0luaXRpYWxpemVkID0gIShlLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZS5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aD09MSk7CgogICAgICAgIHRoaXMuZHggPSBlLnBhZ2VYIC0gdGhpcy5pbWdfb2JqZWN0LngoKTsKICAgICAgICB0aGlzLmR5ID0gZS5wYWdlWSAtIHRoaXMuaW1nX29iamVjdC55KCk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9LAoKICAgIF9tb3VzZUNhcHR1cmU6IGZ1bmN0aW9uKCBlICkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfSwKCiAgICAvKioKICAgICAqIEhhbmRsZSBtb3VzZSBtb3ZlIGlmIG5lZWRlZC4gVXNlciBjYW4gYXZvaWQgdXNpbmcgdGhpcyBjYWxsYmFjaywgYmVjYXVzZQogICAgICogICAgaGUgY2FuIGdldCB0aGUgc2FtZSBpbmZvcm1hdGlvbiB0aHJvdWdoIHB1YmxpYyBtZXRob2RzLgogICAgICogIEBwYXJhbSB7alF1ZXJ5LkV2ZW50fSBlCiAgICAgKi8KICAgIF9oYW5kbGVNb3VzZU1vdmU6IGZ1bmN0aW9uKGUpIHsKICAgICAgICB0aGlzLl90cmlnZ2VyKCdvbk1vdXNlTW92ZScsIGUsIHRoaXMuX2dldE1vdXNlQ29vcmRzKGUpKTsKICAgIH0sCgogICAgLyoqCiAgICAqICAgY2FsbGJhY2sgZm9yIGhhbmRsaW5nIG1vdXNlbW92ZSBldmVudCB0byBkcmFnIGltYWdlCiAgICAqKi8KICAgIF9tb3VzZURyYWc6IGZ1bmN0aW9uKGUpCiAgICB7CiAgICAgICAgJC51aS5tb3VzZS5wcm90b3R5cGUuX21vdXNlRHJhZy5jYWxsKHRoaXMsIGUpOwoKICAgICAgICAvLyMxMDogaW1pdGF0ZSBtb3VzZVN0YXJ0LCBiZWNhdXNlIHdlIGNhbiBnZXQgaGVyZSB3aXRob3V0IGl0IG9uIGlQYWQgZm9yIHNvbWUgcmVhc29uCiAgICAgICAgaWYgKCF0aGlzLl9kcmFnSW5pdGlhbGl6ZWQpIHsKICAgICAgICAgICAgdGhpcy5keCA9IGUucGFnZVggLSB0aGlzLmltZ19vYmplY3QueCgpOwogICAgICAgICAgICB0aGlzLmR5ID0gZS5wYWdlWSAtIHRoaXMuaW1nX29iamVjdC55KCk7CiAgICAgICAgICAgIHRoaXMuX2RyYWdJbml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgfQoKICAgICAgICB2YXIgbHRvcCA9ICBlLnBhZ2VZIC0gdGhpcy5keTsKICAgICAgICB2YXIgbGxlZnQgPSBlLnBhZ2VYIC0gdGhpcy5keDsKCiAgICAgICAgdGhpcy5zZXRDb29yZHMobGxlZnQsIGx0b3ApOwogICAgICAgIHRoaXMuX3RyaWdnZXIoJ29uRHJhZycsIGUsIHRoaXMuX2dldE1vdXNlQ29vcmRzKGUpKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAoKICAgIC8qKgogICAgKiAgIGNhbGxiYWNrIGZvciBoYW5kbGluZyBzdG9wIGRyYWcKICAgICoqLwogICAgX21vdXNlU3RvcDogZnVuY3Rpb24oZSkKICAgIHsKICAgICAgICAkLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VTdG9wLmNhbGwodGhpcywgZSk7CiAgICAgICAgdGhpcy5jb250YWluZXIucmVtb3ZlQ2xhc3MoIml2aWV3ZXJfZHJhZ19jdXJzb3IiKTsKICAgICAgICB0aGlzLl90cmlnZ2VyKCdvblN0b3BEcmFnJywgMCwgdGhpcy5fZ2V0TW91c2VDb29yZHMoZSkpOwogICAgfSwKCiAgICBfY2xpY2s6IGZ1bmN0aW9uKGUpCiAgICB7CiAgICAgICAgdGhpcy5fdHJpZ2dlcignb25DbGljaycsIDAsIHRoaXMuX2dldE1vdXNlQ29vcmRzKGUpKTsKICAgIH0sCgogICAgLyoqCiAgICAqICAgY3JlYXRlIHpvb20gYnV0dG9ucyBpbmZvIGJveAogICAgKiovCiAgICBjcmVhdGV1aTogZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciBtZT10aGlzOwoKICAgICAgICAkKCI8ZGl2PiIsIHsgJ2NsYXNzJzogIml2aWV3ZXJfem9vbV9pbiBpdmlld2VyX2NvbW1vbiBpdmlld2VyX2J1dHRvbiJ9KQogICAgICAgICAgICAgICAgICAgIC5iaW5kKCdtb3VzZWRvd24gdG91Y2hzdGFydCcsZnVuY3Rpb24oKXttZS56b29tX2J5KDEpOyByZXR1cm4gZmFsc2U7fSkKICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8odGhpcy5jb250YWluZXIpOwoKICAgICAgICAkKCI8ZGl2PiIsIHsgJ2NsYXNzJzogIml2aWV3ZXJfem9vbV9vdXQgaXZpZXdlcl9jb21tb24gaXZpZXdlcl9idXR0b24ifSkKICAgICAgICAgICAgICAgICAgICAuYmluZCgnbW91c2Vkb3duIHRvdWNoc3RhcnQnLGZ1bmN0aW9uKCl7bWUuem9vbV9ieSgtIDEpOyByZXR1cm4gZmFsc2U7fSkKICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8odGhpcy5jb250YWluZXIpOwoKICAgICAgICAkKCI8ZGl2PiIsIHsgJ2NsYXNzJzogIml2aWV3ZXJfem9vbV96ZXJvIGl2aWV3ZXJfY29tbW9uIGl2aWV3ZXJfYnV0dG9uIn0pCiAgICAgICAgICAgICAgICAgICAgLmJpbmQoJ21vdXNlZG93biB0b3VjaHN0YXJ0JyxmdW5jdGlvbigpe21lLnNldF96b29tKDEwMCk7IHJldHVybiBmYWxzZTt9KQogICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyh0aGlzLmNvbnRhaW5lcik7CgogICAgICAgICQoIjxkaXY+IiwgeyAnY2xhc3MnOiAiaXZpZXdlcl96b29tX2ZpdCBpdmlld2VyX2NvbW1vbiBpdmlld2VyX2J1dHRvbiJ9KQogICAgICAgICAgICAgICAgICAgIC5iaW5kKCdtb3VzZWRvd24gdG91Y2hzdGFydCcsZnVuY3Rpb24oKXttZS5maXQodGhpcyk7IHJldHVybiBmYWxzZTt9KQogICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyh0aGlzLmNvbnRhaW5lcik7CgogICAgICAgIHRoaXMuem9vbV9vYmplY3QgPSAkKCI8ZGl2PiIpLmFkZENsYXNzKCJpdmlld2VyX3pvb21fc3RhdHVzIGl2aWV3ZXJfY29tbW9uIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHRoaXMuY29udGFpbmVyKTsKCiAgICAgICAgJCgiPGRpdj4iLCB7ICdjbGFzcyc6ICJpdmlld2VyX3JvdGF0ZV9sZWZ0IGl2aWV3ZXJfY29tbW9uIGl2aWV3ZXJfYnV0dG9uIn0pCiAgICAgICAgICAgICAgICAgICAgLmJpbmQoJ21vdXNlZG93biB0b3VjaHN0YXJ0JyxmdW5jdGlvbigpe21lLmFuZ2xlKC05MCk7IHJldHVybiBmYWxzZTt9KQogICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyh0aGlzLmNvbnRhaW5lcik7CgogICAgICAgICQoIjxkaXY+IiwgeyAnY2xhc3MnOiAiaXZpZXdlcl9yb3RhdGVfcmlnaHQgaXZpZXdlcl9jb21tb24gaXZpZXdlcl9idXR0b24iIH0pCiAgICAgICAgICAgICAgICAgICAgLmJpbmQoJ21vdXNlZG93biB0b3VjaHN0YXJ0JyxmdW5jdGlvbigpe21lLmFuZ2xlKDkwKTsgcmV0dXJuIGZhbHNlO30pCiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKHRoaXMuY29udGFpbmVyKTsKCiAgICAgICAgdGhpcy51cGRhdGVfc3RhdHVzKCk7IC8vaW5pdGlhbCBzdGF0dXMgdXBkYXRlCiAgICB9Cgp9ICk7CgovKioKICogQGNsYXNzICQudWkuaXZpZXdlci5JbWFnZU9iamVjdCBDbGFzcyByZXByZXNlbnRzIGltYWdlIGFuZCBwcm92aWRlcyBwdWJsaWMgYXBpIHdpdGhvdXQKICogICAgIGV4dGVuZGluZyBpbWFnZSBwcm90b3R5cGUuCiAqIEBjb25zdHJ1Y3RvcgogKiBAcGFyYW0ge2Jvb2xlYW59IGRvX2FuaW0gRG8gd2Ugd2FudCB0byBhbmltYXRlIGltYWdlIG9uIGRpbWVuc2lvbiBjaGFuZ2VzPwogKi8KJC51aS5pdmlld2VyLkltYWdlT2JqZWN0ID0gZnVuY3Rpb24oZG9fYW5pbSkgewogICAgdGhpcy5faW1nID0gJCgiPGltZz4iKQogICAgICAgICAgICAvL3RoaXMgaXMgbmVlZGVkLCBiZWNhdXNlIGNocm9taXVtIHNldHMgdGhlbSBhdXRvIG90aGVyd2lzZQogICAgICAgICAgICAuY3NzKHsgcG9zaXRpb246ICJhYnNvbHV0ZSIsIHRvcCA6IjBweCIsIGxlZnQ6ICIwcHgifSk7CgogICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7CiAgICB0aGlzLl9zd2FwRGltZW5zaW9ucyA9IGZhbHNlOwogICAgdGhpcy5fZG9fYW5pbSA9IGRvX2FuaW0gfHwgZmFsc2U7CiAgICB0aGlzLngoMCwgdHJ1ZSk7CiAgICB0aGlzLnkoMCwgdHJ1ZSk7CiAgICB0aGlzLmFuZ2xlKDApOwp9OwoKCi8qKiBAbGVuZHMgJC51aS5pdmlld2VyLkltYWdlT2JqZWN0LnByb3RvdHlwZSAqLwooZnVuY3Rpb24oKSB7CiAgICAvKioKICAgICAqIFJlc3RvcmUgaW5pdGlhbCBvYmplY3Qgc3RhdGUuCiAgICAgKgogICAgICogQHBhcmFtIHtudW1iZXJ9IHcgSW1hZ2Ugd2lkdGguCiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCBJbWFnZSBoZWlnaHQuCiAgICAgKi8KICAgIHRoaXMuX3Jlc2V0ID0gZnVuY3Rpb24odywgaCkgewogICAgICAgIHRoaXMuX2FuZ2xlID0gMDsKICAgICAgICB0aGlzLl9zd2FwRGltZW5zaW9ucyA9IGZhbHNlOwogICAgICAgIHRoaXMueCgwKTsKICAgICAgICB0aGlzLnkoMCk7CgogICAgICAgIHRoaXMub3JpZ193aWR0aCh3KTsKICAgICAgICB0aGlzLm9yaWdfaGVpZ2h0KGgpOwogICAgICAgIHRoaXMuZGlzcGxheV93aWR0aCh3KTsKICAgICAgICB0aGlzLmRpc3BsYXlfaGVpZ2h0KGgpOwogICAgfTsKCiAgICAvKioKICAgICAqIENoZWNrIGlmIGltYWdlIGlzIGxvYWRlZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICovCiAgICB0aGlzLmxvYWRlZCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5fbG9hZGVkOyB9OwoKICAgIC8qKgogICAgICogTG9hZCBpbWFnZS4KICAgICAqCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3JjIEltYWdlIHVybC4KICAgICAqIEBwYXJhbSB7RnVuY3Rpb249fSBsb2FkZWQgRnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgb24gaW1hZ2UgbG9hZC4KICAgICAqLwogICAgdGhpcy5sb2FkID0gZnVuY3Rpb24oc3JjLCBsb2FkZWQsIGVycm9yKSB7CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICBsb2FkZWQgPSBsb2FkZWQgfHwgalF1ZXJ5Lm5vb3A7CiAgICAgICAgdGhpcy5fbG9hZGVkID0gZmFsc2U7CgogICAgICAgIC8vSWYgd2UgYXNzaWduIG5ldyBpbWFnZSB1cmwgdG8gdGhlIHRoaXMuX2ltZyBJRTkgZmlyZXMgb25sb2FkIGV2ZW50IGFuZCBpbWFnZSB3aWR0aCBhbmQKICAgICAgICAvL2hlaWdodCBhcmUgc2V0IHRvIHplcm8uIFNvLCB3ZSBjcmVhdGUgYW5vdGhlciBpbWFnZSBvYmplY3QgYW5kIGxvYWQgaW1hZ2UgdGhyb3VnaCBpdC4KICAgICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7CiAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzZWxmLl9sb2FkZWQgPSB0cnVlOwogICAgICAgICAgICBzZWxmLl9yZXNldCh0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7CgogICAgICAgICAgICBzZWxmLl9pbWcKICAgICAgICAgICAgICAgIC5yZW1vdmVBdHRyKCJ3aWR0aCIpCiAgICAgICAgICAgICAgICAucmVtb3ZlQXR0cigiaGVpZ2h0IikKICAgICAgICAgICAgICAgIC5yZW1vdmVBdHRyKCJzdHlsZSIpCiAgICAgICAgICAgICAgICAvL21heC13aWR0aCBpcyByZXNldCwgYmVjYXVzZSBwbHVnaW4gYnJlYWtzIGluIHRoZSB0d2l0dGVyIGJvb3RzdHJhcCBvdGhlcndpc2UKICAgICAgICAgICAgICAgIC5jc3MoeyBwb3NpdGlvbjogImFic29sdXRlIiwgdG9wIDoiMHB4IiwgbGVmdDogIjBweCIsIG1heFdpZHRoOiAibm9uZSJ9KQoKICAgICAgICAgICAgc2VsZi5faW1nWzBdLnNyYyA9IHNyYzsKICAgICAgICAgICAgbG9hZGVkKCk7CiAgICAgICAgfTsKCiAgICAgICAgaW1nLm9uZXJyb3IgPSBlcnJvcjsKCiAgICAgICAgLy93ZSBuZWVkIHRoaXMgYmVjYXVzZSBzb21ldGltZXMgaW50ZXJuZXQgZXhwbG9yZXIgOCBmaXJlcyBvbmxvYWQgZXZlbnQKICAgICAgICAvL3JpZ2h0IGFmdGVyIGFzc2lnbm1lbnQgKHN5bmNocm9ub3VzbHkpCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaW1nLnNyYyA9IHNyYzsKICAgICAgICB9LCAwKTsKCiAgICAgICAgdGhpcy5hbmdsZSgwKTsKICAgIH07CgogICAgdGhpcy5fZGltZW5zaW9uID0gZnVuY3Rpb24ocHJlZml4LCBuYW1lKSB7CiAgICAgICAgdmFyIGhvcml6ID0gJ18nICsgcHJlZml4ICsgJ18nICsgbmFtZSwKICAgICAgICAgICAgdmVydCA9ICdfJyArIHByZWZpeCArICdfJyArIChuYW1lID09PSAnaGVpZ2h0JyA/ICd3aWR0aCcgOiAnaGVpZ2h0Jyk7CiAgICAgICAgcmV0dXJuIHNldHRlcihmdW5jdGlvbih2YWwpIHsKICAgICAgICAgICAgICAgIHRoaXNbdGhpcy5fc3dhcERpbWVuc2lvbnMgPyBob3JpejogdmVydF0gPSB2YWw7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbdGhpcy5fc3dhcERpbWVuc2lvbnMgPyBob3JpejogdmVydF07CiAgICAgICAgICAgIH0pOwogICAgfTsKCiAgICAvKioKICAgICAqIEdldHRlcnMgYW5kIHNldHRlciBmb3IgY29tbW9uIGltYWdlIGRpbWVuc2lvbnMuCiAgICAgKiAgICBkaXNwbGF5XyBtZWFucyByZWFsIGltYWdlIHRhZyBkaW1lbnNpb25zCiAgICAgKiAgICBvcmlnXyBtZWFucyBwaHlzaWNhbCBpbWFnZSBkaW1lbnNpb25zLgogICAgICogIE5vdGUsIHRoYXQgZGltZW5zaW9ucyBhcmUgc3dhcHBlZCBpZiBpbWFnZSBpcyByb3RhdGVkLiBJdCBuZWNlc3NhcnksCiAgICAgKiAgYmVjYXVzZSBhcyBsaXR0bGUgYXMgcG9zc2libGUgY29kZSBzaG91bGQga25vdyBhYm91dCByb3RhdGlvbi4KICAgICAqLwogICAgdGhpcy5kaXNwbGF5X3dpZHRoID0gdGhpcy5fZGltZW5zaW9uKCdkaXNwbGF5JywgJ3dpZHRoJyksCiAgICB0aGlzLmRpc3BsYXlfaGVpZ2h0ID0gdGhpcy5fZGltZW5zaW9uKCdkaXNwbGF5JywgJ2hlaWdodCcpLAogICAgdGhpcy5kaXNwbGF5X2RpZmYgPSBmdW5jdGlvbigpIHsgcmV0dXJuIE1hdGguZmxvb3IoIHRoaXMuZGlzcGxheV93aWR0aCgpIC0gdGhpcy5kaXNwbGF5X2hlaWdodCgpICkgfTsKICAgIHRoaXMub3JpZ193aWR0aCA9IHRoaXMuX2RpbWVuc2lvbignb3JpZycsICd3aWR0aCcpLAogICAgdGhpcy5vcmlnX2hlaWdodCA9IHRoaXMuX2RpbWVuc2lvbignb3JpZycsICdoZWlnaHQnKSwKCiAgICAvKioKICAgICAqIFNldHRlciBmb3IgIFggY29vcmRpbmF0ZS4gSWYgaW1hZ2UgaXMgcm90YXRlZCB3ZSBuZWVkIHRvIGFkZGl0aW9uYWx5IHNoaWZ0IGFuCiAgICAgKiAgICAgaW1hZ2UgdG8gbWFwIGltYWdlIGNvb3JkaW5hdGUgdG8gdGhlIHZpc3VhbCBwb3NpdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsIENvb3JkaW5hdGUgdmFsdWUuCiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNraXBDc3MgSWYgdHJ1ZSwgd2Ugb25seSBzZXQgdGhlIHZhbHVlIGFuZCBkbyBub3QgdG91Y2ggdGhlIGRvbS4KICAgICAqLwogICAgdGhpcy54ID0gc2V0dGVyKGZ1bmN0aW9uKHZhbCwgc2tpcENzcykgewogICAgICAgICAgICB0aGlzLl94ID0gdmFsOwogICAgICAgICAgICBpZiAoIXNraXBDc3MpIHsKICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmlzaEFuaW1hdGlvbigpOwogICAgICAgICAgICAgICAgdGhpcy5faW1nLmNzcygibGVmdCIsdGhpcy5feCArICh0aGlzLl9zd2FwRGltZW5zaW9ucyA/IHRoaXMuZGlzcGxheV9kaWZmKCkgLyAyIDogMCkgKyAicHgiKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl94OwogICAgICAgIH0pOwoKICAgIC8qKgogICAgICogU2V0dGVyIGZvciAgWSBjb29yZGluYXRlLiBJZiBpbWFnZSBpcyByb3RhdGVkIHdlIG5lZWQgdG8gYWRkaXRpb25hbHkgc2hpZnQgYW4KICAgICAqICAgICBpbWFnZSB0byBtYXAgaW1hZ2UgY29vcmRpbmF0ZSB0byB0aGUgdmlzdWFsIHBvc2l0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWwgQ29vcmRpbmF0ZSB2YWx1ZS4KICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2tpcENzcyBJZiB0cnVlLCB3ZSBvbmx5IHNldCB0aGUgdmFsdWUgYW5kIGRvIG5vdCB0b3VjaCB0aGUgZG9tLgogICAgICovCiAgICB0aGlzLnkgPSBzZXR0ZXIoZnVuY3Rpb24odmFsLCBza2lwQ3NzKSB7CiAgICAgICAgICAgIHRoaXMuX3kgPSB2YWw7CiAgICAgICAgICAgIGlmICghc2tpcENzcykgewogICAgICAgICAgICAgICAgdGhpcy5fZmluaXNoQW5pbWF0aW9uKCk7CiAgICAgICAgICAgICAgICB0aGlzLl9pbWcuY3NzKCJ0b3AiLHRoaXMuX3kgLSAodGhpcy5fc3dhcERpbWVuc2lvbnMgPyB0aGlzLmRpc3BsYXlfZGlmZigpIC8gMiA6IDApICsgInB4Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl95OwogICAgICAgfSk7CgogICAgLyoqCiAgICAgKiBQZXJmb3JtIGltYWdlIHJvdGF0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWcgQWJzb2x1dGUgaW1hZ2UgYW5nbGUuIFRoZSBtZXRob2Qgd2lsbCB3b3JrIHdpdGggdmFsdWVzIDAsIDkwLCAxODAsIDI3MCBkZWdyZWVzLgogICAgICovCiAgICB0aGlzLmFuZ2xlID0gc2V0dGVyKGZ1bmN0aW9uKGRlZykgewogICAgICAgICAgICB2YXIgcHJldlN3YXAgPSB0aGlzLl9zd2FwRGltZW5zaW9uczsKCiAgICAgICAgICAgIHRoaXMuX2FuZ2xlID0gZGVnOwogICAgICAgICAgICB0aGlzLl9zd2FwRGltZW5zaW9ucyA9IGRlZyAlIDE4MCAhPT0gMDsKCiAgICAgICAgICAgIGlmIChwcmV2U3dhcCAhPT0gdGhpcy5fc3dhcERpbWVuc2lvbnMpIHsKICAgICAgICAgICAgICAgIHZhciB2ZXJ0aWNhbE1vZCA9IHRoaXMuX3N3YXBEaW1lbnNpb25zID8gLTEgOiAxOwogICAgICAgICAgICAgICAgdGhpcy54KHRoaXMueCgpIC0gdmVydGljYWxNb2QgKiB0aGlzLmRpc3BsYXlfZGlmZigpIC8gMiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB0aGlzLnkodGhpcy55KCkgKyB2ZXJ0aWNhbE1vZCAqIHRoaXMuZGlzcGxheV9kaWZmKCkgLyAyLCB0cnVlKTsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHZhciBjc3NWYWwgPSAncm90YXRlKCcgKyBkZWcgKyAnZGVnKScsCiAgICAgICAgICAgICAgICBpbWcgPSB0aGlzLl9pbWc7CgogICAgICAgICAgICBqUXVlcnkuZWFjaChbJycsICctd2Via2l0LScsICctbW96LScsICctby0nLCAnLW1zLSddLCBmdW5jdGlvbihpLCBwcmVmaXgpIHsKICAgICAgICAgICAgICAgIGltZy5jc3MocHJlZml4ICsgJ3RyYW5zZm9ybScsIGNzc1ZhbCk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgaWYgKHVzZUllVHJhbnNmb3JtcykgewogICAgICAgICAgICAgICAgalF1ZXJ5LmVhY2goWyctbXMtJywgJyddLCBmdW5jdGlvbihpLCBwcmVmaXgpIHsKICAgICAgICAgICAgICAgICAgICBpbWcuY3NzKHByZWZpeCArICdmaWx0ZXInLCBpZVRyYW5zZm9ybXNbZGVnXS5maWx0ZXIpOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgaW1nLmNzcyh7CiAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogaWVUcmFuc2Zvcm1zW2RlZ10ubWFyZ2luTGVmdCAqIHRoaXMuZGlzcGxheV9kaWZmKCkgLyAyLAogICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogaWVUcmFuc2Zvcm1zW2RlZ10ubWFyZ2luVG9wICogdGhpcy5kaXNwbGF5X2RpZmYoKSAvIDIKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgIGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5fYW5nbGU7IH0pOwoKICAgIC8qKgogICAgICogTWFwIHBvaW50IGluIHRoZSBjb250YWluZXIgY29vcmRpbmF0ZXMgdG8gdGhlIHBvaW50IGluIGltYWdlIGNvb3JkaW5hdGVzLgogICAgICogICAgIFlvdSB3aWxsIGdldCBjb29yZGluYXRlcyBvZiBwb2ludCBvbiBpbWFnZSB3aXRoIHJlc3BlY3QgdG8gcm90YXRpb24sCiAgICAgKiAgICAgYnV0IHdpbGwgYmUgc2V0IGFzIGlmIGltYWdlIHdhcyBub3Qgcm90YXRlZC4KICAgICAqICAgICBTbywgaWYgaW1hZ2Ugd2FzIHJvdGF0ZWQgOTAgZGVncmVlcywgaXQncyAoMCwwKSBwb2ludCB3aWxsIGJlIG9uIHRoZQogICAgICogICAgIHRvcCByaWdodCBjb3JuZXIuCiAgICAgKgogICAgICogQHBhcmFtIHt7eDogbnVtYmVyLCB5OiBudW1iZXJ9fSBwb2ludCBQb2ludCBpbiBjb250YWluZXIgY29vcmRpbmF0ZXMuCiAgICAgKiBAcmV0dXJuICB7e3g6IG51bWJlciwgeTogbnVtYmVyfX0KICAgICAqLwogICAgdGhpcy50b09yaWdpbmFsQ29vcmRzID0gZnVuY3Rpb24ocG9pbnQpIHsKICAgICAgICBzd2l0Y2ggKHRoaXMuYW5nbGUoKSkgewogICAgICAgICAgICBjYXNlIDA6IHJldHVybiB7IHg6IHBvaW50LngsIHk6IHBvaW50LnkgfQogICAgICAgICAgICBjYXNlIDkwOiByZXR1cm4geyB4OiBwb2ludC55LCB5OiB0aGlzLmRpc3BsYXlfd2lkdGgoKSAtIHBvaW50LnggfQogICAgICAgICAgICBjYXNlIDE4MDogcmV0dXJuIHsgeDogdGhpcy5kaXNwbGF5X3dpZHRoKCkgLSBwb2ludC54LCB5OiB0aGlzLmRpc3BsYXlfaGVpZ2h0KCkgLSBwb2ludC55IH0KICAgICAgICAgICAgY2FzZSAyNzA6IHJldHVybiB7IHg6IHRoaXMuZGlzcGxheV9oZWlnaHQoKSAtIHBvaW50LnksIHk6IHBvaW50LnggfQogICAgICAgIH0KICAgIH07CgogICAgLyoqCiAgICAgKiBNYXAgcG9pbnQgaW4gdGhlIGltYWdlIGNvb3JkaW5hdGVzIHRvIHRoZSBwb2ludCBpbiBjb250YWluZXIgY29vcmRpbmF0ZXMuCiAgICAgKiAgICAgWW91IHdpbGwgZ2V0IGNvb3JkaW5hdGVzIG9mIHBvaW50IG9uIGNvbnRhaW5lciB3aXRoIHJlc3BlY3QgdG8gcm90YXRpb24uCiAgICAgKiAgICAgTm90ZSwgaWYgaW1hZ2Ugd2FzIHJvdGF0ZWQgOTAgZGVncmVlcywgaXQncyAoMCwwKSBwb2ludCB3aWxsIGJlIG9uIHRoZQogICAgICogICAgIHRvcCByaWdodCBjb3JuZXIuCiAgICAgKgogICAgICogQHBhcmFtIHt7eDogbnVtYmVyLCB5OiBudW1iZXJ9fSBwb2ludCBQb2ludCBpbiBjb250YWluZXIgY29vcmRpbmF0ZXMuCiAgICAgKiBAcmV0dXJuICB7e3g6IG51bWJlciwgeTogbnVtYmVyfX0KICAgICAqLwogICAgdGhpcy50b1JlYWxDb29yZHMgPSBmdW5jdGlvbihwb2ludCkgewogICAgICAgIHN3aXRjaCAodGhpcy5hbmdsZSgpKSB7CiAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIHsgeDogdGhpcy54KCkgKyBwb2ludC54LCB5OiB0aGlzLnkoKSArIHBvaW50LnkgfQogICAgICAgICAgICBjYXNlIDkwOiByZXR1cm4geyB4OiB0aGlzLngoKSArIHRoaXMuZGlzcGxheV93aWR0aCgpIC0gcG9pbnQueSwgeTogdGhpcy55KCkgKyBwb2ludC54fQogICAgICAgICAgICBjYXNlIDE4MDogcmV0dXJuIHsgeDogdGhpcy54KCkgKyB0aGlzLmRpc3BsYXlfd2lkdGgoKSAtIHBvaW50LngsIHk6IHRoaXMueSgpICsgdGhpcy5kaXNwbGF5X2hlaWdodCgpIC0gcG9pbnQueX0KICAgICAgICAgICAgY2FzZSAyNzA6IHJldHVybiB7IHg6IHRoaXMueCgpICsgcG9pbnQueSwgeTogdGhpcy55KCkgKyB0aGlzLmRpc3BsYXlfaGVpZ2h0KCkgLSBwb2ludC54fQogICAgICAgIH0KICAgIH07CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIHtqUXVlcnl9IFJldHVybiBpbWFnZSBub2RlLiB0aGlzIGlzIG5lZWRlZCB0byBhZGQgZXZlbnQgaGFuZGxlcnMuCiAgICAgKi8KICAgIHRoaXMub2JqZWN0ID0gc2V0dGVyKGpRdWVyeS5ub29wLAogICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuX2ltZzsgfSk7CgogICAgLyoqCiAgICAgKiBDaGFuZ2UgaW1hZ2UgcHJvcGVydGllcy4KICAgICAqCiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGlzcF93IERpc3BsYXkgd2lkdGg7CiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGlzcF9oIERpc3BsYXkgaGVpZ2h0OwogICAgICogQHBhcmFtIHtudW1iZXJ9IHgKICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5CiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNraXBfYW5pbWF0aW9uIElmIHRydWUsIHRoZSBhbmltYXRpb24gd2lsbCBiZSBza2lwZWQgZGVzcGl0ZSB0aGUKICAgICAqICAgICB2YWx1ZSBzZXQgaW4gY29uc3RydWN0b3IuCiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9uPX0gY29tcGxldGUgQ2FsbCBiYWNrIHdpbGwgYmUgZmlyZWQgd2hlbiB6b29tIHdpbGwgYmUgY29tcGxldGUuCiAgICAgKi8KICAgIHRoaXMuc2V0SW1hZ2VQcm9wcyA9IGZ1bmN0aW9uKGRpc3BfdywgZGlzcF9oLCB4LCB5LCBza2lwX2FuaW1hdGlvbiwgY29tcGxldGUpIHsKICAgICAgICBjb21wbGV0ZSA9IGNvbXBsZXRlIHx8IGpRdWVyeS5ub29wOwoKICAgICAgICB0aGlzLmRpc3BsYXlfd2lkdGgoZGlzcF93KTsKICAgICAgICB0aGlzLmRpc3BsYXlfaGVpZ2h0KGRpc3BfaCk7CiAgICAgICAgdGhpcy54KHgsIHRydWUpOwogICAgICAgIHRoaXMueSh5LCB0cnVlKTsKCiAgICAgICAgdmFyIHcgPSB0aGlzLl9zd2FwRGltZW5zaW9ucyA/IGRpc3BfaCA6IGRpc3BfdzsKICAgICAgICB2YXIgaCA9IHRoaXMuX3N3YXBEaW1lbnNpb25zID8gZGlzcF93IDogZGlzcF9oOwoKICAgICAgICB2YXIgcGFyYW1zID0gewogICAgICAgICAgICB3aWR0aDogdywKICAgICAgICAgICAgaGVpZ2h0OiBoLAogICAgICAgICAgICB0b3A6IHkgLSAodGhpcy5fc3dhcERpbWVuc2lvbnMgPyB0aGlzLmRpc3BsYXlfZGlmZigpIC8gMiA6IDApICsgInB4IiwKICAgICAgICAgICAgbGVmdDogeCArICh0aGlzLl9zd2FwRGltZW5zaW9ucyA/IHRoaXMuZGlzcGxheV9kaWZmKCkgLyAyIDogMCkgKyAicHgiCiAgICAgICAgfTsKCiAgICAgICAgaWYgKHVzZUllVHJhbnNmb3JtcykgewogICAgICAgICAgICBqUXVlcnkuZXh0ZW5kKHBhcmFtcywgewogICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogaWVUcmFuc2Zvcm1zW3RoaXMuYW5nbGUoKV0ubWFyZ2luTGVmdCAqIHRoaXMuZGlzcGxheV9kaWZmKCkgLyAyLAogICAgICAgICAgICAgICAgbWFyZ2luVG9wOiBpZVRyYW5zZm9ybXNbdGhpcy5hbmdsZSgpXS5tYXJnaW5Ub3AgKiB0aGlzLmRpc3BsYXlfZGlmZigpIC8gMgogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgIHZhciBzd2FwRGltcyA9IHRoaXMuX3N3YXBEaW1lbnNpb25zLAogICAgICAgICAgICBpbWcgPSB0aGlzLl9pbWc7CgogICAgICAgIC8vaGVyZSB3ZSBjb21lOiBhbm90aGVyIElFIG9kZG5lc3MuIElmIGltYWdlIGlzIHJvdGF0ZWQgOTAgZGVncmVlcyB3aXRoIGEgZmlsdGVyLCB0aGFuCiAgICAgICAgLy93aWR0aCBhbmQgaGVpZ2h0IGdldHRlcnMgcmV0dXJuIHJlYWwgd2lkdGggYW5kIGhlaWdodCBvZiByb3RhdGVkIGltYWdlLiBUaGUgYmFkIG5ld3MKICAgICAgICAvL2lzIHRoYXQgdG8gc2V0IGhlaWdodCB5b3UgbmVlZCB0byBzZXQgYSB3aWR0aCBhbmQgdmljZSB2ZXJzYS4gRnVjayBJRS4KICAgICAgICAvL1NvLCBpbiB0aGlzIGNhc2Ugd2UgaGF2ZSB0byBhbmltYXRlIHdpZHRoIGFuZCBoZWlnaHQgbWFudWFsbHkuCiAgICAgICAgaWYodXNlSWVUcmFuc2Zvcm1zICYmIHN3YXBEaW1zKSB7CiAgICAgICAgICAgIHZhciBpZWggPSB0aGlzLl9pbWcud2lkdGgoKSwKICAgICAgICAgICAgICAgIGlldyA9IHRoaXMuX2ltZy5oZWlnaHQoKSwKICAgICAgICAgICAgICAgIGllZGggPSBwYXJhbXMuaGVpZ2h0IC0gaWVoOwogICAgICAgICAgICAgICAgaWVkdyA9IHBhcmFtcy53aWR0aCAtIGlldzsKCiAgICAgICAgICAgIGRlbGV0ZSBwYXJhbXMud2lkdGg7CiAgICAgICAgICAgIGRlbGV0ZSBwYXJhbXMuaGVpZ2h0OwogICAgICAgIH0KCiAgICAgICAgaWYgKHRoaXMuX2RvX2FuaW0gJiYgIXNraXBfYW5pbWF0aW9uKSB7CiAgICAgICAgICAgIHRoaXMuX2ltZy5zdG9wKHRydWUpCiAgICAgICAgICAgICAgICAuYW5pbWF0ZShwYXJhbXMsIHsKICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwLAogICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiBjb21wbGV0ZSwKICAgICAgICAgICAgICAgICAgICBzdGVwOiBmdW5jdGlvbihub3csIGZ4KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHVzZUllVHJhbnNmb3JtcyAmJiBzd2FwRGltcyAmJiAoZngucHJvcCA9PT0gJ3RvcCcpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGVyY2VudCA9IChub3cgLSBmeC5zdGFydCkgLyAoZnguZW5kIC0gZnguc3RhcnQpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZy5oZWlnaHQoaWVoICsgaWVkaCAqIHBlcmNlbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nLndpZHRoKGlldyArIGllZHcgKiBwZXJjZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZy5jc3MoJ3RvcCcsIG5vdyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9pbWcuY3NzKHBhcmFtcyk7CiAgICAgICAgICAgIHNldFRpbWVvdXQoY29tcGxldGUsIDApOyAvL2JvdGggaWYgYnJhbmNoZXMgc2hvdWxkIGJlaGF2ZSBlcXVhbGx5LgogICAgICAgIH0KICAgIH07CgogICAgLy9pZiB3ZSBzZXQgaW1hZ2UgY29vcmRpbmF0ZXMgd2UgbmVlZCB0byBiZSBzdXJlIHRoYXQgbm8gYW5pbWF0aW9uIGlzIGFjdGl2ZSBhdG0KICAgIHRoaXMuX2ZpbmlzaEFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLl9pbWcuc3RvcCh0cnVlLCB0cnVlKTsKICAgIH0KCn0pLmFwcGx5KCQudWkuaXZpZXdlci5JbWFnZU9iamVjdC5wcm90b3R5cGUpOwoKCgp2YXIgdXRpbCA9IHsKICAgIHNjYWxlVmFsdWU6IGZ1bmN0aW9uKHZhbHVlLCB0b1pvb20pCiAgICB7CiAgICAgICAgcmV0dXJuIHZhbHVlICogdG9ab29tIC8gMTAwOwogICAgfSwKCiAgICBkZXNjYWxlVmFsdWU6IGZ1bmN0aW9uKHZhbHVlLCBmcm9tWm9vbSkKICAgIHsKICAgICAgICByZXR1cm4gdmFsdWUgKiAxMDAgLyBmcm9tWm9vbTsKICAgIH0KfTsKCiB9ICkoIGpRdWVyeSwgdW5kZWZpbmVkICk7Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/js/jquery.iviewer.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogaXZpZXdlciBXaWRnZXQgZm9yIGpRdWVyeSBVSQogKiBodHRwczovL2dpdGh1Yi5jb20vY2FuM3AvaXZpZXdlcgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDEyIERtaXRyeSBQZXRyb3YKICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMuCiAqICAtIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCiAqICAtIGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbAogKgogKiBBdXRob3I6IERtaXRyeSBQZXRyb3YKICogVmVyc2lvbjogMC43LjcKICovCihmdW5jdGlvbigkLHVuZGVmaW5lZCl7dmFyIG1vdXNlRXZlbnRzPXt0b3VjaHN0YXJ0OiJtb3VzZWRvd24iLHRvdWNobW92ZToibW91c2Vtb3ZlIix0b3VjaGVuZDoibW91c2V1cCJ9LGdlc3R1cmVzU3VwcG9ydD0ib25nZXN0dXJlc3RhcnQiaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZnVuY3Rpb24gbWFrZU1vdXNlRXZlbnQoZXZlbnQpe3ZhciB0b3VjaD1ldmVudC5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdO3JldHVybiAkLmV4dGVuZChldmVudCx7dHlwZTptb3VzZUV2ZW50c1tldmVudC50eXBlXSx3aGljaDoxLHBhZ2VYOnRvdWNoLnBhZ2VYLHBhZ2VZOnRvdWNoLnBhZ2VZLHNjcmVlblg6dG91Y2guc2NyZWVuWCxzY3JlZW5ZOnRvdWNoLnNjcmVlblksY2xpZW50WDp0b3VjaC5jbGllbnRYLGNsaWVudFk6dG91Y2guY2xpZW50WSxpc1RvdWNoRXZlbnQ6dHJ1ZX0pfXZhciBtb3VzZVByb3RvPSQudWkubW91c2UucHJvdG90eXBlLF9tb3VzZUluaXQ9JC51aS5tb3VzZS5wcm90b3R5cGUuX21vdXNlSW5pdDsKbW91c2VQcm90by5fbW91c2VJbml0PWZ1bmN0aW9uKCl7dmFyIHNlbGY9dGhpcztzZWxmLl90b3VjaEFjdGl2ZT1mYWxzZTt0aGlzLmVsZW1lbnQuYmluZCgidG91Y2hzdGFydC4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihldmVudCl7aWYoZ2VzdHVyZXNTdXBwb3J0JiZldmVudC5vcmlnaW5hbEV2ZW50LnRvdWNoZXMubGVuZ3RoPjEpcmV0dXJuO3NlbGYuX3RvdWNoQWN0aXZlPXRydWU7cmV0dXJuIHNlbGYuX21vdXNlRG93bihtYWtlTW91c2VFdmVudChldmVudCkpfSk7dmFyIHNlbGY9dGhpczt0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZT1mdW5jdGlvbihldmVudCl7aWYoZ2VzdHVyZXNTdXBwb3J0JiZldmVudC5vcmlnaW5hbEV2ZW50LnRvdWNoZXMmJmV2ZW50Lm9yaWdpbmFsRXZlbnQudG91Y2hlcy5sZW5ndGg+MSlyZXR1cm47aWYoc2VsZi5fdG91Y2hBY3RpdmUpcmV0dXJuIHNlbGYuX21vdXNlTW92ZShtYWtlTW91c2VFdmVudChldmVudCkpfTt0aGlzLl9tb3VzZVVwRGVsZWdhdGU9CmZ1bmN0aW9uKGV2ZW50KXtpZihzZWxmLl90b3VjaEFjdGl2ZSl7c2VsZi5fdG91Y2hBY3RpdmU9ZmFsc2U7cmV0dXJuIHNlbGYuX21vdXNlVXAobWFrZU1vdXNlRXZlbnQoZXZlbnQpKX19OyQoZG9jdW1lbnQpLmJpbmQoInRvdWNobW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkuYmluZCgidG91Y2hlbmQuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKTtfbW91c2VJbml0LmFwcGx5KHRoaXMpfTt2YXIgc2V0dGVyPWZ1bmN0aW9uKHNldHRlcixnZXR0ZXIpe3JldHVybiBmdW5jdGlvbih2YWwpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0wKXJldHVybiBnZXR0ZXIuYXBwbHkodGhpcyk7ZWxzZSBzZXR0ZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIGllVHJhbnNmb3Jtcz17IjAiOnttYXJnaW5MZWZ0OjAsbWFyZ2luVG9wOjAsZmlsdGVyOidwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuTWF0cml4KE0xMT0xLCBNMTI9MCwgTTIxPTAsIE0yMj0xLCBTaXppbmdNZXRob2Q9ImF1dG8gZXhwYW5kIiknfSwKOTA6e21hcmdpbkxlZnQ6LTEsbWFyZ2luVG9wOjEsZmlsdGVyOidwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuTWF0cml4KE0xMT0wLCBNMTI9LTEsIE0yMT0xLCBNMjI9MCwgU2l6aW5nTWV0aG9kPSJhdXRvIGV4cGFuZCIpJ30sMTgwOnttYXJnaW5MZWZ0OjAsbWFyZ2luVG9wOjAsZmlsdGVyOidwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuTWF0cml4KE0xMT0tMSwgTTEyPTAsIE0yMT0wLCBNMjI9LTEsIFNpemluZ01ldGhvZD0iYXV0byBleHBhbmQiKSd9LDI3MDp7bWFyZ2luTGVmdDotMSxtYXJnaW5Ub3A6MSxmaWx0ZXI6J3Byb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoTTExPTAsIE0xMj0xLCBNMjE9LTEsIE0yMj0wLCBTaXppbmdNZXRob2Q9ImF1dG8gZXhwYW5kIiknfX0sdXNlSWVUcmFuc2Zvcm1zPWZ1bmN0aW9uKCl7dmFyIGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2VsLnN0eWxlLmNzc1RleHQ9WyItbXMtIiwKIiIsIiJdLmpvaW4oImZpbHRlcjpibHVyKDJweCk7ICIpO3JldHVybiEhZWwuc3R5bGUuY3NzVGV4dCYmZG9jdW1lbnQuZG9jdW1lbnRNb2RlPDl9KCk7JC53aWRnZXQoInVpLml2aWV3ZXIiLCQudWkubW91c2Use3dpZGdldEV2ZW50UHJlZml4OiJpdmlld2VyIixvcHRpb25zOnt6b29tOiJmaXQiLHpvb21fYmFzZToxMDAsem9vbV9tYXg6ODAwLHpvb21fbWluOjI1LHpvb21fZGVsdGE6MS40LHpvb21fYW5pbWF0aW9uOnRydWUsdWlfZGlzYWJsZWQ6ZmFsc2UsbW91c2V3aGVlbDp0cnVlLHVwZGF0ZV9vbl9yZXNpemU6dHJ1ZSxvblpvb206alF1ZXJ5Lm5vb3Asb25BZnRlclpvb206alF1ZXJ5Lm5vb3Asb25TdGFydERyYWc6alF1ZXJ5Lm5vb3Asb25EcmFnOmpRdWVyeS5ub29wLG9uU3RvcERyYWc6alF1ZXJ5Lm5vb3Asb25Nb3VzZU1vdmU6alF1ZXJ5Lm5vb3Asb25DbGljazpqUXVlcnkubm9vcCxvblN0YXJ0TG9hZDpudWxsLG9uRmluaXNoTG9hZDpudWxsLG9uRXJyb3JMb2FkOm51bGx9LApfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIG1lPXRoaXM7dGhpcy5keD0wO3RoaXMuZHk9MDt0aGlzLmltZ19vYmplY3Q9e307dGhpcy56b29tX29iamVjdD17fTt0aGlzLl9hbmdsZT0wO3RoaXMuY3VycmVudF96b29tPXRoaXMub3B0aW9ucy56b29tO2lmKHRoaXMub3B0aW9ucy5zcmM9PT1udWxsKXJldHVybjt0aGlzLmNvbnRhaW5lcj10aGlzLmVsZW1lbnQ7dGhpcy5fdXBkYXRlQ29udGFpbmVySW5mbygpO3RoaXMuY29udGFpbmVyLmNzcygib3ZlcmZsb3ciLCJoaWRkZW4iKTtpZih0aGlzLm9wdGlvbnMudXBkYXRlX29uX3Jlc2l6ZT09dHJ1ZSkkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCl7bWUudXBkYXRlKCl9KTt0aGlzLmltZ19vYmplY3Q9bmV3ICQudWkuaXZpZXdlci5JbWFnZU9iamVjdCh0aGlzLm9wdGlvbnMuem9vbV9hbmltYXRpb24pO2lmKHRoaXMub3B0aW9ucy5tb3VzZXdoZWVsKXt0aGlzLmNvbnRhaW5lci5iaW5kKCJtb3VzZXdoZWVsLml2aWV3ZXIiLGZ1bmN0aW9uKGV2LApkZWx0YSl7dmFyIHpvb209ZGVsdGE+MD8xOi0xLGNvbnRhaW5lcl9vZmZzZXQ9bWUuY29udGFpbmVyLm9mZnNldCgpLG1vdXNlX3Bvcz17eDpldi5wYWdlWC1jb250YWluZXJfb2Zmc2V0LmxlZnQseTpldi5wYWdlWS1jb250YWluZXJfb2Zmc2V0LnRvcH07bWUuem9vbV9ieSh6b29tLG1vdXNlX3Bvcyk7cmV0dXJuIGZhbHNlfSk7aWYoZ2VzdHVyZXNTdXBwb3J0KXt2YXIgZ2VzdHVyZVRocm90dGxlPStuZXcgRGF0ZTt2YXIgb3JpZ2luYWxTY2FsZSxvcmlnaW5hbENlbnRlcjt0aGlzLmltZ19vYmplY3Qub2JqZWN0KCkuYmluZCgidG91Y2hzdGFydCIsZnVuY3Rpb24oZXYpe29yaWdpbmFsU2NhbGU9bWUuY3VycmVudF96b29tO3ZhciB0b3VjaGVzPWV2Lm9yaWdpbmFsRXZlbnQudG91Y2hlcyxjb250YWluZXJfb2Zmc2V0O2lmKHRvdWNoZXMubGVuZ3RoPT0yKXtjb250YWluZXJfb2Zmc2V0PW1lLmNvbnRhaW5lci5vZmZzZXQoKTtvcmlnaW5hbENlbnRlcj17eDoodG91Y2hlc1swXS5wYWdlWCsKdG91Y2hlc1sxXS5wYWdlWCkvMi1jb250YWluZXJfb2Zmc2V0LmxlZnQseToodG91Y2hlc1swXS5wYWdlWSt0b3VjaGVzWzFdLnBhZ2VZKS8yLWNvbnRhaW5lcl9vZmZzZXQudG9wfX1lbHNlIG9yaWdpbmFsQ2VudGVyPW51bGx9KS5iaW5kKCJnZXN0dXJlY2hhbmdlIixmdW5jdGlvbihldil7dmFyIGQ9K25ldyBEYXRlO2lmKGQtZ2VzdHVyZVRocm90dGxlPDUwKXJldHVybjtnZXN0dXJlVGhyb3R0bGU9ZDt2YXIgem9vbT1vcmlnaW5hbFNjYWxlKmV2Lm9yaWdpbmFsRXZlbnQuc2NhbGU7bWUuc2V0X3pvb20oem9vbSxvcmlnaW5hbENlbnRlcik7ZXYucHJldmVudERlZmF1bHQoKX0pLmJpbmQoImdlc3R1cmVlbmQiLGZ1bmN0aW9uKGV2KXtvcmlnaW5hbENlbnRlcj1udWxsfSl9fXRoaXMuaW1nX29iamVjdC5vYmplY3QoKS5jbGljayhmdW5jdGlvbihlKXtyZXR1cm4gbWUuX2NsaWNrKGUpfSkucHJlcGVuZFRvKHRoaXMuY29udGFpbmVyKTt0aGlzLmNvbnRhaW5lci5iaW5kKCJtb3VzZW1vdmUiLApmdW5jdGlvbihldil7bWUuX2hhbmRsZU1vdXNlTW92ZShldil9KTt0aGlzLmxvYWRJbWFnZSh0aGlzLm9wdGlvbnMuc3JjKTtpZighdGhpcy5vcHRpb25zLnVpX2Rpc2FibGVkKXRoaXMuY3JlYXRldWkoKTt0aGlzLl9tb3VzZUluaXQoKX0sZGVzdHJveTpmdW5jdGlvbigpeyQuV2lkZ2V0LnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyk7dGhpcy5fbW91c2VEZXN0cm95KCk7dGhpcy5pbWdfb2JqZWN0Lm9iamVjdCgpLnJlbW92ZSgpO3RoaXMuY29udGFpbmVyLm9mZigiLml2aWV3ZXIiKTt0aGlzLmNvbnRhaW5lci5jc3MoIm92ZXJmbG93IiwiIil9LF91cGRhdGVDb250YWluZXJJbmZvOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLmhlaWdodD10aGlzLmNvbnRhaW5lci5oZWlnaHQoKTt0aGlzLm9wdGlvbnMud2lkdGg9dGhpcy5jb250YWluZXIud2lkdGgoKX0sdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlQ29udGFpbmVySW5mbygpO3RoaXMuc2V0Q29vcmRzKHRoaXMuaW1nX29iamVjdC54KCksCnRoaXMuaW1nX29iamVjdC55KCkpfSxsb2FkSW1hZ2U6ZnVuY3Rpb24oc3JjKXt0aGlzLmN1cnJlbnRfem9vbT10aGlzLm9wdGlvbnMuem9vbTt2YXIgbWU9dGhpczt0aGlzLl90cmlnZ2VyKCJvblN0YXJ0TG9hZCIsMCxzcmMpO3RoaXMuY29udGFpbmVyLmFkZENsYXNzKCJpdmlld2VyX2xvYWRpbmciKTt0aGlzLmltZ19vYmplY3QubG9hZChzcmMsZnVuY3Rpb24oKXttZS5faW1hZ2VMb2FkZWQoc3JjKX0sZnVuY3Rpb24oKXttZS5fdHJpZ2dlcigib25FcnJvckxvYWQiLDAsc3JjKX0pfSxfaW1hZ2VMb2FkZWQ6ZnVuY3Rpb24oc3JjKXt0aGlzLmNvbnRhaW5lci5yZW1vdmVDbGFzcygiaXZpZXdlcl9sb2FkaW5nIik7dGhpcy5jb250YWluZXIuYWRkQ2xhc3MoIml2aWV3ZXJfY3Vyc29yIik7aWYodGhpcy5vcHRpb25zLnpvb209PSJmaXQiKXRoaXMuZml0KHRydWUpO2Vsc2UgdGhpcy5zZXRfem9vbSh0aGlzLm9wdGlvbnMuem9vbSx0cnVlKTt0aGlzLl90cmlnZ2VyKCJvbkZpbmlzaExvYWQiLAowLHNyYyl9LGZpdDpmdW5jdGlvbihza2lwX2FuaW1hdGlvbil7dmFyIGFzcGVjdF9yYXRpbz10aGlzLmltZ19vYmplY3Qub3JpZ193aWR0aCgpL3RoaXMuaW1nX29iamVjdC5vcmlnX2hlaWdodCgpO3ZhciB3aW5kb3dfcmF0aW89dGhpcy5vcHRpb25zLndpZHRoL3RoaXMub3B0aW9ucy5oZWlnaHQ7dmFyIGNob29zZV9sZWZ0PWFzcGVjdF9yYXRpbz53aW5kb3dfcmF0aW87dmFyIG5ld196b29tPTA7aWYoY2hvb3NlX2xlZnQpbmV3X3pvb209dGhpcy5vcHRpb25zLndpZHRoL3RoaXMuaW1nX29iamVjdC5vcmlnX3dpZHRoKCkqMTAwO2Vsc2UgbmV3X3pvb209dGhpcy5vcHRpb25zLmhlaWdodC90aGlzLmltZ19vYmplY3Qub3JpZ19oZWlnaHQoKSoxMDA7dGhpcy5zZXRfem9vbShuZXdfem9vbSxza2lwX2FuaW1hdGlvbil9LGNlbnRlcjpmdW5jdGlvbigpe3RoaXMuc2V0Q29vcmRzKC1NYXRoLnJvdW5kKCh0aGlzLmltZ19vYmplY3QuZGlzcGxheV93aWR0aCgpLXRoaXMub3B0aW9ucy53aWR0aCkvCjIpLC1NYXRoLnJvdW5kKCh0aGlzLmltZ19vYmplY3QuZGlzcGxheV9oZWlnaHQoKS10aGlzLm9wdGlvbnMuaGVpZ2h0KS8yKSl9LG1vdmVUbzpmdW5jdGlvbih4LHkpe3ZhciBkeD14LU1hdGgucm91bmQodGhpcy5vcHRpb25zLndpZHRoLzIpO3ZhciBkeT15LU1hdGgucm91bmQodGhpcy5vcHRpb25zLmhlaWdodC8yKTt2YXIgbmV3X3g9dGhpcy5pbWdfb2JqZWN0LngoKS1keDt2YXIgbmV3X3k9dGhpcy5pbWdfb2JqZWN0LnkoKS1keTt0aGlzLnNldENvb3JkcyhuZXdfeCxuZXdfeSl9LGdldENvbnRhaW5lck9mZnNldDpmdW5jdGlvbigpe3JldHVybiBqUXVlcnkuZXh0ZW5kKHt9LHRoaXMuY29udGFpbmVyLm9mZnNldCgpKX0sc2V0Q29vcmRzOmZ1bmN0aW9uKHgseSl7aWYoIXRoaXMuaW1nX29iamVjdC5sb2FkZWQoKSlyZXR1cm47dmFyIGNvb3Jkcz10aGlzLl9jb3JyZWN0Q29vcmRzKHgseSk7dGhpcy5pbWdfb2JqZWN0LngoY29vcmRzLngpO3RoaXMuaW1nX29iamVjdC55KGNvb3Jkcy55KX0sCl9jb3JyZWN0Q29vcmRzOmZ1bmN0aW9uKHgseSl7eD1wYXJzZUludCh4LDEwKTt5PXBhcnNlSW50KHksMTApO2lmKHk+MCl5PTA7aWYoeD4wKXg9MDtpZih5K3RoaXMuaW1nX29iamVjdC5kaXNwbGF5X2hlaWdodCgpPHRoaXMub3B0aW9ucy5oZWlnaHQpeT10aGlzLm9wdGlvbnMuaGVpZ2h0LXRoaXMuaW1nX29iamVjdC5kaXNwbGF5X2hlaWdodCgpO2lmKHgrdGhpcy5pbWdfb2JqZWN0LmRpc3BsYXlfd2lkdGgoKTx0aGlzLm9wdGlvbnMud2lkdGgpeD10aGlzLm9wdGlvbnMud2lkdGgtdGhpcy5pbWdfb2JqZWN0LmRpc3BsYXlfd2lkdGgoKTtpZih0aGlzLmltZ19vYmplY3QuZGlzcGxheV93aWR0aCgpPD10aGlzLm9wdGlvbnMud2lkdGgpeD0tKHRoaXMuaW1nX29iamVjdC5kaXNwbGF5X3dpZHRoKCktdGhpcy5vcHRpb25zLndpZHRoKS8yO2lmKHRoaXMuaW1nX29iamVjdC5kaXNwbGF5X2hlaWdodCgpPD10aGlzLm9wdGlvbnMuaGVpZ2h0KXk9LSh0aGlzLmltZ19vYmplY3QuZGlzcGxheV9oZWlnaHQoKS0KdGhpcy5vcHRpb25zLmhlaWdodCkvMjtyZXR1cm57eDp4LHk6eX19LGNvbnRhaW5lclRvSW1hZ2U6ZnVuY3Rpb24oeCx5KXt2YXIgY29vcmRzPXt4OngtdGhpcy5pbWdfb2JqZWN0LngoKSx5OnktdGhpcy5pbWdfb2JqZWN0LnkoKX07Y29vcmRzPXRoaXMuaW1nX29iamVjdC50b09yaWdpbmFsQ29vcmRzKGNvb3Jkcyk7cmV0dXJue3g6dXRpbC5kZXNjYWxlVmFsdWUoY29vcmRzLngsdGhpcy5jdXJyZW50X3pvb20pLHk6dXRpbC5kZXNjYWxlVmFsdWUoY29vcmRzLnksdGhpcy5jdXJyZW50X3pvb20pfX0saW1hZ2VUb0NvbnRhaW5lcjpmdW5jdGlvbih4LHkpe3ZhciBjb29yZHM9e3g6dXRpbC5zY2FsZVZhbHVlKHgsdGhpcy5jdXJyZW50X3pvb20pLHk6dXRpbC5zY2FsZVZhbHVlKHksdGhpcy5jdXJyZW50X3pvb20pfTtyZXR1cm4gdGhpcy5pbWdfb2JqZWN0LnRvUmVhbENvb3Jkcyhjb29yZHMpfSxfZ2V0TW91c2VDb29yZHM6ZnVuY3Rpb24oZSl7dmFyIGNvbnRhaW5lck9mZnNldD10aGlzLmNvbnRhaW5lci5vZmZzZXQoKTsKY29vcmRzPXRoaXMuY29udGFpbmVyVG9JbWFnZShlLnBhZ2VYLWNvbnRhaW5lck9mZnNldC5sZWZ0LGUucGFnZVktY29udGFpbmVyT2Zmc2V0LnRvcCk7cmV0dXJuIGNvb3Jkc30sc2V0X3pvb206ZnVuY3Rpb24obmV3X3pvb20sc2tpcF9hbmltYXRpb24sem9vbV9jZW50ZXIpe2lmKHRoaXMuX3RyaWdnZXIoIm9uWm9vbSIsMCxuZXdfem9vbSk9PWZhbHNlKXJldHVybjtpZighdGhpcy5pbWdfb2JqZWN0LmxvYWRlZCgpKXJldHVybjt6b29tX2NlbnRlcj16b29tX2NlbnRlcnx8e3g6TWF0aC5yb3VuZCh0aGlzLm9wdGlvbnMud2lkdGgvMikseTpNYXRoLnJvdW5kKHRoaXMub3B0aW9ucy5oZWlnaHQvMil9O2lmKG5ld196b29tPHRoaXMub3B0aW9ucy56b29tX21pbiluZXdfem9vbT10aGlzLm9wdGlvbnMuem9vbV9taW47ZWxzZSBpZihuZXdfem9vbT50aGlzLm9wdGlvbnMuem9vbV9tYXgpbmV3X3pvb209dGhpcy5vcHRpb25zLnpvb21fbWF4O2lmKHRoaXMuY3VycmVudF96b29tPT0iZml0Iil7dmFyIG9sZF94PQp6b29tX2NlbnRlci54K01hdGgucm91bmQodGhpcy5pbWdfb2JqZWN0Lm9yaWdfd2lkdGgoKS8yKTt2YXIgb2xkX3k9em9vbV9jZW50ZXIueStNYXRoLnJvdW5kKHRoaXMuaW1nX29iamVjdC5vcmlnX2hlaWdodCgpLzIpO3RoaXMuY3VycmVudF96b29tPTEwMH1lbHNle3ZhciBvbGRfeD0tdGhpcy5pbWdfb2JqZWN0LngoKSt6b29tX2NlbnRlci54O3ZhciBvbGRfeT0tdGhpcy5pbWdfb2JqZWN0LnkoKSt6b29tX2NlbnRlci55fXZhciBuZXdfd2lkdGg9dXRpbC5zY2FsZVZhbHVlKHRoaXMuaW1nX29iamVjdC5vcmlnX3dpZHRoKCksbmV3X3pvb20pO3ZhciBuZXdfaGVpZ2h0PXV0aWwuc2NhbGVWYWx1ZSh0aGlzLmltZ19vYmplY3Qub3JpZ19oZWlnaHQoKSxuZXdfem9vbSk7dmFyIG5ld194PXV0aWwuc2NhbGVWYWx1ZSh1dGlsLmRlc2NhbGVWYWx1ZShvbGRfeCx0aGlzLmN1cnJlbnRfem9vbSksbmV3X3pvb20pO3ZhciBuZXdfeT11dGlsLnNjYWxlVmFsdWUodXRpbC5kZXNjYWxlVmFsdWUob2xkX3ksCnRoaXMuY3VycmVudF96b29tKSxuZXdfem9vbSk7bmV3X3g9em9vbV9jZW50ZXIueC1uZXdfeDtuZXdfeT16b29tX2NlbnRlci55LW5ld195O25ld193aWR0aD1NYXRoLmZsb29yKG5ld193aWR0aCk7bmV3X2hlaWdodD1NYXRoLmZsb29yKG5ld19oZWlnaHQpO25ld194PU1hdGguZmxvb3IobmV3X3gpO25ld195PU1hdGguZmxvb3IobmV3X3kpO3RoaXMuaW1nX29iamVjdC5kaXNwbGF5X3dpZHRoKG5ld193aWR0aCk7dGhpcy5pbWdfb2JqZWN0LmRpc3BsYXlfaGVpZ2h0KG5ld19oZWlnaHQpO3ZhciBjb29yZHM9dGhpcy5fY29ycmVjdENvb3JkcyhuZXdfeCxuZXdfeSksc2VsZj10aGlzO3RoaXMuaW1nX29iamVjdC5zZXRJbWFnZVByb3BzKG5ld193aWR0aCxuZXdfaGVpZ2h0LGNvb3Jkcy54LGNvb3Jkcy55LHNraXBfYW5pbWF0aW9uLGZ1bmN0aW9uKCl7c2VsZi5fdHJpZ2dlcigib25BZnRlclpvb20iLDAsbmV3X3pvb20pfSk7dGhpcy5jdXJyZW50X3pvb209bmV3X3pvb207dGhpcy51cGRhdGVfc3RhdHVzKCl9LAp6b29tX2J5OmZ1bmN0aW9uKGRlbHRhLHpvb21fY2VudGVyKXt2YXIgY2xvc2VzdF9yYXRlPXRoaXMuZmluZF9jbG9zZXN0X3pvb21fcmF0ZSh0aGlzLmN1cnJlbnRfem9vbSk7dmFyIG5leHRfcmF0ZT1jbG9zZXN0X3JhdGUrZGVsdGE7dmFyIG5leHRfem9vbT10aGlzLm9wdGlvbnMuem9vbV9iYXNlKk1hdGgucG93KHRoaXMub3B0aW9ucy56b29tX2RlbHRhLG5leHRfcmF0ZSk7aWYoZGVsdGE+MCYmbmV4dF96b29tPHRoaXMuY3VycmVudF96b29tKW5leHRfem9vbSo9dGhpcy5vcHRpb25zLnpvb21fZGVsdGE7aWYoZGVsdGE8MCYmbmV4dF96b29tPnRoaXMuY3VycmVudF96b29tKW5leHRfem9vbS89dGhpcy5vcHRpb25zLnpvb21fZGVsdGE7dGhpcy5zZXRfem9vbShuZXh0X3pvb20sdW5kZWZpbmVkLHpvb21fY2VudGVyKX0sYW5nbGU6ZnVuY3Rpb24oZGVnLGFicyl7aWYoYXJndW1lbnRzLmxlbmd0aD09PTApcmV0dXJuIHRoaXMuaW1nX29iamVjdC5hbmdsZSgpO2lmKGRlZzwtMjcwfHwKZGVnPjI3MHx8ZGVnJTkwIT09MClyZXR1cm47aWYoIWFicylkZWcrPXRoaXMuaW1nX29iamVjdC5hbmdsZSgpO2lmKGRlZzwwKWRlZys9MzYwO2lmKGRlZz49MzYwKWRlZy09MzYwO2lmKGRlZz09PXRoaXMuaW1nX29iamVjdC5hbmdsZSgpKXJldHVybjt0aGlzLmltZ19vYmplY3QuYW5nbGUoZGVnKTt0aGlzLmNlbnRlcigpO3RoaXMuX3RyaWdnZXIoImFuZ2xlIiwwLHthbmdsZTp0aGlzLmltZ19vYmplY3QuYW5nbGUoKX0pfSxmaW5kX2Nsb3Nlc3Rfem9vbV9yYXRlOmZ1bmN0aW9uKHZhbHVlKXtpZih2YWx1ZT09dGhpcy5vcHRpb25zLnpvb21fYmFzZSlyZXR1cm4gMDtmdW5jdGlvbiBkaXYodmFsMSx2YWwyKXtyZXR1cm4gdmFsMS92YWwyfWZ1bmN0aW9uIG11bCh2YWwxLHZhbDIpe3JldHVybiB2YWwxKnZhbDJ9dmFyIGZ1bmM9dmFsdWU+dGhpcy5vcHRpb25zLnpvb21fYmFzZT9tdWw6ZGl2O3ZhciBzZ249dmFsdWU+dGhpcy5vcHRpb25zLnpvb21fYmFzZT8xOi0xO3ZhciBtbHRwbHI9CnRoaXMub3B0aW9ucy56b29tX2RlbHRhO3ZhciByYXRlPTE7d2hpbGUoTWF0aC5hYnMoZnVuYyh0aGlzLm9wdGlvbnMuem9vbV9iYXNlLE1hdGgucG93KG1sdHBscixyYXRlKSktdmFsdWUpPk1hdGguYWJzKGZ1bmModGhpcy5vcHRpb25zLnpvb21fYmFzZSxNYXRoLnBvdyhtbHRwbHIscmF0ZSsxKSktdmFsdWUpKXJhdGUrKztyZXR1cm4gc2duKnJhdGV9LHVwZGF0ZV9zdGF0dXM6ZnVuY3Rpb24oKXtpZighdGhpcy5vcHRpb25zLnVpX2Rpc2FibGVkKXt2YXIgcGVyY2VudD1NYXRoLnJvdW5kKDEwMCp0aGlzLmltZ19vYmplY3QuZGlzcGxheV9oZWlnaHQoKS90aGlzLmltZ19vYmplY3Qub3JpZ19oZWlnaHQoKSk7aWYocGVyY2VudCl0aGlzLnpvb21fb2JqZWN0Lmh0bWwocGVyY2VudCsiJSIpfX0saW5mbzpmdW5jdGlvbihwYXJhbSx3aXRob3V0Um90YXRpb24pe2lmKCFwYXJhbSlyZXR1cm47c3dpdGNoKHBhcmFtKXtjYXNlICJvcmlnX3dpZHRoIjpjYXNlICJvcmlnX2hlaWdodCI6aWYod2l0aG91dFJvdGF0aW9uKXJldHVybiB0aGlzLmltZ19vYmplY3QuYW5nbGUoKSUKMTgwPT09MD90aGlzLmltZ19vYmplY3RbcGFyYW1dKCk6cGFyYW09PT0ib3JpZ193aWR0aCI/dGhpcy5pbWdfb2JqZWN0Lm9yaWdfaGVpZ2h0KCk6dGhpcy5pbWdfb2JqZWN0Lm9yaWdfd2lkdGgoKTtlbHNlIHJldHVybiB0aGlzLmltZ19vYmplY3RbcGFyYW1dKCk7Y2FzZSAiZGlzcGxheV93aWR0aCI6Y2FzZSAiZGlzcGxheV9oZWlnaHQiOmNhc2UgImFuZ2xlIjpyZXR1cm4gdGhpcy5pbWdfb2JqZWN0W3BhcmFtXSgpO2Nhc2UgInpvb20iOnJldHVybiB0aGlzLmN1cnJlbnRfem9vbTtjYXNlICJzcmMiOnJldHVybiB0aGlzLmltZ19vYmplY3Qub2JqZWN0KCkuYXR0cigic3JjIik7Y2FzZSAiY29vcmRzIjpyZXR1cm57eDp0aGlzLmltZ19vYmplY3QueCgpLHk6dGhpcy5pbWdfb2JqZWN0LnkoKX19fSxfbW91c2VTdGFydDpmdW5jdGlvbihlKXskLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VTdGFydC5jYWxsKHRoaXMsZSk7aWYodGhpcy5fdHJpZ2dlcigib25TdGFydERyYWciLDAsCnRoaXMuX2dldE1vdXNlQ29vcmRzKGUpKT09PWZhbHNlKXJldHVybiBmYWxzZTt0aGlzLmNvbnRhaW5lci5hZGRDbGFzcygiaXZpZXdlcl9kcmFnX2N1cnNvciIpO3RoaXMuX2RyYWdJbml0aWFsaXplZD0hKGUub3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlcyYmZS5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aD09MSk7dGhpcy5keD1lLnBhZ2VYLXRoaXMuaW1nX29iamVjdC54KCk7dGhpcy5keT1lLnBhZ2VZLXRoaXMuaW1nX29iamVjdC55KCk7cmV0dXJuIHRydWV9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRydWV9LF9oYW5kbGVNb3VzZU1vdmU6ZnVuY3Rpb24oZSl7dGhpcy5fdHJpZ2dlcigib25Nb3VzZU1vdmUiLGUsdGhpcy5fZ2V0TW91c2VDb29yZHMoZSkpfSxfbW91c2VEcmFnOmZ1bmN0aW9uKGUpeyQudWkubW91c2UucHJvdG90eXBlLl9tb3VzZURyYWcuY2FsbCh0aGlzLGUpO2lmKCF0aGlzLl9kcmFnSW5pdGlhbGl6ZWQpe3RoaXMuZHg9CmUucGFnZVgtdGhpcy5pbWdfb2JqZWN0LngoKTt0aGlzLmR5PWUucGFnZVktdGhpcy5pbWdfb2JqZWN0LnkoKTt0aGlzLl9kcmFnSW5pdGlhbGl6ZWQ9dHJ1ZX12YXIgbHRvcD1lLnBhZ2VZLXRoaXMuZHk7dmFyIGxsZWZ0PWUucGFnZVgtdGhpcy5keDt0aGlzLnNldENvb3JkcyhsbGVmdCxsdG9wKTt0aGlzLl90cmlnZ2VyKCJvbkRyYWciLGUsdGhpcy5fZ2V0TW91c2VDb29yZHMoZSkpO3JldHVybiBmYWxzZX0sX21vdXNlU3RvcDpmdW5jdGlvbihlKXskLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VTdG9wLmNhbGwodGhpcyxlKTt0aGlzLmNvbnRhaW5lci5yZW1vdmVDbGFzcygiaXZpZXdlcl9kcmFnX2N1cnNvciIpO3RoaXMuX3RyaWdnZXIoIm9uU3RvcERyYWciLDAsdGhpcy5fZ2V0TW91c2VDb29yZHMoZSkpfSxfY2xpY2s6ZnVuY3Rpb24oZSl7dGhpcy5fdHJpZ2dlcigib25DbGljayIsMCx0aGlzLl9nZXRNb3VzZUNvb3JkcyhlKSl9LGNyZWF0ZXVpOmZ1bmN0aW9uKCl7dmFyIG1lPQp0aGlzOyQoIjxkaXY+Iix7ImNsYXNzIjoiaXZpZXdlcl96b29tX2luIGl2aWV3ZXJfY29tbW9uIGl2aWV3ZXJfYnV0dG9uIn0pLmJpbmQoIm1vdXNlZG93biB0b3VjaHN0YXJ0IixmdW5jdGlvbigpe21lLnpvb21fYnkoMSk7cmV0dXJuIGZhbHNlfSkuYXBwZW5kVG8odGhpcy5jb250YWluZXIpOyQoIjxkaXY+Iix7ImNsYXNzIjoiaXZpZXdlcl96b29tX291dCBpdmlld2VyX2NvbW1vbiBpdmlld2VyX2J1dHRvbiJ9KS5iaW5kKCJtb3VzZWRvd24gdG91Y2hzdGFydCIsZnVuY3Rpb24oKXttZS56b29tX2J5KC0xKTtyZXR1cm4gZmFsc2V9KS5hcHBlbmRUbyh0aGlzLmNvbnRhaW5lcik7JCgiPGRpdj4iLHsiY2xhc3MiOiJpdmlld2VyX3pvb21femVybyBpdmlld2VyX2NvbW1vbiBpdmlld2VyX2J1dHRvbiJ9KS5iaW5kKCJtb3VzZWRvd24gdG91Y2hzdGFydCIsZnVuY3Rpb24oKXttZS5zZXRfem9vbSgxMDApO3JldHVybiBmYWxzZX0pLmFwcGVuZFRvKHRoaXMuY29udGFpbmVyKTskKCI8ZGl2PiIsCnsiY2xhc3MiOiJpdmlld2VyX3pvb21fZml0IGl2aWV3ZXJfY29tbW9uIGl2aWV3ZXJfYnV0dG9uIn0pLmJpbmQoIm1vdXNlZG93biB0b3VjaHN0YXJ0IixmdW5jdGlvbigpe21lLmZpdCh0aGlzKTtyZXR1cm4gZmFsc2V9KS5hcHBlbmRUbyh0aGlzLmNvbnRhaW5lcik7dGhpcy56b29tX29iamVjdD0kKCI8ZGl2PiIpLmFkZENsYXNzKCJpdmlld2VyX3pvb21fc3RhdHVzIGl2aWV3ZXJfY29tbW9uIikuYXBwZW5kVG8odGhpcy5jb250YWluZXIpOyQoIjxkaXY+Iix7ImNsYXNzIjoiaXZpZXdlcl9yb3RhdGVfbGVmdCBpdmlld2VyX2NvbW1vbiBpdmlld2VyX2J1dHRvbiJ9KS5iaW5kKCJtb3VzZWRvd24gdG91Y2hzdGFydCIsZnVuY3Rpb24oKXttZS5hbmdsZSgtOTApO3JldHVybiBmYWxzZX0pLmFwcGVuZFRvKHRoaXMuY29udGFpbmVyKTskKCI8ZGl2PiIseyJjbGFzcyI6Iml2aWV3ZXJfcm90YXRlX3JpZ2h0IGl2aWV3ZXJfY29tbW9uIGl2aWV3ZXJfYnV0dG9uIn0pLmJpbmQoIm1vdXNlZG93biB0b3VjaHN0YXJ0IiwKZnVuY3Rpb24oKXttZS5hbmdsZSg5MCk7cmV0dXJuIGZhbHNlfSkuYXBwZW5kVG8odGhpcy5jb250YWluZXIpO3RoaXMudXBkYXRlX3N0YXR1cygpfX0pOyQudWkuaXZpZXdlci5JbWFnZU9iamVjdD1mdW5jdGlvbihkb19hbmltKXt0aGlzLl9pbWc9JCgiPGltZz4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiIwcHgiLGxlZnQ6IjBweCJ9KTt0aGlzLl9sb2FkZWQ9ZmFsc2U7dGhpcy5fc3dhcERpbWVuc2lvbnM9ZmFsc2U7dGhpcy5fZG9fYW5pbT1kb19hbmltfHxmYWxzZTt0aGlzLngoMCx0cnVlKTt0aGlzLnkoMCx0cnVlKTt0aGlzLmFuZ2xlKDApfTsoZnVuY3Rpb24oKXt0aGlzLl9yZXNldD1mdW5jdGlvbih3LGgpe3RoaXMuX2FuZ2xlPTA7dGhpcy5fc3dhcERpbWVuc2lvbnM9ZmFsc2U7dGhpcy54KDApO3RoaXMueSgwKTt0aGlzLm9yaWdfd2lkdGgodyk7dGhpcy5vcmlnX2hlaWdodChoKTt0aGlzLmRpc3BsYXlfd2lkdGgodyk7dGhpcy5kaXNwbGF5X2hlaWdodChoKX07CnRoaXMubG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvYWRlZH07dGhpcy5sb2FkPWZ1bmN0aW9uKHNyYyxsb2FkZWQsZXJyb3Ipe3ZhciBzZWxmPXRoaXM7bG9hZGVkPWxvYWRlZHx8alF1ZXJ5Lm5vb3A7dGhpcy5fbG9hZGVkPWZhbHNlO3ZhciBpbWc9bmV3IEltYWdlO2ltZy5vbmxvYWQ9ZnVuY3Rpb24oKXtzZWxmLl9sb2FkZWQ9dHJ1ZTtzZWxmLl9yZXNldCh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KTtzZWxmLl9pbWcucmVtb3ZlQXR0cigid2lkdGgiKS5yZW1vdmVBdHRyKCJoZWlnaHQiKS5yZW1vdmVBdHRyKCJzdHlsZSIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6IjBweCIsbGVmdDoiMHB4IixtYXhXaWR0aDoibm9uZSJ9KTtzZWxmLl9pbWdbMF0uc3JjPXNyYztsb2FkZWQoKX07aW1nLm9uZXJyb3I9ZXJyb3I7c2V0VGltZW91dChmdW5jdGlvbigpe2ltZy5zcmM9c3JjfSwwKTt0aGlzLmFuZ2xlKDApfTt0aGlzLl9kaW1lbnNpb249ZnVuY3Rpb24ocHJlZml4LApuYW1lKXt2YXIgaG9yaXo9Il8iK3ByZWZpeCsiXyIrbmFtZSx2ZXJ0PSJfIitwcmVmaXgrIl8iKyhuYW1lPT09ImhlaWdodCI/IndpZHRoIjoiaGVpZ2h0Iik7cmV0dXJuIHNldHRlcihmdW5jdGlvbih2YWwpe3RoaXNbdGhpcy5fc3dhcERpbWVuc2lvbnM/aG9yaXo6dmVydF09dmFsfSxmdW5jdGlvbigpe3JldHVybiB0aGlzW3RoaXMuX3N3YXBEaW1lbnNpb25zP2hvcml6OnZlcnRdfSl9O3RoaXMuZGlzcGxheV93aWR0aD10aGlzLl9kaW1lbnNpb24oImRpc3BsYXkiLCJ3aWR0aCIpLHRoaXMuZGlzcGxheV9oZWlnaHQ9dGhpcy5fZGltZW5zaW9uKCJkaXNwbGF5IiwiaGVpZ2h0IiksdGhpcy5kaXNwbGF5X2RpZmY9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLmRpc3BsYXlfd2lkdGgoKS10aGlzLmRpc3BsYXlfaGVpZ2h0KCkpfTt0aGlzLm9yaWdfd2lkdGg9dGhpcy5fZGltZW5zaW9uKCJvcmlnIiwid2lkdGgiKSx0aGlzLm9yaWdfaGVpZ2h0PXRoaXMuX2RpbWVuc2lvbigib3JpZyIsCiJoZWlnaHQiKSx0aGlzLng9c2V0dGVyKGZ1bmN0aW9uKHZhbCxza2lwQ3NzKXt0aGlzLl94PXZhbDtpZighc2tpcENzcyl7dGhpcy5fZmluaXNoQW5pbWF0aW9uKCk7dGhpcy5faW1nLmNzcygibGVmdCIsdGhpcy5feCsodGhpcy5fc3dhcERpbWVuc2lvbnM/dGhpcy5kaXNwbGF5X2RpZmYoKS8yOjApKyJweCIpfX0sZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5feH0pO3RoaXMueT1zZXR0ZXIoZnVuY3Rpb24odmFsLHNraXBDc3Mpe3RoaXMuX3k9dmFsO2lmKCFza2lwQ3NzKXt0aGlzLl9maW5pc2hBbmltYXRpb24oKTt0aGlzLl9pbWcuY3NzKCJ0b3AiLHRoaXMuX3ktKHRoaXMuX3N3YXBEaW1lbnNpb25zP3RoaXMuZGlzcGxheV9kaWZmKCkvMjowKSsicHgiKX19LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3l9KTt0aGlzLmFuZ2xlPXNldHRlcihmdW5jdGlvbihkZWcpe3ZhciBwcmV2U3dhcD10aGlzLl9zd2FwRGltZW5zaW9uczt0aGlzLl9hbmdsZT1kZWc7dGhpcy5fc3dhcERpbWVuc2lvbnM9CmRlZyUxODAhPT0wO2lmKHByZXZTd2FwIT09dGhpcy5fc3dhcERpbWVuc2lvbnMpe3ZhciB2ZXJ0aWNhbE1vZD10aGlzLl9zd2FwRGltZW5zaW9ucz8tMToxO3RoaXMueCh0aGlzLngoKS12ZXJ0aWNhbE1vZCp0aGlzLmRpc3BsYXlfZGlmZigpLzIsdHJ1ZSk7dGhpcy55KHRoaXMueSgpK3ZlcnRpY2FsTW9kKnRoaXMuZGlzcGxheV9kaWZmKCkvMix0cnVlKX12YXIgY3NzVmFsPSJyb3RhdGUoIitkZWcrImRlZykiLGltZz10aGlzLl9pbWc7alF1ZXJ5LmVhY2goWyIiLCItd2Via2l0LSIsIi1tb3otIiwiLW8tIiwiLW1zLSJdLGZ1bmN0aW9uKGkscHJlZml4KXtpbWcuY3NzKHByZWZpeCsidHJhbnNmb3JtIixjc3NWYWwpfSk7aWYodXNlSWVUcmFuc2Zvcm1zKXtqUXVlcnkuZWFjaChbIi1tcy0iLCIiXSxmdW5jdGlvbihpLHByZWZpeCl7aW1nLmNzcyhwcmVmaXgrImZpbHRlciIsaWVUcmFuc2Zvcm1zW2RlZ10uZmlsdGVyKX0pO2ltZy5jc3Moe21hcmdpbkxlZnQ6aWVUcmFuc2Zvcm1zW2RlZ10ubWFyZ2luTGVmdCoKdGhpcy5kaXNwbGF5X2RpZmYoKS8yLG1hcmdpblRvcDppZVRyYW5zZm9ybXNbZGVnXS5tYXJnaW5Ub3AqdGhpcy5kaXNwbGF5X2RpZmYoKS8yfSl9fSxmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbmdsZX0pO3RoaXMudG9PcmlnaW5hbENvb3Jkcz1mdW5jdGlvbihwb2ludCl7c3dpdGNoKHRoaXMuYW5nbGUoKSl7Y2FzZSAwOnJldHVybnt4OnBvaW50LngseTpwb2ludC55fTtjYXNlIDkwOnJldHVybnt4OnBvaW50LnkseTp0aGlzLmRpc3BsYXlfd2lkdGgoKS1wb2ludC54fTtjYXNlIDE4MDpyZXR1cm57eDp0aGlzLmRpc3BsYXlfd2lkdGgoKS1wb2ludC54LHk6dGhpcy5kaXNwbGF5X2hlaWdodCgpLXBvaW50Lnl9O2Nhc2UgMjcwOnJldHVybnt4OnRoaXMuZGlzcGxheV9oZWlnaHQoKS1wb2ludC55LHk6cG9pbnQueH19fTt0aGlzLnRvUmVhbENvb3Jkcz1mdW5jdGlvbihwb2ludCl7c3dpdGNoKHRoaXMuYW5nbGUoKSl7Y2FzZSAwOnJldHVybnt4OnRoaXMueCgpK3BvaW50LngseTp0aGlzLnkoKSsKcG9pbnQueX07Y2FzZSA5MDpyZXR1cm57eDp0aGlzLngoKSt0aGlzLmRpc3BsYXlfd2lkdGgoKS1wb2ludC55LHk6dGhpcy55KCkrcG9pbnQueH07Y2FzZSAxODA6cmV0dXJue3g6dGhpcy54KCkrdGhpcy5kaXNwbGF5X3dpZHRoKCktcG9pbnQueCx5OnRoaXMueSgpK3RoaXMuZGlzcGxheV9oZWlnaHQoKS1wb2ludC55fTtjYXNlIDI3MDpyZXR1cm57eDp0aGlzLngoKStwb2ludC55LHk6dGhpcy55KCkrdGhpcy5kaXNwbGF5X2hlaWdodCgpLXBvaW50Lnh9fX07dGhpcy5vYmplY3Q9c2V0dGVyKGpRdWVyeS5ub29wLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ltZ30pO3RoaXMuc2V0SW1hZ2VQcm9wcz1mdW5jdGlvbihkaXNwX3csZGlzcF9oLHgseSxza2lwX2FuaW1hdGlvbixjb21wbGV0ZSl7Y29tcGxldGU9Y29tcGxldGV8fGpRdWVyeS5ub29wO3RoaXMuZGlzcGxheV93aWR0aChkaXNwX3cpO3RoaXMuZGlzcGxheV9oZWlnaHQoZGlzcF9oKTt0aGlzLngoeCx0cnVlKTt0aGlzLnkoeSwKdHJ1ZSk7dmFyIHc9dGhpcy5fc3dhcERpbWVuc2lvbnM/ZGlzcF9oOmRpc3Bfdzt2YXIgaD10aGlzLl9zd2FwRGltZW5zaW9ucz9kaXNwX3c6ZGlzcF9oO3ZhciBwYXJhbXM9e3dpZHRoOncsaGVpZ2h0OmgsdG9wOnktKHRoaXMuX3N3YXBEaW1lbnNpb25zP3RoaXMuZGlzcGxheV9kaWZmKCkvMjowKSsicHgiLGxlZnQ6eCsodGhpcy5fc3dhcERpbWVuc2lvbnM/dGhpcy5kaXNwbGF5X2RpZmYoKS8yOjApKyJweCJ9O2lmKHVzZUllVHJhbnNmb3JtcylqUXVlcnkuZXh0ZW5kKHBhcmFtcyx7bWFyZ2luTGVmdDppZVRyYW5zZm9ybXNbdGhpcy5hbmdsZSgpXS5tYXJnaW5MZWZ0KnRoaXMuZGlzcGxheV9kaWZmKCkvMixtYXJnaW5Ub3A6aWVUcmFuc2Zvcm1zW3RoaXMuYW5nbGUoKV0ubWFyZ2luVG9wKnRoaXMuZGlzcGxheV9kaWZmKCkvMn0pO3ZhciBzd2FwRGltcz10aGlzLl9zd2FwRGltZW5zaW9ucyxpbWc9dGhpcy5faW1nO2lmKHVzZUllVHJhbnNmb3JtcyYmc3dhcERpbXMpe3ZhciBpZWg9CnRoaXMuX2ltZy53aWR0aCgpLGlldz10aGlzLl9pbWcuaGVpZ2h0KCksaWVkaD1wYXJhbXMuaGVpZ2h0LWllaDtpZWR3PXBhcmFtcy53aWR0aC1pZXc7ZGVsZXRlIHBhcmFtcy53aWR0aDtkZWxldGUgcGFyYW1zLmhlaWdodH1pZih0aGlzLl9kb19hbmltJiYhc2tpcF9hbmltYXRpb24pdGhpcy5faW1nLnN0b3AodHJ1ZSkuYW5pbWF0ZShwYXJhbXMse2R1cmF0aW9uOjIwMCxjb21wbGV0ZTpjb21wbGV0ZSxzdGVwOmZ1bmN0aW9uKG5vdyxmeCl7aWYodXNlSWVUcmFuc2Zvcm1zJiZzd2FwRGltcyYmZngucHJvcD09PSJ0b3AiKXt2YXIgcGVyY2VudD0obm93LWZ4LnN0YXJ0KS8oZnguZW5kLWZ4LnN0YXJ0KTtpbWcuaGVpZ2h0KGllaCtpZWRoKnBlcmNlbnQpO2ltZy53aWR0aChpZXcraWVkdypwZXJjZW50KTtpbWcuY3NzKCJ0b3AiLG5vdyl9fX0pO2Vsc2V7dGhpcy5faW1nLmNzcyhwYXJhbXMpO3NldFRpbWVvdXQoY29tcGxldGUsMCl9fTt0aGlzLl9maW5pc2hBbmltYXRpb249ZnVuY3Rpb24oKXt0aGlzLl9pbWcuc3RvcCh0cnVlLAp0cnVlKX19KS5hcHBseSgkLnVpLml2aWV3ZXIuSW1hZ2VPYmplY3QucHJvdG90eXBlKTt2YXIgdXRpbD17c2NhbGVWYWx1ZTpmdW5jdGlvbih2YWx1ZSx0b1pvb20pe3JldHVybiB2YWx1ZSp0b1pvb20vMTAwfSxkZXNjYWxlVmFsdWU6ZnVuY3Rpb24odmFsdWUsZnJvbVpvb20pe3JldHVybiB2YWx1ZSoxMDAvZnJvbVpvb219fX0pKGpRdWVyeSx1bmRlZmluZWQpOwo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/js/jquery.smooth-scroll.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBmaWx0ZXJQYXRoKHN0cmluZykgewogICAgICAgIHJldHVybiBzdHJpbmcKICAgICAgICAgICAgLnJlcGxhY2UoL15cLy8sJycpCiAgICAgICAgICAgIC5yZXBsYWNlKC8oaW5kZXh8ZGVmYXVsdCkuW2EtekEtWl17Myw0fSQvLCcnKQogICAgICAgICAgICAucmVwbGFjZSgvXC8kLywnJyk7CiAgICB9CiAgICB2YXIgbG9jYXRpb25QYXRoID0gZmlsdGVyUGF0aChsb2NhdGlvbi5wYXRobmFtZSk7CgogICAgJCgnYVtocmVmKj0jXScpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHRoaXNQYXRoID0gZmlsdGVyUGF0aCh0aGlzLnBhdGhuYW1lKSB8fCBsb2NhdGlvblBhdGg7CiAgICAgICAgaWYgKCAgbG9jYXRpb25QYXRoID09IHRoaXNQYXRoCiAgICAgICAgICAgICYmIChsb2NhdGlvbi5ob3N0bmFtZSA9PSB0aGlzLmhvc3RuYW1lIHx8ICF0aGlzLmhvc3RuYW1lKQogICAgICAgICAgICAmJiB0aGlzLmhhc2gucmVwbGFjZSgvIy8sJycpICkgewogICAgICAgICAgICB2YXIgJHRhcmdldCA9ICQodGhpcy5oYXNoKSwgdGFyZ2V0ID0gdGhpcy5oYXNoOwogICAgICAgICAgICBpZiAodGFyZ2V0KSB7CiAgICAgICAgICAgICAgICAkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKHRoaXMuaGFzaCkub2Zmc2V0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9ICQodGhpcy5oYXNoKS5vZmZzZXQoKS50b3A7CgogICAgICAgICAgICAgICAgICAgICQoJ2h0bWwsYm9keScpLmFuaW1hdGUoe3Njcm9sbFRvcDogcG9zaXRpb259LCA0MDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5oYXNoID0gdGFyZ2V0OwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KTsKfSk7Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/js/prism.min.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIFByaXNtOiBMaWdodHdlaWdodCwgcm9idXN0LCBlbGVnYW50IHN5bnRheCBoaWdobGlnaHRpbmcKICogTUlUIGxpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAvCiAqIEBhdXRob3IgTGVhIFZlcm91IGh0dHA6Ly9sZWEudmVyb3UubWUKICovKGZ1bmN0aW9uKCl7dmFyIGU9L1xibGFuZyg/OnVhZ2UpPy0oPyFcKikoXHcrKVxiL2ksdD1zZWxmLlByaXNtPXt1dGlsOnt0eXBlOmZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkubWF0Y2goL1xbb2JqZWN0IChcdyspXF0vKVsxXX0sY2xvbmU6ZnVuY3Rpb24oZSl7dmFyIG49dC51dGlsLnR5cGUoZSk7c3dpdGNoKG4pe2Nhc2UiT2JqZWN0Ijp2YXIgcj17fTtmb3IodmFyIGkgaW4gZSllLmhhc093blByb3BlcnR5KGkpJiYocltpXT10LnV0aWwuY2xvbmUoZVtpXSkpO3JldHVybiByO2Nhc2UiQXJyYXkiOnJldHVybiBlLnNsaWNlKCl9cmV0dXJuIGV9fSxsYW5ndWFnZXM6e2V4dGVuZDpmdW5jdGlvbihlLG4pe3ZhciByPXQudXRpbC5jbG9uZSh0Lmxhbmd1YWdlc1tlXSk7Zm9yKHZhciBpIGluIG4pcltpXT1uW2ldO3JldHVybiByfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oZSxuLHIsaSl7aT1pfHx0Lmxhbmd1YWdlczt2YXIgcz1pW2VdLG89e307Zm9yKHZhciB1IGluIHMpaWYocy5oYXNPd25Qcm9wZXJ0eSh1KSl7aWYodT09bilmb3IodmFyIGEgaW4gcilyLmhhc093blByb3BlcnR5KGEpJiYob1thXT1yW2FdKTtvW3VdPXNbdV19cmV0dXJuIGlbZV09b30sREZTOmZ1bmN0aW9uKGUsbil7Zm9yKHZhciByIGluIGUpe24uY2FsbChlLHIsZVtyXSk7dC51dGlsLnR5cGUoZSk9PT0iT2JqZWN0IiYmdC5sYW5ndWFnZXMuREZTKGVbcl0sbil9fX0saGlnaGxpZ2h0QWxsOmZ1bmN0aW9uKGUsbil7dmFyIHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnY29kZVtjbGFzcyo9Imxhbmd1YWdlLSJdLCBbY2xhc3MqPSJsYW5ndWFnZS0iXSBjb2RlLCBjb2RlW2NsYXNzKj0ibGFuZy0iXSwgW2NsYXNzKj0ibGFuZy0iXSBjb2RlJyk7Zm9yKHZhciBpPTAscztzPXJbaSsrXTspdC5oaWdobGlnaHRFbGVtZW50KHMsZT09PSEwLG4pfSxoaWdobGlnaHRFbGVtZW50OmZ1bmN0aW9uKHIsaSxzKXt2YXIgbyx1LGE9cjt3aGlsZShhJiYhZS50ZXN0KGEuY2xhc3NOYW1lKSlhPWEucGFyZW50Tm9kZTtpZihhKXtvPShhLmNsYXNzTmFtZS5tYXRjaChlKXx8WywiIl0pWzFdO3U9dC5sYW5ndWFnZXNbb119aWYoIXUpcmV0dXJuO3IuY2xhc3NOYW1lPXIuY2xhc3NOYW1lLnJlcGxhY2UoZSwiIikucmVwbGFjZSgvXHMrL2csIiAiKSsiIGxhbmd1YWdlLSIrbzthPXIucGFyZW50Tm9kZTsvcHJlL2kudGVzdChhLm5vZGVOYW1lKSYmKGEuY2xhc3NOYW1lPWEuY2xhc3NOYW1lLnJlcGxhY2UoZSwiIikucmVwbGFjZSgvXHMrL2csIiAiKSsiIGxhbmd1YWdlLSIrbyk7dmFyIGY9ci50ZXh0Q29udGVudDtpZighZilyZXR1cm47Zj1mLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC9cdTAwYTAvZywiICIpO3ZhciBsPXtlbGVtZW50OnIsbGFuZ3VhZ2U6byxncmFtbWFyOnUsY29kZTpmfTt0Lmhvb2tzLnJ1bigiYmVmb3JlLWhpZ2hsaWdodCIsbCk7aWYoaSYmc2VsZi5Xb3JrZXIpe3ZhciBjPW5ldyBXb3JrZXIodC5maWxlbmFtZSk7Yy5vbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7bC5oaWdobGlnaHRlZENvZGU9bi5zdHJpbmdpZnkoSlNPTi5wYXJzZShlLmRhdGEpLG8pO3QuaG9va3MucnVuKCJiZWZvcmUtaW5zZXJ0IixsKTtsLmVsZW1lbnQuaW5uZXJIVE1MPWwuaGlnaGxpZ2h0ZWRDb2RlO3MmJnMuY2FsbChsLmVsZW1lbnQpO3QuaG9va3MucnVuKCJhZnRlci1oaWdobGlnaHQiLGwpfTtjLnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtsYW5ndWFnZTpsLmxhbmd1YWdlLGNvZGU6bC5jb2RlfSkpfWVsc2V7bC5oaWdobGlnaHRlZENvZGU9dC5oaWdobGlnaHQobC5jb2RlLGwuZ3JhbW1hcixsLmxhbmd1YWdlKTt0Lmhvb2tzLnJ1bigiYmVmb3JlLWluc2VydCIsbCk7bC5lbGVtZW50LmlubmVySFRNTD1sLmhpZ2hsaWdodGVkQ29kZTtzJiZzLmNhbGwocik7dC5ob29rcy5ydW4oImFmdGVyLWhpZ2hsaWdodCIsbCl9fSxoaWdobGlnaHQ6ZnVuY3Rpb24oZSxyLGkpe3JldHVybiBuLnN0cmluZ2lmeSh0LnRva2VuaXplKGUsciksaSl9LHRva2VuaXplOmZ1bmN0aW9uKGUsbixyKXt2YXIgaT10LlRva2VuLHM9W2VdLG89bi5yZXN0O2lmKG8pe2Zvcih2YXIgdSBpbiBvKW5bdV09b1t1XTtkZWxldGUgbi5yZXN0fWU6Zm9yKHZhciB1IGluIG4pe2lmKCFuLmhhc093blByb3BlcnR5KHUpfHwhblt1XSljb250aW51ZTt2YXIgYT1uW3VdLGY9YS5pbnNpZGUsbD0hIWEubG9va2JlaGluZCxjPTA7YT1hLnBhdHRlcm58fGE7Zm9yKHZhciBoPTA7aDxzLmxlbmd0aDtoKyspe3ZhciBwPXNbaF07aWYocy5sZW5ndGg+ZS5sZW5ndGgpYnJlYWsgZTtpZihwIGluc3RhbmNlb2YgaSljb250aW51ZTthLmxhc3RJbmRleD0wO3ZhciBkPWEuZXhlYyhwKTtpZihkKXtsJiYoYz1kWzFdLmxlbmd0aCk7dmFyIHY9ZC5pbmRleC0xK2MsZD1kWzBdLnNsaWNlKGMpLG09ZC5sZW5ndGgsZz12K20seT1wLnNsaWNlKDAsdisxKSxiPXAuc2xpY2UoZysxKSx3PVtoLDFdO3kmJncucHVzaCh5KTt2YXIgRT1uZXcgaSh1LGY/dC50b2tlbml6ZShkLGYpOmQpO3cucHVzaChFKTtiJiZ3LnB1c2goYik7QXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseShzLHcpfX19cmV0dXJuIHN9LGhvb2tzOnthbGw6e30sYWRkOmZ1bmN0aW9uKGUsbil7dmFyIHI9dC5ob29rcy5hbGw7cltlXT1yW2VdfHxbXTtyW2VdLnB1c2gobil9LHJ1bjpmdW5jdGlvbihlLG4pe3ZhciByPXQuaG9va3MuYWxsW2VdO2lmKCFyfHwhci5sZW5ndGgpcmV0dXJuO2Zvcih2YXIgaT0wLHM7cz1yW2krK107KXMobil9fX0sbj10LlRva2VuPWZ1bmN0aW9uKGUsdCl7dGhpcy50eXBlPWU7dGhpcy5jb250ZW50PXR9O24uc3RyaW5naWZ5PWZ1bmN0aW9uKGUscixpKXtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIGU7aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpPT0iW29iamVjdCBBcnJheV0iKXJldHVybiBlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gbi5zdHJpbmdpZnkodCxyLGUpfSkuam9pbigiIik7dmFyIHM9e3R5cGU6ZS50eXBlLGNvbnRlbnQ6bi5zdHJpbmdpZnkoZS5jb250ZW50LHIsaSksdGFnOiJzcGFuIixjbGFzc2VzOlsidG9rZW4iLGUudHlwZV0sYXR0cmlidXRlczp7fSxsYW5ndWFnZTpyLHBhcmVudDppfTtzLnR5cGU9PSJjb21tZW50IiYmKHMuYXR0cmlidXRlcy5zcGVsbGNoZWNrPSJ0cnVlIik7dC5ob29rcy5ydW4oIndyYXAiLHMpO3ZhciBvPSIiO2Zvcih2YXIgdSBpbiBzLmF0dHJpYnV0ZXMpbys9dSsnPSInKyhzLmF0dHJpYnV0ZXNbdV18fCIiKSsnIic7cmV0dXJuIjwiK3MudGFnKycgY2xhc3M9Iicrcy5jbGFzc2VzLmpvaW4oIiAiKSsnIiAnK28rIj4iK3MuY29udGVudCsiPC8iK3MudGFnKyI+In07aWYoIXNlbGYuZG9jdW1lbnQpe3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7dmFyIG49SlNPTi5wYXJzZShlLmRhdGEpLHI9bi5sYW5ndWFnZSxpPW4uY29kZTtzZWxmLnBvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHQudG9rZW5pemUoaSx0Lmxhbmd1YWdlc1tyXSkpKTtzZWxmLmNsb3NlKCl9LCExKTtyZXR1cm59dmFyIHI9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO3I9cltyLmxlbmd0aC0xXTtpZihyKXt0LmZpbGVuYW1lPXIuc3JjO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXImJiFyLmhhc0F0dHJpYnV0ZSgiZGF0YS1tYW51YWwiKSYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdC5oaWdobGlnaHRBbGwpfX0pKCk7OwpQcmlzbS5sYW5ndWFnZXMubWFya3VwPXtjb21tZW50Oi8mbHQ7IS0tW1x3XFddKj8tLT4vZyxwcm9sb2c6LyZsdDtcPy4rP1w/Pi8sZG9jdHlwZTovJmx0OyFET0NUWVBFLis/Pi8sY2RhdGE6LyZsdDshXFtDREFUQVxbW1x3XFddKj9dXT4vaSx0YWc6e3BhdHRlcm46LyZsdDtcLz9bXHc6LV0rXHMqKD86XHMrW1x3Oi1dKyg/Oj0oPzooInwnKShcXD9bXHdcV10pKj9cMXxcdyspKT9ccyopKlwvPz4vZ2ksaW5zaWRlOnt0YWc6e3BhdHRlcm46L14mbHQ7XC8/W1x3Oi1dKy9pLGluc2lkZTp7cHVuY3R1YXRpb246L14mbHQ7XC8/LyxuYW1lc3BhY2U6L15bXHctXSs/Oi99fSwiYXR0ci12YWx1ZSI6e3BhdHRlcm46Lz0oPzooJ3wiKVtcd1xXXSo/KFwxKXxbXlxzPl0rKS9naSxpbnNpZGU6e3B1bmN0dWF0aW9uOi89fD58Ii9nfX0scHVuY3R1YXRpb246L1wvPz4vZywiYXR0ci1uYW1lIjp7cGF0dGVybjovW1x3Oi1dKy9nLGluc2lkZTp7bmFtZXNwYWNlOi9eW1x3LV0rPzovfX19fSxlbnRpdHk6LyZhbXA7Iz9bXGRhLXpdezEsOH07L2dpfTtQcmlzbS5ob29rcy5hZGQoIndyYXAiLGZ1bmN0aW9uKGUpe2UudHlwZT09PSJlbnRpdHkiJiYoZS5hdHRyaWJ1dGVzLnRpdGxlPWUuY29udGVudC5yZXBsYWNlKC8mYW1wOy8sIiYiKSl9KTs7ClByaXNtLmxhbmd1YWdlcy5jc3M9e2NvbW1lbnQ6L1wvXCpbXHdcV10qP1wqXC8vZyxhdHJ1bGU6e3BhdHRlcm46L0BbXHctXSs/Lio/KDt8KD89XHMqeykpL2dpLGluc2lkZTp7cHVuY3R1YXRpb246L1s7Ol0vZ319LHVybDovdXJsXCgoWyInXT8pLio/XDFcKS9naSxzZWxlY3RvcjovW15ce1x9XHNdW15ce1x9O10qKD89XHMqXHspL2cscHJvcGVydHk6LyhcYnxcQilbXHctXSsoPz1ccyo6KS9pZyxzdHJpbmc6LygifCcpKFxcPy4pKj9cMS9nLGltcG9ydGFudDovXEIhaW1wb3J0YW50XGIvZ2ksaWdub3JlOi8mKGx0fGd0fGFtcCk7L2dpLHB1bmN0dWF0aW9uOi9bXHtcfTs6XS9nfTtQcmlzbS5sYW5ndWFnZXMubWFya3VwJiZQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJtYXJrdXAiLCJ0YWciLHtzdHlsZTp7cGF0dGVybjovKCZsdDt8PClzdHlsZVtcd1xXXSo/KD58Jmd0OylbXHdcV10qPygmbHQ7fDwpXC9zdHlsZSg+fCZndDspL2lnLGluc2lkZTp7dGFnOntwYXR0ZXJuOi8oJmx0O3w8KXN0eWxlW1x3XFddKj8oPnwmZ3Q7KXwoJmx0O3w8KVwvc3R5bGUoPnwmZ3Q7KS9pZyxpbnNpZGU6UHJpc20ubGFuZ3VhZ2VzLm1hcmt1cC50YWcuaW5zaWRlfSxyZXN0OlByaXNtLmxhbmd1YWdlcy5jc3N9fX0pOzsKUHJpc20ubGFuZ3VhZ2VzLmNzcy5zZWxlY3Rvcj17cGF0dGVybjovW15ce1x9XHNdW15ce1x9XSooPz1ccypceykvZyxpbnNpZGU6eyJwc2V1ZG8tZWxlbWVudCI6LzooPzphZnRlcnxiZWZvcmV8Zmlyc3QtbGV0dGVyfGZpcnN0LWxpbmV8c2VsZWN0aW9uKXw6OlstXHddKy9nLCJwc2V1ZG8tY2xhc3MiOi86Wy1cd10rKD86XCguKlwpKT8vZywiY2xhc3MiOi9cLlstOlwuXHddKy9nLGlkOi8jWy06XC5cd10rL2d9fTtQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJjc3MiLCJpZ25vcmUiLHtoZXhjb2RlOi8jW1xkYS1mXXszLDZ9L2dpLGVudGl0eTovXFxbXGRhLWZdezEsOH0vZ2ksbnVtYmVyOi9bXGQlXC5dKy9nLCJmdW5jdGlvbiI6LyhhdHRyfGNhbGN8Y3Jvc3MtZmFkZXxjeWNsZXxlbGVtZW50fGhzbGE/fGltYWdlfGxhbmd8bGluZWFyLWdyYWRpZW50fG1hdHJpeDNkfG1hdHJpeHxwZXJzcGVjdGl2ZXxyYWRpYWwtZ3JhZGllbnR8cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudHxyZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50fHJnYmE/fHJvdGF0ZXh8cm90YXRleXxyb3RhdGV6fHJvdGF0ZTNkfHJvdGF0ZXxzY2FsZXh8c2NhbGV5fHNjYWxlenxzY2FsZTNkfHNjYWxlfHNrZXd4fHNrZXd5fHNrZXd8c3RlcHN8dHJhbnNsYXRleHx0cmFuc2xhdGV5fHRyYW5zbGF0ZXp8dHJhbnNsYXRlM2R8dHJhbnNsYXRlfHVybHx2YXIpL2lnfSk7OwpQcmlzbS5sYW5ndWFnZXMuY2xpa2U9e2NvbW1lbnQ6e3BhdHRlcm46LyhefFteXFxdKShcL1wqW1x3XFddKj9cKlwvfChefFteOl0pXC9cLy4qPyhccj9cbnwkKSkvZyxsb29rYmVoaW5kOiEwfSxzdHJpbmc6LygifCcpKFxcPy4pKj9cMS9nLCJjbGFzcy1uYW1lIjp7cGF0dGVybjovKCg/Oig/OmNsYXNzfGludGVyZmFjZXxleHRlbmRzfGltcGxlbWVudHN8dHJhaXR8aW5zdGFuY2VvZnxuZXcpXHMrKXwoPzpjYXRjaFxzK1woKSlbYS16MC05X1wuXFxdKy9pZyxsb29rYmVoaW5kOiEwLGluc2lkZTp7cHVuY3R1YXRpb246LyhcLnxcXCkvfX0sa2V5d29yZDovXGIoaWZ8ZWxzZXx3aGlsZXxkb3xmb3J8cmV0dXJufGlufGluc3RhbmNlb2Z8ZnVuY3Rpb258bmV3fHRyeXxjYXRjaHxmaW5hbGx5fG51bGx8YnJlYWt8Y29udGludWUpXGIvZywiYm9vbGVhbiI6L1xiKHRydWV8ZmFsc2UpXGIvZywiZnVuY3Rpb24iOntwYXR0ZXJuOi9bYS16MC05X10rXCgvaWcsaW5zaWRlOntwdW5jdHVhdGlvbjovXCgvfX0sIG51bWJlcjovXGItPygweFtcZEEtRmEtZl0rfFxkKlwuP1xkKyhbRWVdLT9cZCspPylcYi9nLG9wZXJhdG9yOi9bLStdezEsMn18IXwmbHQ7PT98Pj0/fD17MSwzfXwoJmFtcDspezEsMn18XHw/XHx8XD98XCp8XC98XH58XF58XCUvZyxpZ25vcmU6LyYobHR8Z3R8YW1wKTsvZ2kscHVuY3R1YXRpb246L1t7fVtcXTsoKSwuOl0vZ307OwpQcmlzbS5sYW5ndWFnZXMuamF2YXNjcmlwdD1QcmlzbS5sYW5ndWFnZXMuZXh0ZW5kKCJjbGlrZSIse2tleXdvcmQ6L1xiKHZhcnxsZXR8aWZ8ZWxzZXx3aGlsZXxkb3xmb3J8cmV0dXJufGlufGluc3RhbmNlb2Z8ZnVuY3Rpb258bmV3fHdpdGh8dHlwZW9mfHRyeXxjYXRjaHxmaW5hbGx5fG51bGx8YnJlYWt8Y29udGludWUpXGIvZyxudW1iZXI6L1xiLT8oMHhbXGRBLUZhLWZdK3xcZCpcLj9cZCsoW0VlXS0/XGQrKT98TmFOfC0/SW5maW5pdHkpXGIvZ30pO1ByaXNtLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoImphdmFzY3JpcHQiLCJrZXl3b3JkIix7cmVnZXg6e3BhdHRlcm46LyhefFteL10pXC8oPyFcLykoXFsuKz9dfFxcLnxbXi9cclxuXSkrXC9bZ2ltXXswLDN9KD89XHMqKCR8W1xyXG4sLjt9KV0pKS9nLGxvb2tiZWhpbmQ6ITB9fSk7UHJpc20ubGFuZ3VhZ2VzLm1hcmt1cCYmUHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgibWFya3VwIiwidGFnIix7c2NyaXB0OntwYXR0ZXJuOi8oJmx0O3w8KXNjcmlwdFtcd1xXXSo/KD58Jmd0OylbXHdcV10qPygmbHQ7fDwpXC9zY3JpcHQoPnwmZ3Q7KS9pZyxpbnNpZGU6e3RhZzp7cGF0dGVybjovKCZsdDt8PClzY3JpcHRbXHdcV10qPyg+fCZndDspfCgmbHQ7fDwpXC9zY3JpcHQoPnwmZ3Q7KS9pZyxpbnNpZGU6UHJpc20ubGFuZ3VhZ2VzLm1hcmt1cC50YWcuaW5zaWRlfSxyZXN0OlByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0fX19KTs7ClByaXNtLmxhbmd1YWdlcy5waHA9UHJpc20ubGFuZ3VhZ2VzLmV4dGVuZCgiY2xpa2UiLHtrZXl3b3JkOi9cYihhbmR8b3J8eG9yfGFycmF5fGFzfGJyZWFrfGNhc2V8Y2Z1bmN0aW9ufGNsYXNzfGNvbnN0fGNvbnRpbnVlfGRlY2xhcmV8ZGVmYXVsdHxkaWV8ZG98ZWxzZXxlbHNlaWZ8ZW5kZGVjbGFyZXxlbmRmb3J8ZW5kZm9yZWFjaHxlbmRpZnxlbmRzd2l0Y2h8ZW5kd2hpbGV8ZXh0ZW5kc3xmb3J8Zm9yZWFjaHxmdW5jdGlvbnxpbmNsdWRlfGluY2x1ZGVfb25jZXxnbG9iYWx8aWZ8bmV3fHJldHVybnxzdGF0aWN8c3dpdGNofHVzZXxyZXF1aXJlfHJlcXVpcmVfb25jZXx2YXJ8d2hpbGV8YWJzdHJhY3R8aW50ZXJmYWNlfHB1YmxpY3xpbXBsZW1lbnRzfGV4dGVuZHN8cHJpdmF0ZXxwcm90ZWN0ZWR8cGFyZW50fHN0YXRpY3x0aHJvd3xudWxsfGVjaG98cHJpbnR8dHJhaXR8bmFtZXNwYWNlfHVzZXxmaW5hbHx5aWVsZHxnb3RvfGluc3RhbmNlb2Z8ZmluYWxseXx0cnl8Y2F0Y2gpXGIvaWcsIGNvbnN0YW50Oi9cYltBLVowLTlfXXsyLH1cYi9nfSk7UHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgicGhwIiwia2V5d29yZCIse2RlbGltaXRlcjovKFw/PnwmbHQ7XD9waHB8Jmx0O1w/KS9pZyx2YXJpYWJsZTovKFwkXHcrKVxiL2lnLCJwYWNrYWdlIjp7cGF0dGVybjovKFxcfG5hbWVzcGFjZVxzK3x1c2VccyspW1x3XFxdKy9nLGxvb2tiZWhpbmQ6ITAsaW5zaWRlOntwdW5jdHVhdGlvbjovXFwvfX19KTtQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCJwaHAiLCJvcGVyYXRvciIse3Byb3BlcnR5OntwYXR0ZXJuOi8oLT4pW1x3XSsvZyxsb29rYmVoaW5kOiEwfX0pOyBQcmlzbS5sYW5ndWFnZXMubWFya3VwJiYoUHJpc20uaG9va3MuYWRkKCJiZWZvcmUtaGlnaGxpZ2h0IixmdW5jdGlvbihhKXsicGhwIj09PWEubGFuZ3VhZ2UmJihhLnRva2VuU3RhY2s9W10sYS5jb2RlPWEuY29kZS5yZXBsYWNlKC8oPzombHQ7XD9waHB8Jmx0O1w/fDxcP3BocHw8XD8pW1x3XFddKj8oPzpcPyZndDt8XD8+KS9pZyxmdW5jdGlvbihiKXthLnRva2VuU3RhY2sucHVzaChiKTtyZXR1cm4ie3t7UEhQIithLnRva2VuU3RhY2subGVuZ3RoKyJ9fX0ifSkpfSksUHJpc20uaG9va3MuYWRkKCJhZnRlci1oaWdobGlnaHQiLGZ1bmN0aW9uKGEpe2lmKCJwaHAiPT09YS5sYW5ndWFnZSl7Zm9yKHZhciBiPTAsYztjPWEudG9rZW5TdGFja1tiXTtiKyspYS5oaWdobGlnaHRlZENvZGU9YS5oaWdobGlnaHRlZENvZGUucmVwbGFjZSgie3t7UEhQIisoYisxKSsifX19IixQcmlzbS5oaWdobGlnaHQoYyxhLmdyYW1tYXIsInBocCIpKTthLmVsZW1lbnQuaW5uZXJIVE1MPWEuaGlnaGxpZ2h0ZWRDb2RlfX0pLCBQcmlzbS5ob29rcy5hZGQoIndyYXAiLGZ1bmN0aW9uKGEpeyJwaHAiPT09YS5sYW5ndWFnZSYmIm1hcmt1cCI9PT1hLnR5cGUmJihhLmNvbnRlbnQ9YS5jb250ZW50LnJlcGxhY2UoLyhce1x7XHtQSFBbMC05XStcfVx9XH0pL2csJzxzcGFuIGNsYXNzPSJ0b2tlbiBwaHAiPiQxPC9zcGFuPicpKX0pLFByaXNtLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInBocCIsImNvbW1lbnQiLHttYXJrdXA6e3BhdHRlcm46LygmbHQ7fDwpW14/XVwvPyguKj8pKD58Jmd0OykvZyxpbnNpZGU6UHJpc20ubGFuZ3VhZ2VzLm1hcmt1cH0scGhwOi9ce1x7XHtQSFBbMC05XStcfVx9XH0vZ30pKTs7ClByaXNtLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoInBocCIsInZhcmlhYmxlIix7InRoaXMiOi9cJHRoaXMvZyxnbG9iYWw6L1wkXz8oR0xPQkFMU3xTRVJWRVJ8R0VUfFBPU1R8RklMRVN8UkVRVUVTVHxTRVNTSU9OfEVOVnxDT09LSUV8SFRUUF9SQVdfUE9TVF9EQVRBfGFyZ2N8YXJndnxwaHBfZXJyb3Jtc2d8aHR0cF9yZXNwb25zZV9oZWFkZXIpL2csc2NvcGU6e3BhdHRlcm46L1xiW1x3XFxdKzo6L2csaW5zaWRlOntrZXl3b3JkOi8oc3RhdGljfHNlbGZ8cGFyZW50KS8scHVuY3R1YXRpb246Lyg6OnxcXCkvfX19KTs7CihmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoKHR8fGRvY3VtZW50KS5xdWVyeVNlbGVjdG9yQWxsKGUpKX1mdW5jdGlvbiBuKGUsdCxuKXt2YXIgcj10LnJlcGxhY2UoL1xzKy9nLCIiKS5zcGxpdCgiLCIpLGk9K2UuZ2V0QXR0cmlidXRlKCJkYXRhLWxpbmUtb2Zmc2V0Iil8fDAscz1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUoZSkubGluZUhlaWdodCk7Zm9yKHZhciBvPTAsdTt1PXJbbysrXTspe3U9dS5zcGxpdCgiLSIpO3ZhciBhPSt1WzBdLGY9K3VbMV18fGEsbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnRleHRDb250ZW50PUFycmF5KGYtYSsyKS5qb2luKCIgXHJcbiIpO2wuY2xhc3NOYW1lPShufHwiIikrIiBsaW5lLWhpZ2hsaWdodCI7bC5zZXRBdHRyaWJ1dGUoImRhdGEtc3RhcnQiLGEpO2Y+YSYmbC5zZXRBdHRyaWJ1dGUoImRhdGEtZW5kIixmKTtsLnN0eWxlLnRvcD0oYS1pLTEpKnMrInB4IjsoZS5xdWVyeVNlbGVjdG9yKCJjb2RlIil8fGUpLmFwcGVuZENoaWxkKGwpfX1mdW5jdGlvbiByKCl7dmFyIHQ9bG9jYXRpb24uaGFzaC5zbGljZSgxKTtlKCIudGVtcG9yYXJ5LmxpbmUtaGlnaGxpZ2h0IikuZm9yRWFjaChmdW5jdGlvbihlKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KTt2YXIgcj0odC5tYXRjaCgvXC4oW1xkLC1dKykkLyl8fFssIiJdKVsxXTtpZighcnx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCkpcmV0dXJuO3ZhciBpPXQuc2xpY2UoMCx0Lmxhc3RJbmRleE9mKCIuIikpLHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaSk7aWYoIXMpcmV0dXJuO3MuaGFzQXR0cmlidXRlKCJkYXRhLWxpbmUiKXx8cy5zZXRBdHRyaWJ1dGUoImRhdGEtbGluZSIsIiIpO24ocyxyLCJ0ZW1wb3JhcnkgIik7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRlbXBvcmFyeS5saW5lLWhpZ2hsaWdodCIpLnNjcm9sbEludG9WaWV3KCl9aWYoIXdpbmRvdy5QcmlzbSlyZXR1cm47dmFyIHQ9Y3JsZj0vXHI/XG58XHIvZyxpPTA7UHJpc20uaG9va3MuYWRkKCJhZnRlci1oaWdobGlnaHQiLGZ1bmN0aW9uKHQpe3ZhciBzPXQuZWxlbWVudC5wYXJlbnROb2RlLG89cyYmcy5nZXRBdHRyaWJ1dGUoImRhdGEtbGluZSIpO2lmKCFzfHwhb3x8IS9wcmUvaS50ZXN0KHMubm9kZU5hbWUpKXJldHVybjtjbGVhclRpbWVvdXQoaSk7ZSgiLmxpbmUtaGlnaGxpZ2h0IixzKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0pO24ocyxvKTtpPXNldFRpbWVvdXQociwxKX0pO2FkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLHIpfSkoKTs7ClByaXNtLmhvb2tzLmFkZCgiYWZ0ZXItaGlnaGxpZ2h0IixmdW5jdGlvbihlKXt2YXIgdD1lLmVsZW1lbnQucGFyZW50Tm9kZTtpZighdHx8IS9wcmUvaS50ZXN0KHQubm9kZU5hbWUpfHx0LmNsYXNzTmFtZS5pbmRleE9mKCJsaW5lLW51bWJlcnMiKT09PS0xKXtyZXR1cm59dmFyIG49MStlLmNvZGUuc3BsaXQoIlxuIikubGVuZ3RoO3ZhciByO2xpbmVzPW5ldyBBcnJheShuKTtsaW5lcz1saW5lcy5qb2luKCI8c3Bhbj48L3NwYW4+Iik7cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7ci5jbGFzc05hbWU9ImxpbmUtbnVtYmVycy1yb3dzIjtyLmlubmVySFRNTD1saW5lcztpZih0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1zdGFydCIpKXt0LnN0eWxlLmNvdW50ZXJSZXNldD0ibGluZW51bWJlciAiKyhwYXJzZUludCh0LmdldEF0dHJpYnV0ZSgiZGF0YS1zdGFydCIpLDEwKS0xKX1lLmVsZW1lbnQuYXBwZW5kQ2hpbGQocil9KQo7CihmdW5jdGlvbigpe2lmKCFzZWxmLlByaXNtfHwhc2VsZi5kb2N1bWVudHx8IWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IpcmV0dXJuO3ZhciBlPXtqczoiamF2YXNjcmlwdCIsaHRtbDoibWFya3VwIixzdmc6Im1hcmt1cCJ9O0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInByZVtkYXRhLXNyY10iKSkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LmdldEF0dHJpYnV0ZSgiZGF0YS1zcmMiKSxyPShuLm1hdGNoKC9cLihcdyspJC8pfHxbLCIiXSlbMV0saT1lW3JdfHxyLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY29kZSIpO3MuY2xhc3NOYW1lPSJsYW5ndWFnZS0iK2k7dC50ZXh0Q29udGVudD0iIjtzLnRleHRDb250ZW50PSJMb2FkaW5n4oCmIjt0LmFwcGVuZENoaWxkKHMpO3ZhciBvPW5ldyBYTUxIdHRwUmVxdWVzdDtvLm9wZW4oIkdFVCIsbiwhMCk7by5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZihvLnJlYWR5U3RhdGU9PTQpaWYoby5zdGF0dXM8NDAwJiZvLnJlc3BvbnNlVGV4dCl7cy50ZXh0Q29udGVudD1vLnJlc3BvbnNlVGV4dDtQcmlzbS5oaWdobGlnaHRFbGVtZW50KHMpfWVsc2Ugby5zdGF0dXM+PTQwMD9zLnRleHRDb250ZW50PSLinJYgRXJyb3IgIitvLnN0YXR1cysiIHdoaWxlIGZldGNoaW5nIGZpbGU6ICIrby5zdGF0dXNUZXh0OnMudGV4dENvbnRlbnQ9IuKcliBFcnJvcjogRmlsZSBkb2VzIG5vdCBleGlzdCBvciBpcyBlbXB0eSJ9O28uc2VuZChudWxsKX0pfSkoKTs7Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/namespaces/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/namespaces/default.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5Gcm9udEVuZFVzZXJzIDIuMi4wLjY8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgIAogICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZyIvPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1maXhlZC10b3AiPgogICAgPGRpdiBjbGFzcz0ibmF2YmFyLWlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1uYXZiYXIiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9Ii5uYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZWxsaXBzaXMtdmVydGljYWwiPjwvaT4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0iYnJhbmQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPkZyb250RW5kVXNlcnMgMi4yLjAuNjwvYT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBwdWxsLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vaW5kZXguaHRtbCIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBEb2N1bWVudGF0aW9uIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9ImNoYXJ0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJ0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtDbGFzcyBoaWVyYXJjaHkgZGlhZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0icmVwb3J0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtFcnJvcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+OTg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7TWFya2VycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tPGRpdiBjbGFzcz0iZ29fdG9fdG9wIj4tLT4KICAgIDwhLS08YSBocmVmPSIjX19fIiBzdHlsZT0iY29sb3I6IGluaGVyaXQiPkJhY2sgdG8gdG9wJiMxNjA7JiMxNjA7PGkgY2xhc3M9Imljb24tdXBsb2FkIGljb24td2hpdGUiPjwvaT48L2E+LS0+CiAgICA8IS0tPC9kaXY+LS0+CjwvZGl2PgoKPGRpdiBpZD0iX19fIiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiBzaWRlYmFyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24iIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwIj4KICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24tZ3JvdXAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY2NvcmRpb24taGVhZGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJhY2NvcmRpb24tdG9nZ2xlICIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI25hbWVzcGFjZS0xMjgyNzI0NzkiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9uYW1lc3BhY2VzL2RlZmF1bHQuaHRtbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAzMHB4OyBwYWRkaW5nLWxlZnQ6IDAiPlw8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGlkPSJuYW1lc3BhY2UtMTI4MjcyNDc5IiBjbGFzcz0iYWNjb3JkaW9uLWJvZHkgY29sbGFwc2UgaW4iPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWNjb3JkaW9uLWlubmVyIj4KCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9vcHQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfb3B0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwiPmZldV91c2VyX3F1ZXJ5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImNsYXNzIj48YSBocmVmPSIuLi9jbGFzc2VzL0Zyb250RW5kVXNlcnMuaHRtbCI+RnJvbnRFbmRVc2VyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjbGFzcyI+PGEgaHJlZj0iLi4vY2xhc3Nlcy9mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQuaHRtbCI+ZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYW44IGNvbnRlbnQgbmFtZXNwYWNlIj4KICAgICAgICAgICAgICAgICAgICA8bmF2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25hdj4KICAgICAgICAgICAgICAgICAgICA8aDE+PHNtYWxsPjwvc21hbGw+XDwvaDE+CgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkNsYXNzZXM8L2gyPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtaG92ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X29wdC5odG1sIj5mZXVfdXNlcl9xdWVyeV9vcHQ8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48ZW0+PC9lbT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5Lmh0bWwiPmZldV91c2VyX3F1ZXJ5PC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGVtPjwvZW0+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iLi4vY2xhc3Nlcy9Gcm9udEVuZFVzZXJzLmh0bWwiPkZyb250RW5kVXNlcnM8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48ZW0+VGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLCBiZXNpZGVzIGJlaW5nIGEgbW9kdWxlIHRvIHByb3ZpZGUgYXV0aGVudGljYXRpb24gc2VydmljZXMgdG8gdGhlIGZyb250ZW5kIG9mIGEgQ01TTVMgd2Vic2l0ZSBhbHNvIGhhcyBhIGNvbXBsZXRlCmFuZCBmbGV4aWJsZSBBUEkuPC9lbT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIuLi9jbGFzc2VzL2ZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5odG1sIj5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQ8L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48ZW0+PC9lbT48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGFzaWRlIGNsYXNzPSJzcGFuNCBkZXRhaWxzYmFyIj4KICAgICAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5OYW1lc3BhY2UgaGllcmFyY2h5PC9kdD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPSJoaWVyYXJjaHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYW1lc3BhY2Utd3JhcHBlciI+XDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICAgICA8L2FzaWRlPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgIDwvc2VjdGlvbj4KCiAgICA8Zm9vdGVyIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MiI+CiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW4xMCBvZmZzZXQxIj4KICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIGZvb3Rlci1zZWN0aW9ucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWNvZGUiPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPjxpIGNsYXNzPSJpY29uLWJhci1jaGFydCI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj5DbGFzcyBIaWVyYXJjaHkgRGlhZ3JhbTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1wdXNocGluIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vcmVwb3J0cy9lcnJvcnMuaHRtbCI+RXJyb3JzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+TWFya2VyczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MSI+CiAgICAgICAgICAgICAgICAgICAgPGhyIC8+CiAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRhdGlvbiBpcyBwb3dlcmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwZG9jLm9yZy8iPnBocERvY3VtZW50b3IgPC9hPiBhbmQgYXV0aG9yZWQKICAgICAgICAgICAgICAgICAgICBvbiBOb3ZlbWJlciAzMHRoLCAyMDE2IGF0IDEzOjUzLgogICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgPC9zZWN0aW9uPgogICAgPC9mb290ZXI+CjwvZGl2PgoKPC9ib2R5Pgo8L2h0bWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/reports/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/apidoc/reports/deprecated.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT4gICAgICZyYXF1bzsgRGVwcmVjYXRlZCBlbGVtZW50cwo8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgIAogICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZyIvPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1maXhlZC10b3AiPgogICAgPGRpdiBjbGFzcz0ibmF2YmFyLWlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1uYXZiYXIiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9Ii5uYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZWxsaXBzaXMtdmVydGljYWwiPjwvaT4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0iYnJhbmQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPkZyb250RW5kVXNlcnMgMi4yLjAuNjwvYT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBwdWxsLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vaW5kZXguaHRtbCIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBEb2N1bWVudGF0aW9uIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9ImNoYXJ0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJ0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtDbGFzcyBoaWVyYXJjaHkgZGlhZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0icmVwb3J0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtFcnJvcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+OTg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7TWFya2VycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tPGRpdiBjbGFzcz0iZ29fdG9fdG9wIj4tLT4KICAgIDwhLS08YSBocmVmPSIjX19fIiBzdHlsZT0iY29sb3I6IGluaGVyaXQiPkJhY2sgdG8gdG9wJiMxNjA7JiMxNjA7PGkgY2xhc3M9Imljb24tdXBsb2FkIGljb24td2hpdGUiPjwvaT48L2E+LS0+CiAgICA8IS0tPC9kaXY+LS0+CjwvZGl2PgoKPGRpdiBpZD0iX19fIiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ctZmx1aWQiPgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiBzaWRlYmFyIj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJzaWRlLW5hdiBuYXYgbmF2LWxpc3QiPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtaGVhZGVyIj5OYXZpZ2F0aW9uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9InNwYW4xMCBvZmZzZXQyIj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJicmVhZGNydW1iIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi8iPjxpIGNsYXNzPSJpY29uLXN0b3AiPjwvaT48L2E+PHNwYW4gY2xhc3M9ImRpdmlkZXIiPlw8L3NwYW4+PC9saT4KICAgICAgICAgICAgICAgIDxsaT5EZXByZWNhdGVkIGVsZW1lbnRzPC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxkaXYgaWQ9Im1hcmtlci1hY2NvcmRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBuYW1lPSIiIGlkPSIiPjwvYT4KICAgICAgICAgICAgICAgICAgICA8aDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWZpbGUiPjwvaT4gCiAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZmxvYXQ6IHJpZ2h0O3BhZGRpbmctcmlnaHQ6IDEwcHg7Ij4xPC9zbWFsbD4KICAgICAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgbWFya2VycyB0YWJsZS1ib3JkZXJlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlR5cGU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5MaW5lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZGVwcmVjYXRlZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGZvb3RlciBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDIiPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MSI+CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBmb290ZXItc2VjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1iYXItY2hhcnQiPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9ncmFwaHMvY2xhc3MuaHRtbCI+Q2xhc3MgSGllcmFyY2h5IERpYWdyYW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tcHVzaHBpbiI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvZXJyb3JzLmh0bWwiPkVycm9yczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vcmVwb3J0cy9tYXJrZXJzLmh0bWwiPk1hcmtlcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxociAvPgogICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb24gaXMgcG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmcvIj5waHBEb2N1bWVudG9yIDwvYT4gYW5kIGF1dGhvcmVkCiAgICAgICAgICAgICAgICAgICAgb24gTm92ZW1iZXIgMzB0aCwgMjAxNiBhdCAxMzo1My4KICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDwvc2VjdGlvbj4KICAgIDwvZm9vdGVyPgo8L2Rpdj4KCjwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/reports/errors.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT4gICAgICZyYXF1bzsgQ29tcGlsYXRpb24gZXJyb3JzCjwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9IiIvPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiIvPgoKICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vdHdpdHRlci1ib290c3RyYXAvMi4zLjIvY3NzL2Jvb3RzdHJhcC1jb21iaW5lZC5uby1pY29ucy5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvMy4yLjEvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3ByaXNtLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICA8bGluayBocmVmPSIuLi9jc3MvdGVtcGxhdGUuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiLz4KICAgIAogICAgPCEtLVtpZiBsdCBJRSA5XT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2h0bWw1c2hpbS5nb29nbGVjb2RlLmNvbS9zdm4vdHJ1bmsvaHRtbDUuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8IVtlbmRpZl0tLT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMC4yLm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS91aS8xLjEwLjMvanF1ZXJ5LXVpLm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2pzL2Jvb3RzdHJhcC5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Ii4uL2pzL2pxdWVyeS5zbW9vdGgtc2Nyb2xsLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9wcmlzbS5taW4uanMiPjwvc2NyaXB0PgogICAgPCEtLSBUT0RPOiBBZGQgaHR0cDovL2pzY3JvbGxwYW5lLmtlbHZpbmx1Y2suY29tLyB0byBzdHlsZSB0aGUgc2Nyb2xsYmFycyBmb3IgYnJvd3NlcnMgbm90IHVzaW5nIHdlYmtpdC0tPgogICAgCiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii4uL2ltYWdlcy9mYXZpY29uLmljbyIvPgogICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi5wbmciLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjcyeDcyIiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi03Mng3Mi5wbmciLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgc2l6ZXM9IjExNHgxMTQiIGhyZWY9Ii4uL2ltYWdlcy9hcHBsZS10b3VjaC1pY29uLTExNHgxMTQucG5nIi8+CjwvaGVhZD4KPGJvZHk+Cgo8ZGl2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWZpeGVkLXRvcCI+CiAgICA8ZGl2IGNsYXNzPSJuYXZiYXItaW5uZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxhIGNsYXNzPSJidG4gYnRuLW5hdmJhciIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iLm5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1lbGxpcHNpcy12ZXJ0aWNhbCI+PC9pPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDxhIGNsYXNzPSJicmFuZCIgaHJlZj0iLi4vaW5kZXguaHRtbCI+RnJvbnRFbmRVc2VycyAyLjIuMC42PC9hPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2IHB1bGwtcmlnaHQiPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9pbmRleC5odG1sIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJIERvY3VtZW50YXRpb24gPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0iY2hhcnRzLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcnRzIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vZ3JhcGhzL2NsYXNzLmh0bWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1saXN0LWFsdCI+PC9pPiYjMTYwO0NsYXNzIGhpZXJhcmNoeSBkaWFncmFtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iZHJvcGRvd24iIGlkPSJyZXBvcnRzLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3J0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL3JlcG9ydHMvZXJyb3JzLmh0bWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1saXN0LWFsdCI+PC9pPiYjMTYwO0Vycm9ycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij45ODwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL3JlcG9ydHMvbWFya2Vycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtNYXJrZXJzIDxzcGFuIGNsYXNzPSJsYWJlbCBsYWJlbC1pbmZvIHB1bGwtcmlnaHQiPjA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDwhLS08ZGl2IGNsYXNzPSJnb190b190b3AiPi0tPgogICAgPCEtLTxhIGhyZWY9IiNfX18iIHN0eWxlPSJjb2xvcjogaW5oZXJpdCI+QmFjayB0byB0b3AmIzE2MDsmIzE2MDs8aSBjbGFzcz0iaWNvbi11cGxvYWQgaWNvbi13aGl0ZSI+PC9pPjwvYT4tLT4KICAgIDwhLS08L2Rpdj4tLT4KPC9kaXY+Cgo8ZGl2IGlkPSJfX18iIGNsYXNzPSJjb250YWluZXItZmx1aWQiPgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJyb3ctZmx1aWQiPgogICAgICAgIDxkaXYgY2xhc3M9InNwYW4yIHNpZGViYXIiPgoKICAgICAgICAgICAgPHVsIGNsYXNzPSJzaWRlLW5hdiBuYXYgbmF2LWxpc3QiPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtaGVhZGVyIj5OYXZpZ2F0aW9uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjbGliL2NsYXNzLmZldV91c2VyX3F1ZXJ5LnBocCI+PGkgY2xhc3M9Imljb24tZmlsZSI+PC9pPiBsaWIvY2xhc3MuZmV1X3VzZXJfcXVlcnkucGhwPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI0Zyb250RW5kVXNlcnMubW9kdWxlLnBocCI+PGkgY2xhc3M9Imljb24tZmlsZSI+PC9pPiBGcm9udEVuZFVzZXJzLm1vZHVsZS5waHA8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjbGliL2NsYXNzLmZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5waHAiPjxpIGNsYXNzPSJpY29uLWZpbGUiPjwvaT4gbGliL2NsYXNzLmZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldC5waHA8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMTAgb2Zmc2V0MiI+CiAgICAgICAgICAgIDx1bCBjbGFzcz0iYnJlYWRjcnVtYiI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vIj48aSBjbGFzcz0iaWNvbi1yZW1vdmUtc2lnbiI+PC9pPjwvYT48c3BhbiBjbGFzcz0iZGl2aWRlciI+XDwvc3Bhbj48L2xpPgogICAgICAgICAgICAgICAgPGxpPkNvbXBpbGF0aW9uIEVycm9yczwvbGk+CiAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhY2thZ2UtY29udGVudHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9ImxpYi9jbGFzcy5mZXVfdXNlcl9xdWVyeS5waHAiIGlkPSJsaWIvY2xhc3MuZmV1X3VzZXJfcXVlcnkucGhwIj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWZpbGUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9jbGFzcy5mZXVfdXNlcl9xdWVyeS5waHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZmxvYXQ6IHJpZ2h0O3BhZGRpbmctcmlnaHQ6IDEwcHg7Ij41MTwvc21hbGw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIG1hcmtlcnMgdGFibGUtYm9yZGVyZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkxpbmU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4wPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IHdhcyBmb3VuZCBmb3IgdGhpcyBmaWxlPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjM5PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBjbGFzcyBcZmV1X3VzZXJfcXVlcnlfb3B0PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjU2PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBwcm9wZXJ0eSAkX3R5cGU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+NTc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIHByb3BlcnR5ICRfZXhwcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD41ODwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgcHJvcGVydHkgJF9vcHQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+NjA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICR0eXBlIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgX19jb25zdHJ1Y3QoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD42MDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+QXJndW1lbnQgJGV4cHIgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBfX2NvbnN0cnVjdCgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjYwPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkb3B0IGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgX19jb25zdHJ1Y3QoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD42MDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIF9fY29uc3RydWN0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTAzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgZ2V0X3R5cGUoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMDg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBnZXRfZXhwcigpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjExMzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIGdldF9vcHQoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMjA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIGNsYXNzIFxmZXVfdXNlcl9xdWVyeTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMzE8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIHByb3BlcnR5ICRfYW5kX29wdHM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTMyPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBwcm9wZXJ0eSAkX2dyb3VwczwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMzM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIHByb3BlcnR5ICRfcGFnZWxpbWl0PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjEzNDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgcHJvcGVydHkgJF9vZmZzZXQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTM1PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBwcm9wZXJ0eSAkX3Jlc3VsdF90eXBlPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjEzNjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgcHJvcGVydHkgJF9zb3J0Ynk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTM3PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBwcm9wZXJ0eSAkX3NvcnRvcmRlcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMzg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIHByb3BlcnR5ICRfZGVlcDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMzk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIHByb3BlcnR5ICRfd2VicmVhZHk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTQxPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgX19jb25zdHJ1Y3QoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xNDY8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICRwYWdlbGltaXQgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBzZXRfcGFnZWxpbWl0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTQ2PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2Qgc2V0X3BhZ2VsaW1pdCgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE1MzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIGdldF9wYWdlbGltaXQoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xNTg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICRuIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2Ygc2V0X29mZnNldCgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE1ODwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIHNldF9vZmZzZXQoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xNjM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBnZXRfb2Zmc2V0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTY4PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkZmxhZyBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIHNldF9kZWVwKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTY4PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2Qgc2V0X2RlZXAoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xNzM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBnZXRfZGVlcCgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE3ODwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+QXJndW1lbnQgJGZsYWcgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBzZXRfd2VicmVhZHkoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xNzg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBzZXRfd2VicmVhZHkoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xODM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBnZXRfd2VicmVhZHkoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xODg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICR0eXBlIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2Ygc2V0X3Jlc3VsdF90eXBlKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTg4PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2Qgc2V0X3Jlc3VsdF90eXBlKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjAzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgZ2V0X3Jlc3VsdF90eXBlKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjA4PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkdmFsIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2Ygc2V0X3NvcnRieSgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjIwODwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIHNldF9zb3J0YnkoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yMjI8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBnZXRfc29ydGJ5KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjI3PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkdmFsIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2Ygc2V0X3NvcnRvcmRlcigpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjIyNzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIHNldF9zb3J0b3JkZXIoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yNDA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBnZXRfc29ydG9yZGVyKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjQ1PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkdHlwZSBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIGFkZF9hbmRfb3B0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjQ1PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkdmFsdWUgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBhZGRfYW5kX29wdCgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjI0NTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIGFkZF9hbmRfb3B0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjUwPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgYWRkX2FuZF9vcHRfb2JqKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjU1PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgY291bnRfb3B0cygpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjI2MDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIGdldF9vcHRzKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjY1PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgZXhlY3V0ZSgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhY2thZ2UtY29udGVudHMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5hbWU9IkZyb250RW5kVXNlcnMubW9kdWxlLnBocCIgaWQ9IkZyb250RW5kVXNlcnMubW9kdWxlLnBocCI+PC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8aDM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbi1maWxlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udEVuZFVzZXJzLm1vZHVsZS5waHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBzdHlsZT0iZmxvYXQ6IHJpZ2h0O3BhZGRpbmctcmlnaHQ6IDEwcHg7Ij4yOTwvc21hbGw+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIG1hcmtlcnMgdGFibGUtYm9yZGVyZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5UeXBlPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkxpbmU8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD41ODc8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBHZXRBZG1pbk1lbnVJdGVtcygpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjEyNzQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICR1aWRzIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgR2V0QnVsa1VzZXJJbmZvKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTI3NDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+QXJndW1lbnQgJGRlZXAgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBHZXRCdWxrVXNlckluZm8oKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xMjc0PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgR2V0QnVsa1VzZXJJbmZvKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTYwNDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+QXJndW1lbnQgJGNoZWNrX2V4aXN0aW5nIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgSXNWYWxpZEVtYWlsQWRkcmVzcygpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE2NDk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICRmb3JjZV9sb2dvdXQgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBMb2dpbigpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE2ODU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICRldmVudG1zZyBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIExvZ291dFVzZXIoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xODE1PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkcGxhaW5fcGFzc3dvcmQgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBFbmNyeXB0UGFzc3dvcmQoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xOTIwPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkdWlkIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgQWRkVXNlclRvR3JvdXAoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xOTIwPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkZ2lkIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgQWRkVXNlclRvR3JvdXAoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xOTI2PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkdWlkIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgU2V0VXNlclByb3BlcnRpZXMoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xOTI2PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkcHJvcHMgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBTZXRVc2VyUHJvcGVydGllcygpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE5MjY8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBTZXRVc2VyUHJvcGVydGllcygpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE5MzI8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICR0aXRsZSBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIFNldFVzZXJQcm9wZXJ0eSgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE5MzI8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICRkYXRhIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgU2V0VXNlclByb3BlcnR5KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTkzMjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIFNldFVzZXJQcm9wZXJ0eSgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE5Mzg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICR1aWQgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBJc1VzZXJQcm9wZXJ0eVZhbHVlVW5pcXVlKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTkzODwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+QXJndW1lbnQgJHRpdGxlIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgSXNVc2VyUHJvcGVydHlWYWx1ZVVuaXF1ZSgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE5Mzg8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICR2YWx1ZSBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIElzVXNlclByb3BlcnR5VmFsdWVVbmlxdWUoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xOTM4PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgSXNVc2VyUHJvcGVydHlWYWx1ZVVuaXF1ZSgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE5NDQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICR0aXRsZSBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIFNldFVzZXJQcm9wZXJ0eUZ1bGwoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xOTQ0PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkZGF0YSBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIFNldFVzZXJQcm9wZXJ0eUZ1bGwoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xOTQ0PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkdXNlcmlkIGlzIG1pc3NpbmcgZnJvbSB0aGUgRG9jYmxvY2sgb2YgU2V0VXNlclByb3BlcnR5RnVsbCgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjE5NDQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBTZXRVc2VyUHJvcGVydHlGdWxsKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTk1MDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+QXJndW1lbnQgJHVpZCBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIFVzZXJFeGlzdHNCeUlEKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTk1MDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIFVzZXJFeGlzdHNCeUlEKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTk1NjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+QXJndW1lbnQgJHVpZCBpcyBtaXNzaW5nIGZyb20gdGhlIERvY2Jsb2NrIG9mIFNldEVuY3J5cHRpb25LZXkoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4xOTU2PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5Bcmd1bWVudCAkZm9yY2UgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBTZXRFbmNyeXB0aW9uS2V5KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MTk1NjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIFNldEVuY3J5cHRpb25LZXkoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWNrYWdlLWNvbnRlbnRzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBuYW1lPSJsaWIvY2xhc3MuZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0LnBocCIgaWQ9ImxpYi9jbGFzcy5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQucGhwIj48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWZpbGUiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYi9jbGFzcy5mZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQucGhwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgc3R5bGU9ImZsb2F0OiByaWdodDtwYWRkaW5nLXJpZ2h0OiAxMHB4OyI+MTg8L3NtYWxsPgogICAgICAgICAgICAgICAgICAgICAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSBtYXJrZXJzIHRhYmxlLWJvcmRlcmVkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+VHlwZTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5MaW5lPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkRlc2NyaXB0aW9uPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSB3YXMgZm91bmQgZm9yIHRoaXMgZmlsZTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4zOTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgY2xhc3MgXGZldV91c2VyX3F1ZXJ5X3Jlc3VsdHNldDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD40MTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgcHJvcGVydHkgJF9xdWVyeTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD40MjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgcHJvcGVydHkgJF9leGVjdXRlZDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD40MzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgcHJvcGVydHkgJF9yczwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD40NDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgcHJvcGVydHkgJF9mb3VuZF9yb3dzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjQ1PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBwcm9wZXJ0eSAkX2dyb3VwczwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD40NzwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIF9fY29uc3RydWN0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+NTM8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBfZ2V0X2dyb3VwcygpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjYzPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgX2V4ZWN1dGUoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yNTQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPk5vIHN1bW1hcnkgZm9yIG1ldGhvZCBSZWNvcmRDb3VudCgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjI2MDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIE1vdmVOZXh0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjY2PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgTW92ZUZpcnN0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MjcyPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgRU9GKCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Mjc4PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgQ2xvc2UoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPmVycm9yPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4yODQ8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPkFyZ3VtZW50ICRrZXkgaXMgbWlzc2luZyBmcm9tIHRoZSBEb2NibG9jayBvZiBfX2dldCgpPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ZXJyb3I8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjI4NDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+Tm8gc3VtbWFyeSBmb3IgbWV0aG9kIF9fZ2V0KCk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5lcnJvcjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+MzE3PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5ObyBzdW1tYXJ5IGZvciBtZXRob2QgZ2V0X2ZvdW5kX3Jvd3MoKTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPGZvb3RlciBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDIiPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MSI+CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBmb290ZXItc2VjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1iYXItY2hhcnQiPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9ncmFwaHMvY2xhc3MuaHRtbCI+Q2xhc3MgSGllcmFyY2h5IERpYWdyYW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tcHVzaHBpbiI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvZXJyb3JzLmh0bWwiPkVycm9yczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vcmVwb3J0cy9tYXJrZXJzLmh0bWwiPk1hcmtlcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxociAvPgogICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb24gaXMgcG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmcvIj5waHBEb2N1bWVudG9yIDwvYT4gYW5kIGF1dGhvcmVkCiAgICAgICAgICAgICAgICAgICAgb24gTm92ZW1iZXIgMzB0aCwgMjAxNiBhdCAxMzo1My4KICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDwvc2VjdGlvbj4KICAgIDwvZm9vdGVyPgo8L2Rpdj4KCjwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/apidoc/reports/markers.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9MCIvPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT4gICAgICZyYXF1bzsgTWFya2Vycwo8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSIiLz4KICAgIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSIiLz4KCiAgICA8bGluayBocmVmPSJodHRwczovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL3R3aXR0ZXItYm9vdHN0cmFwLzIuMy4yL2Nzcy9ib290c3RyYXAtY29tYmluZWQubm8taWNvbnMubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vbmV0ZG5hLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzMuMi4xL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICAgIDxsaW5rIGhyZWY9Ii4uL2Nzcy9wcmlzbS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIvPgogICAgPGxpbmsgaHJlZj0iLi4vY3NzL3RlbXBsYXRlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIi8+CiAgICAKICAgIDwhLS1baWYgbHQgSUUgOV0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2h0bWw1LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogICAgPCFbZW5kaWZdLS0+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vanF1ZXJ5LTEuMTAuMi5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jb2RlLmpxdWVyeS5jb20vdWkvMS4xMC4zL2pxdWVyeS11aS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9uZXRkbmEuYm9vdHN0cmFwY2RuLmNvbS90d2l0dGVyLWJvb3RzdHJhcC8yLjMuMi9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9qcXVlcnkuc21vb3RoLXNjcm9sbC5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iLi4vanMvcHJpc20ubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gVE9ETzogQWRkIGh0dHA6Ly9qc2Nyb2xscGFuZS5rZWx2aW5sdWNrLmNvbS8gdG8gc3R5bGUgdGhlIHNjcm9sbGJhcnMgZm9yIGJyb3dzZXJzIG5vdCB1c2luZyB3ZWJraXQtLT4KICAgIAogICAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iLz4KICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24ucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSI3Mng3MiIgaHJlZj0iLi4vaW1hZ2VzL2FwcGxlLXRvdWNoLWljb24tNzJ4NzIucG5nIi8+CiAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHNpemVzPSIxMTR4MTE0IiBocmVmPSIuLi9pbWFnZXMvYXBwbGUtdG91Y2gtaWNvbi0xMTR4MTE0LnBuZyIvPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1maXhlZC10b3AiPgogICAgPGRpdiBjbGFzcz0ibmF2YmFyLWlubmVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1uYXZiYXIiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9Ii5uYXYtY29sbGFwc2UiPgogICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tZWxsaXBzaXMtdmVydGljYWwiPjwvaT4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBjbGFzcz0iYnJhbmQiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiPkZyb250RW5kVXNlcnMgMi4yLjAuNjwvYT4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBwdWxsLXJpZ2h0Ij4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi4vaW5kZXguaHRtbCIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSSBEb2N1bWVudGF0aW9uIDxiIGNsYXNzPSJjYXJldCI+PC9iPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biIgaWQ9ImNoYXJ0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJ0cyA8YiBjbGFzcz0iY2FyZXQiPjwvYj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4uL2dyYXBocy9jbGFzcy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtDbGFzcyBoaWVyYXJjaHkgZGlhZ3JhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIiBpZD0icmVwb3J0cy1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9ImRyb3Bkb3duLXRvZ2dsZSIgZGF0YS10b2dnbGU9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcG9ydHMgPGIgY2xhc3M9ImNhcmV0Ij48L2I+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL2Vycm9ycy5odG1sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9Imljb24tbGlzdC1hbHQiPjwvaT4mIzE2MDtFcnJvcnMgPHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWluZm8gcHVsbC1yaWdodCI+OTg8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi9yZXBvcnRzL21hcmtlcnMuaHRtbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJpY29uLWxpc3QtYWx0Ij48L2k+JiMxNjA7TWFya2VycyA8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyBwdWxsLXJpZ2h0Ij4wPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8IS0tPGRpdiBjbGFzcz0iZ29fdG9fdG9wIj4tLT4KICAgIDwhLS08YSBocmVmPSIjX19fIiBzdHlsZT0iY29sb3I6IGluaGVyaXQiPkJhY2sgdG8gdG9wJiMxNjA7JiMxNjA7PGkgY2xhc3M9Imljb24tdXBsb2FkIGljb24td2hpdGUiPjwvaT48L2E+LS0+CiAgICA8IS0tPC9kaXY+LS0+CjwvZGl2PgoKPGRpdiBpZD0iX19fIiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMiBzaWRlYmFyIj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJzaWRlLW5hdiBuYXYgbmF2LWxpc3QiPgogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXYtaGVhZGVyIj5OYXZpZ2F0aW9uPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzcGFuMTAgb2Zmc2V0MiI+CgogICAgICAgICAgICA8dWwgY2xhc3M9ImJyZWFkY3J1bWIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uLyI+PGkgY2xhc3M9Imljb24tbWFwLW1hcmtlciI+PC9pPjwvYT48c3BhbiBjbGFzcz0iZGl2aWRlciI+XDwvc3Bhbj48L2xpPgogICAgICAgICAgICAgICAgPGxpPk1hcmtlcnM8L2xpPgogICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPk5vIG1hcmtlcnMgaGF2ZSBiZWVuIGZvdW5kIGluIHRoaXMgcHJvamVjdC48L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgaWQ9Im1hcmtlci1hY2NvcmRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CgogICAgPGZvb3RlciBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDIiPgogICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJzcGFuMTAgb2Zmc2V0MSI+CiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCBmb290ZXItc2VjdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1jb2RlIj48L2k+PC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT48aSBjbGFzcz0iaWNvbi1iYXItY2hhcnQiPjwvaT48L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIuLi9ncmFwaHMvY2xhc3MuaHRtbCI+Q2xhc3MgSGllcmFyY2h5IERpYWdyYW08L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InNwYW40Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+PGkgY2xhc3M9Imljb24tcHVzaHBpbiI+PC9pPjwvaDE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii4uL3JlcG9ydHMvZXJyb3JzLmh0bWwiPkVycm9yczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLi4vcmVwb3J0cy9tYXJrZXJzLmh0bWwiPk1hcmtlcnM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+CiAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9InJvdy1mbHVpZCI+CiAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz0ic3BhbjEwIG9mZnNldDEiPgogICAgICAgICAgICAgICAgICAgIDxociAvPgogICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb24gaXMgcG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vd3d3LnBocGRvYy5vcmcvIj5waHBEb2N1bWVudG9yIDwvYT4gYW5kIGF1dGhvcmVkCiAgICAgICAgICAgICAgICAgICAgb24gTm92ZW1iZXIgMzB0aCwgMjAxNiBhdCAxMzo1My4KICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4KICAgICAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDwvc2VjdGlvbj4KICAgIDwvZm9vdGVyPgo8L2Rpdj4KCjwvYm9keT4KPC9odG1sPgo=]]></data>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoKICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhpcyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFuY2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderDeleted.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLyBhbiBvcmRlciBoYXMgYmVlbiBkZWxldGVkLgppZiggIWlzc2V0KCRwYXJhbXNbJ29yZGVyX2lkJ10pICkgcmV0dXJuOwoKLy8gaGFuZGxlIHRoZSBjYXNlIG9mIGF0dGVtcHRlZCByZWN1cnNpb24uCmlmKCBjZ2VfdG1wZGF0YTo6ZXhpc3RzKF9fRklMRV9fKSApIHJldHVybjsKY2dlX3RtcGRhdGE6OnNldChfX0ZJTEVfXywxKTsKCi8vIGhlcmUgd2UgZ3JhYiB0aGUgb3JkZXIgZGlyZWN0bHkuCiRvcmRlcl9pZCA9IChpbnQpJHBhcmFtc1snb3JkZXJfaWQnXTsKJG9yZGVyX29iaiA9IG9yZGVyc19vcHM6OmxvYWRfYnlfaWQoJG9yZGVyX2lkKTsKaWYoICEkb3JkZXJfb2JqICkKICB7CiAgICByZXR1cm47CiAgfQoKLy8gZmluZCB0aGUgbGluZSBpdGVtIHdpdGggYSBTZWxmUmVnIFN1YnNjcmlwdGlvbi4KZm9yKCAkcyA9IDA7ICRzIDwgJG9yZGVyX29iai0+Y291bnRfZGVzdGluYXRpb25zKCk7ICRzKysgKQogIHsKICAgICRzaGlwcGluZyA9ICRvcmRlcl9vYmotPmdldF9zaGlwcGluZygkcyk7CiAgICBmb3IoICRpID0gMDsgJGkgPCAkc2hpcHBpbmctPmNvdW50X2FsbF9pdGVtcygpOyAkaSsrICkKICAgICAgewoJJGl0ZW0gPSAkc2hpcHBpbmctPmdldF9pdGVtKCRpKTsKCWlmKCAkaXRlbS0+Z2V0X3NvdXJjZSgpICE9ICdTZWxmUmVnaXN0cmF0aW9uJyApCgkgIHsKCSAgICBjb250aW51ZTsKCSAgfQoJaWYoICRpdGVtLT5nZXRfaXRlbV90eXBlKCkgIT0gbGluZV9pdGVtOjpJVEVNVFlQRV9TRVJWSUNFICkgY29udGludWU7CglpZiggISRpdGVtLT5pc19zdWJzY3JpcHRpb24oKSApIGNvbnRpbnVlOwoKCSR1aWQgPSAkaXRlbS0+Z2V0X2V4dHJhKCdmZXVfdWlkJyk7CglpZiggISR1aWQgKSBjb250aW51ZTsgIC8vIG5vIGFzc29jZGF0YSwgbWF5YmUgdGhpcyB1c2VyIG5ldmVyIHBhaWQuCgoJJHVpbmZvID0gJHRoaXMtPkdldFVzZXJJbmZvKCAkdWlkICk7CglpZiggIWlzX2FycmF5KCR1aW5mbykgfHwgJHVpbmZvWzBdID09IEZBTFNFICkKCSAgewoJICAgICR0aGlzLT5BdWRpdCgkdWlkLCR0aGlzLT5HZXROYW1lKCksCgkJCSBzcHJpbnRmKCdPcmRlciAlZCBkZWxldGVkIGJ1dCBjYW5ub3QgZmluZCB1c2VyIGFjY291bnQnLCRvcmRlcl9pZCkpOwoJICAgIHJldHVybjsKCSAgfQoJJHVpbmZvID0gJHVpbmZvWzFdOwoKCXN3aXRjaCggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Vjb21tX29yZGVyZGVsZXRlZCcpICkKCSAgewoJICBjYXNlICdkZWxldGUnOgoJICAgICR0aGlzLT5EZWxldGVBbGxVc2VyUHJvcGVydGllcygnJywkdWlkLHRydWUpOwoJICAgICR0aGlzLT5EZWxldGVVc2VyRnVsbCgkdWlkKTsKCSAgICAkdGhpcy0+QXVkaXQoJHVpZCwkdGhpcy0+R2V0TmFtZSgpLAoJCQkgc3ByaW50ZignRGVsZXRlZCB1c2VyICVzIGJlY2F1c2Ugb3JkZXIgJWQgd2FzIGRlbGV0ZWQnLCR1aW5mb1sndXNlcm5hbWUnXSwkb3JkZXJfaWQpKTsKCSAgICBicmVhazsKCgkgIGNhc2UgJ2V4cGlyZSc6CgkgICAgJHRoaXMtPlNldFVzZXIoJHVpZCwkdWluZm9bJ3VzZXJuYW1lJ10sJHVpbmZvWydwYXNzd29yZCddLHRpbWUoKS0zNjAwLGZhbHNlKTsKCSAgICAkdGhpcy0+QXVkaXQoJHVpZCwkdGhpcy0+R2V0TmFtZSgpLAoJCQkgc3ByaW50ZignRXhwaXJlZCB1c2VyICVzIGJlY2F1c2Ugb3JkZXIgJWQgd2FzIGRlbGV0ZWQnLCR1aW5mb1sndXNlcm5hbWUnXSwkb3JkZXJfaWQpKTsKCSAgICBicmVhazsKCgkgIGNhc2UgJ25vbmUnOgoJICBkZWZhdWx0OgoJICAgIGJyZWFrOwoJICB9CgogICAgICB9CiAgfQoKLy8gc2V0dXAgZm9yIGFub3RoZXIgb3JkZXIuLi4gc2hvdWxkbid0IGhhcHBlbiwgYnV0IGp1c3QgaW4gY2FzZS4KY2dlX3RtcGRhdGE6OmVyYXNlKF9fRklMRV9fKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderUpdated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLyBhbiBvcmRlciBoYXMgYmVlbiBkZWxldGVkLgppZiggIWlzc2V0KCRwYXJhbXNbJ29yZGVyX2lkJ10pICkgcmV0dXJuOwoKLy8gaGFuZGxlIHRoZSBjYXNlIG9mIGF0dGVtcHRlZCByZWN1cnNpb24uCgppZiggY2dlX3RtcGRhdGE6OmV4aXN0cyhfX0ZJTEVfXykgKSByZXR1cm47CmNnZV90bXBkYXRhOjpzZXQoX19GSUxFX18sMSk7CgovLyBoZXJlIHdlIGdyYWIgdGhlIG9yZGVyIGRpcmVjdGx5Lgokb3JkZXJfaWQgPSAoaW50KSRwYXJhbXNbJ29yZGVyX2lkJ107CiRvcmRlcl9vYmogPSBvcmRlcnNfb3BzOjpsb2FkX2J5X2lkKCRvcmRlcl9pZCk7CmlmKCAhJG9yZGVyX29iaiApIHJldHVybjsKaWYoICRvcmRlcl9vYmotPmdldF9zdGF0dXMoKSAhPSAnY2FuY2VsbGVkJyApIHJldHVybjsKCi8vIGZpbmQgdGhlIGxpbmUgaXRlbSB3aXRoIGEgU2VsZlJlZyBTdWJzY3JpcHRpb24uCmZvciggJHMgPSAwOyAkcyA8ICRvcmRlcl9vYmotPmNvdW50X2Rlc3RpbmF0aW9ucygpOyAkcysrICkgewogICRzaGlwcGluZyA9ICRvcmRlcl9vYmotPmdldF9zaGlwcGluZygkcyk7CiAgZm9yKCAkaSA9IDA7ICRpIDwgJHNoaXBwaW5nLT5jb3VudF9hbGxfaXRlbXMoKTsgJGkrKyApIHsKICAgICRpdGVtID0gJHNoaXBwaW5nLT5nZXRfaXRlbSgkaSk7CiAgICBpZiggJGl0ZW0tPmdldF9zb3VyY2UoKSAhPSAnU2VsZlJlZ2lzdHJhdGlvbicgKSBjb250aW51ZTsKICAgIGlmKCAkaXRlbS0+Z2V0X2l0ZW1fdHlwZSgpICE9IGxpbmVfaXRlbTo6SVRFTVRZUEVfU0VSVklDRSApIGNvbnRpbnVlOwogICAgaWYoICEkaXRlbS0+aXNfc3Vic2NyaXB0aW9uKCkgKSBjb250aW51ZTsKCiAgICAkdWlkID0gJGl0ZW0tPmdldF9leHRyYSgnZmV1X3VpZCcpOwogICAgaWYoICEkdWlkICkgY29udGludWU7ICAvLyBubyBhc3NvY2RhdGEsIG1heWJlIHRoaXMgdXNlciBuZXZlciBwYWlkLgoKICAgICR1aW5mbyA9ICR0aGlzLT5HZXRVc2VySW5mbyggJHVpZCApOwogICAgaWYoICFpc19hcnJheSgkdWluZm8pIHx8ICR1aW5mb1swXSA9PSBGQUxTRSApIHsKICAgICAgJHRoaXMtPkF1ZGl0KCR1aWQsJHRoaXMtPkdldE5hbWUoKSxzcHJpbnRmKCdPcmRlciAlZCBkZWxldGVkIGJ1dCBjYW5ub3QgZmluZCB1c2VyIGFjY291bnQnLCRvcmRlcl9pZCkpOwogICAgICByZXR1cm47CiAgICB9CiAgICAkdWluZm8gPSAkdWluZm9bMV07CgogICAgc3dpdGNoKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZWNvbW1fb3JkZXJjYW5jZWxsZWQnKSApIHsKICAgIGNhc2UgJ2RlbGV0ZSc6CiAgICAgICR0aGlzLT5EZWxldGVBbGxVc2VyUHJvcGVydGllcygnJywkdWlkLHRydWUpOwogICAgICAkdGhpcy0+RGVsZXRlVXNlcihGdWxsJHVpZCk7CiAgICAgICR0aGlzLT5BdWRpdCgkdWlkLCR0aGlzLT5HZXROYW1lKCksCgkJICAgc3ByaW50ZignRGVsZXRlZCB1c2VyICVzIGJlY2F1c2Ugb3JkZXIgJWQgd2FzIGRlbGV0ZWQnLCR1aW5mb1sndXNlcm5hbWUnXSwkb3JkZXJfaWQpKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAnZXhwaXJlJzoKICAgICAgJHRoaXMtPlNldFVzZXIoJHVpZCwkdWluZm9bJ3VzZXJuYW1lJ10sJHVpbmZvWydwYXNzd29yZCddLHRpbWUoKS0zNjAwKTsKICAgICAgJHRoaXMtPkF1ZGl0KCR1aWQsJHRoaXMtPkdldE5hbWUoKSwKCQkgICBzcHJpbnRmKCdFeHBpcmVkIHVzZXIgJXMgYmVjYXVzZSBvcmRlciAlZCB3YXMgZGVsZXRlZCcsJHVpbmZvWyd1c2VybmFtZSddLCRvcmRlcl9pZCkpOwogICAgICBicmVhazsKCiAgICBjYXNlICdub25lJzoKICAgIGRlZmF1bHQ6CiAgICAgIGJyZWFrOwogICAgfQogIH0KfQoKLy8gc2V0dXAgZm9yIGFub3RoZXIgb3JkZXIuLi4gc2hvdWxkbid0IGhhcHBlbiwgYnV0IGp1c3QgaW4gY2FzZS4KY2dlX3RtcGRhdGE6OmVyYXNlKF9fRklMRV9fKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ContentPostRender.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwpyZXR1cm47CgovLyAwLiAgQ2hlY2sgY21zIHZlcnNpb24KZ2xvYmFsICRDTVNfVkVSU0lPTjsKaWYoIHZlcnNpb25fY29tcGFyZSgkQ01TX1ZFUlNJT04sJzIuMC1iZXRhMScpIDwgMCApIHsKICAvLyBub3QgQ01TIDIuMCwgZG9uJ3QgZ28gYW55IGZ1cnRoZXIuCiAgcmV0dXJuOwp9CgovLyAxLiAgR2V0IHRoZSBjb250ZW50X2lkCiRjb250ZW50X2lkID0gY21zX3V0aWxzOjpnZXRfY3VycmVudF9wYWdlaWQoKTsKaWYoICRjb250ZW50X2lkIDw9IDAgKSByZXR1cm47CgovLyAyLiAgR2V0IHRoZSBjb250ZW50IG9iamVjdAppZiggY2xhc3NfZXhpc3RzKCdDTVNDb250ZW50JykpCiRjb250ZW50X29iaiA9IENtc0NvbnRlbnRPcGVyYXRpb25zOjpsb2FkX2NvbnRlbnRfZnJvbV9pZCgkY29udGVudF9pZCk7CmlmKCAhaXNfb2JqZWN0KCRjb250ZW50X29iaikgKQogIHsKICAgIHJldHVybjsKICB9CgovLyAzLiAgR2V0IHRoZSBwcm9wZXJ0aWVzLgokY29udGVudF9vYmotPmxvYWRfcHJvcGVydGllcygpOwokZmV1X2dyb3VwcyA9ICRjb250ZW50X29iai0+Z2V0X3Byb3BlcnR5X3ZhbHVlKCdmZXVfZ3JvdXBzJyk7CiRmZXVfcmVkaXJlY3QgPSAkY29udGVudF9vYmotPmdldF9wcm9wZXJ0eV92YWx1ZSgnZmV1X3JlZGlyZWN0Jyk7CgovLyBpZiB0aGUgZ3JvdXBzIGxpc3QgaXMgZW1wdHksIHJldHVybi4KaWYoICRmZXVfZ3JvdXBzID09ICcnICkgcmV0dXJuOwoKLy8gY2hlY2sgdGhpcyB1c2VycyBtZW1iZXIgZ3JvdXBzCiRwYXNzZWQgPSBmYWxzZTsKJHVpZCA9ICR0aGlzLT5Mb2dnZWRJbklkKCk7CmlmKCAkdWlkICkKICB7CiAgICAvLyBnZXQgdGhlIG1lbWJlciBncm91cHMuCiAgICAkdDEgPSAkdGhpcy0+R2V0TWVtYmVyR3JvdXBzKCR1aWQpOwogICAgaWYoIGlzX2FycmF5KCAkdDEgKSApCiAgICAgIHsKCS8vIHVzZXIgaXMgYSBtZW1iZXIgb2YgYXQgbGVhc3Qgb25lIGdyb3VwCgkkbWVtYmVyZ3JvdXBzID0gYXJyYXkoKTsKCWZvcmVhY2goICR0MSBhcyAkcm93ICkKCSAgewoJICAgICRtZW1iZXJncm91cHNbXSA9ICRyb3dbJ2dyb3VwaWQnXTsKCSAgfQoKCS8vIHRlc3QgbWVtYmVyc2hpcC4KCSR0MSA9IGV4cGxvZGUoJywnLCRmZXVfZ3JvdXBzKTsKCWlmKCBpbl9hcnJheSgkdDEsJy0xJykgKQoJICB7CgkgICAgLy8gYW55IGdyb3VwIHdpbGwgZG8uCgkgICAgJHBhc3NlZCA9IHRydWU7CgkgIH0KCWVsc2UKCSAgewoJICAgICR0bXAgPSBhcnJheV9pbnRlcnNlY3QoJG1lbWJlcmdyb3VwcywkdDIpOwoJICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSA+IDAgKQoJICAgICAgewoJCSRwYXNzZWQgPSB0cnVlOwoJICAgICAgfQoJICB9CiAgICAgIH0KICB9CgppZiggISRwYXNzZWQgKQogIHsKICAgIGlmKCAkZmV1X3JlZGlyZWN0ICE9IC0xICkKICAgICAgewoJcmVkaXJlY3RfdG9fYWxpYXMoJGZldV9yZWRpcmVjdCk7CiAgICAgIH0KICB9CiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/FrontEndUsers.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIGNsYXNzLgogKgogKiBAcGFja2FnZSBGcm9udEVuZFVzZXJzCiAqLwoKLyoqCiAqIFRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSwgYmVzaWRlcyBiZWluZyBhIG1vZHVsZSB0byBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2VzIHRvIHRoZSBmcm9udGVuZCBvZiBhIENNU01TIHdlYnNpdGUgYWxzbyBoYXMgYSBjb21wbGV0ZQogKiBhbmQgZmxleGlibGUgQVBJLgogKgogKiBAcGFja2FnZSBGcm9udEVuZFVzZXJzCiAqLwpmaW5hbCBjbGFzcyBGcm9udEVuZFVzZXJzIGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKICAgIC8qKgogICAgICogQ29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgdGV4dCBwcm9wZXJ0eS4KICAgICAqLwogICAgY29uc3QgRklFTERUWVBFX1RFWFQgPSAwOwoKICAgIC8qKgogICAgICogQ29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgY2hlY2tib3ggcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9DSEVDS0JPWCA9IDE7CgogICAgLyoqCiAgICAgKiBDb25zdGFudCB0byBpbmRlbnRpZnkgYW4gZW1haWwgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9FTUFJTCA9IDI7CgogICAgLyoqCiAgICAgKiBDb25zdGFudCB0byBpbmRlbnRpZnkgYSB0ZXh0YXJlYSBwcm9wZXJ0eS4KICAgICAqLwogICAgY29uc3QgRklFTERUWVBFX1RFWFRBUkVBID0gMzsKCiAgICAvKioKICAgICAqIENvbnN0YW50IHRvIGluZGVudGlmeSBhIGRyb3Bkb3duIHByb3BlcnR5LgogICAgICovCiAgICBjb25zdCBGSUVMRFRZUEVfRFJPUERPV04gPSA0OwoKICAgIC8qKgogICAgICogQ29uc3RhbnQgdG8gaW5kZW50aWZ5IGEgbXVsdGlzZWxlY3QgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9NVUxUSVNFTEVDVCA9IDU7CgogICAgLyoqCiAgICAgKiBDb25zdGFudCB0byBpbmRlbnRpZnkgYW4gaW1hZ2UgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9JTUFHRSA9IDY7CgogICAgLyoqCiAgICAgKiBDb25zdGFudCB0byBpbmRlbnRpZnkgYSByYWRpbyBidXR0b24gZ3JvdXAgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9SQURJT0JVVE5TID0gNzsKCiAgICAvKioKICAgICAqIENvbnN0YW50IHRvIGluZGVudGlmeSBhIGRhdGUgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9EQVRFID0gODsKCiAgICAvKioKICAgICAqIENvbnN0YW50IHRvIGluZGVudGlmeSBhIGRhdGEgcHJvcGVydHkuCiAgICAgKi8KICAgIGNvbnN0IEZJRUxEVFlQRV9EQVRBID0gOTsKCiAgICAvKioKICAgICAqIEhvdyBtYW55IHNlY29uZHMgb2YgaW5hY3Rpdml0eSBiZWZvcmUgYSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgbG9nZ2VkIG91dC4KICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRleHBpcnl0aW1lOwoKICAgIC8qKgogICAgICogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB1c2VyIHNob3VsZCBiZSByZWRpcmVjdGVkIHRvIGRlZmF1bHQgcGFnZSBhZnRlciBsb2dnaW5nIGluL291dC4KICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRsb2dpbnRhcmdldDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRvdGhlcmludGFyZ2V0OwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgJGxvZ291dHRhcmdldDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRvdGhlcm91dHRhcmdldDsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRhbGxvd3VzZXJhZG1pbjsKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkICRlbmFibGVlbWFpbHB3OwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgJGxhbmc9IiI7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJHVzZXJtYW5pcCA9IGZhbHNlOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgJHR5cGVzID0gZmFsc2U7CgoKICAgIC8qKgogICAgICogQ29uc3RydWN0b3IKICAgICAqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgICAgICR0aGlzLT50eXBlcyA9IFsgJ3RleHQnID0+IHNlbGY6OkZJRUxEVFlQRV9URVhULAogICAgICAgICAgICAgICAgICAgICAgICAgJ2NoZWNrYm94JyA9PiBzZWxmOjpGSUVMRFRZUEVfQ0hFQ0tCT1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZW1haWwnID0+IHNlbGY6OkZJRUxEVFlQRV9FTUFJTCwKICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYScgPT4gc2VsZjo6RklFTERUWVBFX1RFWFRBUkVBLAogICAgICAgICAgICAgICAgICAgICAgICAgJ2Ryb3Bkb3duJyA9PiBzZWxmOjpGSUVMRFRZUEVfRFJPUERPV04sCiAgICAgICAgICAgICAgICAgICAgICAgICAnbXVsdGlzZWxlY3QnID0+IHNlbGY6OkZJRUxEVFlQRV9NVUxUSVNFTEVDVCwKICAgICAgICAgICAgICAgICAgICAgICAgICdpbWFnZScgPT4gc2VsZjo6RklFTERUWVBFX0lNQUdFLAogICAgICAgICAgICAgICAgICAgICAgICAgJ3JhZGlvYnV0dG9ucycgPT4gc2VsZjo6RklFTERUWVBFX1JBRElPQlVUTlMsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0ZScgPT4gc2VsZjo6RklFTERUWVBFX0RBVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgPT4gc2VsZjo6RklFTERUWVBFX0RBVEEgXTsKCiAgICAgICAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKICAgICAgICBpZiggIWlzc2V0KCRDTVNfQURNSU5fUEFHRSkgKSB7CiAgICAgICAgICAgICRzbWFydHkgPSBTbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAgICAgaWYoICEkc21hcnR5ICkgcmV0dXJuOwogICAgICAgICAgICAkc21hcnR5LT5yZWdpc3RlckNsYXNzKCdmZXVfc21hcnR5JywnZmV1X3NtYXJ0eScpOwogICAgICAgICAgICAkc21hcnR5LT5yZWdpc3RlclBsdWdpbignYmxvY2snLCdmZXVfcHJvdGVjdCcsJ2ZldV9zbWFydHlfcGx1Z2luczo6ZmV1X3Byb3RlY3QnKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPkFkZEltYWdlRGlyKCdpY29ucycpOwoKICAgICAgICAkY29udGVudG9wcyA9IENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsKCiAgICAgICAgJG9iaiA9IG5ldyBDbXNDb250ZW50VHlwZVBsYWNlaG9sZGVyKCk7CiAgICAgICAgJG9iai0+Y2xhc3MgPSAnZmV1X3Byb3RlY3RlZF9wYWdlJzsKICAgICAgICAkb2JqLT50eXBlICA9IHN0cnRvbG93ZXIoJG9iai0+Y2xhc3MpOwogICAgICAgICRvYmotPmZpbGVuYW1lID0gX19ESVJfXy4nL2xpYi9jbGFzcy5mZXVfcHJvdGVjdGVkX3BhZ2UucGhwJzsKICAgICAgICAkb2JqLT5sb2FkZWQgPSBmYWxzZTsKICAgICAgICAkb2JqLT5mcmllbmRseW5hbWUgPSAkdGhpcy0+TGFuZygnZmV1X3Byb3RlY3RlZF9wYWdlJyk7CiAgICAgICAgJGNvbnRlbnRvcHMtPnJlZ2lzdGVyX2NvbnRlbnRfdHlwZSgkb2JqKTsKCiAgICAgICAgJG9iaiA9IG5ldyBDbXNDb250ZW50VHlwZVBsYWNlaG9sZGVyKCk7CiAgICAgICAgJG9iai0+Y2xhc3MgPSAnZmV1X3Byb3RlY3RlZF9zZWN0aW9uaGVhZCc7CiAgICAgICAgJG9iai0+dHlwZSAgPSBzdHJ0b2xvd2VyKCRvYmotPmNsYXNzKTsKICAgICAgICAkb2JqLT5maWxlbmFtZSA9IF9fRElSX18uJy9saWIvY2xhc3MuZmV1X3Byb3RlY3RlZF9zZWN0aW9uaGVhZGVyLnBocCc7CiAgICAgICAgJG9iai0+bG9hZGVkID0gZmFsc2U7CiAgICAgICAgJG9iai0+ZnJpZW5kbHluYW1lID0gJHRoaXMtPkxhbmcoJ2ZldV9wcm90ZWN0ZWRfc2VjdGlvbmhlYWQnKTsKICAgICAgICAkY29udGVudG9wcy0+cmVnaXN0ZXJfY29udGVudF90eXBlKCRvYmopOwoKICAgICAgICAkb2JqID0gbmV3IENtc0NvbnRlbnRUeXBlUGxhY2Vob2xkZXIoKTsKICAgICAgICAkb2JqLT5jbGFzcyA9ICdmZXVfcHJvdGVjdGVkX2xvZ291dGxpbmsnOwogICAgICAgICRvYmotPnR5cGUgID0gc3RydG9sb3dlcigkb2JqLT5jbGFzcyk7CiAgICAgICAgJG9iai0+ZmlsZW5hbWUgPSBfX0RJUl9fLicvbGliL2NsYXNzLmZldV9wcm90ZWN0ZWRfbG9nb3V0bGluay5waHAnOwogICAgICAgICRvYmotPmxvYWRlZCA9IGZhbHNlOwogICAgICAgICRvYmotPmZyaWVuZGx5bmFtZSA9ICR0aGlzLT5MYW5nKCdmZXVfcHJvdGVjdGVkX2xvZ291dGxpbmsnKTsKICAgICAgICAkY29udGVudG9wcy0+cmVnaXN0ZXJfY29udGVudF90eXBlKCRvYmopOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9sb2FkKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPnVzZXJtYW5pcCA9PSBOVUxMICkgewogICAgICAgICAgICAvLyBjaGVjayBhIHByZWZlcmVuY2UgdG8gc2VlIHdoaWNoIHVzZXIgbWFuaXB1bGF0b3IgY2xhc3MKICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIHVzZS4KICAgICAgICAgICAgJG1hbmlwdWxhdG9yID0gJ0Zyb250RW5kVXNlcnNNYW5pcHVsYXRvcic7CiAgICAgICAgICAgICR0aGlzLT51c2VybWFuaXAgPSBuZXcgRnJvbnRFbmRVc2Vyc01hbmlwdWxhdG9yKCAkdGhpcyApOwogICAgICAgICAgICBpZiggIWlzX29iamVjdCggJHRoaXMtPnVzZXJtYW5pcCApICkgZGllKCJFcnJvciBpbnN0YW50aWF0aW9uZyAkbWFuaXB1bGF0b3Igb2JqZWN0Iik7CiAgICAgICAgICAgICR0aGlzLT51c2VybWFuaXAtPlNldEV4cGlyZU5vdGlmaWVyKGFycmF5KCR0aGlzLCdOb3RpZnlFeHBpcmVkVXNlcicpKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIFVzZXIgTWFuaXB1bGF0b3IgT2JqZWN0CiAgICAgKiBOT1QgRk9SIEVYVEVSTkFMIFVTRQogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQHJldHVybiBvYmplY3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uICZHZXRNYW5pcHVsYXRvcigpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXA7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAnRnJvbnRFbmRVc2Vycyc7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcyLjIuMC42JzsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBIYXNDb250ZW50VHlwZSgpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiBUUlVFOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7IHJldHVybiBGQUxTRTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBBbGxvd0F1dG9VcGdyYWRlKCkgeyByZXR1cm4gRkFMU0U7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gTGF6eUxvYWRBZG1pbigpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMi4xLjMnOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24gKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcgKCdtb2RkZXNjcmlwdGlvbicpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbiAoKSB7IHJldHVybiAndXNlcnNncm91cHMnOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIGFycmF5KCAnQ0dFeHRlbnNpb25zJyA9PiAnMS41My4xNScsJ0NHU2ltcGxlU21hcnR5JyA9PiAnMi4xLjUnICk7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0RXZlbnREZXNjcmlwdGlvbiAoICRldmVudG5hbWUgKSB7IHJldHVybiAkdGhpcy0+TGFuZygnZXZlbnRfaW5mb18nLiRldmVudG5hbWUgKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRFdmVudEhlbHAgKCAkZXZlbnRuYW1lICkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lICgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBIYXNBZG1pbiAoKSB7IHJldHVybiBUUlVFOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbG1lc3NhZ2UnKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnY2FsZ3V5MTAwMCc7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKSB7IHJldHVybiAnY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSc7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkgeyByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nL2NoYW5nZWxvZy5pbmMnKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGRlcHJlY2F0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGxhbmdpZnlLZXlzKCAkYXJyICkKICAgIHsKICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkYXJyIGFzICRrPT4kdiApIHsKICAgICAgICAgICAgJGsgPSAkdGhpcy0+TGFuZygkayk7CiAgICAgICAgICAgICRvdXRbICRrIF0gPSAkdjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgICB7CiAgICAgICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogICAgICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjb2RlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmb3JtJyxDTEVBTl9TVFJJTkcpOyAvLyBkZXByZWNhdGVkCiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3JldHVybnRvJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvbmx5X2dyb3VwcycsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9jYXB0Y2hhJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF91c2VybmFtZScsQ0xFQU5fU1RSSU5HKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9wYXNzd29yZCcsQ0xFQU5fU1RSSU5HKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbnB1dF9yZXBlYXRwYXNzd29yZCcsQ0xFQU5fU1RSSU5HKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdlcnJvcicsQ0xFQU5fSU5UKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtZXNzYWdlJyxDTEVBTl9TVFJJTkcpOyAvLyBkZXByZWNhdGVkCiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xvc3R1bl9ncm91cCcsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaW5wdXRfY2FwdGNoYScsQ0xFQU5fU1RSSU5HKTsgLy8gZGVwcmVjYXRlZAogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzdWJtaXQnLENMRUFOX1NUUklORyk7IC8vIGRlcHJlY2F0ZWQKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2FuY2VsJyxDTEVBTl9TVFJJTkcpOyAvLyBkZXByZWNhdGVkCiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lucHV0X2NvZGUnLENMRUFOX1NUUklORyk7IC8vIGRlcHJlY2F0ZWQKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndWlkJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjaGVja29ubHknLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2lubGluZScsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbG9nb3V0dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xvZ2ludGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NoYW5nZXNldHRpbmdzdGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZvcmdvdHB3dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZvcmdvdHB3ZW1haWx0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbG9zdHVudGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2xvc3R1bmNvbmZpcm10ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9yY2VuZXdwd3RlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd2aWV3dXNlcnRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhZnRlcnZlcmlmeXRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdyZXNldHNlc3Npb250ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgndmVyaWZ5Zm9ybXRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKENMRUFOX1JFR0VYUC4nL2ZldV8uKi8nLENMRUFOX1NUUklORyk7CgogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2ZGXWV1XC92ZXJpZnljb2RlXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPHVpZD5bMC05XSspXC8oP1A8Y29kZT4uKj8pJC8nLGFycmF5KCdhY3Rpb24nPT4ndmVyaWZ5Y29kZScpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvdmVyaWZ5XC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPHVpZD5bMC05XSspXC8oP1A8Y29kZT4uKj8pJC8nLGFycmF5KCdhY3Rpb24nPT4ndmVyaWZ5b25seScpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvcmVzZXRcLyg/UDx1aWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J3Jlc2V0X3Nlc3Npb24nLCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnLCdjaGVja29ubHknPT4nMScpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvZWRpdFwvKD9QPHJldHVybmlkPlswLTldKykkLycsYXJyYXkoJ2FjdGlvbic9PidjaGFuZ2VzZXR0aW5ncycpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvbG9nb3V0XC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2xvZ291dCcpKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnL1tmRl1ldVwvZm9yZ290XC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2ZvcmdvdHB3JykpOwogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCcvW2ZGXWV1XC9sb3N0dXNlcm5hbWVcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nLGFycmF5KCdhY3Rpb24nPT4nbG9zdHVzZXJuYW1lJykpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQogICAgewogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBnZXRfdGFza3MoKQogICAgewogICAgICAgICR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZm9yY2Vsb2dvdXRfdGltZXMnKTsKICAgICAgICBpZiggJHRtcCAhPSAnJyApIHsKICAgICAgICAgICAgJG9iaiA9IG5ldyBGRVVGb3JjZWRMb2dvdXRUYXNrKCk7CiAgICAgICAgICAgIHJldHVybiAkb2JqOwogICAgICAgIH0KICAgICAgICAkdG1wID0gbnVsbDsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwoJcHVibGljIGZ1bmN0aW9uIGdldF9wcmV0dHlfdXJsKCRpZCwkYWN0aW9uLCRyZXR1cm5pZD0nJywkcGFyYW1zPWFycmF5KCksJGlubGluZT1mYWxzZSkKICAgIHsKICAgICAgICBpZiggJGFjdGlvbiA9PSAnZGVmYXVsdCcgKSB7CiAgICAgICAgICAgICRmb3JtID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmb3JtJyk7CiAgICAgICAgICAgIHN3aXRjaCggJGZvcm0gKSB7CiAgICAgICAgICAgIGNhc2UgJ2ZvcmdvdHB3JzoKICAgICAgICAgICAgICAgICRhY3Rpb24gPSAnZm9yZ290cHcnOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdsb2dpbic6CiAgICAgICAgICAgICAgICAkYWN0aW9uID0gJ2xvZ2luJzsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbG9zdHVzZXJuYW1lJzoKICAgICAgICAgICAgICAgICRhY3Rpb24gPSAnbG9zdHVzZXJuYW1lJzsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnY2hhbmdlc2V0dGluZ3MnOgogICAgICAgICAgICAgICAgcmV0dXJuICJmZXUvZWRpdC8kcmV0dXJuaWQiOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggJGFjdGlvbiA9PSAndmVyaWZ5b25seScgKSB7CiAgICAgICAgICAgICR1aWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3VpZCcpOwogICAgICAgICAgICAkY29kZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnY29kZScpOwogICAgICAgICAgICBpZiggJHVpZCA8IDEgfHwgISRjb2RlICkgcmV0dXJuOwogICAgICAgICAgICByZXR1cm4gImZldS92ZXJpZnkvJHJldHVybmlkLyR1aWQvJGNvZGUiOwogICAgICAgIH0KICAgICAgICBpZiggJGFjdGlvbiA9PSAnZm9yZ290cHcnKSB7CiAgICAgICAgICAgIHJldHVybiAiZmV1L2ZvcmdvdC8kcmV0dXJuaWQiOwogICAgICAgIH0gZWxzZSBpZiggJGFjdGlvbiA9PSAnbG9zdHVzZXJuYW1lJyApIHsKICAgICAgICAgICAgcmV0dXJuICJmZXUvbG9zdHVzZXJuYW1lLyRyZXR1cm5pZCI7CiAgICAgICAgfSBlbHNlaWYoICRhY3Rpb24gPT0gJ2xvZ291dCcgKSB7CiAgICAgICAgICAgICRyZXR1cm50byA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncmV0dXJudG8nKTsKICAgICAgICAgICAgaWYoICRyZXR1cm50byApIHJldHVybjsKICAgICAgICAgICAgcmV0dXJuICJmZXUvbG9nb3V0LyRyZXR1cm5pZCI7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucyggJHBlcm0gPSAnJyApCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJywnMCcpID09ICcxJykgewogICAgICAgICAgICAkcDEgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnRkVVIEFkZCBVc2VycycgKTsKICAgICAgICAgICAgJHAyID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ0ZFVSBNb2RpZnkgVXNlcnMnICk7CiAgICAgICAgICAgICRwMyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdGRVUgUmVtb3ZlIFVzZXJzJyApOwogICAgICAgICAgICAkcDQgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnRkVVIEFkZCBHcm91cHMnICk7CiAgICAgICAgICAgICRwNSA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdGRVUgTW9kaWZ5IEdyb3VwcycgKTsKICAgICAgICAgICAgJHA2ID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ0ZFVSBNb2RpZnkgR3JvdXAgQXNzaWdubWVudHMnICk7CiAgICAgICAgICAgICRwNyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdGRVUgUmVtb3ZlIEdyb3VwcycgKTsKICAgICAgICAgICAgJHA5ID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ0ZFVSBNb2RpZnkgRnJvbnRFbmRVc2VyUHJvcHMnICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkcDEgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnQWRkIFVzZXJzJyApOwogICAgICAgICAgICAkcDIgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFVzZXJzJyApOwogICAgICAgICAgICAkcDMgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnUmVtb3ZlIFVzZXJzJyApOwogICAgICAgICAgICAkcDQgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnQWRkIEdyb3VwcycgKTsKICAgICAgICAgICAgJHA1ID0gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiggJ01vZGlmeSBHcm91cHMnICk7CiAgICAgICAgICAgICRwNiA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgR3JvdXAgQXNzaWdubWVudHMnICk7CiAgICAgICAgICAgICRwNyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdSZW1vdmUgR3JvdXBzJyApOwogICAgICAgICAgICAkcDkgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IEZyb250RW5kVXNlclByb3BzJyApOwogICAgICAgIH0KCiAgICAgICAgJGNvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwogICAgICAgICRyZXQgPSAwOwogICAgICAgIHN3aXRjaCggJHBlcm0gKSB7CiAgICAgICAgY2FzZSAnJzogIC8vIGFueSBwZXJtaXNzaW9uIGZvciB3b3JraW5nIHdpdGggZ3JvdXBzIGFuZCB1c2VycwogICAgICAgICAgICAkcmV0ID0gKCRwMSB8fCAkcDIgfHwgJHAzIHx8ICRwNCB8fCAkcDUgfHwgJHA2IHx8ICRwNyB8fCAkcDkgKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3VzZXJzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDEgfHwgJHAyIHx8ICRwMyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdhZGR1c2VyJzoKICAgICAgICAgICAgJHJldCA9ICgkcDEpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnYWRkcHJvcCc6CiAgICAgICAgY2FzZSAnZWRpdHByb3AnOgogICAgICAgIGNhc2UgJ2RlbGV0ZXByb3AnOgogICAgICAgICAgICAkcmV0ID0gKCRwOSkgJiYgJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfRURJVFBST1BTKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3Byb3BlcnRpZXMnOgogICAgICAgICAgICAkcmV0ID0gKCRwOSkgJiYgJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfTElTVFBST1BTKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2xpc3R1c2Vycyc6CiAgICAgICAgICAgICRyZXQgPSAoJHAyIHx8ICRwMyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdsaXN0Z3JvdXBzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDUgfHwgJHA2KSAmJgogICAgICAgICAgICAgICAgKCRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGNvbnN1bWVyOjpDQVBBQklMSVRZX1VTRVNUREdST1VQUykgfHwgJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfTElTVEdST1VQUykpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZ3JvdXBzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDQgfHwgJHA1IHx8ICRwNykgJiYKICAgICAgICAgICAgICAgICgkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMpIHx8ICRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGNvbnN1bWVyOjpDQVBBQklMSVRZX0xJU1RHUk9VUFMpKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2FkZGdyb3VwJzoKICAgICAgICAgICAgJHJldCA9ICgkcDQpICYmICgkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMpIHx8ICRjb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFMpKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3N0cmljdF9lZGl0Z3JvdXBzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDUgfHwgJHA2KSAmJiAoJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfVVNFU1RER1JPVVBTKSB8fCAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9FRElUR1JPVVBTKSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdlZGl0Z3JvdXBzJzoKICAgICAgICAgICAgJHJldCA9ICgkcDUgfHwgJHA2KSAmJiAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMsJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFMsJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFBST1BTKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2VkaXR1c2Vycyc6CiAgICAgICAgICAgICRyZXQgPSAoJHAyKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3JlbW92ZWdyb3Vwcyc6CiAgICAgICAgICAgICRyZXQgPSAoJHA3KSAmJiAkY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRjb25zdW1lcjo6Q0FQQUJJTElUWV9VU0VTVERHUk9VUFMsJGNvbnN1bWVyOjpDQVBBQklMSVRZX0VESVRHUk9VUFMpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAncmVtb3ZldXNlcnMnOgogICAgICAgICAgICAkcmV0ID0gKCRwMyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd1c2Vyc25ncm91cHMnOgogICAgICAgICAgICAkcmV0ID0gKCRwMSB8fCAkcDIgfHwgJHAzIHx8ICRwNCB8fCAkcDUgfHwgJHA2IHx8ICRwNyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkcmV0ID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJldDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnLCcwJykgPT0gJzEnKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgQWRkIEdyb3VwcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgTW9kaWZ5IEdyb3VwcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgUmVtb3ZlIEdyb3VwcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgQWRkIFVzZXJzJykgfHwKICAgICAgICAgICAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ0ZFVSBNb2RpZnkgVXNlcnMnKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignRkVVIFJlbW92ZSBVc2VycycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdGRVUgTW9kaWZ5IEZyb250RW5kVXNlclByb3BzJyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRkIEdyb3VwcycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgR3JvdXBzJykgfHwKICAgICAgICAgICAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1JlbW92ZSBHcm91cHMnKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignQWRkIFVzZXJzJykgfHwKICAgICAgICAgICAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBVc2VycycpIHx8CiAgICAgICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdSZW1vdmUgVXNlcnMnKSB8fAogICAgICAgICAgICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEZyb250RW5kVXNlclByb3BzJyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pbk1lbnVJdGVtcygpCiAgICB7CiAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCcnKSApICRvdXRbXSA9IFxDbXNBZG1pbk1lbnVJdGVtOjpmcm9tX21vZHVsZSgkdGhpcyk7CiAgICAgICAgaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSB7CiAgICAgICAgICAgICRvYmogPSBuZXcgQ21zQWRtaW5NZW51SXRlbSgpOwogICAgICAgICAgICAkb2JqLT5tb2R1bGUgPSAkdGhpcy0+R2V0TmFtZSgpOwogICAgICAgICAgICAkb2JqLT5zZWN0aW9uID0gJ3NpdGVhZG1pbic7CiAgICAgICAgICAgICRvYmotPnRpdGxlID0gJHRoaXMtPkxhbmcoJ3RpdGxlX2FkbWlubmF2X3NldHRpbmdzJyk7CiAgICAgICAgICAgICRvYmotPmRlc2NyaXB0aW9uID0gJHRoaXMtPkxhbmcoJ2Rlc2NfYWRtaW5uYXZfc2V0dGluZ3MnKTsKICAgICAgICAgICAgJG9iai0+YWN0aW9uID0gJ2FkbWluX3NldHRpbmdzJzsKICAgICAgICAgICAgJG9iai0+dXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJ20xXycsJG9iai0+YWN0aW9uKTsKICAgICAgICAgICAgJG91dFtdID0gJG9iajsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfRGlzcGxheUVycm9yUGFnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogICAgewogICAgICAgIGVjaG8gJHRoaXMtPkRpc3BsYXlFcnJvck1lc3NhZ2UoJG1lc3NhZ2UpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCA9IC0xKQogICAgewogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydmZXVfZW5jJ10pICkgewogICAgICAgICAgICAvLyByZXN0b3JlIHBhcmFtZXRlcnMgc2F2ZWQgaW4gdGhlIHNlc3Npb24gb24gcmVkaXJlY3QuCiAgICAgICAgICAgICRzaWcgPSAkcGFyYW1zWydmZXVfZW5jJ107CiAgICAgICAgICAgIHVuc2V0KCRwYXJhbXNbJ2ZldV9lbmMnXSk7CiAgICAgICAgICAgIGlmKCBpc3NldCgkX1NFU1NJT05bJHNpZ10pICkgewogICAgICAgICAgICAgICAgJHRtcCA9ICRfU0VTU0lPTlskc2lnXTsKICAgICAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlskc2lnXSk7CiAgICAgICAgICAgICAgICAkcGFyYW1zID0gYXJyYXlfbWVyZ2UoJHRtcCwkcGFyYW1zKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoICRhY3Rpb24gPT0gJ2RlZmF1bHQnICkgewogICAgICAgICAgICAkZm9ybSA9ICdsb2dpbic7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+TG9nZ2VkSW5JZCgpICkgJGZvcm0gPSAnbG9nb3V0JzsKICAgICAgICAgICAgJGZvcm0gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Zvcm0nLCRmb3JtKTsKICAgICAgICAgICAgc3dpdGNoKCAkZm9ybSApIHsKICAgICAgICAgICAgY2FzZSAnbG9naW4nOgogICAgICAgICAgICBjYXNlICdmb3Jnb3Rwdyc6CiAgICAgICAgICAgIGNhc2UgJ3NpbGVudCc6CiAgICAgICAgICAgIGNhc2UgJ2NoYW5nZXNldHRpbmdzJzoKICAgICAgICAgICAgY2FzZSAnbG9zdHVzZXJuYW1lJzoKICAgICAgICAgICAgICAgICRhY3Rpb24gPSAkZm9ybTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbG9nb3V0JzoKICAgICAgICAgICAgICAgICRhY3Rpb24gPSAnbG9nb3V0Zm9ybSc7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjY2VwdGlvbigiJGZvcm0gaXMgYW4gaW52YWxpZCB2YWx1ZSBmb3IgdGhlIGZvcm0gcGFyYW1ldGVyIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHN3aXRjaCAoJGFjdGlvbikgewogICAgICAgIGNhc2UgJ2NoYW5nZXNldHRpbmdzX3VybCc6CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBwYXJlbnQ6OkRvQWN0aW9uKCRhY3Rpb24sJGlkLCRwYXJhbXMsJHJldHVybmlkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICovCiAgICBmdW5jdGlvbiBteVJlZGlyZWN0KCAkaWQsICRhY3Rpb24sICRyZXR1cm5pZCwgJHBhcmFtcyA9IGFycmF5KCksICRpZ25vcmVfcmV0dXJudG8gPSBmYWxzZSApCiAgICB7CiAgICAgICAgLy8gZmluZCBhbnkgcGFyYW1ldGVyIHZhbHVlcyB0aGF0IGFyZSBhcnJheXMKICAgICAgICAvLyBhdXRvbWF0aWNhbGx5IHN0b3JlIHRoaXMgZGF0YSBpbiB0aGUgc2Vzc2lvbgogICAgICAgIHVuc2V0KCRwYXJhbXNbJ2FjdGlvbiddLCRwYXJhbXNbJ3JldHVybmlkJ10pOwoKICAgICAgICAkc2lnID0gbWQ1KF9fTUVUSE9EX18udGltZSgpLnNlcmlhbGl6ZSgkcGFyYW1zKSk7CiAgICAgICAgJF9TRVNTSU9OWyRzaWddID0gJHBhcmFtczsKICAgICAgICAkcGFyYW1zID0gWyAnZmV1X2VuYycgPT4gJHNpZyBdOwogICAgICAgICR0aGlzLT5SZWRpcmVjdCggJGlkLCAkYWN0aW9uLCAkcmV0dXJuaWQsICRwYXJhbXMgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCiAgICB7CiAgICAgICAgJHR4dCA9IHBhcmVudDo6R2V0SGVhZGVySFRNTCgpOwogICAgICAgICR0bXBsID08PDxFT1QKe0pRdWVyeVRvb2xzIGFjdGlvbj0ncmVxdWlyZScgbGliPSd0YWJsZXNvcnRlcixKUXVlcnlUb29scyd9CntKUXVlcnlUb29scyBhY3Rpb249J3BsYWNlbWFya2VyJ30KRU9UOwoKICAgICAgICAkb2JqID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdKUXVlcnlUb29scycsJzEuMicpOwogICAgICAgIGlmKCBpc19vYmplY3QoJG9iaikgKSB7CiAgICAgICAgICAgICRzbWFydHkgPSBTbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAgICAgJHR4dCAuPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRtcGwpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHR4dDsKICAgIH0KCiAgICAvKioKICAgICAqIHNlbmQgYW4gZXZlbnQgdGhhdCB0aGlzIHVzZXIgYWNjb3VudCBoYXMgYmVlbiBleHBpcmVkCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIE5vdGlmeUV4cGlyZWRVc2VyKCAkdXNlcmlkICkKICAgIHsKICAgICAgICAkdXNlciA9ICR0aGlzLT5HZXRVc2VySW5mbyggJHVzZXJpZCApOwogICAgICAgIGlmKCAkdXNlclswXSA9PSBGQUxTRSApIHJldHVybjsgLy8gdGhpcyBzaG91bGQgYmUgYW4gZXJyb3IKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICRwYXJtc1snaWQnXSA9ICR1c2VyaWQ7CiAgICAgICAgJHBhcm1zWyd1c2VybmFtZSddID0gJHVzZXJbMV1bJ3VzZXJuYW1lJ107CiAgICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25FeHBpcmVVc2VyJywkcGFybXMpOwogICAgICAgICR0aGlzLT5fU2VuZE5vdGlmaWNhdGlvbkVtYWlsKCdPbkV4cGlyZVVzZXInLCRwYXJtcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGlzX2FsbG93ZWRfdXBsb2FkKCRzcmNmaWxlKQogICAgewogICAgICAgICRhbGxvd2VkX2V4dGVuc2lvbnM9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucycsJy5naWYsLnBuZywuanBnJyk7CiAgICAgICAgJHRtcCA9IGV4cGxvZGUoICcsJywgJGFsbG93ZWRfZXh0ZW5zaW9ucyk7CgogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJGV4dCApIHsKICAgICAgICAgICAgaWYoIGVuZHN3aXRoKCAkc3JjZmlsZSwgJGV4dCApICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICogQHRvZG86IG1vdmUgbWUgb3V0IG9mIGhlcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF91cGxvYWRfZGlydXJsKCkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRkbiA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc191cmwnXSwkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfZGVzdGluYXRpb25fcGF0aCcsICdmZXVzZXJzJykpOwogICAgICAgICRkbiA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRkbik7CiAgICAgICAgcmV0dXJuICRkbjsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VwbG9hZF9kaXJuYW1lKCkKICAgIHsKICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRkbiA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnLCAnZmV1c2VycycpKTsKICAgICAgICByZXR1cm4gJGRuOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXBsb2FkX2ZpbGVuYW1lKCRmbGRuYW1lLCRzcmNmaWxlKQogICAgewogICAgICAgIC8vIGdldCB0aGUgZmlsZW5hbWUgb25seSwgbm90IHRoZSBkaXJlY3RvcnkKICAgICAgICAkZXh0ID0gc3RyY2hyKCRzcmNmaWxlLCcuJyk7CiAgICAgICAgcmV0dXJuIG1kNShfX0ZJTEVfXy5zZXNzaW9uX2lkKCkuJGZsZG5hbWUuJHNyY2ZpbGUpLiRleHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIE1hbmFnZUltYWdlVXBsb2FkKCRrZXksICRmbGRuYW1lKQogICAgewogICAgICAgICRyZXMgPSBcZmV1X3V0aWxzOjpjaGVja1VwbG9hZCgka2V5KTsKICAgICAgICBpZiggISRyZXNbMF0gKSByZXR1cm4gJHJlczsKCiAgICAgICAgJGZpbGUgPSAkX0ZJTEVTWyRrZXldOwogICAgICAgIC8vIHNldCB0aGUgZGVzdGluYXRpb24gbmFtZQogICAgICAgICRkZXN0RGlyID0gJHRoaXMtPmdldF91cGxvYWRfZGlybmFtZSgpOwogICAgICAgICRkZXN0bmFtZSA9ICR0aGlzLT5nZXRfdXBsb2FkX2ZpbGVuYW1lKCRmbGRuYW1lLCRmaWxlWyduYW1lJ10pOwoKICAgICAgICAvLyBDcmVhdGUgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBpZiBuZWNlc3NhcnkKICAgICAgICBAbWtkaXIoJGRlc3REaXIsMDc3NyxUUlVFKTsKICAgICAgICBAdG91Y2goJGRlc3RkaXIuJy9pbmRleC5odG1sJyk7CiAgICAgICAgaWYoICFpc193cml0YWJsZSggJGRlc3REaXIgKSApIHJldHVybiBbIGZhbHNlLCAkbW9kLT5MYW5nKCdlcnJvcl9kZXN0aW5hdGlvbm5vdHdyaXRhYmxlJykgXTsKICAgICAgICBAY21zX21vdmVfdXBsb2FkZWRfZmlsZSgkZmlsZVsndG1wX25hbWUnXSwgY21zX2pvaW5fcGF0aCgkZGVzdERpciwkZGVzdG5hbWUpKTsKCiAgICAgICAgcmV0dXJuIFsgdHJ1ZSwgJGRlc3RuYW1lIF07CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfU2VuZE5vdGlmaWNhdGlvbkVtYWlsKCRldmVudCwkcGFyYW1zKQogICAgewogICAgICAgICRub3RpZmljYXRpb25zID0gZXhwbG9kZSgnLCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbnMnLCcnKSk7CiAgICAgICAgaWYoICFpbl9hcnJheSggJGV2ZW50LCAkbm90aWZpY2F0aW9ucyApICkgcmV0dXJuOwogICAgICAgICRkZXN0ID0gdHJpbSgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbm90aWZpY2F0aW9uX2FkZHJlc3MnKSk7CiAgICAgICAgaWYoIGVtcHR5KCRkZXN0KSApIHJldHVybjsKCiAgICAgICAgLy8gU2V0dXAgc29tZSBzbWFydHkgc3R1ZmYuCiAgICAgICAgJHNtYXJ0eSA9IFxTbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2V2ZW50JywkZXZlbnQpOwogICAgICAgICRzbWFydHktPmFzc2lnbignZXZlbnRfbmFtZScsJHRoaXMtPkxhbmcoJGV2ZW50KSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdwbGFpbnRleHRfZXZlbnQnLCR0aGlzLT5MYW5nKCdldmVudCcpKTsKICAgICAgICBmb3JlYWNoKCAkcGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3BhcmFtXycuJGtleSwkdmFsdWUpOwogICAgICAgIH0KICAgICAgICAkdGV4dCA9ICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ25vdGlmaWNhdGlvbl90ZW1wbGF0ZScpOwoKICAgICAgICAkY21zbWFpbGVyID0gbmV3IFxjbXNfbWFpbGVyKCk7CiAgICAgICAgJGNtc21haWxlci0+cmVzZXQoKTsKICAgICAgICAkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCRkZXN0KTsKICAgICAgICAkY21zbWFpbGVyLT5TZXRTdWJqZWN0KCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdub3RpZmljYXRpb25fc3ViamVjdCcpKTsKICAgICAgICAkY21zbWFpbGVyLT5TZXRCb2R5KCR0ZXh0KTsKICAgICAgICAkY21zbWFpbGVyLT5Jc0hUTUwoZmFsc2UpOwogICAgICAgICRjbXNtYWlsZXItPlNlbmQoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0UG9zdExvZ2luVVJMKCR1cmwpCiAgICB7CiAgICAgICAgaWYoICR1cmwgKSAkdGhpcy0+c2Vzc2lvbl9wdXQoJ3Bvc3Rsb2dpbl91cmwnLCR1cmwpOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRQb3N0TG9naW5VUkwoKQogICAgewogICAgICAgICRvdXQgPSAkdGhpcy0+c2Vzc2lvbl9nZXQoJ3Bvc3Rsb2dpbl91cmwnKTsKICAgICAgICAkdGhpcy0+c2Vzc2lvbl9jbGVhcigncG9zdGxvZ2luX3VybCcpOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy8gIEFQSSBGVU5DVElPTlMgLy8KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFkZF9oaXN0b3J5KCAkdWlkLCAkbWVzc2FnZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPmFkZF9oaXN0b3J5KCAkdWlkLCAkbWVzc2FnZSApOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGEgbmV3IGdyb3VwCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgZ3JvdXAgbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAkZGVzY3JpcHRpb24gVGhlIGdyb3VwIGRlc2NyaXB0aW9uCiAgICAgKiBAcmV0dXJuIGFycmF5IEFycmF5IGNvbnRhaW5pbmcgdHdvIGVsZW1lbnRzLiAgVGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIHJldHVybiBzdGF0dXMgb2YgdGhlIGZ1bmN0aW9uIChib29sZWFuKSwgdGhlIHNlY29uZCBlbGVtZW50IGlzIGVpdGhlciBhIG1lc3NhZ2UgaW4gdGhlCiAgICAgKiAgICBjYXNlIG9mIGFuIGVycm9yLCBvciB0aGUgZ3JvdXAgaWQgKGludGVnZXIpIG9uIHN1Y2Nlc3MuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEFkZEdyb3VwKCAkbmFtZSwgJGRlc2NyaXB0aW9uICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+QWRkR3JvdXAoICRuYW1lLCAkZGVzY3JpcHRpb24gKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBBZGQgYSBuZXcgZ3JvdXAgcHJvcGVydHkgcmVsYXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZ3JwaWQgVGhlIGdyb3VwIGlkCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwcm9wbmFtZSBUaGUgcHJvcGVydHkgbmFtZQogICAgICogQHBhcmFtIGludCAkc29ydGtleSBUaGUgc29ydGluZyBvcmRlciBmb3IgdGhpcyByZWxhdGlvbnNoaXAKICAgICAqIEBwYXJhbSBpbnQgJHJlcXVpcmVkIFRoZSByZXF1aXJlZCBmbGFnIGZvciB0aGlzIHJlbGF0aW9uc2hpcC4gIDA9PW9mZiAxPT1vcHRpb25hbCwgMj09cmVxdWlyZWQKICAgICAqIEBwYXJhbSBib29sZWFuICRsb3N0dW4gV2V0aGVyIHRoaXMgcmVsYXRpb25zaGlwIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgbG9zdHVuIHN0dWZmIChkZXByZWNhdGVkKQogICAgICogQHJldHVybiBhcnJheSBGaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyB0aGUgcmV0dXJuIHN0YXR1cywgc2Vjb25kIGVsZW1lbnQgaXMgdGhlIGVycm9yIG1lc3NhZ2UsIGlmIGFueS4KICAgICAqLwogICAgZnVuY3Rpb24gQWRkR3JvdXBQcm9wZXJ0eVJlbGF0aW9uKCAkZ3JwaWQsICRwcm9wbmFtZSwgJHNvcnRrZXksICRsb3N0dW4sICRyZXF1aXJlZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkFkZEdyb3VwUHJvcGVydHlSZWxhdGlvbiggJGdycGlkLCAkcHJvcG5hbWUsICRzb3J0a2V5LCAkbG9zdHVuLCAkcmVxdWlyZWQgKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBBZGQgYSBuZXcgcHJvcGVydHkgZGVmaW5pdGlvbgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHByb3BlcnR5IG5hbWUKICAgICAqIEBwYXJhbSBzdHJpbmcgJHByb21wdCBUaGUgcHJvcGVydHkgcHJvbXB0IGZvciB1c2UgaW4gdmFyaW91cyB2aWV3cwogICAgICogQHBhcmFtIGludCAkdHlwZSBUaGUgZmllbGQgdHlwZQogICAgICogQHBhcmFtIGludCAkbGVuZ3RoIFRoZSBkZWZhdWx0IGxlbmd0aCBmb3IgcmVuZGVyaW5nIHRoZSBwcm9wZXJ0eQogICAgICogQHBhcmFtIGludCAkbWF4bGVuZ3RoIFRoZSBtYXhpbXVtIGxlbmd0aCBmb3IgcmVuZGVyaW5nIHRoZSBwcm9wZXJ0eQogICAgICogQHBhcmFtIHN0cmluZyAkYXR0cmlicyBBIHNlcmlhbGl6ZWQgYXJyYXkgb2YgYXR0cmlidXRlcyBmb3IgdGhlIHByb3BlcnR5CiAgICAgKiBAcGFyYW0gYm9vbCAkZm9yY2VfdW5pcXVlIFdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eSBzaG91bGQgYmUgdW5pcXVlIGFjcm9zcyBhbGwgdXNlcnMuCiAgICAgKiBAcGFyYW0gYm9vbCAkZW5jcnlwdCBXaGV0aGVyIG9yIG5vdCB0aGlzIGRhdGEgc2hvdWxkIGJlIGVuY3J5cHRlZCBpbiB0aGUgZGF0YWJhc2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEFkZFByb3BlcnR5RGVmbiggJG5hbWUsICRwcm9tcHQsICR0eXBlLCAkbGVuZ3RoLCAkbWF4bGVuZ3RoID0gMCwgJGF0dHJpYnMgPSAnJywgJGZvcmNlX3VuaXF1ZSA9IDAsICRlbmNyeXB0ID0gMCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkFkZFByb3BlcnR5RGVmbiggJG5hbWUsICRwcm9tcHQsICR0eXBlLCAkbGVuZ3RoLCAkbWF4bGVuZ3RoLCAkYXR0cmlicywgJGZvcmNlX3VuaXF1ZSwgJGVuY3J5cHQgICk7CiAgICB9CgoKICAgIC8qKgogICAgICogU2V0IHNlbGVjdCBvcHRpb25zIGZvciBhIGRyb3Bkb3duL3JhZGlvLWJ1dHRvbi1ncm91cCBvciBtdWx0aXNlbGVjdCBwcm9wZXJ0eS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gYXJyYXkgJHNlbG9wdGlvbnMgdGhlIFNlbGVjdCBvcHRpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBBZGRTZWxlY3RPcHRpb25zKCAkbmFtZSwgJHNlbG9wdGlvbnMgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5BZGRTZWxlY3RPcHRpb25zKCAkbmFtZSwgJHNlbG9wdGlvbnMgKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBBZGQgYSB1c2VyIHRvIHRoZSBzeWV0ZW0KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBuZXcgdXNlcm5hbWUKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkIFRoZSBwbGFpbiB0ZXh0IHBhc3N3b3JkCiAgICAgKiBAcGFyYW0gaW50ICRleHBpcmVzIHRoZSBVbml4IHRpbWVzdGFtcCBvZiB0aGUgZXhwaXJ5IGRhdGUKICAgICAqIEByZXR1cm4gYXJyYXkgVGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHN1Y2Nlc3Mgb3IgZmFpbHVyZSwgdGhlIHNlY29uZCBlbGVtZW50IGlzIGFuIGVycm9yIG1lc3NhZ2UsIG9yIHRoZSBuZXcgVUlELgogICAgICovCiAgICBmdW5jdGlvbiBBZGRVc2VyKCAkbmFtZSwgJHBhc3N3b3JkLCAkZXhwaXJlcyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkFkZFVzZXIoICRuYW1lLCAkcGFzc3dvcmQsICRleHBpcmVzICk7CiAgICB9CgoKICAgIC8qKgogICAgICogQXNzaWduIHRoZSBzcGVjaWZpZWQgdXNlciB0byB0aGUgc3BlY2lmaWVkIGdyb3VwCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkIFRoZSB1c2VyIGlkZW50aWZpZXIKICAgICAqIEBwYXJhbSBpbnQgJGdpZCBUaGUgZ3JvdXAgaWRlbnRpZmllcgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEFzc2lnblVzZXJUb0dyb3VwKCAkdWlkLCAkZ2lkICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+QXNzaWduVXNlclRvR3JvdXAoICR1aWQsICRnaWQgKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIENvdW50VGVtcENvZGVSZWNvcmRzKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+Q291bnRUZW1wQ29kZVJlY29yZHMoKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBDb3VudCB0aGUgbnVtYmVyIG9mIG5vbiBkaXNhYmxlZCB1c2VycyBpbiBhIGdyb3VwLCBvciBpbiB0aGUgZW50aXJlIHN5c3RlbS4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRnaWQgT3B0aW9uYWwgZ3JvdXAgaWRlbnRpZmllci4KICAgICAqIEByZXR1cm4gaW50CiAgICAgKi8KICAgIGZ1bmN0aW9uIENvdW50VXNlcnNJbkdyb3VwKCAkZ2lkID0gJycgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Db3VudFVzZXJzSW5Hcm91cCggJGdpZCApOwogICAgfQoKCiAgICAvKioKICAgICAqIERlbGV0ZSBhbGwgcHJvcGVydHkgcmVsYXRpb25zIGZvciBhIGdyb3VwCiAgICAgKgogICAgICogQGludGVybmFsCiAgICAgKiBAcGFyYW0gaW50ICRncm91cGlkCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyB0aGUgYm9vbGVhbiByZXN1bHQsIHNlY29uZCBlbGVtZW50IChpZiBhbnkpIGlzIGFuIGVycm9yIG1lc3NhZ2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZUFsbEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZUFsbEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApOwogICAgfQoKCiAgICAvKioKICAgICAqIFBlcm1hbmVudGx5IHJlbW92ZSBhIHByb3BlcnR5CiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgcHJvcGVydHkgbmFtZQogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZVByb3BlcnR5RGVmbiggJG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5EZWxldGVQcm9wZXJ0eURlZm4oICRuYW1lICk7CiAgICB9CgoKICAgIC8qKgogICAgICogRGVsZXRlIGFsbCBwcm9wZXJ0eSBkZWZpbml0aW9ucy4KICAgICAqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlUHJvcGVydHlEZWZucygpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVByb3BlcnR5RGVmbnMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSB0aGUgc2VsZWN0IG9wdGlvbnMgKGlmIGFueSkgZm9yIGEgcHJvcGVydHkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLCB0aGUgc2Vjb25kIGVsZW1lbnQgKGlmIGFueSkgaXMgYW4gZXJyb3IgbWVzc2FnZS4KICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlU2VsZWN0T3B0aW9ucyggJG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5EZWxldGVTZWxlY3RPcHRpb25zKCAkbmFtZSApOwogICAgfQoKICAgIC8qKgogICAgICogQ29tcGxldGVseSBkZWxldGUgYSB1c2VyIGZyb20gdGhlIGRhdGFiYXNlLiAgSW5jbHVkaW5nIGFsbCBwcm9wZXJ0aWVzLCBncm91cCBtZW1iZXJzaGlwcywgZXRjLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZCBUaGUgdXNlciBpZGVudGlmaWVyIHRvIGRlbGV0ZS4KICAgICAqIEByZXR1cm4gYXJyYXkgVGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIGEgYm9vbGVhbiBzdGF0dXMsIHRoZSBzZWNvbmQgZWxlbWVudCAoaWYgYW55KSBpcyBhbiBlcnJvciBtZXNzYWdlLgogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVVc2VyRnVsbCggJHVpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVVzZXJGdWxsKCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZW1vdmUgYSBzcGVjaWZpZWQgcHJvcGVydHkgZm9yIGFsbCB1c2VycywgYnV0IGRvIG5vdCByZW1vdmUgdGhlIHByb3BlcnR5IGRlZmluaXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdGl0bGUgVGhlIHByb3BlcnR5IG5hbWUKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVVc2VyUHJvcGVydHlCeU5hbWUoICR0aXRsZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVVzZXJQcm9wZXJ0eUJ5TmFtZSgkdGl0bGUpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIGEgdXNlciBwcm9wZXJ0eSBmb3IgYSBzcGVjaWZpYyB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRpdGxlIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkYWxsIFdldGhlciBvciBub3QgdG8gZGVsZXRlIGFsbCBwcm9wZXJ0aWVzIGZvciB0aGUgdXNlci4KICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVVc2VyUHJvcGVydHkoJHRpdGxlLCRhbGw9ZmFsc2UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVVzZXJQcm9wZXJ0eSgkdGl0bGUsJGFsbCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBEZWxldGUgYWxsIHVzZXIgcHJvcGVydGllcywgZm9yIGFsbCB1c2VycwogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZUFsbFVzZXJQcm9wZXJ0aWVzKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+RGVsZXRlQWxsVXNlclByb3BlcnRpZXMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSBhbGwgdXNlciBwcm9wZXJ0aWVzIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdXNlcmlkIFRoZSB1c2VyaWQKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVBbGxVc2VyUHJvcGVydGllc0Z1bGwoJHVzZXJpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+RGVsZXRlQWxsVXNlclByb3BlcnRpZXNGdWxsKCR1c2VyaWQpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIHNwZWNpZmllZCB1c2VyIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlci4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZSBUaGUgcHJvcGVydHkgbmFtZQogICAgICogQHBhcmFtIGludCAkdXNlcmlkIFRoZSB1c2VyaWQKICAgICAqIEBwYXJhbSBib29sZWFuICRhbGwgV2V0aGVyIG9yIG5vdCB0byBkZWxldGUgYWxsIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlci4KICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlVXNlclByb3BlcnR5RnVsbCgkdGl0bGUsJHVzZXJpZCwkYWxsPWZhbHNlKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5EZWxldGVVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkdXNlcmlkLCRhbGwpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIGEgc3BlY2lmaWVkIGdyb3VwLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdpZCBUaGUgZ3JvdXAgaWRlbnRpZmllcgogICAgICogQHJldHVybiBhcnJheSBUaGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgYSBib29sZWFuIHN0YXR1cywgdGhlIHNlY29uZCBlbGVtZW50IChpZiBhbnkpIGlzIGFuIGVycm9yIG1lc3NhZ2UuCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlbGV0ZUdyb3VwRnVsbCggJGdpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZUdyb3VwRnVsbCggJGdpZCApOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIHRoZSBzcGVjaWZpZWQgdXNlciBhY2NvdW50LgogICAgICoKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKiBAc2VlIERlbGV0ZVVzZXJGdWxsCiAgICAgKiBAcGFyYW0gaW50ICRpZCBUaGUgdWlkCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLCB0aGUgc2Vjb25kIGVsZW1lbnQgKGlmIGFueSkgaXMgYW4gZXJyb3IgbWVzc2FnZS4KICAgICAqLwogICAgZnVuY3Rpb24gRGVsZXRlVXNlcigkaWQpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkRlbGV0ZVVzZXIoICRpZCApOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBFeHBpcmVVc2VycygpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkV4cGlyZVVzZXJzKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEV4cGlyZVRlbXBDb2RlcyggJGV4cGlyeWNvZGUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5FeHBpcmVUZW1wQ29kZXMoICRleHBpcnljb2RlICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZW5lcmF0ZSBhIHJhbmRvbSB1c2VybmFtZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHByZWZpeCBhbiBvcHRpb25hbCBwcmVmaXggZm9yIHRoZSB1c2VybmFtZQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgZnVuY3Rpb24gR2VuZXJhdGVSYW5kb21Vc2VybmFtZSggJHByZWZpeCA9ICd1c2VyJyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdlbmVyYXRlUmFuZG9tVXNlcm5hbWUoICRwcmVmaXggKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhbGwgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZCBUaGUgdXNlciBpZGVudGlmaWVyCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSB1c2VyIHByb3BlcnRpZXMgYXMgcmVhZCBmcm9tIHRoZSBkYXRhYmFzZS4KICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlclByb3BlcnRpZXMoJHVpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0VXNlclByb3BlcnRpZXMoJHVpZCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBsaXN0IG9mIHRoZSBzcGVjaWZpZWQgdXNlcnMgZ3JvdXBzIChpZiBhbnkpCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdXNlcmlkIFRoZSB1c2VyIGlkZW50aWZpZXIKICAgICAqIEByZXR1cm4gbnVsbHxhcnJheSBJZiB0aGUgdXNlciBpcyBhIG1lbWJlciBvZiBhbnkgZ3JvdXBzIHRoZSByZXN1bHRpbmcgYXJyYXkgd2lsbCBjb250YWlsIHRoZSB1c2VyaWQsIGFuZCB0aGUgZ3JvdXBpZCBpbiBlYWNoIGVsZW1lbnQgb2YgdGhlIHJldHVybmVkIGFycmF5LgogICAgICovCiAgICBmdW5jdGlvbiBHZXRNZW1iZXJHcm91cHNBcnJheSgkdXNlcmlkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdXNlcmlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRpdGxlIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gbWl4ZWQgJGRlZmF1bHR2YWx1ZSBBbiBvcHRpb25hbCBkZWZhdWx0IHZhbHVlIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc2V0IGZvciB0aGUgdXNlci4gIE5vdGUsIGFuIGVtcHR5IHN0cmluZyBtYXkgYmUgYSB2YWxpZCBwcm9wZXJ0eSB2YWx1ZS4KICAgICAqIEByZXR1cm4gc3RyaW5nIChBbGwgcHJvcGVydGllcyBhcmUgc3RvcmVkIGFzIHN0cmluZ3MgaW4gdGhlIGRhdGFiYXNlKQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHkoJHRpdGxlLCRkZWZhdWx0dmFsdWU9ZmFsc2UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldFVzZXJQcm9wZXJ0eSggJHRpdGxlLCAkZGVmYXVsdHZhbHVlICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBwcm9wZXJ0eSB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCB1c2VyIGlkCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdGl0bGUgdGhlIHByb3BlcnR5IG5hbWUKICAgICAqIEBwYXJhbSBpbnQgJHVzZXJpZCBUaGUgdXNlciBpZGVudGlmaWVyCiAgICAgKiBAcGFyYW0gbWl4ZWQgJGRlZmF1bHR2YWx1ZSBBbiBvcHRpb25hbCBkZWZhdWx0IHZhbHVlIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc2V0IGZvciB0aGUgdXNlci4gIE5vdGUsIGFuIGVtcHR5IHN0cmluZyBtYXkgYmUgYSB2YWxpZCBwcm9wZXJ0eSB2YWx1ZS4KICAgICAqIEByZXR1cm4gc3RyaW5nIChBbGwgcHJvcGVydGllcyBhcmUgc3RvcmVkIGFzIHN0cmluZ3MgaW4gdGhlIGRhdGFiYXNlKQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkdXNlcmlkLCAkZGVmYXVsdHZhbHVlPWZhbHNlKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkdXNlcmlkLCRkZWZhdWx0dmFsdWUpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyVGVtcENvZGUoICR1aWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VyVGVtcENvZGUoICR1aWQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZ3JvdXAgcHJvcGVydHkgcmVsYXRpb25zIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LCBmb3IgYWxsIGdyb3Vwcy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZSB0aGUgcHJvcGVydHkgdGl0bGUuCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoICR0aXRsZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoICR0aXRsZSApOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBwcm9wZXJ0eSByZWxhdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlcgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHlSZWxhdGlvbnMoJHVpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0VXNlclByb3BlcnR5UmVsYXRpb25zKCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHByb3BlcnR5IHJlbGF0aW9ucyBmb3IgdGhlIHNwZWNpZmllZCBncm91cAogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdycGlkIFRoZSBncm91cCBpZGVudGlmaWVyCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBncm91cCBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBncm91cAogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdpZCBUaGUgZ3JvdXAgaWRlbnRpZmllcgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRHcm91cEluZm8oICRnaWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRHcm91cEluZm8oICRnaWQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB1c2VyIGhpc3RvcnkgcmVjb3JkcywgYnkgZGVzY2VuZGluZyBkYXRlLgogICAgICogV2FybmluZzogVGhpcyBjb3VsZCBwb3RlbnRpYWxseSByZXR1cm4gYSB2ZXJ5IGxhcmdlIGFycmF5LgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIHN0cmluZyAkYWN0aW9uIEFuIG9wdGlvbmFsIGFjdGlvbiBmaWx0ZXIgKHN1Y2ggYXMgbG9naW4gb3IgbG9nb3V0KQogICAgICogQHBhcmFtIGludCAkY291bnQgQW4gb3B0aW9uYWwgbGltaXQKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlckhpc3RvcnkoICR1aWQsICRhY3Rpb24gPSAnJywgJGNvdW50ID0gLTEgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VySGlzdG9yeSgkdWlkLCRhY3Rpb24sJGNvdW50KTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGxpc3Qgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlcnMuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkbm90X2FjdGl2ZV9zaW5jZSBBbiBvcHRpb25hbCB1bml4IHRpbWVzdGFtcCBmaWx0ZXIgaW5kaWNhdGluZyBsYXN0IGFjdGl2aXR5LgogICAgICogQHJldHVybiBpbnRbXSBBcnJheSBvZiBsb2dnZWQgaW4gdWlkcy4KICAgICAqLwogICAgZnVuY3Rpb24gR2V0TG9nZ2VkSW5Vc2VycyggJG5vdF9hY3RpdmVfc2luY2UgPSAnJyApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldExvZ2dlZEluVXNlcnMoJG5vdF9hY3RpdmVfc2luY2UpOwogICAgfQoKCiAgICAvKioKICAgICAqIEBpdG5vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0QnVsa1VzZXJJbmZvKCAkdWlkcywgJGRlZXAgPSBUUlVFICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0QnVsa1VzZXJJbmZvKCR1aWRzLCRkZWVwKTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBHZXQgdXNlciBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIGJvb2wgJGRlZXAgT3B0aW9uYWxseSBhbHNvIHJldHJpZXZlIHByb3BlcnR5IHZhbHVlcy4KICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlckluZm8oICR1aWQsICRkZWVwID0gRkFMU0UgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VySW5mbyggJHVpZCwgJGRlZXAgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB1c2VyIGluZm9ybWF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHVzZXIsIGJ5IGhpcyB1c2VybmFtZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZQogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VySW5mb0J5TmFtZSggJHVzZXJuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0VXNlckluZm9CeU5hbWUoICR1c2VybmFtZSApOwogICAgfQoKCiAgICAvKioKICAgICAqIEdldCBpbmZvIGZvciB0aGUgdXNlcnMgYnkgdGhlaXIgZ3JvdXAuCiAgICAgKiBXYXJuaW5nOiBUaGlzIGNvdWxkIHBvdGVudGlhbGx5IHJldHVybiBhbG90IG9mIGRhdGEuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZ2lkCiAgICAgKiBAcmV0dXJuIGFycmF5IEFycmF5IG9mIHVzZXJpbmZvIGRhdGEuICBPbmUgZWxlbWVudCBwZXIgdXNlci4KICAgICAqLwogICAgZnVuY3Rpb24gR2V0RnVsbFVzZXJzSW5Hcm91cCgkZ2lkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRGdWxsVXNlcnNJbkdyb3VwKCRnaWQpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGRlcHJlY2F0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlcnNJbkdyb3VwKCAkZ2lkID0gJycsICRyZWdleCA9ICcnLCAkbGltaXQgPSAnJywgJHNvcnQgPSAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByb3BlcnR5ID0gJycsICRwcm9wcmVnZXggPSAnJywgJGxvZ2dlZGlub25seSA9IDAsICRzdGFydF9yZWNvcmQgPSAwKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2Vyc0luR3JvdXAoICRnaWQsICRyZWdleCwgJGxpbWl0LCAkc29ydCwgJHByb3BlcnR5LCAkcHJvcHJlZ2V4LCAkbG9nZ2VkaW5vbmx5LCAkc3RhcnRfcmVjb3JkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICovCiAgICBmdW5jdGlvbiBnZXRfbGFzdHVzZXJxdWVyeV9tYXRjaGVzKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+Z2V0X2xhc3R1c2VycXVlcnlfbWF0Y2hlcygpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGRlcHJlY2F0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0X2xhc3R1c2VycXVlcnlfY291bnQoKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5nZXRfbGFzdHVzZXJxdWVyeV9jb3VudCgpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGRlcHJlY2F0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gcmVzZXRfbGFzdHVzZXJxdWVyeSgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPnJlc2V0X2xhc3R1c2VycXVlcnkoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRlc3QgaWYgdGhlIGd1aWQgc3BlY2lmaWVkIGlzIGEgdmFsaWQsIGV4aXN0aW5nIGdyb3VwIGlkLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdpZAogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdyb3VwRXhpc3RzQnlJRCggJGdpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdyb3VwRXhpc3RzQnlJRCggJGdpZCApOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBpZiB0aGUgZ3JvdXAgbmFtZSBzcGVjaWZpZWQgaXMgYSB2YWxpZCwgZXhpc3RpbmcgZ3JvdXAuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgZ3JvdXAgbmFtZS4KICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBmdW5jdGlvbiBHcm91cEV4aXN0c0J5TmFtZSggJG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Hcm91cEV4aXN0c0J5TmFtZSggJG5hbWUgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBlbWFpbCBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIGZvciB0aGlzIHJlcXVlc3QuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgZnVuY3Rpb24gTG9nZ2VkSW5FbWFpbCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkxvZ2dlZEluRW1haWwoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgc3BlY2lmaWVkIHVzZXIuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBHZXRFbWFpbCgkdWlkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRFbWFpbCgkdWlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBDbGVhclByb3BlcnR5Q2FjaGUoKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5DbGVhclByb3BlcnR5Q2FjaGUoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhbGwgcHJvcGVydHkgZGVmaW5pdGlvbnMuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRQcm9wZXJ0eURlZm5zKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0UHJvcGVydHlEZWZucygpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IGEgcHJvcGVydHkgZGVmaW5pdGlvbiByZWNvcmQgYnkgaXRzIG5hbWUKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIHRoZSBwcm9wZXJ0eSBuYW1lLgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBHZXRQcm9wZXJ0eURlZm4oICRuYW1lICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0UHJvcGVydHlEZWZuKCAkbmFtZSApOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHNlbGVjdCBvcHRpb25zIGZvciBhIHByb3BlcnR5IGFzIGEgc2ltcGxlLCBvciBhIDIgZGltZW5zaW9uYWwgYXJyYXkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gaW50ICRkaW0gIElmIDEsIHJldHVybiBhIHNpbXBsZSBhc3NvY2lhdGl2ZSBhcnJheS4gIElmIDIsIHJldHVybiBhIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5IHdpdGggcHJvcGVydGllcyBvcHRpb25fbmFtZSwgb3B0aW9uX3RleHQgYW5kIGNvbnRyb2xfbmFtZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRTZWxlY3RPcHRpb25zKCAkbmFtZSwgJGRpbSA9IDEgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRTZWxlY3RPcHRpb25zKCAkbmFtZSwgJGRpbSApOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSB1c2VybmFtZSBmb3IgYSBzcGVjaWZpZWQgdWlkCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdXNlcmlkCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBHZXRVc2VyTmFtZSgkdXNlcmlkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VyTmFtZSgkdXNlcmlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgdXNlcmlkIGZvciBhIHNwZWNpZmllZCB1c2VybmFtZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCiAgICAgKiBAcmV0dXJuIGl0CiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldFVzZXJJRCgkdXNlcm5hbWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldFVzZXJJRCgkdXNlcm5hbWUpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBncm91cCBuYW1lIGZvciBhIHNwZWNpZmllZCBncm91cCBpZAogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGdyb3VwaWQKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEdyb3VwTmFtZSgkZ3JvdXBpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0R3JvdXBOYW1lKCAkZ3JvdXBpZCApOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkZXNjcmlwdGlvbmYgb3IgYSBzcGVjaWZpZWQgZ3JvdXAgaWQKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRncm91cGlkCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBHZXRHcm91cERlc2MoJGdyb3VwaWQpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldEdyb3VwRGVzYyggJGdyb3VwaWQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGxpc3Qgb2YgdGhlIGdyb3VwcywgZm9yIHVzZSBpbiBhIGRyb3Bkb3duLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gR2V0R3JvdXBMaXN0KCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0R3JvdXBMaXN0KCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYSBmdWxsIGdyb3VwIGxpc3QsIHdpdGggYWxsIGluZm9ybWF0aW9uIGFib3V0IHRoYXQgZ3JvdXAuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2wgJHdpdGhfY291bnQgb3B0aW9uYWxseSBpbmNsdWRlIG1lbWJlcnNoaXAgaW5mby4KICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gR2V0R3JvdXBMaXN0RnVsbCgkd2l0aF9jb3VudCA9IEZBTFNFKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRHcm91cExpc3RGdWxsKCR3aXRoX2NvdW50KTsKICAgIH0KCiAgICAvKioKICAgICAqIEdpdmVuIGEgZ3JvdXAgbmFtZSwgZ2V0IGEgZ3JvdXAgaWQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkZ3JvdXBuYW1lCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBmdW5jdGlvbiBHZXRHcm91cElEKCRncm91cG5hbWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkdldEdyb3VwSUQoICRncm91cG5hbWUgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgbGlzdCBvZiBncm91cHMgKGJ5IG5hbWUpIHRoYXQgYSB1c2VyIGlzIGEgbWVtYmVyIG9mLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVzZXJpZAogICAgICogQHJldHVybiBzdHJpbmdbXQogICAgICovCiAgICBmdW5jdGlvbiBHZXRNZW1iZXJHcm91cHMoJHVzZXJpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+R2V0TWVtYmVyR3JvdXBzKCR1c2VyaWQpOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSBkYXRlIHRoYXQgYSB1c2VyIGFjY291bnQgZXhwaXJlcy4KICAgICAqCiAgICAgKiBAcGFyYW0gJHVpZAogICAgICogQHJldHVybiBpbnQgQSB1bml4IHRpbWVzdGFtcCBvZiB0aGUgZXhwaXJ5IGRhdGUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldEV4cGlyeURhdGUoICR1aWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRFeHBpcnlEYXRlKCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUZXN0IGlmIHRoZSBzcGVjaWZpZWQgYWNjb3VudCBpcyBleHBpcmVkLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIGZ1bmN0aW9uIElzQWNjb3VudEV4cGlyZWQoICR1aWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Jc0FjY291bnRFeHBpcmVkKCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUZXN0IGlmIHRoZSBzcGVjaWZpZWQgcGxhaW4gdGV4dCBwYXNzd29yZCBpcyBzdWl0YWJsZSAobWF0Y2hlcyBtb2R1bGUgc2V0dGluZ3MpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcGFzc3dvcmQKICAgICAqIEByZXR1cm4gYm9vbAogICAgICovCiAgICBmdW5jdGlvbiBJc1ZhbGlkUGFzc3dvcmQoICRwYXNzd29yZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPklzVmFsaWRQYXNzd29yZCggJHBhc3N3b3JkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHByb21wdCBmb3IgYSB1c2VybmFtZS4KICAgICAqIFRoaXMgbWF5IGNoYW5nZSBiYXNlZCBvbiBtb2R1bGUgc2V0dGluZ3MuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgZnVuY3Rpb24gR2V0VXNlcm5hbWVQcm9tcHQoKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5HZXRVc2VybmFtZVByb21wdCgpOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBpZiB0aGUgZW1haWwgc3BlY2lmaWVkIGlzIHZhbGlkLCBhbmQgb3B0aW9uYWxseSBub3QgdXNlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRlbWFpbCBUaGUgZW1haWwgYWRkcmVzcyB0byB0ZXN0CiAgICAgKiBAcGFyYW0gaW50ICR1aWQgSWYgc3BlY2lpZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBlbWFpbCBhZGRyZXNzcyBpcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIGFuZCBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciB1c2Vycy4KICAgICAqIEBwYXJhbSBib29sZWFuICRjaGVja19leGlzdGluZy4gIElmIHNwZWNpZmllZCwgdGhpcyBmbGFnIGluZGljYXRlcyB0aGF0IHRoZSBzeXN0ZW0gc2hvdWxkIGNoZWNrIGlmIHRoZSBlbWFpbCBhZGRyZXNzIGlzIG5vdCB1c2VkIGN1cnJlbnRseSBpbiB0aGUgc3lzdGVtLgogICAgICogQHJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2V0aGVyIHRoaXMgZW1haWwgYWRkcmVzcyBjYW4gYmUgdXNlZCB3aXRoaW4gdGhlIHN5c3RlbS4KICAgICAqLwogICAgZnVuY3Rpb24gSXNWYWxpZEVtYWlsQWRkcmVzcyggJGVtYWlsLCAkdWlkID0gLTEsICRjaGVja19leGlzdGluZyA9IEZBTFNFICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+SXNWYWxpZEVtYWlsQWRkcmVzcyggJGVtYWlsLCAkdWlkLCAkY2hlY2tfZXhpc3RpbmcgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRlc3Qgd2V0aGVyIHRoZSBzcGVjaWZpZWQgdXNlcm5hbWUgaXMgdmFsaWQgZm9yIHRoZSBzeXN0ZW0uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdXNlcm5hbWUKICAgICAqIEBwYXJhbSBib29sZWFuICRjaGVjayBPcHRpb25hbGx5IHRlc3Qgd2hldGhlciB0aGlzIHVzZXJuYW1lIGlzIGluIGN1cnJlbnQgdXNlLgogICAgICogQHBhcmFtIGludCAkdWlkIElmICRjaGVjayBpcyB0cnVlLCBpbmRpY2F0ZSBhbiBvcHRpb25hbCB1aWQgdG8gZXhjbHVkZSBmcm9tIHRoZSBjaGVjawogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIElzVmFsaWRVc2VybmFtZSggJHVzZXJuYW1lLCAkY2hlY2sgPSB0cnVlLCAkdWlkID0gLTEgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Jc1ZhbGlkVXNlcm5hbWUoICR1c2VybmFtZSwgJGNoZWNrLCAkdWlkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBWYWxpZGF0ZSB0aGUgdXNlciBwYXNzd29yZC4KICAgICAqIFRoaXMgaXMgaXMgbm90IGEgbG9naW4gb3BlcmF0aW9uLCBidXQgZG9lcyBwZXJmb3JtIHRoZSB2YWxpZGF0aW9uIG9mIHRoZSBwYXNzd29yZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZSBUaGUgdXNlciBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZCBUaGUgcGxhaW4gdGV4dCBwYXNzd29yZC4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGdyb3VwcyBBbiBvcHRpb25hbCBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cCBuYW1lcy4gIElmIHNwZWNpZmllZCwgdGhlIHVzZXIgbXVzdCBhbHNvIGJlbG9uZyB0byBvbmUgb2YgdGhlc2UgZ3JvdXBzLgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIENoZWNrUGFzc3dvcmQoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRncm91cHMgPSAnJykKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+Q2hlY2tQYXNzd29yZCgkdXNlcm5hbWUsICRwYXNzd29yZCwgJGdyb3Vwcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2cgdGhlIHVzZXIgaW50byB0aGUgc3lzdGVtLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZCBUaGUgcGxhaW4gdGV4dCBwYXNzd29yZAogICAgICogQHBhcmFtIHN0cmluZyAkZ3JvdXBzIEFuIG9wdGlvbmFsIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3VwIG5hbWVzLiAgSWYgc3BlY2lmaWVkLCB0aGUgdXNlciBtdXN0IGFsc28gYmVsb25nIHRvIG9uZSBvZiB0aGVzZSBncm91cHMuCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkaWdub3JlZCBObyBsb25nZXIgdXNlZAogICAgICogQHBhcmFtIGJvb2xlYW4gJGZvcmNlX2xnb3V0IEZvcmNlIHRoZSB1c2VyIHRvIGEgbG9nZ2VkIG91dCBzdGF0ZSBiZWZvcmUgYmVpbmcgbG9nZ2VkIGluIGFnYWluLgogICAgICogQHJldHVybiBhcnJheSBUaGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgZWl0aGVyIHRoZSB1aWQgb3IgRkFMU0UuICBJZiBmYWxzZSwgdGhlIHNlY29uZCBlbGVtZW50IGlzIGFuIGVycm9yIHN0cmluZy4KICAgICAqLwogICAgZnVuY3Rpb24gTG9naW4oICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZ3JvdXBzID0gJycsICRpZ25vcmVkID0gZmFsc2UsICRmb3JjZV9sb2dvdXQgPSBmYWxzZSkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+TG9naW4oICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZ3JvdXBzLCBmYWxzZSwgJGZvcmNlX2xvZ291dCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGUgdXNlcm5hbWUgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlciBmb3IgdGhpcyByZXF1ZXN0LgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIGZ1bmN0aW9uIExvZ2dlZEluTmFtZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgJHN0ciA9ICR0aGlzLT51c2VybWFuaXAtPkxvZ2dlZEluTmFtZSgpOwogICAgICAgIHJldHVybiAkc3RyOwogICAgfQoKICAgIC8qKgogICAgICogTG9nb3V0IHRoZSBzcGVjaWZpZWQgdXNlciwgb3IgdGhlIGN1cnJlbnQgdXNlci4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR1aWQgQW4gb3B0aW9uYWwgdWlkLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVpZCBmb3IgdGhpcyByZXF1ZXN0IHdpbGwgYmUgdXNlZC4KICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgQW4gb3B0aW9uYWwgc3RyaW5nIHRvIGluY2x1ZGUgaW4gdGhpZSBoaXN0b3J5IGxvZy4KICAgICAqLwogICAgZnVuY3Rpb24gTG9nb3V0KCR1aWQgPSAnJywkbWVzc2FnZSA9ICdsb2dvdXQnKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5Mb2dvdXQoJHVpZCwkbWVzc2FnZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2dvdXQgdGhlIHNwZWNpZmllZCB1c2VyLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZCBBbiBvcHRpb25hbCB1aWQuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBsb2dnZWQgaW4gdWlkIGZvciB0aGlzIHJlcXVlc3Qgd2lsbCBiZSB1c2VkLgogICAgICogQHBhcmFtIHN0cmluZyAkbWVzc2FnZSBBbiBvcHRpb25hbCBzdHJpbmcgdG8gaW5jbHVkZSBpbiB0aGllIGhpc3RvcnkgbG9nLgogICAgICovCiAgICBmdW5jdGlvbiBMb2dvdXRVc2VyKCR1aWQsJGV2ZW50bXNnID0gJ2xvZ291dCcpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkxvZ291dFVzZXIoJHVpZCwkZXZlbnRtc2cpOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIHRoZSB1aWQgb2YgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgZm9yIHRoaXMgcmVxdWVzdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludAogICAgICovCiAgICBmdW5jdGlvbiBMb2dnZWRJbklkKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+TG9nZ2VkSW5JZCgpOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCB3aGV0aGVyIHRoZSBjdXJyZW50IHNpdGUgdmlzaXRvciBpcyBsb2dnZWQgaW4gdG8gRnJvbnRFbmRVc2VycwogICAgICoKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBMb2dnZWRJbigpCiAgICB7CiAgICAgICAgJHRtcCA9ICR0aGlzLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgaWYoICR0bXAgPiAwICkgcmV0dXJuIFRSVUU7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgdXNlciBpcyBhIG1lbWJlciBvZiB0aGUgc3BlY2lmaWVkIGdyb3VwLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVzZXJpZAogICAgICogQHBhcmFtIGludCAkZ3JvdXBpZAogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIE1lbWJlck9mR3JvdXAoJHVzZXJpZCwkZ3JvdXBpZCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+TWVtYmVyT2ZHcm91cCgkdXNlcmlkLCRncm91cGlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBmdW5jdGlvbiBSZW1vdmVVc2VyVGVtcENvZGUoICR1aWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5SZW1vdmVVc2VyVGVtcENvZGUoICR1aWQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIHVzZXIgZnJvbSB0aGUgc3BlY2lmaWVkIGdyb3VwLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIGludCAkZ2lkCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLiAgSWYgZmFsc2UsIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBhbiBlcnJvciBzdHJpbmcuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFJlbW92ZVVzZXJGcm9tR3JvdXAoICR1aWQsICRnaWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5SZW1vdmVVc2VyRnJvbUdyb3VwKCAkdWlkLCAkZ2lkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgZnVuY3Rpb24gU2V0VXNlclRlbXBDb2RlKCAkdWlkLCAkY29kZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPlNldFVzZXJUZW1wQ29kZSggJHVpZCwgJGNvZGUsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJykgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFVwZGF0ZSB0aGUgaW5mb3JtYXRpb24gZm9yIGFuIGV4aXN0aW5nIHByb3BlcnR5IGRlZmluaXRpb24uCiAgICAgKiBUaGlzIG1ldGhvZCBkb2VzIG5vdCB1cGRhdGUgdGhlIHByb3BlcnRpZXMgdGFibGUgaWYgdGhlIHByb3BlcnR5IGlzIGdpdmVuIGEgbmV3IG5hbWUsIG9yIGZvcmNlX3VuaXF1ZSBvciBlbmNyeXB0IHZhbHVlcy4KICAgICAqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIHByb3BlcnR5IGRlZmluaXRpb24gbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAkbmV3bmFtZSBBIG5ldyBuYW1lIGZvciB0aGUgcHJvcGVydHkuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwcm9tcHQgVGhlIHByb3BlcnR5IHByb21wdAogICAgICogQHBhcmFtIGludCAkbGVuZ3RoIFRoZSBwcm9wZXJ0eSBpbnB1dCBmaWVsZCBsZW5ndGgKICAgICAqIEBwYXJhbSBpbnQgJHR5cGUgVGhlIHByb3BlcnR5IHR5cGUKICAgICAqIEBwYXJhbSBpbnQgJG1heGxlbmd0aCBUaGUgcHJvcGVydHkgaW5wdXQgZmllbGQgbWF4aW11bSBsZW5ndGguCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhdHRyaWJzIEEgc2VyaWFsaXplZCBhcnJheSBvZiBhdHRyaWJ1dGVzIGZvciB0aGUgcHJvcGVydHkKICAgICAqIEBwYXJhbSBib29sICRmb3JjZV91bmlxdWUgRm9yY2UgdGhpcyBwcm9wZXJ0eSB0byBiZSB1bmlxdWUgYWNyb3NzIGFsbCB1c2Vycy4KICAgICAqIEBwYXJhbSBib29sICRlbmNyeXB0IEZvcmNlIHRoZSB2YWx1ZXMgb2YgdGhpcyBwcm9wZXJ0eSB0byBiZSBlbmNyeXB0ZWQgd2hlbiBzYXZlZC4KICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBmdW5jdGlvbiBTZXRQcm9wZXJ0eURlZm4oICRuYW1lLCAkbmV3bmFtZSwgJHByb21wdCwgJGxlbmd0aCwgJHR5cGUsICRtYXhsZW5ndGggPSAwLCAkYXR0cmlicyA9ICcnLCAkZm9yY2VfdW5pcXVlID0gMCwgJGVuY3J5cHQgPSAwICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0UHJvcGVydHlEZWZuKCAkbmFtZSwgJG5ld25hbWUsICRwcm9tcHQsICR0eXBlLCAkbGVuZ3RoLCAkbWF4bGVuZ3RoLCAkYXR0cmlicywgJGZvcmNlX3VuaXF1ZSwgJGVuY3J5cHQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgZXh0cmEgaW5mb3JtYXRpb24gZm9yIGEgcHJvZXJ0eS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBwcm9wZXJ0eSBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRleHRyYSBUaGUgZXh0cmEgdmFsdWUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFByb3BlcnR5RGVmbkV4dHJhKCRuYW1lLCRleHRyYSkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0UHJvcGVydHlEZWZuRXh0cmEoJG5hbWUsJGV4dHJhKTsKICAgIH0KCiAgICAvKioKICAgICAqIFVwZGF0ZSBhIGdyb3VwIGRlZmluaXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZ2lkCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBncm91cCBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRkZXNjIEFuIG9wdGlvbmFsIGdyb3VwIGRlc2NyaXB0aW9uCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLiAgSWYgZmFsc2UsIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBhbiBlcnJvciBzdHJpbmcuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldEdyb3VwKCAkZ2lkLCAkbmFtZSwgJGRlc2MgPSBudWxsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0R3JvdXAoICRnaWQsICRuYW1lLCAkZGVzYyApOwogICAgfQoKICAgIC8qKgogICAgICogR2l2ZW4gYSBwbGFpbiB0ZXh0IHBhc3N3b3JkLCBlbmNyeXB0IGl0IGZvciBhIHVzZXIKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR1aWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBFbmNyeXB0UGFzc3dvcmQoICR1aWQsICRwbGFpbl9wYXNzd29yZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPkVuY3J5cHRQYXNzd29yZCggJHVpZCwgJHBsYWluX3Bhc3N3b3JkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHBhc3N3b3JkIGZvciBhIHVzZXIKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR1aWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkCiAgICAgKiBAcmV0dXJuIGFycmF5IFRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIGJvb2xlYW4gc3RhdHVzLiAgSWYgZmFsc2UsIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBhbiBlcnJvciBzdHJpbmcuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFVzZXJQYXNzd29yZCggJHVpZCwgJHBhc3N3b3JkICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0VXNlclBhc3N3b3JkKCAkdWlkLCAkcGFzc3dvcmQgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRvZ2dsZSBhIHVzZXIgYWNjb3VudCBhcyBkaXNibGVkLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIGJvb2xlYW4gJGZsYWcgV2hldGhlciBvciBub3QgdGhlIGFjY291bnQgaXMgZGlzYWJsZWQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFVzZXJEaXNhYmxlZCggJHVpZCwgJGZsYWcgPSBUUlVFICkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyRGlzYWJsZWQoJHVpZCwkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUb2dnbGUgd2hldGhlciBhIHVzZXIgaXMgZm9yY2VkIHRvIGNoYW5nZSBoaXMgcGFzc3dvcmQgYXQgdGhlIG5leHQgbG9naW4uCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkZmxhZwogICAgICovCiAgICBmdW5jdGlvbiBGb3JjZVBhc3N3b3JkQ2hhbmdlKCAkdWlkLCAkZmxhZyA9IFRSVUUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgICR0aGlzLT51c2VybWFuaXAtPkZvcmNlUGFzc3dvcmRDaGFuZ2UoJHVpZCwkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUb2dnbGUgd2hldGhlciBhIHVzZXIgaXMgZm9yY2VkIHRvIGNoYW5nZSBoaXMgc2V0dGluZ3MgaW4gc29tZSB3YXkgYXQgdGhlIG5leHQgbG9naW4uCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkZmxhZwogICAgICovCiAgICBmdW5jdGlvbiBGb3JjZUNoYW5nZVNldHRpbmdzKCAkdWlkLCAkZmxhZyA9IFRSVUUgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgICR0aGlzLT51c2VybWFuaXAtPkZvcmNlQ2hhbmdlU2V0dGluZ3MoJHVpZCwkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUb2dnbGUgd2hldGhlciBhIHVzZXIgaXMgZm9yY2VkIHRvIHJldmFsaWRhdGUgdGhlbXNlbHZlcwogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHVpZAogICAgICogQHBhcmFtIGJvb2xlYW4gJGZsYWcKICAgICAqLwogICAgZnVuY3Rpb24gRm9yY2VWZXJpZnkoICR1aWQsICRmbGFnID0gVFJVRSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgJHRoaXMtPnVzZXJtYW5pcC0+Rm9yY2VWZXJpZnkoJHVpZCwkZmxhZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGp1c3QgdXNlciBkZXRhaWxzCiAgICAgKgogICAgICogQHBhcmFtIGludCAkdWlkCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZSBUaGUgdXNlciBuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZCBUaGUgdXNlcnMgcGxhaW4gdGV4dCBwYXNzd29yZAogICAgICogQHBhcmFtIGludCAkZXhwaXJlcyBBbiBvcHRpb25hbCBleHBpcnkgZGF0ZS4KICAgICAqLwogICAgZnVuY3Rpb24gU2V0VXNlciggJHVpZCwgJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRleHBpcmVzID0gZmFsc2UgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyKCAkdWlkLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMgKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCBleHBsaWNpdCBncm91cCBtZW1iZXJzaGlwLgogICAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgYWx0ZXIgdGhlIHVzZXIgcHJvcGVydGllcy4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICR1aWQKICAgICAqIEBwYXJhbSBpbnRbXSAkZ3JwaWRzCiAgICAgKi8KICAgIGZ1bmN0aW9uIFNldFVzZXJHcm91cHMoICR1aWQsICRncnBpZHMgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyR3JvdXBzKCAkdWlkLCAkZ3JwaWRzICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgdXNlciB0byBhIGdyb3VwCiAgICAgKgogICAgICogZG9lcyBub3QgZWZmZWN0IHVzZXIgcHJvcGVydGllcwogICAgICogZG9lcyBub3QgdmFsaWRhdGUgZ2lkCiAgICAgKiB1c2VyaWQgaXMgdmFsaWRhdGVkCiAgICAgKgogICAgICogQHBhcmFtIGludCB1c2VyIGlkCiAgICAgKiBAcGFyYW0gaW50IGdyb3VwIGlkCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgZnVuY3Rpb24gQWRkVXNlclRvR3JvdXAoICR1aWQsICRnaWQgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5BZGRVc2VyVG9Hcm91cCggJHVpZCwgJGdpZCApOwogICAgfQoKICAgIGZ1bmN0aW9uIFNldFVzZXJQcm9wZXJ0aWVzKCAkdWlkLCAkcHJvcHMgKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyUHJvcGVydGllcyggJHVpZCwgJHByb3BzICk7CiAgICB9CgogICAgZnVuY3Rpb24gU2V0VXNlclByb3BlcnR5KCR0aXRsZSwkZGF0YSkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWQoKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJtYW5pcC0+U2V0VXNlclByb3BlcnR5KCR0aXRsZSwkZGF0YSk7CiAgICB9CgogICAgZnVuY3Rpb24gSXNVc2VyUHJvcGVydHlWYWx1ZVVuaXF1ZSgkdWlkLCR0aXRsZSwkdmFsdWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPklzVXNlclByb3BlcnR5VmFsdWVVbmlxdWUoJHVpZCwkdGl0bGUsJHZhbHVlKTsKICAgIH0KCiAgICBmdW5jdGlvbiBTZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkZGF0YSwkdXNlcmlkKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5TZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkZGF0YSwkdXNlcmlkKTsKICAgIH0KCiAgICBmdW5jdGlvbiBVc2VyRXhpc3RzQnlJRCggJHVpZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPlVzZXJFeGlzdHNCeUlEKCAkdWlkICk7CiAgICB9CgogICAgZnVuY3Rpb24gU2V0RW5jcnlwdGlvbktleSgkdWlkID0gLTEsJGZvcmNlID0gRkFMU0UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT51c2VybWFuaXAtPlNldEVuY3J5cHRpb25LZXkoICR1aWQsICRmb3JjZSApOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIGZ1bmN0aW9uIERlY3J5cHRVc2VyRGF0YSgkdWlkLCRkYXRhKQogICAgewogICAgICAgICR0aGlzLT5fbG9hZCgpOwogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcm1hbmlwLT5EZWNyeXB0VXNlckRhdGEoJHVpZCwkZGF0YSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgZnVuY3Rpb24gSGFzQ2FwYWJpbGl0eSgkY2FwYWJpbGl0eSwkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICBzd2l0Y2goICRjYXBhYmlsaXR5ICkgewogICAgICAgIGNhc2UgJ2NvbnRlbnRfdHlwZXMnOgogICAgICAgIGNhc2UgJ2NvbnRlbnRfYXR0cmlidXRlcyc6CiAgICAgICAgY2FzZSAndGFza3MnOgogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldF9jb250ZW50X2F0dHJpYnV0ZXMoJGNvbnRlbnRfdHlwZSkKICAgIHsKICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAkYXR0ciA9IG5ldyBDbXNDb250ZW50VHlwZVByb2ZpbGVBdHRyaWJ1dGUoJ2ZldV9ncm91cHMnLCd2aXNpdG9ycycpOwogICAgICAgICRhdHRyLT5zZXRfaGVscGVyKGZldV9jb250ZW50X2F0dHJpYnV0ZV9oZWxwZXI6OmdldF9pbnN0YW5jZSgpKTsKICAgICAgICAkdG1wW10gPSAkYXR0cjsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIHBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrKCRzdHIpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnICcsJ18nLCRzdHIpOwogICAgICAgIGlmKCAkc3RyID09ICdmb3Jnb3RfcGFzc3dvcmRfZW1haWwnICkgJHN0ciA9ICd2ZXJpZnlfZW1haWwnOwogICAgICAgICRzdHIgPSAndHBsdHlwZV8nLiRzdHI7CiAgICAgICAgaWYoIGlzX29iamVjdCgkbW9kKSApIHJldHVybiAkbW9kLT5MYW5nKCRzdHIpOwogICAgfQoKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gcmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzKENtc0xheW91dFRlbXBsYXRlVHlwZSAkdHlwZSkKICAgIHsKICAgICAgICBpZiggJHR5cGUtPmdldF9vcmlnaW5hdG9yKCkgIT0gJ0Zyb250RW5kVXNlcnMnICkgdGhyb3cgbmV3IENtc0xvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgcmVzZXQgY29udGVudHMgZm9yIHRoaXMgdGVtcGxhdGUgdHlwZScpOwoKICAgICAgICAkZm4gPSBudWxsOwogICAgICAgIHN3aXRjaCggJHR5cGUtPmdldF9uYW1lKCkgKSB7CiAgICAgICAgY2FzZSAnbG9naW4gZm9ybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX2xvZ2luZm9ybS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdsb2dvdXQgZm9ybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX2xvZ291dGZvcm0udHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY2hzZXR0aW5ncyBmb3JtJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfY2hhbmdlc2V0dGluZ3MudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZm9yZ290IHBhc3N3b3JkIGZvcm0nOgogICAgICAgICAgICAkZm4gPSAnb3JpZ19mb3Jnb3RwYXNzd29yZDEudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZm9yZ290IHBhc3N3b3JkIGVtYWlsJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfZm9yZ290cGFzc3dvcmQyLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2ZvcmdvdCBwYXNzd29yZCB2ZXJpZnknOgogICAgICAgICAgICAkZm4gPSAnb3JpZ19mb3Jnb3RwYXNzd29yZDMudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZm9yY2UgbmV3IHBhc3N3b3JkJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfZm9yY2VfbmV3cHdfZm9ybS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdsb3N0IHVzZXJuYW1lIGZvcm0nOgogICAgICAgICAgICAkZm4gPSAnb3JpZ19sb3N0dW5mb3JtX3RlbXBsYXRlLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2xvc3QgdXNlcm5hbWUgY29uZmlybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX2xvc3R1bmZvcm1fY29uZmlybV90ZW1wbGF0ZS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICd2aWV3IHVzZXInOgogICAgICAgICAgICAkZm4gPSAnb3JpZ192aWV3dXNlcl90ZW1wbGF0ZS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdyZXNldCBzZXNzaW9uJzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfcmVzZXRzZXNzaW9uX3RlbXBsYXRlLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3ZlcmlmeV9mb3JtJzoKICAgICAgICBjYXNlICd2ZXJpZnkgZm9ybSc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX3ZlcmlmeWZvcm0udHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdHlwZS0+Z2V0X25hbWUoKS4nIGlzIG5vdCBhIGtub3duIHR5cGUgZm9yIHRoZSAnLiR0eXBlLT5nZXRfb3JpZ2luYXRvcigpLicgb3JpZ2luYXRvcicpOwogICAgICAgIH0KCiAgICAgICAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCRmbik7CiAgICAgICAgaWYoIGlzX2ZpbGUoJGZuKSApIHJldHVybiBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgIH0KfSAvLyBjbGFzcwoKLy8gRU9GCg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_admintab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLyBhIGZvcm0gZm9yIHBlcmZvcm1pbmcgdmFyaW91cyBhZG1pbiB0YXNrcwovLyBsaWtlIHJlc2V0dGluZyBleHBpcnkgZGF0ZXMsIGV0YywgZXRjLgogICAgCiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCggJGlkLCAnZG9fYWRtaW50YXNrcycsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWRkZW4nLCAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdhY3RpdmVfdGFiJywnYWRtaW4nKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2xlZ2VuZF91c2VyaGlzdG9yeW1haW50ZW5hbmNlJywkdGhpcy0+TGFuZygndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknLCR0aGlzLT5MYW5nKCdwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknKSk7CiRleHBvcnRsaXN0ID0gYXJyYXkoKTsKJGV4cG9ydGxpc3RbJHRoaXMtPkxhbmcoJ2RhdGVfYWxscmVjb3JkcycpXSA9IC0xOwokZXhwb3J0bGlzdFskdGhpcy0+TGFuZygnZGF0ZV9vbmVob3Vyb2xkJyldID0gJzFoJzsKJGV4cG9ydGxpc3RbJHRoaXMtPkxhbmcoJ2RhdGVfc2l4aG91cm9sZCcpXSA9ICc2aCc7CiRleHBvcnRsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX3R3ZWx2ZWhvdXJvbGQnKV0gPSAnMTJoJzsKJGV4cG9ydGxpc3RbJHRoaXMtPkxhbmcoJ2RhdGVfb25lZGF5b2xkJyldID0gJzFoJzsKJGV4cG9ydGxpc3RbJHRoaXMtPkxhbmcoJ2RhdGVfb25ld2Vla29sZCcpXSA9ICcxdyc7CiRleHBvcnRsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX3R3b3dlZWtzb2xkJyldID0gJzJ3JzsKJGV4cG9ydGxpc3RbJHRoaXMtPkxhbmcoJ2RhdGVfb25lbW9udGhvbGQnKV0gPSAnMW0nOwokZXhwb3J0bGlzdFskdGhpcy0+TGFuZygnZGF0ZV90aHJlZW1vbnRoc29sZCcpXSA9ICczbSc7CiRleHBvcnRsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX3NpeG1vbnRoc29sZCcpXSA9ICc2bSc7CiRleHBvcnRsaXN0WyR0aGlzLT5MYW5nKCdkYXRlX29uZXllYXJvbGQnKV0gPSAnMXknOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2V4cG9ydHVzZXJoaXN0b3J5JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X2V4cG9ydHVzZXJoaXN0b3J5JywkZXhwb3J0bGlzdCkpOwokc21hcnR5LT5hc3NpZ24oJ2J1dHRvbl9leHBvcnR1c2VyaGlzdG9yeScsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnYnV0dG9uX2V4cG9ydHVzZXJoaXN0b3J5JywkdGhpcy0+TGFuZygnZXhwb3J0JykpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknLCR0aGlzLT5MYW5nKCdwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jbGVhcnVzZXJoaXN0b3J5JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X2NsZWFydXNlcmhpc3RvcnknLCRleHBvcnRsaXN0KSk7CiRzbWFydHktPmFzc2lnbignYnV0dG9uX2NsZWFydXNlcmhpc3RvcnknLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2J1dHRvbl9jbGVhcnVzZXJoaXN0b3J5JywkdGhpcy0+TGFuZygnY2xlYXInKSkpOwoKLy8gUHJvY2VzcyB0aGUgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbnRhc2tzLnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_authtab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKSByZXR1cm47Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2V0X2F1dGgnKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3N1cHBvcnRfbG9zdHVuJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc3VwcG9ydF9sb3N0dW4nLDEpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdXBwb3J0X2xvc3RwdycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1cHBvcnRfbG9zdHB3JywxKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3JlcXVpcmVfb25lZ3JvdXAnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX29uZWdyb3VwJykpOwokZ3JvdXBzMSA9ICR0aGlzLT5HZXRHcm91cExpc3QoKTsKJGdyb3VwcyA9IGFycmF5X21lcmdlKCBhcnJheSgiTm9uZSIgPT4gLTEpLCAkZ3JvdXBzMSApOwokc21hcnR5LT5hc3NpZ24oJ2dyb3VwbGlzdCcsYXJyYXlfZmxpcCgkZ3JvdXBzKSk7CiRzbWFydHktPmFzc2lnbignZGVmYXVsdF9ncm91cCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfZ3JvdXAnKSk7CiRzbWFydHktPmFzc2lnbigncHdmbGRsZW4nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZGZsZGxlbmd0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdtaW5wd2xlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ21pbl9wYXNzd29yZGxlbmd0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdtYXhwd2xlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmhhbmNlZHB3JywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW5oYW5jZWRfcGFzc3dvcmQnKSk7CiRzbWFydHktPmFzc2lnbigncHdyZXF1aXJlZGNoYXJzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRfcmVxdWlyZWRjaGFycycpKTsKCiRzbWFydHktPmFzc2lnbigndW5mbGRsZW4nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZWZsZGxlbmd0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdtaW51bmxlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ21pbl91c2VybmFtZWxlbmd0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdtYXh1bmxlbicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdjb29raWVfa2VlcGFsaXZlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29va2llX2tlZXBhbGl2ZScsMCkpOwokc21hcnR5LT5hc3NpZ24oJ3VzZXJuYW1lX2lzX2VtYWlsJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSk7CiRzdHIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29va2llbmFtZScpOwppZiggISRzdHIgKSAkc3RyID0gJyc7CiRzbWFydHktPmFzc2lnbigneGNvb2tpZW5hbWUnLCRzdHIpOwokc21hcnR5LT5hc3NpZ24oJ2FsbG93X2NoYW5nZXVzZXJuYW1lJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfY2hhbmdldXNlcm5hbWUnKSk7CiRzbWFydHktPmFzc2lnbignYWxsb3dfZHVwbGljYXRlX2VtYWlscycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnKSk7CiRzbWFydHktPmFzc2lnbignYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3NpZ25pbl9idXR0b24nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzaWduaW5fYnV0dG9uJywkdGhpcy0+TGFuZygnbG9naW4nKSkpOwokc21hcnR5LT5hc3NpZ24oJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX21hcmtlcicsJyonKSk7CiRzbWFydHktPmFzc2lnbigncmVxdWlyZWRfZmllbGRfY29sb3InLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9jb2xvcicsJ2JsdWUnKSk7CiRzbWFydHktPmFzc2lnbignaGlkZGVuX2ZpZWxkX21hcmtlcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGRlbl9maWVsZF9tYXJrZXInLCchIScpKTsKJHNtYXJ0eS0+YXNzaWduKCdoaWRkZW5fZmllbGRfY29sb3InLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRkZW5fZmllbGRfY29sb3InLCdncmVlbicpKTsKCiRzbWFydHktPmFzc2lnbignc2VjdXJlX2ZpZWxkX21hcmtlcicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlY3VyZV9maWVsZF9tYXJrZXInLCdeXicpKTsKJHNtYXJ0eS0+YXNzaWduKCdzZWN1cmVfZmllbGRfY29sb3InLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZWN1cmVfZmllbGRfY29sb3InLCd5ZWxsb3cnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3BhZ2VpZGZvcmdvdHBhc3N3ZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3BhZ2VpZGZvcmdvdHBhc3N3ZCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlaWRfY2hhbmdlc2V0dGluZ3MnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWdlaWRfY2hhbmdlc2V0dGluZ3MnKSk7CiRzbWFydHktPmFzc2lnbigncGFnZWlkX2xvZ2luJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFnZWlkX2xvZ2luJykpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2VpZF9sb2dvdXQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWdlaWRfbG9nb3V0JykpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2VpZF9vbnZlcmlmeScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3BhZ2VpZF9vbnZlcmlmeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdwYWdlaWRfYWZ0ZXJ2ZXJpZnknLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWdlaWRfYWZ0ZXJ2ZXJpZnknKSk7CiRzbWFydHktPmFzc2lnbigncGFnZWlkX2FmdGVyY2hhbmdlc2V0dGluZ3MnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYWdlaWRfYWZ0ZXJjaGFuZ2VzZXR0aW5ncycpKTsKCi8vIEdldCB0aGUgbnVtYmVyIG9mIHVzZXJzIGluc3RhbGxlZCBpbiBGRVUuCiRxdWVyeSA9ICdTRUxFQ1QgY291bnQoaWQpIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzJzsKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKJG51c2VycyA9ICRkYi0+R2V0T25lKCRxdWVyeSk7CiRzbWFydHktPmFzc2lnbigndG90YWxfdXNlcl9jb3VudCcsJG51c2Vycyk7CmlmKCAhJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV91c2Vyc2FsdCcpICkgJHNtYXJ0eS0+YXNzaWduKCdwd3NhbHQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwd3NhbHQnKSk7CgokY2dlY29tID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdDR0Vjb21tZXJjZUJhc2UnKTsKJHNlbGZyZWcgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ1NlbGZSZWdpc3RyYXRpb24nKTsKaWYoICRjZ2Vjb20gJiYgJHNlbGZyZWcgJiYgJHNlbGZyZWctPkdldFByZWZlcmVuY2UoJ2FsbG93cGFpZHJlZ2lzdHJhdGlvbicpICkKICB7CiAgICAkb3B0cyA9IGFycmF5KCk7CiAgICAkb3B0c1snbm9uZSddID0gJHRoaXMtPkxhbmcoJ25vbmUnKTsKICAgICRvcHRzWydkZWxldGUnXSA9ICR0aGlzLT5MYW5nKCdkZWxldGVfdXNlcicpOwogICAgJG9wdHNbJ2V4cGlyZSddID0gJHRoaXMtPkxhbmcoJ2V4cGlyZV91c2VyJyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Vjb21tZXJjZV9hY3Rpb25zJywkb3B0cyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2Vjb21tX29yZGVyY2FuY2VsbGVkJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZWNvbW1fb3JkZXJjYW5jZWxsZWQnLCdub25lJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdlY29tbV9vcmRlcmRlbGV0ZWQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlY29tbV9vcmRlcmRlbGV0ZWQnLCdub25lJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdlY29tbV9wYWlkcmVnaXN0cmF0aW9uJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbicsMCkpOwogIH0KCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fYXV0aHRhYi50cGwnKTsKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_clearuserhistory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLyBHZXQgdGhlIHN0YXJ0IGRhdGUKJGRhdGUgPSAnLTEnOwpzd2l0Y2goICRwYXJhbXNbJ2lucHV0X2NsZWFydXNlcmhpc3RvcnknXSApIHsKY2FzZSAnMWgnOgogICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEgaG91ciBhZ28nKTsKICAgIGJyZWFrOwpjYXNlICc2aCc6CiAgICAkZGF0ZSA9IHN0cnRvdGltZSgnNiBob3VycyBhZ28nKTsKICAgIGJyZWFrOwpjYXNlICcxMmgnOgogICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEyIGhvdXJzIGFnbycpOwogICAgYnJlYWs7CmNhc2UgJzFkJzoKICAgICRkYXRlID0gc3RydG90aW1lKCcxIGRheSBhZ28nKTsKICAgIGJyZWFrOwpjYXNlICcxdyc6CiAgICAkZGF0ZSA9IHN0cnRvdGltZSgnMSB3ZWVrIGFnbycpOwogICAgYnJlYWs7CmNhc2UgJzJ3JzoKICAgICRkYXRlID0gc3RydG90aW1lKCcyIHdlZWtzIGFnbycpOwogICAgYnJlYWs7CmNhc2UgJzFtJzoKICAgICRkYXRlID0gc3RydG90aW1lKCcxIG1vbnRoIGFnbycpOwogICAgYnJlYWs7CmNhc2UgJzNtJzoKICAgICRkYXRlID0gc3RydG90aW1lKCczIG1vbnRocyBhZ28nKTsKICAgIGJyZWFrOwpjYXNlICc2bSc6CiAgICAkZGF0ZSA9IHN0cnRvdGltZSgnNiBtb250aHMgYWdvJyk7CiAgICBicmVhazsKY2FzZSAnMXknOgogICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEgeWVhciBhZ28nKTsKICAgIGJyZWFrOwp9CgokZGIgPSBcY2dlX3V0aWxzOjpnZXRfZGIoKTsKdHJ5IHsKICAgICRkYi0+QmVnaW5UcmFucygpOwogICAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IjsKICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICBpZiggJGRhdGUgIT0gLTEgKSAgewogICAgICAgICRxdWVyeSAuPSAiIFdIRVJFIHJlZmRhdGUgPCA/IjsKICAgICAgICAkcGFybXNbXSA9IHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZGF0ZSksIiciKTsKICAgIH0KCiAgICAkZGItPkV4ZWN1dGUoICRxdWVyeSwgJHBhcm1zICk7CiAgICAkZGItPkNvbW1pdFRyYW5zKCk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQsJ2FkbWluJyk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAkZGItPlJvbGxiYWNrVHJhbnMoKTsKICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ1Byb2JsZW0gY2xlYXJpbmcgdXNlciBoaXN0b3J5Jyk7CiAgICBkZWJ1Z190b19sb2coX19NRVRIT0RfXyk7CiAgICBkZWJ1Z190b19sb2coJGUtPkdldE1lc3NhZ2UoKSk7Cn0KLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_exportuserhistory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLyBHZXQgdGhlIHN0YXJ0IGRhdGUKJGRhdGUgPSAnLTEnOwpzd2l0Y2goICRwYXJhbXNbJ2lucHV0X2V4cG9ydHVzZXJoaXN0b3J5J10gKQogIHsKICBjYXNlICcxaCc6CiAgICAkZGF0ZSA9IHN0cnRvdGltZSgnMSBob3VyIGFnbycpOwogICAgYnJlYWs7CiAgY2FzZSAnNmgnOgogICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzYgaG91cnMgYWdvJyk7CiAgICBicmVhazsKICBjYXNlICcxMmgnOgogICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEyIGhvdXJzIGFnbycpOwogICAgYnJlYWs7CiAgY2FzZSAnMWQnOgogICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEgZGF5IGFnbycpOwogICAgYnJlYWs7CiAgY2FzZSAnMXcnOgogICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEgd2VlayBhZ28nKTsKICAgIGJyZWFrOwogIGNhc2UgJzJ3JzoKICAgICRkYXRlID0gc3RydG90aW1lKCcyIHdlZWtzIGFnbycpOwogICAgYnJlYWs7CiAgY2FzZSAnMW0nOgogICAgJGRhdGUgPSBzdHJ0b3RpbWUoJzEgbW9udGggYWdvJyk7CiAgICBicmVhazsKICBjYXNlICczbSc6CiAgICAkZGF0ZSA9IHN0cnRvdGltZSgnMyBtb250aHMgYWdvJyk7CiAgICBicmVhazsKICBjYXNlICc2bSc6CiAgICAkZGF0ZSA9IHN0cnRvdGltZSgnNiBtb250aHMgYWdvJyk7CiAgICBicmVhazsKICBjYXNlICcxeSc6CiAgICAkZGF0ZSA9IHN0cnRvdGltZSgnMSB5ZWFyIGFnbycpOwogICAgYnJlYWs7CiAgfQoKJHVzZXJpbmZvID0gYXJyYXkoKTsKCi8vIHdlIHdhbnQgdG8gZXhwb3J0IGEgY3N2IGZpbGUgZG8gd2UKaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CmhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZCcpOwpoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPXVzZXJoaXN0b3J5LmNzdicpOwp3aGlsZShAb2JfZW5kX2NsZWFuKCkpOwoKJGRiID0mICR0aGlzLT5HZXREYigpOwokZG9uZSA9IDA7CiRzdGFydCA9IDA7CiRudW0gPSAyOyAvLyB0b2RvLCBzaG91bGQgYmUgYSBwcmVmZXJlbmNlCiRxYmFzZSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19oaXN0b3J5ICI7CiRwYXJtcyA9IGFycmF5KCk7CmlmKCAkZGF0ZSAhPSAtMSApCiAgewogICAgJHFiYXNlIC49ICcgV0hFUkUgcmVmZGF0ZSA8ID8nOwogICAgJHBhcm1zW10gPSB0cmltKCRkYi0+REJUaW1lU3RhbXAoJGRhdGUpLCInIik7CiAgfQoKd2hpbGUoICRkb25lID09IDAgKQogIHsKICAgICRxdWVyeSA9ICRxYmFzZSAuICIgTElNSVQgJHN0YXJ0LCRudW0iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksICRwYXJtcyApOwogICAgaWYoICEkZGJyZXN1bHQgfHwgKCRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSA9PSAwKSApCiAgICAgIHsKCSRkb25lID0gMTsKCWJyZWFrOwogICAgICB9CgogICAgJG91dHB1dCA9ICcnOwogICAgd2hpbGUoICRkYnJlc3VsdCAmJiAhJGRicmVzdWx0LT5FT0YgKQogICAgICB7CgkkZmllbGRzID0gJGRicmVzdWx0LT5maWVsZHM7CgkKCSR1aWQgPSAkZmllbGRzWyd1c2VyaWQnXTsKCWlmKCAkdWlkID4gMCApCgkgIHsKCSAgICBpZiggIWlzc2V0KCAkdXNlcmluZm9bJHVpZF0gKSApCgkgICAgICB7CgkJJHJlcyA9ICR0aGlzLT5HZXRVc2VySW5mbygkdWlkKTsKCQkkdXNlcmluZm9bJHVpZF0gPSAkcmVzWzFdOwoJICAgICAgfQoJICAgICR1c2VybmFtZSA9ICR1c2VyaW5mb1skdWlkXVsndXNlcm5hbWUnXTsKCSAgICAkZmllbGRzW10gPSAkdXNlcmluZm9bJHVpZF1bJ3VzZXJuYW1lJ107CgkgIH0KCWVsc2UKCSAgewoJICAgICRmaWVsZHNbXSA9ICd1bmtub3duJzsKCSAgfQoKCSRvdXRwdXQgLj0gaW1wbG9kZSgnLCcsJGZpZWxkcykuIlxuIjsKCgkvLyBjaGVhdCwgY29udmVydCB1c2VyaWQgdG8gdXNlcm5hbWUKCSRkYnJlc3VsdC0+TW92ZU5leHQoKTsKICAgICAgfQogICAgZWNobyAkb3V0cHV0OwogICAgJHN0YXJ0ICs9ICRudW07CiAgfQpleGl0KCk7CgoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_groupstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRncm91cHMgPSAkdGhpcy0+R2V0R3JvdXBMaXN0RnVsbChUUlVFKTsKJHJvd2NsYXNzID0gJ3JvdzEnOwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnZ3JvdXBsaXN0LnRwbCcpOwokdGhlbWVPYmplY3QgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKJHByb3BkZWZucyA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm5zKCk7CiRuZGVmcyA9IChpc19hcnJheSgkcHJvcGRlZm5zKSAmJiBjb3VudCgkcHJvcGRlZm5zKSk/Y291bnQoJHByb3BkZWZucyk6MDsKJHJvd2FycmF5ID0gYXJyYXkoKTsKJHRwbC0+YXNzaWduKCAnZ3JvdXBzZm91bmQnLCAkdGhpcy0+TGFuZygnZ3JvdXBzZm91bmQnKSk7CiR0cGwtPmFzc2lnbiggJ25wcm9wcycsJG5kZWZzKTsKZm9yZWFjaCggJGdyb3VwcyBhcyAkb25lZ3JvdXAgKSB7CiAgICBpZiggJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ2xpc3Rncm91cHMnKSApIHsKICAgICAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgJG9uZXJvdy0+aWQgPSAkb25lZ3JvdXBbJ2lkJ107CiAgICAgICAgJG9uZXJvdy0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdhZGRncm91cCcsICRyZXR1cm5pZCwgJG9uZWdyb3VwWydncm91cG5hbWUnXSwgYXJyYXkgKCdncm91cF9pZCcgPT4gJG9uZWdyb3VwWydpZCddKSk7CiAgICAgICAgJG9uZXJvdy0+ZGVzYyA9ICRvbmVncm91cFsnZ3JvdXBkZXNjJ107CiAgICAgICAgJG9uZXJvdy0+bnVzZXJzID0gJyc7CiAgICAgICAgaWYoIGlzc2V0KCRvbmVncm91cFsnY291bnQnXSkgKSAkb25lcm93LT5udXNlcnMgPSAkb25lZ3JvdXBbJ2NvdW50J107CiAgICAgICAgJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgogICAgICAgIGlmKCAkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygnZWRpdGdyb3VwcycpICYmICRuZGVmcyApIHsKICAgICAgICAgICAgJG9uZXJvdy0+ZWRpdGxpbmsgPQogICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsgKCRpZCwgJ2FkZGdyb3VwJywgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlICgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywkdGhpcy0+TGFuZyAoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5ICgnZ3JvdXBfaWQnID0+ICRvbmVncm91cFsnaWQnXSkpOwogICAgICAgICAgICAkb25lcm93LT5leHBvcnRsaW5rID0KICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsICdhZG1pbl9leHBvcnRncm91cCcsICRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGltZyBzcmM9IicuJHRoaXMtPkdldE1vZHVsZVVSTFBhdGgoKS4nL2ljb25zL3htbF9yc3MuZ2lmIiBhbHQ9InhtbCIvPicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2dyb3VwX2lkJz0+JG9uZWdyb3VwWydpZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlX2J1ZmZlcic9PjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVfdGhlbWUnPT4xKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InN5c3RlbWljb24iIHRpdGxlPSInLiR0aGlzLT5MYW5nKCd0aXRsZV9yc3NleHBvcnQnKS4nIicpOwogICAgICAgIH0KICAgICAgICBpZiggJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ3JlbW92ZWdyb3VwcycpICYmICRvbmVyb3ctPm51c2VycyA9PSAwICkgewogICAgICAgICAgICAkb25lcm93LT5kZWxldGVsaW5rID0KICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsICdkb19kZWxldGVncm91cCcsICRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywkdGhpcy0+TGFuZyAoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkgKCdncm91cF9pZCcgPT4gJG9uZWdyb3VwWydpZCddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZyAoJ2FyZXlvdXN1cmVfZGVsZXRlZ3JvdXAnKSk7CiAgICAgICAgfQoKICAgICAgICAkcm93YXJyYXlbXSA9ICRvbmVyb3c7CiAgICAgICAgKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOwogICAgfQoKICAgICR0cGwtPmFzc2lnbignaXRlbWNvdW50Jyxjb3VudCgkcm93YXJyYXkpKTsKICAgICR0cGwtPmFzc2lnbignaXRlbXMnLCRyb3dhcnJheSk7CiAgICAkdHBsLT5hc3NpZ24oJ2dyb3Vwc2ZvdW5kJywgJHRoaXMtPkxhbmcoJ2dyb3Vwc2ZvdW5kJykgKTsKICAgICR0cGwtPmFzc2lnbignaWR0ZXh0JywgJHRoaXMtPkxhbmcoJ2lkJykpOwogICAgJHRwbC0+YXNzaWduKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nKCduYW1lJykpOwogICAgJHRwbC0+YXNzaWduKCdkZXNjdGV4dCcsICR0aGlzLT5MYW5nKCdkZXNjcmlwdGlvbicpKTsKfQoKaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdhZGRncm91cCcpICkgewogICAgJHRwbC0+YXNzaWduKCdwcm9wY291bnQnLGNvdW50KCRwcm9wZGVmbnMpKTsKICAgIGlmKCBpc19hcnJheSgkcHJvcGRlZm5zKSAmJiBjb3VudCgkcHJvcGRlZm5zKSA+IDAgKSB7CiAgICAgICAgJHRwbC0+YXNzaWduKCdhZGRncm91cGxpbmsnLAogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnYWRkZ3JvdXAnLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCR0aGlzLT5MYW5nKCdhZGRncm91cCcpLCcnLCcnLCdzeXN0ZW1pY29uJykpLicgJy4KICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2FkZGdyb3VwJywgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdhZGRncm91cCcpKSk7CiAgICB9CgogICAgJHRwbC0+YXNzaWduKCdpbXBvcnRsaW5rJywKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnYWRtaW5faW1wb3J0Z3JvdXAnLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vaW1wb3J0LmdpZicsICR0aGlzLT5MYW5nKCdpbXBvcnRncm91cCcpLCcnLCcnLCdzeXN0ZW1pY29uJykpLicgJy4KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnYWRtaW5faW1wb3J0Z3JvdXAnLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdpbXBvcnRncm91cCcpKSk7Cn0KCiR0cGwtPmRpc3BsYXkoKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLyBmaWxsIG91dCB0aGUgdGVtcGxhdGUKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoICRpZCwgJ2RvX3NldHByZWZzJykpOwoKJG1vbnRocyA9IGFycmF5KCk7CmZvciggJGkgPSA1MjA7ICRpID4gMDsgJGktLSApIHsKICAgICRtb250aHNbJGldID0gJGk7Cn0KCiRzbWFydHktPmFzc2lnbignYXV0b19jcmVhdGVfdW5rbm93bicsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG9fY3JlYXRlX3Vua25vd24nLDApKTsKCiRhdXRoX21vZHVsZXMgPSBtb2R1bGVfaGVscGVyOjpnZXRfbW9kdWxlc193aXRoX21ldGhvZCgnR2V0RkVVQXV0aENvbnN1bWVyJyk7CiRhdXRoX21vZHVsZXMgPSBjZ2VfYXJyYXk6Omhhc2hfcHJlcGVuZCgkYXV0aF9tb2R1bGVzLCdfX0JVSUxUSU5fXycsJHRoaXMtPkxhbmcoJ2F1dGhfYnVpbHRpbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdhdXRoX21vZHVsZXMnLCRhdXRoX21vZHVsZXMpOwokc21hcnR5LT5hc3NpZ24oJ2F1dGhfbW9kdWxlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0aF9tb2R1bGUnLCdfX0JVSUxUSU5fXycpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfcmFuZG9tdXNlcm5hbWUnLAoJCVJSVXRpbHM6Om15Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdpbnB1dF9yYW5kb211c2VybmFtZScsIDEsCgkJCQkJICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VfcmFuZG9tdXNlcm5hbWUnLDApKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2V4cGlyZWFnZScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF9leHBpcmVhZ2UnLCRtb250aHMsLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdleHBpcmVhZ2VfbW9udGhzJywxMjApKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9zZXNzaW9udGltZW91dCcsICR0aGlzLT5MYW5nKCdwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfc2Vzc2lvbnRpbWVvdXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaW5wdXRfc2Vzc2lvbnRpbWVvdXQnLAoJCQkJICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VyX3Nlc3Npb25fZXhwaXJlcycpLCA2LCA2ICkpOwoKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnLAoJCSR0aGlzLT5MYW5nKCdwcm9tcHRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJywKCQlSUlV0aWxzOjpteUNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaW5wdXRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucycsIDEsCgkJCQkJICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnLCAkdGhpcy0+TGFuZygnaW5mb19mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJykpOwoKCgokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXQnLAoJCQkJCSAgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpLCcnLCcnLAoJCQkJCSAgJHRoaXMtPkxhbmcoJ2NvbmZpcm1fc3VibWl0cHJlZnMnKSkpOwokc21hcnR5LT5hc3NpZ24gKCdjYW5jZWwnLAoJCSAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsCgkJCQkJICAgJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hbGxvd19yZXBlYXRlZF9sb2dpbnMnLAoJCSR0aGlzLT5MYW5nKCdwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsbG93X3JlcGVhdGVkX2xvZ2lucycsCgkJUlJVdGlsczo6bXlDcmVhdGVJbnB1dENoZWNrYm94KCAkaWQsICdpbnB1dF9hbGxvd19yZXBlYXRlZF9sb2dpbnMnLCAxLAoJCQkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfcmVwZWF0ZWRfbG9naW5zJykpKTsKCgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywKCQkJCSR0aGlzLT5MYW5nKCdwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywKCQkJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRoJywKCQkJCQkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnKSw0MCkpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnMnLAoJCQkJJHRoaXMtPkxhbmcoJ3Byb21wdF9hbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJywKCQkJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9hbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnMnLAoJCQkJCQkgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucycpLDQwLDQwKSk7Cgokbm90aWZpY2F0aW9uX2xpc3QgPSBhcnJheSgpOwokbm90aWZpY2F0aW9uX2xpc3RbJHRoaXMtPkxhbmcoJ09uTG9naW4nKV0gPSAnT25Mb2dpbic7CiRub3RpZmljYXRpb25fbGlzdFskdGhpcy0+TGFuZygnT25Mb2dvdXQnKV0gPSAnT25Mb2dvdXQnOwokbm90aWZpY2F0aW9uX2xpc3RbJHRoaXMtPkxhbmcoJ09uRXhwaXJlVXNlcicpXSA9ICdPbkV4cGlyZVVzZXInOwokbm90aWZpY2F0aW9uX2xpc3RbJHRoaXMtPkxhbmcoJ09uQ3JlYXRlVXNlcicpXSA9ICdPbkNyZWF0ZVVzZXInOwokbm90aWZpY2F0aW9uX2xpc3RbJHRoaXMtPkxhbmcoJ09uRGVsZXRlVXNlcicpXSA9ICdPbkRlbGV0ZVVzZXInOwokbm90aWZpY2F0aW9uX2xpc3RbJHRoaXMtPkxhbmcoJ09uVXBkYXRlVXNlcicpXSA9ICdPblVwZGF0ZVVzZXInOwokbm90aWZpY2F0aW9uX2xpc3RbJHRoaXMtPkxhbmcoJ09uQ3JlYXRlR3JvdXAnKV0gPSAnT25DcmVhdGVHcm91cCc7CiRub3RpZmljYXRpb25fbGlzdFskdGhpcy0+TGFuZygnT25VcGRhdGVHcm91cCcpXSA9ICdPblVwZGF0ZUdyb3VwJzsKJG5vdGlmaWNhdGlvbl9saXN0WyR0aGlzLT5MYW5nKCdPbkRlbGV0ZUdyb3VwJyldID0gJ09uRGVsZXRlR3JvdXAnOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9ub3RpZmljYXRpb25zJywkdGhpcy0+TGFuZygncHJvbXB0X25vdGlmaWNhdGlvbnMnKSk7CiRub3RpZmljYXRpb25zID0gZXhwbG9kZSgnLCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbnMnLCcnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfbm90aWZpY2F0aW9ucycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0U2VsZWN0TGlzdCgkaWQsJ25vdGlmaWNhdGlvbnNbXScsJG5vdGlmaWNhdGlvbl9saXN0LCAkbm90aWZpY2F0aW9ucykpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbm90aWZpY2F0aW9uX2FkZHJlc3MnLCR0aGlzLT5MYW5nKCdwcm9tcHRfbm90aWZpY2F0aW9uX2FkZHJlc3MnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfbm90aWZpY2F0aW9uX2FkZHJlc3MnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdub3RpZmljYXRpb25fYWRkcmVzcycsCgkJCQkgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbl9hZGRyZXNzJyksNTAsMjU1KSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9ub3RpZmljYXRpb25fc3ViamVjdCcsJHRoaXMtPkxhbmcoJ3Byb21wdF9ub3RpZmljYXRpb25fc3ViamVjdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9ub3RpZmljYXRpb25fc3ViamVjdCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ25vdGlmaWNhdGlvbl9zdWJqZWN0JywKCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbm90aWZpY2F0aW9uX3N1YmplY3QnKSw1MCwyNTUpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF9ub3RpZmljYXRpb25fdGVtcGxhdGUnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJywKCQkkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLAoJCQkJICAgICAgJHRoaXMtPkdldFRlbXBsYXRlKCdub3RpZmljYXRpb25fdGVtcGxhdGUnKSwKCQkJCSAgICAgICdub3RpZmljYXRpb25fdGVtcGxhdGUnKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2luZm9fc3RhcicsJHRoaXMtPkxhbmcoJ2luZm9fc3RhcicpKTsKJG51bSA9ICR0aGlzLT5Db3VudFRlbXBDb2RlUmVjb3JkcygpOwppZiggJG51bSApCiAgICB7CiAgICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X251bXJlc2V0cmVjb3JkcycsCgkJICAgICAgJHRoaXMtPkxhbmcoJ3Byb21wdF9udW1yZXNldHJlY29yZCcpKTsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCdkYXRhX251bXJlc2V0cmVjb3JkcycsICRudW0pOyAvL3RvZG8KICAgICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZW1vdmVhbGwnLAoJCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2lucHV0X3JlbW92ZWFsbCcsCgkJCQkJICAgICAgICR0aGlzLT5MYW5nKCdyZW1vdmVhbGwnKSwKCQkJCQkgICAgICAgJ29uY2xpY2s9InJldHVybiBjb25maXJtKFwnJy4kdGhpcy0+TGFuZygnYXJleW91c3VyZScpLidcJykiJykpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlbW92ZTF3ZWVrJywKCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdpbnB1dF9yZW1vdmUxd2VlaycsCgkJCQkJICAgICAgICR0aGlzLT5MYW5nKCdyZW1vdmUxd2VlaycpLAoJCQkJCSAgICAgICAnb25jbGljaz0icmV0dXJuIGNvbmZpcm0oXCcnLiR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykuJ1wnKSInKSk7CgogICAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlbW92ZTFtb250aCcsCgkJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnaW5wdXRfcmVtb3ZlMW1vbnRoJywKCQkJCQkgICAgICAgJHRoaXMtPkxhbmcoJ3JlbW92ZTFtb250aCcpLAoJCQkJCSAgICAgICAnb25jbGljaz0icmV0dXJuIGNvbmZpcm0oXCcnLiR0aGlzLT5MYW5nKCdhcmV5b3VzdXJlJykuJ1wnKSInKSk7CiAgICB9Cgokc21hcnR5LT5hc3NpZ24oJ2ZvcmNlbG9nb3V0X3RpbWVzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZm9yY2Vsb2dvdXRfdGltZXMnKSk7CiRzbWFydHktPmFzc2lnbignZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnKSk7CiRzbWFydHktPmFzc2lnbignZXhwaXJldXNlcnNfaW50ZXJ2YWwnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdleHBpcmV1c2Vyc19pbnRlcnZhbCcpKTsKCiR0bXAgPSBleHBsb2RlKCcsJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGFnZXR5cGVfZ3JvdXBzJywnJykpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2V0eXBlX2dyb3VwcycsJHRtcCk7CiRncm91cHMxID0gJHRoaXMtPkdldEdyb3VwTGlzdCgpOwokc21hcnR5LT5hc3NpZ24oJ2FsbF9ncm91cHMnLGFycmF5X2ZsaXAoJGdyb3VwczEpKTsKCiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5wcmVmcy50cGwnKTsKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_propertiestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ3Byb3BlcnRpZXNmb3JtLnRwbCcpOwokbWVzc2FnZSA9ICcnOwppZiggaXNzZXQoICRwYXJhbXNbJ21lc3NhZ2UnXSApICkgJHRwbC0+YXNzaWduKCdtZXNzYWdlJywgJG1lc3NhZ2UpOwokdHBsLT5hc3NpZ24oJ3RpdGxlJywkdGhpcy0+TGFuZygncHJvcGVydGllcycpKTsKJHRoZW1lT2JqZWN0ID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7Cgokcm93YXJyYXkgPSBhcnJheSgpOwokcm93Y2xhc3MgPSAncm93MSc7CiRrZXlzID0gYXJyYXlfa2V5cygkdGhpcy0+dHlwZXMpOwoKJGRlZm5zID0gJHRoaXMtPkdldFByb3BlcnR5RGVmbnMoKTsKaWYoIGlzX2FycmF5KCRkZWZucykgKSB7CiAgICBmb3JlYWNoKCAkZGVmbnMgYXMgJGRlZm4gKSB7CiAgICAgICAgJGNhbl9kZWxldGUgPSBUUlVFOwogICAgICAgICRwcm9wZ3JvdXBzID0gJHRoaXMtPkdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoJGRlZm5bJ25hbWUnXSk7CiAgICAgICAgaWYoIGNvdW50KCRwcm9wZ3JvdXBzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHByb3Bncm91cHMgYXMgJHJlYyApIHsKICAgICAgICAgICAgICAgIGlmKCAkcmVjWydyZXF1aXJlZCddID4gMSApIHsKICAgICAgICAgICAgICAgICAgICAkY2FuX2RlbGV0ZSA9IEZBTFNFOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkb25lcm93ID0gbmV3IFN0ZENsYXNzKCk7CiAgICAgICAgaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdlZGl0cHJvcCcpICYmICFpc3NldCgkZGVmblsnZXh0cmEnXVsnbW9kdWxlJ10pICkgewogICAgICAgICAgICAkb25lcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2FkZHByb3AnLCAkcmV0dXJuaWQsICRkZWZuWyduYW1lJ10sYXJyYXkoJ3Byb3BuYW1lJyA9PiAkZGVmblsnbmFtZSddKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkb25lcm93LT5uYW1lID0gJGRlZm5bJ25hbWUnXTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRkZWZuWydleHRyYSddWydtb2R1bGUnXSkgKSB7CiAgICAgICAgICAgICAgICAkb25lcm93LT5uYW1lIC49ICcmbmJzcDs8ZW0gdGl0bGU9IicuJHRoaXMtPkxhbmcoJ3RpdGxlX3Byb3Btb2R1bGUnKS4nIj4oJy4kZGVmblsnZXh0cmEnXVsnbW9kdWxlJ10uJyk8L2VtPic7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJG9uZXJvdy0+ZW5jcnlwdCA9ICRkZWZuWydlbmNyeXB0J107CiAgICAgICAgJG9uZXJvdy0+cHJvbXB0ID0gJGRlZm5bJ3Byb21wdCddOwogICAgICAgICRvbmVyb3ctPnR5cGUgPSAkdGhpcy0+TGFuZygka2V5c1skZGVmblsndHlwZSddXSk7CiAgICAgICAgJG9uZXJvdy0+bGVuZ3RoID0gJGRlZm5bJ2xlbmd0aCddOwogICAgICAgICRvbmVyb3ctPmZvcmNlX3VuaXF1ZSA9ICRkZWZuWydmb3JjZV91bmlxdWUnXTsKICAgICAgICAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKICAgICAgICAkaXNfbW9kdWxlcHJvcCA9IDA7CiAgICAgICAgaWYoIGlzc2V0KCRkZWZuWydleHRyYSddKSAmJiBpc3NldCgkZGVmblsnZXh0cmEnXVsnbW9kdWxlJ10pICYmCiAgICAgICAgICAgICRkZWZuWydleHRyYSddWydtb2R1bGUnXSAhPSAnJyApIHsKICAgICAgICAgICAgJHRtcCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgkZGVmblsnZXh0cmEnXVsnbW9kdWxlJ10pOwogICAgICAgICAgICBpZiggaXNfb2JqZWN0KCR0bXApICkgJGlzX21vZHVsZXByb3AgPSAxOwogICAgICAgIH0KCiAgICAgICAgaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdlZGl0cHJvcCcpICYmICFpc3NldCgkZGVmblsnZXh0cmEnXVsnbW9kdWxlJ10pICkgewogICAgICAgICAgICAkb25lcm93LT5lZGl0bGluayA9CiAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnYWRkcHJvcCcsICRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywkdGhpcy0+TGFuZyAoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdwcm9wbmFtZScgPT4gJGRlZm5bJ25hbWUnXSkpOwoKICAgICAgICAgICAgaWYoICRjYW5fZGVsZXRlICYmICEkaXNfbW9kdWxlcHJvcCApIHsKICAgICAgICAgICAgICAgICRvbmVyb3ctPmRlbGV0ZV91cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2FkbWluX2RlbGV0ZXByb3AnLCRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgncHJvcG5hbWUnID0+ICRkZWZuWyduYW1lJ10sICdwcm9wdHlwZScgPT4gJGRlZm5bJ3R5cGUnXSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkcm93YXJyYXlbXSA9ICRvbmVyb3c7CiAgICAgICAgKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOwogICAgfQp9CgokdHBsLT5hc3NpZ24oJ25hbWV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTsKJHRwbC0+YXNzaWduKCdsZW5ndGh0ZXh0JywkdGhpcy0+TGFuZygnbGVuZ3RoJykpOwokdHBsLT5hc3NpZ24oJ3Byb21wdHRleHQnLCR0aGlzLT5MYW5nKCdwcm9tcHQnKSk7CiR0cGwtPmFzc2lnbigndHlwZXRleHQnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdHlwZScpKTsKJHRwbC0+YXNzaWduKCdwcm9wcycsJHJvd2FycmF5KTsKJHRwbC0+YXNzaWduKCdwcm9wY291bnQnLCBjb3VudCgkcm93YXJyYXkpKTsKJHRwbC0+YXNzaWduKCdwcm9wc2ZvdW5kJywkdGhpcy0+TGFuZygncHJvcHNmb3VuZCcpKTsKCmlmKCAkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygnYWRkcHJvcCcpICkgewogICAgLy8gdG9kbywgYWRkIGEgcGVybWlzc2lvbiBjaGVjayBhcm91bmQgdGhpcwogICAgLy8gbWF5YmUgY3JlYXRlIGFuICJlZGl0IGZyb250ZW5kdXNlciBwcm9wZXJ0aWVzIiBwZXJtaXNzaW9uCiAgICAkdHBsLT5hc3NpZ24oJ2FkZF91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnYWRkcHJvcCcsJHJldHVybmlkKSk7Cn0KCiR0cGwtPmRpc3BsYXkoKTsKCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_userstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vIHRoaXMgdGFiIGhhcyBtZXJlbHkgb25lIG1vZm8gbGlzdCBvZiB1c2VzIGFuZCB0aGUgYWJpbGl0eSB0byBlZGl0IHRoZW0sCi8vIHNlZSBkZXRhaWxzIGFib3V0IHRoZW0sIGFuZCB0aGVuIGRlbGV0ZSB0aGVtCgovLwovLyBpbml0aWFsaXphdGlvbgovLwokYWRtaW50aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgndXNlcmxpc3QudHBsJyk7CmlmKCAkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygnbGlzdHVzZXJzJykgKSB7CgogICAgJGZpbHRlciA9ICRiYXJlX2ZpbHRlciA9IGFycmF5KCdncm91cCc9PicnLCdyZWdleCc9PicnLCdsb2dnZWRpbm9ubHknPT4wLCdsaW1pdCc9PjUwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2aWV3cHJvcHMnPT5hcnJheSgpLCdwcm9wc2VsJz0+JycsJ3Byb3B2YWwnPT4nJywnc29ydGJ5Jz0+J3VzZXJuYW1lIGFzYycpOwogICAgJHRtcCA9IGNtc191c2VycHJlZnM6OmdldCgnZmV1X2ZpbHRlcicpOwogICAgaWYoICR0bXAgKSAkZmlsdGVyID0gdW5zZXJpYWxpemUoJHRtcCk7CgogICAgLy8gYnVsayBhY3Rpb24gc3R1ZmYKICAgIGlmKCBpc3NldCggJHBhcmFtc1snZG9idWxrJ10pICkgewogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydzZWxlY3RlZCddKSAmJiBpc19hcnJheSgkcGFyYW1zWydzZWxlY3RlZCddKSApIHsKICAgICAgICAgICAgJHNlbCA9IGJhc2U2NF9lbmNvZGUoc2VyaWFsaXplKCRwYXJhbXNbJ3NlbGVjdGVkJ10pKTsKICAgICAgICAgICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2FkbWluX2J1bGthY3Rpb25zJywgJHJldHVybmlkLCBhcnJheSgnam9iJz0+XGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdidWxrX2FjdGlvbicsJ2RlbGV0ZScpLCd1aWRzJz0+JHNlbCkpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBmaWx0ZXJpbmcgc3R1ZmYKICAgIGlmKCBpc3NldCggJHBhcmFtc1snZmlsdGVyX3Jlc2V0J10gKSApIHsKICAgICAgICBjbXNfdXNlcnByZWZzOjpyZW1vdmUoJ2ZldV9maWx0ZXInKTsKICAgICAgICAkZmlsdGVyID0gJGJhcmVfZmlsdGVyOwogICAgfQogICAgZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ2ZpbHRlciddKSApIHsKICAgICAgICAkZmlsdGVyWydncm91cCddID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaWx0ZXJfZ3JvdXAnKTsKICAgICAgICAkZmlsdGVyWydyZWdleCddID0gdHJpbShnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2ZpbHRlcl9yZWdleCcpKTsKICAgICAgICAkZmlsdGVyWydsb2dnZWRpbm9ubHknXSA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaWx0ZXJfbG9nZ2VkaW5vbmx5Jyk7CiAgICAgICAgJGZpbHRlclsnbGltaXQnXSA9IChpbnQpZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaWx0ZXJfbGltaXQnKTsKICAgICAgICAkZmlsdGVyWydzb3J0YnknXSA9IHRyaW0oZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaWx0ZXJfc29ydGJ5JykpOwogICAgICAgICRmaWx0ZXJbJ3ZpZXdwcm9wcyddID0gZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaWx0ZXJfdmlld3Byb3BzJyk7CiAgICAgICAgJGZpbHRlclsncHJvcHNlbCddID0gdHJpbShnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2ZpbHRlcl9wcm9wZXJ0eXNlbCcpKTsKICAgICAgICBpZiggJGZpbHRlclsncHJvcHNlbCddID09ICdub25lJyApICRmaWx0ZXJbJ3Byb3BzZWwnXSA9ICcnOwogICAgICAgICRmaWx0ZXJbJ3Byb3B2YWwnXSA9IHRyaW0oZ2V0X3BhcmFtZXRlcl92YWx1ZSgkcGFyYW1zLCdmaWx0ZXJfcHJvcGVydHknKSk7CiAgICAgICAgY21zX3VzZXJwcmVmczo6c2V0KCdmZXVfZmlsdGVyJyxzZXJpYWxpemUoJGZpbHRlcikpOwogICAgfQoKICAgICR0cGwtPmFzc2lnbignZmlsdGVyJywkZmlsdGVyKTsKICAgICRmaWx0ZXJhcHBsaWVkID0gKCRmaWx0ZXIgIT0gJGJhcmVfZmlsdGVyKTsKICAgICR0cGwtPmFzc2lnbignZmlsdGVyX2FwcGxpZWQnLCRmaWx0ZXJhcHBsaWVkKTsKCiAgICAvLyBnZXQgYSBncm91cCBsaXN0IGZvciB0aGUgZmlsdGVyCiAgICAvLyBpdCBzaG91bGQgYmUgcmVhZHkgdG8gZ28gcmlnaHQgaW50byB0aGUgZHJvcGRvd24gKGNvb2wgZWgpCiAgICAkZ3JvdXBzMSA9ICR0aGlzLT5HZXRHcm91cExpc3QoKTsKICAgIGlmKCBjb3VudCgkZ3JvdXBzMSkgKSB7CiAgICAgICAgJGdyb3VwcyA9IGFycmF5X21lcmdlKCBhcnJheSgkdGhpcy0+TGFuZygnYW55JykgPT4gLTEpLCAkZ3JvdXBzMSApOwogICAgICAgICR0cGwtPmFzc2lnbignZ3JvdXBzJyxhcnJheV9mbGlwKCRncm91cHMpKTsKICAgIH0KCiAgICAvLyBhIHB1bGxkb3duIGxpc3QgZm9yIGxpbWl0cwogICAgJGxpbWl0cyA9IGFycmF5KCAnMTAnID0+IDEwLAogICAgICAgICAgICAgICAgICAgICAnMjUnID0+IDI1LAogICAgICAgICAgICAgICAgICAgICAnNTAnID0+IDUwLAogICAgICAgICAgICAgICAgICAgICAnMTAwJyA9PiAxMDAsCiAgICAgICAgICAgICAgICAgICAgICcyNTAnID0+IDI1MCwKICAgICAgICAgICAgICAgICAgICAgJzUwMCcgPT4gNTAwICk7CiAgICAkdHBsLT5hc3NpZ24oJ2xpbWl0cycsJGxpbWl0cyk7CgogICAgLy8gYSBwdWxsZG93biBsaXN0IGZvciBwcm9wZXJ0eSBkZWZpbml0aW9ucwogICAgJGRlZm5zMSA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICAkZGVmbnMgPSBhcnJheSgpOwogICAgJGRlZm5zWydOb25lJ10gPSAnbm9uZSc7CiAgICAkYWxsZGVmbnMgPSBhcnJheSgpOwogICAgaWYoIGlzX2FycmF5KCRkZWZuczEpICkgewogICAgICAgIGZvcmVhY2goICRkZWZuczEgYXMgJGRlZiApIHsKICAgICAgICAgICAgaWYoICRkZWZbJ3Byb21wdCddID09ICcnIHx8ICRkZWZbJ25hbWUnXSA9PSAnJyApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggJGRlZlsnZW5jcnlwdCddICkgY29udGludWU7IC8vIHlvdSBjYW4ndCB2aWV3IGVuY3J5cHRlZCBwcm9wZXJ0aWVzIGluIHRoaXMgbGlzdC4KICAgICAgICAgICAgJGRlZm5zWyRkZWZbJ3Byb21wdCddXSA9ICRkZWZbJ25hbWUnXTsKICAgICAgICAgICAgJGFsbGRlZm5zWyRkZWZbJ25hbWUnXV0gPSAkZGVmWydwcm9tcHQnXTsKICAgICAgICB9CiAgICB9CiAgICAkdHBsLT5hc3NpZ24oJ2RlZm5saXN0JyxhcnJheV9mbGlwKCRkZWZucykpOwoKICAgIC8vIGEgcHVsbGRvd24gbGlzdCBmb3Igc29ydGluZwogICAgJHNvcnRzID0gYXJyYXkoICR0aGlzLT5MYW5nKCdzb3J0YnlfdXNlcm5hbWVfYXNjJykgPT4gJ3VzZXJuYW1lIGFzYycsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ3NvcnRieV91c2VybmFtZV9kZXNjJykgPT4gJ3VzZXJuYW1lIGRlc2MnLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdzb3J0YnlfY3JlYXRlX2FzYycpID0+ICdjcmVhdGVkYXRlIGFzYycsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ3NvcnRieV9jcmVhdGVfZGVzYycpID0+ICdjcmVhdGVkYXRlIGRlc2MnLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdzb3J0YnlfZXhwaXJlc19hc2MnKSA9PiAnZXhwaXJlcyBhc2MnLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nKCdzb3J0YnlfZXhwaXJlc19kZXNjJykgPT4gJ2V4cGlyZXMgZGVzYycgKTsKICAgICR0cGwtPmFzc2lnbignc29ydGxpc3QnLGFycmF5X2ZsaXAoJHNvcnRzKSk7CgogICAgLy8gbm93IHNldHVwIHRoZSB0ZW1wbGF0ZSBmaWVsZHMKICAgICR0cGwtPmFzc2lnbiggJ3Byb21wdF9zb3J0JywgJHRoaXMtPkxhbmcoJ3NvcnQnKSk7CiAgICAkdHBsLT5hc3NpZ24oICdzdGFydGZvcm0nLCAkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2NnX2FjdGl2ZXRhYic9Pid1c2VycycpKSk7CiAgICAkdHBsLT5hc3NpZ24oICdwZXJtX3JlbW92ZXVzZXJzJywgJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ3JlbW92ZXVzZXJzJyk/MTowKTsKICAgICR0cGwtPmFzc2lnbiggJ3VzZXJzZm91bmQnLCAkdGhpcy0+TGFuZygndXNlcnNmb3VuZCcpKTsKICAgICR0cGwtPmFzc2lnbiggJ2FsbGRlZm5zJywkYWxsZGVmbnMpOwogICAgJHRwbC0+YXNzaWduKCAndmlld3Byb3BzJywkZmlsdGVyWyd2aWV3cHJvcHMnXSk7CiAgICAkdHBsLT5hc3NpZ24oICdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQgKCkpOwoKICAgIC8vIG5vdyBnZXQgb3VyIHVzZXJzCiAgICAkdXNlcnMgPSBudWxsOwogICAgJGN1cnBhZ2UgPSAxOwogICAgJG5tYXRjaGVzID0gMDsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydwYWdlJ10pICkgJGN1cnBhZ2UgPSAoaW50KSRwYXJhbXNbJ3BhZ2UnXTsKICAgICRvZmZzZXQgPSAoJGN1cnBhZ2UgLSAxKSAqICRmaWx0ZXJbJ2xpbWl0J107CiAgICB0cnkgewogICAgICAgICR1c2VycyA9ICR0aGlzLT5HZXRVc2Vyc0luR3JvdXAoICRmaWx0ZXJbJ2dyb3VwJ10sICRmaWx0ZXJbJ3JlZ2V4J10sICRmaWx0ZXJbJ2xpbWl0J10sICRmaWx0ZXJbJ3NvcnRieSddLCAkZmlsdGVyWydwcm9wc2VsJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpbHRlclsncHJvcHZhbCddLCAkZmlsdGVyWydsb2dnZWRpbm9ubHknXSwgJG9mZnNldCApOwogICAgICAgICRubWF0Y2hlcyA9ICR0aGlzLT5nZXRfbGFzdHVzZXJxdWVyeV9jb3VudCgpOwogICAgfQogICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkZS0+R2V0TWVzc2FnZSgpICk7CiAgICB9CiAgICBpZiggIWlzX2FycmF5KCR1c2VycykgKSB7CiAgICAgICAgLy8gYW4gZXJyb3Igb2NjdXJyZWQKICAgICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkZGItPkVycm9yTXNnKCkgKTsKICAgIH0KCiAgICAvLyBjYWxjdWxhdGUgcGFnZXMgYW5kIHBhZ2UgbGlua3MuCiAgICAkbnBhZ2VzID0gKGludCkoJG5tYXRjaGVzIC8gJGZpbHRlclsnbGltaXQnXSk7CiAgICBpZiggJG5tYXRjaGVzICUgJGZpbHRlclsnbGltaXQnXSAhPSAwICkgJG5wYWdlcysrOwogICAgJGN1cnBhZ2UgPSBtYXgoMCxtaW4oJGN1cnBhZ2UsJG5wYWdlcykpOwoKICAgICRuYXYgPSBhcnJheSgpOwogICAgJG5hdlsnbnBhZ2VzJ10gPSAkbnBhZ2VzOwogICAgJG5hdlsnY3VycGFnZSddID0gJGN1cnBhZ2U7CiAgICBpZiggJGN1cnBhZ2UgPiAxICkgewogICAgICAgICRuYXZbJ2ZpcnN0cGFnZV91cmwnXSA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdGFkbWluJywnJywgYXJyYXkoJ2NnX2FjdGl2ZXRhYic9Pid1c2VycycsJ3BhZ2UnPT4xKSk7CiAgICAgICAgJG5hdlsncHJldnBhZ2VfdXJsJ10gPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsIGFycmF5KCdjZ19hY3RpdmV0YWInPT4ndXNlcnMnLCdwYWdlJz0+JGN1cnBhZ2UtMSkpOwogICAgfQogICAgaWYoICRjdXJwYWdlIDwgJG5wYWdlcyApIHsKICAgICAgICAkbmF2WyduZXh0cGFnZV91cmwnXSA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdGFkbWluJywnJywgYXJyYXkoJ2NnX2FjdGl2ZXRhYic9Pid1c2VycycsJ3BhZ2UnPT4kY3VycGFnZSsxKSk7CiAgICAgICAgJG5hdlsnbGFzdHBhZ2VfdXJsJ10gPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsIGFycmF5KCdjZ19hY3RpdmV0YWInPT4ndXNlcnMnLCdwYWdlJz0+JG5wYWdlcykpOwogICAgfQogICAgJHRwbC0+YXNzaWduKCduYXZpZ2F0aW9uJywkbmF2KTsKCiAgICAvLyBnZXQgdGhlIHRvdGFsIG51bWJlciBvZiB1c2VycwogICAgJG51bXVzZXJzID0gJHRoaXMtPkNvdW50VXNlcnNJbkdyb3VwKCAkZmlsdGVyWydncm91cCddICk7CgogICAgLy8gZ2V0IHRoZSBzZWxlY3RlZCBwcm9wZXJ0aWVzLgogICAgaWYoIGlzX2FycmF5KCRmaWx0ZXJbJ3ZpZXdwcm9wcyddKSAmJiBjb3VudCgkZmlsdGVyWyd2aWV3cHJvcHMnXSkgKSB7CiAgICAgICAgaWYoIGNvdW50KCR1c2VycykgKSB7CiAgICAgICAgICAgICR1aWRzID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCggJHVzZXJzIGFzICRyb3cgKSB7CiAgICAgICAgICAgICAgICAkdWlkc1tdID0gJHJvd1snaWQnXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCBBLmlkLCI7CiAgICAgICAgICAgICRmbGRzID0gYXJyYXkoKTsKICAgICAgICAgICAgJGNvbmRzID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGZpbHRlclsndmlld3Byb3BzJ10pOyAkaSsrICkgewogICAgICAgICAgICAgICAgJHByb3AgPSAkZmlsdGVyWyd2aWV3cHJvcHMnXVskaV07CiAgICAgICAgICAgICAgICAkbm0gPSAnaicuJGk7CiAgICAgICAgICAgICAgICAkZmxkc1tdICA9ICIkbm0uZGF0YSBhcyAkcHJvcCI7CiAgICAgICAgICAgICAgICAkY29uZHNbXSA9IGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBBUyAkbm0gT04gQS5pZCA9ICRubS51c2VyaWQgQU5EICgkbm0udGl0bGUgPSAnJHByb3AnKSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHF1ZXJ5IC49IGltcGxvZGUoJywnLCRmbGRzKS4nIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIEEnOwogICAgICAgICAgICAkcXVlcnkgLj0gJyBMRUZUIEpPSU4gJy5pbXBsb2RlKCcgTEVGVCBKT0lOICcsJGNvbmRzKTsKICAgICAgICAgICAgJHF1ZXJ5IC49ICcgV0hFUkUgQS5pZCBJTiAoJy5pbXBsb2RlKCcsJywkdWlkcykuJyknOwogICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCdTRVQgc3FsX2JpZ19zZWxlY3RzID0gMScpOwogICAgICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgICAgICAkZXh0cmFwcm9wcyA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCdpZCcpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBidWlsZCB0aGUgdXNlciBsaXN0LgogICAgJHJvd2FycmF5ID0gYXJyYXkoKTsKICAgICR0cGwtPmFzc2lnbignbnVtdXNlcnMnLCAkbnVtdXNlcnMgKTsKICAgICRjb25zdW1lciA9IGZldV91dGlsczo6Z2V0X2F1dGhfY29uc3VtZXIoKTsKICAgIGlmKCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSAmJiBnZXRfY2xhc3MoJGNvbnN1bWVyKSA9PSAnZmV1X3N0ZF9jb25zdW1lcicgKSB7CiAgICAgICAgJHRwbC0+YXNzaWduKCd1c2VybmFtZXRleHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X2VtYWlsJykpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJHRwbC0+YXNzaWduKCd1c2VybmFtZXRleHQnLCAkdGhpcy0+TGFuZygndXNlcm5hbWUnKSk7CiAgICB9CiAgICAkdHBsLT5hc3NpZ24oJ2VtYWlsdGV4dCcsICR0aGlzLT5MYW5nKCdlbWFpbCcpKTsKICAgICR0cGwtPmFzc2lnbignc3RhdHVzdGV4dCcsICR0aGlzLT5MYW5nKCdzdGF0dXMnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2NyZWF0ZWR0ZXh0JywgJHRoaXMtPkxhbmcoJ2NyZWF0ZWQnKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2V4cGlyZXN0ZXh0JywgJHRoaXMtPkxhbmcoJ2V4cGlyZXMnKSk7CiAgICBpZiggaXNfYXJyYXkoJHVzZXJzKSApIHsKICAgICAgICBmb3JlYWNoKCAkdXNlcnMgYXMgJHJvdyApIHsKICAgICAgICAgICAgJG9uZXJvdyA9IG5ldyBTdGRDbGFzcygpOwogICAgICAgICAgICAkb25lcm93LT5pZCA9ICRyb3dbJ2lkJ107CiAgICAgICAgICAgICRvbmVyb3ctPmRpc2FibGVkID0gKGJvb2wpICRyb3dbJ2Rpc2FibGVkJ107CiAgICAgICAgICAgICRvbmVyb3ctPm11c3RfdmFsaWRhdGUgPSAoYm9vbCkgKGlzc2V0KCRyb3dbJ211c3RfdmFsaWRhdGUnXSkpID8gJHJvd1snbXVzdF92YWxpZGF0ZSddIDogZmFsc2U7CiAgICAgICAgICAgICRvbmVyb3ctPmNyZWF0ZWQgID0gJHJvd1snY3JlYXRlZGF0ZSddOwogICAgICAgICAgICAkb25lcm93LT51c2VybmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2VkaXR1c2VyJywgJHJldHVybmlkLCAkcm93Wyd1c2VybmFtZSddLCBhcnJheSgndXNlcl9pZCcgPT4gJHJvd1snaWQnXSkpOwogICAgICAgICAgICAkb25lcm93LT5leHBpcmVzICA9ICRyb3dbJ2V4cGlyZXMnXTsKICAgICAgICAgICAgaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdsaXN0dXNlcnMnKSApIHsKICAgICAgICAgICAgICAgICRvbmVyb3ctPmhpc3RvcnlsaW5rID0KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAndXNlcmhpc3RvcnknLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9pbmZvLmdpZicsJHRoaXMtPkxhbmcoJ2hpc3RvcnknKSwnJywnJywnc3lzdGVtaWNvbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgndXNlcl9pZCc9PiRyb3dbJ2lkJ10pKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdlZGl0dXNlcnMnKSApIHsKICAgICAgICAgICAgICAgICRvbmVyb3ctPmVkaXRsaW5rID0KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnYWRtaW5fZWRpdHVzZXInLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nICgnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5ICgndXNlcl9pZCcgPT4gJHJvd1snaWQnXSApKTsKICAgICAgICAgICAgICAgIGlmKCAkcm93Wydsb2dnZWRpbiddICkgewogICAgICAgICAgICAgICAgICAgICRvbmVyb3ctPmxvZ291dGxpbmsgPQogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCdhZG1pbl9sb2dvdXQnLCRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9iYWNrLmdpZicsICR0aGlzLT5MYW5nKCdwcm9tcHRfbG9nb3V0JyksJycsJycsJ3N5c3RlbWljb24nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCd1c2VyX2lkJz0+JHJvd1snaWQnXSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggJHRoaXMtPl9IYXNTdWZmaWNpZW50UGVybWlzc2lvbnMoJ3JlbW92ZXVzZXJzJykgKSB7CiAgICAgICAgICAgICAgICAkb25lcm93LT5kZWxldGVsaW5rID0KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCdkb19kZWxldGV1c2VyJywkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhZG1pbnRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywkdGhpcy0+TGFuZyAoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5ICgndXNlcl9pZCcgPT4gJHJvd1snaWQnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MYW5nICgnYXJleW91c3VyZV9kZWxldGUnLCRyb3dbJ3VzZXJuYW1lJ10pKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRmaWx0ZXJbJ3ZpZXdwcm9wcyddKSAmJiBjb3VudCgkZmlsdGVyWyd2aWV3cHJvcHMnXSkgKSB7CiAgICAgICAgICAgICAgICAkb25lcm93LT5leHRyYSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkZmlsdGVyWyd2aWV3cHJvcHMnXSBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkZXh0cmFwcm9wc1skb25lcm93LT5pZF1bJG9uZV0pICkgJG9uZXJvdy0+ZXh0cmFbJG9uZV0gPSAkZXh0cmFwcm9wc1skb25lcm93LT5pZF1bJG9uZV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRyb3dhcnJheVtdID0gJG9uZXJvdzsKICAgICAgICB9CiAgICB9CgogICAgJHRwbC0+YXNzaWduKCdpdGVtY291bnQnLGNvdW50KCRyb3dhcnJheSkpOwogICAgJHRwbC0+YXNzaWduKCdpdGVtcycsJHJvd2FycmF5KTsKICAgICRidWxrX2FjdGlvbnMgPSBbXTsKICAgIGlmKCAkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygnZWRpdHVzZXJzJykgKSB7CiAgICAgICAgJGJ1bGtfYWN0aW9uc1snZGlzYWJsZSddID0gJHRoaXMtPkxhbmcoJ2J1bGtfZGlzYWJsZScpOwogICAgICAgICRidWxrX2FjdGlvbnNbJ2VuYWJsZSddID0gJHRoaXMtPkxhbmcoJ2J1bGtfZW5hYmxlJyk7CiAgICAgICAgJGJ1bGtfYWN0aW9uc1snZm9yY2VjaHB3J10gPSAkdGhpcy0+TGFuZygnYnVsa19mb3JjZWNocHcnKTsKICAgICAgICAkYnVsa19hY3Rpb25zWydzZXRwYXNzd29yZCddID0gJHRoaXMtPkxhbmcoJ2J1bGtfc2V0cGFzc3dvcmQnKTsKICAgICAgICAkYnVsa19hY3Rpb25zWydzZXRleHBpcnknXSA9ICR0aGlzLT5MYW5nKCdidWxrX3NldGV4cGlyeScpOwogICAgfQogICAgaWYoICR0aGlzLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdyZW1vdmV1c2VycycpICkgewogICAgICAgICRidWxrX2FjdGlvbnNbJ2RlbGV0ZSddID0gJHRoaXMtPkxhbmcoJ2J1bGtfZGVsZXRlJyk7CiAgICB9CiAgICBpZiggY291bnQoJGJ1bGtfYWN0aW9ucykgKSAkdHBsLT5hc3NpZ24oJ2J1bGtfYWN0aW9ucycsJGJ1bGtfYWN0aW9ucyk7Cn0gLy8gbGlzdHVzZXJzIHBlcm1pc3Npb24KCmlmKCAkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygnYWRkdXNlcicpICkgewogICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX29uZWdyb3VwJykgPT0gMCB8fCBjb3VudCgkZ3JvdXBzMSkgPiAwICkgewogICAgICAgICR0cGwtPmFzc2lnbignYWRkX3VybCcsICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnYWRtaW5fZWRpdHVzZXInLCRyZXR1cm5pZCkpOwogICAgfQp9CmlmKCAkdGhpcy0+X0hhc1N1ZmZpY2llbnRQZXJtaXNzaW9ucygndXNlcnMnKSApIHsKICAgIGlmKCBjb3VudCgkZ3JvdXBzKSApICR0cGwtPmFzc2lnbignaW1wb3J0X3VybCcsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdhZG1pbl9pbXBvcnRfdXNlcnMnLCRyZXR1cm5pZCkpOwogICAgaWYoIGNvdW50KCRyb3dhcnJheSkgKSAkdHBsLT5hc3NpZ24oJ2V4cG9ydF91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnYWRtaW5fZXhwb3J0X3VzZXJzJywkcmV0dXJuaWQpKTsKfQoKJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsbG93cyBtYW5hZ2VtZW50IGFuZCBhZG1pbmlzdHJhdGlvbiBvZiBmcm9udCBlbmQgdXNlcnMgPGk+KHVzZXJzIHdobyBoYXZlIG5vIGFkbWluIGFjY2Vzc3MpPC9pPi4gIEl0IGFsbG93cyBjcmVhdGlvbiBvZiB1c2VyIGdyb3VwcywgYW5kIHVzZXIgYWNjb3VudHMgYW5kIGFsbG93cyB1c2VycyB0byBsb2dpbiBhbmQgbG9nb3V0LiAgaXQgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgQ3VzdG9tQ29udGVudCBtb2R1bGUgdG8gZGlzcGxheSBkaWZmZXJlbnQgY29udGVudCB0byBkaWZmZXJlbnQgdXNlcnMgb25jZSB0aGV5IGhhdmUgbG9nZ2VkIGluPC9wPgo8aDM+RmVhdHVyZXM6PC9oMz4KPHVsPgo8bGk+VXNlcnMgY2FuIGJlIG1lbWJlcnMgb2YgbXVsdGlwbGUgZ3JvdXBzLjwvbGk+CjxsaT5Vc2VyIGFjY291bnQgZXhwaXJhdGlvbi4gIFlvdSBjYW4gY3JlYXRlIHRlbXBvcmFyeSB1c2VyczwvbGk+CjxsaT5Hcm91cCBQcm9wZXJ0aWVzLiAgWW91IGNhbiBhc2sgZm9yIGRpZmZlcmVudCBpbmZvcm1hdGlvbiBmcm9tIG1lbWJlcnMgb2YgZGlmZmVyZW50IGdyb3Vwcy48L2xpPgo8bGk+TG90cyBvZiBmaWVsZCB0eXBlcy48L2xpPgo8bGk+UHJvdmlkZXMgYSBjb250ZW50IHR5cGUgdG8gbWFrZSBwcm90ZWN0aW5nIGNvbnRlbnQgc2ltcGxlLCBpZiBub3QgdHJpdmlhbC48L2xpPgo8bGk+Q2FwYWJsZSBvZiBoYW5kbGluZyB0aG91c2FuZHMgb2YgdXNlcnM8L2xpPgo8bGk+RXh0ZW5zaXZlIGZsZXhpYmlsaXR5IGZvciBoYW5kbGluZyByZWRpcmVjdGlvbiBhZnRlciBsb2dpbiwgYW5kIHNlbmRzIGV2ZW50cyB0byBleHRlbmQgdGhlIHdvcmtmbG93IHByb2Nlc3MuPC9saT4KPGxpPkZvcmdvdHRlbiBwYXNzd29yZCwgYW5kIGZvcmdvdCB1c2VybmFtZSBmdW5jdGlvbmFsaXR5Li4uIGFsbG93cyB1c2VycyB0byBzZXQgYSBuZXcgcGFzc3dvcmQsIGFuZC9vciB0byByZWNvdmVyIHRoZWlyIHVzZXJuYW1lIGlmIHRoZXkgY29tcGxldGVseSBmb3Jnb3QgbG9naW4gZGV0YWlscy48L2xpPgo8bGk+RXh0ZW5kYWJsZSB0byBkaWZmZXJlbnQgYXV0aGVudGljYXRpb24gdHlwZXMgKExEQVAsIEZhY2Vib29rLCBldGMpLjwvbGk+CjxsaT5Qcm92aWRlcyBleHRlbnNpdmUgaW1wb3J0IGFuZCBleHBvcnQgY2FwYWJpbGl0aWVzLjwvbGk+CjxsaT5IYXMgYW4gZXh0ZW5zaXZlIEFQSSBmb3IgYWRkaW5nIGZ1bmN0aW9uYWxpdHkgaW50byB2YXJpb3VzIG90aGVyIENNU01TIGFkZG9uIG1vZHVsZXMuPC9saT4KPGxpPlRoZSBhYmlsaXR5IHRvIGVuY3J5cHQgc2Vuc2l0aXZlIHVzZXIgZGF0YS48L2xpPgo8bGk+U3Ryb25nIGVuY3J5cHRpb24gYW5kIHNlY3VyaXR5LjwvbGk+CjxsaT5FeHRlbnNpdmUgYWRtaW5pc3RyYXRpdmUgY2FwYWJpbGl0aWVzLjwvbGk+CjwvdWw+Cgo8aDM+SG93IGRvIEkgdXNlIGl0OjwvaDM+CjxwPkFmdGVyIGluc3RhbGxhdGlvbiB5b3UgY2FuIHRoZSBhY2Nlc3MgYWRtaW4gcGFuZWwgdG8gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIHVuZGVyIHRoZSAmcXVvdDtVc2VycyAmYW1wOyBHcm91cHMmcXVvdDsgbWVudS48L3A+CjxwPllvdSBuZWVkIHRvIGRlZmluZSBhdCBsZWFzdCBvbmUgcHJvcGVydHkuICBQcm9wZXJ0aWVzIGFyZSBlc3NlbnRpYWxseSBmaWVsZCBkZWZpbml0aW9ucywgaGVyZSB5b3Ugc3BlY2lmeSB0aGUgdHlwZSBvZiBpbmZvcm1hdGlvbiB5b3Ugd2FudCB0byBnYXRoZXIsIGFuZCBsaW1pdHMuIGkuZTogIE5hbWUsIEFnZSwgQ2l0eSwgU3RhdGUsIENvdW50cnksIGV0Yy48L3A+CjxwPjxiPk5vdGU6PC9iPiBZb3UgZG8gbm90IG5lZWQgdG8gZGVmaW5lIHByb3BlcnRpZXMgZm9yIHVzZXJuYW1lIChvciBlbWFpbCBhZGRyZXNzKSBhbmQgcGFzc3dvcmQsIHRoZXNlIHdpbGwgYmUgcHJvdmlkZWQgZm9yIHlvdS4gIFRob3VnaCB5b3UgY2FuIHByb3ZpZGUgcHJvcGVydGllcyBmb3IgYWRkaXRpb25hbCBlbWFpbCBhZGRyZXNzZXMuPC9wPgo8cD48Yj5Ob3RlOjwvYj4gTmV3IGluc3RhbGxhdGlvbnMgb2YgdGhlIEZFVSBtb2R1bGUgc3BlY2lmeSB0aGF0IHRoZSB1c2VycyBlbWFpbCBhZGRyZXNzIGlzIHRoZWlyIHVzZXJuYW1lICh0aGlzIG9wdGlvbiBjYW4gYmUgY2hhbmdlZCBpbiB0aGUgbW9kdWxlcyBhZG1pbiBwYW5lbCkuICBTbyBpZiB1c2luZyB0aGlzIG9wdGlvbiB5b3Ugd2lsbCBub3QgbmVlZCB0byBjcmVhdGUgYW4gZW1haWwgYWRkcmVzcyBwcm9wZXJ0eS48L3A+CjxwPk5leHQgeW91IG11c3QgY3JlYXRlIG9uZSBvciBtb3JlIHVzZXIgZ3JvdXBzLiAgV2hlbiB5b3UgY3JlYXRlIGEgZ3JvdXAsIHlvdSBhcmUgYXNrZWQgZm9yIGEgZ3JvdXAgbmFtZSwgYSBkZXNjcmlwdGlvbiBhbmQgdG8gYXNzb2NpYXRlIG9uZSBvciBtb3JlIHByb3BlcnRpZXMgd2l0aCB0aGF0IGdyb3VwLCBzcGVjaWZ5IHRoZSBwcm9wZXJ0aWVzIHNvcnQgb3JkZXIsIGFuZCB3aGV0aGVyIGl0IGlzIGFuIG9wdGlvbmFsLCByZXF1aXJlZCwgb3IgaGlkZGVuIGZpZWxkLiAgQXQgbGVhc3Qgb25lIHByb3BlcnR5IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGEgZ3JvdXAuPC9wPgo8cD48Yj5Ob3RlOjwvYj4gQmVmb3JlIHByb2NlZWRpbmcsIHlvdSBzaG91bGQgZW5zdXJlIHRoYXQgdGhlIHByZWZlcmVuY2VzIGFyZSBzZXQgY29ycmVjdGx5LiAgVGFrZSBzb21lIHRpbWUgaGVyZSwgdGhlcmUgYXJlIG51bWVyb3VzIG9wdGlvbnMuPC9wPgo8cD5UaGlyZGx5IHlvdSBzaG91bGQgY3JlYXRlIHNvbWUgdXNlcnMuICBBZGRpbmcgdXNlcnMgaXMgYSB0d28gc3RlcCBwcm9jZXNzLiAgV2hlbiBjcmVhdGluZyBhIHVzZXIgeW91IGFyZSBhc2tlZCBmb3IgdGhlIHVzZXJuYW1lL2VtYWlsIGFuZCBwYXNzd29yZCwgYW5kIGFuIGV4cGlyeSBkYXRlIGZvciB0aGF0IHVzZXIuICBZb3UgdGhlbiBtdXN0IHNlbGVjdCB0aGUgZ3JvdXBzIHRoYXQgdGhhdCB1c2VyIGlzIGEgbWVtYmVyIG9mLCBhbmQgY2xpY2sgJnF1b3Q7TmV4dCZxdW90OzwvcD4KPHA+PGVtPk5vdGU6IDwvZW0+VGhpcyBpcyBhIGxhYm91ciBpbnRlbnNpdmUgYW5kIGJvcmluZyBwcm9jZXNzLCBpdCBpcyBlYXNpZXIgdG8gbGV0IHVzZXJzIHJlZ2lzdGVyIHRoZW1zZWx2ZXMgPGVtPihTZWUgdGhlIFNlbGZSZWdpc3RyYXRpb24gTW9kdWxlKTwvZW0+LCBhbmQgdGhlbiB5b3UgY2FuIGVkaXQgdGhlaXIgZ3JvdXAgaW5mb3JtYXRpb24uICBidXQgZm9yIHRlc3RpbmcgcHVycG9zZXMsIHBsZWFzZSBjcmVhdGUgYXQgbGVhc3Qgb25lIHVzZXI8L3A+CjxwPkxhc3RseSwgYWZ0ZXIgdGhlIHN5c3RlbSBoYXMgZGV0ZXJtaW5lZCBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGZpZWxkcyB0byBiZSBwcmVzZW50ZWQgZm9yIHRoYXQgdXNlciwgeW91IGFyZSBwcmVzZW50ZWQgd2l0aCBhIGZvcm0gYXNraW5nIGZvciBhbGwgb2YgdGhlIHJlcXVpcmVkIHVzZXIgaW5mb3JtYXRpb24uICBDb21wbGV0ZSB0aGlzIGZvcm0gdG8gY29tcGxldGUgdGhlIHVzZXIgYWRkaXRpb248L3A+CjxwPllvdSBhcmUgbm93IHJlYWR5IHRvIGFkZCB0aGUgZnJvbnQgZW5kIGZ1bmN0aW9uYWxpdHkgdG8geW91ciBzaXRlLiAgVGhpcyBpcyBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSB7RnJvbnRFbmRVc2Vyc30gdGFnIHRvIHlvdXIgcGFnZSBvciB0ZW1wbGF0ZS4gIFlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoaXMgcGFnZSBpcyBzZXQgdG8gJnF1b3Q7bm90IGNhY2hlJnF1b3Q7IHdoZW4gZWRpdGluZyB0aGUgY29udGVudCBwYWdlKHMpIHdoZXJlIHRoZSBsb2dpbiBmb3JtIGlzIGRpc3BsYXllZC4gIElmIHlvdSBjYWxsIHRoZSB7RnJvbnRFbmRVc2Vyc30gdGFnIGZyb20gd2l0aGluIGEgcGFnZSB0ZW1wbGF0ZSwgeW91IG11c3QgZGlzYWJsZSBjYWNoaW5nIG9uIGFsbCBwYWdlcyB0aGF0IHVzZSB0aGF0IHRlbXBsYXRlLjwvcD4KPHA+QWRkaW5nIHByb3RlY3RlZCBjb250ZW50IHRvIHlvdXIgQ01TTVMgc2l0ZSBpcyBhcyBzaW1wbGUgYXMgY3JlYXRpbmcgbmV3IHBhZ2VzIG9mIHR5cGUgJnF1b3Q7UHJvdGVjdGVkIENvbnRlbnQmcXVvdDsgYW5kIHNlbGVjdGluZyB3aGljaCB1c2VyIGdyb3VwcyAob3IgYWxsKSB0aGF0IGFyZSBhbGxvd2VkIHRvIHZpZXcgdGhlIHBhZ2UuPC9wPgo8cD48ZW0+T3B0aW9uYWxseTwvZW0+IENyZWF0ZSBhbm90aGVyIG5ldyBjb250ZW50IHBhZ2Ugb2YgdHlwZSAnRXJyb3IgSGFuZGxlcicgYW5kIHNldCB0aGUgZXJyb3IgaGFuZGxlciB0byA0MDMgZXJyb3IuICBJbiB0aGUgY29udGVudCBhcmVhIG9mIHRoYXQgcGFnZSwgeW91IHNob3VsZCBjYWxsIHtGcm9udEVuZFVzZXJzfSB0byBkaXNwbGF5IGEgbG9naW4gZm9ybSBvbiB0aGUgNDAzIGVycm9yIHBhZ2UuPC9wPgoKPGgzPlN0cm9uZyBQYXNzd29yZHM6PC9oMz4KPHA+VGhpcyBtb2R1bGUsIHdoZW4gZnJlc2hseSBpbnN0YWxsZWQgKG5vdCBhbiB1cGdyYWRlKSBlbmFibGVzIHN0cm9uZyBwYXNzd29yZHMuICBBdCBhIG1pbmltdW0gb25lIHVwcGVyIGNhc2UgY2hhcmFjdGVyIGFuZCBvbmUgZGlnaXQgYXJlIHJlcXVpcmVkIHRvIGJlIGluIGV2ZXJ5IHBhc3N3b3JkLiAgVGhlIHNpdGUgYWRtaW5pc3RyYXRvciBjYW4gYWxzbyBzcGVjaWZ5IG90aGVyIG9wdGlvbmFsIGNoYXJhY3RlcnMsIG9uZSBvZiB3aGljaCBtdXN0IGJlIHByZXNlbnQgaW4gYWxsIHBhc3N3b3Jkcy48L3A+Cgo8aDM+U21hcnR5IEZ1bmN0aW9uczo8L2gzPgo8aDQ+e2ZldV9wcm90ZWN0fTwvaDQ+CjxwPlRoZSA8c3Ryb25nPmZldV9wcm90ZWN0PC9zdHJvbmc+IGJsb2NrIHBsdWdpbiBwcm92aWRlcyBhIGNvbnZlbmllbnQgbWV0aG9kIHRvIGhpZGUgc29tZSBjb250ZW50IGZyb20gdXNlcnMgb24gd2hhdCBpcyBub3JtYWxseSBhIHB1YmxpYyBwYWdlLjwvcD4KPHA+PHN0cm9uZyBzdHlsZT0iY29sb3I6IHJlZDsiPldhcm5pbmc6PC9zdHJvbmc+IFRoaXMgcGx1Z2luIGNhbm5vdCBiZSBjb25zaWRlcmVkIDEwMCUgc2VjdXJlLCBhbmQgc2hvdWxkIG5vdCBhdCBhbnkgdGltZSBiZSB1c2VkIGluIHRoZSBwYWdlIHRlbXBsYXRlIHRvIHByb3RlY3QgdGhlIGRlZmF1bHQge2NvbnRlbnR9IHRhZy4gIFRoZXJlIGFyZSB3YXlzIHRvIGFjY2VzcyB0aGUgZGVmYXVsdCBjb250ZW50IHByb3BlcnR5IG9mIGEgcGFnZSwgb3IgdG8gY2FsbCBhIG1vZHVsZSBhY3Rpb24gd2l0aG91dCBwcm9jZXNzaW5nIHRoZSBwYWdlIHRlbXBsYXRlLiAgSWYgeW91IG5lZWQgdG8gcHJvdGVjdCB0aGUgY29udGVudCBhbmQgZW5zdXJlIHRoYXQgbm8gdW5hdXRob3JpemVkIHVzZXJzIGFjY2VzcyB0aGUgcGFnZSwgdXNlIHRoZSBwcm90ZWN0ZWQgcGFnZSBjb250ZW50IHR5cGUgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGUuPC9wPgo8aDU+VXNhZ2U6PC9oNT4KPHByZT48Y29kZT57ZmV1X3Byb3RlY3QgZ3JvdXBzPSJncm91cDEsZ3JvdXAyLGdyb3AzIn0KICAmbHQ7cCZndDtTbWFydHkgY29udGVudCB0aGF0IHNob3VsZCBvbmx5IGJlIHZpc2libGUgdG8gbWVtYmVycyBvZiB0aG9zZSBncm91cHMuJmx0Oy9wJmd0Owp7L2ZldV9wcm90ZWN0fTwvY29kZT48L3ByZT4KPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgdXNlciBtdXN0IGJlIGEgbWVtYmVyIG9mIGF0IGxlYXN0IG9uZSBvZiB0aGUgc3BlY2lmaWVkIGdyb3Vwcy4gIFRoZSBncm91cCBuYW1lcyBhcmUgY2FzZSBzZW5zaXRpdmUuPC9wPgoKPGg0PlRoZSBmZXVfc21hcnR5IGNsYXNzPC9oND4KPHA+VGhlIDxzdHJvbmc+ZmV1X3NtYXJ0eTwvc3Ryb25nPiBjbGFzcyBwcm92aWRlcyBzb21lIGZ1bmN0aW9ucyB0byBpbnRlcmFjdCB3aXRoIHRoZSBkYXRhYmFzZSBhbmQgcHVsbCBhbmQgdGVzdCBmb3IgdXNlciBpbmZvcm1hdGlvbi48L3A+CjxwPlNvbWUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUgZGF0YWJhc2UgaXMgcG9zc2libGUgd2l0aCBzbWFydHkgYW5kIHRoZSBmZXVfc21hcnR5IGNsYXNzLjwvcD4KPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPgogIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQmVoYXZpb3Igb2YgdGhlIGZldV9zbWFydHkgY2xhc3MgY2hhbmdlZCBzaWduaWZpY2FudGx5IGF0IHZlcnNpb24gMS4yOSByZXN1bHRpbmcgaW4gY29tcGF0aWJpbGl0eSBwcm9ibGVtcy48L3A+CiAgPHA+VGhpcyBpcyBub3cgYSByZWdpc3RlcmVkIGNsYXNzIHdpdGggU21hcnR5IChmb3IgQ01TTVMgMi4wIGNvbXBhdGliaWxpdHkpLiAgQW5kIGFsbCBtZXRob2RzIG11c3QgYmUgYWNjZXNzZWQgc3RhdGljYWxseS4gIEFkZGl0aW9uYWxseSwgdGhlcmUgaXMgbm8gYXNzaWduIHBhcmFtLiAgWW91IG11c3QgY2FwdHVyZSB0aGUgb3V0cHV0IG9mIHRoZSBmdW5jdGlvbiBpbnRvIGEgc21hcnR5IHZhcmlhYmxlLjwvcD4KPC9kaXY+CjxoNT5GdW5jdGlvbnM6PC9oNT4KPHVsPgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X2N1cnJlbnRfdXNlcmlkKCl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGludGVnZXIgdXNlciBpZCBpZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIChpZiBhbnkpLjwvcD4KPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyR1aWQ9ZmV1X3NtYXJ0eTo6Z2V0X2N1cnJlbnRfdXNlcmlkKCl9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF9jdXJyZW50X3VzZXJuYW1lKCl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHVzZXIgbmFtZSBpZiB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIChpZiBhbnkpLjwvcD4KPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyR1c2VybmFtZT1mZXVfc21hcnR5OjpnZXRfY3VycmVudF91c2VybmFtZSgpfTwvY29kZT48L3ByZT4KPC9saT4KCjxsaT48c3Ryb25nPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfdXNlcmlkKCR1c2VybmFtZSl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIHJldHVybiB0aGUgaW50ZWdlciB1c2VyIGlkIGdpdmVuIGEgdXNlcm5hbWUuPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57JHVpZD1mZXVfc21hcnR5OjpnZXRfdXNlcmlkKCR1c2VybmFtZSl9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF91c2VybmFtZShbJHVpZF0pfTwvY29kZT48L3N0cm9uZz4KPHA+VGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byByZXR1cm4gdGhlIHN0cmluZyB1c2VybmFtZSBnaXZlbiBhbiBpbnRlZ2VyIHVpZC4gIElmIG5vIHVpZCBpcyBzcGVjaWZpZWQsIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1aWQgaXMgYXNzdW1lZC48L3A+CjxwPkV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfdXNlcm5hbWUoJHRoZV91aWQpfTwvY29kZT48L3ByZT4KPC9saT4KCjxsaT48c3Ryb25nPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfZW1haWwoWyR1aWRdKX08L2NvZGU+PC9zdHJvbmc+CjxwPlRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gcmV0dXJuIGFuIGVtYWlsIGFkZGVyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gaW50ZWdlciB1aWQuICBJZiBubyB1aWQgaXMgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBsb2dnZWQgaW4gdWlkIGlzIGFzc3VtZWQuPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X2VtYWlsKCR0aGVfdWlkKX08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJpbmZvKFskdWlkXSl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIHJldHVybiB0aGUgdXNlciBpbmZvcm1hdGlvbiBmb3IgYSBzaW5nbGUgdXNlci4gIElmIG5vIHVpZCBpcyBzcGVjaWZpZWQsIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1aWQgaXMgYXNzdW1lZC48L3A+CjxwPkV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPnskdWluZm89ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJpbmZvKCRzb21ldGhpbmcudXNlcmlkKX08YnIvPnskdWluZm98QHByaW50X3J9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF91c2Vyc19ieV9ncm91cG5hbWUoJGdyb3VwbmFtZVssJGZvcl9saXN0XSl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGV4dHJhY3QgYW4gYXJyYXkgb2YgdXNlcm5hbWVzIGFuZCB1c2VyaWRzIGZvciBhbGwgdXNlcnMgdGhhdCBiZWxvbmcgdG8gdGhlIHNwZWNpZmllZCBncm91cC48L3A+CjxwPlRoZSBncm91cG5hbWUgcGFyYW1ldGVyIG11c3QgYmUgYSBzaW5nbGUgc3RyaW5nIGdyb3VwbmFtZS48L3A+CjxwPlRoZSBmb3JfbGlzdCBwYXJhbWV0ZXIgaXMgYSBib29sZWFuIHRoYXQgaW5kaWNhdGVzIHRoYXQgdGhlIG91dHB1dCBzaG91bGQgYmUgc3VpdGFibGUgZm9yIHVzZSBpbiBhIHNlbGVjdCBsaXN0LjwvcD4KPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyRteW1lbWJlcnM9ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJzX2J5X2dyb3VwbmFtZSgnbWVtYmVycycpfTxici8+eyRteW1lbWJlcnN8QHByaW50X3J9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF9ncm91cF9tZW1iZXJsaXN0KCRnaWQpfTwvY29kZT48L3N0cm9uZz4KICA8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gYXJyYXkgb2YgdWlkIGFuZCB1c2VybmFtZXMgZm9yIGFsbCB1c2VycyB0aGF0IGFyZSBtZW1iZXJzIG9mIHRoZSBzcGVjaWZpZWQgZ3JvdXAgKGJ5IGdyb3VwIGlkKS48L3A+CiAgPHA+RXhhbXBsZTo8L3A+CiAgPHByZT48Y29kZT57aHRtbF9vcHRpb25zIG9wdGlvbnM9ZmV1X3NtYXJ0eTo6Z2V0X2dyb3VwX21lbWJlcmxpc3QoJGdpZCkgc2VsZWN0ZWQ9JHVpZH08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJfZXhwaXJ5KFskdWlkXSl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHVuaXggdGltZXN0YW1wIHRoYXQgdGhlIHNwZWNpZmllZCB1aWQgYWNjb3VudCBleHBpcmVzLiAgVGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGZhbHNlIGlmIHRoZSB1aWQgY2Fubm90IGJlIGZvdW5kIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57JGV4cGlyeT1mZXVfc21hcnR5OjpnZXRfdXNlcl9leHBpcnkoMjUpfTxici8+eyRleHBpcnl8Y21zX2RhdGVfZm9ybWF0fTwvY29kZT48L3ByZT4KPC9saT4KCjxsaT48c3Ryb25nPjxjb2RlPntmZXVfc21hcnR5Ojp1c2VyX2V4cGlyZWQoJHVpZCl9PC9jb2RlPjwvc3Ryb25nPgo8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2V0aGVyIHRoZSBzcGVjaWZpZWQgdXNlciBhY2NvdW50IGhhcyBleHBpcmVkLiAgVGhlIG1ldGhvZCB3aWxsIGFsc28gcmV0dXJuIGZhbHNlIGlmIHRoZSB1aWQgY2Fubm90IGJlIGZvdW5kIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuPC9wPgo8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57JGV4cGlyZWQ9ZmV1X3NtYXJ0eTo6dXNlcl9leHBpcmVkKDI1KX08YnIvPntpZiAkZXhwaXJlZH1VSUQgMjUgY2FuIG5vIGxvbmdlciBsb2dpbiB0byB0aGUgc3lzdGVtey9pZn08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJfcHJvcGVydGllcygkdWlkKX08L2NvZGU+PC9zdHJvbmc+CjxwPlRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gZXh0cmFjdCBhIGxpc3Qgb2YgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCB1c2VyLiAgSWYgdGhlIHVpZCBpcyBub3Qgc3BlY2lmaWVkIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1aWQgaXMgdXNlZC48L3A+CjxwPkV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPnskdXNlcnByb3BzPWZldV9zbWFydHk6OmdldF91c2VyX3Byb3BlcnRpZXMoNSl9PGJyLz57JHVzZXJwcm9wc3xAcHJpbnRfcn08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X3VzZXJfcHJvcGVydHkoJHByb3BlcnR5LFskdWlkXSl9PC9jb2RlPjwvc3Ryb25nPgogIDxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdmFsdWUgb2YgYSBzaW5nbGUgcHJvcGVydHkgZm9yIHRoZSBzcGVjaWZpZWQgdWlkLiAgSWYgdGhlIHVpZCBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVpZCBpcyB1c2VkLjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KICA8cHJlPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfdXNlcl9wcm9wZXJ0eSgnZnVsbG5hbWUnLDUpfTwvY29kZT48L3ByZT4KPC9saT4KCjxsaT48c3Ryb25nPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfZHJvcGRvd25fdGV4dCgkcHJvcG5hbWUsJHByb3B2YWx1ZSl9PC9jb2RlPjwvc3Ryb25nPgogIDxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdGV4dCBzcGVjaWZpZWQgZm9yIGEgcGFydGljdWxhciBvcHRpb24gdmFsdWUgZm9yIGEgc3BlY2lmaWVkIGRyb3Bkb3duIHByb3BlcnR5LjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KICA8cHJlPjxjb2RlPntmZXVfc21hcnR5OjpnZXRfZHJvcGRvd25fdGV4dCgnYWdlX3JhbmdlJywkb25lcHJvcHZhbHVlKX08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6Z2V0X211bHRpc2VsZWN0X3RleHQoJHByb3BuYW1lLCRwcm9wdmFsdWUpfTwvY29kZT48L3N0cm9uZz4KICA8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gYXJyYXkgb2Ygb3B0aW9uIHRleHRzIGNvcnJlc3BvbmRpbmcgdG8gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBvcHRpb24gdmFsdWVzLjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KICA8cHJlPjxjb2RlPnskZmF2b3JpdGVfZm9vZHM9ZmV1X3NtYXJ0eTo6Z2V0X211bHRpc2VsZWN0X3RleHQoJ2Zhdm9yaXRlX2Zvb2RzJywkb25lcHJvcHZhbHVlKX08YnIvPnskZmF2b3JpdGVfZm9vZHN8QHByaW50X3J9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF9ncm91cF9saXN0KCl9PC9jb2RlPjwvc3Ryb25nPgogIDxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBhcnJheSBvZiBGRVUgZ3JvdXBzIHRoYXQgaXMgc3VpdGFibGUgZm9yIHVzZSBpbiBhIGRyb3Bkb3duLjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT4mbHQ7c2VsZWN0IGlkPSJncm91cCImZ3Q7e2h0bWxfb3B0aW9ucyBvcHRpb25zPWZldV9zbWFydHk6OmdldF9ncm91cF9saXN0KCl9Jmx0Oy9zZWxlY3QmZ3Q7PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmdldF91c2VyX2dyb3VwcyhbJHVpZF0pfTwvY29kZT48L3N0cm9uZz4KICA8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gYXJyYXkgb2YgRkVVIGdyb3VwcyB0aGF0IHRoaXMgdXNlciBiZWxvbmdzIHRvIChpZiBhbnkpLiAgVGhlIG91dHB1dCBpcyBhbiBhcnJheSBzdWl0YWJsZSBmb3IgdXNlIGluIGEgc2VsZWN0IGxpc3QgKHRoZSBrZXkgaXMgdGhlIGdyb3VwaWQsIHZhbHVlIGlzIHRoZSBncm91cCBuYW1lKS48L3A+CiAgPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyRteWdyb3Vwcz1mZXVfc21hcnR5OjpnZXRfdXNlcl9ncm91cHMoKX0KeyRteWdyb3Vwc3xAcHJpbnRfcn08L2NvZGU+PC9wcmU+CjwvbGk+Cgo8bGk+PHN0cm9uZz48Y29kZT57ZmV1X3NtYXJ0eTo6cHJlbG9hZF91c2VycygkdWlkX2xpc3RbLCRkZWVwID0gZmFsc2VdKX08L2NvZGU+PC9zdHJvbmc+CiAgPHA+VGhpcyBmdW5jdGlvbiB3aWxsIHByZWxvYWQgaW5mb3JtYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdXNlcnMuICBJdCBkb2VzIG5vdCByZXR1cm4gYW55IG91dHB1dC48L3A+CiAgPHA+RXhhbXBsZTo8L3A+CjxwcmU+PGNvZGU+eyRsaXN0PVsgNSwgMTAsIDExLCAxMywgMTggXX17ZmV1X3NtYXJ0eTo6cHJlbG9hZF91c2VycygkbGlzdCl9PC9jb2RlPjwvcHJlPgo8L2xpPgoKPGxpPjxzdHJvbmc+PGNvZGU+e2ZldV9zbWFydHk6OmlzX3VzZXJfbWVtYmVyb2YoJGdyb3Vwc1ssJHVpZF0pfTwvY29kZT48L3N0cm9uZz4KICA8cD5UaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib29sZWFuIGlmIHRoZSB1c2VyIGlzIGEgbWVtYmVyIG9mIG9uZSB0aGUgc3BlY2lmaWVkIGdyb3Vwcy48L3A+CiAgPHA+VGhlIGdyb3VwcyBwYXJhbWV0ZXIgY2FuIGJlIGEgY29tbWEgZGVsaW1pdGVkIHN0cmluZyBvZiBncm91cCBuYW1lcywgb3IgYW4gYXJyYXkgb2YgZ3JvdXAgbmFtZXMuPC9wPgogIDxwPklmIHRoZSB1aWQgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJpZCBpcyB1c2VkLjwvcD4KICA8cD5FeGFtcGxlOjwvcD4KPHByZT48Y29kZT57aWYgZmV1X3NtYXJ0eTo6aXNfdXNlcl9tZW1iZXJvZignU3RhZmYsTWFuYWdlcnMnKX1IZWxsbyBDdXN0b21lcnsvaWZ9PC9jb2RlPjwvcHJlPgo8L3VsPgoKPGRpdiBjbGFzcz0id2FybmluZyI+CjxoMz5Qcml2YWN5IFdhcm5pbmc6PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBsb2cgdGhlIElQIGFkZHJlc3Mgb2YgdXNlcnMuIFRoaXMgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBEby1Ob3QtVHJhY2sgcG9saWNpZXMsIGFuZCBtYXkgYnJlYWsgc29tZSBsYXdzLiAgPHN0cm9uZz5Vc2UgQXQgWW91ciBPd24gUmlzay48L3N0cm9uZz48L3A+CjxwPkFkZGl0aW9uYWxseSwgdGhlIGFkbWluaXN0cmF0b3IgaGFzIHRoZSBhYmlsaXR5IHRvIGNvbmZpZ3VyZSB0aGUgbW9kdWxlIHNvIHRoYXQgY29va2llcyBhcmUgdXNlZC4gIEhvd2V2ZXIgbm8gcGVyc29uYWwgaW5mb3JtYXRpb24gaXMgc3RvcmVkIGluIHRoZSBjb29raWVzIChpZiBlbmFibGVkKS4gIE9ubHkgYSBzeXN0ZW0gYXNzaWduZWQgdW5pcXVlIHVzZXIgaWRlbnRpZmVyLCBhbmQgYSBzZXNzaW9uIGlkZW50aWZpZXIuPC9wPgo8L2Rpdj4KCjxoMz5TZWUgQWxzbzo8L2gzPgo8dWw+CiAgPGxpPkN1c3RvbUNvbnRlbnQgLSA8ZW0+KGRlcHJlY2F0ZWQpPC9lbT4gUHJvdmlkZXMgc21hcnR5IHRhZ3MgYW5kIHV0aWxpdGllcyBmb3IgbW9yZSBmbGV4aWJsZSBjb250cm9sIG9mIHByb3RlY3RlZCBwYWdlcy48L2xpPgogIDxsaT5TZWxmUmVnaXN0cmF0aW9uIC0gUHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gYWxsb3cgdXNlcnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcywgaW5jbHVkaW5nIHBhaWQgcmVnaXN0cmF0aW9uIG9wdGlvbnMuPC9saT4KICA8bGk+Q0dVc2VyRGlyZWN0b3J5IC0gUHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gYnJvd3NlIGFuZCBzZWFyY2ggdGhyb3VnaCB0aGUgcHJvZmlsZSBpbmZvcm1hdGlvbiBvZiBrbm93biB1c2Vycy48L2xpPgo8L3VsPgoKPGgzPkVuY3J5cHRlZCBEYXRhOjwvaDM+CjxwPlRoZSBFbmNyeXB0ZWQgZmllbGQgZnVuY3Rpb25hbGl0eSBpcyBpbnRlbmRlZCB0byBzdG9yZSAoaW4gYSBzZWN1cmUgd2F5KSBwZXJzb25hbCBhbmQgcHJpdmF0ZSBkYXRhIHRoYXQgZXZlbiB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIHNob3VsZCBub3QgaGF2ZSBhY2Nlc3MgdG8uICBpLmU6IGl0ZW1zIHN1Y2ggYXMgQ3JlZGl0IENhcmQgaW5mb3JtYXRpb24uICBUaGUgb25seSBwZXJzb24gdGhhdCBzaG91bGQgYmUgYWJsZSB0byB2aWV3IGFuZCBlZGl0IHRoaXMgZGF0YSBpcyB0aGUgdXNlciBoaW1zZWxmLiAgIFRoaXMgZGF0YSBzaG91bGQgbm90IGJlIGV4cG9ydGVkIHRvIHBsYWluIHRleHQgZWl0aGVyLiAgVGhlIGRhdGEgY291bGQgaG93ZXZlciBiZSByZWFkIGFuZCB1c2VkIGJ5IG90aGVyIG1vZHVsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+ICBUaGVyZSBtYXkgYmUgYSBuZWVkIGZvciBhbiBhZGRpdGlvbmFsIG1vZHVsZSB0byBkaXNwbGF5IHRoZSB1bmVuY3J5cHRlZCBmb3JtIG9mIGVuY3J5dHBlZCB1c2VyIGluZm9ybWF0aW9uLCBob3dldmVyIHRoZSBGRVUgbW9kdWxlIGRvZXMgbm90IG5lZWQgaXQuPC9wPgoKPGgzPkZBUTwvaDM+Cjx1bD4KICA8bGk+PHN0cm9uZz5ROjwvc3Ryb25nPiBXaHkgY2FuJ3QgSSBjcmVhdGUgYSBncm91cAogICAgPHA+PHN0cm9uZz5BOjwvc3Ryb25nPiBHcm91cHMgY2FuJ3QgYmUgY3JlYXRlZCB1bnRpbGwgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGlzIGNyZWF0ZWQuPC9wPgogIDwvbGk+CiAgPGxpPjxzdHJvbmc+UTo8L3N0cm9uZz4gV2h5IGNhbid0IEkgZGVsZXRlIGEgcHJvcGVydHkKICAgIDxwPjxzdHJvbmc+QTo8L3N0cm9uZz4gQSBwcm9wZXJ0eSBjYW4gb25seSBiZSBkZWxldGVkIGlmIGl0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IGdyb3VwcyBhcyByZXF1aXJlZCBvciBoaWRkZW4uICBBZGRpdGlvbmFsbHksIHByb3BlcnRpZXMgY3JlYXRlZCBieSBvdGhlciBtb2R1bGVzIGNhbm5vdCBiZSBkZWxldGVkLjwvcD4KICA8L2xpPgogIDxsaT48c3Ryb25nPlE6PC9zdHJvbmc+IFNldHRpbmcgcHJvcGVydHkgb3JkZXIgZG9lc24ndCBzZWVtIHRvIHdvcmsKICA8cD48c3Ryb25nPkE6PC9zdHJvbmc+IFRoZSBwZXJjaWV2ZWQgcHJvcGVydHkgb3JkZXIgd2lsbCBjaGFuZ2UgZWFjaCB0aW1lIHRoZSBncm91cCBpcyBlZGl0ZWQuICBUaGUgcHJvcGVydGllcyB0aGF0IGFyZSBtYXJrZWQgYXMgJnF1b3Q7b2ZmJnF1b3Q7IHdpbGwgYWx3YXlzIGJlIGRpc3BsYXllZCBhdCB0aGUgYm90dG9tLCBidXQgdGhlIHNvcnQgb3JkZXIgb2Ygb3RoZXIgcHJvcGVydGllcyB3aWxsIGJlIHJldGFpbmVkLjwvcD4KICA8L2xpPgo8L3VsPgoKPGgzPlRpcHM8L2gzPgo8dWw+CiAgPGxpPkR5bmFtaWMgTmF2aWdhdGlvbnM6CiAgICA8cD5JbiBtb3N0IGNpcmN1bXN0YW5jZXMgeW91IGNhbm5vdCBhbGxvdyBicm93c2VyIGNhY2hpbmcgb24gYW55IHBhZ2UgdGhhdCBoYXMgYSBkeW5hbWljIG5hdmlnYXRpb24uLi4gdGhlIHR3byBzaG91bGQgbm90IGJlIG1peGVkLjwvcD4KICA8L2xpPgogIDxsaT5SZWRpcmVjdCBQcmVmZXJlbmNlcyBhbmQgeyR1c2VybmFtZX06CiAgICA8cD5JZiB1c2luZyB0aGUgPGNvZGU+eyR1c2VybmFtZX08L2NvZGU+IHNtYXJ0eSB2YXJpYWJsZSBpbiBhbnkgb2YgdGhlIHJlZGlyZWN0IHByZWZlcmVuY2VzIGluIHRoZSBGRVUgbW9kdWxlJ3MgJnF1b3Q7YnVpbHRpbiBhdXRoZW50aWNhdGlvbiZxdW90OyB0YWIgYmUgc3VyZSB0byB0dXJuIE9GRiB0aGUgJnF1b3Q7RW1haWwgaXMgVXNlcm5hbWUmcXVvdDsgcHJlZmVyZW5jZS48L3A+CiAgPC9saT4KPC91bD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhlIG1vZHVsZSBhdXRob3IgaXMgaW4gbm8gd2F5IG9ibGlnYXRlZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoaXMgY29kZSBpbiBhbnkgZmFzaGlvbi4gIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5BIGJ1ZyB0cmFja2luZyBhbmQgZmVhdHVyZSByZXF1ZXN0IHN5c3RlbSBoYXMgYmVlbiBjcmVhdGVkIGZvciB0aGlzIG1vZHVsZSA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zyb250ZW5kdXNlcnMiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+UGFyYW1ldGVyczwvaDM+Cjx1bD4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWN0aW9uPSJkZWZhdWx0IgogIDxwPkFjdGlvbnM6PC9wPgogIDx1bD4KICAgIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gVGhlIGRlZmF1bHQgYWN0aW9uLiAgSWYgdGhlIHVzZXIgaXMgbG9nZ2VkIGluLCB0aGUgbG9nb3V0Zm9ybSBhY3Rpb24gd2lsbCBiZSBkaXNwbGF5ZWQuICBJZiB0aGUgdXNlciBpcyBub3QgbG9nZ2VkIGluIHRoZSBsb2dpbiBhY3Rpb24gd2lsbCBiZSBjYWxsZWQuCiAgICA8bGk+PGVtPmxvZ2luPC9lbT4gLSBEaXNwbGF5IHRoZSBsb2dpbiBmb3JtLjwvbGk+CiAgICA8bGk+PGVtPmxvZ291dGZvcm08L2VtPiAtIERpc3BsYXkgb3V0cHV0IGFib3V0IHlvdXIgY3VycmVudCB1c2VybmFtZSwgYW5kIGFjdGlvbnMgdG8gY2hhbmdlIHlvdXIgc2V0dGluZ3MsIG9yIGxvZ291dC4gIElmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4sIHRoaXMgYWN0aW9uIGRvZXMgbm90aGluZy48L2xpPgogICAgPGxpPjxlbT5jaGFuZ2VzZXR0aW5nczwvZW0+IC0gRGlzcGxheSB0aGUgY2hhbmdlIHNldHRpbmdzIGZvcm0gZm9yIGxvZ2dlZCBpbiB1c2Vycy4gIElmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4sIHRoaXMgYWN0aW9uIGRvZXMgbm90aGluZy48L2xpPgogICAgPGxpPjxlbT5mb3Jnb3RwdzwvZW0+IC0gRGlzcGxheSB0aGUgZm9yZ290IHBhc3N3b3JkIGZvcm0uPC9saT4KICAgIDxsaT48ZW0+c2lsZW50IChkZXByZWNhdGVkKTwvZW0+IC0gQ3JlYXRlcyBhbmQgYXNzaWducyBzb21lIHNtYXJ0eSB2YXJpYWJsZXMgY29udGFpbmluZyBpbmZvIGFib3V0IHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIuPC9saT4KICAgIDxsaT48ZW0+bG9zdHVzZXJuYW1lPC9lbT4gLSBEaXNwbGF5IHRoZSBsb3N0dXNlcm5hbWUgZm9ybSAoaWYgdGhlIHN5c3RlbSBpcyBwcm9wZXJseSBzZXR1cCB0byBoYW5kbGUgbG9zdCB1c2VybmFtZSByZXF1ZXN0cywgYW5kIHRoZSB1c2VyIGlzIG5vdCBjdXJyZW50bHkgbG9nZ2VkIGluLjwvbGk+CiAgICA8bGk+PGVtPnJlc2V0X3Nlc3Npb248L2VtPiAtIFByb3ZpZGUgYSBqYXZhc2NyaXB0IGNvbnRyb2xsZWQgdGVtcGxhdGUgdG8gYWxsb3cgdGhlIG1hbnVhbCwgb3IgYXV0b21hdGljIHBpbmdpbmcgb2YgdGhlIHVzZXIgc2Vzc2lvbi4gIFRoaXMgdGVtcGxhdGUgY2FuIGJlIHVzZWQgdG8gcmVtaW5kIHRoZSB1c2VyIHRoYXQgaGlzIGxvZ2luIHNlc3Npb24gaXMgYWJvdXQgdG8gZXhwaXJlLCBhbmQgdG8gdHJpZ2dlciBpdHMgcmVzZXQuICBOb3JtYWxseSB0aGlzIG1ldGhvZCBpcyBub3QgcmVxdWlyZWQgYXMgYW55IHBhZ2UgdGhhdCBkaXNwbGF5cyB0aGUgRnJvbnRFbmRVc2VyIGNvbnRyb2xzIHdvdWxkIGhhbmRsZSB0aGlzLCBqdXN0IHJlcXVpcmluZyB0aGUgdXNlciB0byB2aWV3IGEgcGFnZSBvbiBhIHJlZ3VsYXIgYmFzaXMuICBIb3dldmVyLCBpZiB0aGVyZSBhcmUgcGFnZXMgd2l0aCBhbG90IG9mIGNvbnRlbnQgcmVxdWlyaW5nIGV4dGVuc2l2ZSByZWFkaW5nLCB0aGlzIG1heSBiZSBhIHVzZWZ1bCBzb2x1dGlvbi48L2xpPgogICAgPGxpPjxlbT52aWV3dXNlcjwvZW0+IC0gRGlzcGxheSBhIHJlcG9ydCBmb3IgYSBzaW5nbGUgdXNlciwgcmVxdWlyZXMgdXNlIG9mIHRoZSB1aWQgcGFyYW1ldGVyLjwvbGk+CiAgPC91bD4KPC9saT4KCjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZvcm09Im5hbWUiCjxwPkZvcm1zOjwvcD4KPGRpdiBjbGFzcz0id2FybmluZyI+Tm90ZTogVGhlIGZvcm0gcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQuICBQbGVhc2UgdXMgdGhlIHN0YW5kYXJkIGFjdGlvbiBwYXJhbWV0ZXIgZm9yIGFjY2Vzc2luZyBkaWZmZXJlbnQgRkVVIGZvcm1zIGRpcmVjdGx5LjwvZGl2Pgo8dWw+CiA8bGk+PGVtPmxvZ2luPC9lbT4gLSBEaXNwbGF5IHRoZSBsb2dpbiBmb3JtIDxlbT4oc2VlIGFjdGlvbj1sb2dpbik8L2VtPjwvbGk+CiA8bGk+PGVtPmxvZ291dDwvZW0+IC0gRGlzcGxheSB0aGUgbG9nb3V0IGZvcm0gPGVtPihzZWUgYWN0aW9uPWxvZ291dGZvcm0pPC9lbT48L2xpPgogPGxpPjxlbT5jaGFuZ2VzZXR0aW5nczwvZW0+IC0gRGlzcGxheSB0aGUgY2hhbmdlIHNldHRpbmdzIGZvcm0gPGVtPihzZWUgYWN0aW9uPWNoYW5nZXNldHRpbmdzKTwvZW0+PC9saT4KIDxsaT48ZW0+Zm9yZ290cHc8L2VtPiAtIERpc3BsYXkgdGhlIGZvcmdvdCBwYXNzd29yZCBmb3JtIDxlbT4oc2VlIGFjdGlvbj1mb3Jnb3Rwdyk8L2VtPjwvbGk+CiA8bGk+PGVtPmxvc3R1c2VybmFtZTwvZW0+IC0gRGlzcGxheSB0aGUgbG9zdCB1c2VybmFtZSBmb3JtLiA8ZW0+KHNlZSBhY3Rpb249bG9zdHVzZXJuYW1lKTwvZW0+PC9saT4KPGxpPjxlbT5zaWxlbnQ8L2VtPiA9ICA8ZW0+KHNlZSBhY3Rpb249c2lsZW50KTwvZW0+IERpc3BsYXkgbm90aGluZywgYnV0IGV4cG9ydCBwcm9wZXJ0aWVzIGFuZCBvdGhlciBzbWFydHkgdmFyaWFibGVzIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyLiAgSWYgbm8gdXNlciBpcyBsb2dnZWQgaW4sIHRoZW4gbm8gdmFyaWFibGVzIGFyZSBleHBvcnRlZC48L2xpPgo8L3VsPgo8L2xpPgoKPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcmV0dXJudG89InBhZ2UiCiAgPHA+VXNlZCB3aXRoIHRoZSBsb2dpbiwgbG9nb3V0LCBhbmQgY2hhbmdlc2V0dGluZ3MgZm9ybXMsIHRoaXMgcGFyYW1ldGVyIGNvbnRhaW5zIHRoZSBwYWdlIGlkIG9yIGFsaWFzIG9mIGEgcGFnZSB0byByZWRpcmVjdCB0bywgd2hlbiB0aGUgZm9ybSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY29tcGxldGVkPC9wPgogIDxwPk5vdGU6IFRoYXQgb24gbG9naW4gdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMuPC9wPgo8L0xJPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBvbmx5X2dyb3Vwcz0iZ3JvdXAxLCBncm91cDIsIGdyb3VwMyIKICAgPHA+VXNlZCB3aXRoIHRoZSBsb2dpbiBmb3Jtcy4gIEJhc2ljYWxseSBvbmx5IGFsbG93cyB1c2VycyB0byBsb2dpbiBpZiB0aGV5IGJlbG9uZyB0byB0aGF0IHBhcnRpY3VsYXIgZ3JvdXAocykuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsb3N0dW5fZ3JvdXA9Imdyb3VwIgogICA8cD5Vc2VkIHdpdGggdGhlIGxvc3R1c2VybmFtZSBmb3JtLCB0aGlzIGZlYXR1cmUgc3BlY2lmaWVzIHRoZSBmcm9udGVuZCB1c2VyIGdyb3VwIHRvIGFzc3VtZSB0aHQgdXNlcnMgYXJlIG1lbWJlcnMgb2YuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub2NhcHRjaGE9IjEiCiAgPHA+VXNlZCB3aXRoIHRoZSBsb2dpbiBhbmQgdmVyaWZ5IGZvcm1zLCBUaGlzIHdpbGwgZGlzYWJsZSBjYXB0Y2hhIG9uIHRoZSBmb3JtLiBCeSBkZWZhdWx0LCBpZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLCB2YWxpZGF0aW9uIG9mIGEgY2FwdGNoYSBpbWFnZSB3aWxsIGJlIHJlcXVpcmVkIGZvciBsb2dpbi4gIFRoaXMgaXMgYSBzZWN1cml0eSBtZWFzdXJlIGludGVudGVkIHRvIHByZXZlbnQgYnJ1dGUgZm9yY2UgYXR0YWNrcy48L3A+CjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHVpZD1udWxsCiAgPHA+VXNlZCB3aXRoIHRoZSB2aWV3dXNlciBhY3Rpb24uICBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCB0byBzcGVjaWZ5IHdoaWNoIHVzZXIgdG8gdmlldyB0aGUgZGV0YWlscyBvZi48L3A+CjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGlubGluZT10cnVlCiAgPHA+VXNlZCB3aXRoIHRoZSBsb2dpbiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSByZXN1bHQgb2YgdGhlIGZvcm0gc3VibWlzc2lvbiBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgaW5wdXQgdGFnLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbG9naW50ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBsb2dpbiBmb3JtIHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgb2YgYSBkaWZmZXJlbnQgb25lLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbG9nb3V0dGVtcGxhdGU9c3RyaW5nCiAgPHA+VGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgbG9nb3V0IHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgb2YgYSBkaWZmZXJlbnQgb25lLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2hhbmdlc2V0dGluZ3N0ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBjaGFuZ2VzZXR0aW5ncyBmb3JtIHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgb2YgYSBkaWZmZXJlbnQgb25lLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9yZ290cHd0ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBmb3Jnb3QgcGFzc3dvcmQgZm9ybSB0ZW1wbGF0ZSB3aXRoIHRoZSBuYW1lIG9mIGEgZGlmZmVyZW50IG9uZS48L3A+CjwvbGk+CjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxvc3R1bnRlbXBsYXRlPXN0cmluZwogIDxwPlRoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVycmlkaW5nIHRoZSBsb3N0IHVzZXJuYW1lIGZvcm0gdGVtcGxhdGUgd2l0aCB0aGUgbmFtZSBvZiBhIGRpZmZlcmVudCBvbmUuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiB2aWV3dXNlcnRlbXBsYXRlPXN0cmluZwogIDxwPlRoaXMgcGFyYW1ldGVyIGFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHZpZXd1c2VyIHRlbXBsYXRlIHdpdGggdGhlIG5hbWUgb2YgYSBkaWZmZXJlbnQgb25lLjwvcD4KPC9saT4KPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gYWZ0ZXJ2ZXJpZnl0ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBhZnRlciB2ZXJpZmljYXRpb24gdGVtcGxhdGUgd2l0aCB0aGUgbmFtZSBvZiBhIGRpZmZlcmVudCBvbmUuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiByZXNldHNlc3Npb250ZW1wbGF0ZT1zdHJpbmcKICA8cD5UaGlzIHBhcmFtZXRlciBhbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCByZXNldCBzZXNzaW9uIGZvcm0gdGVtcGxhdGUgd2l0aCB0aGUgbmFtZSBvZiBhIGRpZmZlcmVudCBvbmUuPC9wPgo8L2xpPgo8bGk+PGVtPihvcHRpb25hbCk8L2VtPiB2ZXJpZnlmb3JtdGVtcGxhdGU9c3RyaW5nCiAgPHA+VGhpcyBwYXJhbWV0ZXIgYWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgdmVyaWZpY2F0aW9uIGZvcm0gdGVtcGxhdGUgd2l0aCB0aGUgbmFtZSBvZiBhIGRpZmZlcmVudCBvbmUuPC9wPgo8L2xpPgo8L3VsPgo8cD48c3Ryb25nPlRpcDo8L3N0cm9uZz4gWW91IGNhbiB1c2UgdGhlIHtjZ2VfbW9kdWxlX2hpbnR9IHBsdWdpbiBmcm9tIENHRXh0ZW5zaW9ucywgb3IgdGhlIHtjbXNfbW9kdWxlX2hpbnR9IHBsdWdpbiBpbiBDTVNNUyAyLjAgdG8gc2V0IHRoZXNlIHBhcmFtZXRlcnMgb24gYSBnbG9iYWwsIHBlci1wYWdlLXRlbXBsYXRlLCBvciBwZXItcGFnZSBiYXNpcyB3aXRob3V0IGhhdmluZyB0byBhZGp1c3QgZXZlcnkgY2FsbCwgYW5kIHdoaWxlIHN0aWxsIG1haW50YWluaW5nIHByZXR0eSBVUkwncy48L3A+Cgo8aDM+VXNpbmcgRGlmZmVyZW50IFRlbXBsYXRlcy48L2gzPgo8cD5BcyBvZiBGRVUgMS4zMCBpdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IGRpZmZlcmVudCB0ZW1wbGF0ZXMgZm9yIG1hbnkgb2YgdGhlIEZFVSBtb2R1bGUgdGVtcGxhdGVzLiAgSXQgaXMgYWxzbyBmbGV4aWJsZS4gIFlvdSBjYW4gdXNlIGdsb2JhbCBjb250ZW50IGJsb2Nrcywgb3IgZmlsZSBiYXNlZCB0ZW1wbGF0ZXMgb3IKIGFueSBvdGhlciBzbWFydHkgcmVzb3VyY2UgYXMgYSB0ZW1wbGF0ZS48L3A+Cjx1bD4KICA8bGk+VGVtcGxhdGUgbmFtZXMgZW5kaW5nIHdpdGggLnRwbAogICAgPHA+SWYgdGhlIHNwZWNpZmllZCB0ZW1wbGF0ZSBuYW1lIGlzIG5vdCBhIHNtYXJ0eSByZXNvdXJjZSwgYnV0IGVuZHMgd2l0aCB0aGUgZXh0ZW5zaW9uIDxjb2RlPi50cGw8L2NvZGU+LCB0aGVuIEZFVSAoYWN0dWFsbHkgQ0dFeHRlbnNpb25zKSB3aWxsIGFzc3VtZSB0aGF0IHlvdSB3YW50IGEgZmlsZSB0ZW1wbGF0ZSBmcm9tIHRoZSBtb2R1bGUgZGlyZWN0b3J5LCBvciBmcm9tIHRoZSBtb2R1bGVfY3VzdG9tIGRpcmVjdG9yeSA8ZW0+KHNlZSA8YSBocmVmPSJodHRwOi8vZG9jcy5jbXNtYWRlc2ltcGxlLm9yZyI+aHR0cDovL2RvY3MuY21zbWFkZXNpbXBsZS5vcmc8L2E+IGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBtb2R1bGVfY3VzdG9tIHN0dWZmKTwvZW0+LgogIDwvbGk+CiAgPGxpPmdsb2JhbGNvbnRlbnQ6Z2NiX25hbWUKICAgIDxwPlNwZWNpZnlpbmcgYSB0ZW1wbGF0ZSBpbiB0aGlzIHN5bnRheCBhbGxvd3MgeW91IHRvIHVzZSBhIGdsb2JhbCBjb250ZW50IGJsb2NrIGFzIGFzIHJlcGxhY2VtZW50IHRlbXBsYXRlLjwvcD4KICA8L2xpPgogIDxsaT50ZW1wbGF0ZTpnY2JfbmFtZQogICAgPHA+U3BlY2lmeWluZyBhIHRlbXBsYXRlIGluIHRoaXMgc3ludGF4IGFsbG93cyB5b3UgdG8gdXNlIGEgcGFnZSB0ZW1wbGF0ZSBhcyBhcyByZXBsYWNlbWVudCB0ZW1wbGF0ZS48L3A+CiAgPC9saT4KICA8bGk+Y21zX3RlbXBsYXRlOm5hbWUgPGVtPihDTVNNUyAyLjAgb25seSk8L2VtPgogICAgPHA+U3BlY2lmeWluZyBhIHRlbXBsYXRlIGluIHRoaXMgc3ludGF4IGFsbG93cyB5b3UgdG8gdXNlIGEgdGVtcGxhdGUgZnJvbSB3aXRoaW4gRGVzaWduIE1hbmFnZXIgYXMgYXMgcmVwbGFjZW1lbnQgdGVtcGxhdGUuPC9wPgogIDwvbGk+CiAgPGxpPmZpbGU6ZmlsZW5hbWUudHBsCiAgICA8cD5Vc2luZyB0aGlzIHN5bnRheCBhbGxvd3MgeW91IHRvIHVzZSBhIGZpbGUgYmFzZWQgdGVtcGxhdGUgZnJvbSB3aXRoaW4gdGhlIHNtYXJ0eSB0ZW1wbGF0ZXMgZGlyIDxlbT4odXN1YWxseSB0bXAvdGVtcGxhdGVzKTwvZW0+LgogIDwvbGk+CjwvdWw+CjxwPlRoZXNlIG1ldGhvZHMgY2FuIGJlIHVzZWQgd2l0aCB0aGUgbG9naW50ZW1wbGF0ZSwgbG9nb3V0dGVtcGxhdGUsIGNoYW5nZXNldHRpbmdzdGVtcGxhdGUsIGFuZCBmb3Jnb3Rwd3RlbXBsYXRlIHBhcmFtZXRlcnMuPC9wPgo8cD5Ob3RlOiBUaGVzZSBwYXJhbWV0ZXJzIG1heSBub3QgYmUgcGFzc2VkIHRvIHRoZSB2YXJpb3VzIGZvcm1zIGZyb20gdGhlIHByaW1hcnkge0Zyb250RW5kVXNlcnN9IGNhbGwuICBJbnN0ZWFkLCB5b3Ugc2hvdWxkIHVzZSB0aGUge2NnZV9tb2R1bGVfaGludH0gdGFnIG9uIHRoZSBwYWdlIHdoZXJlIHRoZSB2YXJpb3VzIGZvcm1zIG9yIHZpZXdzIHdpbGwgYmUgZGlzcGxheWVkLiAgIGkuZTogIHtjZ2VfbW9kdWxlX2hpbnQgbW9kdWxlPUZyb250RW5kVXNlcnMgY2hhbmdlc2V0dGluZ3N0ZW1wbGF0ZT0nZ2xvYmFsX2NvbnRlbnQ6bXljaGFuZ2VzZXR0aW5ncyd9LjwvcD4KCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5SZXF1aXJlbWVudHM8L2gzPgo8cD5JbiBvcmRlciB0byBpbXBsZW1lbnQgdGhlIGZvcmdvdHRlbiBwYXNzd29yZCBmdW5jdGlvbmFsaXR5LCB0aGlzIG1vZHVsZSByZXF1aXJlcyB0aGUgQ01TTWFpbGVyIG1vZHVsZSB0byBiZSBwcmV2aW91c2x5IGluc3RhbGxlZCBhbmQgcHJvcGVybHkgY29uZmlndXJlZC48L3A+CjxwPkZvciBlbmNyeXB0ZWQgZmllbGRzIHRoZSBtY3J5cHQgZnVuY3Rpb25hbGl0eSBpcyByZXF1aXJlZC48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+Cg==]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/edit.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAOZ/ANfq//r+/ur0/+Xy/9/1/9rs/9bu/nehxf/+/fX///H4/+32/+j0/+P3/+bz/+Hw/3+ny3mgxV2XzViTyXqhxVuXzePx//z9/3eew3CYv/j7//r9//3+///+/9zu//f7//j8/3GZv/T6//b6/9/u/93u/+3+//b7/+Dv/1qTyVeY0HGYv/r8/8jf84etz26Xv1eTyfP4/+v1/uX1+FuY0NHq+q/L5IWhwVCKwG6fyun5/+n6/8DL2dzj6VaRyVqAp+T4//z+//T5//L5+9zt/6Kyxc/b5ODy/+Dn63ifxD9nkUdoj+P//1KKv9/v/52ww/D6/3KawfP6/1ORylGSzGOc0N/w/9fi64ykvJWmvPT9//f+/+Xx/////uH0/42ryf7+//7//1qQw0N1pkx5pYuetleNwFiVzePt8luWz+v7/9PZ41qX0J650MPM29ni6vH3++Lv/97u//b4+VJwllZzlVWTytjr/+Lx/16Bp+31/4Sdt+b4/3adw////////yH5BAEAAH8ALAAAAAAQABAAAAfjgH95BxQUGIeHfRERBz9/fyt+fgiSlX5dkhCPIX5rWZVgF35FPH6af0lIdWWSHEEgfk9LRi6PUQg9c5IXGx8fcG9DOY8ZlWEXLBonIgpQCRPEfh0dQRvKIgsDFiYp0R28GiNSC1x4cWrQf8UcGyAfMTLaKHI66ZwX4QoCDhZOJQVAYDx64YeDED0M5Hko4KGBj0dmAqCRsc+ClYUAWhiw80jMFTpYEjx4UOKOly9KbKR51MSPmz1aSJAgAuDIjTYmpjzC4WfLDBM7+DQgQKCGASZUHpGpwlSC0woVztBgo2LMn0AAOw==]]></data>
	</file>
	<file>
	  <filename>/icons/users.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAPYAAAxdeA1deA1eeA5hfA9ifRBifhBjfhBlgRJohBJsiBJsiRNuixJykRNzkhRykBV0kxR1lBZ1lBR5mRV8nRh7nBh8nBh8nRh9nRh/oBWAoheBoxmDpRqDpRiFpxqEphmFqBmGqRqGqBmHqhuHqhqIqxuIqxuKrRyLrxyMrx2QtR6QtB6Stx2bsx6dtR+TuB+TuR6ZuyGbwiGcwyGcxCKhyiOiyyOjyySjzCSkziWq1CWr1Saq1Caq1Se12iiw3Cix3Sm53im14iq45Su/5Su/5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEUALAAAAAAQABAAAAeCgEWCg0UtLISIgzBAREQ9iYg7QkFBQjaQgzs+mz6XmEU4O6I7M59FMjc2NzgppikyMbEfphsvtikQnxocKCgnJxuQFx8lIR4bGxzEHxKDDRgVFBQV1NHTGA2CDhAP3d7eEBAOggoL5ufo54IHCO3u7+0HgwQEBfb3+IkC+/wCAISBAAA7]]></data>
	</file>
	<file>
	  <filename>/icons/xml_rss.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhJAAOAOYAAP/////9+f/9+v/68f/58P/45P/24//z3v7x2/7v2v7pvP7os/7muf7nqP7ktf7lr/7jo/7iq/7jmf7frv7gnv7cq/7fiv7cmf7YlP3be/3eZP3bYP3Vm/3aX/7Uj/3VfP3WWv3Qiv3Rgv3VWf3UWP3SXPzQY/3Mhf3PUPzLU/zKW/3FafzHRvzDU/zESv3DXfzAYvzAPPy8S/68N/64Mvy2Qvy4M/6xKfywOvywKfypMfuoJvypH/yjKfukHPuhFfucE/uaE/uZC/+WBf+VBPuVCf2TAvuRAPuSAf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAEkALAAAAAAkAA4AAAf/gDdEREOFhoeIiYqHgjMbGpCRkpOUlZAdNIMkIJydnp+goZ+DKKWlDQWlGQUlpQUSphasKLKmtqWDLLq6KQALLAIGuwAAuwICJiwQxbvNLIMx0dIPAAoALtLEHzEqxCoxFADS49GDNufoNsQR6QABAzYMxC02FwDp+IM5+/w5BwAi+gHAAOAFAAcAZOQg2K/hIB4QI64AQABARB4AalQMUCMjDw8WL14c9KOkSQAIfACYcBIHDAAhcADA8SPETBw4dpgsOUiIT58VAAARwgGADp9GhQAQoiPpCWLEEvz0OQiJVas9glztUQSr1a5IenztQTbrVauDiBxZy7at27dwDd0SMZK2rt27ePPODQQAOw==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2NvZGUnXSA9ICdDb2RlJzsKJGxhbmdbJ3ZlcmlmeSddID0gJ1ZlcmlmeSc7CiRsYW5nWydpbmZvX3ZlcmlmeV9pZGVudGl0eSddID0gJ1BsZWFzZSBlbnRlciB0aGUgdmVyaWZpY2F0aW9uIGNvZGUgeW91IHJlY2VpdmVkIGluIHRoaXMgZm9ybSA8ZW0+KGl0IG1heSBldmVuIGF1dG9tYXRpY2FsbHkgYmUgcHJvdmlkZWQpLjwvZW0+IHRvIHZlcmlmeSB5b3VyIGFjY291bnQuJzsKJGxhbmdbJ3RpdGxlX2ZvcmdvdHB3ZW1haWwnXSA9ICdZb3UgaGF2ZSBtaXNwbGFjZWQgeW91ciBjcmVkcyc7CiRsYW5nWydtc2dfdmVyaWZpY2F0aW9uX2NvbXBsZXRlJ10gPSAnWW91IGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgdmVyaWZpZWQuICBUaGFuayB5b3UuPGJyLz5Zb3UgbWF5IG5lZWQgdG8gcmUtZW50ZXIgeW91ciBsb2dpbiBjcmVkZW50aWFscyB0byBhY2Nlc3Mgb3VyIHByb3RlY3RlZCBhcmVhcy4nOwokbGFuZ1snYWNjb3VudF92ZXJpZmljYXRpb24nXSA9ICdBY2NvdW50IFZlcmlmaWNhdGlvbic7CiRsYW5nWydwcm9tcHRfdmVyaWZ5X3BhZ2UnXSA9ICdQYWdlIElEL0FsaWFzIHRvIEhhbmRsZSB0aGUgVmVyaWZpY2F0aW9uIFByb2Nlc3MgKic7CiRsYW5nWydpbmZvX3ZlcmlmeWVtYWlsX3NlbnQnXSA9ICdWZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zIGhhdmUgYmVlbiBzZW50JzsKJGxhbmdbJ2Vycm9yX3ZhbGlkYXRlX2luc3VmZmljaWVudGluZm8nXSA9ICdUaGlzIHVzZXIgbXVzdCByZXZhbGlkYXRlIGhpbXNlbGYsIGJ1dCB0aGVyZSBpcyBub3QgZW5vdWdoIHVzZXIgaW5mb3JtYXRpb24gYXZhaWxhYmxlIHRvIG1ha2UgdGhhdCBwb3NzaWJsZS4nOwokbGFuZ1snaW5mb19tdXN0X3ZhbGlkYXRlJ10gPSAnVGhpcyB1c2VyIG11c3QgdmFsaWRhdGUgdGhlbXNlbHZlcyBiZWZvcmUgbG9nZ2luZyBpbic7CiRsYW5nWydmZXVfcHJvdGVjdGVkX2xvZ291dGxpbmsnXSA9ICdGRVUgTG9nb3V0IExpbmsnOwokbGFuZ1snaGRyX2J1bGtfc2V0cGFzc3dvcmQnXSA9ICdCdWxrIEFkanVzdCBVc2VyIFBhc3N3b3Jkcyc7CiRsYW5nWydpbmZvX2J1bGtfc2V0cGFzc3dvcmQnXSA9ICdUaGlzIGZvcm0gYWxsb3dzIGV4cGxpY2l0bHkgc2V0dGluZyB0aGUgcGFzc3dvcmQgZm9yIHNlbGVjdGVkIHVzZXJzLiAgVGhlIHVzZXJzIGFyZSBub3Qgc2VudCBhbiBlbWFpbCBpbmRpY2F0aW5nIHRoYXQgdGhlaXIgcGFzc3dvcmQgaGFzIGNoYW5nZWQuICBUaGUgcGFzc3dvcmQgc3BlY2lmaWVkIG11c3QgY29uZmlybSB0byB0aGUgcGFzc3dvcmQgcnVsZXMgaW4gdGhlIG1vZHVsZSBzZXR0aW5ncy4nOwokbGFuZ1snaGRyX2J1bGtfc2V0ZXhwaXJ5J10gPSAnQnVsayBBZGp1c3QgVXNlciBFeHBpcnknOwokbGFuZ1snaW5mb19idWxrX3NldGV4cGlyeSddID0gJ1RoaXMgZm9ybSBhbGxvd3MgYWRqdXN0aW5nIHRoZSBleHBpcnkgZGF0ZSBmb3IgdGhlIHNlbGVjdGVkIHVzZXJzLiAgRXhwaXJlZCB1c2VycyBjYW5ub3QgbG9naW4gdG8gdGhlIHRoZSB3ZWJzaXRlLiAgSXQgaXMgcG9zc2libGUgdG8gc2V0IGFuIGV4cGlyeSBkYXRlIHRvIHRoZSBwYXN0JzsKJGxhbmdbJ2J1bGtfZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2J1bGtfZGlzYWJsZSddID0gJ0Rpc2FibGUnOwokbGFuZ1snYnVsa19lbmFibGUnXSA9ICdFbmFibGUnOwokbGFuZ1snYnVsa19mb3JjZWNocHcnXSA9ICdGb3JjZSBwYXNzd29yZCBjaGFuZ2UnOwokbGFuZ1snYnVsa19zZXRwYXNzd29yZCddID0gJ1NldCBhIG5ldyBwYXNzd29yZCc7CiRsYW5nWydidWxrX3NldGV4cGlyeSddID0gJ1NldCBleHBpcnkgZGF0ZSc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnV2l0aCBzZWxlY3RlZCc7CiRsYW5nWydidWxrX3NlbGVjdG9uZSddID0gJ1BsZWFzZSBzZWxlY3Qgb25lIG9yIG1vcmUgdXNlcnMnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJwYXNzd29yZCddID0gJ1BsZWFzZSBlbnRlciBhIHBhc3N3b3JkJzsKJGxhbmdbJ3RwbHR5cGVfY2hzZXR0aW5nc19mb3JtJ10gPSAnQ2hhbmdlIFNldHRpbmdzIEZvcm0nOwokbGFuZ1sndHBsdHlwZV9mb3Jnb3RfcGFzc3dvcmRfZm9ybSddID0gJ0ZvcmdvdCBQYXNzd29yZCBGb3JtJzsKJGxhbmdbJ3RwbHR5cGVfZm9yZ290X3Bhc3N3b3JkX2VtYWlsJ10gPSAnRm9yZ290IFBhc3N3b3JkIEVtYWlsJzsKJGxhbmdbJ3RwbHR5cGVfdmVyaWZ5X2VtYWlsJ10gPSAnVmVyaWZpY2F0aW9uIEVtYWlsJzsKJGxhbmdbJ3RwbHR5cGVfZm9yZ290X3Bhc3N3b3JkX3ZlcmlmeSddID0gJ0ZvcmdvdHRlbiBQYXNzd29yZCBWZXJpZnkgRm9ybSc7CiRsYW5nWyd0cGx0eXBlX2ZvcmNlX25ld19wYXNzd29yZCddID0gJ0ZvcmNlIE5ldyBQYXNzd29yZCc7CiRsYW5nWyd0cGx0eXBlX2xvc3RfdXNlcm5hbWVfZm9ybSddID0gJ0xvc3QgVXNlcm5hbWUgRm9ybSc7CiRsYW5nWyd0cGx0eXBlX2xvc3RfdXNlcm5hbWVfY29uZmlybSddID0gJ0xvc3QgVXNlcm5hbWUgQ29uZmlybSBGb3JtJzsKJGxhbmdbJ3RwbHR5cGVfdmVyaWZ5X2Zvcm0nXSA9ICdBY2NvdW50IFZlcmlmaWNhdGlvbiBGb3JtJzsKJGxhbmdbJ3RwbHR5cGVfdmlld191c2VyJ10gPSAnVmlldyBVc2VyJzsKJGxhbmdbJ3RwbHR5cGVfcmVzZXRfc2Vzc2lvbiddID0gJ1Jlc2V0IFNlc3Npb24nOwokbGFuZ1snbXNnX3VzZXJhZGRlZCddID0gJ05ldyB1c2VyIGFkZGVkIHN1Y2Nlc3NmdWxseSc7CiRsYW5nWydtc2dfdXNlcm1vZGlmaWVkJ10gPSAnVXNlciBkZXRhaWxzIGhhdmUgYmVlbiB1cGRhdGVkJzsKJGxhbmdbJ2Vycm9yX2ZsZHZhbGxlbmd0aCddID0gJ1RoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yICVzIHRvbyBsb25nJzsKJGxhbmdbJ3RpdGxlX2FkbWlubmF2X3NldHRpbmdzJ10gPSAnRnJvbnRFbmRVc2VycyBTZXR0aW5ncyc7CiRsYW5nWydkZXNjX2FkbWlubmF2X3NldHRpbmdzJ10gPSAnU2V0dGluZ3MgZm9yIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSc7CiRsYW5nWyd0cGx0eXBlX0Zyb250RW5kVXNlcnMnXSA9ICdGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ3RwbHR5cGVfbG9naW5fZm9ybSddID0gJ0xvZ2luIEZvcm0nOwokbGFuZ1sndHBsdHlwZV9sb2dvdXRfZm9ybSddID0gJ0xvZ291dCBGb3JtJzsKJGxhbmdbJ3Byb21wdF9mb3InXSA9ICdGb3InOwokbGFuZ1sncHJvbXB0X2ZvcmNlX2Noc2V0dGluZ3MnXSA9ICdGb3JjZSB0aGUgdXNlciB0byBjaGFuZ2Ugc2V0dGluZ3Mgb24gdGhlIG5leHQgbG9naW4nOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3JldmFsaWRhdGUnXSA9ICdUaGlzIHVzZXIgbXVzdCB2YWxpZGF0ZSB0aGVtZXNlbHZlcyBiZWZvcmUgdGhlIG5leHQgbG9naW4nOwokbGFuZ1snZmV1X3Byb3RlY3RlZF9zZWN0aW9uaGVhZCddID0gJ1Byb3RlY3RlZCBTZWN0aW9uSGVhZGVyJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9iYWRwYXNzd29yZCddID0gJ1NvcnJ5Li4uIGJ1dCB0aGUgcGFzc3dvcmQgeW91IHByb3ZpZGVkIGlzIGluY29ycmVjdC4nOwokbGFuZ1snZXJyb3JfbG9zdHVuX3VzZXJub3Rmb3VuZCddID0gJ1NvcnJ5Li4uIGdpdmVuIHRoZSBpbmZvcm1hdGlvbiB5b3UgcHJvdmlkZWQuLi4gd2UgY291bGQgbm90IGZpbmQgeW91ciB1c2VyIGFjY291bnQnOwokbGFuZ1snZXJyb3JfbG9zdHVuX25vZGF0YSddID0gJ1lvdSBkaWQgbm90IGVudGVyIHN1ZmZpY2llbnQgZGF0YSBpbnRvIHRoZSBsb3N0IHVzZXJuYW1lIGZvcm0gZm9yIHVzIHRvIGJlIGFibGUgdG8gZmluZCB5b3VyIGFjY291bnQgaW4gb3VyIGRhdGFiYXNlLic7CiRsYW5nWydpbmZvX2xvc3R1bl90ZXh0ZmllbGQnXSA9ICdJZiB5b3UgY2FuIHJlY2FsbCBhIHBvcnRpb24gb2YgdGhlIHRleHQgZm9yIHRoaXMgZmllbGQgcGxlYXNlIGVudGVyIGl0IGhlcmUgKG1pbmltdW0gb2YgNCBjaGFyYWN0ZXJzIG5vdCBpbmNsdWRpbmcgd2hpdGVzcGFjZSknOwokbGFuZ1snaW5mb19sb3N0dW5fdGV4dGFyZWEnXSA9ICdJZiB5b3UgY2FuIHJlY2FsbCBzb21lIG9mIHRoZSB0ZXh0IHlvdSBtYXkgaGF2ZSBlbnRlcmVkIGluIHRoaXMgZmllbGQsIHBsZWFzZSBlbnRlciBhIHBvcnRpb24gb2YgaXQgaGVyZS4gIFRoaXMgd2lsbCBjcmVhdGUgYSBzdWJzdHJpbmcgc2VhcmNoLiAgWW91IG11c3QgZW50ZXIgYXQgbGVhc3QgNCBjaGFyYWN0ZXJzLic7CiRsYW5nWydpbmZvX2xvc3R1bl9lbWFpbCddID0gJ0lmIHRoZXJlIGFyZSBtdWx0aXBsZSBlbWFpbCBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIHlvdXIgYWNjb3VudCwgdHJ5IHRvIGVudGVyIGF0IGxlYXN0IG9uZSBvZiB0aGVtIGhlcmUuICBUaGlzIGNhbiBhaWRlIGluIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIHlvdSc7CiRsYW5nWydpbmZvX2xvc3R1c2VybmFtZSddID0gJzxwPlNvLi4uIHlvdSBzZWVtIHRvIGhhdmUgZm9yZ290dGVuIG9yIGxvc3QgdGhlIHVzZXJuYW1lIG9yIGVtYWlsIGFkZHJlc3MgeW91IHVzZWQgdG8gbG9naW4gdG8gdGhpcyBhY2NvdW50IHdpdGguICBEb25cJ3QgRnJldCwgd2UgY2FuIGhlbHAuPC9wPjxwPkVudGVyIGFzIG11Y2ggaW5mb3JtYXRpb24gYXMgcG9zc2libGUgaW50byB0aGlzIGZvcm0sIGFuZCB3ZSB3aWxsIHNlZSBpZiB3ZSBjYW4gdW5pcXVlbHkgaWRlbnRpZnkgeW91IGFuZCBmaW5kIHlvdSB5b3VyIGxvZ2luIG5hbWUuPC9wPic7CiRsYW5nWydlcnJvcl95b3VhcmVhYm90J10gPSAnSG1tbS4uLiBpdCBsb29rcyBsaWtlIHlvdSBtYXkgYmUgYSBib3QsIG9yIHRyeWluZyBzb21ldGhpbmcgbmVmYXJpb3VzLi4uJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZXByb3AnXSA9ICdBbiBlcnJvciBvY2N1cnJlZCBkZWxldGluZyB0aGUgcHJvcGVydHknOwokbGFuZ1snZXJyb3JfYWN0aW9uX25vdGNvbmZpcm1lZCddID0gJ09vcHMuICBJdCBsb29rcyBsaWtlIHlvdSBmYWlsZWQgdG8gY29uZmlybSBhbiBpbXBvcnRhbnQgYWN0aW9uLic7CiRsYW5nWydtc2dfY29uZmlybV9kZWxldGVwcm9wJ10gPSAnWW91IG11c3Qgc2VsZWN0ICZxdW90O1llcyZxdW90OyBpbiB0aGUgY29uZmlybWF0aW9uIGJveCB0byBjb25maXJtIHRoYXQgeW91IHdpc2ggdG8gZGVsZXRlIHRoaXMgcHJvcGVydHkuJzsKJGxhbmdbJ3Byb21wdF9jb25maXJtX2RlbGV0ZXByb3AnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgcHJvcGVydHk/JzsKJGxhbmdbJ3dhcm5fZGVsZXRlcHJvcCddID0gJzxzdHJvbmc+VXNlIENhdXRpb248L3N0cm9uZz4gRGVsZXRpbmcgYSBwcm9wZXJ0eSB3aWxsIGRlbGV0ZSBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggYW55IHVzZXJzIGZvciB0aGlzIHByb3BlcnR5LiAgSXQgd2lsbCBhbHNvIHJlbW92ZSB0aGlzIHByb3BlcnR5IGZyb20gYWxsIGdyb3VwIHJlbGF0aW9ucy4nOwokbGFuZ1snaGRyX2RlbGV0ZXByb3AnXSA9ICdEZWxldGUgUHJvcGVydHknOwokbGFuZ1snbXNnX2NhbmNlbGxlZCddID0gJ09wZXJhdGlvbiBjYW5jZWxsZWQnOwokbGFuZ1snZXJyb3JfZGVsZXRlX3Byb3BkZWZuJ10gPSAnU29ycnksIGJ1dCB0aGlzIHByb3BlcnR5IGNhbm5vdCBiZSBkZWxldGVkLiAgQXMgaXQgaXMgYXNzb2NpYXRlZCBhcyByZXF1aXJlZCwgb3IgaGlkZGVuIHdpdGggb25lIG9yIG1vcmUgdXNlciBncm91cHMuICBPbmx5IG9wdGlvbmFsL29mZiBwcm9wZXJ0aWVzIGNhbiBiZSBkZWxldGVkLic7CiRsYW5nWyd0aXRsZV9hZGRfdXNlciddID0gJ0NyZWF0ZSBhIG5ldyB1c2VyIGFjY291bnQnOwokbGFuZ1snaW5mb19wYXNzd29yZF9yZXNldCddID0gJ1lvdXIgcGFzc3dvcmQgaGFzIHN1Y2Nlc3NmdWxseSBiZWVuIHJlc2V0LiAgUGxlYXNlIGxvZ2luIHRvIGNvbnRpbnVlLic7CiRsYW5nWydlcnJvcl9wYXNzd29yZG5vdGNoYW5nZWQnXSA9ICdQbGVhc2UgZW5zdXJlIHlvdSBjaGFuZ2UgeW91ciBwYXNzd29yZCB0byBhIG5ldyB2YWx1ZSwgYW5kIHZlcmlmeSB0aGF0IGl0IGlzIGNvcnJlY3QuJzsKJGxhbmdbJ21zZ19mb3JjZV9uZXdwdyddID0gJ1dlbGNvbWUgdG8gdGhlIHN5c3RlbS4gIEZvciBzZWN1cml0eSBwdXJwb3NlcywgcGxlYXNlIHNwZWNpZnkgYSBuZXcgcGFzc3dvcmQuJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ2luZm9fZm9yY2VfbmV3cHdfdGVtcGxhdGUnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgZm9ybSB0byBmb3JjZSB0aGUgdXNlciB0byBjaGFuZ2UgaGlzIHBhc3N3b3JkLic7CiRsYW5nWydmb3JjZV9uZXdwd190ZW1wbGF0ZSddID0gJ0ZvcmNlIE5ldyBQYXNzd29yZCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZm9yY2VfbmV3cHcnXSA9ICdGb3JjZSB0aGlzIHVzZXIgdG8gcmVzZXQgaGlzIHBhc3N3b3JkIGF0IHRoZSBuZXh0IGxvZ2luJzsKJGxhbmdbJ3Byb21wdF9kaXNhYmxlZCddID0gJ0lzIHRoaXMgYWNjb3VudCBkaXNhYmxlZD8nOwokbGFuZ1snbXNnX3VzZXJfc3RhdGVfY2hhbmdlZCddID0gJ1VzZXIgc3RhdGUgY2hhbmdlZCc7CiRsYW5nWydpbmZvX2Rpc2FibGVkJ10gPSAnVGhpcyB1c2VyIGFjY291bnQgaXMgZGlzYWJsZWQsIHByZXZlbnRpbmcgbG9naW4nOwokbGFuZ1snZW5hYmxlX3VzZXInXSA9ICdFbmFibGUgdGhpcyB1c2VyIGFjY291bnQnOwokbGFuZ1snZGlzYWJsZV91c2VyJ10gPSAnRGlzYWJsZSB0aGlzIHVzZXIgYWNjb3VudCBhbmQgZW5zdXJlIHRoYXQgdGhlIHVzZXIgaXMgbG9nZ2VkIG91dCc7CiRsYW5nWydlcnJvcl9hY2NvdW50ZGlzYWJsZWQnXSA9ICdXZSBhcmUgc29ycnksIGJ1dCB0aGlzIGFjY291bnQgYXBwZWFycyB0byBoYXZlIGJlZW4gZGlzYWJsZWQuICBQbGVhc2UgY29udGFjdCBzaXRlIGFkbWluaXN0cmF0b3JzIHRvIHJlc29sdmUgdGhpcyBpc3N1ZSc7CiRsYW5nWyd0aXRsZV9mb3Jnb3RwdyddID0gJ0ZvcmdvdHRlbiBQYXNzd29yZCc7CiRsYW5nWyd2ZXJpZnlfaWRlbnRpdHknXSA9ICdWZXJpZnkgeW91ciBpZGVudGl0eSc7CiRsYW5nWyc0MDNlcnJvciddID0gJ0dlbmVyYXRlIGEgNDAzIEVycm9yJzsKJGxhbmdbJ3Byb21wdF9lbmhhbmNlZHB3J10gPSAnUmVxdWlyZSBhIHN0cm9uZyBwYXNzd29yZCc7CiRsYW5nWydpbmZvX2VuaGFuY2VkcHcnXSA9ICdJZiBlbmFibGVkLCBwYXNzd29yZHMgd2lsbCByZXF1aXJlIGF0IGxlYXN0IG9uZSB1cHBlcmNhc2UgYWxwaGFiZXRpYyBjaGFyYWN0ZXIgYW5kIG9uZSBkaWdpdC4nOwokbGFuZ1sncHJvbXB0X3B3cmVxdWlyZWRjaGFycyddID0gJ1JlcXVpcmUgb25lIG9mIHRoZXNlIGNoYXJhY3RlcnMgaW4gdGhlIHBhc3N3b3JkJzsKJGxhbmdbJ2luZm9fcHdyZXF1aXJlZGNoYXJzJ10gPSAnSWYgbm9uIGVtcHR5LCBhbmQgc3Ryb25nIHBhc3N3b3JkcyBhcmUgZW5hYmxlZCwgYXQgbGVhc3Qgb25lIG9mIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVycyB3aWxsIGJlIHJlcXVpcmVkIGluIHRoZSBwYXNzd29yZCBpbiBhZGRpdGlvbiB0byB0aGUgc3Ryb25nIHBhc3N3b3JkIHJlcXVpcmVtZW50cy4nOwokbGFuZ1snZXJyb3JfY2FudHNldHByb3BlcnR5dHlwZSddID0gJ0Nhbm5vdCBzZXQgcHJvcGVydHkgb2YgdGhpcyB0eXBlJzsKJGxhbmdbJ2luZm9faW1wb3J0X2Zvcm1hdCddID0gJzxwPkZvciBpbmZvcm1hdGlvbiBvbiB0aGUgaW1wb3J0IGZvcm1hdCB5b3Ugc2hvdWxkIGNyZWF0ZSBhIHNhbXBsZSB1c2VyIChvciB0d28pIGluIHRoZSBkZXNpcmVkIGdyb3VwcyBhbmQgZXhwb3J0IHRoYXQgaW5mb3JtYXRpb24uICBUaGUgcmVzdWx0aW5nIGZpbGUgY2FuIHRoZW4gYmUgdXNlZCBhcyBhIHRlbXBsYXRlIGZvciBmdXJ0aGVyIGltcG9ydHM8L3A+PGJyLz4KIDxwPkFkZGl0aW9uYWxseSwgYSB0eHRwYXNzd29yZCBjb2x1bW4gY2FuIGJlIGFkZGVkIHRvIHRoZSBpbXBvcnQgZmlsZSB0byBkZWZpbmUgKGluIHBsYWluIHRleHQpIHRoZSBwYXNzd29yZCBmb3IgdXNlcnMuICBJZiB0aGUgdHh0cGFzc3dvcmQgY29sdW1uIGlzIGVtcHR5IGZvciBhbiBleGlzdGluZyB1c2VyIGhpcyBwYXNzd29yZCBpcyBub3QgdG91Y2hlZC4gIElmIHRoaXMgY29sdW1uIGlzIGVtcHR5IGZvciBhIG5ldyB1c2VyLCBvciBub3QgcHJvdmlkZWQgYXQgYWxsIHRoZSBoYXJkY29kZWQgcGFzc3dvcmQgJnF1b3Q7Y2hhbmdlbWUmcXVvdDsgaXMgdXNlZC4nOwokbGFuZ1snaW1wb3J0X2RlbGV0ZWR1c2VyJ10gPSAnRGVsZXRlZCB1c2VyICVzJzsKJGxhbmdbJ2Vycm9yX2V4cG9ydF9ub3VzZXJzJ10gPSAnTm8gdXNlcnMgZm91bmQgdG8gZXhwb3J0JzsKJGxhbmdbJ3Byb21wdF9leHBvcnRfdXNlcnMnXSA9ICdFeHBvcnQgVXNlcnMnOwokbGFuZ1sndGl0bGVfZXhwb3J0X3VzZXJzJ10gPSAnRXhwb3J0IFVzZXJzIHRvIGFuIEFTQ0lJIGZpbGUnOwokbGFuZ1snaW5mb19lbmNyeXB0J10gPSAnRW5jcnlwdGVkIHByb3BlcnRpZXMgY2Fubm90IGJlIGV4cG9ydGVkIHRvIEFTQ0lJIG9yIHZpZXdlZCBieSBhbiBhZG1pbmlzdHJhdG9yLiAgVGhleSBjYW4gb25seSBiZSBlZGl0ZWQgYnkgdGhlIGF1dGhvcml6ZWQgdXNlcic7CiRsYW5nWydlcnJvcl9pbXBvcnRncm91cG5hbWUnXSA9ICdJbnZhbGlkLCBvciBlbXB0eSBncm91cCBuYW1lIHNwZWNpZmllZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfY29sdW1uY291bnQnXSA9ICdJbmNvcnJlY3QgY29sdW1uIGNvdW50JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdEZWxpbWl0ZXInOwokbGFuZ1snZXJyb3JfY3JlYXRldG1wZmlsZSddID0gJ1Byb2JsZW0gY3JlYXRpbmcgdGVtcG9yYXJ5IGZpbGUnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZV91c2VycyddID0gJ0RlbGV0ZSBleHRyYSB1c2Vycyc7CiRsYW5nWydpbmZvX2ltcG9ydF9kZWxldGVfdXNlcnMnXSA9ICdJZiBlbmFibGVkLCBhbmQgb25seSA8c3Ryb25nPm9uZSB1c2VyIGdyb3VwPC9zdHJvbmc+IGlzIG1lbnRpb25lZCBpbiB0aGUgaW1wb3J0IGZpbGUsIHVzZXJzIHRoYXQgYXJlIG1lbWJlcnMgb2YgdGhhdCB1c2VyIGdyb3VwIGJ1dCBub3QgbWVudGlvbmVkIGluIHRoZSBpbXBvcnQgZmlsZSwgd2lsbCBiZSBkZWxldGVkLiAgQ2F1dGlvbiBzaG91bGQgYmUgdXNlZCBoZXJlLCBhcyBubyBjaGVja3MgYXJlIGRvbmUgdG8gc2VlIGlmIHRoZSBkZWxldGVkIHVzZXJzIGFyZSBtZW1iZXJzIG9mIGFueSBvdGhlciBncm91cHMuJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF91c2VycyddID0gJ0ltcG9ydCB1c2VycyBmcm9tIGEgQ1NWIHR5cGUgZmlsZSc7CiRsYW5nWydmcm9udGVuZF9hY2Nlc3MnXSA9ICdWaWV3ZXJzJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub2NvbnRyb2xzJ10gPSAnQ2Fubm90IGRpc3BsYXkgbG9zdHVzZXJuYW1lIGZvcm0uLi4gbm8gc3VpdGFibGUgZmllbGRzIGZvdW5kIHRvIGRpc3BsYXknOwokbGFuZ1snaW5mb19maWx0ZXJfc29ydGJ5J10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBDb2x1bW4gc29ydGluZyB3aWxsIHByb3ZpZGUgYWRkaXRpb25hbCBzb3J0aW5nIG9uIG1hdGNoZWQgZWxlbWVudHMnOwokbGFuZ1snYW55J10gPSAnQW55JzsKJGxhbmdbJ3NvcnRieV91c2VybmFtZV9hc2MnXSA9ICdVc2VybmFtZSAoYXNjZW5kaW5nKSc7CiRsYW5nWydzb3J0YnlfdXNlcm5hbWVfZGVzYyddID0gJ1VzZXJuYW1lIChkZXNjZW5kaW5nKSc7CiRsYW5nWydzb3J0YnlfY3JlYXRlX2FzYyddID0gJ0NyZWF0ZSBEYXRlIChhc2NlbmRpbmcpJzsKJGxhbmdbJ3NvcnRieV9jcmVhdGVfZGVzYyddID0gJ0NyZWF0ZSBEYXRlIChkZXNjZW5kaW5nKSc7CiRsYW5nWydzb3J0YnlfZXhwaXJlc19hc2MnXSA9ICdFeHBpcnkgRGF0ZSAoYXNjZW5kaW5nKSc7CiRsYW5nWydzb3J0YnlfZXhwaXJlc19kZXNjJ10gPSAnRXhwaXJ5IERhdGUgKGRlc2NlbmRpbmcpJzsKCiRsYW5nWydpbmZvX2VuY3J5cHRlZCddID0gJ0VuY3J5cHRlZCBwcm9wZXJ0aWVzIGNhbiBvbmx5IGJlIHNlZW4gYW5kIGVkaXRlZCBieSB0aGUgdXNlci4gIE5vdCBldmVuIHRoZSBzaXRlIGFkbWluaXN0cmF0b3IgY2FuIHNlZSBvciBtYW5hZ2UgdGhpcyBkYXRhLic7CiRsYW5nWydlbmNyeXB0ZWQnXSA9ICdFbmNyeXB0ZWQnOwokbGFuZ1snaW5mb19jb29raWVuYW1lJ10gPSAnSWYgc2V0LCB0aGUgJnF1b3Q7cmVtZW1iZXIgbWUmcXVvdDsgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIGVuYWJsZWQuICBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIGNvb2tpZSBrZWVwYWxpdmUgZnVuY3Rpb25hbGl0eSwgYnV0IGxhc3RzIHVwIHRvIHNpeHR5IGRheXMuJzsKJGxhbmdbJ21zZ191c2VybmFtZV9yZWFkb25seSddID0gJ1RoZSBhdXRoZW50aWNhdGlvbiBjb25zdW1lciBkb2VzIG5vdCBwZXJtaXQgY2hhbmdpbmcgdGhlIHVzZXJuYW1lIGZvciB0aGlzIGFjY291bnQnOwokbGFuZ1snbXNnX3Bhc3N3b3JkX3JlYWRvbmx5J10gPSAnVGhlIGF1dGhlbnRpY2F0aW9uIGNvbnN1bWVyIGRvZXMgbm90IHBlcm1pdCBjaGFuZ2luZyB0aGUgcGFzc3dvcmQgZm9yIHRoaXMgYWNjb3VudCc7CiRsYW5nWydwcm9tcHRfbm9ybWFsbG9naW4nXSA9ICdTaWduIEluJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdNb3ZlIFVwJzsKJGxhbmdbJ21vdmVfZG93biddID0gJ01vdmUgRG93bic7CiRsYW5nWyd0aXRsZV9wcm9wbW9kdWxlJ10gPSAnVGhpcyBwcm9wZXJ0eSBpcyBjcmVhdGVkIGJ5IGEgbW9kdWxlLCBhbmQgY2Fubm90IGJlIGVkaXRlZCc7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnTm90IEF2YWlsYWJsZSc7CiRsYW5nWydwcm9tcHRfZGZsdF9jaGVja2VkJ10gPSAnQnkgZGVmYXVsdCwgdGhpcyBmaWVsZCBzaG91bGQgYmUgY2hlY2tlZCc7CiRsYW5nWydvcGVyYXRpb25fY29tcGxldGVkJ10gPSAnT3BlcmF0aW9uIENvbXBsZXRlZCc7CiRsYW5nWydtZW1iZXJzJ10gPSAnTWVtYmVycyc7CiRsYW5nWyd2aWV3X2ZpbHRlciddID0gJ1ZpZXcgRmlsdGVyJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhJzsKJGxhbmdbJ2FwcGxpZWQnXSA9ICdBcHBsaWVkJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJyZsdDsmbHQ7JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnJmx0Oyc7CiRsYW5nWyduZXh0cGFnZSddID0gJyZndDsnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICcmZ3Q7Jmd0Oyc7CiRsYW5nWydwYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfY2hhbmdldXNlcm5hbWUnXSA9ICdBbGxvdyBDaGFuZ2luZyBVc2VybmFtZSc7CiRsYW5nWydpbmZvX2FsbG93X2NoYW5nZXVzZXJuYW1lJ10gPSAnSWYgZW5hYmxlZCB1c2VycyB3aWxsIGJlIHBlcm1pdHRlZCB0byBjaGFuZ2UgdGhlaXIgdXNlcm5hbWUgYWxvbmcgd2l0aCBvdGhlciBzZXR0aW5ncyc7CiRsYW5nWyd0ZW1wbGF0ZV9zYXZlZCddID0gJ1RlbXBsYXRlIHNhdmVkJzsKJGxhbmdbJ3RlbXBsYXRlX3Jlc2V0ZGVmYXVsdHMnXSA9ICdUZW1wbGF0ZSByZXNldCB0byBkZWZhdWx0cyc7CiRsYW5nWydsYmxfc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnVGVtcGxhdGVzJzsKJGxhbmdbJ2VuYWJsZV9jYXB0Y2hhJ10gPSAnRW5hYmxlIGNhcHRjaGEgb24gdGhlIGxvZ2luIGZvcm0nOwokbGFuZ1snaW5mb19lbmFibGVfY2FwdGNoYSddID0gJ0lmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4sIGFuZCB0aGUgbW9kdWxlIHByZWZlcmVuY2Ugc3RhdGVzIHRvIGRpc3BsYXkgdGhlIGxvZ2luIGZvcm0sIHRoaXMgb3B0aW9uIGNvbnRyb2xzIHdldGhlciBhIGNhcHRjaGEgd2lsbCBiZSBkaXNwbGF5ZWQgb24gdGhlIGxvZ2luIHNjcmVlbi4gIElmIGNhcHRjaGEgaXMgYXZhaWxhYmxlJzsKJGxhbmdbJ3BhZ2V0eXBlX3VuYXV0aG9yaXplZCddID0gJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gdmlldyB0aGlzIGNvbnRlbnQnOwokbGFuZ1snaW5mb19jb250ZW50cGFnZV9ncm91cGxpc3QnXSA9ICdTcGVjaWZ5IGEgbGlzdCBvZiBGRVUgZ3JvdXBzIHRoYXQgbWF5IGhhdmUgYWNjZXNzIHRvIHRoaXMgcGFnZS4gIFNlbGVjdGluZyBubyBncm91cHMgd2lsbCBhbGxvdyBhbnkgdXNlciBsb2dnZWQgaW4gdG8gRkVVIHRvIHZpZXcgdGhlIHBhZ2UnOwokbGFuZ1sncGFnZXR5cGVfc2V0dGluZ3MnXSA9ICdQcm90ZWN0ZWQgUGFnZSBTZXR0aW5ncyc7CiRsYW5nWydwYWdldHlwZV9ncm91cHMnXSA9ICdBbGxvd2VkIEdyb3Vwcyc7CiRsYW5nWydpbmZvX3BhZ2V0eXBlX2dyb3VwcyddID0gJ1NlbGVjdCB0aGUgZ3JvdXBzIHRoYXQgYXJlIChieSBkZWZhdWx0KSBhbGxvd2VkIHRvIHZpZXcgcHJvdGVjdGVkIHBhZ2VzLiAgQW4gZWRpdG9yIHdpdGggdGhlICZxdW90O01hbmFnZSBBbGwgQ29udGVudCZxdW90OyBwZXJtaXNzaW9uIGNhbiBvdmVycmlkZSB0aGlzIGZvciBlYWNoIHBhZ2UnOwokbGFuZ1sncGFnZXR5cGVfYWN0aW9uJ10gPSAnQWN0aW9uIGZvciBpbnN1ZmZpY2llbnQgYWNjZXNzJzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYmVoYXZpb3IgZm9yIHBlb3BsZSBhY2Nlc3NpbmcgdGhpcyBwYWdlIHdpdGhvdXQgc3VmZmljaWVudCBwZXJtaXNzaW9uLiAgWW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdG8gYSBzcGVjaWZpZWQgcGFnZSwgb3IgZGlzcGxheSB0aGUgbG9naW4gZm9ybSc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAnU2hvdyB0aGUgTG9naW4gRm9ybSc7CiRsYW5nWydyZWRpcmVjdCddID0gJ1JlZGlyZWN0IHRvIGEgUGFnZSc7CiRsYW5nWydwYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnUmVkaXJlY3QgVG8nOwokbGFuZ1snaW5mb19wYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnU3BlY2lmeSB0aGUgcGFnZSB0byByZWRpcmVjdCB0by4gIElmIHlvdSBzZWxlY3Qgbm9uZSwgYW5kIHRoZSBhY3Rpb24gaXMgc2V0IHRvICZxdW90O3JlZGlyZWN0JnF1b3Q7IHRoZSB1c2VyIHdpbGwgYmUgcHJlc2VudGVkIHdpdGggYSBtZXNzYWdlIGluZGljYXRpbmcgdGhhdCB0aGV5IGRvIG5vdCBoYWNlIGFjY2VzcyB0byB0aGUgcGFnZSc7CiRsYW5nWydwZXJtaXNzaW9ucyddID0gJ1Blcm1pc3Npb25zJzsKJGxhbmdbJ2ZldV9wcm90ZWN0ZWRfcGFnZSddID0gJ1Byb3RlY3RlZCBDb250ZW50JzsKJGxhbmdbJ3Byb21wdF92aWV3cHJvcHMnXSA9ICdTZWxlY3QgQWRkaXRpb25hbCBQcm9wZXJ0aWVzIHRvIFZpZXcnOwokbGFuZ1sndmlldyddID0gJ1ZpZXcnOwokbGFuZ1snaW5mb19pZ25vcmVfdXNlcmlkJ10gPSAnSWYgY2hlY2tlZCB0aGUgaW1wb3J0IHJvdXRpbmUgd2lsbCBhdHRlbXB0IHRvIGFkZCB1c2VycyBpbmRlcGVuZGFudCBvZiB0aGUgdXNlcmlkIGNvbHVtbi4gIElmIGEgdXNlciB3aXRoIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGUgaW1wb3J0IGZpbGUgYWxyZWFkeSBleGlzdHMsIGFuIGVycm9yIHdpbGwgYmUgZ2VuZXJhdGVkJzsKJGxhbmdbJ2lnbm9yZV91c2VyaWQnXSA9ICdJZ25vcmUgVXNlcklEIENvbHVtbiBvbiBJbXBvcnQnOwokbGFuZ1snZXhwb3J0X3Bhc3NoYXNoJ10gPSAnRXhwb3J0IHRoZSBwYXNzd29yZCBoYXNoIHRvIHRoZSBmaWxlJzsKJGxhbmdbJ2luZm9fZXhwb3J0X3Bhc3NoYXNoJ10gPSAnVGhlIHBhc3N3b3JkIGhhc2ggaXMgb25seSB1c2VmdWwgaWYgdGhlIHBhc3N3b3JkIHNhbHQgb24gdGhlIGltcG9ydCBob3N0IGlzIGlkZW50aWNhbCB0byB0aGF0IG9mIHRoZSBleHBvcnQgaG9zdCc7CiRsYW5nWydlcnJvcl9hZGp1c3RzYWx0J10gPSAnVGhlIHBhc3N3b3JkIHNhbHQgY2Fubm90IGJlIGFkanVzdGVkJzsKJGxhbmdbJ3Byb21wdF9wd3NhbHQnXSA9ICdQYXNzd29yZCBTYWx0JzsKJGxhbmdbJ2luZm9fcHdzYWx0J10gPSAnRnJvbnRFbmRVc2VycyBzYWx0cyBhbGwgcGFzc3dvcmRzIHdpdGggdGhpcyBrZXkgd2hpY2ggaXMgY3JlYXRlZCB1cG9uIGluc3RhbGwuICBPbmNlIHVzZXJzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgZGF0YWJhc2UgdGhlIHNhbHQgY2Fubm90IGJlIGNoYW5nZWQuIFRoZSBzYWx0IG1heSBiZSBlbXB0eSBmb3Igb2xkZXIgaW5zdGFsbHMuJzsKJGxhbmdbJ2FkdmFuY2VkX3NldHRpbmdzJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1snaW5mb19zZXNzaW9udGltZW91dCddID0gJ1NwZWNpZnkgdGhlIG51bWJlciBvZiBzZWNvbmRzIGJlZm9yZSBhbiBpbmFjdGl2ZSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgbG9nZ2VkIG91dCBvZiB0aGUgd2Vic2l0ZSc7CiRsYW5nWydwcm9tcHRfZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdVc2VyIEV4cGlyeSBJbnRlcnZhbCc7CiRsYW5nWydpbmZvX2V4cGlyZXVzZXJzX2ludGVydmFsJ10gPSAnU3BlY2lmeSBhIHZhbHVlIChpbiBzZWNvbmRzKSB0aGF0IGluZGljYXRlcyBob3cgb2Z0ZW4gdGhlIHN5c3RlbSBzaG91bGQgZm9yY2UgdXNlcnMgd2hvcyBzZXNzaW9uIGhhcyBleHBpcmVkIHRvIGJlIGxvZ2dlZCBvdXQuICBUImhpcyBpcyBhbiBvcHRpbWl6YXRpb24gdG8gc2F2ZSBkYXRhYmFzZSBxdWVyaWVzLiAgSWYgbGVmdCBlbXB0eSBvciBzZXQgdG8gMCBleHBpcnkgd2lsbCBiZSBwZXJmb3JtZWQgb24gZXZlcnkgcmVxdWVzdC4nOwokbGFuZ1snbXNnX3NldHRpbmdzY2hhbmdlZCddID0gJ1lvdXIgc2V0dGluZ3Mgd2VyZSBzdWNjZXNzZnVsbHkgdXBkYXRlZCc7CiRsYW5nWydmb3JjZWRsb2dvdXR0YXNrX2Rlc2MnXSA9ICdGb3JjZSB1c2VycyB0byBsb2dvdXQgYXQgcmVndWxhciBpbnRlcnZhbHMnOwokbGFuZ1sncHJvbXB0X2ZvcmNlbG9nb3V0X3RpbWVzJ10gPSAnVGltZXMgZm9yIGZvcmNlZCBsb2dvdXQnOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF90aW1lcyddID0gJ1NwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB0aW1lcyBsaWtlIEhIOk1NLEhIOk1NIHdoZXJlIHVzZXJzIHdpbGwgYmUgZm9yY2libHkgbG9nZ2VkIG91dC4gTm90ZSwgdGhpcyB1c2VzIHRoZSBwc3VlZG9jcm9uIG1lY2hhbmlzbSBzbyB5b3UgbXVzdCBiZSBzdXJlIHRoYXQgdGhlIHRpbWVzIGVudGVyZWQgaGVyZSB3aWxsIGNvaW5jaWRlIHJlYXNvbmFibHkgd2l0aCB5b3VyICZxdW90O3BzZXVkb2Nyb24gZ3JhbnVsYXJpdHkmcXVvdDsgYW5kIHRoYXQgc3VmZmljaWVudCByZXF1ZXN0cyB3aWxsIG9jY3VyIHRvIHlvdXIgd2Vic2l0ZSB0byBlbnN1cmUgdGhhdCBwc2V1ZG9jcm9uIGlzIGV4ZWN1dGVkLic7CiRsYW5nWydwcm9tcHRfZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSddID0gJ0V4Y2x1ZGUgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYWN0aXZlIGluIDxlbT4obWludXRlcyk8L2VtPic7CiRsYW5nWydpbmZvX2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnXSA9ICdJZiBzcGVjaWZpZWQsIGFueSB1c2VycyB0aGF0IGhhdmUgYmVlbiBhY3RpdmUgaW4gdGhpcyBudW1iZXIgb2Ygc2Vjb25kcyB3aWxsIG5vdCBiZSBmb3JjaWJseSBsb2dnZWQgb3V0JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgdXNlciAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZWV4dGVuc2lvbiddID0gJ1RoZSB1cGxvYWRlZCBmaWxlIGRvZXMgbm90IG1hdGNoIHRoZSBsaXN0IG9mIGFsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQWxsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSBoYXMgYmVlbiBkZWxldGVkJzsKJGxhbmdbJ2luZm9fZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbiddID0gJ0lmIGVuYWJsZWQsIHRoaXMgbW9kdWxlIHdpbGwgbGlzdGVuIHRvIGV2ZW50cyBmcm9tIHRoZSBFY29tbWVyY2Ugc3VpdGUuICBUaGUgZm9sbG93aW5nIHNldHRpbmdzIG9ubHkgaGF2ZSBlZmZlY3QgaWYgdGhpcyBzZXR0aW5nIGlzIGVuYWJsZWQuJzsKJGxhbmdbJ3Byb21wdF9lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnTGlzdGVuIHRvIE9yZGVyIEV2ZW50cyc7CiRsYW5nWydpbmZvX3BhaWRyZWdfc2V0dGluZ3MnXSA9ICdUaGUgZm9sbG93aW5nIHNldHRpbmdzIG9ubHkgYXBwbHkgaWYgdXNpbmcgc2VsZiByZWdpc3RyYXRpb24gYW5kIGFsbG93aW5nIGZvciBwYWlkIHJlZ2lzdHJhdGlvbic7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydkZWxldGVfdXNlciddID0gJ0RlbGV0ZSBVc2VyJzsKJGxhbmdbJ2V4cGlyZV91c2VyJ10gPSAnRXhwaXJlIFVzZXInOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmNhbmNlbGxlZCddID0gJ0FjdGlvbiB0byBwZXJmb3JtIHdoZW4gYSBzdWJzY3JpcHRpb24gb3JkZXIgaXMgY2FuY2VsbGVkJzsKJGxhbmdbJ3Byb21wdF9hY3Rpb25fb3JkZXJkZWxldGVkJ10gPSAnQWN0aW9uIHRvIHBlcmZvcm0gd2hlbiBhIHN1YnNjcmlwdGlvbiBvcmRlciBpcyBkZWxldGVkJzsKJGxhbmdbJ2Vjb21tZXJjZV9zZXR0aW5ncyddID0gJ0Vjb21tZXJjZSBTZXR0aW5ncyc7CiRsYW5nWydzZWN1cmVmaWVsZG1hcmtlciddID0gJ1NlY3VyZSBGaWVsZCBNYXJrZXInOwokbGFuZ1snc2VjdXJlZmllbGRjb2xvciddID0gJ1NlY3VyZSBGaWVsZCBDb2xvcic7CiRsYW5nWydwcm9tcHRfZW5jcnlwdCddID0gJ1N0b3JlIHRoaXMgZGF0YSBlbmNyeXB0ZWQgaW4gdGhlIGRhdGFiYXNlJzsKJGxhbmdbJ2Vycm9yX25vdHN1cHBvcnRlZCddID0gJ1RoZSBjaG9zZW4gb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZ2l2ZW4geW91ciBjdXJyZW50IGNvbmZpZ3VyYXRpb24nOwokbGFuZ1snYXVkaXRfdXNlcl9jcmVhdGVkJ10gPSAnVXNlciBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQnOwokbGFuZ1snaW5mb19hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnSWYgYSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQgYnkgYW4gZXh0ZXJuYWwgYXV0aGVudGljYXRpb24gbW9kdWxlIGJ1dCBpcyBub3Qga25vd24gaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIHNob3VsZCBhbiBGRVUgYWNjb3VudCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHk/JzsKJGxhbmdbJ3Byb21wdF9hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnQXV0b21hdGljYWxseSBDcmVhdGUgVW5rbm93biBVc2Vycyc7CiRsYW5nWydkaXNwbGF5X3NldHRpbmdzJ10gPSAnRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWydpbmZvX3N0ZF9hdXRoX3NldHRpbmdzJ10gPSAnVGhlIGZvbGxvd2luZyBzZXR0aW5ncyBhcmUgb25seSBhcHBsaWNhYmxlIGlmIHVzaW5nIHRoZSAmcXVvdDtCdWlsdGluIEF1dGhlbnRpY2F0aW9uJnF1b3Q7Lic7CiRsYW5nWydpbmZvX3N1cHBvcnRfbG9zdHVuJ10gPSAnU2VsZWN0aW5nIE5vIHdpbGwgZGlzYWJsZSB0aGUgYWJpbGl0eSBmb3IgYSB1c2VyIHRvIHJlcXVlc3QgbG9zdCBsb2dpbiBpbmZvcm1hdGlvbiwgaXJyZXNwZWN0aXZlIG9mIG90aGVyIHNldHRpbmdzJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0cHcnXSA9ICdTZWxlY3RpbmcgTm8gd2lsbCBkaXNhYmxlIHRoZSBhYmlsaXR5IGZvciBhIHVzZXIgdG8gYSBwYXNzd29yZCByZXNldCwgaXJyZXNwZWN0aXZlIG9mIG90aGVyIHNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9zdXBwb3J0X2xvc3R1biddID0gJ0FsbG93IHVzZXJzIHRvIHJlcXVlc3QgdGhlaXIgdXNlcm5hbWUnOwokbGFuZ1sncHJvbXB0X3N1cHBvcnRfbG9zdHB3J10gPSAnQWxsb3cgdXNlcnMgdG8gcmVxdWVzdCBhIHBhc3N3b3JkIGNoYW5nZSc7CiRsYW5nWydhdXRoX3NldHRpbmdzJ10gPSAnQXV0aGVudGljYXRpb24gU2V0dGluZ3MnOwokbGFuZ1snYXV0aGVudGljYXRpb24nXSA9ICdCdWlsdGluIEF1dGhlbnRpY2F0aW9uJzsKJGxhbmdbJ2F1dGhfYnVpbHRpbiddID0gJ0ZFVSBTdGFuZGFyZCBBdXRoZW50aWNhdGlvbic7CiRsYW5nWydhdXRoX21vZHVsZSddID0gJ0F1dGhlbnRpY2F0aW9uIE1vZHVsZS9NZXRob2QnOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ1RoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSBzdXBwb3J0cyB1c2luZyBhbHRlcm5hdGUgYXV0aGVudGljYXRpb24gbWV0aG9kcywgd2l0aCB2YXJ5aW5nIGNhcGFiaWxpdGllcy4gIFNvbWUgZnVuY3Rpb25hbGl0eSB3aWxsIG5vdCBmdW5jdGlvbiBvciBiZSBkaXNhYmxlZCB3aGVuIG5vdCB1c2luZyB0aGUgYnVpbHQgaW4gYXV0aGVudGljYXRpb24gbWV0aG9kJzsKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciB1c2VyJzsKJGxhbmdbJ3VuaXF1ZSddID0gJ1VuaXF1ZSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVfZmllbGRfdmFsdWUnXSA9ICdUaGUgdmFsdWUgc3BlY2lmaWVkIGZvciAlcyAoJXMpIGlzIG5vdCB1bmlxdWUnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ0ZvcmNlIHZhbHVlcyBvZiB0aGlzIHByb3BlcnR5IHRvIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHVzZXIgYWNjb3VudHMnOwokbGFuZ1snaGVscF9yZXR1cm50byddID0gJ1VzZWQgd2l0aHQgaGUgbG9naW4gYW5kIGxvZ291dCBmb3JtcywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHRoZSB1c2VyIHNob3VsZCBiZSByZXR1cm5lZCB0byBhZnRlciB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLiAgVGhpcyB3aWxsIG92ZXJyaWRlIHRoZSByZXR1cm5sYXN0IGFuZCB0aGUgcmVkaXJlY3Rpb24gcHJlZmVyZW5jZXMuJzsKJGxhbmdbJ2hlbHBfaW5saW5lJ10gPSAnVXNlZCB3aXRoIHRoZSBsb2dpbiBmb3Jtcy9hY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGF0IHRoZSByZXN1bHQgb2YgdGhlIGZvcm0gc2hvdWxkIHJlcGxhY2UgaXRzIG93biB0YWcgb24gdGhlIHNhbWUgcGFnZS4uLiAgdGhpcyB3aWxsIGhhdmUgbm8gZWZmZWN0IGlmIHJldHVybnRvLCByZXR1cm5sYXN0LCBvciBzb21lIHJlZGlyZWN0aW9uIHByZWZlcmVuY2VzIGFyZSBzZXQgcmVzdWx0aW5nIGluIGEgcmVkaXJlY3Rpb24gdG8gYSBkaWZmZXJlbnQgcGFnZS4nOwokbGFuZ1sndGl0bGVfcmVzZXRfc2Vzc2lvbiddID0gJ0xvZ2luIFNlc3Npb24gVGltZW91dCBXYXJuaW5nJzsKJGxhbmdbJ21zZ19yZXNldF9zZXNzaW9uJ10gPSAnWW91ciBsb2dpbiBzZXNzaW9uIGlzIGFib3V0IHRvIGV4cGlyZSwgcGxlYXNlIGNsaWNrICImcXVvdDtPayZxdW90OyB0byBjb25maXJtIHlvdXIgYWN0aXZpdHkgb24gdGhpcyB3ZWJzaXRlLic7CiRsYW5nWydvayddID0gJ09rJzsKJGxhbmdbJ3Jlc2V0c2Vzc2lvbl90ZW1wbGF0ZSddID0gJ1Jlc2V0IFNlc3Npb24gVGVtcGxhdGUnOwokbGFuZ1snaW5mb19uYW1lJ10gPSAnVGhpcyBpcyB0aGUgZmllbGQgbmFtZSwgdG8gYmUgdXNlZCBmb3IgYWRkcmVzc2luZyBpbiBzbWFydHkuICBJdCBtdXN0IGNvbnNpc3Qgb2Ygb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgdW5kZXJzY29yZXMuJzsKJGxhbmdbJ3Zpc2l0b3JzX3RhYiddID0gJ1Zpc2l0b3JzJzsKJGxhbmdbJ2ZldV9ncm91cHNfcHJvbXB0J10gPSAnU2VsZWN0IG9uZSBvciBtb3JlIEZFVSBncm91cHMgdGhhdCBhcmUgYWxsb3dlZCB0byB2aWV3IHRoaXMgcGFnZSc7CiRsYW5nWydlcnJvcl9tdXN0c2VsZWN0X2dyb3VwJ10gPSAnQSBncm91cCBtdXN0IGJlIHNlbGVjdGVkJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc3RhcnRfeWVhciddID0gJ1N0YXJ0IFllYXInOwokbGFuZ1snZW5kX3llYXInXSA9ICdFbmQgWWVhcic7CiRsYW5nWydkYXRlJ10gPSAnRGF0ZSc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdUaHVtYm5haWwgU2l6ZSc7CiRsYW5nWydPblVwZGF0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBNb2RpZmllZCc7CiRsYW5nWydlcnJvcl90b29tYW55c2VsZWN0ZWQnXSA9ICdUb28gbWFueSB1c2VycyBhcmUgc2VsZWN0ZWQgZm9yIGJ1bGsgb3BlcmF0aW9ucy4uLi4gUGxlYXNlIHRyaW0gaXQgdG8gMjUwIG9yIGxlc3MnOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCB1c2Vycz8nOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRGVsZXRlIFNlbGVjdGVkJzsKJGxhbmdbJ3Byb21wdF9yYW5kb211c2VybmFtZSddID0gJ0dlbmVyYXRlIHJhbmRvbSB1c2VybmFtZSB3aGVuIGFkZGluZyBuZXcgdXNlcnMnOwokbGFuZ1snbW9udGhzJ10gPSAnbW9udGhzJzsKJGxhbmdbJ3Byb21wdF9leHBpcmVhZ2UnXSA9ICdEZWZhdWx0IHVzZXIgZXhwaXJ5IHBlcmlvZCc7CiRsYW5nWydub3RpZmljYXRpb25fc2V0dGluZ3MnXSA9ICdOb3RpZmljYXRpb24gU2V0dGluZ3MnOwokbGFuZ1sncHJvcGVydHlfc2V0dGluZ3MnXSA9ICdQcm9wZXJ0eSBTZXR0aW5ncyc7CiRsYW5nWydyZWRpcmVjdGlvbl9zZXR0aW5ncyddID0gJ1JlZGlyZWN0aW9uIFNldHRpbmdzJzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3Nlc3Npb25fc2V0dGluZ3MnXSA9ICdTZXNzaW9uIGFuZCBDb29raWUgU2V0dGluZ3MnOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdGaWVsZCBTZXR0aW5ncyc7CiRsYW5nWydwcm9wX3RleHRhcmVhX3d5c2l3eWcnXSA9ICdBbGxvdyB1c2Ugb2Ygd3lzaXd5ZyBvbiB0aGlzIHRleHQgYXJlYSc7CiRsYW5nWydlZGl0aW5nX3VzZXInXSA9ICdFZGl0aW5nIFVzZXInOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdEbyBub3QgaW5saW5lIGZvcm1zJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnQ2xpY2sgaGVyZSBpZiB5b3UgY2Fubm90IHJlbWVtYmVyIHlvdXIgbG9naW4gZGV0YWlscyc7CiRsYW5nWydpbmZvX2ZvcmdvdHB3J10gPSAnQ2xpY2sgaGVyZSBpZiB5b3UgY2Fubm90IHJlbWVtYmVyIHlvdXIgcGFzc3dvcmQnOwokbGFuZ1snaW5mb19sb2dvdXQnXSA9ICdDbGljayBoZXJlIHRvIHNpZ24gb3V0JzsKJGxhbmdbJ2luZm9fY2hhbmdlc2V0dGluZ3MnXSA9ICdDbGljayBoZXJlIHRvIGFkanVzdCB5b3VyIHBhc3N3b3JkIG9yIG90aGVyIGluZm9ybWF0aW9uJzsKJGxhbmdbJ3ZpZXd1c2VyX3RlbXBsYXRlJ10gPSAnVmlldyBVc2VyIFRlbXBsYXRlJzsKJGxhbmdbJ2V2ZW50J10gPSAnRXZlbnQnOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ0ZFVSBFdmVudCBOb3RpZmljYXRpb24nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnTm90aWZpY2F0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ05vdGlmaWNhdGlvbiBFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICdOb3RpZmljYXRpb24gRW1haWwgU3ViamVjdCc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9ucyddID0gJ0VtYWlsIE5vdGlmaWNhdGlvbnMnOwokbGFuZ1snT25Mb2dpbiddID0gJ09uIExvZ2luJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnT24gTG9nb3V0JzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ09uIFNlc3Npb24gRXhwaXJ5JzsKJGxhbmdbJ09uQ3JlYXRlVXNlciddID0gJ09uIE5ldyBVc2VyIENyZWF0ZWQnOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnT24gVXNlciBEZWxldGVkJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ09uIFVzZXIgU2V0dGluZ3MgQ2hhbmdlZCc7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBDcmVhdGVkJzsKJGxhbmdbJ09uRGVsZXRlR3JvdXAnXSA9ICdPbiBVc2VyIEdyb3VwIERlbGV0ZWQnOwoKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcHJlbXNnJ10gPSAnV29vdCEgV2UgZm91bmQgeW91IS4gR2l2ZW4gdGhlIGRldGFpbHMgeW91IGVudGVyZWQsIHdlIHdlcmUgYWJsZSB0byBmaW5kIHlvdXIgKGFuZCBvbmx5IHlvdXJzKSBsb2dpbiBuYW1lLic7CiRsYW5nWyd5b3VyX3VzZXJuYW1lX2lzJ10gPSAnWW91ciB1c2VybmFtZSBpcyc7CiRsYW5nWydsb3N0dW5jb25maXJtX3Bvc3Rtc2cnXSA9ICdXZSByZWNvbW1lbmQgeW91IHJlY29yZCB0aGlzIGluZm9ybWF0aW9uIGluIGEgc2VjdXJlLCBidXQgcmV0cmlldmFibGUgbG9jYXRpb24uJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBjaGFuZ2Ugc2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2FmdGVyX3ZlcmlmeV9jb2RlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgY29kZSB2ZXJpZmljYXRpb24gKic7CiRsYW5nWydsb3N0dW5fZGV0YWlsc190ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgRGV0YWlscyBUZW1wbGF0ZSc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgQ29uZmlybSBUZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0Vycm9yOiBNb3JlIHRoYW4gb25lIHVzZXIgYWNjb3VudCBtYXRjaGVkIHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCc7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdFcnJvcjogQ291bGQgbm90IGZpbmQgYSBtYXRjaGluZyB1c2VyJzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdFcnJvcjogQ291bGQgbm90IGZpbmQgYSBncm91cCBieSB0aGF0IG5hbWUnOwokbGFuZ1sncmVhZG9ubHknXSA9ICdSZWFkIE9ubHknOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ1VzZXIgTWFuaXB1bGF0b3IgQ2xhc3MnOwokbGFuZ1snYWRtaW5fbG9nb3V0J10gPSAnTG9nZ2VkIG91dCBieSBhZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdTaG93IE9ubHkgTG9nZ2VkIEluIFVzZXJzJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdMb2dvdXQgdGhpcyB1c2VyJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ1VzZXIgUHJvcGVydGllcyc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ1VzZXIgSGlzdG9yeSc7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnQnOwokbGFuZ1snY2xlYXInXSA9ICdDbGVhcic7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknXSA9ICdFeHBvcnQgVXNlciBIaXN0b3J5IFRvIEFTQ0lJIHRoYXQgaXMgYXQgbGVhc3QnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdDbGVhciBVc2VyIEhpc3RvcnkgcmVjb3JkcyB0aGF0IGlzIGF0IGxlYXN0JzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJ0ZvcmdvdCBZb3VyIExvZ2luIERldGFpbHM/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0V4cG9ydCBncm91cCBkZWZpbml0aW9uIChhbmQgcHJvcGVydGllcykgdG8gWE1MJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5bWFpbnRlbmFuY2UnXSA9ICdVc2VyIEhpc3RvcnkgTWFpbnRlbmFuY2UnOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnT2YnOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogTm8gTGltaXQgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAnT25lIEhvdXIgT2xkJzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJ1NpeCBIb3VycyBPbGQnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnVHdlbHZlIEhvdXJzIE9sZCc7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ09uZSBEYXkgT2xkJzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJ09uZSBXZWVrIE9sZCc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnVHdvIHdlZWtzIE9sZCc7CiRsYW5nWydkYXRlX29uZW1vbnRob2xkJ10gPSAnT25lIE1vbnRoIE9sZCc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnVGhyZWUgTW9udGhzIE9sZCc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ1NpeCBNb250aHMgT2xkJzsKJGxhbmdbJ2RhdGVfb25leWVhcm9sZCddID0gJ09uZSBZZWFyIE9sZCc7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICdHcm91cGluZyBhbmQgU29ydGluZyc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2ZvdW5kJ10gPSAnUmVjb3JkcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIFVzZXJuYW1lJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdBc2NlbmRpbmcgVXNlcm5hbWUnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfZGVzYyddID0gJ0Rlc2NlbmRpbmcgRGF0ZSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdBc2NlbmRpbmcgRGF0ZSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIEV2ZW50IFR5cGUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdBc2NlbmRpbmcgRXZlbnQgVHlwZSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIElwIEFkZHJlc3MnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19hc2MnXSA9ICdBc2NlbmRpbmcgSXAgQWRkcmVzcyc7CiRsYW5nWydpbmZvX25vaGlzdG9yeWRldGVjdGVkJ10gPSAnTm8gSGlzdG9yeSBEZXRlY3RlZCc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0dyb3VwIEJ5IElQIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnXSA9ICdFdmVudCBUeXBlIEZpbHRlcic7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdEaXNwbGF5IG9ubHkgZXZlbnRzIHRoYXQgYXJlIGxlc3MgdGhhbjonOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ1BhZ2UgTGltaXQnOwokbGFuZ1snZm9yJ10gPSAnZm9yJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAnVXNlciBIaXN0b3J5IFJlcG9ydCc7CiRsYW5nWyd1bmtub3duJ10gPSAnVW5rbm93bic7CiRsYW5nWydwcm9tcHRfaXBhZGRyZXNzJ10gPSAnSVAgQWRkcmVzcyc7CiRsYW5nWydwcm9tcHRfZXZlbnR0eXBlJ10gPSAnRXZlbnQgVHlwZSc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1sncHJvbXB0X3JldHVybiddID0gJ1JldHVybic7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnSW1wb3J0IE9wZXJhdGlvbiBDb21wbGV0ZSc7CiRsYW5nWydwcm9tcHRfbGluZXNwcm9jZXNzZWQnXSA9ICdMaW5lcyBQcm9jZXNzZWQnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0Vycm9ycyBFbmNvdW50ZXJlZCc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnUmVjb3JkcyBBZGRlZCc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnQ291bGQgbm90IGZpbmQgcHJvcGVydGllcyBmb3IgZ3JvdXAgJXMnOwokbGFuZ1snZXJyb3Jfbm9yZXNwb25zZWZyb21zZXJ2ZXInXSA9ICdDb3VsZCBub3QgZ2V0IGEgcmVzcG9uc2UgZnJvbSB0aGUgU01UUCBzZXJ2ZXInOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnRmlsZSBzcGVjaWZpZWQgKCVzKSBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ0ludmFsaWQgdmFsdWUgZm9yIGNvbHVtbiAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZGxlbmd0aCddID0gJ0ZpZWxkICVzIGV4Y2VlZHMgbWF4aW11bSBsZW5ndGgnOwokbGFuZ1snZXJyb3JfaW1wb3J0aW5zZXJ0dXNlciddID0gJ1Byb2JsZW0gY3JlYXRpbmcgdXNlcjogJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXBkYXRldXNlciddID0gJ1Byb2JsZW0gdXBkYXRpbmcgdXNlcjogJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnQgRXJyb3IgKGxpbmUgJXMpOiAlcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0eWRlZm5zJ10gPSAnQ291bGQgbm90IGdldCB0aGUgcHJvcGVydHkgZGVmaW5pdGlvbnMgKGludGVybmFsIGVycm9yKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ2luZm8nXSA9ICdQcm9ibGVtIHNldHRpbmcgdXNlciBpbmZvJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHJlcXVpcmVkZmllbGQnXSA9ICdDb3VsZCBub3QgZmluZCBhIGNvbHVtbiB0byBtYXRjaCB0aGUgcmVxdWlyZWQgZmllbGQgJXMnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3BlcnRpZXMnXSA9ICdDb3VsZCBub3QgZmluZCBwcm9wZXJ0aWVzIGZvciB0aGUgc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVmb3JtYXQnXSA9ICdUaGUgZmlsZSBzcGVjaWZpZWQgZm9yIGltcG9ydCBpcyBub3QgaW4gdGhlIGNvcnJlY3QgZm9ybWF0JzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90b3BlbmZpbGUnXSA9ICdDb3VsZCBub3Qgb3BlbiBmaWxlJzsKJGxhbmdbJ2luZm9faW1wb3J0dXNlcnNmaWxlZm9ybWF0MiddID0gJwo8aDU+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g1Pgo8cD5UaGUgaW5wdXQgZmlsZSBtdXN0IGJlIGluIEFTQ0lJIGZvcm1hdCB1c2luZyBjb21tYSA8ZW0+KG5vcm1hbGx5KTwvZW0+IHNlcGFyYXRlZCB2YWx1ZXMuICBFYWNoIGxpbmUgaW4gdGhpcyBpbnB1dCBmaWxlICh3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIGhlYWRlciBsaW5lLCBkaXNjdXNzZWQgYmVsb3cpIHJlcHJlc2VudHMgb25lIHVzZXIgcmVjb3JkLiAgVGhlIG9yZGVyIG9mIHRoZSBmaWVsZHMgaW4gZWFjaCBsaW5lIG11c3QgYmUgaWRlbnRpY2FsLiAgVGhpcyBpbXBvcnQgcm91dGluZSBhY2NlcHRzIE1BQyBhbmQgdW5peCBsaW5lIGVuZGluZ3MuICBDb2x1bW4gdmFsdWVzIGNhbiBiZSBlbmNsb3NlZCBpbiBkb3VibGUgcXVvdGVzIGlmIHRoZSBkZWxpbWl0ZXIgbWF5IGJlIGNvbnRhaW5lZCB3aXRoaW4gdGhlIGNvbHVtbiB2YWx1ZS48L3A+CjxoNT5IZWFkZXIgbGluZTwvaDU+Cjx1bD4KPGxpPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIG11c3QgYmVnaW4gd2l0aCB0d28gcG91bmQgKFwjKSBjaGFyYWN0ZXJzLCBhbmQgbmFtZXMgZWFjaCBvZiB0aGUgZmllbGRzIGluIHRoZSBmaWxlLiAgVGhlIG5hbWVzIG9mIHRoZXNlIGZpZWxkcyBpcyBzaWduaWZpY2FudC4gIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkIG5hbWVzIChzZWUgYmVsb3cpLCBhbmQgb3RoZXIgZmllbGQgbmFtZXMgbXVzdCBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB1c2VycyBhcmUgZ29pbmcgdG8gYmUgYWRkZWQgaW50by48L2xpPgo8bGk+VGhlIGltcG9ydCBwcm9jZXNzIHdpbGwgZmFpbCBpZiB0aGUgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIGRvZXMgbm90IG1hdGNoIGFsbCBvZiB0aGUgcmVxdWlyZWQgcHJvcGVydGllcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwIHRoYXQgdXNlcnMgYXJlIGJlaW5nIGFkZGVkIGludG88L2xpPgo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGlnbm9yZSBhbnkgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIHRoYXQgYXJlIGVpdGhlciBub3Qga25vd24sIG9yIG1hcCB0byBwcm9wZXJ0aWVzIHRoYXQgYXJlIDxlbT5vZmY8L2VtPiBpbiB0aGUgc3BlY2lmaWVkIHVzZXIgZ3JvdXBzLjwvbGk+CjwvdWw+PGJyLz4KPGg2PjxzdHJvbmc+Q29sdW1uYXIgRGF0YTwvc3Ryb25nPjwvaDY+Cjx1bD4KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNoIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBJZiBhIHVzZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZSBoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSBvdmVyd3JpdHRlbi48L3A+PC9saT4KPGxpPlRoZSA8c3Ryb25nPnR4dHBhc3N3b3JkPC9zdHJvbmc+IEZpZWxkIC0gPGVtPihvcHRpb25hbCk8L2VtPi4gIFRoZSBwYXNzd29yZCB0byBzZXQgZm9yIHRoZSB1c2VyIGluIHBsYWluIHRleHQuICBJZiB0aGUgcGFzc3dvcmQgZmllbGQgaXMgZW1wdHkgd2hlbiBjcmVhdGluZyBuZXcgdXNlcnMgdGhlIHBhc3N3b3JkICZxdW90O2NoYW5nZW1lJnF1b3Q7IGlzIGhhcmRjb2RlZC4gIElmIHRoZSBwYXNzd29yZCBmaWVsZCBpcyBlbXB0eSB3aGVuIHVwZGF0aW5nIGEgdXNlciBoaXMgcGFzc3dvcmQgd2lsbCBub3QgYmUgYWRqdXN0ZWQuPC9saT4KPGxpPlRoZSA8c3Ryb25nPmV4cGlyZXM8L3N0cm9uZz4gRmllbGQgLSA8ZW0+KG9wdGlvbmFsKTwvZW0+LiAgVGhlIGRlc2lyZWQgZXhwaXJ5IGRhdGUgZm9yIHRoZSB1c2VyLiAgSWYgdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQgYW5kIGNhbiBiZSB2YWxpZGF0ZWQgYXMgYSB2YWxpZCBkYXRlIHRoZW4gdGhlIGV4cGlyeSBkYXRlIHdpbGwgYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGEgbmV3IHVzZXIsIG90aGVyd2lzZSBhIGRlZmF1bHQgdmFsdWUgb2YgMTAgZnJvbSB0aGUgY3JlYXRlIGRhdGUgd2lsbCBiZSB1c2VkLiAgSWYgdGhpcyBmaWVsZCBpcyBlbXB0eSB3aGVuIHVwZGF0aW5nIGEgdXNlciB0aGVuIGhpcyBleHBpcnkgd2lsbCBub3QgYmUgYWRqdXN0ZWQuPC9saT4KPGxpPlRoZSA8c3Ryb25nPmdyb3VwbmFtZTwvc3Ryb25nPiBGaWVsZCAtIEEgOiBzZXBhcmF0ZWQgbGlzdCBvZiB0aGUgZ3JvdXAgbmFtZXMgdGhhdCB5b3Ugd2FudCB0byBoYXZlIHRoZSB1c2VyIGJlIGEgbWVtYmVyIG9mLiBJZiBhbGwgcmVxdWlyZWQgZmllbGRzIGFyZSBub3QgZmlsbGVkIGluIHRoZSBpbnNlcnQvdXBkYXRlIG9mIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvbGk+CjxsaT5Ecm9wZG93bi9SYWRpbyBGaWVsZHMKICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4KPC9saT4KPGxpPk11bHRpc2VsZWN0IEZpZWxkcwogIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4KPC9saT4KPGxpPkVtYWlsIEZpZWxkcwogIDxwPk11c3QgYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIHRoYXQgY2FuIGJlIHZhbGlkYXRlZCBieSBQSFBzIGJ1aWx0aW4gZnVuY3Rpb25hbGl0eS48L3A+CjwvbGk+CjxsaT5EYXRlIEZpZWxkcwogIDxwPk11c3QgYmUgaW4gYSBmb3JtYXQgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgdW5peCB0aW1lc3RhbXAgYnkgdGhlIHN0cnRvdGltZSgpIG1ldGhvZC48L3A+CjwvbGk+CjxsaT5JbWFnZSBGaWVsZHMKICAgIDxwPkltYWdlIGFyZSBmaWVsZHMgd2hvXCdzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBub3QgZW1wdHkgdGhlbiB0aGUgZmlsZW5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiBpbWFnZSBkZXN0aW5hdGlvbiBwYXRoIGFzIHNwZWNpZmllZCBpbiB0aGUgRkVVIHByZWZlcmVuY2VzLi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+PC9saT4KPC91bD4KPGg1Pk5vdGVzPC9oNT4KPHA+VGhlIGltcG9ydCBwcm9jZXNzIGlzIGEgbWVtb3J5IGFuZCBkYXRhYmFzZSBpbnRlbnNpdmUgcm91dGluZS4gIEl0IGlzIHN1YmplY3QgdG8gdGhlIGxpbWl0YXRpb25zIGltcG9zZWQgYnkgdGhlIGhvc3QgcHJvdmlkZXIsIHN1Y2ggYXMgbWVtb3J5IGxpbWl0YXRpb25zLCBwcm9jZXNzaW5nIHRpbWUsIGZpbGUgc2l6ZSB1cGxvYWQsIGFuZCBzYWZlIG1vZGUgcmVzdHJpY3Rpb25zLiAgQW55IG9uZSBvZiB0aGVzZSBsaW1pdGF0aW9ucyBtYXkgY2F1c2UgdGhlIGltcG9ydCB0byBmYWlsLiBUaGVyZWZvcmUgaXQgaXMgYWR2aXNhYmxlIHRvIGVuc3VyZSB0aGF0IGltcG9ydCBmaWxlcyBhcmUgc21hbGxlciBpbiBzaXplLCBhbmQgc2ltcGxlciBpbiBuYXR1cmUuPC9wPgo8cD5UaG91Z2ggZXZlcnkgZWZmb3J0IGhhcyBiZWVuIG1hZGUgdG8gZW5zdXJlIHRoYXQgZGF0YWJhc2UgY29ycnVwdGlvbiB3aWxsIG5vdCBvY2N1ciwgaXQgaXMgYWR2aXNhYmxlIHRvIHBlcmZvcm0gYSBkYXRhYmFzZSBiYWNrdXAgYmVmb3JlIGRvaW5nIGEgdXNlciBpbXBvcnQuPC9wPgo8cD5UaGUgRXhwb3J0IGRhdGEgaXMgdGhlIHNhbWUgZm9ybWF0IGFzIG5lZWRlZCBmb3IgaW1wb3J0LiAgSG93ZXZlciBpdCBtYXkgcHJvdmlkZSBleHRyYSBmaWVsZHMgdGhhdCBhcmUgbm90IHJlcXVpcmVkIGZvciBpbXBvcnQuPC9wPgo8aDU+RXhhbXBsZTwvaDU+CjxwcmU+CiMjdXNlcm5hbWUsZmlyc3RfbmFtZSxsYXN0X25hbWUsZW1haWwsY2l0eSxzdGF0ZSxjb3VudHJ5LHppcAp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1CjwvcHJlPgonOwokbGFuZ1sncHJvbXB0X2ltcG9ydGRlc3Rncm91cCddID0gJ0ltcG9ydCBVc2VycyBJbnRvIFRoaXMgR3JvdXAnOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnSW5wdXQgQ1NWIEZpbGUnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdJbnB1dCBYTUwgRmlsZSc7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcnMnXSA9ICdFeHBvcnQgVXNlcnMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0IFVzZXJzJzsKJGxhbmdbJ3Byb21wdF9jbGVhciddID0gJ0NsZWFyJzsKJGxhbmdbJ3Byb21wdF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRoJ10gPSAnSW1hZ2UgRGVzdGluYXRpb24gUGF0aCc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3VwbG9hZCddID0gJ0EgcHJvYmxlbSBvY2N1cnJlZCB3aXRoIGEgbWlzc2luZyAoYnV0IHJlcXVpcmVkKSB1cGxvYWQnOwokbGFuZ1snZXJyb3JfYmFkX3htbCddID0gJ0NvdWxkIG5vdCBwYXJzZSB0aGUgcHJvdmlkZWQgWE1MIGZpbGUnOwokbGFuZ1snZXJyb3Jfbm90ZW1wdHlncm91cCddID0gJ0Nhbm5vdCBkZWxldGUgYSBncm91cCB0aGF0IHN0aWxsIGhhcyB1c2Vycyc7CiRsYW5nWydlcnJvcl9ub3JlcGVhdGVkbG9naW5zJ10gPSAnVGhpcyB1c2VyIGlzIGFscmVhZHkgbG9nZ2VkIGluJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ1NvcnJ5LCBidXQgY2FwdGNoYSB2ZXJpZmljYXRpb24gZmFpbGVkLiAgUGxlYXNlIHRyeSBhZ2Fpbi4nOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ0FsbG93IHVzZXJzIHRvIGxvZ2luIG1vcmUgdGhhbiBvbmNlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdJbWFnZSBGaWxlIEV4dGVuc2lvbnMgdGhhdCBVc2VycyBhbGxvd2VkIHRvIHVwbG9hZCc7CiRsYW5nWydldmVudF9oZWxwX09uUmVmcmVzaFVzZXInXSA9ICcKPGgzPk9uUmVmcmVzaFVzZXI8L2gzPgo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiB0aGUgdXNlciBzZXNzaW9uIGlzIHJlZnJlc2hlZC48L3A+CjxoND5QYXJhbWV0ZXJzOjwvaDQ+Cjx1bD4KICA8bGk+PGVtPmlkPC9lbT4gLSBUaGUgVXNlciBpZDwvbGk+CjwvdWw+Cic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlVXNlciddID0gJwo8aDM+T25EZWxldGVVc2VyPGgzPgo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgZGVsZXRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPgo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+CjwvdWw+Cic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJwo8aDM+T25DcmVhdGVVc2VyPGgzPgo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgY3JlYXRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+CjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4KPC91bD4KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnCjxoMz5PblVwZGF0ZVVzZXI8aDM+CjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyB1cGRhdGVkIChlaXRoZXIgYnkgdXNlciB0aGVtc2VsZiBvciBhZG1pbik8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPgo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+CjwvdWw+Cic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlR3JvdXAnXSA9ICcKPGgzPk9uQ3JlYXRlR3JvdXA8aDM+CjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZ3JvdXAgaXMgY3JlYXRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIGdyb3VwIG5hbWU8L2xpPgo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgZ3JvdXAgZGVzY3JpcHRpb248L2xpPgo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPgo8L3VsPgonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnCjxoMz5PbkRlbGV0ZUdyb3VwPGgzPgo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGRlbGV0ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4KPC91bD4KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfQWZ0ZXJMb2dpbkF1dGgnXSA9ICcKPGgzPk9uTG9naW48aDM+CjxwPkFuIGV2ZW50IHNlbnQgd2hlbiBhIHVzZXIgbG9ncyBpbjwsIGFmdGVyIGF1dGhlbnRpY2F0aW9uLCBidXQgYmVmb3JlIHNlc3Npb24gaW5mb3JtYXRpb24gaXMgY3JlYXRlZCwgYW5kIHRoZSBzeXN0ZW0gcmVjb2duaXplcyBoaW0gYXMgbG9nZ2VkIGluLgpUaGlzIGV2ZW50IGNhbiBiZSB1c2VkIGJ5IHRoaXJkIHBhcnR5IG1vZHVsZXMgdG8gYWlkZSBpbiBzZWN1cml0eSBmb3IgRkVVLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBpZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPgo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPgo8bGk+PGVtPmlwPC9lbT4gLSBUaGUgaXAgYWRkcmVzcyBvZiB0aGUgY2xpZW50PC9saT4KPGxpPjxlbT5hbGxvdzwvZW0+IC0gYm9vbGVhbiByZWZlcmVuY2UgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB1c2VyIHNob3VsZCBiZSBhbGxvd2VkIHRvIGxvZ2luLiAgTW9kdWxlcyBjYW4gc2V0IHRoaXMgdG8gZmFsc2UgdG8gZGlzYWxsb3cgbG9naW4uPC9saT4KPGxpPjxlbT5tc2c8L2VtPiAtIHN0cmluZyBtZXNzYWdlIHRvIGluZGljYXRlIHRoZSBuYXR1cmUgb2YgdGhlIHByb2JsZW0gaWYgYSBtb2R1bGUgaGFzIHNldCBhbGxvdyB0byBmYWxzZS48L2xpPgo8L3VsPgonOwokbGFuZ1snZXZlbnRfaGVscF9CZWZvcmVMb2dpbiddID0gJwo8aDM+T25Mb2dpbjxoMz4KPHA+QW4gZXZlbnQgc2VudCB3aGVuIGEgdXNlciBsb2dzIGluPCwgYWZ0ZXIgbG9naW4gZm9ybSBzdWJtaXNzaW9uLCBidXQgYmVmb3JlIHRoZXkgYXJlIGF1dGhlbnRpY2F0ZWQuLi4KVGhpcyBldmVudCBjYW4gYmUgdXNlZCBieSB0aGlyZCBwYXJ0eSBtb2R1bGVzIHRvIGFpZGUgaW4gc2VjdXJpdHkgZm9yIEZFVS48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgaWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4KPGxpPjxlbT5pcDwvZW0+IC0gVGhlIGlwIGFkZHJlc3Mgb2YgdGhlIGNsaWVudDwvbGk+CjxsaT48ZW0+YWxsb3c8L2VtPiAtIGJvb2xlYW4gcmVmZXJlbmNlIGluZGljYXRpbmcgd2hldGhlciB0aGUgdXNlciBzaG91bGQgYmUgYWxsb3dlZCB0byBsb2dpbi4gIE1vZHVsZXMgY2FuIHNldCB0aGlzIHRvIGZhbHNlIHRvIGRpc2FsbG93IGxvZ2luLjwvbGk+CjxsaT48ZW0+bXNnPC9lbT4gLSBzdHJpbmcgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGUgbmF0dXJlIG9mIHRoZSBwcm9ibGVtIGlmIGEgbW9kdWxlIGhhcyBzZXQgYWxsb3cgdG8gZmFsc2UuPC9saT4KPC91bD4KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dpbiddID0gJwo8aDM+T25Mb2dpbjxoMz4KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgaWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4KPGxpPjxlbT5pcDwvZW0+IC0gVGhlIGlwIGFkZHJlc3Mgb2YgdGhlIGNsaWVudDwvbGk+CjwvdWw+Cic7CiRsYW5nWydldmVudF9oZWxwX09uTG9naW5GYWlsZWQnXSA9ICcKPGgzPk9uTG9naW5GYWlsZWQ8aDM+CjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dpbiBmYWlsczwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+CjxsaT48ZW0+bXNnPC9lbT4gLSBBIG1lc3NhZ2UgaW5kaWNhdGluZyB3aHkgdGhlIGxvZ2luIGZhaWxlZC4vbGk+CjwvdWw+Cic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4KPC91bD4KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25FeHBpcmVVc2VyJ10gPSAnCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGV4cGlyZXM8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+CjwvdWw+Cic7CiRsYW5nWydldmVudF9pbmZvX0JlZm9yZUxvZ2luJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW4gdG8gdGhlIHN5c3RlbSwgYWZ0ZXIgaGUgaXMgaGFzIHN1Ym1pdHRlZCB0aGUgbG9naW4gZm9ybSwgYnV0IGJlZm9yZSBhbnkgYXV0aGVudGljYXRpb24gaXMgdGVzdGVkLic7CiRsYW5nWydldmVudF9pbmZvX09uTG9naW4nXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbiB0byB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbkZhaWxlZCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBmYWlscyB0byBsb2cgaW4gdG8gdGhlIHN5c3RlbSc7CiRsYW5nWydldmVudF9pbmZvX09uTG9nb3V0J10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0IG9mIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkV4cGlyZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgc2Vzc2lvbiBpcyBleHBpcmVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBuZXcgdXNlciBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25SZWZyZXNoVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIHRoZSB1c2VyIHNlc3Npb24gaXMgcmVmcmVzaGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGluZm8gaXMgdXBkYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBhY2NvdW50IGlzIGRlbGV0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZUdyb3VwJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGdyb3VwIGlzIGNyZWF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZUdyb3VwJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGdyb3VwIGlzIHVwZGF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZUdyb3VwJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGdyb3VwIGlzIGRlbGV0ZWQnOwokbGFuZ1snYmFja2VuZF9ncm91cCddID0gJ0JhY2tlbmQgR3JvdXAnOwokbGFuZ1snaW5mb19zdGFyJ10gPSAnKiBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgZnVsbCBzbWFydHkgdGVtcGxhdGVzLjxici8+QWxvbmcgd2l0aCBvdGhlciBwcmUtZXhpc3Rpbmcgc21hcnR5IHZhcmlhYmxlcyBhbmQgcGx1Z2lucywgdGhlIHskdXNlcm5hbWV9IGFuZCB7JGdyb3VwfSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJpZS4gIDxlbT4oVGhlIHskZ3JvdXB9IHZhcmlhYmxlIG1hdGNoZXMgdGhlIGZpcnN0IGdyb3VwIHRvIHdoaWNoIHRoZSB1c2VyIGJlbG9uZ3MuKTwvZW0+Lic7CiRsYW5nWydpbmZvX2FkbWluX3Bhc3N3b3JkJ10gPSAnRWRpdCB0aGlzIGZpZWxkIHRvIHJlc2V0IHRoZSB1c2VycyBwYXNzd29yZCc7CiRsYW5nWydpbmZvX2FkbWluX3JlcGVhdHBhc3N3b3JkJ10gPSAnRWRpdCB0aGlzIGZpZWxkIHRvIHJlc2V0IHRoZSB1c2VycyBwYXNzd29yZCc7CiRsYW5nWydlcnJvcl91c2VybmFtZV9leGlzdHMnXSA9ICdBIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ25vY3N2cmVzdWx0cyddID0gJ05vIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSBjc3YgZXhwb3J0JzsKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ0xlbmd0aCBvZiB1c2VybmFtZSBmaWVsZCc7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdMZW5ndGggb2YgcGFzc3dvcmQgZmllbGQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ01pbi9NYXggcGFzc3dvcmQgbGVuZ3RocyBhcmUgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWVsZW5ndGhzJ10gPSAnTWluL01heCB1c2VybmFtZSBsZW5ndGhzIGFyZSBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdJbnZhbGlkIEVtYWlsIGFkZHJlc3MnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdXZSBjb3VsZCBub3QgZmluZCBhbiBlbWFpbCBhZGRyZXNzIGZvciB0aGlzIGFjY291bnQnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNlZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3Jfc2V0dGluZ3Byb3BlcnR5J10gPSAnUHJvYmxlbSBzZXR0aW5nIHByb3BlcnR5JzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdVc2VyIEFkZGVkICVzID0gJXMnOwokbGFuZ1sndXNlcl9kZWxldGVkJ10gPSAnVXNlciBEZWxldGVkIHVpZD0lcyc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ1Byb3BlcnR5JzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWYWx1ZSAocmVndWxhciBleHByZXNzaW9uKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ1dhcm5pbmc6IFRoZXNlIGZpZWxkcyBhZmZlY3QgdGhlIHNpemUgb2YgaW5wdXQgZmllbGRzIGZvciBmb3Jtcy4gIERlY3JlYXNpbmcgdGhpcyBudW1iZXIgb24gYW4gZXhpc3Rpbmcgc2l0ZSBtYXkgbm90IGJlIGFkdmlzYWJsZSc7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFkanVzdCB0aGUgbW9kdWxlIHByZWZlcmVuY2VzPyc7CiRsYW5nWydlcnJvcl9lbWFpbGFscmVhZHl1c2VkJ10gPSAnRW1haWwgYWRkcmVzcyBhbHJlYWR5IHVzZWQnOwokbGFuZ1sncHJvbXB0X3VzZWNvb2tpZXN0b3JlbWVtYmVyJ10gPSAnVXNlIGNvb2tpZXMgdG8gcmVtZW1iZXIgbG9naW4gZGV0YWlscyc7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ1RoZSBuYW1lIG9mIHRoZSAmcXVvdDtSZW1lbWJlciBNZSZxdW90OyBjb29raWUnOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgZW1haWxzJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCddID0gJ0VtYWlsIGFkZHJlc3MgaXMgdXNlcm5hbWUnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnSWYgZW5hYmxlZCwgYSBjb29raWUgd2lsbCBiZSBzZXQgaXRoIGFuIGV4cGlyeSB0aW1lIG9mIDI0IGhvdXJzIHRvIGtlZXAgc2Vzc2lvbnMgYWxpdmUuICBUaGlzIGlzIGRpZmZlcmVudCB0aGFudCB0aGUgcmVtZW1iZXJtZSBmdW5jdGlvbmFsaXR5LCBhbmQgY2FuIGJlIHVzZWQgdG8gZXh0ZW5kIGEgdXNlcnMgbG9naW4gdG8gdGhlIHN5c3RlbSBpZiBzZXNzaW9uIGRhdGEgaXMgY2xlYXJlZCB0b28gZnJlcXVlbnRseS4nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKEFsbG93IG11bHRpcGxlIHVzZXJzIHdpdGggdGhlIHNhbWUgZW1haWwgYWRkcmVzcyknOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyh1c2VyXCdzIGVtYWlsIGFkZHJlc3MgaXMgdGhlaXIgdXNlcm5hbWUgLS0gZG9uXCd0IHNldCB0aGlzIHdpdGggImFsbG93IGR1cGxpY2F0ZSBlbWFpbCBhZGRyZXNzZXMiISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgImZvcmdvdCBwYXNzd29yZCIgcmVtaW5kZXJzPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoQWxsb3cgYSB1c2VycyB0byByZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQsIGV2ZW4gaWYgdGhleSBoYXZlblwndCBhY3RlZCBvbiBhIHByZXZpb3VzIG9uZSknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdVc2UgRnJvbnQtZW5kIFVzZXIgc3BlY2lmaWMgcGVybWlzc2lvbnM/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhOb3JtYWxseSwgRkVVU2VycyBwZXJtaXNzaW9ucyBhcmUgdGhlIHNhbWUgYXMgdGhlIGVxdWl2YWxlbnQgQWRtaW4gQXJlYSBwZXJtaXNzaW9ucyBsaWtlIEFkZCBVc2VyLCBBZGQgR3JvdXAsIGV0Yy4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlcmUgd2lsbCBiZSBzZXBhcmF0ZSBwZXJtaXNzaW9ucyBmb3IgRkVVc2Vycy4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkZWQgZmlsZSAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJ10gPSAnVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHlvdXIgdXBsb2FkZWQgZmlsZS4gIFBsZWFzZSB0cnkgYWdhaW4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnWW91IGRpZCBub3QgZW50ZXIgYSB1c2VybmFtZSc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdZb3UgZGlkIG5vdCBlbnRlciB5b3VyIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ1lvdSBkaWQgbm90IGVudGVyIGEgcGFzc3dvcmQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0Zyb250ZW5kIFVzZXIgTG9nb3V0JzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0Zyb250ZW5kIFVzZXIgTG9naW4nOwokbGFuZ1snZWRpdHByb3BfaW5mb21zZyddID0gJzxmb250IGNvbG9yPSJyZWQiPjxiPlVTRSBDQVVUSU9OPC9iPiB3aGVuIGNoYW5naW5nIGV4aXN0aW5nIHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gZ3JvdXBzLCB5b3UgbWF5IHBvdGVudGlhbGx5IGNhdXNlIGRhbWFnZSBhbmQgYnJlYWsgYW4gZXhpc3Rpbmcgc2l0ZSA8aT4oZXNwZWNpYWxseSBpZiB5b3UgcmVkdWNlIGZpZWxkIGxlbmd0aHMsIGV0Yyk8L2k+PC9mb250Pic7CiRsYW5nWydpbmZvX3NtdHB2YWxpZGF0ZSddID0gJ1RoaXMgZnVuY3Rpb24gZG9lcyBub3Qgd29yayBvbiB3aW5kb3dzJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdEbyBub3QgY3JlYXRlIGEgcHJvcGVydHkgZm9yIHVzZXJuYW1lLCBvciBwYXNzd29yZCBhcyB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBidWlsdGluIHRvIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfZXhwb3J0Y3N2J10gPSAnRXhwb3J0IFVzZXJzIHRvIENTVic7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnQnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0JzsKJGxhbmdbJ2FkbWluJ10gPSAnQWRtaW4nOwokbGFuZ1snZWRpdHByb3AnXSA9ICdFZGl0IFByb3BlcnR5OiA8ZW0+JXM8L2VtPic7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWydjcmVhdGVkJ10gPSAnQ3JlYXRlZCc7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0IEJ5JzsKJGxhbmdbJ3NvcnQnXSA9ICdTb3J0aW5nJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ1VzZXJzIGluIHRoZSBzZWxlY3RlZCBncm91cChzKSc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdMaW1pdCByZXN1bHRzIHRvJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGFuIGVtYWlsIGZpZWxkIGZvciB0aGlzIHVzZXIuICBZb3UgbWF5IG5lZWQgdG8gY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3InOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgZm9yIEZvcmdvdCBQYXNzd29yZCBmb3JtJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGZvciBDaGFuZ2UgU2V0dGluZ3MgZm9ybSc7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGxvZ2luIConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgbG9nb3V0IConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydwcm9tcHRfbnVtcmVzZXRyZWNvcmQnXSA9ICdBIG51bWJlciBvZiB1c2VycyBhcmUgaW4gdGhlIG1pZGRsZSBvZiByZXNldHRpbmcgbG9zdCBwYXNzd29yZHMuICBDdXJyZW50bHkgdGhpcyBjb3VudCBpcyBhdDonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgd2VlayBvbGQnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnUmVtb3ZlIGFsbCBlbnRyaWVzIG1vcmUgdGhhbiBhIG1vbnRoIG9sZCc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZT8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICdBbiBpbnZhbGlkIGNvZGUgaGFzIGJlZW4gZW50ZXJlZCwgcGxlYXNlIHRyeSBhZ2Fpbic7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnU29ycnksIEl0IGFwcGVhcnMgdGhhdCB0aGUgdGVtcG9yYXJ5IGNvZGUgeW91IHJlY2VpdmVkIGZvciByZXNldHRpbmcgeW91ciBwYXNzd29yZCBpcyBub3cgaW52YWxpZCAodGVtcG9yYXJ5IGNvZGVzIGNhbiBvbmx5IGJlIHVzZWQgb25jZSkuICBQbGVhc2UgdHJ5IGFnYWluLic7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB2ZXJpZmljYXRpb24gZm9ybSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdXNlZCBmb3IgZm9yZ290dGVuIHBhc3N3b3JkIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX3Jlc2V0YWxyZWFkeXNlbnQnXSA9ICdFaXRoZXIgeW91cnNlbGYgb3Igc29tZW9uZSBlbHNlIGhhcyBhbHJlYWR5IHRyaWdnZXJlZCBhIHBhc3N3b3JkIHJlc2V0IG9wZXJhdGlvbiBmb3IgdGhpcyBhY2NvdW50LiAgQ2hlY2sgeW91ciBlbWFpbCwgeW91IG1heSBoYXZlIGZ1cnRoZXIgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byByZXNldCB5b3VyIHBhc3N3b3JkIGluIHlvdXIgaW5ib3gnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGFiYXNlIGVycm9yJzsKJGxhbmdbJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCddID0gJ1lvdSBhcmUgcmVjZWl2aW5nIHRoaXMgbWVzc2FnZSBiZWNhdXNlIHNvbWVib2R5IHRvbGQgb3VyIHNpdGUgdGhhdCB5b3UgaGFkIGxvc3QgeW91ciBwYXNzd29yZC4gIElmIHRoaXMgaXMgdGhlIGNhc2UsIHJlYWQgdGhlIGluc3RydWN0aW9ucyBiZWxvdy4gIElmIHlvdSBkb25cJ3QgaGF2ZSBhIGNsdWUgd2hhdCB0aGlzIGlzLCB0aGVuIHlvdSBhcmUgc2FmZSB0byBkZWxldGUgdGhpcyBtZXNzYWdlLCBhbmQgd2UgdGhhbmsgeW91IGZvciB5b3VyIHRpbWUuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnQ29kZSc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdUaGUgZm9sbG93aW5nIGNvZGUgaGFzIGJlZW4gcmFuZG9tbHkgZ2VuZXJhdGVkIGluIG9yZGVyIHRvIHZlcmlmeSB0aGUgdXNlciBhY2NvdW50LiAgd2hlbiB5b3UgY2xpY2sgb24gdGhlIGxpbmsgYmVsb3cgeW91IHdpbGwgYmUgcHJlc2VudGVkIHdpdGggYSBmaWVsZCB0byBlbnRlciB0aGlzIGNvZGUuICBOb3JtYWxseSB0aGUgZmllbGQgaXMgcHJlLWNvbXBsZXRlZCBmb3IgeW91LCBidXQgaW5jYXNlIGl0IGlzblwndCB0aGUgY29kZSBpczonOwokbGFuZ1sncHJvbXB0X2xpbmsnXSA9ICdDbGlja2luZyBvbiB0aGUgZm9sbG93aW5nIGxpbmsgd2lsbCB0YWtlIHlvdSB0byB0aGUgd2Vic2l0ZSB3aGVyZSB5b3UgY2FuIGVudGVyIHRoZSBhYm92ZSBjb2RlLCBhbmQgcmVzZXQgeW91ciBwYXNzd29yZDonOwokbGFuZ1snbG9zdHBhc3N3b3JkX2VtYWlsc3ViamVjdCddID0gJ0xvc3QgUGFzc3dvcmQnOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgQ01TTWFpbGVyIG1vZHVsZSc7CiRsYW5nWydpbmZvX2ZvcmdvdHB3bWVzc2FnZXNlbnQnXSA9ICdBbiBlbWFpbCBoYXMgYmVlbiBzZW50IHRvICVzIHdpdGggaW5zdHJ1Y3Rpb25zIGFzIHRvIGhvdyB0byByZXNldCB5b3VyIHBhc3N3b3JkLiAgVGhhbmsgeW91JzsKJGxhbmdbJ2xvc3Rwd19tZXNzYWdlJ10gPSAnU28geW91IGZvcmdvdCBvciBsb3N0IHlvdXIgcGFzc3dvcmQuIFdlbGwsIGVudGVyIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBpbnRvIHRoaXMgZm9ybSwgYW5kIGlmIHdlIGNhbiBmaW5kIHlvdSB3ZSB3aWxsIHNlbmQgeW91IGFuIGVtYWlsIHdpdGggaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byByZXNldCBpdC4nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdGb3Jnb3QgUGFzc3dvcmQgVGVtcGxhdGVzJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgVGVtcGxhdGUnOwokbGFuZ1snZXJyb3JfcHJvcG5vdGZvdW5kJ10gPSAnUHJvcGVydHkgJXMgbm90IGZvdW5kJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdQcm9wZXJ0aWVzIGZvdW5kJzsKJGxhbmdbJ2FkZHByb3AnXSA9ICdBZGQgUHJvcGVydHknOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ0EgcmVxdWlyZWQgZmllbGQgKCVzKSB3YXMgZW1wdHknOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdFbnRlciBhIG5ldyBwYXNzd29yZCBoZXJlIHRvIGNoYW5nZSB5b3VyIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnWW91IGRvIG5vdCBhcHBlYXIgdG8gYmUgbG9nZ2VkIGluJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdHJhdGlvbic7CiRsYW5nWydlcnJvcl9hY2NvdW50ZXhwaXJlZCddID0gJ1RoaXMgYWNjb3VudCBoYXMgZXhwaXJlZCc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnSW1wcm9wZXIgZW1haWwgYWRkcmVzcyBmb3JtYXR0aW5nJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRleHBpcnlkYXRlJ10gPSAnSW52YWxpZCBleHBpcnkgZGF0ZS4gIFRoaXMgbWF5IGJlIHN5c3RlbSByZWxhdGVkLiAgVHJ5IHNldHRpbmcgYW4gZWFybGllciB5ZWFyLic7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ3Byb3BlcnR5J10gPSAnRXJyb3Igc2V0dGluZyBwcm9wZXJ0eSAlcyBmb3IgdXNlciAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ0ludmFsaWQgZ3JvdXAgaWQgJXMnOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ0hpZGRlbiBmaWVsZCBtYXJrZXInOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0hpZGRlbiBmaWVsZCBjb2xvcic7CiRsYW5nWydoaWRkZW4nXSA9ICdIaWRkZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlbmFtZSddID0gJ0EgcHJvcGVydHkgd2l0aCB0aGF0IG5hbWUgaXMgYWxyZWFkeSBkZWZpbmVkJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ05vIHByb3BlcnRpZXMgZGVmaW5lZCc7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ05vIHByb3BlcnRpZXMgd2VyZSBzZWxlY3RlZCBmb3IgdGhpcyBncm91cC4gIEEgZ3JvdXAgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSBzZWxlY3RlZCAoUmVxdWlyZWQsT3B0aW9uYWwsIG9yIEhpZGRlbiknOwokbGFuZ1snbm9ncm91cHMnXSA9ICdObyBHcm91cHMgYXJlIGRlZmluZWQnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdHcm91cHMgZm91bmQnOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ01lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdSZXF1aXJlIG1lbWJlcnNoaXAgaW4gYXRsZWFzdCBvbmUgZ3JvdXAnOwokbGFuZ1snYmFjayddID0gJ0JhY2snOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzIGlzIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ01hcmsgcmVxdWlyZWQgZmllbGRzIHdpdGgnOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnSGlsaXRlIHJlcXVpcmVkIGZpZWxkcyBpbic7CiRsYW5nWyduZXh0J10gPSAnTmV4dCc7CiRsYW5nWydlcnJvcl9ncm91cGV4aXN0cyddID0gJ0EgR3JvdXAgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWydvcHRpb25hbCddID0gJ09wdGlvbmFsJzsKJGxhbmdbJ29mZiddID0gJ09mZic7CiRsYW5nWydzaXplJ10gPSAnU2l6ZSc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1heGltdW0gc2l6ZSBvZiBhbnkgb25lIGRpbWVuc2lvbiBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzKSc7CiRsYW5nWydsZW5ndGgnXSA9ICdMZW5ndGgnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oY2hhcnMgaW4gdGhlIHRleHQgaW5wdXQpJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdEcm9wZG93biBvcHRpb25zLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuICBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3JhZGlvb3B0aW9ucyddID0gJ1JhZGlvYnV0dG9uIGxhYmVscywgc2VwYXJhdGVkIGJ5IGxpbmUgYnJlYWtzLiBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWydwcm9tcHQnXSA9ICdQcm9tcHQnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1snZmllbGRzdGF0dXMnXSA9ICdGaWVsZCBTdGF0dXMnOwokbGFuZ1sndXNlZGlubG9zdHVuJ10gPSAnQXNrIGluIExvc3Q8YnIvPlVzZXJuYW1lJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snbXVsdGlzZWxlY3QnXSA9ICdNdWx0aSBTZWxlY3QgTGlzdCc7CiRsYW5nWydyYWRpb2J1dHRvbnMnXSA9ICdSYWRpbyBCdXR0b25zJzsKJGxhbmdbJ2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snZW1haWwnXSA9ICdFbWFpbCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHRhcmVhJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICdXZWxjb21lJzsKJGxhbmdbJ2xvZ291dCddID0gJ1NpZ24gb3V0JzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdVc2UgdGhpcyBncm91cCBuYW1lJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ0NoYW5nZSBNeSBTZXR0aW5ncyc7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ0xvZ2luIGZhaWxlZC4gIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB5b3UgZW50ZXJlZCBhbiBpbnZhbGlkIHVzZXJuYW1lIG9yIHBhc3N3b3JkLiAgQnV0IHlvdXIgYWNjb3VudCBtYXkgaGF2ZSBhbHNvIGV4cGlyZWQgb3IgYmVlbiBkaXNhYmxlZCBieSBhbiBhZG1pbmlzdHJhdG9yLiAgUGxlYXNlIGRvdWJsZSBjaGVjayB5b3VyIGxvZ2luIGNyZWRlbnRpYWxzLCBhbmQgaWYgdGhleSBhcmUgY29ycmVjdCB5b3UgbWF5IG5lZWQgdG8gY29udGFjdCB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yLic7CiRsYW5nWydsb2dpbiddID0gJ1NpZ24gaW4nOwokbGFuZ1sncHJvbXB0X3NpZ25pbl9idXR0b24nXSA9ICdTaWduIGluIGJ1dHRvbiBsYWJlbCc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CiRsYW5nWydwcm9tcHRfZW1haWwnXSA9ICdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ1Bhc3N3b3JkJzsKJGxhbmdbJ3Byb21wdF9yZW1lbWJlcm1lJ10gPSAnUmVtZW1iZXIgbWUgb24gdGhpcyBjb21wdXRlcic7CiRsYW5nWydyZWdpc3RlciddID0gJ1JlZ2lzdGVyJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnRm9yZ290IFlvdXIgUGFzc3dvcmQ/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ0ZvcmdvdCBZb3VyIExvZ2luIERldGFpbHM/JzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAnRGVmYXVsdHMnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnVGhhdCB1c2VybmFtZSAoJXMpIGlzIGFscmVhZHkgaW4gdXNlJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdVc2UgU01UUCB0byB2YWxpZGF0ZSBlbWFpbCBhZGRyZXNzZXM/JzsKJGxhbmdbJ3Byb21wdF9taW5wd2xlbiddID0gJ01pbmltdW0gUGFzc3dvcmQgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ01heGltdW0gUGFzc3dvcmQgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ01pbmltdW0gVXNlcm5hbWUgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9tYXh1bmxlbiddID0gJ01heGltdW0gVXNlcm5hbWUgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1Nlc3Npb24gVGltZW91dCAoc2Vjb25kcyknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ1VzZSBjb29raWVzIHRvIGtlZXAgbG9naW5zIGFsaXZlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnQWxsb3cgRW1haWwgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ3Byb21wdF9kZmx0Z3JvdXAnXSA9ICdEZWZhdWx0IEdyb3VwIGZvciBuZXcgdXNlcnMnOwokbGFuZ1snY2hhbmdlc2V0dGluZ3NfdGVtcGxhdGUnXSA9ICdDaGFuZ2UgU2V0dGluZ3MgVGVtcGxhdGUnOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ1Bhc3N3b3JkcyBEbyBub3QgbWF0Y2gnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnSW52YWxpZCBVc2VybmFtZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdJbnZhbGlkIFBhc3N3b3JkLiAgWW91ciBwYXNzd29yZCBtYXkgYmUgdG9vIHNob3J0LCB0b28gbG9uZywgb3Igbm90IHN0cm9uZyBlbm91Z2ggZm9yIHRoaXMgc3lzdGVtLiAgU2VlIHRoZSB3ZWJzaXRlcyBwYXNzd29yZCBwb2xpY3kgZm9yIG1vcmUgaW5mb3JtYXRpb24uJzsKJGxhbmdbJ2Vycm9yX3VzZXJub3Rmb3VuZCddID0gJ1NvcnJ5LCBzb21ldGhpbmcgaGFzIGdvbmUgd3JvbmcuICBXZSBjb3VsZCBub3QgZmluZCBhbnkgaW5mb3JtYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdXNlcic7CiRsYW5nWydlZGl0dXNlciddID0gJ0VkaXQgVXNlcic7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnVXNlcm5hbWUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJ1RoaXMgdXNlciBpcyBub3QgYSBtZW1iZXIgb2YgYW55IGdyb3Vwcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnTm8gUHJvcGVydGllcyc7CiRsYW5nWydlcnJvcl9kdXBfcHJvcGVydGllcyddID0gJ0F0dGVtcHQgdG8gaW1wb3J0IGR1cGxpY2F0ZSBwcm9wZXJ0aWVzJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVmFsdWUnOwokbGFuZ1snZ3JvdXBzJ10gPSAnR3JvdXBzJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdQcm9wZXJ0aWVzJzsKJGxhbmdbJ3Byb3BuYW1lJ10gPSAnUHJvcGVydHkgTmFtZSc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdQcm9wZXJ0eSBWYWx1ZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1snaGlzdG9yeSddID0gJ0hpc3RvcnknOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZXhwaXJlcyddID0gJ0V4cGlyZXMnOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnU3BlY2lmeSBEYXRlJzsKJGxhbmdbJzEyaHJzJ10gPSAnMTIgSG91cnMnOwokbGFuZ1snMjRocnMnXSA9ICcyNCBIb3Vycyc7CiRsYW5nWyc0OGhycyddID0gJzQ4IEhvdXJzJzsKJGxhbmdbJzF3ZWVrJ10gPSAnMSBXZWVrJzsKJGxhbmdbJzJ3ZWVrcyddID0gJzIgV2Vla3MnOwokbGFuZ1snMW1vbnRoJ10gPSAnMSBNb250aCc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBNb250aHMnOwokbGFuZ1snNm1vbnRocyddID0gJzYgTW9udGhzJzsKJGxhbmdbJzF5ZWFyJ10gPSAnMSBZZWFyJzsKJGxhbmdbJ25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1sncG9zdGluc3RhbGxtZXNzYWdlJ10gPSAnTW9kdWxlIGluc3RhbGxlZCBzdWNlc3NmdWxseS48YnIvPkJlIHN1cmUgdG8gc2V0IHRoZSAiTW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24uICBBZGRpdGlvbmFsbHksIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gIElmIGluc3RhbGxlZCwgdmFsaWRhdGlvbiBvZiBhIGNhcHRjaGEgaW1hZ2Ugd2lsbCBiZSByZXF1aXJlZCBpbiBhZGRpdGlvbiB0byB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ2luLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGJydXRlIGZvcmNlIGF0dGFja3MuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBub2NhcHRjaGEgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGV2ZW4gaWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZC4iJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRW1haWwgQWRkcmVzcyc7CiRsYW5nWydwYXNzd29yZCddID0gJ1Bhc3N3b3JkJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnQWdhaW4nOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ0dyb3VwIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlZGl0Z3JvdXAnXSA9ICdFZGl0IEdyb3VwJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnQXJlIHlvdSBzdXJlIHRoaXMgaXMgdGhlIHByb3BlciBzZXR0aW5ncyBmb3IgdGhpcyBncm91cD9cblR1cm5pbmcgYSBwcm9wZXJ0eSBvZmYgd2lsbCBub3QgZGVsZXRlIGFueSBlbnRyaWVzIGluIHRoZSBwcm9wZXJ0aWVzIHRhYmxlIGZvciB0aGlzIGdyb3VwL3VzZXIuICBUaGV5IHdpbGwgbWVyZWx5IGJlIHVuYXZhaWxhYmxlLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGdyb3VwPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9wcm9wJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbXBsZXRlbHkgZGVsZXRlIHRoaXMgcHJvcGVydHk/XG5Eb2luZyBzbyB3aWxsIGFsc28gZXJhc2UgYW55IHVzZXIgZW50cmllcyBmb3IgdGhpcyBwcm9wZXJ0eS4nOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnSW5zdWZmaWNpZW50IFBhcmFtZXRlcnMnOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWyd1c2VybmFtZSddID0gJ1VzZXJuYW1lJzsKJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRwcm9wJ10gPSAnUHJvYmxlbSBhZGRpbmcgcHJvcGVydHknOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwcmVsbiddID0gJ1Byb2JsZW0gYWRkaW5nIGdyb3VwIHJlbGF0aW9uJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZW0gYWRkaW5nIGdyb3VwJzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnUHJvYmxlbSBhZGRpbmcgYSB1c2VyIHRvIGEgZ3JvdXAnOwokbGFuZ1snZXJyb3JfY291bGRub3RkZWxldGVwcm9wZXJ0eSddID0gJ1Byb2JsZW0gZGVsZXRpbmcgYSBwcm9wZXJ0eSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGZpbmRlbWFpbCddID0gJ0NvdWxkIG5vdCBmaW5kIGFuIGVtYWlsIGFkZHJlc3MnOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ05vIHdyaXRlIHBlcm1pc3Npb24gdG8gZGVzdGluYXRpb24gZGlyZWN0b3J5JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbXMnXSA9ICdJbnZhbGlkIFBhcmFtZXRlcnMnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHMnXSA9ICdDb3VsZCBub3QgZmluZCBhbnkgZ3JvdXBzJzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnQXBwbHknOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ3VzZXJmaWx0ZXInXSA9ICdVc2VybmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdHcm91cCBOYW1lJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzcyBEZW5pZWQnOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvcic7CiRsYW5nWydhZGRncm91cCddID0gJ0FkZCBHcm91cCc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ0ltcG9ydCBHcm91cCc7CiRsYW5nWydhZGR1c2VyJ10gPSAnQWRkIFVzZXInOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdHcm91cHMgRm91bmQnOwokbGFuZ1sndXNlcnNmb3VuZCddID0gJ1VzZXJzIGZvdW5kIHRoYXQgbWF0Y2ggdGhlIGNyaXRlcmlhJzsKJGxhbmdbJ2dyb3VwJ10gPSAnR3JvdXAnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdTZWxlY3QgR3JvdXAnOwokbGFuZ1sncmVnaXN0cmF0aW9uX3RlbXBsYXRlJ10gPSAnUmVnaXN0cmF0aW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2xvZ291dF90ZW1wbGF0ZSddID0gJ0xvZ291dCBUZW1wbGF0ZSc7CiRsYW5nWydsb2dpbl90ZW1wbGF0ZSddID0gJ0xvZ2luIFRlbXBsYXRlJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1snZ3JvdXBzJ10gPSAnR3JvdXBzJzsKJGxhbmdbJ3VzZXJzJ10gPSAiVXNlcnMiOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRnJvbnRlbmQgVXNlciBNYW5hZ2VtZW50JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQWxsb3cgdXNlcnMgdG8gbG9nIGluIHRvIHRoZSBmcm9udGVuZCBvZiB5b3VyIHNpdGUnOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gIkRlZmF1bHQgZnJvbnQgcGFnZSI7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAnTGFzdCBhY2Nlc3NlZCBwYWdlJzsKJGxhbmdbJ290aGVycGFnZSddID0gJ090aGVyIHBhZ2U6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnUGxlYXNlIHZlcmlmeSB5b3UgYXJlIG5vdCBhIGJvdC4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/ca_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FueV9sb2dnZWRfaW5fdXNlciddID0gJ1F1YWxzZXZvbCB1c3VhcmkgY29uZWd1dCc7CiRsYW5nWyd2aXNpdG9yc190YWInXSA9ICdWaXNpdGFudHMnOwokbGFuZ1snZmV1X2dyb3Vwc19wcm9tcHQnXSA9ICdTZWxlY3Qgb25lIG9yIG1vcmUgRkVVIGdyb3VwcyB0aGF0IGFyZSBhbGxvd2VkIHRvIHZpZXcgdGhpcyBwYWdlJzsKJGxhbmdbJ2Vycm9yX211c3RzZWxlY3RfZ3JvdXAnXSA9ICdDYWwgdHJpYXIgdW4gZ3J1cCc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdUcmlhJiMwMzk7biB1bic7CiRsYW5nWydzdGFydF95ZWFyJ10gPSAnQW55IGQmIzAzOTtpbmljaSc7CiRsYW5nWydlbmRfeWVhciddID0gJ0FueSBkZSBmaW5hbCc7CiRsYW5nWydkYXRlJ10gPSAnRGF0YSc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdNaWRhIGRlbHMgY29udGFjdGVzJzsKJGxhbmdbJ09uVXBkYXRlR3JvdXAnXSA9ICdPbiBVc2VyIEdyb3VwIE1vZGlmaWVkJzsKJGxhbmdbJ2Vycm9yX3Rvb21hbnlzZWxlY3RlZCddID0gJ1RvbyBtYW55IHVzZXJzIGFyZSBzZWxlY3RlZCBmb3IgYnVsayBvcGVyYXRpb25zLi4uLiBQbGVhc2UgdHJpbSBpdCB0byAyNTAgb3IgbGVzcyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9zZWxlY3RlZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIHNlbGVjdGVkIHVzZXJzPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdEZWxldGUgU2VsZWN0ZWQnOwokbGFuZ1sncHJvbXB0X3JhbmRvbXVzZXJuYW1lJ10gPSAnR2VuZXJhdGUgcmFuZG9tIHVzZXJuYW1lIHdoZW4gYWRkaW5nIG5ldyB1c2Vycyc7CiRsYW5nWydtb250aHMnXSA9ICdtb250aHMnOwokbGFuZ1sncHJvbXB0X2V4cGlyZWFnZSddID0gJ0RlZmF1bHQgdXNlciBleHBpcnkgcGVyaW9kJzsKJGxhbmdbJ25vdGlmaWNhdGlvbl9zZXR0aW5ncyddID0gJ05vdGlmaWNhdGlvbiBTZXR0aW5ncyc7CiRsYW5nWydwcm9wZXJ0eV9zZXR0aW5ncyddID0gJ1Byb3BlcnR5IFNldHRpbmdzJzsKJGxhbmdbJ3JlZGlyZWN0aW9uX3NldHRpbmdzJ10gPSAnUmVkaXJlY3Rpb24gU2V0dGluZ3MnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVyYWwgU2V0dGluZ3MnOwokbGFuZ1snc2Vzc2lvbl9zZXR0aW5ncyddID0gJ1Nlc3Npb24gYW5kIENvb2tpZSBTZXR0aW5ncyc7CiRsYW5nWydmaWVsZF9zZXR0aW5ncyddID0gJ0ZpZWxkIFNldHRpbmdzJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub25yZXF1aXJlZCddID0gJ1RoZSBsb3N0dXNlcm5hbWUgZmxhZyBjYW4gb25seSBiZSB1c2VkIG9uIHJlcXVpcmVkIGZpZWxkcyc7CiRsYW5nWydwcm9wX3RleHRhcmVhX3d5c2l3eWcnXSA9ICdBbGxvdyB1c2Ugb2Ygd3lzaXd5ZyBvbiB0aGlzIHRleHQgYXJlYSc7CiRsYW5nWydpbmZvX2Nvb2tpZXN0b3JlbWVtYmVyJ10gPSAnPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gVGhpcyB1c2VzIHRoZSBtY3J5cHQgZnVuY3Rpb25zIGZvciBlbmNyeXB0aW9uIHB1cnBvc2VzLCBhbmQgdGhleSBjb3VsZCBub3QgYmUgZGV0ZWN0ZWQgb24geW91ciBpbnN0YWxsLiAgIFBsZWFzZSBjb250YWN0IHlvdXIgc2VydmVyIGFkbWluaXN0cmF0b3IuJzsKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ01vZGlmaWNhciB1c3VhcmknOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdObyBwZXJtZXRpcyBmb3JtdWxhcmlzIGlubGluZSc7CiRsYW5nWydpbmZvX2xvc3R1biddID0gJ0NsaWNhIGFxdSZpYWN1dGU7IHNpIG5vIHJlY29yZGVzIGxlcyBkYWRlcyBkZSByZWdpc3RyZSc7CiRsYW5nWydpbmZvX2ZvcmdvdHB3J10gPSAnUGljYSBhcXUmaWFjdXRlOyBzaSBubyByZWNvcmRlcyBlbCB0ZXUgcGFzc3dvcmQnOwokbGFuZ1snaW5mb19sb2dvdXQnXSA9ICdQaWNhIGFxdSZpYWN1dGU7IHBlciBzb3J0aXInOwokbGFuZ1snaW5mb19jaGFuZ2VzZXR0aW5ncyddID0gJ1BpY2EgYXF1JmlhY3V0ZTsgcGVyIGFqdXN0YXIgZWwgdGV1IHBhc3N3b3JkIG8gYWx0cmEgaW5mb3JtYWNpJm9hY3V0ZTsnOwokbGFuZ1sndmlld3VzZXJfdGVtcGxhdGUnXSA9ICdWZXVyZSBwbGFudGlsbGEgZCYjMDM5O3VzdWFyaSc7CiRsYW5nWydldmVudCddID0gJ0V2ZW50JzsKJGxhbmdbJ2ZldV9ldmVudF9ub3RpZmljYXRpb24nXSA9ICdOb3RpZmljYWNpJm9hY3V0ZTsgZCYjMDM5O2V2ZW50IEZFVSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX2FkZHJlc3MnXSA9ICdBZHJlJmNjZWRpbDthIGRlbCBtYWlsIGRlIG5vdGlmaWNhY2kmb2FjdXRlOyc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlbCBtYWlsIGRlIG5vdGlmaWNhY2kmb2FjdXRlOyc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICdUZW1hIGRlIGwmIzAzOTtlbWFpbCBkZSBub3RpZmljYWNpJm9hY3V0ZTsnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdOb3RpZmljYWNpb25zIHBlciBlLW1haWwnOwokbGFuZ1snT25Mb2dpbiddID0gJ0VuIGVudHJhcic7CiRsYW5nWydPbkxvZ291dCddID0gJ0VuIHNvcnRpcic7CiRsYW5nWydPbkV4cGlyZVVzZXInXSA9ICdRdWFuIGxhIHNlc3NpJm9hY3V0ZTsgY2FkdWNhJzsKJGxhbmdbJ09uQ3JlYXRlVXNlciddID0gJ1F1YW4gZXMgY3JlYSB1biBub3UgdXN1YXJpJzsKJGxhbmdbJ09uRGVsZXRlVXNlciddID0gJ1F1YW4gcyYjMDM5O2VsaW1pbmEgdW4gdXN1YXJpJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ1F1YW4gZXMgbW9kaWZpY2EgY29uZmlndXJhY2kmb2FjdXRlOyBkJiMwMzk7dXN1YXJpcyc7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnUXVhbiBlcyBjcmVhIHVuIGdydXAnOwokbGFuZ1snT25EZWxldGVHcm91cCddID0gJ1F1YW4gcyYjMDM5O2VsaW1pbmEgdW4gZ3J1cCc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ1RoZSBsb3N0IGxvZ2luIGRldGFpbHMgZnVuY3Rpb25hbGl0eSBoYXMgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZC4gIFdlIGhhdmUgZm91bmQgYSB1bmlxdWUgdXNlcm5hbWUgdGhhdCBtYXRjaGVzIHRoZSBkZXRhaWxzIHlvdSBlbnRlcmVkLic7CiRsYW5nWyd5b3VyX3VzZXJuYW1lX2lzJ10gPSAnRWwgdGV1IG5vbSBkJiMwMzk7dXN1YXJpICZlYWN1dGU7cyc7CiRsYW5nWydsb3N0dW5jb25maXJtX3Bvc3Rtc2cnXSA9ICdSZWNvbWFuZW0gcXVlIGRlc2lzIGFxdWVzdGEgaW5mb3JtYWNpJm9hY3V0ZTsgZW4gdW4gbGxvYyBzZWd1ciBwZXImb2dyYXZlOyBhY2Nlc3NpYmxlJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBjaGFuZ2Ugc2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2FmdGVyX3ZlcmlmeV9jb2RlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgY29kZSB2ZXJpZmljYXRpb24gKic7CiRsYW5nWydsb3N0dW5fZGV0YWlsc190ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgRGV0YWlscyBUZW1wbGF0ZSc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgQ29uZmlybSBUZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0Vycm9yOiBNb3JlIHRoYW4gb25lIHVzZXIgYWNjb3VudCBtYXRjaGVkIHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCc7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdFcnJvcjogQ291bGQgbm90IGZpbmQgYSBtYXRjaGluZyB1c2VyJzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdFcnJvcjogQ291bGQgbm90IGZpbmQgYSBncm91cCBieSB0aGF0IG5hbWUnOwokbGFuZ1sncmVhZG9ubHknXSA9ICdSZWFkIE9ubHknOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ1VzZXIgTWFuaXB1bGF0b3IgQ2xhc3MnOwokbGFuZ1snYWRtaW5fbG9nb3V0J10gPSAnTG9nZ2VkIG91dCBieSBhZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdTaG93IE9ubHkgTG9nZ2VkIEluIFVzZXJzJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdMb2dvdXQgdGhpcyB1c2VyJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ1VzZXIgUHJvcGVydGllcyc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ1VzZXIgSGlzdG9yeSc7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnQnOwokbGFuZ1snY2xlYXInXSA9ICdDbGVhcic7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknXSA9ICdFeHBvcnQgVXNlciBIaXN0b3J5IFRvIEFTQ0lJIHRoYXQgaXMgYXQgbGVhc3QnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdDbGVhciBVc2VyIEhpc3RvcnkgcmVjb3JkcyB0aGF0IGlzIGF0IGxlYXN0JzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJ0ZvcmdvdCBZb3VyIExvZ2luIERldGFpbHM/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0V4cG9ydCBncm91cCBkZWZpbml0aW9uIChhbmQgcHJvcGVydGllcykgdG8gWE1MJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5bWFpbnRlbmFuY2UnXSA9ICdVc2VyIEhpc3RvcnkgTWFpbnRlbmFuY2UnOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnT2YnOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogTm8gTGltaXQgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAnT25lIEhvdXIgT2xkJzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJ1NpeCBIb3VycyBPbGQnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnVHdlbHZlIEhvdXJzIE9sZCc7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ09uZSBEYXkgT2xkJzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJ09uZSBXZWVrIE9sZCc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnVHdvIHdlZWtzIE9sZCc7CiRsYW5nWydkYXRlX29uZW1vbnRob2xkJ10gPSAnT25lIE1vbnRoIE9sZCc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnVGhyZWUgTW9udGhzIE9sZCc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ1NpeCBNb250aHMgT2xkJzsKJGxhbmdbJ2RhdGVfb25leWVhcm9sZCddID0gJ09uZSBZZWFyIE9sZCc7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICdHcm91cGluZyBhbmQgU29ydGluZyc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2ZvdW5kJ10gPSAnUmVjb3JkcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIFVzZXJuYW1lJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdBc2NlbmRpbmcgVXNlcm5hbWUnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfZGVzYyddID0gJ0Rlc2NlbmRpbmcgRGF0ZSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdBc2NlbmRpbmcgRGF0ZSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIEV2ZW50IFR5cGUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdBc2NlbmRpbmcgRXZlbnQgVHlwZSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIElwIEFkZHJlc3MnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19hc2MnXSA9ICdBc2NlbmRpbmcgSXAgQWRkcmVzcyc7CiRsYW5nWydpbmZvX25vaGlzdG9yeWRldGVjdGVkJ10gPSAnTm8gSGlzdG9yeSBEZXRlY3RlZCc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0dyb3VwIEJ5IElQIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnXSA9ICdFdmVudCBUeXBlIEZpbHRlcic7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdEaXNwbGF5IG9ubHkgZXZlbnRzIHRoYXQgYXJlIGxlc3MgdGhhbjonOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ1BhZ2UgTGltaXQnOwokbGFuZ1snZm9yJ10gPSAnZm9yJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAnVXNlciBIaXN0b3J5IFJlcG9ydCc7CiRsYW5nWyd1bmtub3duJ10gPSAnVW5rbm93bic7CiRsYW5nWydwcm9tcHRfaXBhZGRyZXNzJ10gPSAnSVAgQWRkcmVzcyc7CiRsYW5nWydwcm9tcHRfZXZlbnR0eXBlJ10gPSAnRXZlbnQgVHlwZSc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1sncHJvbXB0X3JldHVybiddID0gJ1JldHVybic7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnSW1wb3J0IE9wZXJhdGlvbiBDb21wbGV0ZSc7CiRsYW5nWydwcm9tcHRfbGluZXNwcm9jZXNzZWQnXSA9ICdMaW5lcyBQcm9jZXNzZWQnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0Vycm9ycyBFbmNvdW50ZXJlZCc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnUmVjb3JkcyBBZGRlZCc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnQ291bGQgbm90IGZpbmQgcHJvcGVydGllcyBmb3IgZ3JvdXAgJXMnOwokbGFuZ1snZXJyb3Jfbm9yZXNwb25zZWZyb21zZXJ2ZXInXSA9ICdDb3VsZCBub3QgZ2V0IGEgcmVzcG9uc2UgZnJvbSB0aGUgU01UUCBzZXJ2ZXInOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnRmlsZSBzcGVjaWZpZWQgKCVzKSBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ0ludmFsaWQgdmFsdWUgZm9yIGRyb3Bkb3duIG9yIG11bHRpc2VsZWN0IGZpZWxkICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkbGVuZ3RoJ10gPSAnRmllbGQgJXMgZXhjZWVkcyBtYXhpbXVtIGxlbmd0aCc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ0ltcG9ydCBFcnJvciAobGluZSAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdDb3VsZCBub3QgZ2V0IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9ucyAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgY29sdW1uIHRvIG1hdGNoIHRoZSByZXF1aXJlZCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ0NvdWxkIG5vdCBmaW5kIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ1RoZSBmaWxlIHNwZWNpZmllZCBmb3IgaW1wb3J0IGlzIG5vdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ0NvdWxkIG5vdCBvcGVuIGZpbGUnOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcIykgY2hhcmFjdGVycywgYW5kIG5hbWVzIGVhY2ggb2YgdGhlIGZpZWxkcyBpbiB0aGUgZmlsZS4gIFRoZSBuYW1lcyBvZiB0aGVzZSBmaWVsZHMgaXMgc2lnbmlmaWNhbnQuICBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZCBuYW1lcyAoc2VlIGJlbG93KSwgYW5kIG90aGVyIGZpZWxkIG5hbWVzIG11c3QgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdXNlcnMgYXJlIGdvaW5nIHRvIGJlIGFkZGVkIGludG8uPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBmYWlsIGlmIHRoZSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgZG9lcyBub3QgbWF0Y2ggYWxsIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdGhhdCB1c2VycyBhcmUgYmVpbmcgYWRkZWQgaW50bzwvbGk+DQo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBpZ25vcmUgYW55IGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSB0aGF0IGFyZSBlaXRoZXIgbm90IGtub3duLCBvciBtYXAgdG8gcHJvcGVydGllcyB0aGF0IGFyZSA8ZW0+b2ZmPC9lbT4gaW4gdGhlIHNwZWNpZmllZCB1c2VyIGdyb3VwLjwvbGk+DQo8L3VsPg0KPGg1PkNvbHVtbmFyIERhdGE8L2g1Pg0KPHVsPg0KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuDQogICAgPHA+VGhpcyBmaWVsZCBtdXN0IGV4aXN0IGluIHRoZSBoZWFkZXJsaW5lLCBhbmQgaW4gZWFjaCBhbmQgZXZlcnkgbGluZSBvZiB0aGUgaW5wdXQgZmlsZS4gVGhlIHJlY29yZCB3aWxsIGZhaWwgaWYgYSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UuPC9wPjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5leHBpcmVzPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+RHJvcGRvd24gRmllbGRzDQogICAgPHA+VGhlIHZhbHVlIG9mIGRyb3Bkb3duIHByb3BlcnRpZXMgaW4gYW4gaW1wb3J0IGZpbGUgaXMgcmVwcmVzZW50ZWQgYXMgdGhlIHN0cmluZyB0aGF0IGlzIHNob3duIGluIHRoZSBkcm9wZG93biBjb250cm9sIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPk11bHRpc2VsZWN0IEZpZWxkcw0KICAgIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4NCjwvbGk+DQo8bGk+SW1hZ2UgRmllbGRzDQogICAgPHA+SW1hZ2UgYXJlIGZpZWxkcyB3aG8mIzAzOTtzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0IFVzZXJzIEludG8gVGhpcyBHcm91cCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdJbnB1dCBDU1YgRmlsZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0eG1sZmlsZSddID0gJ0lucHV0IFhNTCBGaWxlJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0V4cG9ydCBVc2Vycyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnQgVXNlcnMnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnRXNib3JyYXInOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdDYW0maWFjdXRlOyBvbiBkZXNhciBpbWF0Z2VzJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnSGEgb2NvcnJlZ3V0IHVuIHByb2JsZW1hIGFtYiB1biBhcnhpdSBwdWphdCAocmVxdWVyaXQpIHF1ZSBtYW5jYSc7CiRsYW5nWydlcnJvcl9iYWRfeG1sJ10gPSAnQ291bGQgbm90IHBhcnNlIHRoZSBwcm92aWRlZCBYTUwgZmlsZSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnTm8gZXMgcG90IGVzYm9ycmFyIHVuIGdydXAgcXVlIGVuY2FyYSB0JmVhY3V0ZTsgdXN1YXJpcyc7CiRsYW5nWydlcnJvcl9ub3JlcGVhdGVkbG9naW5zJ10gPSAnTCYjMDM5O3VzdWFyaSBqYSBlc3QmYWdyYXZlOyBjb25uZWN0YXQnOwokbGFuZ1snZXJyb3JfY2FwdGNoYW1pc21hdGNoJ10gPSAnRWwgdGV4dCBkZSBsYSBpbWF0Z2Ugbm8gcyYjMDM5O2hhIGVudHJhdCBjb3JyZWN0YW1lbnQnOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ1Blcm1ldCBhbHMgdXN1YXJpcyBjb25uZWN0YXItc2UgbSZlYWN1dGU7cyBkJiMwMzk7dW5hIHZlZ2FkYSAnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMgZCYjMDM5O2FyeGl1cyBkJiMwMzk7aW1hdGdlIHF1ZSBlbHMgdXN1YXJpcyBwb2RlbiBwdWphcic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlVXNlciddID0gJzxoMz5PbkRlbGV0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgZGVsZXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZVVzZXInXSA9ICc8aDM+T25DcmVhdGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PblVwZGF0ZVVzZXInXSA9ICc8aDM+T25VcGRhdGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIHVwZGF0ZWQgKGVpdGhlciBieSB1c2VyIHRoZW1zZWxmIG9yIGFkbWluKTwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlR3JvdXAnXSA9ICc8aDM+T25DcmVhdGVHcm91cDxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZ3JvdXAgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIGdyb3VwIG5hbWU8L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gVGhlIGdyb3VwIGRlc2NyaXB0aW9uPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlR3JvdXAnXSA9ICc8aDM+T25EZWxldGVHcm91cDxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZ3JvdXAgaXMgZGVsZXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIGdyb3VwIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dpbiddID0gJzxoMz5PbkxvZ2luPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPg0KPGxpPjxlbT5pcDwvZW0+IC0gVGhlIGlwIGFkZHJlc3Mgb2YgdGhlIGNsaWVudDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dvdXQnXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBvdXQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2Vkb3V0IHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uRXhwaXJlVXNlciddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGV4cGlyZXM8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9pbmZvX09uTG9naW4nXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbiB0byB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBvdXQgb2YgdGhlIHN5c3RlbSc7CiRsYW5nWydldmVudF9pbmZvX09uRXhwaXJlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGlzIGV4cGlyZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIG5ldyB1c2VyIGlzIGNyZWF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaW5mbyBpcyB1cGRhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGFjY291bnQgaXMgZGVsZXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgdXBkYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgZGVsZXRlZCc7CiRsYW5nWydiYWNrZW5kX2dyb3VwJ10gPSAnQmFja2VuZCBncnVvcCc7CiRsYW5nWydpbmZvX3N0YXInXSA9ICcqIFRoZSBmb2xsb3dpbmcgbWFjcm9zIGNhbiBiZSB1c2VkIGluIHRoZXNlIGZpZWxkczogeyR1c2VybmFtZX0seyRncm91cH0uIFdoZW4gdXNpbmcgdGhlIHskZ3JvdXB9IG1hY3JvLCB0aGUgc3lzdGVtIHdpbGwgc3Vic2l0dXRlIHRoZSBuYW1lIG9mIHRoZSBmaXJzdCBtZW1iZXIgZ3JvdXAgdGhhdCB0aGUgdXNlciBiZWxvbmdzIHRvLCBhbmQgd2lsbCByZWRpcmVjdCB0byB0aGF0IHBhZ2UuJzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdFZGl0IHRoaXMgZmllbGQgdG8gcmVzZXQgdGhlIHVzZXJzIHBhc3N3b3JkJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdFZGl0IHRoaXMgZmllbGQgdG8gcmVzZXQgdGhlIHVzZXJzIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1lX2V4aXN0cyddID0gJ0EgdXNlciB3aXRoIHRoYXQgdXNlcm5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnTm8gcmVzdWx0cyByZXR1cm5lZCBmcm9tIGNzdiBleHBvcnQnOwokbGFuZ1sncHJvbXB0X3VuZmxkbGVuJ10gPSAnTGVuZ3RoIG9mIHVzZXJuYW1lIGZpZWxkJzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ0xlbmd0aCBvZiBwYXNzd29yZCBmaWVsZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmRsZW5ndGhzJ10gPSAnTWluL01heCBwYXNzd29yZCBsZW5ndGhzIGFyZSBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZWxlbmd0aHMnXSA9ICdNaW4vTWF4IHVzZXJuYW1lIGxlbmd0aHMgYXJlIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ0ludmFsaWQgRW1haWwgYWRkcmVzcyc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ1dlIGNvdWxkIG5vdCBmaW5kIGFuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgYWNjb3VudCc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2VldHRpbmdpbmZvJ10gPSAnUHJvYmxlbSBzZXR0aW5nIHVzZXIgaW5mbyc7CiRsYW5nWydlcnJvcl9zZXR0aW5ncHJvcGVydHknXSA9ICdQcm9ibGVtIHNldHRpbmcgcHJvcGVydHknOwokbGFuZ1sndXNlcl9hZGRlZCddID0gJ1VzZXIgQWRkZWQgJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdVc2VyIERlbGV0ZWQgdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnUHJvcGVydHknOwokbGFuZ1sndmFsdWVyZWdleCddID0gJ1ZhbHVlIChyZWd1bGFyIGV4cHJlc3Npb24pJzsKJGxhbmdbJ3dhcm5pbmdfZWZmZWN0c2ZpZWxkbGVuZ3RoJ10gPSAnV2FybmluZzogVGhlc2UgZmllbGRzIGFmZmVjdCB0aGUgc2l6ZSBvZiBpbnB1dCBmaWVsZHMgZm9yIGZvcm1zLiAgRGVjcmVhc2luZyB0aGlzIG51bWJlciBvbiBhbiBleGlzdGluZyBzaXRlIG1heSBub3QgYmUgYWR2aXNhYmxlJzsKJGxhbmdbJ2NvbmZpcm1fc3VibWl0cHJlZnMnXSA9ICdDaGFuZ2UgYWRtaW4gcHJlZmVyZW5jZXM/JzsKJGxhbmdbJ2Vycm9yX2VtYWlsYWxyZWFkeXVzZWQnXSA9ICdFbWFpbCBhZGRyZXNzIGFscmVhZHkgdXNlZCc7CiRsYW5nWydwcm9tcHRfdXNlY29va2llc3RvcmVtZW1iZXInXSA9ICdVc2UgY29va2llcyB0byByZW1lbWJlciBsb2dpbiBkZXRhaWxzJzsKJGxhbmdbJ3Byb21wdF9jb29raWVuYW1lJ10gPSAnVGhlIG5hbWUgb2YgdGhlIGNvb2tpZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJ0FsbG93IGR1cGxpY2F0ZSBlbWFpbHMnOwokbGFuZ1sncHJvbXB0X3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnRW1haWwgYWRkcmVzcyBpcyB1c2VybmFtZSc7CiRsYW5nWydpbmZvX2Nvb2tpZV9rZWVwYWxpdmUnXSA9ICdBdHRlbXB0IHRvIGtlZXAgbG9naW5zIGFsaXZlIGJ5IHRoZSB1c2Ugb2YgYSBjb29raWUgPGVtPih0aGUgY29va2llIGlzIHJlc2V0IG9uIGFjdGl2aXR5IGluIHRoZSB3ZWJzaXRlKTwvZW0+JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJyhhbGxvdyBtdWx0aXBsZSB1c2VycyB3aXRoIHRoZSBzYW1lIGVtYWlsIGFkZHJlc3MpJzsKJGxhbmdbJ2luZm9fdXNlcm5hbWVfaXNfZW1haWwnXSA9ICcodXNlciYjMDM5O3MgZW1haWwgYWRkcmVzcyBpcyB0aGVpciB1c2VybmFtZSAtLSBkb24mIzAzOTt0IHNldCB0aGlzIHdpdGggJnF1b3Q7YWxsb3cgZHVwbGljYXRlIGVtYWlsIGFkZHJlc3NlcyZxdW90OyEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnQWxsb3cgZHVwbGljYXRlICZxdW90O2ZvcmdvdCBwYXNzd29yZCZxdW90OyByZW1pbmRlcnM/JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJyhhbGxvdyBhIHVzZXJzIHRvIHJlcXVlc3QgYSBwYXNzd29yZCByZXNldCwgZXZlbiBpZiB0aGV5IGhhdmVuJiMwMzk7dCBhY3RlZCBvbiBhIHByZXZpb3VzIG9uZSknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdVc2UgRnJvbnQtZW5kIFVzZXIgc3BlY2lmaWMgcGVybWlzc2lvbnM/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhOb3JtYWxseSwgRkVVU2VycyBwZXJtaXNzaW9ucyBhcmUgdGhlIHNhbWUgYXMgdGhlIGVxdWl2YWxlbnQgQWRtaW4gQXJlYSBwZXJtaXNzaW9ucyBsaWtlIEFkZCBVc2VyLCBBZGQgR3JvdXAsIGV0Yy4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlcmUgd2lsbCBiZSBzZXBhcmF0ZSBwZXJtaXNzaW9ucyBmb3IgRkVVc2Vycy4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkZWQgZmlsZSAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJ10gPSAnVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHlvdXIgdXBsb2FkZWQgZmlsZS4gIFBsZWFzZSB0cnkgYWdhaW4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnWW91IGRpZCBub3QgZW50ZXIgYSB1c2VybmFtZSc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdZb3UgZGlkIG5vdCBlbnRlciB5b3VyIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ1lvdSBkaWQgbm90IGVudGVyIGEgcGFzc3dvcmQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0Zyb250ZW5kIFVzZXIgTG9nb3V0JzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0Zyb250ZW5kIFVzZXIgTG9naW4nOwokbGFuZ1snZWRpdHByb3BfaW5mb21zZyddID0gJzxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48Yj5VU0UgQ0FVVElPTjwvYj4gd2hlbiBjaGFuZ2luZyBleGlzdGluZyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGFzc2lnbmVkIHRvIGdyb3VwcywgeW91IG1heSBwb3RlbnRpYWxseSBjYXVzZSBkYW1hZ2UgYW5kIGJyZWFrIGFuIGV4aXN0aW5nIHNpdGUgPGk+KGVzcGVjaWFsbHkgaWYgeW91IHJlZHVjZSBmaWVsZCBsZW5ndGhzLCBldGMpPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHdvcmsgb24gd2luZG93cyc7CiRsYW5nWydtc2dfZG9udGNyZWF0ZXVzZXJuYW1lJ10gPSAnRG8gbm90IGNyZWF0ZSBhIHByb3BlcnR5IGZvciB1c2VybmFtZSwgb3IgcGFzc3dvcmQgYXMgdGhlc2UgcHJvcGVydGllcyBhcmUgYnVpbHRpbiB0byB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0V4cG9ydCBVc2VycyB0byBDU1YnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0JzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydCc7CiRsYW5nWydhZG1pbiddID0gJ0FkbWluJzsKJGxhbmdbJ2VkaXRwcm9wJ10gPSAnRWRpdCBQcm9wZXJ0eSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWydjcmVhdGVkJ10gPSAnQ3JlYXRlZCc7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0IEJ5JzsKJGxhbmdbJ3NvcnQnXSA9ICdTb3J0aW5nJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ1VzZXJzIGluIHRoZSBzZWxlY3RlZCBncm91cChzKSc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdMaW1pdCByZXN1bHRzIHRvJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGFuIGVtYWlsIGZpZWxkIGZvciB0aGlzIHVzZXIuICBZb3UgbWF5IG5lZWQgdG8gY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3InOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgZm9yIEZvcmdvdCBQYXNzd29yZCBmb3JtJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGZvciBDaGFuZ2UgU2V0dGluZ3MgZm9ybSc7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGxvZ2luIConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgbG9nb3V0IConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydwcm9tcHRfbnVtcmVzZXRyZWNvcmQnXSA9ICdBIG51bWJlciBvZiB1c2VycyBhcmUgaW4gdGhlIG1pZGRsZSBvZiByZXNldHRpbmcgbG9zdCBwYXNzd29yZHMuICBDdXJyZW50bHkgdGhpcyBjb3VudCBpcyBhdDonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgd2VlayBvbGQnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnUmVtb3ZlIGFsbCBlbnRyaWVzIG1vcmUgdGhhbiBhIG1vbnRoIG9sZCc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZT8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICdBbiBpbnZhbGlkIGNvZGUgaGFzIGJlZW4gZW50ZXJlZCwgcGxlYXNlIHRyeSBhZ2Fpbic7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnQSB0ZW1wb3JhcnkgY29kZSBmb3IgeW91ciB1c2VyIGlkIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdmVyaWZpY2F0aW9uIGZvcm0nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfZW1haWx0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzZWQgZm9yIGZvcmdvdHRlbiBwYXNzd29yZCBlbWFpbCc7CiRsYW5nWydlcnJvcl9yZXNldGFscmVhZHlzZW50J10gPSAnRWl0aGVyIHlvdXJzZWxmIG9yIHNvbWVvbmUgZWxzZSBoYXMgYWxyZWFkeSB0cmlnZ2VyZWQgYSBwYXNzd29yZCByZXNldCBvcGVyYXRpb24gZm9yIHRoaXMgYWNjb3VudC4gIENoZWNrIHlvdXIgZW1haWwsIHlvdSBtYXkgaGF2ZSBmdXJ0aGVyIGluc3RydWN0aW9ucyBvbiBob3cgdG8gcmVzZXQgeW91ciBwYXNzd29yZCBpbiB5b3VyIGluYm94JzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZSBlcnJvcic7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICdZb3UgYXJlIHJlY2VpdmluZyB0aGlzIG1lc3NhZ2UgYmVjYXVzZSBzb21lYm9keSB0b2xkIG91ciBzaXRlIHRoYXQgeW91IGhhZCBsb3N0IHlvdXIgcGFzc3dvcmQuICBJZiB0aGlzIGlzIHRoZSBjYXNlLCByZWFkIHRoZSBpbnN0cnVjdGlvbnMgYmVsb3cuICBJZiB5b3UgZG9uJiMwMzk7dCBoYXZlIGEgY2x1ZSB3aGF0IHRoaXMgaXMsIHRoZW4geW91IGFyZSBzYWZlIHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UsIGFuZCB3ZSB0aGFuayB5b3UgZm9yIHlvdXIgdGltZS4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdDb2RlJzsKJGxhbmdbJ21lc3NhZ2VfY29kZSddID0gJ1RoZSBmb2xsb3dpbmcgY29kZSBoYXMgYmVlbiBnZW5lcmF0ZWQgcmFuZG9tbHkgZ2VuZXJhdGVkIGluIG9yZGVyIHRvIHZlcmlmeSB0aGUgdXNlciBhY2NvdW50LiAgd2hlbiB5b3UgY2xpY2sgb24gdGhlIGxpbmsgYmVsb3cgeW91IHdpbGwgYmUgcHJlc2VudGVkIHdpdGggYSBmaWVsZCB0byBlbnRlciB0aGlzIGNvZGUuICBOb3JtYWxseSB0aGUgZmllbGQgaXMgcHJlLWNvbXBsZXRlZCBmb3IgeW91LCBidXQgaW5jYXNlIGl0IGlzbiYjMDM5O3QgdGhlIGNvZGUgaXM6JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnQ2xpY2tpbmcgb24gdGhlIGZvbGxvd2luZyBsaW5rIHdpbGwgdGFrZSB5b3UgdG8gdGhlIHdlYnNpdGUgd2hlcmUgeW91IGNhbiBlbnRlciB0aGUgYWJvdmUgY29kZSwgYW5kIHJlc2V0IHlvdXIgcGFzc3dvcmQ6JzsKJGxhbmdbJ2xvc3RwYXNzd29yZF9lbWFpbHN1YmplY3QnXSA9ICdMb3N0IFBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIENNU01haWxlciBtb2R1bGUnOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnQW4gZW1haWwgaGFzIGJlZW4gc2VudCB0byAlcyB3aXRoIGluc3RydWN0aW9ucyBhcyB0byBob3cgdG8gcmVzZXQgeW91ciBwYXNzd29yZC4gIFRoYW5rIHlvdSc7CiRsYW5nWydsb3N0cHdfbWVzc2FnZSddID0gJ1NvIHlvdSBmb3Jnb3Qgb3IgbG9zdCB5b3VyIHBhc3N3b3JkLiBXZWxsLCB0eXBlIHlvdXIgdXNlcm5hbWUgaW4gaGVyZSwgYW5kIGlmIHdlIGNhbiBmaW5kIHlvdSB3ZSB3aWxsIHNlbmQgeW91IGFuIGVtYWlsIHdpdGggaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byByZXNldCBpdCc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF90ZW1wbGF0ZSddID0gJ0ZvcmdvdCBQYXNzd29yZCBUZW1wbGF0ZXMnOwokbGFuZ1snbG9zdHVzZXJuYW1lX3RlbXBsYXRlJ10gPSAnTG9zdCBVc2VybmFtZSBUZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdQcm9wZXJ0eSAlcyBub3QgZm91bmQnOwokbGFuZ1sncHJvcHNmb3VuZCddID0gJ1Byb3BlcnRpZXMgZm91bmQnOwokbGFuZ1snYWRkcHJvcCddID0gJ0FkZCBQcm9wZXJ0eSc7CiRsYW5nWydlcnJvcl9yZXF1aXJlZGZpZWxkJ10gPSAnQSByZXF1aXJlZCBmaWVsZCAoJXMpIHdhcyBlbXB0eSc7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ0VudGVyIGEgbmV3IHBhc3N3b3JkIGhlcmUgdG8gY2hhbmdlIHlvdXIgcGFzc3dvcmQnOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdZb3UgZG8gbm90IGFwcGVhciB0byBiZSBsb2dnZWQgaW4nOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ1NldHRpbmdzJzsKJGxhbmdbJ3VzZXJfcmVnaXN0cmF0aW9uJ10gPSAnUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnVGhpcyBhY2NvdW50IGhhcyBleHBpcmVkJzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdJbXByb3BlciBlbWFpbCBhZGRyZXNzIGZvcm1hdHRpbmcnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdJbnZhbGlkIGV4cGlyeSBkYXRlJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdFcnJvciBzZXR0aW5nIHByb3BlcnR5ICVzIGZvciB1c2VyICRzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRncm91cGlkJ10gPSAnSW52YWxpZCBncm91cCBpZCAlcyc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ0hpZGRlbiBmaWVsZCBtYXJrZXInOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0hpZGRlbiBmaWVsZCBjb2xvcic7CiRsYW5nWydoaWRkZW4nXSA9ICdIaWRkZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlbmFtZSddID0gJ0EgcHJvcGVydHkgd2l0aCB0aGF0IG5hbWUgaXMgYWxyZWFkeSBkZWZpbmVkJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ05vIHByb3BlcnRpZXMgZGVmaW5lZCc7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ05vIHByb3BlcnRpZXMgd2VyZSBzZWxlY3RlZCBmb3IgdGhpcyBncm91cCc7CiRsYW5nWydub2dyb3VwcyddID0gJ05vIEdyb3VwcyBhcmUgZGVmaW5lZCc7CiRsYW5nWydncm91cHNmb3VuZCddID0gJ0dyb3VwcyBGb3VuZCc7CiRsYW5nWydlcnJvcl9vbmVncm91cHJlcXVpcmVkJ10gPSAnTWVtYmVyc2hpcCBpbiBhdCBsZWFzdCBvbmUgZ3JvdXAgaXMgcmVxdWlyZWQnOwokbGFuZ1sncHJvbXB0X3JlcXVpcmVvbmVncm91cCddID0gJ1JlcXVpcmUgbWVtYmVyc2hpcCBpbiBhdGxlYXN0IG9uZSBncm91cCc7CiRsYW5nWydiYWNrJ10gPSAnQmFjayc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnJXMgaXMgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnTWFyayByZXF1aXJlZCBmaWVsZHMgd2l0aCc7CiRsYW5nWydyZXF1aXJlZGZpZWxkY29sb3InXSA9ICdIaWxpdGUgcmVxdWlyZWQgZmllbGRzIGluJzsKJGxhbmdbJ25leHQnXSA9ICdOZXh0JzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnQSBHcm91cCB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydyZXF1aXJlZCddID0gJ1JlcXVpcmVkIEZpZWxkJzsKJGxhbmdbJ29wdGlvbmFsJ10gPSAnT3B0aW9uYWwnOwokbGFuZ1snb2ZmJ10gPSAnT2ZmJzsKJGxhbmdbJ3NpemUnXSA9ICdTaXplJzsKJGxhbmdbJ3NpemVjb21tZW50J10gPSAnPGJyLz4oTWF4aW11bSBzaXplIG9mIGFueSBvbmUgZGltZW5zaW9uIG9mIHRoZSBpbWFnZSBpbiBwaXhlbHMpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ0xlbmd0aCc7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyPihjaGFycyBpbiB0aGUgdGV4dCBpbnB1dCknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ0Ryb3Bkb3duIG9wdGlvbnMsIHNlcGFyYXRlZCBieSBsaW5lIGJyZWFrcy4gIFZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIGZyb20gdGV4dCB3aXRoIGEgPSBjaGFyYWN0ZXIuIGkuZTogRmVtYWxlPWYnOwokbGFuZ1sncmFkaW9vcHRpb25zJ10gPSAnUmFkaW9idXR0b24gbGFiZWxzLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuIFZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIGZyb20gdGV4dCB3aXRoIGEgPSBjaGFyYWN0ZXIuIGkuZTogRmVtYWxlPWYnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ3Byb21wdF90eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWydmaWVsZHN0YXR1cyddID0gJ0ZpZWxkIFN0YXR1cyc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdBc2sgaW4gTG9zdDxici8+VXNlcm5hbWUnOwokbGFuZ1sndGV4dCddID0gJ1RleHQnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ011bHRpIFNlbGVjdCBMaXN0JzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ1JhZGlvIEJ1dHRvbnMnOwokbGFuZ1snaW1hZ2UnXSA9ICdJbWFnZSc7CiRsYW5nWydlbWFpbCddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0YXJlYSc7CiRsYW5nWydkcm9wZG93biddID0gJ0Ryb3Bkb3duJzsKJGxhbmdbJ21zZ19jdXJyZW50bHlsb2dnZWRpbmFzJ10gPSAnV2VsY29tZSc7CiRsYW5nWydsb2dvdXQnXSA9ICdTaWduIG91dCc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAnVXNlIHRoaXMgZ3JvdXAgbmFtZSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdDaGFuZ2UgTXkgU2V0dGluZ3MnOwokbGFuZ1snZXJyb3JfbG9naW5mYWlsZWQnXSA9ICdMb2dpbiBmYWlsZWQgLSBJbnZhbGlkIHVzZXJuYW1lIG9yIHBhc3N3b3JkPyc7CiRsYW5nWydsb2dpbiddID0gJ1NpZ24gaW4nOwokbGFuZ1sncHJvbXB0X3NpZ25pbl9idXR0b24nXSA9ICdTaWduIGluIGJ1dHRvbiBsYWJlbCc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CiRsYW5nWydwcm9tcHRfZW1haWwnXSA9ICdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ1Bhc3N3b3JkJzsKJGxhbmdbJ3Byb21wdF9yZW1lbWJlcm1lJ10gPSAnUmVtZW1iZXIgbWUgb24gdGhpcyBjb21wdXRlcic7CiRsYW5nWydyZWdpc3RlciddID0gJ1JlZ2lzdGVyJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnRm9yZ290IFlvdXIgUGFzc3dvcmQ/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ0ZvcmdvdCBZb3VyIExvZ2luIERldGFpbHM/JzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAnRGVmYXVsdHMnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdVc2VyIElEIG5vdCBmb3VuZCc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnVGhhdCB1c2VybmFtZSAoJXMpIGlzIGFscmVhZHkgaW4gdXNlJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdVc2UgU01UUCB0byB2YWxpZGF0ZSBlbWFpbCBhZGRyZXNzZXM/JzsKJGxhbmdbJ3Byb21wdF9taW5wd2xlbiddID0gJ01pbmltdW0gUGFzc3dvcmQgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ01heGltdW0gUGFzc3dvcmQgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ01pbmltdW0gVXNlcm5hbWUgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9tYXh1bmxlbiddID0gJ01heGltdW0gVXNlcm5hbWUgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1Nlc3Npb24gVGltZW91dCAoc2Vjb25kcyknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ1VzZSBjb29raWVzIHRvIGtlZXAgbG9naW5zIGFsaXZlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnQWxsb3cgRW1haWwgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ3Byb21wdF9kZmx0Z3JvdXAnXSA9ICdEZWZhdWx0IEdyb3VwIGZvciBuZXcgdXNlcnMnOwokbGFuZ1snY2hhbmdlc2V0dGluZ3NfdGVtcGxhdGUnXSA9ICdDaGFuZ2UgU2V0dGluZ3MgVGVtcGxhdGUnOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ1Bhc3N3b3JkcyBEbyBub3QgbWF0Y2gnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnSW52YWxpZCBVc2VybmFtZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdJbnZhbGlkIFBhc3N3b3JkJzsKJGxhbmdbJ2VkaXR1c2VyJ10gPSAnRWRpdCBVc2VyJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnVmFsaWQnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snZXJyb3JfbWVtYmVyZ3JvdXBzJ10gPSAnVGhpcyB1c2VyIGlzIG5vdCBhIG1lbWJlciBvZiBhbnkgZ3JvdXBzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICdObyBQcm9wZXJ0aWVzJzsKJGxhbmdbJ2Vycm9yX2R1cF9wcm9wZXJ0aWVzJ10gPSAnQXR0ZW1wdCB0byBpbXBvcnQgZHVwbGljYXRlIHByb3BlcnRpZXMnOwokbGFuZ1sndmFsdWUnXSA9ICdWYWx1ZSc7CiRsYW5nWydncm91cHMnXSA9ICdHcm91cHMnOwokbGFuZ1sncHJvcGVydGllcyddID0gJ1Byb3BlcnRpZXMnOwokbGFuZ1sncHJvcG5hbWUnXSA9ICdQcm9wZXJ0eSBOYW1lJzsKJGxhbmdbJ3Byb3B2YWx1ZSddID0gJ1Byb3BlcnR5IFZhbHVlJzsKJGxhbmdbJ2FkZCddID0gJ0FkZCc7CiRsYW5nWydoaXN0b3J5J10gPSAnSGlzdG9yeSc7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydleHBpcmVzJ10gPSAnRXhwaXJlcyc7CiRsYW5nWydzcGVjaWZ5X2RhdGUnXSA9ICdTcGVjaWZ5IERhdGUnOwokbGFuZ1snMTJocnMnXSA9ICcxMiBob3Jlcyc7CiRsYW5nWycyNGhycyddID0gJzI0IGhvcmVzJzsKJGxhbmdbJzQ4aHJzJ10gPSAnNDggaG9yZXMnOwokbGFuZ1snMXdlZWsnXSA9ICcxIHNldG1hbmEnOwokbGFuZ1snMndlZWtzJ10gPSAnMiBzZXRtYW5lcyc7CiRsYW5nWycxbW9udGgnXSA9ICcxIG1lcyc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBtZXNvcyc7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiBtZXNvcyc7CiRsYW5nWycxeWVhciddID0gJzEgYW55JzsKJGxhbmdbJ25ldmVyJ10gPSAnTWFpJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ01vZHVsZSBpbnN0YWxsZWQgc3VjZXNzZnVsbHkuPGJyLz5CZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24uICBBZGRpdGlvbmFsbHksIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gIElmIGluc3RhbGxlZCwgdmFsaWRhdGlvbiBvZiBhIGNhcHRjaGEgaW1hZ2Ugd2lsbCBiZSByZXF1aXJlZCBpbiBhZGRpdGlvbiB0byB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ2luLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGJydXRlIGZvcmNlIGF0dGFja3MuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBub2NhcHRjaGEgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGV2ZW4gaWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZC4mcXVvdDsnOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdQYXNzd29yZCc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ0FnYWluJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdHcm91cCBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnRWRpdCBHcm91cCc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydjb25maXJtX2VkaXRncm91cCddID0gJ0FyZSB5b3Ugc3VyZSB0aGlzIGlzIHRoZSBwcm9wZXIgc2V0dGluZ3MgZm9yIHRoaXMgZ3JvdXA/XG5UdXJuaW5nIGEgcHJvcGVydHkgb2ZmIHdpbGwgbm90IGRlbGV0ZSBhbnkgZW50cmllcyBpbiB0aGUgcHJvcGVydGllcyB0YWJsZSBmb3IgdGhpcyBncm91cC91c2VyLiAgVGhleSB3aWxsIG1lcmVseSBiZSB1bmF2YWlsYWJsZS4nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVncm91cCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBncm91cD8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb21wbGV0ZWx5IGRlbGV0ZSB0aGlzIHByb3BlcnR5P1xuRG9pbmcgc28gd2lsbCBhbHNvIGVyYXNlIGFueSB1c2VyIGVudHJpZXMgZm9yIHRoaXMgcHJvcGVydHkuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0luc3VmZmljaWVudCBQYXJhbWV0ZXJzJzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdQcm9ibGVtIGFkZGluZyBwcm9wZXJ0eSc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXByZWxuJ10gPSAnUHJvYmxlbSBhZGRpbmcgZ3JvdXAgcmVsYXRpb24nOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwJ10gPSAnUHJvYmxlbSBhZGRpbmcgZ3JvdXAnOwokbGFuZ1snZXJyb3JfY2FudGFzc2lnbnVzZXInXSA9ICdQcm9ibGVtIGFkZGluZyBhIHVzZXIgdG8gYSBncm91cCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmxlbSBkZWxldGluZyBhIHByb3BlcnR5JzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnQ291bGQgbm90IGZpbmQgYW4gZW1haWwgYWRkcmVzcyc7CiRsYW5nWydlcnJvcl9kZXN0aW5hdGlvbm5vdHdyaXRhYmxlJ10gPSAnTm8gd3JpdGUgcGVybWlzc2lvbiB0byBkZXN0aW5hdGlvbiBkaXJlY3RvcnknOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ1BhciZhZ3JhdmU7bWV0cmVzIGludiZhZ3JhdmU7bGlkcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcyddID0gJ0NvdWxkIG5vdCBmaW5kIGFueSBncm91cHMnOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdBcGxpY2FyJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRyZSc7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAnVXNlcm5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcGNpJm9hY3V0ZTsnOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnR3JvdXAgTmFtZSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3InOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdBZmVnaXIgbm91IGdydXAnOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnRhciBub3UgR3J1cCc7CiRsYW5nWydhZGR1c2VyJ10gPSAnQWZlZ2lyIFVzdWFyaSc7CiRsYW5nWyd1c2Vyc2ZvdW5kJ10gPSAnVXNlcnMgZm91bmQgdGhhdCBtYXRjaCB0aGUgY3JpdGVyaWEnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwJzsKJGxhbmdbJ3NlbGVjdGdyb3VwJ10gPSAnVHJpYXIgR3J1cCc7CiRsYW5nWydyZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdQbGFueGV0YSBkZSByZWdpc3RyZSc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdQbGFueGV0YSBkZSBzb3J0aWRhJzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnUGxhbnhldGEgZCYjMDM5O2VudHJhZGEnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXImZWdyYXZlO25jaWVzJzsKJGxhbmdbJ3VzZXJzJ10gPSAnVXN1YXJpcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdGcm9udGVuZCBVc2VyIE1hbmFnZW1lbnQnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBbGxvdyB1c2VycyB0byBsb2cgaW4gdG8gdGhlIGZyb250ZW5kIG9mIHlvdXIgc2l0ZSc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnRGVmYXVsdCBmcm9udCBwYWdlJzsKJGxhbmdbJ2xhc3RhY2Nlc3NlZHBhZ2UnXSA9ICdMYXN0IGFjY2Vzc2VkIHBhZ2UnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnT3RoZXIgcGFnZTogJzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdFbnRlciB0aGUgdGV4dCBmcm9tIHRoZSBpbWFnZSc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2luZm9fbmFtZSddID0gJ1RoaXMgaXMgdGhlIGZpZWxkIG5hbWUsIHRvIGJlIHVzZWQgZm9yIGFkZHJlc3NpbmcgaW4gc21hcnR5LiAgSXQgbXVzdCBjb25zaXN0IG9mIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIHVuZGVyc2NvcmVzLic7CiRsYW5nWyd2aXNpdG9yc190YWInXSA9ICdWaXNpdG9ycyc7CiRsYW5nWydmZXVfZ3JvdXBzX3Byb21wdCddID0gJ1NlbGVjdCBvbmUgb3IgbW9yZSBGRVUgZ3JvdXBzIHRoYXQgYXJlIGFsbG93ZWQgdG8gdmlldyB0aGlzIHBhZ2UnOwokbGFuZ1snZXJyb3JfbXVzdHNlbGVjdF9ncm91cCddID0gJ0EgZ3JvdXAgbXVzdCBiZSBzZWxlY3RlZCc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICdTdGFydCBZZWFyJzsKJGxhbmdbJ2VuZF95ZWFyJ10gPSAnRW5kIFllYXInOwokbGFuZ1snZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1sncHJvbXB0X3RodW1ibmFpbF9zaXplJ10gPSAnVGh1bWJuYWlsIFNpemUnOwokbGFuZ1snT25VcGRhdGVHcm91cCddID0gJ09uIFVzZXIgR3JvdXAgTW9kaWZpZWQnOwokbGFuZ1snZXJyb3JfdG9vbWFueXNlbGVjdGVkJ10gPSAnVG9vIG1hbnkgdXNlcnMgYXJlIHNlbGVjdGVkIGZvciBidWxrIG9wZXJhdGlvbnMuLi4uIFBsZWFzZSB0cmltIGl0IHRvIDI1MCBvciBsZXNzJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgdXNlcnM/JzsKJGxhbmdbJ2RlbGV0ZV9zZWxlY3RlZCddID0gJ0RlbGV0ZSBTZWxlY3RlZCc7CiRsYW5nWydwcm9tcHRfcmFuZG9tdXNlcm5hbWUnXSA9ICdHZW5lcmF0ZSByYW5kb20gdXNlcm5hbWUgd2hlbiBhZGRpbmcgbmV3IHVzZXJzJzsKJGxhbmdbJ21vbnRocyddID0gJ21vbnRocyc7CiRsYW5nWydwcm9tcHRfZXhwaXJlYWdlJ10gPSAnRGVmYXVsdCB1c2VyIGV4cGlyeSBwZXJpb2QnOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnTm90aWZpY2F0aW9uIFNldHRpbmdzJzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnUHJvcGVydHkgU2V0dGluZ3MnOwokbGFuZ1sncmVkaXJlY3Rpb25fc2V0dGluZ3MnXSA9ICdSZWRpcmVjdGlvbiBTZXR0aW5ncyc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnR2VuZXJhbCBTZXR0aW5ncyc7CiRsYW5nWydzZXNzaW9uX3NldHRpbmdzJ10gPSAnU2Vzc2lvbiBhbmQgQ29va2llIFNldHRpbmdzJzsKJGxhbmdbJ2ZpZWxkX3NldHRpbmdzJ10gPSAnRmllbGQgU2V0dGluZ3MnOwokbGFuZ1snZXJyb3JfbG9zdHVuX25vbnJlcXVpcmVkJ10gPSAnVGhlIGxvc3R1c2VybmFtZSBmbGFnIGNhbiBvbmx5IGJlIHVzZWQgb24gcmVxdWlyZWQgZmllbGRzJzsKJGxhbmdbJ3Byb3BfdGV4dGFyZWFfd3lzaXd5ZyddID0gJ0FsbG93IHVzZSBvZiB3eXNpd3lnIG9uIHRoaXMgdGV4dCBhcmVhJzsKJGxhbmdbJ2luZm9fY29va2llc3RvcmVtZW1iZXInXSA9ICc8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBUaGlzIHVzZXMgdGhlIG1jcnlwdCBmdW5jdGlvbnMgZm9yIGVuY3J5cHRpb24gcHVycG9zZXMsIGFuZCB0aGV5IGNvdWxkIG5vdCBiZSBkZXRlY3RlZCBvbiB5b3VyIGluc3RhbGwuICAgUGxlYXNlIGNvbnRhY3QgeW91ciBzZXJ2ZXIgYWRtaW5pc3RyYXRvci4nOwokbGFuZ1snZWRpdGluZ191c2VyJ10gPSAnJlVhY3V0ZTtwcmF2YSB1xb5pdmF0ZWzFryc7CiRsYW5nWydub2lubGluZSddID0gJ0RvIG5vdCBpbmxpbmUgZm9ybXMnOwokbGFuZ1snaW5mb19sb3N0dW4nXSA9ICdLbGlrbsSbdGUgemRlLCBwb2t1ZCBzaSBuZW3Fr8W+ZXRlIHZ6cG9tZW5vdXQgbmEgcMWZaWhsYSZzY2Fyb247b3ZhYyZpYWN1dGU7ICZ1YWN1dGU7ZGFqZSc7CiRsYW5nWydpbmZvX2ZvcmdvdHB3J10gPSAnS2xpa27Em3RlIHpkZSwgcG9rdWQgc2kgbmVtxa/FvmV0ZSB2enBvbWVub3UgbmEgc3YmZWFjdXRlOyBoZXNsbyc7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJ0tsaWtuxJt0ZSB6ZGUgcHJvIG9kaGwmYWFjdXRlOyZzY2Fyb247ZW4maWFjdXRlOyc7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnS2xpa27Em3RlIHpkZSwgY2hjZXRlLWxpIHVwcmF2aXQgaGVzbG8gYSBkYWwmc2Nhcm9uOyZpYWN1dGU7IGluZm9ybWFjZSc7CiRsYW5nWyd2aWV3dXNlcl90ZW1wbGF0ZSddID0gJ1Byb2hsJmVhY3V0ZTtkbm91dCAmc2Nhcm9uO2FibG9udSB1xb5pdmF0ZWxlJzsKJGxhbmdbJ2V2ZW50J10gPSAnVWQmYWFjdXRlO2xvc3QnOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ0ZFVSBFdmVudCBOb3RpZmljYXRpb24nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnTm90aWZpY2F0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ05vdGlmaWNhdGlvbiBFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICdOb3RpZmljYXRpb24gRW1haWwgU3ViamVjdCc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9ucyddID0gJ0VtYWlsIE5vdGlmaWNhdGlvbnMnOwokbGFuZ1snT25Mb2dpbiddID0gJ09uIExvZ2luJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnT24gTG9nb3V0JzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ09uIFNlc3Npb24gRXhwaXJ5JzsKJGxhbmdbJ09uQ3JlYXRlVXNlciddID0gJ09uIE5ldyBVc2VyIENyZWF0ZWQnOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnT24gVXNlciBEZWxldGVkJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ09uIFVzZXIgU2V0dGluZ3MgQ2hhbmdlZCc7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBDcmVhdGVkJzsKJGxhbmdbJ09uRGVsZXRlR3JvdXAnXSA9ICdPbiBVc2VyIEdyb3VwIERlbGV0ZWQnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wcmVtc2cnXSA9ICdVxb5pdmF0ZWxzayZlYWN1dGU7IGptJmVhY3V0ZTtubyBvZHBvdiZpYWN1dGU7ZGFqJmlhY3V0ZTtjJmlhY3V0ZTsgViZhYWN1dGU7bWkgemFkYW4meWFjdXRlO20gJnVhY3V0ZTtkYWrFr20gYnlsbyBuYWxlemVuby4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ1ZhJnNjYXJvbjtlIHXFvml2YXRlbHNrJmVhY3V0ZTsgam0mZWFjdXRlO25vIGplJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcG9zdG1zZyddID0gJ0RvcG9ydcSNdWplbWUgViZhYWN1dGU7bSB1bG/Fvml0IHR5dG8gaW5mb3JtYWNlIG5hIGJlenBlxI1uJmVhY3V0ZTttLCBuaWNtJmVhY3V0ZTtuxJsgZG9zYcW+aXRlbG4mZWFjdXRlO20gbSZpYWN1dGU7c3TEmy4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX2NoYW5nZV9zZXR0aW5ncyddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGNoYW5nZSBzZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfdmVyaWZ5X2NvZGUnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBjb2RlIHZlcmlmaWNhdGlvbiAqJzsKJGxhbmdbJ2xvc3R1bl9kZXRhaWxzX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmxvbmEgZGV0YWlsxa8gcMWZaSB6dHImYWFjdXRlO3TEmyB1xb5pdmF0ZWxzayZlYWN1dGU7aG8gam0mZWFjdXRlO25hJzsKJGxhbmdbJ2xvc3R1bl9jb25maXJtX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmxvbmEgcG90dnJ6ZW4maWFjdXRlOyBwxZlpIHp0ciZhYWN1dGU7dMSbIHXFvml2YXRlbHNrJmVhY3V0ZTtobyBqbSZlYWN1dGU7bmEnOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlbWF0Y2gnXSA9ICdDaHliYTogWmFkYW4meWFjdXRlO20gdmxhc3Rub3N0ZW0gb2Rwb3YmaWFjdXRlO2QmYWFjdXRlOyB2JmlhY3V0ZTtjZSBuZcW+IDEgdcW+aXZhdGVsJzsKJGxhbmdbJ2Vycm9yX2NhbnRmaW5kdXNlciddID0gJ0NoeWJhOiBUZW50byB1xb5pdmF0ZWwgbmVleGlzdHVqZSc7CiRsYW5nWydlcnJvcl9ncm91cG5vdGZvdW5kJ10gPSAnQ2h5YmE6IFNrdXBpbmEgdG9ob3RvIGptJmVhY3V0ZTtuYSBuZWV4aXN0dWplJzsKJGxhbmdbJ3JlYWRvbmx5J10gPSAnUG91emUga2UgxI10ZW4maWFjdXRlOyc7CiRsYW5nWydwcm9tcHRfdXNlcm1hbmlwdWxhdG9yJ10gPSAnVXNlciBNYW5pcHVsYXRvciBDbGFzcyc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdPZGhsJmFhY3V0ZTsmc2Nhcm9uO2VuIGFkbWluaXN0ciZhYWN1dGU7dG9yZW0nOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ1VrJmFhY3V0ZTt6YXQgcG91emUgcMWZaWhsJmFhY3V0ZTsmc2Nhcm9uO2VuJmVhY3V0ZTsgdcW+aXZhdGVsZSc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnT2RobCZhYWN1dGU7c2l0IHRvaG90byB1xb5pdmF0ZWxlJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ1ZsYXN0bm9zdGkgdcW+aXZhdGVsZSc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0hpc3RvcmllIHXFvml2YXRlbGUnOwokbGFuZ1snZXhwb3J0J10gPSAnRXhwb3J0JzsKJGxhbmdbJ2NsZWFyJ10gPSAnVnnEjWlzdGl0JzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0V4cG9ydG92YXQgaGlzdG9yaWkgdcW+aXZhdGVsZSBkbyBBU0NJSSc7CiRsYW5nWydwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeSddID0gJ0NsZWFyIFVzZXIgSGlzdG9yeSByZWNvcmRzIHRoYXQgaXMgYXQgbGVhc3QnOwokbGFuZ1sndGl0bGVfbG9zdHVzZXJuYW1lJ10gPSAnTG9zdCBVc2VybmFtZSBTdXBwb3J0IEZvcm0nOwokbGFuZ1sndGl0bGVfcnNzZXhwb3J0J10gPSAnRXhwb3J0b3ZhdCBkZWZpbmljaSBza3VwaW55IChhIGplaiZpYWN1dGU7IHZsYXN0bm9zdGkpIGRvIFhNTCc7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeW1haW50ZW5hbmNlJ10gPSAnU3ByJmFhY3V0ZTt2YSBoaXN0b3JpZSB1xb5pdmF0ZWxlJzsKJGxhbmdbJ3llcyddID0gJ0Fubyc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ3onOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogQmV6IGxpbWl0dSAqKic7CiRsYW5nWydkYXRlX29uZWhvdXJvbGQnXSA9ICdKZWRudSBob2RpbnUgc3RhciZlYWN1dGU7JzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJyZTY2Fyb247ZXN0IGhvZGluIHN0YXImZWFjdXRlOyc7CiRsYW5nWydkYXRlX3R3ZWx2ZWhvdXJvbGQnXSA9ICdEdmFuJmFhY3V0ZTtjdCBob2RpbiBzdGFyJmVhY3V0ZTsnOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICdKZWRlbiBkZW4gc3RhciZlYWN1dGU7JzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJ0plZGVuIHQmeWFjdXRlO2RlbiBzdGFyJmVhY3V0ZTsnOwokbGFuZ1snZGF0ZV90d293ZWVrc29sZCddID0gJ0R2YSB0JnlhY3V0ZTtkbnkgc3RhciZlYWN1dGU7JzsKJGxhbmdbJ2RhdGVfb25lbW9udGhvbGQnXSA9ICdKZWRlbiBtxJtzJmlhY3V0ZTtjIHN0YXImZWFjdXRlOyc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnVMWZaSBtxJtzJmlhY3V0ZTtjZSBzdGFyJmVhY3V0ZTsnOwokbGFuZ1snZGF0ZV9zaXhtb250aHNvbGQnXSA9ICcmU2Nhcm9uO2VzdCBtxJtzJmlhY3V0ZTtjxa8gc3RhciZlYWN1dGU7JzsKJGxhbmdbJ2RhdGVfb25leWVhcm9sZCddID0gJ0plZGVuIHJvayBzdGFyJmVhY3V0ZTsnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnU2Vza3Vwb3YmYWFjdXRlO24maWFjdXRlOyBhIHTFmSZpYWN1dGU7ZMSbbiZpYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9yZWNvcmRzZm91bmQnXSA9ICdaJmFhY3V0ZTt6bmFteSBvZHBvdiZpYWN1dGU7ZGFqJmlhY3V0ZTtjJmlhY3V0ZTsgcG9kbSZpYWN1dGU7bmNlJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnUG9kbGUgdcW+aXZhdGVsc2smZWFjdXRlO2hvIGptJmVhY3V0ZTtuYSBzZXN0dXBuxJsnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2FzYyddID0gJ1BvZGxlIHXFvml2YXRlbHNrJmVhY3V0ZTtobyBqbSZlYWN1dGU7bmEgdnplc3R1cG7Emyc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnUG9kbGUgZGF0YSBzZXN0dXBuxJsnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfYXNjJ10gPSAnUG9kbGUgZGF0YSB2emVzdHVwbsSbJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ1BvZGxlIHR5cHUgYWtjZSBzZXN0dXBuxJsnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdQb2RsZSB0eXB1IGFrY2Ugdnplc3R1cG7Emyc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdTZXN0dXBuxJsgcG9kbGUgSVAgYWRyZXN5JzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnVnplc3R1cG7Emyc7CiRsYW5nWydpbmZvX25vaGlzdG9yeWRldGVjdGVkJ10gPSAnSGlzdG9yaWUgbmVieWxhIG5hbGV6ZW5hJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXRvdmF0JzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ1Nlc2t1cGl0IHBvZGxlIElQIGFkcmVzeSc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0ZpbHRyb3ZhdCBwb2RsZSB0eXB1IGFrY2UnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9kYXRlJ10gPSAnWm9icmF6aXQgcG91emUgYWtjZSwga3RlciZlYWN1dGU7IGpzb3UgbSZlYWN1dGU7bsSbIG5lxb46JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdTdHImYWFjdXRlO25rb3YmeWFjdXRlOyBsaW1pdCc7CiRsYW5nWydmb3InXSA9ICdwcm8nOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdTaHJudXQmaWFjdXRlOyBoaXN0b3JpZSB1xb5pdmF0ZWxlJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdOZXpuJmFhY3V0ZTttJnlhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0lQIEFkcmVzYSc7CiRsYW5nWydwcm9tcHRfZXZlbnR0eXBlJ10gPSAnVHlwIHVkJmFhY3V0ZTtsb3N0aSc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdacMSbdCc7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnSW1wb3J0IHByb3ZlZGVuJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ8WZJmFhY3V0ZTtka8WvIHpwcmFjb3YmYWFjdXRlO25vJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdWeXNreXRseSBzZSBjaHlieSc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnWiZhYWN1dGU7em5hbXkgYnlseSBwxZlpZCZhYWN1dGU7bnknOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3ByZWxucyddID0gJ05lbHplIG5hbCZlYWN1dGU7enQgdmxhc3Rub3N0aSBza3VwaW55ICVzJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnTmVwb2RhxZlpbG8gc2UgeiZpYWN1dGU7c2thdCBvZHBvdsSbxI8gb2QgU01UUCBzZXJ2ZXJ1ICh6a29udHJvbHVqdGUgcHJvcyZpYWN1dGU7bSBuYXN0YXZlbiZpYWN1dGU7LCBwxZkmaWFjdXRlO3BhZG7EmyBrb250YWt0dWp0ZSBzcHImYWFjdXRlO3ZjZSBzZXJ2ZXJ1KSc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlbm90Zm91bmQnXSA9ICdVdmVkZW4meWFjdXRlOyBzb3Vib3IgKCVzKSBuZWJ5bCBuYWxlemVuJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICdOZXBsYXRuJmFhY3V0ZTsgaG9kbm90YSBwcm8gcm96YmFsb3ZhYyZpYWN1dGU7IHBvbCZpYWN1dGU7xI1rbyBuZWJvIHYmeWFjdXRlO2LEm3IgeiB2JmlhY3V0ZTtjZSBtb8W+bm9zdCZpYWN1dGU7ICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkbGVuZ3RoJ10gPSAnUG9sZSAlcyBwxZllc2FodWplIG1heGltJmFhY3V0ZTtsbiZpYWN1dGU7IGQmZWFjdXRlO2xrdSc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ0NoeWJhIHDFmWkgaW1wb3J0dSAoxZkmYWFjdXRlO2RlayAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdOZWx6ZSBwxZlpc3RvdXBpdCBrIGRlZmluaWMmaWFjdXRlO20gdmxhc3Rub3N0JmlhY3V0ZTsgKHZuaXTFmW4maWFjdXRlOyBjaHliYSknOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdpbmZvJ10gPSAnUHJvYmwmZWFjdXRlO20gcMWZaSBuYXN0YXZvdiZhYWN1dGU7biZpYWN1dGU7IHXFvml2YXRlbHNrJnlhY3V0ZTtjaCBpbmZvcm1hYyZpYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHJlcXVpcmVkZmllbGQnXSA9ICdOZW1vaHUgbmFsJmVhY3V0ZTt6dCBzbG91cGVjLCBrdGVyJnlhY3V0ZTsgb2Rwb3YmaWFjdXRlO2QmYWFjdXRlOyB2ecW+YWRvdmFuJmVhY3V0ZTttdSBwb2xpICVzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wZXJ0aWVzJ10gPSAnTmVtb2h1IG5hbCZlYWN1dGU7enQgdmxhc3Rub3N0aSBwcm8gdXZlZGVub3Ugc2t1cGludSc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnU291Ym9yIHZ5YnJhbiZ5YWN1dGU7IHBybyBpbXBvcnQgbmVuJmlhY3V0ZTsgdmUgc3ByJmFhY3V0ZTt2biZlYWN1dGU7bSBmb3JtJmFhY3V0ZTt0dSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdG9wZW5maWxlJ10gPSAnTmVtb2h1IG90ZXbFmSZpYWN1dGU7dCBzb3Vib3InOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcIykgY2hhcmFjdGVycywgYW5kIG5hbWVzIGVhY2ggb2YgdGhlIGZpZWxkcyBpbiB0aGUgZmlsZS4gIFRoZSBuYW1lcyBvZiB0aGVzZSBmaWVsZHMgaXMgc2lnbmlmaWNhbnQuICBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZCBuYW1lcyAoc2VlIGJlbG93KSwgYW5kIG90aGVyIGZpZWxkIG5hbWVzIG11c3QgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdXNlcnMgYXJlIGdvaW5nIHRvIGJlIGFkZGVkIGludG8uPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBmYWlsIGlmIHRoZSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgZG9lcyBub3QgbWF0Y2ggYWxsIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdGhhdCB1c2VycyBhcmUgYmVpbmcgYWRkZWQgaW50bzwvbGk+DQo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBpZ25vcmUgYW55IGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSB0aGF0IGFyZSBlaXRoZXIgbm90IGtub3duLCBvciBtYXAgdG8gcHJvcGVydGllcyB0aGF0IGFyZSA8ZW0+b2ZmPC9lbT4gaW4gdGhlIHNwZWNpZmllZCB1c2VyIGdyb3VwLjwvbGk+DQo8L3VsPg0KPGg1PkNvbHVtbmFyIERhdGE8L2g1Pg0KPHVsPg0KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuDQogICAgPHA+VGhpcyBmaWVsZCBtdXN0IGV4aXN0IGluIHRoZSBoZWFkZXJsaW5lLCBhbmQgaW4gZWFjbiBhbmQgZXZlcnkgbGluZSBvZiB0aGUgaW5wdXQgZmlsZS4gVGhlIHJlY29yZCB3aWxsIGZhaWwgaWYgYSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UuPC9wPjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5leHBpcmVzPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+RHJvcGRvd24gRmllbGRzDQogICAgPHA+VGhlIHZhbHVlIG9mIGRyb3Bkb3duIHByb3BlcnRpZXMgaW4gYW4gaW1wb3J0IGZpbGUgaXMgcmVwcmVzZW50ZWQgYXMgdGhlIHN0cmluZyB0aGF0IGlzIHNob3duIGluIHRoZSBkcm9wZG93biBjb250cm9sIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPk11bHRpc2VsZWN0IEZpZWxkcw0KICAgIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4NCjwvbGk+DQo8bGk+SW1hZ2UgRmllbGRzDQogICAgPHA+SW1hZ2UgYXJlIGZpZWxkcyB3aG8mIzAzOTtzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0b3ZhdCB1xb5pdmF0ZWxlIGRvIHQmZWFjdXRlO3RvIHNrdXBpbnknOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnVmxvxb5pdCBDU1Ygc291Ym9yJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR4bWxmaWxlJ10gPSAnVmxvxb5pdCBYTUwgc291Ym9yJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0V4cG9ydG92YXQgdcW+aXZhdGVsZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnRvdmF0IHXFvml2YXRlbGUnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnVnnEjWlzdGl0JzsKJGxhbmdbJ3Byb21wdF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRoJ10gPSAnQ2VzdGEgayBvYnImYWFjdXRlO3prdSc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3VwbG9hZCddID0gJ1Z5c2t5dGwgc2UgcHJvYmwmZWFjdXRlO20gcyBjaHlixJtqJmlhY3V0ZTtjJmlhY3V0ZTttIChhbGUgdnnFvmFkb3ZhbiZ5YWN1dGU7bSkgdXBsb2FkZW0nOwokbGFuZ1snZXJyb3JfYmFkX3htbCddID0gJ05lbHplIHBhcnNvdmF0IHBvc2t5dG51dCZ5YWN1dGU7IFhNTCBzb3Vib3InOwokbGFuZ1snZXJyb3Jfbm90ZW1wdHlncm91cCddID0gJ05lbHplIHZ5bWF6YXQgc2t1cGludSwga3RlciZhYWN1dGU7IG0mYWFjdXRlOyBqZSZzY2Fyb247dMSbIMSNbGVueSc7CiRsYW5nWydlcnJvcl9ub3JlcGVhdGVkbG9naW5zJ10gPSAnVcW+aXZhdGVsIGplIGppxb4gcMWZaWhsJmFhY3V0ZTsmc2Nhcm9uO2VuJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ1RleHQgeiBvYnImYWFjdXRlO3prdSBuZWJ5bCBzcHImYWFjdXRlO3ZuxJsgdmxvxb5lbic7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnUG92b2xpdCB1xb5pdmF0ZWzFr20gdiZpYWN1dGU7Y2VuJmFhY3V0ZTtzb2JuJmVhY3V0ZTsgcMWZaWhsJmFhY3V0ZTsmc2Nhcm9uO2VuJmlhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ1DFmSZpYWN1dGU7cG9ueSB0eXDFryBvYnImYWFjdXRlO3prxa8sIGt0ZXImZWFjdXRlOyBtb2hvdSB1xb5pdmF0ZWwmZWFjdXRlOyBuYWhyJmFhY3V0ZTt0JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVVc2VyJ10gPSAnPGgzPk9uRGVsZXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgdXBkYXRlZCAoZWl0aGVyIGJ5IHVzZXIgdGhlbXNlbGYgb3IgYWRtaW4pPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgZ3JvdXAgZGVzY3JpcHRpb248L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVHcm91cCddID0gJzxoMz5PbkRlbGV0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBUaGUgaXAgYWRkcmVzcyBvZiB0aGUgY2xpZW50PC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWRvdXQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25FeHBpcmVVc2VyJ10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gZXhwaXJlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluIHRvIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dCBvZiB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gaXMgZXhwaXJlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgbmV3IHVzZXIgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpbmZvIGlzIHVwZGF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgYWNjb3VudCBpcyBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyB1cGRhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBkZWxldGVkJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdCYWNrZW5kIGdydW9wJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogTiZhYWN1dGU7c2xlZHVqJmlhY3V0ZTtjJmlhY3V0ZTsgbWFrcmEgbW9ob3UgYiZ5YWN1dGU7dCBwb3XFvml0YSB2IHTEm2NodG8gcG9sJmlhY3V0ZTtjaCA6IHskdXNlcm5hbWV9JzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdVcHJhdnRlIHRvdG8gcG9sZSBwcm8gcmVzZXRvdiZhYWN1dGU7biZpYWN1dGU7IGhlc2xhIHXFvml2YXRlbGUnOwokbGFuZ1snaW5mb19hZG1pbl9yZXBlYXRwYXNzd29yZCddID0gJ1VwcmF2dGUgdG90byBwb2xlIHBybyByZXNldG92JmFhY3V0ZTtuJmlhY3V0ZTsgaGVzbGEgdcW+aXZhdGVsZSc7CiRsYW5nWydlcnJvcl91c2VybmFtZV9leGlzdHMnXSA9ICdVxb5pdmF0ZWwgcyB0JmlhY3V0ZTttdG8gdcW+aXZhdGVsc2smeWFjdXRlO20gam0mZWFjdXRlO25lbSBqacW+IGV4aXN0dWplJzsKJGxhbmdbJ25vY3N2cmVzdWx0cyddID0gJ0V4cG9ydCBjc3YgbmV2ciZhYWN1dGU7dGlsIMW+JmFhY3V0ZTtkbiZlYWN1dGU7IHYmeWFjdXRlO3NsZWRreSc7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdEJmVhY3V0ZTtsa2EgcG9sZSBwcm8gam0mZWFjdXRlO25vIHXFvml2YXRlbGUnOwokbGFuZ1sncHJvbXB0X3B3ZmxkbGVuJ10gPSAnRCZlYWN1dGU7bGthIHBvbGUgcHJvIGhlc2xvJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICdNaW4vTWF4IGQmZWFjdXRlO2xrYSBoZXNsYSBqZSBuZXBsYXRuJmFhY3V0ZTsnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ01pbi9NYXggZCZlYWN1dGU7bGthIHXFvml2YXRlbHNrJmVhY3V0ZTtobyBqbSZlYWN1dGU7bmEgamUgbmVwbGF0biZhYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdOZXBsYXRuJmFhY3V0ZTsgZW1haWxvdiZhYWN1dGU7IGFkZHJlc2EnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdFLW1haWxvdiZhYWN1dGU7IGFkcmVzYSBwcm8gdGVudG8gJnVhY3V0ZTvEjWV0IG5lYnlsYSBuYWxlemVuYSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2VldHRpbmdpbmZvJ10gPSAnUHJvYmwmZWFjdXRlO20gcyBuYXN0YXZlbiZpYWN1dGU7bSBpbmZvIG8gdTZpdmF0ZWxpJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ1Byb2JsJmVhY3V0ZTttIHMgbmFzdGF2ZW4maWFjdXRlO20gdmxhc3Rub3N0aSc7CiRsYW5nWyd1c2VyX2FkZGVkJ10gPSAnVcW+aXZhdGVsIHDFmWlkYWwgJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdVxb5pdmF0ZWwgc21hemFsIHVpZD0lcyc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ1ZsYXN0bm9zdCc7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnSG9kbm90YSAocmVndWwmZWFjdXRlO3JuJmlhY3V0ZTsgdiZ5YWN1dGU7cmF6KSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ1Zhcm92JmFhY3V0ZTtuJmlhY3V0ZTs6IFRhdG8gcG9sZSBvdmxpdm4maWFjdXRlOyB2ZWxpa29zdCB2c3R1cG4maWFjdXRlO2NoIHBvbCZpYWN1dGU7IGZvcm11bCZhYWN1dGU7xZnFry4gIFNuJmlhY3V0ZTvFvmVuJmlhY3V0ZTsgdG9ob3RvIMSNJmlhY3V0ZTtzbGEgbmEgZXhpc3R1aiZpYWN1dGU7YyZpYWN1dGU7IHN0ciZhYWN1dGU7bmNlIG5lbiZpYWN1dGU7IGRvcG9ydcSNZW5vLic7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnWm3Em25pdCBhZG1pbmlzdHJhxI1uJmlhY3V0ZTsgcHJlZmVyZW5jZT8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0UtbWFpbG92JmFhY3V0ZTsgYWRyZXNhIGJ5bGEgamnFviBwb3XFvml0YSc7CiRsYW5nWydwcm9tcHRfdXNlY29va2llc3RvcmVtZW1iZXInXSA9ICdQb3XFviZpYWN1dGU7dCBjb29raWUgcHJvIHphcGFtYXRvdiZhYWN1dGU7biZpYWN1dGU7IHDFmWlobGEmc2Nhcm9uO292YWMmaWFjdXRlO2NoICZ1YWN1dGU7ZGFqxa8nOwokbGFuZ1sncHJvbXB0X2Nvb2tpZW5hbWUnXSA9ICdKbSZlYWN1dGU7bm8gY29va2llJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnUG92b2xpdCBkdXBsaWNpdG4maWFjdXRlOyBlbWFpbHkuJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCddID0gJ0VtYWlsIGFkZHJlc3MgaXMgdXNlcm5hbWUnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnUG9rb3Umc2Nhcm9uO2V0IHNlIHVkcsW+ZXQgdcW+aXZhdGVsZSBwxZlpaGwmYWFjdXRlOyZzY2Fyb247ZW4mZWFjdXRlOyBwb21vYyZpYWN1dGU7IGNvb2tpZXMgPGVtPihjb29raWUgcmVzZXR1amUgYWt0aXZpdHUgbmEgc3RyJmFhY3V0ZTtuayZhYWN1dGU7Y2gpPC9lbT4nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKHBvdm9saXQgdiZpYWN1dGU7Y2UgdcW+aXZhdGVsxa8gc2Ugc3Rlam5vdSBlbWFpbG92b3UgYWRyZXNvdSknOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyh1c2VyJiMwMzk7cyBlbWFpbCBhZGRyZXNzIGlzIHRoZWlyIHVzZXJuYW1lIC0tIGRvbiYjMDM5O3Qgc2V0IHRoaXMgd2l0aCAmcXVvdDthbGxvdyBkdXBsaWNhdGUgZW1haWwgYWRkcmVzc2VzJnF1b3Q7ISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgJnF1b3Q7Zm9yZ290IHBhc3N3b3JkJnF1b3Q7IHJlbWluZGVycz8nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnKGFsbG93IGEgdXNlcnMgdG8gcmVxdWVzdCBhIHBhc3N3b3JkIHJlc2V0LCBldmVuIGlmIHRoZXkgaGF2ZW4mIzAzOTt0IGFjdGVkIG9uIGEgcHJldmlvdXMgb25lKSc7CiRsYW5nWydwcm9tcHRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJ1BvdcW+JmlhY3V0ZTt0IG9wciZhYWN1dGU7dm7Em24maWFjdXRlOyBzcGVjaWZpY2smYWFjdXRlOyBwcm8gRnJvbnQgRW5kIFVzZXJzIG1vZHVsPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoQsSbxb5uxJsganNvdSBwcm8gRkVVc2VycyBtb2R1bCBwb3XFviZpYWN1dGU7diZhYWN1dGU7bmEgc3Rlam4mYWFjdXRlOyBvcHImYWFjdXRlO3ZuxJtuJmlhY3V0ZTsgamFrbyBwcm8gQWRtbmluaXN0cmHEjW4maWFjdXRlOyByb3pocmFuJmlhY3V0ZTsuIFBva3VkIHZ5YmVyZXRlIHR1dG8gbW/Fvm5vc3QsIGJ1ZG91IHBybyBGRVVzZXNycyBwb3XFviZpYWN1dGU7diZhYWN1dGU7bmEgb2RkxJtsZW4mYWFjdXRlOyBuYXN0YXZlbiZpYWN1dGU7LiknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VwbG9hZCddID0gJ05lbW9obCBqc2VtIHVwbG9hZG92YXQgc291Ym9yIChpbnRlcm4maWFjdXRlOyBjaHliYSknOwokbGFuZ1snZXJyb3JfcHJvYmxlbV91cGxvYWQnXSA9ICdQxZlpIG5haHImYWFjdXRlO3YmYWFjdXRlO24maWFjdXRlOyBzb3Vib3LFryBkbyZzY2Fyb247bG8gayBjaHlixJsuIFprdXN0ZSB0byBwcm9zJmlhY3V0ZTttIHpub3Z1JzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1c2VybmFtZSddID0gJ05ldmxvxb5pbGkganN0ZSB1xb5pdmF0ZWxzayZlYWN1dGU7IGptJmVhY3V0ZTtubyc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdOZXZsb8W+aWwganN0ZSB2JmFhY3V0ZTsmc2Nhcm9uOyBlbWFpbCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdOZXZsb8W+aWxpIGpzdGUgaGVzbG8nOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0Zyb250ZW5kIFVzZXIgT2RobCZhYWN1dGU7JnNjYXJvbjtlbiZpYWN1dGU7JzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0Zyb250ZW5kIFVzZXIgUMWZaWhsJmFhY3V0ZTsmc2Nhcm9uO2VuJmlhY3V0ZTsnOwokbGFuZ1snZWRpdHByb3BfaW5mb21zZyddID0gJzxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48Yj5VUE9aT1JOxJpOJklhY3V0ZTs8L2I+IHptxJtuYSBzdCZhYWN1dGU7dmFqJmlhY3V0ZTtjJmlhY3V0ZTtjaCB2bGFzdG5vc3QmaWFjdXRlOywga3RlciZlYWN1dGU7IGpzb3UgcMWZacWZYXplbnkgc2t1cGluJmFhY3V0ZTttIG3Fr8W+ZSB6cMWvc29iaXQgcHJvYmwmZWFjdXRlO215IDxpPihwxZllZGV2JnNjYXJvbjsmaWFjdXRlO20gcMWZaSB6a3ImYWFjdXRlO2NlbiZpYWN1dGU7IG7Em2t0ZXImeWFjdXRlO2NoIHBvbCZpYWN1dGU7KTwvaT48L2ZvbnQ+JzsKJGxhbmdbJ2luZm9fc210cHZhbGlkYXRlJ10gPSAnVGF0byBmdW5rY2UgbmVwcmFjdWplIHBvZCB3aW5kb3dzJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdOZXZ5dHYmYWFjdXRlO8WZZWp0ZSB6dmwmYWFjdXRlOyZzY2Fyb247dG4maWFjdXRlOyB2bGFzdG5vc3QgcHJvIHXFvml2YXRlbHNrJmVhY3V0ZTsgam0mZWFjdXRlO25vLCBwcm90b8W+ZSB0b3RvIGplIHXFviBzb3XEjSZhYWN1dGU7c3QmaWFjdXRlOyBtb2R1bHUgRnJvbnRFbmRVc2Vycyc7CiRsYW5nWydwcm9tcHRfZXhwb3J0Y3N2J10gPSAnRXhwb3J0b3ZhdCB1xb5pdmF0ZWxlIGRvIENTVic7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnRvdmF0JzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydG92YXQnOwokbGFuZ1snYWRtaW4nXSA9ICdBZG1pbmlzdHJhY2UnOwokbGFuZ1snZWRpdHByb3AnXSA9ICdFZGl0b3ZhdCB2bGFzdG5vc3QnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW0mYWFjdXRlO2xuJmlhY3V0ZTsgZCZlYWN1dGU7bGthJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdWeXR2b8WZZW5vJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NlxZlhZGl0IHBvZGxlJzsKJGxhbmdbJ3NvcnQnXSA9ICfFmGF6ZW4maWFjdXRlOyc7CiRsYW5nWyd1c2Vyc2luZ3JvdXAnXSA9ICdVxb5pdmF0ZWwmZWFjdXRlOyB2ZSB2eWJyYW4meWFjdXRlO2NoL3Z5YnJhbiZlYWN1dGU7IHNrdXBpbiZhYWN1dGU7Y2gvc2t1cGluxJsuJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ09tZXppdCB2JnlhY3V0ZTtzbGVka3kgZG8nOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGZpZWxkJ10gPSAnTmVsemUgbmFqJmlhY3V0ZTt0IHBvbG/Fvmt1IGVtYWlsIHBybyB0b2hvdG8gdcW+aXZhdGVsZS4gTmVqc3AmaWFjdXRlOyZzY2Fyb247ZSBidWRldGUgcG90xZllYm92YXQga29udGFrdG92YXQgYWRtaW5pc3RyJmFhY3V0ZTt0b3JhLic7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyBmb3JtdWwmYWFjdXRlO8WZZSBwcm8gemFwb21lbnV0JmVhY3V0ZTsgaGVzbG8nOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzX3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgZm9ybXVsJmFhY3V0ZTvFmWUgcHJvIHptxJtudSBuYXN0YXZlbiZpYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9sb2dpbl9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHN0ciZhYWN1dGU7bmt5IHBvIHDFmWlobCZhYWN1dGU7JnNjYXJvbjtlbiZpYWN1dGU7IConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHN0ciZhYWN1dGU7bmt5IHBvIG9kaGwmYWFjdXRlOyZzY2Fyb247ZW4maWFjdXRlOyAqJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ1BvxZlhZCZpYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ0EgbnVtYmVyIG9mIHVzZXJzIGFyZSBpbiB0aGUgbWlkZGxlIG9mIHJlc2V0dGluZyBsb3N0IHBhc3N3b3Jkcy4gIEN1cnJlbnRseSB0aGlzIGNvdW50IGlzIGF0Oic7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ09kc3RyYW5pdCB2JnNjYXJvbjtlY2hueSB6JmFhY3V0ZTt6bmFteSBzdGFyJnNjYXJvbjsmaWFjdXRlOyBuZcW+IGplZGVuIHQmeWFjdXRlO2Rlbic7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdPZHN0cmFuaXQgdiZzY2Fyb247ZWNobnkgeiZhYWN1dGU7em5hbXkgc3RhciZzY2Fyb247JmlhY3V0ZTsgbmXFviBqZWRlbiBtxJtzJmlhY3V0ZTtjJzsKJGxhbmdbJ3JlbW92ZWFsbCddID0gJ09kc3RyYW5pdCB2JnNjYXJvbjtlY2hueSB6JmFhY3V0ZTt6bmFteSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSnN0ZSBzaSBqaXN0Pyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ1phZCZhYWN1dGU7biAmc2Nhcm9uO3BhdG4meWFjdXRlOyBrJm9hY3V0ZTtkLCBwcm9zJmlhY3V0ZTttIHprdXN0ZSB0byB6bm92YSc7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnRG/EjWFzbiZ5YWN1dGU7IGsmb2FjdXRlO2QgcHJvIHZhJnNjYXJvbjtlIHXFvml2YXRlbHNrJmVhY3V0ZTsgam0mZWFjdXRlO25vIG5lbHplIG5haiZpYWN1dGU7dCB2IGRhdGFiJmFhY3V0ZTt6aSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hIGZvcm11bCZhYWN1dGU7xZllIHBybyB2ZXJpZmlrYWNpJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX2VtYWlsdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYSBmb3JtdWwmYWFjdXRlO8WZZSBwcm8gemFwb21lbnV0JmVhY3V0ZTsgaGVzbG8nOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ1Z5IG5lYm8gbsSba2RvIGppbiZ5YWN1dGU7IGppxb4gemHFviZhYWN1dGU7ZGFsIG8gcmVzZXRvdiZhYWN1dGU7biZpYWN1dGU7IGhlc2xhIHBybyB0ZW50byAmdWFjdXRlO8SNZXQuIERhbCZzY2Fyb247JmlhY3V0ZTsgaW5zdHJ1a2NlIG5hamRldGUgdmUgc3YmZWFjdXRlOyBlLW1haWxvdiZlYWN1dGU7IHNjaHImYWFjdXRlO25jZS4nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0NoeWJhOiBQcm9ibCZlYWN1dGU7bSBzIGRhdGFiJmFhY3V0ZTt6JmlhY3V0ZTsnOwokbGFuZ1snbWVzc2FnZV9mb3Jnb3Rwd2VtYWlsJ10gPSAnVHV0byB6cHImYWFjdXRlO3Z1IGRvc3QmYWFjdXRlO3YmYWFjdXRlO3RlLCBwcm90b8W+ZSBuxJtrZG8gemHFviZhYWN1dGU7ZGFsIG8gb2Jub3ZlbiZpYWN1dGU7IHphcG9tZW51dCZlYWN1dGU7aG8gaGVzbGEgayB2YSZzY2Fyb247ZW11ICZ1YWN1dGU7xI10dSBuYSBuYSZzY2Fyb247JmlhY3V0ZTsgc3RyJmFhY3V0ZTtuY2UuIFBva3VkIGplIHRvIHRhaywgcG9zdHVwdWp0ZSBwb2RsZSBuJmlhY3V0ZTvFvmUgdXZlZGVuJnlhY3V0ZTtjaCBpbnN0cnVrYyZpYWN1dGU7LiBQb2t1ZCBuZXR1JnNjYXJvbjsmaWFjdXRlO3RlIG8gY28gamRlLCB0YWsgdGVudG8gZS1tYWlsIGlnbm9ydWp0ZS4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdLJm9hY3V0ZTtkJzsKJGxhbmdbJ21lc3NhZ2VfY29kZSddID0gJ04mYWFjdXRlO3NsZWR1aiZpYWN1dGU7YyZpYWN1dGU7IGsmb2FjdXRlO2QgYnlsIG4mYWFjdXRlO2hvZG7EmyB2eWdlbmVyb3YmYWFjdXRlO24gcHJvIHZlcmlmaWthY2kgdcW+aXZhdGVsc2smZWFjdXRlO2hvICZ1YWN1dGU7xI10dS4gUG8ga2xlcG51dCZpYWN1dGU7IG5hIG4mYWFjdXRlO3NsZWR1aiZpYWN1dGU7YyZpYWN1dGU7IG9ka2F6IHNlIGRvc3RhbmV0ZSBuYSBzdHImYWFjdXRlO25rdSBrZGUgemFkYXQgdGVudG8gayZvYWN1dGU7ZC4gUG9sZSBqZSBzdGFuZGFyZG7EmyBqacW+IHDFmWVkdnlwbG7Em25vLiBQb2t1ZCBuZW4maWFjdXRlOywgayZvYWN1dGU7ZCBqZSB6ZGU6JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnS2xlcG51dCZpYWN1dGU7bSBuYSBuJmFhY3V0ZTtzbGVkdWomaWFjdXRlO2MmaWFjdXRlOyBvZGtheiBzZSBkb3N0YW5ldGUgbmEgc3RyJmFhY3V0ZTtua3UsIGtkZSBtxa/FvmV6ZSB6YWRhdCB2JnlhY3V0ZTsmc2Nhcm9uO2UgdXZlZGVuJnlhY3V0ZTsgayZvYWN1dGU7ZCBhIG9ibm92aXQgdmEmc2Nhcm9uO2UgaGVzbG86JzsKJGxhbmdbJ2xvc3RwYXNzd29yZF9lbWFpbHN1YmplY3QnXSA9ICdaYXBvbWVudXQmZWFjdXRlOyBoZXNsbyc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ05lbHplIG5haiZpYWN1dGU7dCBtb2R1bCBDTVNNYWlsZXInOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnTmEgYWRyZXN1ICVzIGJ5bCB6YXNsJmFhY3V0ZTtuIGUtbWFpbCBzIGluc3RydWtjZW1pLCBqYWsgb2Jub3ZpdCB2YSZzY2Fyb247ZSBoZXNsby4gRMSba3VqZW1lJzsKJGxhbmdbJ2xvc3Rwd19tZXNzYWdlJ10gPSAnUG9rdWQganN0ZSB6YXBvbcSbbCBuZWJvIHp0cmF0aWwgc3YmZWFjdXRlOyBoZXNsbywgdGFrIHByb3MmaWFjdXRlO20gdnlwbMWIdGUgc3ZvamUgdcW+aXZhdGVsc2smZWFjdXRlOyBqbSZlYWN1dGU7bm8gYSBlLW1haWxlbSBkb3N0YW5ldGUgaW5zdHJ1a2NlIGphayBwb2tyYcSNb3ZhdCBzIG9ibm92ZW4maWFjdXRlO20gdG9ob3RvIGhlc2xhJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3RlbXBsYXRlJ10gPSAnRm9yZ290IFBhc3N3b3JkIFRlbXBhdGVzJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hIHBvdcW+aXQmYWFjdXRlOywgcG9rdWQgdcW+aXZhdGVsIHp0cmF0JmlhY3V0ZTsgdcW+aXZhdGVsc2smZWFjdXRlOyBqbSZlYWN1dGU7bm8nOwokbGFuZ1snZXJyb3JfcHJvcG5vdGZvdW5kJ10gPSAnVmxhc3Rub3N0ICVzIG5lbmFsZXplbmEnOwokbGFuZ1sncHJvcHNmb3VuZCddID0gJ1ZsYXN0bm9zdGkgbmFsZXplbnknOwokbGFuZ1snYWRkcHJvcCddID0gJ1DFmWlkYXQgdmxhc3Rub3N0JzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICdQb3Zpbm4mYWFjdXRlOyB2bGFzdG5vc3QgKCVzKSBieWxhIHByJmFhY3V0ZTt6ZG4mYWFjdXRlOyc7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ1phZGVqdGUgc2VtIG5vdiZlYWN1dGU7IGhlc2xvJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnUHJhdmTEm3BvZG9ibsSbIG5lanN0ZSBwxZlpaGwmYWFjdXRlOyZzY2Fyb247ZW4nOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ05hc3RhdmVuJmlhY3V0ZTsnOwokbGFuZ1sndXNlcl9yZWdpc3RyYXRpb24nXSA9ICdSZWdpc3RyYWNlJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnVGVudG8gJnVhY3V0ZTvEjWV0IHZ5cHImc2Nhcm9uO2VsJzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICcmU2Nhcm9uO3BhdG4meWFjdXRlOyBmb3JtJmFhY3V0ZTt0IGUtbWFpbG92JmVhY3V0ZTsgYWRyZXN5JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRleHBpcnlkYXRlJ10gPSAnTmVwbGF0biZ5YWN1dGU7IGRhdHVtIHZ5cHImc2Nhcm9uO2VuJmlhY3V0ZTsnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdwcm9wZXJ0eSddID0gJ0NoeWJhIHDFmWkgbmFzdGF2ZW4maWFjdXRlOyB2bGFzdG5vc3RpICVzIHXFvml2YXRlbGUgJHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGdyb3VwaWQnXSA9ICdOZXBsYXRuJmVhY3V0ZTsgaWQgc2t1cGlueSAlcyc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ1puYcSNa292YcSNIHNrcnl0JnlhY3V0ZTtjaCBwb2wmaWFjdXRlOyc7CiRsYW5nWydoaWRkZW5maWVsZGNvbG9yJ10gPSAnQmFydmEgc2tyeXQmZWFjdXRlO2hvIHBvbGUnOwokbGFuZ1snaGlkZGVuJ10gPSAnU2tyeXQmZWFjdXRlOyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnVmxhc3Rub3N0IHMgdCZpYWN1dGU7bXRvIGptJmVhY3V0ZTtuZW0gamUgamnFviBkZWZpbm92JmFhY3V0ZTtuYSc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdOZWpzb3UgZGVmaW5vdiZhYWN1dGU7bnkgxb4mYWFjdXRlO2RuJmVhY3V0ZTsgdmxhc3Rub3N0aSc7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ1BybyB0dXRvIHNrdXBpbnUgbmVieWx5IHZ5YnImYWFjdXRlO255IHZsYXN0bm9zdGknOwokbGFuZ1snbm9ncm91cHMnXSA9ICfFvSZhYWN1dGU7ZG4mZWFjdXRlOyBza3VwaW55IHXFvml2YXRlbMWvIG5lanNvdSBkZWZpbm92JmFhY3V0ZTtueSc7CiRsYW5nWydncm91cHNmb3VuZCddID0gJ1NrdXBpbnkgbmFsZXplbnknOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ0plIHZ5xb5hZG92JmFhY3V0ZTtubyBwxZlpxZlhemVuJmlhY3V0ZTsgYWxlc3BvxYggZG8gamVkbiZlYWN1dGU7IHNrdXBpbnknOwokbGFuZ1sncHJvbXB0X3JlcXVpcmVvbmVncm91cCddID0gJ1Z5xb5hZG92YXQgcMWZacWZYXplbiZpYWN1dGU7IGFsZXNwb8WIIGRvIGplZG4mZWFjdXRlOyBza3VwaW55JzsKJGxhbmdbJ2JhY2snXSA9ICdacMSbdCc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnJXMgamUgcG92aW5uJmFhY3V0ZTsgcG9sb8W+a2EnOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ096bmHEjWl0IHBvxb5hZG92YW4mYWFjdXRlOyBwb2xlJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ0hpbGl0ZSByZXF1aXJlZCBmaWVsZHMgaW4nOwokbGFuZ1snbmV4dCddID0gJ0RhbCZzY2Fyb247JmlhY3V0ZTsnOwokbGFuZ1snZXJyb3JfZ3JvdXBleGlzdHMnXSA9ICdTa3VwaW5hIHMgdCZpYWN1dGU7bXRvIGptJmVhY3V0ZTtuZW0gdcW+IGV4aXN0dWplJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnVnnFvmFkb3ZhbiZhYWN1dGU7IHBvbG/FvmthJzsKJGxhbmdbJ29wdGlvbmFsJ10gPSAnVm9saXRlbG4mYWFjdXRlOyc7CiRsYW5nWydvZmYnXSA9ICdWeXBub3V0JzsKJGxhbmdbJ3NpemUnXSA9ICdWZWxpa29zdCc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1heGltJmFhY3V0ZTtsbiZpYWN1dGU7IHJvem3Em3Igb2JyJmFhY3V0ZTt6a3UgdiBwaXhlbGVjaCknOwokbGFuZ1snbGVuZ3RoJ10gPSAnRCZlYWN1dGU7bGthJzsKJGxhbmdbJ2xlbmd0aGNvbW1lbnQnXSA9ICc8YnI+KHpuYWt5IHZlIHZzdHVwbiZpYWN1dGU7bSBwb2xpKSc7CiRsYW5nWydzZWxvcHRpb25zJ10gPSAnUG9sb8W+a3kgcm96YmFsb3ZhYyZpYWN1dGU7aG8gbWVudSBvZGTEm2xlbiZlYWN1dGU7IG5vdiZ5YWN1dGU7bWkgxZkmYWFjdXRlO2RreSc7CiRsYW5nWydyYWRpb29wdGlvbnMnXSA9ICdSYWRpb2J1dHRvbiBsYWJlbHMsIHNlcGFyYXRlZCBieSBsaW5lIGJyZWFrcy4gVmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgZnJvbSB0ZXh0IHdpdGggYSA9IGNoYXJhY3Rlci4gaS5lOiBGZW1hbGU9Zic7CiRsYW5nWydwcm9tcHQnXSA9ICdWJnlhY3V0ZTt6dmEnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWydmaWVsZHN0YXR1cyddID0gJ1N0YXYgcG9sJmlhY3V0ZTvEjWthJzsKJGxhbmdbJ3VzZWRpbmxvc3R1biddID0gJ1plcHRhdCBzZSB2IHDFmSZpYWN1dGU7cGFkxJs8YnIvPnphcG9tZW51dCZpYWN1dGU7IHXFvml2YXRlbHNrJmVhY3V0ZTtobyBqbSZlYWN1dGU7bmEnOwokbGFuZ1sndGV4dCddID0gJ1RleHQnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdaYSZzY2Fyb247a3J0JmFhY3V0ZTt2YWMmaWFjdXRlOyBwb2wmaWFjdXRlO8SNa28nOwokbGFuZ1snbXVsdGlzZWxlY3QnXSA9ICdWJnlhY3V0ZTtixJtyIHogdiZpYWN1dGU7Y2UgcG9sb8W+ZWsnOwokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW8gQnV0dG9ucyc7CiRsYW5nWydpbWFnZSddID0gJ09iciZhYWN1dGU7emVrJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdPYmxhc3QgdGV4dHUnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdSb3piYWxvdmFjJmlhY3V0ZTsgbWVudSc7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ1YmaWFjdXRlO3RlanRlJzsKJGxhbmdbJ2xvZ291dCddID0gJ09kaGwmYWFjdXRlO3NpdCc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAnUG91xb4maWFjdXRlO3Qgam0mZWFjdXRlO25vIHQmZWFjdXRlO3RvIHNrdXBpbnknOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzJ10gPSAnVXByYXZpdCBtJmFhY3V0ZTsgbmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ1DFmWlobCZhYWN1dGU7JnNjYXJvbjtlbiZpYWN1dGU7IHNlbGhhbG8gLSAmc2Nhcm9uO3BhdG4mZWFjdXRlOyB1xb5pdmF0ZWxzayZlYWN1dGU7IGptJmVhY3V0ZTtubyBuZWJvIGhlc2xvPyc7CiRsYW5nWydsb2dpbiddID0gJ1DFmWlobCZhYWN1dGU7c2l0JzsKJGxhbmdbJ3Byb21wdF9zaWduaW5fYnV0dG9uJ10gPSAnUG9waXNlayBwb2wmaWFjdXRlO8SNa2EgcHJvIHDFmWlobCZhYWN1dGU7JnNjYXJvbjtlbiZpYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ1XFvml2YXRlbHNrJmVhY3V0ZTsgam0mZWFjdXRlO25vJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0UtbWFpbG92JmFhY3V0ZTsgYWRyZXNhJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ0hlc2xvJzsKJGxhbmdbJ3Byb21wdF9yZW1lbWJlcm1lJ10gPSAnUGFtYXR1aiBzaSBtxJsgbmEgdG9tdG8gcG/EjSZpYWN1dGU7dGHEjWknOwokbGFuZ1sncmVnaXN0ZXInXSA9ICdSZWdpc3Ryb3ZhdCc7CiRsYW5nWydmb3Jnb3RwdyddID0gJ1phcG9tZW51dCZlYWN1dGU7IGhlc2xvPyc7CiRsYW5nWydsb3N0dXNlcm5hbWUnXSA9ICdaYXBvbW7Em2xpIGpzdGUgcMWZaWhsYSZzY2Fyb247b3ZhYyZpYWN1dGU7ICZ1YWN1dGU7ZGFqZT8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdWJnlhY3V0ZTtjaG96JmlhY3V0ZTsgaG9kbm90eSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hJzsKJGxhbmdbJ2Vycm9yX3VzZXJub3Rmb3VuZCddID0gJ1XFvml2YXRlbHNrJmVhY3V0ZTsgSUQgbmVuYWxlemVubyc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnVG90byB1xb5pdmF0ZWxzayZlYWN1dGU7IGptJmVhY3V0ZTtubyAoJXMpIGppxb4gbsSba2RvIHBvdcW+JmlhY3V0ZTt2JmFhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ1BvdcW+JmlhY3V0ZTt2YXQgU01UUCBwcm8gdmFsaWRhY2kgZS1tYWlsb3YmeWFjdXRlO2NoIGFkcmVzPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdNaW5pbSZhYWN1dGU7bG4maWFjdXRlOyBkJmVhY3V0ZTtsa2EgaGVzbGEnOwokbGFuZ1sncHJvbXB0X21heHB3bGVuJ10gPSAnTWF4aW0mYWFjdXRlO2xuJmlhY3V0ZTsgZCZlYWN1dGU7bGthIGhlc2xhJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ01pbmltJmFhY3V0ZTtsbiZpYWN1dGU7IGQmZWFjdXRlO2xrYSB1xb5pdmF0ZWxzayZlYWN1dGU7aG8gam0mZWFjdXRlO25hJzsKJGxhbmdbJ3Byb21wdF9tYXh1bmxlbiddID0gJ01heGltJmFhY3V0ZTtsbiZpYWN1dGU7IGQmZWFjdXRlO2xrYSB1xb5pdmF0ZWxzayZlYWN1dGU7aG8gam0mZWFjdXRlO25hJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ0QmZWFjdXRlO2xrYSBwbGF0bm9zdGkgc2Vzc2lvbiAodmUgdnRlxZlpbiZhYWN1dGU7Y2gpJzsKJGxhbmdbJ3Byb21wdF9jb29raWVrZWVwYWxpdmUnXSA9ICdQb3XFviZpYWN1dGU7dCBjb29raWVzIHBybyB1ZHLFvmVuJmlhY3V0ZTsgcMWZaWhsJmFhY3V0ZTsmc2Nhcm9uO2VuJmlhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdQb3ZvbGl0IHJlZ2lzdHJhY2kgZS1tYWlsdSc7CiRsYW5nWydwcm9tcHRfZGZsdGdyb3VwJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7IHNrdXBpbmEgcHJvIG5vdiZlYWN1dGU7IHXFvml2YXRlbGUnOwokbGFuZ1snY2hhbmdlc2V0dGluZ3NfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYSBwcm8gem3Em251IG5hc3RhdmVuJmlhY3V0ZTsnOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ0hlc2xhIG5lanNvdSBzdGVqbiZhYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ0NoeWJuJmVhY3V0ZTsgdcW+aXZhdGVsc2smZWFjdXRlOyBqbSZlYWN1dGU7bm8nOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkJ10gPSAnQ2h5eWJuJmVhY3V0ZTsgaGVzbG8nOwokbGFuZ1snZWRpdHVzZXInXSA9ICdFZGl0b3ZhdCB1xb5pdmF0ZWxlJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnUGxhdG4mZWFjdXRlOyc7CiRsYW5nWyd1c2VybmFtZSddID0gJ1XFvml2YXRlbHNrJmVhY3V0ZTsgam0mZWFjdXRlO25vJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXYnOwokbGFuZ1snZXJyb3JfbWVtYmVyZ3JvdXBzJ10gPSAnVGVudG8gdcW+aXZhdGVsIG5lbiZpYWN1dGU7IHDFmWnFmWF6ZW4gZG8gxb4mYWFjdXRlO2RuJnlhY3V0ZTtjaCBza3VwaW4nOwokbGFuZ1snZXJyb3JfcHJvcGVydGllcyddID0gJ8W9JmFhY3V0ZTtkbiZlYWN1dGU7IHZsYXN0bm9zdGknOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdJbXBvcnRvdmF0IGR1cGxpayZhYWN1dGU7dG4maWFjdXRlOyB2bGFzdG5vc3RpJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnSG9kbm90YSc7CiRsYW5nWydncm91cHMnXSA9ICdTa3VwaW55JzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdWbGFzdG5vc3RpJzsKJGxhbmdbJ3Byb3BuYW1lJ10gPSAnTiZhYWN1dGU7emV2IHZsYXN0bm9zdGknOwokbGFuZ1sncHJvcHZhbHVlJ10gPSAnSG9kbm90YSB2bGFzdG5vc3RpJzsKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1snaGlzdG9yeSddID0gJ0hpc3RvcmllJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0b3ZhdCc7CiRsYW5nWydleHBpcmVzJ10gPSAnVnlwciZzY2Fyb247ZW4maWFjdXRlOyc7CiRsYW5nWydzcGVjaWZ5X2RhdGUnXSA9ICdTcGVjaWZpa3VqdGUgZGF0dW0nOwokbGFuZ1snMTJocnMnXSA9ICcxMiBob2Rpbic7CiRsYW5nWycyNGhycyddID0gJzI0IGhvZGluJzsKJGxhbmdbJzQ4aHJzJ10gPSAnNDggaG9kaW4nOwokbGFuZ1snMXdlZWsnXSA9ICcxIHQmeWFjdXRlO2Rlbic7CiRsYW5nWycyd2Vla3MnXSA9ICcyIHQmeWFjdXRlO2RueSc7CiRsYW5nWycxbW9udGgnXSA9ICcxIG3Em3MmaWFjdXRlO2MnOwokbGFuZ1snM21vbnRocyddID0gJzMgbcSbcyZpYWN1dGU7Y2UnOwokbGFuZ1snNm1vbnRocyddID0gJzYgbcSbcyZpYWN1dGU7Y8WvJzsKJGxhbmdbJzF5ZWFyJ10gPSAnMSByb2snOwokbGFuZ1snbmV2ZXInXSA9ICdOaWtkeSc7CiRsYW5nWydwb3N0aW5zdGFsbG1lc3NhZ2UnXSA9ICdNb2R1bCAmdWFjdXRlO3NwxJsmc2Nhcm9uO27EmyBuYWluc3RhbG92JmFhY3V0ZTtuLjxici8+TmV6YXBvbWXFiHRlIG5hc3Rhdml0IG9wciZhYWN1dGU7dm7Em24maWFjdXRlOyAmcXVvdDtNb2RpZnkgRnJvbnRFbmRVc2VyIFByb3BlcnRpZXMmcXVvdDsnOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdIZXNsbyc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ1pub3ZhJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdTdXBpbmEgcyB0JmlhY3V0ZTttdG8gbiZhYWN1dGU7enZlbSBqacW+IGV4aXN0dWplJzsKJGxhbmdbJ2VkaXRncm91cCddID0gJ0VkaXRvdmF0IHNrdXBpbnUnOwokbGFuZ1snc3VibWl0J10gPSAnUG90dnJkaXQnOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpdCc7CiRsYW5nWydkZWxldGUnXSA9ICdWeW1hemF0JzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnSnN0ZSBzaSBqaXN0IMW+ZSB0b3RvIGplIHNwciZhYWN1dGU7dm4mZWFjdXRlOyBuYXN0YXZlbiZpYWN1dGU7IHBybyB0dXRvIHNrdXBpbnU/XG4gVnlwbnV0JmlhY3V0ZTttIHZsYXN0bm9zdGkgc2UgbmVzbWHFvm91IMW+JmFhY3V0ZTtkbiZlYWN1dGU7ICZ1YWN1dGU7ZGFqZSB2ZSB2bGFzdG5vc3RlY2ggdG9ob3RvIHXFvml2YXRlbGUvc2t1cGlueS4gJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlZ3JvdXAnXSA9ICdKc3RlIHNpIGppc3Qgxb5lIGNoY2V0ZSBzbWF6YXQgdHV0byBza3VwaW51Pyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9wcm9wJ10gPSAnT3ByYXZkdSBjaGNldGUga29tcGxldG7EmyBzbWF6YXQgdHV0byB2bGFzdG5vc3Q/XG5UJmlhY3V0ZTttIHNlIHZ5bWHFvm91IGkgdiZzY2Fyb247ZWNobnkgaG9kbm90eSB0JmVhY3V0ZTt0byB2bGFzdG5vc3RpIHUgdcW+aXZhdGVsxa8uJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ05lZG9zdGF0ZcSNbiZlYWN1dGU7IHBhcmFtZXRyeSc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ25hbWUnXSA9ICdKbSZlYWN1dGU7bm8nOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdQxZlpIHDFmWlkJmFhY3V0ZTt2JmFhY3V0ZTtuJmlhY3V0ZTsgdmxhc3Rub3N0aSBkbyZzY2Fyb247bG8gayBjaHlixJsnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwcmVsbiddID0gJ1Byb2JsJmVhY3V0ZTttIHDFmWkgcMWZaWQmYWFjdXRlO3YmYWFjdXRlO24maWFjdXRlOyB2enRhaHUgc2t1cGlueSc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXAnXSA9ICdQcm9ibCZlYWN1dGU7bSBwxZlpIHDFmWlkJmFhY3V0ZTt2JmFhY3V0ZTtuJmlhY3V0ZTsgc2t1cGlueSc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2JsJmVhY3V0ZTttIHDFmWkgcMWZaWQmYWFjdXRlO3YmYWFjdXRlO24maWFjdXRlOyB1xb5pdmF0ZWxlIGRvIHNrdXBpbnknOwokbGFuZ1snZXJyb3JfY291bGRub3RkZWxldGVwcm9wZXJ0eSddID0gJ1Byb2JsJmVhY3V0ZTttIHDFmWkgbWF6JmFhY3V0ZTtuJmlhY3V0ZTsgdmxhc3Rub3N0aSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGZpbmRlbWFpbCddID0gJ05lbW9odSBuYWwmZWFjdXRlO3p0IGUtbWFpbG92b3UgYWRyZXN1JzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdEbyBjJmlhY3V0ZTtsb3YmZWFjdXRlO2hvIGFkcmVzJmFhY3V0ZTvFmWUgbmVuJmlhY3V0ZTsgcG92b2xlbiB6JmFhY3V0ZTtwaXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJyZTY2Fyb247cGF0biZlYWN1dGU7IHBhcmFtYXRyeSc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcyddID0gJ05lYnlseSBuYWxlemVueSDFviZhYWN1dGU7ZG4mZWFjdXRlOyBza3VwaW55JzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnUG91xb4maWFjdXRlO3QnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHInOwokbGFuZ1sndXNlcmZpbHRlciddID0gJ1JlZ3VsJmFhY3V0ZTtybiZpYWN1dGU7IHYmeWFjdXRlO3JheiBwcm8gdcW+aXZhdGVsc2smZWFjdXRlOyBqbSZlYWN1dGU7bm8nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdQb3Bpcyc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdOJmFhY3V0ZTt6ZXYgc2t1cGlueSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdQxZkmaWFjdXRlO3N0dXAgb2RlcMWZZW4nOwokbGFuZ1snZXJyb3InXSA9ICdDaHliYSc7CiRsYW5nWydhZGRncm91cCddID0gJ1DFmWlkYXQgc2t1cGludSc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ0ltcG9ydG92YXQgc2t1cGludSc7CiRsYW5nWydhZGR1c2VyJ10gPSAnUMWZaWRhdCB1xb5pdmF0ZWxlJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdVxb5pdmF0ZWwmZWFjdXRlOyBzcGzFiHVqJmlhY3V0ZTtjJmlhY3V0ZTsgdnlobGVkJmFhY3V0ZTt2YWMmaWFjdXRlOyBrcml0ZXJpYSc7CiRsYW5nWydncm91cCddID0gJ1NrdXBpbmEnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdWeWJyYXQgc2t1cGludSc7CiRsYW5nWydyZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYSBwcm8gcmVnaXN0cmFjaSc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYSBwcm8gb2RobCZhYWN1dGU7JnNjYXJvbjtlbiZpYWN1dGU7JzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmxvbmEgcHJvIHDFmWlobCZhYWN1dGU7JnNjYXJvbjtlbiZpYWN1dGU7JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUMWZZWR2b2xieSc7CiRsYW5nWyd1c2VycyddID0gJ1XFvml2YXRlbCZlYWN1dGU7JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NwciZhYWN1dGU7dmEgZnJvbnRlbmQgdcW+aXZhdGVsxa8nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdTcHJhdm92YXQgZnJvbnRlbmQgdcW+aXZhdGVsZSc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnViZ5YWN1dGU7Y2hveiZpYWN1dGU7IHN0ciZhYWN1dGU7bmthJzsKJGxhbmdbJ2xhc3RhY2Nlc3NlZHBhZ2UnXSA9ICdTdHImYWFjdXRlO25rYSBzIHBvc2xlZG4maWFjdXRlO20gcMWZJmlhY3V0ZTtzdHVwZW0nOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnSmluJmFhY3V0ZTsgc3RyJmFhY3V0ZTtua2E6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnT3BpJnNjYXJvbjt0ZSB0ZXh0IHogb2JyJmFhY3V0ZTt6a3UnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ09uVXBkYXRlR3JvdXAnXSA9ICdPbiBVc2VyIEdyb3VwIE1vZGlmaWVkJzsKJGxhbmdbJ2Vycm9yX3Rvb21hbnlzZWxlY3RlZCddID0gJ1RvbyBtYW55IHVzZXJzIGFyZSBzZWxlY3RlZCBmb3IgYnVsayBvcGVyYXRpb25zLi4uLiBQbGVhc2UgdHJpbSBpdCB0byAyNTAgb3IgbGVzcyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9zZWxlY3RlZCddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIGRlIHZhbGd0ZSBicnVnZXJlPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdTbGV0IGRlIHZhbGd0ZSc7CiRsYW5nWydwcm9tcHRfcmFuZG9tdXNlcm5hbWUnXSA9ICdHZW5lcmF0ZSByYW5kb20gdXNlcm5hbWUgd2hlbiBhZGRpbmcgbmV3IHVzZXJzJzsKJGxhbmdbJ21vbnRocyddID0gJ20mYXJpbmc7bmVkZXInOwokbGFuZ1sncHJvbXB0X2V4cGlyZWFnZSddID0gJ1N0YW5kYXJkIGJydWdlciB1ZGwmb3NsYXNoO2JzIHRpZCc7CiRsYW5nWydub3RpZmljYXRpb25fc2V0dGluZ3MnXSA9ICdJbmRzdGlsbGluZ2VyIGZvciBiZXNrZWRlcic7CiRsYW5nWydwcm9wZXJ0eV9zZXR0aW5ncyddID0gJ0luZHN0aWxsaW5nZXIgZm9yIGVnZW5za2FiZXInOwokbGFuZ1sncmVkaXJlY3Rpb25fc2V0dGluZ3MnXSA9ICdWaWRlcnN0aWxsaW5ncyBpbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmVsbGUgaW5kc3RpbGxpbmdlcic7CiRsYW5nWydzZXNzaW9uX3NldHRpbmdzJ10gPSAnSW5kc3RpbGxpbmdlciBmb3Igc2Vzc2lvbiBvZyBjb29raWVzJzsKJGxhbmdbJ2ZpZWxkX3NldHRpbmdzJ10gPSAnRmVsdCBpbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub25yZXF1aXJlZCddID0gJ1RoZSBsb3N0dXNlcm5hbWUgZmxhZyBjYW4gb25seSBiZSB1c2VkIG9uIHJlcXVpcmVkIGZpZWxkcyc7CiRsYW5nWydwcm9wX3RleHRhcmVhX3d5c2l3eWcnXSA9ICdUaWxsYWQgYnJ1ZyBhZiB3eXNpd3lnIGZvciBkZXR0ZSB0ZWtzdG9tciZhcmluZztkZSc7CiRsYW5nWydpbmZvX2Nvb2tpZXN0b3JlbWVtYmVyJ10gPSAnPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gVGhpcyB1c2VzIHRoZSBtY3J5cHQgZnVuY3Rpb25zIGZvciBlbmNyeXB0aW9uIHB1cnBvc2VzLCBhbmQgdGhleSBjb3VsZCBub3QgYmUgZGV0ZWN0ZWQgb24geW91ciBpbnN0YWxsLiAgIFBsZWFzZSBjb250YWN0IHlvdXIgc2VydmVyIGFkbWluaXN0cmF0b3IuJzsKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ1JlZGlnZXJlciBicnVnZXInOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdWaXMgaWtrZSBmb3JtcyBpbmxpbmUnOwokbGFuZ1snaW5mb19sb3N0dW4nXSA9ICdLbGlrIGhlciBodmlzIGR1IGlra2Uga2FuIGh1c2tlIGRpbmUgbG9naW4gb3BseXNuaW5nZXInOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ0tsaWsgaGVyIGh2aXMgZHUgaWtrZSBrYW4gaHVza2UgZGl0IHBhc3N3b3JkJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnS2xpayBoZXIgZm9yIGF0IGxvZ2dlIHVkJzsKJGxhbmdbJ2luZm9fY2hhbmdlc2V0dGluZ3MnXSA9ICdLbGlrIGhlciBmb3IgYXQgJmFlbGlnO25kcmUgZGl0IHBhc3N3b3JkIGVsbGVyIGFuZGVuIGluZm9ybWF0aW9uJzsKJGxhbmdbJ3ZpZXd1c2VyX3RlbXBsYXRlJ10gPSAnU2UgYnJ1Z2VyIHRlbXBsYXRlJzsKJGxhbmdbJ2V2ZW50J10gPSAnQmVnaXZlbmhlZCc7CiRsYW5nWydmZXVfZXZlbnRfbm90aWZpY2F0aW9uJ10gPSAnRkVVIGJlc2tlZCBvbSBiZWdpdmVuaGVkJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJ0Jlc2tlZCBlbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fdGVtcGxhdGUnXSA9ICdCZXNrZWQgZW1haWwgdGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9zdWJqZWN0J10gPSAnQmVza2VkIGVtYWlsIGVtbmUnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdFbWFpbCBiZXNrZWRlcic7CiRsYW5nWydPbkxvZ2luJ10gPSAnVmVkIGxvZ2luJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnVmVkIGxvZ291dCc7CiRsYW5nWydPbkV4cGlyZVVzZXInXSA9ICdWZWQgdWRsJm9zbGFzaDtiIGFmIHNlc3Npb24nOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnVmVkb3ByZXR0ZWxzZSBhZiBlbiBueSBicnVnZXInOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnVmVkIHNsZXRuaW5nIGFmIGVuIGJydWdlcic7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdWZWQgJmFlbGlnO25kcmluZyBhZiBicnVnZXIgb3BseXNuaW5nZXInOwokbGFuZ1snT25DcmVhdGVHcm91cCddID0gJ1ZlZCBvcHJldHRlbHNlIGFmIGVuIG55IGJydWdlcmdydXBwZSc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnVmVkIHNsZXRuaW5nIGFmIGVuIGJydWdlcmdydXBwZSc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ0Z1bmt0aW9uZW4sIGRlciBrYW4gaGVudGUgbWlzdGVkZSBsb2dpbiBvcGx5c25pbmdlciwgZXIgYWZzbHV0dGV0IG1lZCBzdWNjZXMuICBWaSBoYXIgZnVuZGV0IGV0IHVuaWt0IGJydWdlcm5hdm4sIGRlciBtYXRjaGVkZSBkaW5lIG9wbHlzbmluZ2VyLiAnOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ0RpdCBicnVnZXJuYXZuIGVyJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcG9zdG1zZyddID0gJ1ZpIGFuYmVmYWxlciBkdSBnZW1tZXIgZGVubmUgaW5mb3JtYXRpb24gcCZhcmluZzsgZXQgc2lra2VydCBzdGVkLic7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfY2hhbmdlX3NldHRpbmdzJ10gPSAnRyZhcmluZzsgdGlsIFBhZ2VJRC9BbGlhcyBlZnRlciBhdCBoYXZlICZhZWxpZztuZHJldCBpbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl92ZXJpZnlfY29kZSddID0gJ0cmYXJpbmc7IHRpbCBQYWdlSUQvQWxpYXMgZWZ0ZXIga29kZSB2ZXJpZmlrYXRpb24gKic7CiRsYW5nWydsb3N0dW5fZGV0YWlsc190ZW1wbGF0ZSddID0gJ0RldGFsamVyZXQgc2thYmVsb24gZm9yIG1pc3RldCBicnVnZXJuYXZuJzsKJGxhbmdbJ2xvc3R1bl9jb25maXJtX3RlbXBsYXRlJ10gPSAnQmVrciZhZWxpZztmdGVsc2VzIHNrYWJlbG9uIGZvciBtaXN0ZXQgYnJ1Z2VybmF2bic7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0Zlamw6IE1lcmUgZW5kIGVuIGJydWdlciBwYXNzZXIgdGlsIGRlIGFuZ2l2bmUgZWdlbnNrYWJlcic7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdGZWpsOiBLdW5uZSBpa2tlIGZpbmRlIGVuIGJydWdlciBtZWQgZGUgZWdlbnNrYWJlcic7CiRsYW5nWydlcnJvcl9ncm91cG5vdGZvdW5kJ10gPSAnRmVqbDogS3VubmUgaWtrZSBmaW5kZSBlbiBncnVwcGUgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ3JlYWRvbmx5J10gPSAnU2tyaXZlYmVza3l0dGV0JzsKJGxhbmdbJ3Byb21wdF91c2VybWFuaXB1bGF0b3InXSA9ICdVc2VyIE1hbmlwdWxhdG9yIENsYXNzJzsKJGxhbmdbJ2FkbWluX2xvZ291dCddID0gJ0xvZ2dlZCBvdXQgYWYgYWRtaW5pc3RyYXRvcic7CiRsYW5nWydwcm9tcHRfbG9nZ2VkaW5vbmx5J10gPSAnVmlzIGt1biBicnVnZXJlLCBkZXIgZXIgbG9nZ2V0IGluZCc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnTG9nIGRlbm5lIGJydWdlciBhZic7CiRsYW5nWyd1c2VyX3Byb3BlcnRpZXMnXSA9ICdCcnVnZXIgZWdlbnNrYWJlcic7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0JydWdlciBoaXN0b3JpZSc7CiRsYW5nWydleHBvcnQnXSA9ICdFa3Nwb3J0JmVhY3V0ZTtyJzsKJGxhbmdbJ2NsZWFyJ10gPSAnUnlkJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0Vrc3BvcnQmZWFjdXRlO3IgYnJ1Z2VyIGhpc3RvcmlrIHRpbCBBU0NJSSBzb20gZXIgbWVyZSBlbmQnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdTbGV0IGJydWdlciBoaXN0b3JpayBkZXIgZXIgbWVyZSBlbmQnOwokbGFuZ1sndGl0bGVfbG9zdHVzZXJuYW1lJ10gPSAnTWlzdGV0IGJydWdlcm5hdm4gc3VwcG9ydCBmb3J1bSc7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdFa3Nwb3J0JmVhY3V0ZTtyIGdydXBwZSBkZWZpbml0aW9uZXIgKG9nIGVnZW5za2FiZXIpIHRpbCBYTUwnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZSddID0gJ1ZlZGxpZ2Vob2xkIGJydWdlciBoaXN0b3JpZSc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laic7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICdBZic7CiRsYW5nWydkYXRlX2FsbHJlY29yZHMnXSA9ICcqKiBJbmdlbiBiZWdyJmFlbGlnO25zbmluZyAqKic7CiRsYW5nWydkYXRlX29uZWhvdXJvbGQnXSA9ICdFbiB0aW1lIGdhbW1lbCc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICdTZWtzIHRpbWVyIGdhbW1lbCc7CiRsYW5nWydkYXRlX3R3ZWx2ZWhvdXJvbGQnXSA9ICdUb2x2IHRpbWVyIGdhbW1lbCc7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ0VuIGRhZyBnYW1tZWwnOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnRW4gdWdlIGdhbW1lbCc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnVG8gdWdlciBnYW1tZWwnOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJ0VuIG0mYXJpbmc7bmVkIGdhbW1lbCc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnVHJlIG0mYXJpbmc7bmVkZXIgZ2FtbWVsJzsKJGxhbmdbJ2RhdGVfc2l4bW9udGhzb2xkJ10gPSAnU2VrcyBtJmFyaW5nO25lZGVyIGdhbW1lbCc7CiRsYW5nWydkYXRlX29uZXllYXJvbGQnXSA9ICdFdCAmYXJpbmc7ciBnYW1tZWwnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnR3J1cHBlcmluZyBvZyBzb3J0ZXJpbmcnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ1Bvc3RlciwgZGVyIG1hdGNoZXIga3JpdGVyaWV0JzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnRmFsZGVuZGUgYnJ1Z2VybmF2bic7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfYXNjJ10gPSAnU3RpZ2VuZGUgYnJ1Z2VybmF2bic7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnRmFsZGVuZGUgZGF0b29yZGVuJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2FzYyddID0gJ1N0aWdlbmRlIGRhdG9vcmRlbic7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdGYWxkZW5kZSBiZWdpdmVuaGVkc2thdGVnb3JpJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fYXNjJ10gPSAnU3RpZ2VuZGUgYmVnaXZlbmhlZHNrYXRlZ29yaSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdGYWxkZW5kZSBJUCBhZHJlc3NlIG9yZGVuJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnU3RpZ2VuZGUgSVAgYWRyZXNzZSBvcmRlbic7CiRsYW5nWydpbmZvX25vaGlzdG9yeWRldGVjdGVkJ10gPSAnSW5nZW4gaGlzdG9yaWUgZnVuZGV0JzsKJGxhbmdbJ3Jlc2V0J10gPSAnTnVsc3RpbCc7CiRsYW5nWydwcm9tcHRfZ3JvdXBfaXAnXSA9ICdHcnVwcCZlYWN1dGU7ciBlZnRlciBJUCBhZHJlc3NlJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZXZlbnR0eXBlJ10gPSAnSCZhZWxpZztuZGVsc2VzIHR5cGUgZmlsdGVyJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ1ZpcyBrdW4gYmVnaXZlbmhlZGVyLCBkZXIgZXIgbWluZHJlIGVuZDonOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ1NpZGUgYmVnciZhZWxpZztzbmluZyc7CiRsYW5nWydmb3InXSA9ICdmb3InOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdCcnVnZXIgaGlzdG9yaWUgcmFwcG9ydCc7CiRsYW5nWyd1bmtub3duJ10gPSAnVWtlbmR0JzsKJGxhbmdbJ3Byb21wdF9pcGFkZHJlc3MnXSA9ICdJUCBhZHJlc3NlJzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICdCZWdpdmVuaGVkc2thdGVnb3JpJzsKJGxhbmdbJ3Byb21wdF9kYXRlJ10gPSAnRGF0byc7CiRsYW5nWydwcm9tcHRfcmV0dXJuJ10gPSAnVGlsYmFnZSc7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnSW1wb3J0IGtvbXBsZXQnOwokbGFuZ1sncHJvbXB0X2xpbmVzcHJvY2Vzc2VkJ10gPSAnTGluaWVyIGJlYXJiZWpkZXQnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0ZlamwgZnVuZGV0JzsKJGxhbmdbJ3Byb21wdF9yZWNvcmRzYWRkZWQnXSA9ICdQb3N0ZXIgdGlsZiZvc2xhc2g7amV0JzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnXSA9ICdLdW5uZSBpa2tlIGZyaW5kZSBlZ2Vuc2thYmVyIGZvciBncnVwcGVuICVzJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnRmlrIGludGV0IHN2YXIgZnJhIFNNVFAtc2VydmVyZW4nOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnRGVuIGFuZ2l2bmUgZmlsICglcykga3VubmUgaWtrZSBmaW5kZXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ0ZlamxhZ3RpZyB2JmFlbGlnO3JkaWcgZm9yIGRyb3Bkb3duIGVsbGVyIG11bHRpc2VsZWN0IGZlbHQgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdGZWx0ICVzIGVyIG1lcmUgZW5kIGRlbiBtYWtzaW1hbGUgbCZhZWxpZztuZ2RlJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0IGZlamwgKGxpbmllICVzKTogJXMnOwokbGFuZ1snZXJyb3JfcHJvcGVydHlkZWZucyddID0gJ0t1bm5lIGlra2UgZmluZGUgZWdlbnNrYWJzZGVmaW5pdGlvbnNuIChpbnRlcm4gZmVqbCknOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdpbmZvJ10gPSAnUHJvYmxlbWVyIG1lZCBhdCAmYWVsaWc7bmRyZSBicnVnZXIgb3BseXNuaW5nZXInOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ0t1bm5lIGlra2UgZmluZGUgZW4gcyZvc2xhc2g7amxlIGRlciBzdmFyZXIgdGlsIGRldCBrciZhZWxpZzt2ZWRlIGZlamx0ICVzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wZXJ0aWVzJ10gPSAnS3VubmUgaWtrZSBmaW5kZSBlZ2Vuc2thYmVyIGZvciBkZW4gdmFsZ3RlIGdydXBwZSc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnRGVuIHZhbGd0ZSBmaWwgdGlsIGltcG9ydCBlciBpa2tlIGkgZGV0IGtvcnJla3RlIGZvcm1hdCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdG9wZW5maWxlJ10gPSAnS3VubmUgaWtrZSAmYXJpbmc7Ym5lIGZpbCc7CiRsYW5nWydpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdCddID0gJzxoND5GaWxlIEZvcm1hdCBJbmZvcm1hdGlvbjwvaDQ+DQo8cD5UaGUgaW5wdXQgZmlsZSBtdXN0IGJlIGluIEFTQ0lJIGZvcm1hdCB1c2luZyBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzLiAgRWFjaCBsaW5lIGluIHRoaXMgaW5wdXQgZmlsZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBoZWFkZXIgbGluZSwgZGlzY3Vzc2VkIGJlbG93KSByZXByZXNlbnRzIG9uZSB1c2VyIHJlY29yZC4gIEVhY2ggbGluZSBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgbnVtYmVyIG9mIGZpZWxkcywgYW5kIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzIGluIGVhY2ggbGluZSBtdXN0IGJlIGlkZW50aWNhbC48L3A+DQo8aDU+SGVhZGVyIGxpbmU8L2g1Pg0KPHVsPg0KPGxpPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIG11c3QgYmVnaW4gd2l0aCB0d28gcG91bmQgKFwjKSBjaGFyYWN0ZXJzLCBhbmQgbmFtZXMgZWFjaCBvZiB0aGUgZmllbGRzIGluIHRoZSBmaWxlLiAgVGhlIG5hbWVzIG9mIHRoZXNlIGZpZWxkcyBpcyBzaWduaWZpY2FudC4gIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkIG5hbWVzIChzZWUgYmVsb3cpLCBhbmQgb3RoZXIgZmllbGQgbmFtZXMgbXVzdCBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB1c2VycyBhcmUgZ29pbmcgdG8gYmUgYWRkZWQgaW50by48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGZhaWwgaWYgdGhlIGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSBkb2VzIG5vdCBtYXRjaCBhbGwgb2YgdGhlIHJlcXVpcmVkIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB0aGF0IHVzZXJzIGFyZSBiZWluZyBhZGRlZCBpbnRvPC9saT4NCjxsaT5UaGUgaW5wdXQgZmlsZSBtYXkgY29udGFpbiBmaWVsZHMgcmVwcmVzZW50aW5nIHNvbWUgb2YgdGhlIG9wdGlvbmFsIHByb3BlcnRpZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGlnbm9yZSBhbnkgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIHRoYXQgYXJlIGVpdGhlciBub3Qga25vd24sIG9yIG1hcCB0byBwcm9wZXJ0aWVzIHRoYXQgYXJlIDxlbT5vZmY8L2VtPiBpbiB0aGUgc3BlY2lmaWVkIHVzZXIgZ3JvdXAuPC9saT4NCjwvdWw+DQo8aDU+Q29sdW1uYXIgRGF0YTwvaDU+DQo8dWw+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gRmllbGQgLSBUaGUgZGVzaXJlZCB1c2VybmFtZS4NCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNuIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBUaGUgcmVjb3JkIHdpbGwgZmFpbCBpZiBhIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZS48L3A+PC9saT4NCjxsaT5UaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBGaWVsZCAtIFRvZG88L2xpPg0KPGxpPlRoZSA8c3Ryb25nPmV4cGlyZXM8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5Ecm9wZG93biBGaWVsZHMNCiAgICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QgRmllbGRzDQogICAgPHA+TXVsdGlzZWxlY3QgZmllbGRzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBBU0NJSSBmaWxlIGFzIGEgOiBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzLCB3aGVyZSBlYWNoIHN0cmluZyByZXByZXNlbnRzIHRoZSB0ZXh0IHNob3duIGluIHRoZSBtdWx0aXNlbGVjdCBsaXN0PC9wPg0KPC9saT4NCjxsaT5JbWFnZSBGaWVsZHMNCiAgICA8cD5JbWFnZSBhcmUgZmllbGRzIHdobyYjMDM5O3MgY29sdW1uIG5hbWUgbWF0Y2hlcyBhIHByb3BlcnR5IG9mIHR5cGUgSW1hZ2UuICBJZiB0aGlzIGZpZWxkIGlzIGEgcmVxdWlyZWQgcGFydCBvZiB0aGUgZGVzdGluYXRpb24gZ3JvdXAsIHRoZW4gdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiB0aGUgdXBsb2FkcyBkaXNyZWN0b3J5IG9mIHRoZSBDTVMgaW5zdGFsbGF0aW9uLiAgSWYgdGhlIGltYWdlIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvcD4NCjwvdWw+DQo8aDU+Tm90ZXM8L2g1Pg0KPHA+VGhlIGltcG9ydCBwcm9jZXNzIGlzIHN1YmplY3QgdG8gdGhlIGxpbWl0YXRpb25zIGltcG9zZWQgYnkgdGhlIGhvc3QgcHJvdmlkZXIsIHN1Y2ggYXMgbWVtb3J5IGxpbWl0YXRpb25zLCBwcm9jZXNzaW5nIHRpbWUsIGZpbGUgc2l6ZSB1cGxvYWQsIGFuZCBzYWZlIG1vZGUgcmVzdHJpY3Rpb25zLiAgQW55IG9uZSBvZiB0aGVzZSBsaW1pdGF0aW9ucyBtYXkgY2F1c2UgdGhlIGltcG9ydCB0byBmYWlsLiBUaGVyZWZvcmUgaXQgaXMgYWR2aXNhYmxlIHRvIGVuc3VyZSB0aGF0IGltcG9ydCBmaWxlcyBhcmUgc21hbGxlciBpbiBzaXplLCBhbmQgc2ltcGxlciBpbiBuYXR1cmUuPC9wPg0KPHA+VGhvdWdoIGV2ZXJ5IGVmZm9ydCBoYXMgYmVlbiBtYWRlIHRvIGVuc3VyZSB0aGF0IGRhdGFiYXNlIGNvcnJ1cHRpb24gd2lsbCBub3Qgb2NjdXIsIGl0IGlzIGFkdmlzYWJsZSB0byBwZXJmb3JtIGEgZGF0YWJhc2UgYmFja3VwIGJlZm9yZSBkb2luZyBhIHVzZXIgaW1wb3J0LjwvcD4NCjxoNT5FeGFtcGxlPC9oNT4NCjxwcmU+DQojI3VzZXJuYW1lLGZpcnN0X25hbWUsbGFzdF9uYW1lLGVtYWlsLGNpdHksc3RhdGUsY291bnRyeSx6aXANCnVzZXIxLHRlc3QsdXNlcix1c2VyMUBzb21lZG9tYWluLmNvbSxzb21ld2hlcmUsVFgsVVMsMTIzNDUNCjwvcHJlPg0KJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRkZXN0Z3JvdXAnXSA9ICdJbXBvcnRlciBicnVnZXJlIGkgZGVubmUgZ3J1cHBlJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRmaWxlbmFtZSddID0gJ0luZHMmYWVsaWc7dCBDU1YgZmlsJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR4bWxmaWxlJ10gPSAnSW5kcyZhZWxpZzt0IFhNTCBmaWwnOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJzJ10gPSAnRWtzcG9ydCZlYWN1dGU7ciBicnVnZXJlJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR1c2VycyddID0gJ0ltcG9ydGVyIGJydWdlcmUnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnUnlkJzsKJGxhbmdbJ3Byb21wdF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRoJ10gPSAnQmlsbGVkIGRlc3RpbmF0aW9ucyBtYXBwZSc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3VwbG9hZCddID0gJ0V0IHByb2JsZW0gb3BzdG9kIHZlZCBlbiBtYW5nbGVuZGUgKG1lbiBwJmFyaW5nO2tyJmFlbGlnO3ZldCkgdXBsb2FkJzsKJGxhbmdbJ2Vycm9yX2JhZF94bWwnXSA9ICdLdW5uZSBpa2tlIG92ZXJzJmFlbGlnO3R0ZSBkZW4gYW5naXZuZSBYTUwgZmlsJzsKJGxhbmdbJ2Vycm9yX25vdGVtcHR5Z3JvdXAnXSA9ICdLYW4gaWtrZSBzbGV0dGUgZW4gZ3J1cHBlLCBkZXIgc3RhZGlnIGluZGVob2xkZXIgYnJ1Z2VyZS4nOwokbGFuZ1snZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucyddID0gJ0Rlbm5lIGJydWdlciBlciBhbGxlcmVkZSBsb2dnZXQgaW5kJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ1Rla3N0ZW4gZnJhIGJpbGxlZGVyIGJsZXYgaWtrZSBza3JldmV0IGtvcnJla3QnOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ1RpbGxhZCBicnVnZXJlIGF0IHYmYWVsaWc7cmUgbG9nZ2V0IGluZCBmbGVyZSBnYW5nZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnQmlsbGVkZmlsLXR5cGVyIHNvbSBicnVnZXJlIG0mYXJpbmc7IHVwbG9hZCYjMDM5O2UnOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyB1cGRhdGVkIChlaXRoZXIgYnkgdXNlciB0aGVtc2VsZiBvciBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZUdyb3VwJ10gPSAnPGgzPk9uQ3JlYXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBncm91cCBkZXNjcmlwdGlvbjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9naW4nXSA9ICc8aDM+T25Mb2dpbjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+aXA8L2VtPiAtIFRoZSBpcCBhZGRyZXNzIG9mIHRoZSBjbGllbnQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnPGgzPk9uTG9nb3V0PGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0PC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZG91dCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkV4cGlyZVVzZXInXSA9ICc8aDM+T25FeHBpcmVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gZXhwaXJlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluIHRvIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dCBvZiB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gaXMgZXhwaXJlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgbmV3IHVzZXIgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpbmZvIGlzIHVwZGF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgYWNjb3VudCBpcyBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBkZWxldGVkJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdCYWNrZW5kIGdyb3VwJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogVGhlIGZvbGxvd2luZyBtYWNyb3MgY2FuIGJlIHVzZWQgaW4gdGhlc2UgZmllbGRzOiB7JHVzZXJuYW1lfSc7CiRsYW5nWydpbmZvX2FkbWluX3Bhc3N3b3JkJ10gPSAnUmV0IGkgZGV0dGUgZmVsdCBmb3IgYXQgbnVsc3RpbGxlIGJydWdlcmVucyBrb2Rlb3JkJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdSZXQgaSBkZXR0ZSBmZWx0IGZvciBhdCBudWxzdGlsbGUgYnJ1Z2VyZW5zIGtvZGVvcmQnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnRW4gYnJ1Z2VyIG1lZCBkZXRicnVnZXJuYXZuIGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnTm8gcmVzdWx0cyByZXR1cm5lZCBmcm9tIGNzdiBleHBvcnQnOwokbGFuZ1sncHJvbXB0X3VuZmxkbGVuJ10gPSAnTCZhZWxpZztuZ2RlIHAmYXJpbmc7IGZlbHRldCBicnVnZXJuYXZuJzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ0wmYWVsaWc7bmdkZSBwJmFyaW5nOyBmZWx0ZXQga29kZW9yZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmRsZW5ndGhzJ10gPSAnTWluL21ha3MgbCZhZWxpZztuZ2UgcCZhcmluZzsga29kZW9yZGV0IGVyIGlra2UgZ3lsZGlnJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZWxlbmd0aHMnXSA9ICdNaW4vbWFrcyBsJmFlbGlnO25nZSBwJmFyaW5nOyBicnVnZXJuYXZuZXQgZXIgaWtrZSBneWxkaWcnOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ1VneWxkaWcgZW1haWwgYWRyZXNzZSc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ1ZpIGt1bm5lIGlra2UgZmluZGUgZW4gZW1haWwgYWRyZXNzZSBmb3IgZGVubmUga29udG8nOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNlZXR0aW5naW5mbyddID0gJ0ZlamwgdmVkIGluZHMmYWVsaWc7dG5pbmcgYWYgYnJ1Z2VyIGluZm8nOwokbGFuZ1snZXJyb3Jfc2V0dGluZ3Byb3BlcnR5J10gPSAnUHJvYmxlbSBzZXR0aW5nIHByb3BlcnR5JzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdCcnVnZXIgdGlsZiZvc2xhc2g7amV0ICVzID0gJXMnOwokbGFuZ1sndXNlcl9kZWxldGVkJ10gPSAnQnJ1Z2VyIHNsZXR0ZXQgdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnRWdlbnNrYWInOwokbGFuZ1sndmFsdWVyZWdleCddID0gJ1YmYWVsaWc7cmRpIChyZWd1bCZhZWxpZztydWR0cnlrKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ0FkdmFyc2VsOiBkaXNzZSBmZWx0ZXIgcCZhcmluZzt2aXJrZXIgc3Qmb3NsYXNoO3JyZWxzZSBwJmFyaW5nOyBpbnB1dCBmZWx0ZXIgZm9yIGZvcm11bGFyZXIuIERldCBrYW4gaWtrZSBhbmJlZmFsZXMgYXQgJmFlbGlnO25kcmUgZGlzc2UgdGFsIHAmYXJpbmc7IGFsbGVyZWRlIGVuIGVrc2lzdGVyZW5kZSBzaWRlJzsKJGxhbmdbJ2NvbmZpcm1fc3VibWl0cHJlZnMnXSA9ICdSZWRpZyZlYWN1dGU7ciBhZG1pbmlzdHJhdGlvbnMgaW5kc3RpbGxpbmdlcj8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0VtYWlsLWFkcmVzc2UgYWxsZXJlZGUgaSBicnVnJzsKJGxhbmdbJ3Byb21wdF91c2Vjb29raWVzdG9yZW1lbWJlciddID0gJ1VzZSBjb29raWVzIHRvIHJlbWVtYmVyIGxvZ2luIGRldGFpbHMnOwokbGFuZ1sncHJvbXB0X2Nvb2tpZW5hbWUnXSA9ICdUaGUgbmFtZSBvZiB0aGUgY29va2llJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnVGlsbGFkIGlkZW50aXNrZSBlbWFpbC1hZHJlc3Nlcic7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdFbWFpbCBhZHJlc3NlIGVyIGJydWdlcm5hdm4nOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnQXR0ZW1wdCB0byBrZWVwIGxvZ2lucyBhbGl2ZSBieSB0aGUgdXNlIG9mIGEgY29va2llIDxlbT4odGhlIGNvb2tpZSBpcyByZXNldCBvbiBhY3Rpdml0eSBpbiB0aGUgd2Vic2l0ZSk8L2VtPic7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcodGlsbGFkIGZsZXJlIGJydWdlcmUgbWVkIHNhbW1lIGVtYWlsIGFkcmVzc2UpJzsKJGxhbmdbJ2luZm9fdXNlcm5hbWVfaXNfZW1haWwnXSA9ICcodXNlciYjMDM5O3MgZW1haWwgYWRkcmVzcyBpcyB0aGVpciB1c2VybmFtZSAtLSBkb24mIzAzOTt0IHNldCB0aGlzIHdpdGggJnF1b3Q7YWxsb3cgZHVwbGljYXRlIGVtYWlsIGFkZHJlc3NlcyZxdW90OyEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnVGlsbGFkIG1lcmUgZW5kIGVuICZxdW90O2dsZW10IGtvZGVvcmQmcXVvdDsgcCZhcmluZzttaW5kZWxzZT8nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnKHRpbGxhZCBhdCBlbiBicnVnZXIgZiZhcmluZztyIG11bGlnaGVkIGZvciBhdCAmYWVsaWc7bmRyZSBzaXQga29kZW9yZCwgc2Vsdm9tIGRlbm5lIGlra2UgaGFyIHJlYWdlcmV0IHAmYXJpbmc7IGVuIHRpZGxpZ2VyZSBmb3Jlc3Amb3NsYXNoO2dzZWwpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnVXNlIEZyb250LWVuZCBVc2VyIHNwZWNpZmljIHBlcm1pc3Npb25zPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFsbHksIEZFVVNlcnMgcGVybWlzc2lvbnMgYXJlIHRoZSBzYW1lIGFzIHRoZSBlcXVpdmFsZW50IEFkbWluIEFyZWEgcGVybWlzc2lvbnMgbGlrZSBBZGQgVXNlciwgQWRkIEdyb3VwLCBldGMuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZXJlIHdpbGwgYmUgc2VwYXJhdGUgcGVybWlzc2lvbnMgZm9yIEZFVXNlcnMuKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZGVkIGZpbGUgKGludGVybmFsIGVycm9yKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtX3VwbG9hZCddID0gJ1RoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB5b3VyIHVwbG9hZGVkIGZpbGUuICBQbGVhc2UgdHJ5IGFnYWluJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1c2VybmFtZSddID0gJ0R1IGluZHRhc3RlZGUgaWtrZSBldCBicnVnZXJuYXZuJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdlbWFpbCddID0gJ1lvdSBkaWQgbm90IGVudGVyIHlvdXIgZW1haWwnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3Bhc3N3b3JkJ10gPSAnRHUgaW5kdGFzdGVkZSBpa2tlIGV0IGtvZGVvcmQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0Zyb250ZW5kIEJydWdlciBMb2cgVWQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnRnJvbnRlbmQgQnJ1Z2VyIExvZyBJbmQnOwokbGFuZ1snZWRpdHByb3BfaW5mb21zZyddID0gJzxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48Yj5VU0UgQ0FVVElPTjwvYj4gd2hlbiBjaGFuZ2luZyBleGlzdGluZyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGFzc2lnbmVkIHRvIGdyb3VwcywgeW91IG1heSBwb3RlbnRpYWxseSBjYXVzZSBkYW1hZ2UgYW5kIGJyZWFrIGFuIGV4aXN0aW5nIHNpdGUgPGk+KGVzcGVjaWFsbHkgaWYgeW91IHJlZHVjZSBmaWVsZCBsZW5ndGhzLCBldGMpPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdEZW5uZSBmdW5rdGlvbiBmdW5nZXJlciBpa2tlIGkgd2luZG93cyc7CiRsYW5nWydtc2dfZG9udGNyZWF0ZXVzZXJuYW1lJ10gPSAnRG8gbm90IGNyZWF0ZSBhIHByb3BlcnR5IGZvciB1c2VybmFtZSwgb3Igc29tZSBzdWNoIHRoaW5nIGFzIHRoaXMgaXMgYnVpbHRpbiB0byB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0Vrc3BvcnRlciBicnVnZXIgdGlsIENTVic7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFa3Nwb3J0ZXInOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0ZXInOwokbGFuZ1snYWRtaW4nXSA9ICdBZG1pbic7CiRsYW5nWydlZGl0cHJvcCddID0gJ1JlZGlnZXIgZWdlbnNrYWJlcic7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYWtzLiBsJmFlbGlnO25nZGUnOwokbGFuZ1snY3JlYXRlZCddID0gJ09wcmV0dGV0JzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRlciBlZnRlcic7CiRsYW5nWydzb3J0J10gPSAnU29ydGVyZXInOwokbGFuZ1sndXNlcnNpbmdyb3VwJ10gPSAnQnJ1Z2VyZSBpIGRlKG4pIHZhbGd0ZSBncnVwcGUociknOwokbGFuZ1sndXNlcmxpbWl0J10gPSAnQmVnciZhZWxpZztucyByZXN1bHRhdGVyIHRpbCc7CiRsYW5nWydlcnJvcl9ub2VtYWlsZmllbGQnXSA9ICdLdW5uZSBpa2tlIGZpbmRlIGV0IGVtYWlsIGZlbHQgZm9yIGRlbm5lIGJydWdlci4gS29udGFrdCBzeXN0ZW0gYWRtaW5pc3RyYXRvcmVuLic7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyBmb3IgRm9yZ290IFBhc3N3b3JkIGZvcm0nOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzX3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgZm9yIENoYW5nZSBTZXR0aW5ncyBmb3JtJzsKJGxhbmdbJ3Byb21wdF9sb2dpbl9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgbG9naW4gKic7CiRsYW5nWydwcm9tcHRfbG9nb3V0X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBsb2dvdXQgKic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0ZXJpbmdzb3JkZW4nOwokbGFuZ1sncHJvbXB0X251bXJlc2V0cmVjb3JkJ10gPSAnQSBudW1iZXIgb2YgdXNlcnMgYXJlIGluIHRoZSBtaWRkbGUgb2YgcmVzZXR0aW5nIGxvc3QgcGFzc3dvcmRzLiAgQ3VycmVudGx5IHRoaXMgY291bnQgaXMgYXQ6JzsKJGxhbmdbJ3JlbW92ZTF3ZWVrJ10gPSAnU2xldCBhbGxlIGluZGwmYWVsaWc7ZywgZGVyIGVyIG1lcmUgZW5kIGVuIHVnZSBnYW1sZSc7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdTbGV0IGFsbGUgaW5kbCZhZWxpZztnLCBkZXIgZXIgbWVyZSBlbmQgZW4gbSZhcmluZztuZWQgZ2FtbGUnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnU2xldCBhbGxlIGluZGwmYWVsaWc7Zyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyPyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ0FuIGludmFsaWQgY29kZSBoYXMgYmVlbiBlbnRlcmVkLCBwbGVhc2UgdHJ5IGFnYWluJzsKJGxhbmdbJ2Vycm9yX3RlbXBjb2Rlbm90Zm91bmQnXSA9ICdBIHRlbXBvcmFyeSBjb2RlIGZvciB5b3VyIHVzZXIgaWQgY291bGQgbm90IGJlIGZvdW5kIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB2ZXJpZmljYXRpb24gZm9ybSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdXNlZCBmb3IgZm9yZ290dGVuIHBhc3N3b3JkIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX3Jlc2V0YWxyZWFkeXNlbnQnXSA9ICdEaWcgc2VsdiBlbGxlciBlbiBhbmRlbiBoYXIgYWxsZXJlZGUgYmVkdCBvbSBhdCBmJmFyaW5nOyBudWxzdGlsbGV0IGtvZGVvcmRldCBmb3IgZGVubmUgYnJ1Z2VyLiBDaGVjayBkaW4gZW1haWwgLSBkdSBoYXIgbXVsaWd2aXMgZiZhcmluZztldCB5ZGVybGlnZXJlIGluc3RydWt0aW9uZXIgb20gaHZvcmRhbiBkdSBudWxzdGlsbGVyIGRpdCBrb2Rlb3JkIGkgZGluIG1haWxib2tzLic7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRGF0YWJhc2UgZmVqbCc7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICdEdSBtb2R0YWdlciBkZW5uZSBiZXNrZWQsIGRhIG5vZ2VuIGhhciBnaXZldCB2b3JlcyBzaXRlIGJlc2tlZCBvbSBhdCBkdSBoYXIgbWlzdGV0IGRpdCBrb2Rlb3JkLiBIdmlzIGRldHRlIGVyIHJpZ3RpZ3QsIHMmYXJpbmc7IGwmYWVsaWc7cyBuZWRlbnN0JmFyaW5nO2VuZGUgaW5zdHJ1a3Rpb25lci4gSHZpcyBkdSBpa2tlIGhhciBtaXN0ZXQgZGl0IGtvZGVvcmQga2FuIGR1IHNsZXR0ZSBkZW5uZSBiZXNrZWQgb2cgdmkgdW5kc2t5bGRlciB1bGVqbGlnaGVkZW4uJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnQ29kZSc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdUaGUgZm9sbG93aW5nIGNvZGUgaGFzIGJlZW4gZ2VuZXJhdGVkIHJhbmRvbWx5IGdlbmVyYXRlZCBpbiBvcmRlciB0byB2ZXJpZnkgdGhlIHVzZXIgYWNjb3VudC4gIHdoZW4geW91IGNsaWNrIG9uIHRoZSBsaW5rIGJlbG93IHlvdSB3aWxsIGJlIHByZXNlbnRlZCB3aXRoIGEgZmllbGQgdG8gZW50ZXIgdGhpcyBjb2RlLiAgTm9ybWFsbHkgdGhlIGZpZWxkIGlzIHByZS1jb21wbGV0ZWQgZm9yIHlvdSwgYnV0IGluY2FzZSBpdCBpc24mIzAzOTt0IHRoZSBjb2RlIGlzOic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0h2aXMgZHUga2xpa2tlciBwJmFyaW5nOyBkZXQgZiZvc2xhc2g7bGdlbmRlIGxpbmssIHZpbCBkdSBibGl2ZSBzZW5kdCB0aWwgaGplbW1lc2lkZW4sIGh2b3IgZHUga2FuIGluZHRhc3RlIG92ZW5zdCZhcmluZztlbmRlIGtvZGUgb2cgbnVsc3RpbGxlIGRpdCBrb2Rlb3JkOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnR2xlbXQga29kZW9yZCc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ0t1bm5lIGlra2UgZmluZGUgQ01TTWFpbGVyLW1vZHVsZXQnOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnRGVyIGVyIGJsZXZldCBzZW5kdCBlbiBlbWFpbCB0aWwgJXMgbWVkIGluc3RydWt0aW9uZXIgb20gaHZvcmRhbiBkdSBudWxzdGlsbGVyIGRpdCBrb2Rlb3JkLiBUYWsuJzsKJGxhbmdbJ2xvc3Rwd19tZXNzYWdlJ10gPSAnSGFyIGR1IG1pc3RldCBkaXQga29kZW9yZD8gSW5kdGFzdCBkaXQgYnJ1Z2VybmF2biBoZXIgb2cgaHZpcyB2aSBrYW4gZmluZGUgZGlnIGkgdm9yZXMgZGF0YWJhc2UsIHZpbCB2aSBzZW5kZSBkaWcgZW4gZW1haWwgbWVkIGluc3RydWt0aW9uZXIgdGlsIGh2b3JkYW4gZHUgbnVsc3RpbGxlciBkaXQga29kZW9yZC4nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdGb3Jnb3QgUGFzc3dvcmQgVGVtcGF0ZXMnOwokbGFuZ1snbG9zdHVzZXJuYW1lX3RlbXBsYXRlJ10gPSAnTWlzdGV0IGJydWdlcm5hdm4gc2thYmVsb24nOwokbGFuZ1snZXJyb3JfcHJvcG5vdGZvdW5kJ10gPSAnRWdlbnNrYWJlbiAlcyBpa2tlIGZ1bmRldCc7CiRsYW5nWydwcm9wc2ZvdW5kJ10gPSAnRWdlbnNrYWJlciBmdW5kZXQnOwokbGFuZ1snYWRkcHJvcCddID0gJ1RpbGYmb3NsYXNoO2ogZWdlbnNrYWInOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ0V0IG4mb3NsYXNoO2R2ZW5kaWd0IGZlbHQgKCVzKSB2YXIgdG9tdCc7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ0luZHRhc3QgZXQgbnl0IGtvZGVvcmQgaGVyIGZvciBhdCAmYWVsaWc7bmRyZSBkaXQga29kZW9yZCc7CiRsYW5nWydlcnJvcl9ub3Rsb2dnZWRpbiddID0gJ0R1IGVyIGlra2UgbG9nZ2V0IGluZCc7CiRsYW5nWyd1c2VyX3NldHRpbmdzJ10gPSAnSW5kc3RpbGxpbmdlcic7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdHJlcmluZyc7CiRsYW5nWydlcnJvcl9hY2NvdW50ZXhwaXJlZCddID0gJ0Rlbm5lIGtvbnRvIGVyIHVkbCZvc2xhc2g7YmV0JzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdJbXByb3BlciBlbWFpbCBhZGRyZXNzIGZvcm1hdHRpbmcnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdVZ3lsZGlnIHVkbCZvc2xhc2g7YnNkYXRvJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdFcnJvciBzZXR0aW5nIHByb3BlcnR5ICVzIGZvciB1c2VyICRzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRncm91cGlkJ10gPSAnVWd5bGRpZyBncnVwcGUgaWQgJXMnOwokbGFuZ1snaGlkZGVuZmllbGRtYXJrZXInXSA9ICdTa2p1bHQgZmVsdCBtYXJrJm9zbGFzaDtyJzsKJGxhbmdbJ2hpZGRlbmZpZWxkY29sb3InXSA9ICdTa2p1bHQgZmVsdCBmYXJ2ZSc7CiRsYW5nWydoaWRkZW4nXSA9ICdTa2p1bHQnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlbmFtZSddID0gJ0VuIGVnZW5za2FiIG1lZCBkZXQgbmF2biBlciBhbGxlcmVkZSBkZWZpbmVyZXQnOwokbGFuZ1snZXJyb3Jfbm9wcm9wZXJ0aWVzJ10gPSAnRGVyIGVyIGlra2UgZGVmaW5lcmV0IG5vZ2VuIGVnZW5za2FiZXInOwokbGFuZ1snZXJyb3Jfbm9yZWxhdGlvbnMnXSA9ICdEZXIgZXIgaWtrZSB2YWxndCBub2dlbiBlZ2Vuc2thYmVyIGZvciBkZW5uZSBncnVwcGUnOwokbGFuZ1snbm9ncm91cHMnXSA9ICdEZXIgZXIgaWtrZSBkZWZpbmVyZXQgbm9nZW4gZ3J1cHBlcic7CiRsYW5nWydncm91cHNmb3VuZCddID0gJ0dydXBwZXIgZnVuZGV0JzsKJGxhbmdbJ2Vycm9yX29uZWdyb3VwcmVxdWlyZWQnXSA9ICdCcnVnZXJlbiBza2FsIHYmYWVsaWc7cmUgbWVkbGVtIGFmIG1pbmRzdCBlbiBncnVwcGUnOwokbGFuZ1sncHJvbXB0X3JlcXVpcmVvbmVncm91cCddID0gJ0tyJmFlbGlnO3YgbWVkbGVtc2thYiBhZiBtaW5kc3QgZW4gZ3J1cHBlJzsKJGxhbmdbJ2JhY2snXSA9ICdUaWxiYWdlJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfcmVxdWlyZWRfcGFyYW0nXSA9ICclcyBlciBldCBwJmFyaW5nO2tyJmFlbGlnO3ZldCBmZWx0JzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRtYXJrZXInXSA9ICdNYXJrJmVhY3V0ZTtyIHAmYXJpbmc7a3ImYWVsaWc7dmVkZSBmZWx0ZXIgbWVkJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ0ZyZW1oJmFlbGlnO3YgcCZhcmluZztrciZhZWxpZzt2ZWRlIGZlbHRlciBtZWQnOwokbGFuZ1snbmV4dCddID0gJ04mYWVsaWc7c3RlJzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnRW4gZ3J1cHBlIG1lZCBkZXQgbmF2biBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnUCZhcmluZztrciZhZWxpZzt2ZXQgZmVsdCc7CiRsYW5nWydvcHRpb25hbCddID0gJ1ZhbGdmcml0JzsKJGxhbmdbJ29mZiddID0gJ0ZyYSc7CiRsYW5nWydzaXplJ10gPSAnU3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1heGltdW0gc2l6ZSBvZiBhbnkgb25lIGRpbWVuc2lvbiBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzKSc7CiRsYW5nWydsZW5ndGgnXSA9ICdMJmFlbGlnO25nZGUnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4odGVnbiBpIHRla3N0IGlucHV0KSc7CiRsYW5nWydzZWxvcHRpb25zJ10gPSAnRHJvcGRvd24gb3B0aW9ucywgc2VwYXJhdGVkIGJ5IGxpbmUgYnJlYWtzJzsKJGxhbmdbJ3JhZGlvb3B0aW9ucyddID0gJ1JhZGlvYnV0dG9uIGxhYmVscywgc2VwYXJhdGVkIGJ5IGxpbmUgYnJlYWtzLiBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfdHlwZSddID0gJ1R5cGUnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwokbGFuZ1snZmllbGRzdGF0dXMnXSA9ICdGZWx0IHN0YXR1cyc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdTcCZvc2xhc2g7cmcgcCZhcmluZzsgdmVkPGJyLz5nbGVtdCBicnVnZXJuYXZuJzsKJGxhbmdbJ3RleHQnXSA9ICdUZWtzdCc7CiRsYW5nWydjaGVja2JveCddID0gJ0Fma3J5ZHNuaW5nc2Jva3MnOwokbGFuZ1snbXVsdGlzZWxlY3QnXSA9ICdNdWx0aS12YWxnIGxpc3RlJzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ1JhZGlvIGtuYXBwZXInOwokbGFuZ1snaW1hZ2UnXSA9ICdCaWxsZWRlJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRW1haWwgYWRyZXNzZSc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1Rla3N0b21yJmFyaW5nO2RlJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICdWZWxrb21tZW4nOwokbGFuZ1snbG9nb3V0J10gPSAnTG9nIHVkJzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdCZW55dCBkZXR0ZSBncnVwcGUgbmF2bic7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICcmQUVsaWc7bmRyZSBtaW5lIGluZHN0aWxsaW5nZXInOwokbGFuZ1snZXJyb3JfbG9naW5mYWlsZWQnXSA9ICdMb2dpbiBmZWpsZWRlIC0gdWd5bGRpZ3QgYnJ1Z2VybmF2biBlbGxlciBrb2Rlb3JkPyc7CiRsYW5nWydsb2dpbiddID0gJ0xvZyBpbmQnOwokbGFuZ1sncHJvbXB0X3NpZ25pbl9idXR0b24nXSA9ICdMb2cgaW5kIGtuYXAgbGFiZWwnOwokbGFuZ1sncHJvbXB0X3VzZXJuYW1lJ10gPSAnQnJ1Z2VybmF2bic7CiRsYW5nWydwcm9tcHRfZW1haWwnXSA9ICdFbWFpbCBBZHJlc3NlJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ0tvZGVvcmQnOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICdIdXNrIG1pZyBwJmFyaW5nOyBkZW5uZSBjb21wdXRlcic7CiRsYW5nWydyZWdpc3RlciddID0gJ1JlZ2lzdHImZWFjdXRlO3InOwokbGFuZ1snZm9yZ290cHcnXSA9ICdHbGVtdCBkaXQga29kZW9yZD8nOwokbGFuZ1snbG9zdHVzZXJuYW1lJ10gPSAnR2xlbXQgZGluZSBvcGx5c25pbmdlcj8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdTdGFuZGFyZHYmYWVsaWc7cmRpZXInOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdTa2FiZWxvbic7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdCcnVnZXIgSUQgaWtrZSBmdW5kZXQnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ0RldCBicnVnZXJuYXZuICglcykgZXIgYWxsZXJlZGUgaSBicnVnJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdCZW55dCBTTVRQIHRpbCBhdCB2YWxpZGVyZSBlbWFpbC1hZHJlc3Nlcj8nOwokbGFuZ1sncHJvbXB0X21pbnB3bGVuJ10gPSAnTWluaW11bSBsJmFlbGlnO25nZGUgYWYga29kZW9yZCc7CiRsYW5nWydwcm9tcHRfbWF4cHdsZW4nXSA9ICdNYWtzaW1hbCBsJmFlbGlnO25nZGUgYWYga29kZW9yZCc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdNaW5pbXVtIGwmYWVsaWc7bmdkZSBhZiBicnVnZXJuYXZuJzsKJGxhbmdbJ3Byb21wdF9tYXh1bmxlbiddID0gJ01ha3NpbWFsIGwmYWVsaWc7bmdkZSBhZiBicnVnZXJuYXZuJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1Nlc3Npb24gdWRlbCZvc2xhc2g7YmVyIGVmdGVyIChpc2VrdW5kZXIpJzsKJGxhbmdbJ3Byb21wdF9jb29raWVrZWVwYWxpdmUnXSA9ICdCcnVnIGNvb2tpZXMgdGlsIGF0IGhvbGRlIGxpdiBpIGxvZ2luJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnVGlsbGFkIGVtYWlsIHJlZ2lzdHJlcmluZyc7CiRsYW5nWydwcm9tcHRfZGZsdGdyb3VwJ10gPSAnU3RhbmRhcmQgZ3J1cHBlIGZvciBueWUgYnJ1Z2VyZSc7CiRsYW5nWydjaGFuZ2VzZXR0aW5nc190ZW1wbGF0ZSddID0gJ1JlZGlnJmVhY3V0ZTtyIHNrYWJlbG9uIGZvciBpbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3JkbWlzbWF0Y2gnXSA9ICdLb2Rlb3JkZW5lIHZhciBpa2tlIGVucyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWUnXSA9ICdVZ3lsZGlndCBicnVnZXJuYXZuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZCddID0gJ1VneWxkaWd0IGtvZGVvcmQnOwokbGFuZ1snZWRpdHVzZXInXSA9ICdSZWRpZyZlYWN1dGU7ciBicnVnZXInOwokbGFuZ1sndmFsaWQnXSA9ICdHeWxkaWcnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdCcnVnZXJuYXZuJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICdEZW5uZSBicnVnZXIgZXIgaWtrZSBtZWRsZW0gYWYgbm9nZW4gZ3J1cHBlcic7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnSW5nZW4gZWdlbnNrYWJlcic7CiRsYW5nWydlcnJvcl9kdXBfcHJvcGVydGllcyddID0gJ0F0dGVtcHQgdG8gaW1wb3J0IGR1cGxpY2F0ZSBwcm9wZXJ0aWVzJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnViZhZWxpZztyZGknOwokbGFuZ1snZ3JvdXBzJ10gPSAnR3J1cHBlcic7CiRsYW5nWydwcm9wZXJ0aWVzJ10gPSAnRWdlbnNrYWJlcic7CiRsYW5nWydwcm9wbmFtZSddID0gJ05hdm4gcCZhcmluZzsgZWdlbnNrYWInOwokbGFuZ1sncHJvcHZhbHVlJ10gPSAnViZhZWxpZztyZGkgZm9yIGVnZW5za2FiJzsKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1snaGlzdG9yeSddID0gJ0hpc3RvcmllJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZyZlYWN1dGU7cic7CiRsYW5nWydleHBpcmVzJ10gPSAnVWRsJm9zbGFzaDtiZXInOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnU3BlY2lmaWNlciBkYXRvJzsKJGxhbmdbJzEyaHJzJ10gPSAnMTIgdGltZXInOwokbGFuZ1snMjRocnMnXSA9ICcyNCB0aW1lcic7CiRsYW5nWyc0OGhycyddID0gJzQ4IHRpbWVyJzsKJGxhbmdbJzF3ZWVrJ10gPSAnMSB1Z2UnOwokbGFuZ1snMndlZWtzJ10gPSAnMiB1Z2VyJzsKJGxhbmdbJzFtb250aCddID0gJzEgbSZhcmluZztuZWQnOwokbGFuZ1snM21vbnRocyddID0gJzMgbSZhcmluZztuZWRlcic7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiBtJmFyaW5nO25lZGVyJzsKJGxhbmdbJzF5ZWFyJ10gPSAnMSAmYXJpbmc7cic7CiRsYW5nWyduZXZlciddID0gJ0FsZHJpZyc7CiRsYW5nWydwb3N0aW5zdGFsbG1lc3NhZ2UnXSA9ICdNb2R1bGUgaW5zdGFsbGVkIHN1Y2Vzc2Z1bGx5Ljxici8+QmUgc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGcm9udEVuZFVzZXIgUHJvcGVydGllcyBwZXJtaXNzaW9uLiZxdW90Oyc7CiRsYW5nWydwYXNzd29yZCddID0gJ0tvZGVvcmQnOwokbGFuZ1sncmVwZWF0cGFzc3dvcmQnXSA9ICdJZ2VuJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdFbiBncnVwcGUgbWVkIGRldCBuYXZuIGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnUmVkaWcmZWFjdXRlO3IgZ3J1cHBlJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0luZHNlbmQnOwokbGFuZ1snY2FuY2VsJ10gPSAnQW5udWxsZXInOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldCc7CiRsYW5nWydjb25maXJtX2VkaXRncm91cCddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBhdCBkZXR0ZSBlciBkZSByaWd0aWdlIGluZHN0aWxsaW5nZXIgZm9yIGRlbm5lIGdydXBwZT8gSHZpcyBkdSBmamVybmVyIGVuIGVnZW5za2FiIGhlciwgdmlsIGRldCBpa2tlIHNsZXR0ZSBlZ2Vuc2thYmVybmUgaSBkYXRhYmFzZW4gZm9yIGRlbm5lIGdydXBwZS4gRGUgdmlsIGJsb3QgdiZhZWxpZztyZSB1dGlsZyZhZWxpZztuZ2VsaWdlLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBzbGV0dGUgZGVubmUgZ3J1cHBlPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9wcm9wJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBzbGV0dGUgZGVubmUgZWdlbnNrYWIgZnVsZHN0JmFlbGlnO25kaWd0PyBIdmlzIGR1IHNsZXR0ZXIgZGVuIHZpbCBkZXQgb2dzJmFyaW5nOyBzbGV0dGUgYnJ1Z2VyaW5kc2xhZyBtZWQgZGVubmUgZWdlbnNrYWIuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1V0aWxzdHImYWVsaWc7a2tlbGlnZSBwYXJhbWV0cmUnOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWyduYW1lJ10gPSAnTmF2bic7CiRsYW5nWydlcnJvcl9jYW50YWRkcHJvcCddID0gJ1Byb2JsZW1lciBtZWQgYXQgdGlsZiZvc2xhc2g7amUgZW4gZWdlbnNrYWInOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwcmVsbiddID0gJ1Byb2JsZW1lciBtZWQgYXQgdGlsZiZvc2xhc2g7amUgZW4gZ3J1cHBlIHJlbGF0aW9uJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZW1lciBtZWQgYXQgdGlsZiZvc2xhc2g7amUgZW4gZ3J1cHBlJzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnUHJvYmxlbWVyIG1lZCBhdCB0aWxmJm9zbGFzaDtqZSBlbiBicnVnZXIgdGlsIGVuIGdydXBwZSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmxlbWVyIG1lZCBhdCBzbGV0dGUgZW4gZWdlbnNrYWInOwokbGFuZ1snZXJyb3JfY291bGRub3RmaW5kZW1haWwnXSA9ICdLdW5uZSBpa2tlIGZpbmRlIGVuIGVtYWlsIGFkcmVzc2UnOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ0RlciBlciBpa2tlIHNrcml2ZS1yZXR0aWdoZWRlciB0aWwgZGVzdGluYXRpb25zLW1hcHBlbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnVWd5bGRpZ2UgcGFyYW1ldHJlJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnS3VubmUgaWtrZSBmaW5kZSBub2dlbiBncnVwcGVyJzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnQW52ZW5kJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAnQnJ1Z2VybmF2bic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2tyaXZlbHNlJzsKJGxhbmdbJ2dyb3VwbmFtZSddID0gJ0dydXBwZW5hdm4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWRnYW5nIG4mYWVsaWc7Z3RldCc7CiRsYW5nWydlcnJvciddID0gJ0ZlamwnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdUaWxmJm9zbGFzaDtqIGdydXBwZSc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ0ltcG9ydCZlYWN1dGU7ciBncnVwcGUnOwokbGFuZ1snYWRkdXNlciddID0gJ1RpbGYmb3NsYXNoO2ogYnJ1Z2VyJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdCcnVnZXJlIG1lZCBkZXQgYW5naXZuZSBrcml0ZXJpZSc7CiRsYW5nWydncm91cCddID0gJ0dydXBwZSc7CiRsYW5nWydzZWxlY3Rncm91cCddID0gJ1YmYWVsaWc7bGcgZ3J1cHBlJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1JlZ2lzdHJlcmluZ3Mgc2thYmVsb24nOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnTG9nb3V0IHNrYWJlbG9uJzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnTG9naW4gc2thYmVsb24nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ3VzZXJzJ10gPSAnQnJ1Z2VyZSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdGcm9udGVuZCBVc2VyIE1hbmFnbWVudCc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ01hbmFnZSBGcm9udGVuZCBVc2Vycyc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnU3RhbmRhcmQgZm9yc2lkZSc7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAnU2lkc3QgdGlsZyZhcmluZztlZGUgc2lkZSc7CiRsYW5nWydvdGhlcnBhZ2UnXSA9ICdBbmRlbiBzaWRlOiAnOwokbGFuZ1snY2FwdGNoYV90aXRsZSddID0gJ1Nrcml2IHRla3N0ZW4gcCZhcmluZzsgYmlsbGVkZXQnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX3Bhc3N3b3Jkbm90Y2hhbmdlZCddID0gJ0JpdHRlIMOkbmRlcm4gc2llIGRhcyBLZW5ud29ydCB1bmQgdmVyZ2V3aXNzZXJuIHNpZSBzaWNoLCBkYXNzIGVzIGtvcnJla3QgaXN0Lic7CiRsYW5nWydtc2dfZm9yY2VfbmV3cHcnXSA9ICdIZXJ6bGljaCBXaWxsa29tbWVuLiBCaXR0ZSBnZWJlbiBzaWUgYXVzIFNpY2hlcmhlaXRzZ3LDvG5kZW4gZWluIG5ldWVzIEtlbm53b3J0IGFuLic7CiRsYW5nWydsYmxfdGVtcGxhdGUnXSA9ICdWb3JsYWdlJzsKJGxhbmdbJ2luZm9fZm9yY2VfbmV3cHdfdGVtcGxhdGUnXSA9ICdEaWVzZSBWb3JsYWdlIGlzdCBmw7xyIGRhcyBGb3JtdWxhciwgbWl0IGRlbSBkZXIgQmVudXR6ZXIgZ2V6d3VuZ2VuIHdpcmQsIHNlaW4gS2VubndvcnQgenUgw6RuZGVybi4nOwokbGFuZ1snZm9yY2VfbmV3cHdfdGVtcGxhdGUnXSA9ICdWb3JsYWdlIOKAnk5ldWVzIEtlbm53b3J0IGVyendpbmdlbuKAnCc7CiRsYW5nWydwcm9tcHRfZm9yY2VfbmV3cHcnXSA9ICdEZW4gQmVudXR6ZXIgZGF6dSB6d2luZ2VuLCBiZWltIG7DpGNoc3RlbiBBbm1lbGRlbiBzZWluIEtlbm53b3J0IHp1csO8Y2t6dXNldHplbic7CiRsYW5nWydwcm9tcHRfZGlzYWJsZWQnXSA9ICdJc3QgZGllc2VzIEJlbnV0emVya29udG8gZGVha3RpdmllcnQ/JzsKJGxhbmdbJ21zZ191c2VyX3N0YXRlX2NoYW5nZWQnXSA9ICdCZW51dHplcnN0YXR1cyBnZcOkbmRlcnQnOwokbGFuZ1snaW5mb19kaXNhYmxlZCddID0gJ0RpZXNlcyBCZW51dHplcmtvbnRvIGlzdCBkZWFrdGl2aWVydDsgQW5tZWxkdW5nIG5pY2h0IG3DtmdsaWNoJzsKJGxhbmdbJ2VuYWJsZV91c2VyJ10gPSAnQmVudXR6ZXJrb250byBha3RpdmllcmVuJzsKJGxhbmdbJ2Rpc2FibGVfdXNlciddID0gJ0JlbnV0emVya29udG8gZGVha3RpdmllcmVuIHVuZCB2ZXJzaWNoZXJuLCBkYXNzIGRlciBCZW51dHplciBhYmdlbWVsZGV0IGlzdCc7CiRsYW5nWydlcnJvcl9hY2NvdW50ZGlzYWJsZWQnXSA9ICdFbnRzY2h1bGRpZ3VuZywgYWJlciBkaWVzZXMgQmVudXR6ZXJrb250byB3dXJkZSBkZWFrdGl2aWVydC4gQml0dGUga29udGFrdGllcmVuIHNpZSBkZW4gV2Vic2VpdGVuYWRtaW5pc3RyYXRvciwgdW0gZGllc2VuIEtvbmZsaWt0IHp1IGzDtnNlbi4nOwokbGFuZ1sndGl0bGVfZm9yZ290cHcnXSA9ICdLZW5ud29ydCB2ZXJnZXNzZW4nOwokbGFuZ1sndmVyaWZ5X2lkZW50aXR5J10gPSAnSWRlbnRpdMOkdCBhdWYgUmljaHRpZ2tlaXQgcHLDvGZlbic7CiRsYW5nWyc0MDNlcnJvciddID0gJ0VpbmVuIEZlaGxlciA0MDMgZ2VuZXJpZXJlbic7CiRsYW5nWydwcm9tcHRfZW5oYW5jZWRwdyddID0gJ0VpbiBzdGFya2VzIEtlbm53b3J0IGVyZm9yZGVybic7CiRsYW5nWydpbmZvX2VuaGFuY2VkcHcnXSA9ICdXZW5uIGFrdGl2aWVydCwgbcO8c3NlbiBLZW5ud8O2cnRlciBtaW5kZXN0ZW5zIGVpbmVuIEdyb8OfYnVjaHN0YWJlbiB1bmQgZWluZSBaaWZmZXIgZW50aGFsdGVuJzsKJGxhbmdbJ3Byb21wdF9wd3JlcXVpcmVkY2hhcnMnXSA9ICdFaW5zIGRpZXNlciBaZWljaGVuIGltIEtlbm53b3J0IGVyZm9yZGVybic7CiRsYW5nWydpbmZvX3B3cmVxdWlyZWRjaGFycyddID0gJ1dlbm4gc3RhcmtlIEtlbm53w7ZydGVyIGFrdGl2aWVydCBzaW5kLCBtdXNzIG1pbmRlc3RlbnMgZWlucyBkZXIgaGllciBhbmdlZ2ViZW5lbiBaZWljaGVuIHp1c8OkdHpsaWNoIHp1IGRlbiBBbmZvcmRlcnVuZ2VuIGFuIHN0YXJrZSBLZW5ud8O2cnRlciB2b3Jrb21tZW4uJzsKJGxhbmdbJ2Vycm9yX2NhbnRzZXRwcm9wZXJ0eXR5cGUnXSA9ICdFaWdlbnNjaGFmdCBkaWVzZW4gVHlwcyBrYW5uIG5pY2h0IGFuZ2VnZWJlbiB3ZXJkZW4nOwokbGFuZ1snaW1wb3J0X2RlbGV0ZWR1c2VyJ10gPSAnQmVudXR6ZXIgJXMgZ2Vsw7ZzY2h0JzsKJGxhbmdbJ2Vycm9yX2V4cG9ydF9ub3VzZXJzJ10gPSAnS2VpbmUgQmVudXR6ZXIgenVtIEV4cG9ydGllcmVuIGdlZnVuZGVuJzsKJGxhbmdbJ3Byb21wdF9leHBvcnRfdXNlcnMnXSA9ICdCZW51dHplciBleHBvcnRpZXJlbic7CiRsYW5nWyd0aXRsZV9leHBvcnRfdXNlcnMnXSA9ICdCZW51dHplciBpbiBBU0NJSS1EYXRlaSBleHBvcnRpZXJlbic7CiRsYW5nWydlcnJvcl9pbXBvcnRncm91cG5hbWUnXSA9ICdVbmfDvGx0aWdlciBvZGVyIGxlZXJlciBHcnVwcGVubmFtZSBhbmdlZ2ViZW4nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ1RyZW5uZXInOwokbGFuZ1sncHJvbXB0X2RlbGV0ZV91c2VycyddID0gJ0V4dHJhLUJlbnV0emVyIGzDtnNjaGVuJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF91c2VycyddID0gJ0JlbnV0emVyIGF1cyBDU1YtRGF0ZWkgaW1wb3J0aWVyZW4nOwokbGFuZ1snZnJvbnRlbmRfYWNjZXNzJ10gPSAnQmV0cmFjaHRlcic7CiRsYW5nWydzb3J0YnlfdXNlcm5hbWVfYXNjJ10gPSAnQmVudXR6ZXJuYW1lIChhdWZzdGVpZ2VuZCknOwokbGFuZ1snc29ydGJ5X3VzZXJuYW1lX2Rlc2MnXSA9ICdCZW51dHplcm5hbWUgKGFic3RlaWdlbmQpJzsKJGxhbmdbJ3NvcnRieV9jcmVhdGVfYXNjJ10gPSAnRXJzdGVsbHVuZ3NkYXR1bSAoYXVmc3RlaWdlbmQpJzsKJGxhbmdbJ3NvcnRieV9jcmVhdGVfZGVzYyddID0gJ0Vyc3RlbGx1bmdzZGF0dW0gKGFic3RlaWdlbmQpJzsKJGxhbmdbJ3NvcnRieV9leHBpcmVzX2FzYyddID0gJ0FibGF1ZmRhdHVtIChhdWZzdGVpZ2VuZCknOwokbGFuZ1snc29ydGJ5X2V4cGlyZXNfZGVzYyddID0gJ0FibGF1ZmRhdHVtIChhYnN0ZWlnZW5kKSc7CiRsYW5nWydlbmNyeXB0ZWQnXSA9ICdWZXJzY2hsw7xzc2VsdCc7CiRsYW5nWydwcm9tcHRfbm9ybWFsbG9naW4nXSA9ICdEaXJla3RlIEFubWVsZHVuZyc7CiRsYW5nWydtb3ZlX3VwJ10gPSAnbmFjaCBvYmVuIGJld2VnZW4nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnbmFjaCB1bnRlbiBiZXdlZ2VuJzsKJGxhbmdbJ3RpdGxlX3Byb3Btb2R1bGUnXSA9ICdEaWVzZSBFaWdlbnNjaGFmdCB3aXJkIGR1cmNoIGRhcyBNb2R1bCBlcnN0ZWxsdCB1bmQga2FubiBuaWNodCBiZWFyYmVpdGV0IHdlcmRlbic7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnTmljaHQgdmVyZsO8Z2Jhcic7CiRsYW5nWydwcm9tcHRfZGZsdF9jaGVja2VkJ10gPSAnU3RhbmRhcmRtw6TDn2lnIHNvbGx0ZSBkaWVzZXMgRmVsZCBtYXJraWVydCBzZWluJzsKJGxhbmdbJ29wZXJhdGlvbl9jb21wbGV0ZWQnXSA9ICdWb3JnYW5nIGFiZ2VzY2hsb3NzZW4nOwokbGFuZ1snbWVtYmVycyddID0gJ01pdGdsaWVkZXInOwokbGFuZ1sndmlld19maWx0ZXInXSA9ICdBbnNpY2h0c2ZpbHRlcic7CiRsYW5nWydkYXRhJ10gPSAnRGF0ZW4nOwokbGFuZ1snYXBwbGllZCddID0gJ8OcYmVybm9tZW4nOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnwqsnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICfigLknOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICfigLonOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICfCuyc7CiRsYW5nWydwYWdlJ10gPSAnU2VpdGUnOwokbGFuZ1sncHJvbXB0X2FsbG93X2NoYW5nZXVzZXJuYW1lJ10gPSAnw4RuZGVydW5nIGRlcyBCZW51dHplcm5hbWVucyBlcmxhdWJlbic7CiRsYW5nWydpbmZvX2FsbG93X2NoYW5nZXVzZXJuYW1lJ10gPSAnV2VubiBha3RpdmllcnQsIHdlcmRlbiBCZW51dHplciBkaWUgTcO2Z2xpY2hrZWl0IGhhYmVuLCBkZW4gQmVudXR6ZXJuYW1lbiB6dXNhbW1lbiBtaXQgYW5kZXJlbiBFaW5zdGVsbHVuZ2VuIHp1IMOkbmRlcm4nOwokbGFuZ1sndGVtcGxhdGVfc2F2ZWQnXSA9ICdWb3JsYWdlIGdlc3BlaWNoZXJ0JzsKJGxhbmdbJ3RlbXBsYXRlX3Jlc2V0ZGVmYXVsdHMnXSA9ICdWb3JsYWdlIHp1csO8Y2tzZXR6ZW4nOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnVm9ybGFnZW4nOwokbGFuZ1snZW5hYmxlX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIGJlaW0gTG9naW4tRm9ybXVsYXIgYWt0aXZpZXJlbic7CiRsYW5nWydpbmZvX2VuYWJsZV9jYXB0Y2hhJ10gPSAnV2VubiBkZXIgQmVudXR6ZXIgbmljaHQgYW5nZW1lbGRldCBpc3QsIHVuZCBkaWUgTW9kdWxlaW5zdGVsbHVuZyBiZXNhZ3QsIGRhcyBMb2dpbi1Gb3JtdWxhciBhbnp1emVpZ2VuLCBzdGV1ZXJ0IGRpZXNlIE9wdGlvbiBvYiBlaW4gQWJmcmFnZSBkZXMgQ2FwdGNoYS1TaWNoZXJoZWl0c2NvZGUgYXVmIGRlbSBMb2dpbi1CaWxkc2NoaXJtIGFuZ2V6ZWlndCB3aXJkLCB3ZW5uIGVpbiBDYXB0Y2hhLU1vZHVsIGluc3RhbGxpZXJ0IGlzdC4nOwokbGFuZ1sncGFnZXR5cGVfdW5hdXRob3JpemVkJ10gPSAnU2llIHNpbmQgbmljaHQgYXV0b3Jpc2llcnQsIGRpZXNlbiBJbmhhbHQgenUgc2VoZW4nOwokbGFuZ1snaW5mb19jb250ZW50cGFnZV9ncm91cGxpc3QnXSA9ICdHZWJlbiBTaWUgZWluZSBMaXN0ZSBkZXIgRkVVLUdydXBwZW4gYW4sIGRpZSBadWdhbmcgenUgZGllc2VyIFNlaXRlIGhhYmVuIGRhcmYuIEtlaW5lIEF1c3dhaGwgZXJsYXVidCBqZWRlbSBhbmdlbWVsZGV0ZW4gRkVVLUJlbnV0emVyLCBkaWUgU2VpdGUgenUgc2VoZW4uJzsKJGxhbmdbJ3BhZ2V0eXBlX3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbiBmw7xyIGRpZSBnZXNjaMO8dHp0ZSBTZWl0ZSc7CiRsYW5nWydwYWdldHlwZV9ncm91cHMnXSA9ICdFcmxhdWJ0ZSBHcnVwcGVuJzsKJGxhbmdbJ3BhZ2V0eXBlX2FjdGlvbiddID0gJ0FrdGlvbiBmw7xyIHVuYmVyZWNodGlndGUgWnVncmlmZmUnOwokbGFuZ1snc2hvd2xvZ2luZm9ybSddID0gJ0RhcyBBbm1lbGRlZm9ybXVsYXIgYW56ZWlnZW4nOwokbGFuZ1sncmVkaXJlY3QnXSA9ICdBdWYgZWluZSBTZWl0ZSB3ZWl0ZXJsZWl0ZW4nOwokbGFuZ1sncGFnZXR5cGVfcmVkaXJlY3R0byddID0gJ1dlaXRlcmxlaXRlbiBhdWYnOwokbGFuZ1sncGVybWlzc2lvbnMnXSA9ICdCZXJlY2h0aWd1bmdlbic7CiRsYW5nWydmZXVfcHJvdGVjdGVkX3BhZ2UnXSA9ICdHZXNjaMO8dHp0ZXIgSW5oYWx0JzsKJGxhbmdbJ3Byb21wdF92aWV3cHJvcHMnXSA9ICdXw6RobGVuIFNpZSBadXPDpHR6bGljaGUgRWlnZW5zY2hhZnRlbiBmw7xyIEFuc2ljaHQnOwokbGFuZ1sndmlldyddID0gJ0Fuc2ljaHQnOwokbGFuZ1snaWdub3JlX3VzZXJpZCddID0gJ0lnbm9yaWVyZSBVc2VySUQtU3BhbHRlIGJlaW0gSW1wb3J0aWVyZW4nOwokbGFuZ1snZXhwb3J0X3Bhc3NoYXNoJ10gPSAnRXhwb3J0aWVyZSBkaWUgS2VubndvcnQtaGFzaCBpbiBkaWUgRGF0ZWknOwokbGFuZ1snZXJyb3JfYWRqdXN0c2FsdCddID0gJ1Bhc3N3b3JkLVNhbHQga2FubiBuaWNodCBlaW5nZXN0ZWxsdCB3ZXJkZW4nOwokbGFuZ1sncHJvbXB0X3B3c2FsdCddID0gJ1Bhc3N3b3JkLVNhbHQnOwokbGFuZ1snYWR2YW5jZWRfc2V0dGluZ3MnXSA9ICdXZWl0ZXJlIEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snaW5mb19zZXNzaW9udGltZW91dCddID0gJ0dlYmVuIFNpZXIgaGllciBkaWUgQW56YWhsIHZvbiBTZWt1bmRlbiBhbiwgbmFjaCBkZXJlbiBBYmxhdWYgaW5ha3RpdmUgQmVudXR6ZXIgYXV0b21hdGlzY2ggdm9uIGRlciBXZWJzZWl0ZSBhYmdlbWVsZGV0IHdlcmRlbic7CiRsYW5nWydwcm9tcHRfZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdCZW51dHplcmFibGF1Zi1JbnRlcnZhbGwnOwokbGFuZ1snbXNnX3NldHRpbmdzY2hhbmdlZCddID0gJ0locmUgRWluc3RlbGx1bmdlbiB3dXJkZW4gYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ2ZvcmNlZGxvZ291dHRhc2tfZGVzYyddID0gJ0JlbnV0emVyIGluIHJlZ2VsbcOkw59pZ2VuIFplaXRhYnN0w6RuZGVuIGFibWVsZGVuJzsKJGxhbmdbJ3Byb21wdF9mb3JjZWxvZ291dF90aW1lcyddID0gJ1plaXRlbiwgenUgZGVuZW4gZGVyIEJlbnV0emVyIGF1dG9tYXRpc2NoIGFiZ2VtZWxkZXQgd2lyZCc7CiRsYW5nWydpbmZvX2ZvcmNlbG9nb3V0X3RpbWVzJ10gPSAnR2ViZW4gU2llIGhpZXIgZWluZSBkdXJjaCBLb21tYXRhIGdldHJlbm50ZSBMaXN0ZSB2b24gWmVpdGVuIHdpZSB6dW0gQmVpc3BpZWwgSEg6TU0sSEg6TU0gYW4sIGluIGRlbmVuIGRpZSBCZW51dHplciBhdXRvbWF0aXNjaCBhYmdlbWVsZGV0IHdlcmRlbi4gSGlud2VpczogTm90ZSwgdGhpcyB1c2VzIHRoZSBwc3VlZG9jcm9uIG1lY2hhbmlzbSBzbyB5b3UgbXVzdCBiZSBzdXJlIHRoYXQgdGhlIHRpbWVzIGVudGVyZWQgaGVyZSB3aWxsIGNvaW5jaWRlIHJlYXNvbmFibHkgd2l0aCB5b3VyICJwc2V1ZG9jcm9uIGdyYW51bGFyaXR5IiBhbmQgdGhhdCBzdWZmaWNpZW50IHJlcXVlc3RzIHdpbGwgb2NjdXIgdG8geW91ciB3ZWJzaXRlIHRvIGVuc3VyZSB0aGF0IHBzZXVkb2Nyb24gaXMgZXhlY3V0ZWQuJzsKJGxhbmdbJ3Byb21wdF9mb3JjZWxvZ291dF9zZXNzaW9uYWdlJ10gPSAnQmVudXR6ZXIgYXVzc2NobGllw59lbiwgZGllIGFrdGl2IHdhcmVuIGluIDxlbT4oTWludXRlbik8L2VtPic7CiRsYW5nWydpbmZvX2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnXSA9ICdXaXJkIGRpZXNlciBXZXJ0IGFuZ2VnZWJlbiwgd2lyZCBqZWRlciBCZW51dHplciwgZGVyIGluIGRpZXNlbSBaZWl0cmF1bSBha3RpdiB3YXIsIG5pY2h0IGF1dG9tYXRpc2NoIGFiZ2VtZWxkZXQnOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGUnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIGRlbiBCZW51dHplciAlcyBsw7ZzY2hlbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZWV4dGVuc2lvbiddID0gJ0RpZSBob2NoZ2VsYWRlbmUgRGF0ZWkgZW50c3ByaWNodCBuaWNodCBkZXIgZXJsYXVidGVuIERhdGVpdHlwZW4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbGUgZGVtIEZyb250RW5kVXNlcnMtTW9kdWwgenVnZW9yZG5ldGVuIERhdGVuIHd1cmRlbiBnZWzDtnNjaHQnOwokbGFuZ1snaW5mb19lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnV2lyZCBkaWVzIGFrdGl2aWVydCwgd2lyZCBkYXMgTW9kdWwgYXVmIEVyZWlnbmlzc2UgYWNodGVuLCBkaWUgZHVyY2ggZGllIEVjb21tZXJjZSBTdWl0ZSBhdXNnZWzDtnN0IHdlcmRlbi4gRGllIGZvbGdlbmRlbiBFaW5zdGVsbHVuZ2VuIGhhYmVuIG51ciBkYW5uIGVpbmUgQXVzd2lya3VuZywgd2VubiBkaWVzZSBFaW5zdGVsbHVuZyBha3RpdmllcnQgd2lyZC4nOwokbGFuZ1sncHJvbXB0X2Vjb21tX3BhaWRyZWdpc3RyYXRpb24nXSA9ICdBdWYgQmVzdGVsbHVuZ2VuIGFjaHRlbic7CiRsYW5nWydpbmZvX3BhaWRyZWdfc2V0dGluZ3MnXSA9ICdEaWUgZm9sZ2VuZGVuIEVpbnN0ZWxsdW5nZW4gd2VyZGVuIG51ciBkYW5uIGFuZ2V3ZW5kZXQsIHdlbm4gc2ljaCBCZW51dHplciBzZWxic3QgcmVnaXN0cmllcmVuIGvDtm5uZW4gdW5kIGJlemFobHRlIFJlZ2lzdHJpZXJ1bmdlbiBlcmxhdWJ0IHNpbmQuJzsKJGxhbmdbJ25vbmUnXSA9ICdLZWluKGVyKSc7CiRsYW5nWydkZWxldGVfdXNlciddID0gJ0JlbnV0emVyIGzDtnNjaGVuJzsKJGxhbmdbJ2V4cGlyZV91c2VyJ10gPSAnQWJnZWxhdWZlbmUgQmVudXR6ZXInOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmNhbmNlbGxlZCddID0gJ0FrdGlvbiwgZGllIGF1c2dlZsO8aHJ0IHdpcmQsIHdlbm4gZGllIEJlc3RlbGx1bmcgZWluZXMgQWJvbm5lbWVudHMgYWJnZWJyb2NoZW4gd2lyZCc7CiRsYW5nWydwcm9tcHRfYWN0aW9uX29yZGVyZGVsZXRlZCddID0gJ0FrdGlvbiwgZGllIGF1c2dlZsO8aHJ0IHdpcmQsIHdlbm4gZGllIEJlc3RlbGx1bmcgZWluZXMgQWJvbm5lbWVudHMgZ2Vsw7ZzY2h0IHdpcmQnOwokbGFuZ1snZWNvbW1lcmNlX3NldHRpbmdzJ10gPSAnZUNvbW1lcmNlLUVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snc2VjdXJlZmllbGRtYXJrZXInXSA9ICdLZW5uemVpY2hudW5nIGbDvHIgc2ljaGVyZSBGZWxkZXInOwokbGFuZ1snc2VjdXJlZmllbGRjb2xvciddID0gJ0ZhcmJlIGbDvHIgc2ljaGVyZSBGZWxkZXInOwokbGFuZ1sncHJvbXB0X2VuY3J5cHQnXSA9ICdEaWVzZSBEYXRlbiBpbiBkZXIgRGF0ZW5iYW5rIHZlcnNjaGzDvHNzZWx0IHNwZWljaGVybic7CiRsYW5nWydlcnJvcl9ub3RzdXBwb3J0ZWQnXSA9ICdEaWUgZ2V3w6RobHRlIE9wdGlvbiB3aXJkIHZvbiBJaHJlciBha3R1ZWxsZW4gS29uZmlndXJhdGlvbiBuaWNodCB1bnRlcnN0w7x0enQnOwokbGFuZ1snYXVkaXRfdXNlcl9jcmVhdGVkJ10gPSAnQmVudXR6ZXIgd3VyZGUgYXV0b21hdGlzY2ggZXJzdGVsbHQnOwokbGFuZ1snaW5mb19hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnU29sbCBmw7xyIGVpbmVuIEJlbnV0emVyLCBkZXIgw7xiZXIgZWluIGV4dGVybmVzIEF1dGhlbnRpZml6aWVydW5ncy1Nb2R1bCBhbmdlbWVsZGV0IHd1cmRlLCBhYmVyIGRlbSBGcm9udEVuZFVzZXJzLU1vZHVsIG5pY2h0IGJla2FubnQgaXN0LCBhdXRvbWF0aXNjaCBlaW4gRkVVLUtvbnRvIGVyc3RlbGx0IHdlcmRlbj8nOwokbGFuZ1sncHJvbXB0X2F1dG9fY3JlYXRlX3Vua25vd24nXSA9ICdBdXRvbWF0aXNjaCB1bmJla2FubnRlbiBCZW51dHplciBlcnN0ZWxsZW4nOwokbGFuZ1snZGlzcGxheV9zZXR0aW5ncyddID0gJ0FuemVpZ2VlaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ2luZm9fc3RkX2F1dGhfc2V0dGluZ3MnXSA9ICdEaWUgZm9sZ2VuZGVuIEVpbnN0ZWxsdW5nZW4gd2VyZGVuIG51ciB2ZXJ3ZW5kZXQsIHdlbm4gU2llIGRpZSAiSW50ZXJuZSBBdXRoZW50aWZpemllcnVuZyIgdmVyd2VuZGVuLic7CiRsYW5nWydpbmZvX3N1cHBvcnRfbG9zdHVuJ10gPSAnRGllIEVpbnN0ZWxsdW5nICJOZWluIiBkZWFrdGl2aWVydCBkaWUgTcO2Z2xpY2hrZWl0IGbDvHIgZGllIEJlbnV0emVyLCBlaW4gQW5mcmFnZSBuYWNoIFp1c2VuZHVuZyBkZXIgQW5tZWxkZWRhdGVuIHp1IHN0ZWxsZW4gKHVuYWJow6RuZ2lnIHZvbiBhbmRlcmVuIEVpbnN0ZWxsdW5nZW4pJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0cHcnXSA9ICdEaWUgRWluc3RlbGx1bmcgIk5laW4iIGRlYWt0aXZpZXJ0IGRpZSBNw7ZnbGljaGtlaXQgZsO8ciBkaWUgQmVudXR6ZXIsIGVpbiBadXLDvGNrc2V0emVuIGRlcyBQYXNzd29ydHMgYW56dWZvcmRlcm4gKHVuYWJow6RuZ2lnIHZvbiBhbmRlcmVuIEVpbnN0ZWxsdW5nZW4pJzsKJGxhbmdbJ3Byb21wdF9zdXBwb3J0X2xvc3R1biddID0gJ0JlbnV0emVybiBlaW5lIEFuZnJhZ2UgbmFjaCBJaHJlbiBCZW51dHplcm5hbWVuIGVybGF1YmVuJzsKJGxhbmdbJ3Byb21wdF9zdXBwb3J0X2xvc3RwdyddID0gJ0JlbnV0emVybiBlaW5lIEFuZnJhZ2UgenVyIMOEbmRlcnVuZ2VuIGRlcyBQYXNzd29ydHMgZXJsYXViZW4nOwokbGFuZ1snYXV0aF9zZXR0aW5ncyddID0gJ0F1dGhlbnRpZml6aWVydW5nc2VpbnN0ZWxsdW5nZW4nOwokbGFuZ1snYXV0aGVudGljYXRpb24nXSA9ICdJbnRlcm5lIEF1dGhlbnRpZml6aWVydW5nJzsKJGxhbmdbJ2F1dGhfYnVpbHRpbiddID0gJ0ZFVS1TdGFuZGFyZGF1dGhlbnRpZml6aWVydW5nJzsKJGxhbmdbJ2F1dGhfbW9kdWxlJ10gPSAnQXV0aGVudGlmaXppZXJ1bmdzbW9kdWwvLW1ldGhvZGUnOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ0RhcyBGcm9udGVuZFVzZXJzLU1vZHVsIHVudGVyc3TDvHR6dCBkaWUgQW5tZWxkdW5nIMO8YmVyIGFsdGVybmF0aXZlIEF1dGhlbnRpZml6aWVydW5ncy1NZXRob2RlbiwgbWl0IHVudGVyc2NoaWVkbGljaGVuIE3DtmdsaWNoa2VpdGVuLiBKZWRvY2ggc3RlaGVuIGRhbm4gZWluaWdlIEZ1bmt0aW9uZW4gbmljaHQgenVyIFZlcmbDvGd1bmcgb2RlciB3ZXJkZW4gZGVha3RpdmllcnQsIHdlbm4gbmljaHQgZGllIGVpbmdlYmF1dGUgQXV0aGVudGlmaXppZXJ1bmdzLU1ldGhvZGUgdmVyd2VuZGV0IHdpcmQnOwokbGFuZ1snZXJyb3JfdXNlcl9ub251bmlxdWVfZmllbGRfdmFsdWUnXSA9ICdEZXIgZsO8ciAlcyBmZXN0Z2VsZWd0ZSBXZXJ0IHdpcmQgYmVyZWl0cyB2b24gZWluZW0gYW5kZXJlbiBCZW51dHplciB2ZXJ3ZW5kZXQnOwokbGFuZ1sndW5pcXVlJ10gPSAnRWluZGV1dGlnJzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZV9maWVsZF92YWx1ZSddID0gJ0RlciBmw7xyICVzIGZlc3RnZWxlZ3RlIFdlcnQgKCVzKSBpc3QgbmljaHQgZWluZGV1dGlnJzsKJGxhbmdbJ3Byb21wdF9mb3JjZV91bmlxdWUnXSA9ICdXZXJ0ZSBmw7xyIGRpZXNlIEVpZ2Vuc2NoYWZ0IHNvbGxlbiBpbiBhbGxlbiBCZW51dHplcmtvbnRlbiBlaW5kZXV0aWcgc2Vpbic7CiRsYW5nWydoZWxwX3JldHVybmxhc3QnXSA9ICdXaXJkIG1pdCBBbi0gdW5kIEFibWVsZGUtRm9ybXVsYXJlbiB2ZXJ3ZW5kZXQuIE1pdCBkaWVzZW0gUGFyYW1ldGVyIGthbm4gZmVzdGdlbGVndCB3ZXJkZW4sIGRhc3MgZGVyIFdlYnNlaXRlbmJlc3VjaGVyIG5hY2ggZGVyIEFubWVsZHVuZyBhdWYgZGllIFNlaXRlIChVUkwpIHdlaXRlcmdlbGVpdGV0IHdlcmRlbiwgZGllIHNpZSB2b3IgZGllc2VyIEFrdGlvbiBhbmdlc2VoZW4gaGFiZW4uIERpZXNlciBQYXJhbWV0ZXIgw7xiZXJzY2hyZWlidCBzw6RtbGljaGUgV2VpdGVybGVpdHVuZ3NlaW5zdGVsbHVuZ2VuIHVuZCAtUGFyYW1ldGVyLic7CiRsYW5nWydoZWxwX25vaW5saW5lJ10gPSAnV2lyZCBtaXQgZWluZW0gZGVyIEZvcm11bGFyZSB2ZXJ3ZW5kZXQuIERpZXNlciBQYXJhbWV0ZXIgbGVndCBmZXN0LCBvYiBkaWUgRm9ybXVsYXJlIGlubGluZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGxlbiwgYW5zdGF0dCBkYXNzIGRpZSBFcmdlYm5pc2F1c2dhYmUgbmFjaCDDnGJlcm1pdHRsdW5nIGRlcyBGb3JtdWxhcnMgZGVuIFN0YW5kYXJkLUluaGFsdHNibG9jayBlcnNldHp0Lic7CiRsYW5nWyd0aXRsZV9yZXNldF9zZXNzaW9uJ10gPSAnV2FybnVuZyB2b3IgZGVtIEFibGF1ZiBkZXIgQW5tZWxkZS1TZXNzaW9uJzsKJGxhbmdbJ21zZ19yZXNldF9zZXNzaW9uJ10gPSAnRGllIFplaXQgZsO8ciBJaHJlIGFrdHVlbGxlIEFubWVsZHVuZyBhdWYgZGllc2VyIFdlYnNlaXRlIGlzdCBhYmdlbGF1ZmVuLiBCaXR0ZSBrbGlja2VuIFNpZSBhdWYg4oCeT0vigJwsIHVtIHp1IGJlc3TDpHRpZ2VuLCBkYXNzIFNpZSBub2NoIGF1ZiBkaWVzZXIgV2Vic2VpdGUgYWt0aXYgc2luZC4nOwokbGFuZ1snb2snXSA9ICdPSyc7CiRsYW5nWydyZXNldHNlc3Npb25fdGVtcGxhdGUnXSA9ICdTZXNzaW9uLVZvcmxhZ2UgenVyw7xja3NldHplbic7CiRsYW5nWydpbmZvX25hbWUnXSA9ICdEaWVzIGlzdCBkZXIgRmVsZG5hbWUsIGRlciBpbiBTbWFydHkgZsO8ciBkaWUgQWRyZXNzaWVydW5nIHZlcndlbmRldCB3aXJkLiBFciBkYXJmIG51ciBhbHBoYW51bWVyaXNjaGUgWmVpY2hlbiB1bmQgVW50ZXJzdHJpY2hlIChfKSBlbnRoYWx0ZW4uJzsKJGxhbmdbJ3Zpc2l0b3JzX3RhYiddID0gJ0Jlc3VjaGVyJzsKJGxhbmdbJ2ZldV9ncm91cHNfcHJvbXB0J10gPSAnV8OkaGxlbiBzaWUgZWluZSBvZGVyIG1laHJlcmUgRkVVLUJlbnV0emVyZ3J1cHBlbiwgZGVuZW4gZXMgZXJsYXVidCBpc3QsIGRpZXNlIFNlaXRlIGFuenVzZWhlbic7CiRsYW5nWydlcnJvcl9tdXN0c2VsZWN0X2dyb3VwJ10gPSAnRXMgbXVzcyBlaW5lIEdydXBwZSBhdXNnZXfDpGhsdCB3ZXJkZW4nOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnSWhyZSBBdXN3YWhsJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICdTdGFydGphaHInOwokbGFuZ1snZW5kX3llYXInXSA9ICdFbmRqYWhyJzsKJGxhbmdbJ2RhdGUnXSA9ICdEYXR1bSc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdHcsO2w59lIGRlcyBWb3JzY2hhdWJpbGQnOwokbGFuZ1snT25VcGRhdGVHcm91cCddID0gJ0F1c2bDvGhyZW4sIHdlbm4gZGllIEJlbnV0emVyZ3J1cHBlIGdlw6RuZGVydCB3dXJkZSc7CiRsYW5nWydlcnJvcl90b29tYW55c2VsZWN0ZWQnXSA9ICdGw7xyIGRpZXNlIEFrdGlvbiB3dXJkZW4genUgdmllbGUgQmVudXR6ZXIgYXVzZ2V3w6RobHQuIEJpdHRlIGJlc2NocsOkbmtlbiBTaWUgc2ljaCBhdWYgMjUwIChvZGVyIHdlbmlnZXIpLic7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9zZWxlY3RlZCddID0gJ1dvbGxlbiBTaWUgd2lya2xpY2ggZGllIGF1c2dld8OkaGx0ZW4gQmVudXR6ZXIgbMO2c2NoZW4/JzsKJGxhbmdbJ2RlbGV0ZV9zZWxlY3RlZCddID0gJ0F1c2dld8OkaGx0ZSBCZW51dHplciBsw7ZzY2hlbic7CiRsYW5nWydwcm9tcHRfcmFuZG9tdXNlcm5hbWUnXSA9ICdFaW5lbiB6dWbDpGxsaWdlbiBCZW51dHplcm5hbWVuIGVyemV1Z2VuLCB3ZW5uIGVpbiBuZXVlciBCZW51dHplciBoaW56dWdlZsO8Z3Qgd2lyZCc7CiRsYW5nWydtb250aHMnXSA9ICdNb25hdGUnOwokbGFuZ1sncHJvbXB0X2V4cGlyZWFnZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBaZWl0IGJpcyB6dW0gVmVyZmFsbCBkZXMgQmVudXR6ZXJrb250b3MnOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnQmVuYWNocmljaHRpZ3VuZ3MtRWluc3RlbGx1bmdlbic7CiRsYW5nWydwcm9wZXJ0eV9zZXR0aW5ncyddID0gJ0VpZ2Vuc2NoYWZ0cy1FaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3JlZGlyZWN0aW9uX3NldHRpbmdzJ10gPSAnV2VpdGVybGVpdHVuZ3MtRWluc3RlbGx1bmdlbic7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnQWxsZ2VtZWluZSBFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3Nlc3Npb25fc2V0dGluZ3MnXSA9ICdFaW5zdGVsbHVuZ2VuIGbDvHIgU2Vzc2lvbnMgdW5kIENvb2tpZXMnOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdGZWxkLUVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snZXJyb3JfbG9zdHVuX25vbnJlcXVpcmVkJ10gPSAnRGllIEtlbm56ZWljaG51bmcgZsO8ciB2ZXJnZXNzZW5lIEJlbnV0emVybmFtZW4ga2FubiBudXIgYmVpIFBmbGljaHRmZWxkZXJuIHZlcndlbmRldCB3ZXJkZW4uJzsKJGxhbmdbJ3Byb3BfdGV4dGFyZWFfd3lzaXd5ZyddID0gJ0luIGRpZXNlbSBUZXh0YmVyZWljaCBkaWUgVmVyd2VuZHVuZyBlaW5lcyBXWVNJV1lHLUVkaXRvcnMgZXJsYXViZW4nOwokbGFuZ1snZWRpdGluZ191c2VyJ10gPSAnQmVudXR6ZXItQmVhcmJlaXR1bmcnOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdLZWluZSBJbmxpbmUtRm9ybXVsYXJlIHZlcndlbmRlbic7CiRsYW5nWydpbmZvX2xvc3R1biddID0gJ0tsaWNrZW4gU2llIGhpZXIsIHdlbm4gU2llIHNpY2ggbmljaHQgbWVociBhbiBkaWUgRGV0YWlscyBJaHJlciBBbm1lbGR1bmcgZXJpbm5lcm4ga8O2bm5lbic7CiRsYW5nWydpbmZvX2ZvcmdvdHB3J10gPSAnS2xpY2tlbiBTaWUgaGllciwgd2VubiBTaWUgc2ljaCBuaWNodCBtZWhyIGFuIElociBQYXNzd29ydCBlcmlubmVybiBrw7ZubmVuJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnWnVtIEFibWVsZGVuIGhpZXIga2xpY2tlbic7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnS2xpY2tlbiBTaWUgaGllciwgdW0gSWhyIFBhc3N3b3J0IG9kZXIgYW5kZXJlIEluZm9ybWF0aW9uZW4genUgw6RuZGVybi4nOwokbGFuZ1sndmlld3VzZXJfdGVtcGxhdGUnXSA9ICdWb3JsYWdlIGbDvHIgZGllIEJlbnV0emVyYW56ZWlnZSc7CiRsYW5nWydldmVudCddID0gJ0VyZWlnbmlzJzsKJGxhbmdbJ2ZldV9ldmVudF9ub3RpZmljYXRpb24nXSA9ICdGRVUtRXJlaWduaXNiZW5hY2hyaWNodGlndW5nZW4nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnRS1NYWlsLUFkcmVzc2UgZsO8ciBCZW5hY2hyaWNodGlndW5nZW4nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGbDvHIgRS1NYWlsLUJlbmFjaHJpY2h0aWd1bmdlbic7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICdCZXRyZWZmIGRlciBFLk1haWwtQmVuYWNocmljaHRpZ3VuZyc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9ucyddID0gJ0UtTWFpbC1CZW5hY2hyaWNodGlndW5nZW4nOwokbGFuZ1snT25Mb2dpbiddID0gJ0F1c2bDvGhyZW4sIHdlbm4gc2ljaCBlaW4gQmVudXR6ZXIgYW5tZWxkZXQnOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdBdXNmw7xocmVuLCB3ZW5uIHNpY2ggZWluIEJlbnV0emVyIGFibWVsZGV0JzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ0F1c2bDvGhyZW4sIHdlbm4gZWluZSBCZW51dHplci1TZXNzaW9uIGFibMOkdWZ0JzsKJGxhbmdbJ09uQ3JlYXRlVXNlciddID0gJ0F1c2bDvGhyZW4sIHdlbm4gZWluIEJlbnV0emVya29udG8gbmV1IGVyc3RlbGx0IHd1cmRlJzsKJGxhbmdbJ09uRGVsZXRlVXNlciddID0gJ0F1c2bDvGhyZW4sIHdlbm4gZWluIEJlbnV0emVya29udG8gZ2Vsw7ZzY2h0IHd1cmRlJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ0F1c2bDvGhyZW4sIHdlbm4gQmVudXR6ZXJkYXRlbiBha3R1YWxpc2llcnQgd3VyZGVuJzsKJGxhbmdbJ09uQ3JlYXRlR3JvdXAnXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGVpbmUgQmVudXR6ZXJncnVwcGUgbmV1IGVyc3RlbGx0IHd1cmRlJzsKJGxhbmdbJ09uRGVsZXRlR3JvdXAnXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGVpbmUgQmVudXR6ZXJncnVwcGUgZ2Vsw7ZzY2h0IHd1cmRlJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcHJlbXNnJ10gPSAnRGllIERhdGVuIHp1bSBBdWZmaW5kZW4gdmVybG9yZW5lciBQYXNzd8O2cnRlciB3dXJkZW4gdm9sbHN0w6RuZGlnIGVpbmdlZ2ViZW4uIFdpciBoYWJlbiBlaW5lbiBCZW51dHplcm5hbWVuIGdlZnVuZGVuLCBkZXIgZGVuIHZvbiBJaG5lbiBlaW5nZWdlYmVuZW4gRGV0YWlscyBlbnRzcHJpY2h0Lic7CiRsYW5nWyd5b3VyX3VzZXJuYW1lX2lzJ10gPSAnSWhyIEJlbnV0emVybmFtZSBpc3QnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAnV2lyIGVtcGZlaGxlbiBJaG5lbiwgZGllc2UgSW5mb3JtYXRpb24gYW4gc2ljaGVyZXIgU3RlbGxlIGF1Znp1YmV3YWhyZW4uJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdTZWl0ZW4tSUQvLUFsaWFzIGRlciBTZWl0ZSwgYXVmIGRpZSBuYWNoIGRlbSDDhG5kZXJuIGRlciBFaW5zdGVsbHVuZ2VuIGdlc3BydW5nZW4gd2VyZGVuIHNvbGwnOwokbGFuZ1sncHJvbXB0X2FmdGVyX3ZlcmlmeV9jb2RlJ10gPSAnU2VpdGVuLUlELy1BbGlhcyBkZXIgU2VpdGUsIGF1ZiBkaWUgbmFjaCBkZXIgQ29kZS1QcsO8ZnVuZyBnZXNwcnVuZ2VuIHdlcmRlbiBzb2xsIConOwokbGFuZ1snbG9zdHVuX2RldGFpbHNfdGVtcGxhdGUnXSA9ICdEZXRhaWxzLVRlbXBsYXRlIGJlaSB2ZXJnZXNzZW5lbSBCZW51dHplcm5hbWVuJzsKJGxhbmdbJ2xvc3R1bl9jb25maXJtX3RlbXBsYXRlJ10gPSAnQmVzdMOkdGlndW5ncy1UZW1wbGF0ZSBiZWkgdmVyZ2Vzc2VuZW0gQmVudXR6ZXJuYW1lbic7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0ZFSExFUjogTWVociBhbHMgZWluIEJlbnV0emVyLUtvbnRvIGVudHNwcmljaHQgZGVuIGdlc3VjaHRlbiBFaWdlbnNjaGFmdGVuJzsKJGxhbmdbJ2Vycm9yX2NhbnRmaW5kdXNlciddID0gJ0ZFSExFUjogS29ubnRlIGRlbiBnZXN1Y2h0ZW4gQmVudXR6ZXIgbmljaHQgZmluZGVuJzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdGRUhMRVI6IEtvbm50ZSBrZWluZSBHcnVwcGUgbWl0IGRpZXNlbSBOYW1lbiBmaW5kZW4nOwokbGFuZ1sncmVhZG9ubHknXSA9ICdOdXIgbGVzZW4nOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ0tsYXNzZSB6dXIgQmVhcmJlaXR1bmcgdm9uIEJlbnV0emVybic7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdEdXJjaCBkZW4gQWRtaW5pc3RyYXRvciBhYmdlbWVsZGV0JzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdOdXIgZGllIGFuZ2VtZWxkZXRlbiBCZW51dHplciBhbnplaWdlbic7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnRGllc2VuIEJlbnV0emVyIGFibWVsZGVuJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ0JlbnV0emVyZWlnZW5zY2hhZnRlbic7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0JlbnV0emVyLUdlc2NoaWNodGUnOwokbGFuZ1snZXhwb3J0J10gPSAnRXhwb3J0aWVyZW4nOwokbGFuZ1snY2xlYXInXSA9ICdMw7ZzY2hlbic7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknXSA9ICdCZW51dHplcmdlc2NoaWNodGUgaW4gZWluZSBBU0NJSS1EYXRlaSBleHBvcnRpZXJlbic7CiRsYW5nWydwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeSddID0gJ0RhdGVuc8OkdHplIGRlciBCZW51dHplcmdlc2NoaWNodGUgbMO2c2NoZW4sIGRpZSBtaW5kZXN0ZW5zJzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJ0hhYmVuIFNpZSBJaHJlIFp1Z2FuZ3NkYXRlbiB2ZXJnZXNzZW4/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0dydXBwZW4tRGVmaW5pdGlvbiAodW5kIEVpZ2Vuc2NoYWZ0ZW4pIGFscyBYTUwtRGF0ZWkgZXhwb3J0aWVyZW4nOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZSddID0gJ1ZlcndhbHR1bmcgZGVyIEJlbnV0emVyZ2VzY2hpY2h0ZW4nOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWluJzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ3Zvbic7CiRsYW5nWydkYXRlX2FsbHJlY29yZHMnXSA9ICcqKiBLZWluZSBCZXNjaHLDpG5rdW5nICoqJzsKJGxhbmdbJ2RhdGVfb25laG91cm9sZCddID0gJ0VpbmUgU3R1bmRlIGFsdCc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICdTZWNocyBTdHVuZGVuIGFsdCc7CiRsYW5nWydkYXRlX3R3ZWx2ZWhvdXJvbGQnXSA9ICdad8O2bGYgU3R1bmRlbiBhbHQnOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICdFaW5lbiBUYWcgYWx0JzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJ0VpbmUgV29jaGUgYWx0JzsKJGxhbmdbJ2RhdGVfdHdvd2Vla3NvbGQnXSA9ICdad2VpIFdvY2hlbiBhbHQnOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJ0VpbmVuIE1vbmF0IGFsdCc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnRHJlaSBNb25hdGUgYWx0JzsKJGxhbmdbJ2RhdGVfc2l4bW9udGhzb2xkJ10gPSAnU2VjaHMgTW9uYXRlIGFsdCc7CiRsYW5nWydkYXRlX29uZXllYXJvbGQnXSA9ICdFaW4gSmFociBhbHQnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnR3J1cHBpZXJ1bmcgdW5kIFNvcnRpZXJ1bmcnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ01pdCBkZW4gdm9yZ2VnZWJlbmVuIEtyaXRlcmllbiDDvGJlcmVpbnN0aW1tZW5kZSBEYXRlbnPDpHR6ZSc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfZGVzYyddID0gJ05hY2ggQmVudXR6ZXJuYW1lbiBhYnN0ZWlnZW5kJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdOYWNoIEJlbnV0emVybmFtZW4gYXVmc3RlaWdlbmQnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfZGVzYyddID0gJ05hY2ggRGF0dW0gYWJzdGVpZ2VuZCc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdOYWNoIERhdHVtIGF1ZnN0ZWlnZW5kJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ05hY2ggRXJlaWduaXN0eXAgYWJzdGVpZ2VuZCc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2FzYyddID0gJ05hY2ggRXJlaWduaXN0eXAgYXVmc3RlaWdlbmQnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19kZXNjJ10gPSAnTmFjaCBJUC1BZHJlc3NlIGFic3RlaWdlbmQnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19hc2MnXSA9ICdOYWNoIElQLUFkcmVzc2UgYXVmc3RlaWdlbmQnOwokbGFuZ1snaW5mb19ub2hpc3RvcnlkZXRlY3RlZCddID0gJ0tlaW5lIEdlc2NoaWNodGUgdm9yaGFuZGVuJzsKJGxhbmdbJ3Jlc2V0J10gPSAnWnVyw7xja3NldHplbic7CiRsYW5nWydwcm9tcHRfZ3JvdXBfaXAnXSA9ICdHcnVwcGVuIG5hY2ggSVAtQWRyZXNzZSc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0VyZWlnbmlzdHlwZW4tRmlsdGVyJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ1plaWd0IG51ciBFcmVpZ25pc3NlIGFuLCBkaWUgZ2VyaW5nZXIgc2luZCBhbHM6JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdTZWl0ZW5saW1pdCc7CiRsYW5nWydmb3InXSA9ICdmw7xyJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAnQmVyaWNodCB6dXIgQmVudXR6ZXJnZXNjaGljaHRlJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdVbmJla2FubnQnOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0lQLUFkcmVzc2UnOwokbGFuZ1sncHJvbXB0X2V2ZW50dHlwZSddID0gJ0VyZWlnbmlzLVR5cCc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdadXLDvGNrJzsKJGxhbmdbJ2ltcG9ydF9jb21wbGV0ZV9tc2cnXSA9ICdEYXRlbmltcG9ydCBrb21wbGV0dCc7CiRsYW5nWydwcm9tcHRfbGluZXNwcm9jZXNzZWQnXSA9ICdaZWlsZW4gdmVyYXJiZWl0ZXQnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0ZlaGxlciBhdWZnZXRyZXRlbic7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnRGF0ZW5zw6R0emUgaGluenVnZWbDvGd0JzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnXSA9ICdLZWluZSBFaWdlbnNjaGFmdGVuIGbDvHIgZGllIEdydXBwZSAlcyBnZWZ1bmRlbic7CiRsYW5nWydlcnJvcl9ub3Jlc3BvbnNlZnJvbXNlcnZlciddID0gJ0tlaW5lIEFudHdvcnQgdm9tIFNNVFAtU2VydmVyIGVyaGFsdGVuJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ0RpZSBEYXRlaSAoJXMpIGtvbm50ZSBuaWNodCBnZWZ1bmRlbiB3ZXJkZW4nOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ1VuZ8O8bHRpZ2VyIFdlcnQgZsO8ciBkYXMgTGlzdGVuZmVsZCBvZGVyIGRhcyBGZWxkIHp1ciBNZWhyZmFjaGF1c3dhaGwgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdEYXMgRmVsZCAlcyDDvGJlcnNjaHJlaXRldCBkaWUgbWF4aW1hbCBtw7ZnbGljaGUgTMOkbmdlJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGluc2VydHVzZXInXSA9ICdFcyBnYWIgZWluIFByb2JsZW0gYmVpbSBFcnN0ZWxsZW4gZGVzIEJlbnV0emVycyDigJ4lc+KAnC4nOwokbGFuZ1snZXJyb3JfaW1wb3J0dXBkYXRldXNlciddID0gJ0VzIGdhYiBlaW4gUHJvYmxlbSBiZWltIEFrdHVhbGlzaWVyZW4gZGVzIEJlbnV0emVycyDigJ4lc+KAnC4nOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnQtRmVobGVyIChaZWlsZSAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdLb25udGUgZGllIEVpZ2Vuc2NoYWZ0c2RlZmluaXRpb24gbmljaHQgYWJydWZlbiAoaW50ZXJuZXIgRmVobGVyKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ2luZm8nXSA9ICdQcm9ibGVtIGJlaW0gRWluc3RlbGxlbiBkZXIgQmVudXR6ZXJpbmZvcm1hdGlvbic7CiRsYW5nWydlcnJvcl9pbXBvcnRyZXF1aXJlZGZpZWxkJ10gPSAnS29ubnRlIGtlaW5lIFNwYWx0ZSBmaW5kZW4sIGRpZSBtaXQgZGVtIGVyZm9yZGVybGljaGVuIEZlbGQgJXMgw7xiZXJlaW5zdGltbXQnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3BlcnRpZXMnXSA9ICdLb25udGUgZsO8ciBkaWUgZmVzdGdlbGVndGUgR3J1cHBlIGtlaW5lIEVpZ2Vuc2NoYWZ0ZW4gZmluZGVuJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVmb3JtYXQnXSA9ICdEaWUgenUgaW1wb3J0aWVyZW5kZW4gRGF0ZWkgaGF0IGRhcyBmYWxzY2hlIEZvcm1hdCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdG9wZW5maWxlJ10gPSAnS29ubnRlIGRpZSBEYXRlaSBuaWNodCDDtmZmbmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRkZXN0Z3JvdXAnXSA9ICdCZW51dHplciBpbiBkaWVzZSBHcnVwcGUgaW1wb3J0aWVyZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnQ1NWLURhdGVpIGF1c3fDpGhsZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdYTUwtRGF0ZWkgYXVzd8OkaGxlbic7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcnMnXSA9ICdCZW51dHplciBleHBvcnRpZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdCZW51dHplciBpbXBvcnRpZXJlbic7CiRsYW5nWydwcm9tcHRfY2xlYXInXSA9ICdMw7ZzY2hlbic7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ1ppZWxwZmFkIGbDvHIgZGFzIEJpbGQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ191cGxvYWQnXSA9ICdFcyBpc3QgZWluIFByb2JsZW0gbWl0IGVpbmVyIGZlaGxlbmRlbiwgYWJlciBlcmZvcmRlcmxpY2hlbiAoaG9jaHp1bGFkZW5kZW4pIERhdGVpIGF1ZmdldHJldGVuJzsKJGxhbmdbJ2Vycm9yX2JhZF94bWwnXSA9ICdLb25udGUgZGllIGFuZ2VnZWJlbmUgWE1MLURhdGVpIG5pY2h0IHZlcmFyYmVpdGVuJzsKJGxhbmdbJ2Vycm9yX25vdGVtcHR5Z3JvdXAnXSA9ICdEaWUgR3J1cHBlIGtvbm50ZSBuaWNodCBnZWzDtnNjaHQgd2VyZGVuLCBkYSBzaWUgbm9jaCBCZW51dHplciBlbnRow6RsdC4nOwokbGFuZ1snZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucyddID0gJ0RpZXNlciBCZW51dHplciBpc3QgYmVyZWl0cyBhbmdlbWVsZGV0JzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ0RlciBUZXh0IGF1cyBkZW0gQmlsZCB3dXJkZSBuaWNodCByaWNodGlnIGVpbmdlZ2ViZW4nOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ0RlbiBCZW51dHplcm4gZXJsYXViZW4sIHNpY2ggbWVociBhbHMgZWlubWFsIGFuenVtZWxkZW4nOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ05hbWVuc2Vyd2VpdGVydW5nZW4gZsO8ciBCaWxkZXIsIGRpZSBkZXIgQmVudXR6ZXIgaG9jaGxhZGVuIGRhcmYnOwokbGFuZ1snZXZlbnRfaGVscF9PblJlZnJlc2hVc2VyJ10gPSAnPGgzPk9uUmVmcmVzaFVzZXI8L2gzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gdGhlIHVzZXIgc2Vzc2lvbiBpcyByZWZyZXNoZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCiAgPGxpPjxlbT5pZDwvZW0+IC0gVGhlIFVzZXIgaWQ8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QXVzZsO8aHJlbiwgd2VubiBlaW4gQmVudXR6ZXJrb250byBnZWzDtnNjaHQgd3VyZGU8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIGRlciBCZW51dHplcm5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gZGllIEJlbnV0emVyLUlEPC9saT4NCjxsaT48ZW0+cHJvcHM8L2VtPiAtIEVpbiBIYXNoLCBkZXIgbWl0IGRlbiBFaWdlbnNjaGFmdGVuIGRlcyBCZW51dHplcnMgZ2Vmw7xsbHQgd3VyZGU8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZVVzZXInXSA9ICc8aDM+T25DcmVhdGVVc2VyPGgzPg0KPHA+QXVzZsO8aHJlbiwgd2VubiBlaW4gQmVudXR6ZXJrb250byBuZXUgZXJzdGVsbHQgd3VyZGU8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIGRlciBCZW51dHplcm5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gZGllIEJlbnV0emVyLUlEPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPkF1c2bDvGhyZW4sIHdlbm4gQmVudXR6ZXJkYXRlbiBha3R1YWxpc2llcnQgd3VyZGVuIChlbnR3ZWRlciBkdXJjaCBpaG4gc2VsYnN0IG9kZXIgZHVyY2ggZGVuIEFkbWluaXN0cmF0b3IpPC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIGRlciBCZW51dHplcm5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gZGllIEJlbnV0emVyLUlEPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+QXVzZsO8aHJlbiwgd2VubiBlaW5lIEJlbnV0emVyZ3J1cHBlIG5ldSBlcnN0ZWxsdCB3dXJkZTwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBkZXIgQmVudXR6ZXJncnVwcGVuYW1lPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIGRpZSBCZXNjaHJlaWJ1bmcgZGVyIEJlbnV0emVyZ3J1cHBlPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIGRpZSBCZW51dHplcmdydXBwZW4tSUQ8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5BdXNmw7xocmVuLCB3ZW5uIGVpbmUgQmVudXR6ZXJncnVwcGUgZ2Vsw7ZzY2h0IHd1cmRlPC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIGRlciBCZW51dHplcmdydXBwZW5uYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIGRpZSBCZW51dHplcmdydXBwZW4tSUQ8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5BdXNmw7xocmVuLCB3ZW5uIHNpY2ggZWluIEJlbnV0emVyIGFubWVsZGV0PC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPmlkPC9lbT4gLSBkaWUgSUQgZGVzIGFuZ2VtZWxkZXRlbiBCZW51dHplcnM8L2xpPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gZGVyIE5hbWUgZGVzIGFuZ2VtZWxkZXRlbiBCZW51dHplcnM8L2xpPg0KPGxpPjxlbT5pcDwvZW0+IC0gZGllIElQLUFkcmVzc2UgZGVzIENsaWVudHM8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxoMz5PbkxvZ291dDxoMz4NCjxwPkF1c2bDvGhyZW4sIHdlbm4gc2ljaCBlaW4gQmVudXR6ZXIgYWJtZWxkZXQ8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIGRlciBOYW1lIGRlcyBhYmdlbWVsZGV0ZW4gQmVudXR6ZXJzPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIGRpZSBCZW51dHplci1JRDwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRXhwaXJlVXNlciddID0gJzxoMz5PblNlc3Npb25FeHBpcnk8L2gzPg0KPHA+QXVzZsO8aHJlbiwgd2VubiBlaW5lIEJlbnV0emVyLVNlc3Npb24gYWJsw6R1ZnQ8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIGRlciBOYW1lIGRlcyBCZW51dHplcnMgZGVyIGFiZ2VsYXVmZW5lbiBTaXR6dW5nPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIGRpZSBCZW51dHplci1JRCBkZXIgYWJnZWxhdWZlbmVuIFNpdHp1bmc8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ2luJ10gPSAnQXVzZsO8aHJlbiwgd2VubiBzaWNoIGVpbiBCZW51dHplciBpbSBTeXN0ZW0gYW5tZWxkZXQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ0F1c2bDvGhyZW4sIHdlbm4gc2ljaCBlaW4gQmVudXR6ZXIgaW0gU3lzdGVtIGFibWVsZGV0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnQXVzZsO8aHJlbiwgd2VubiBlaW5lIEJlbnV0emVyLVNpdHp1bmcgYWJsw6R1ZnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZVVzZXInXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGVpbiBuZXVlciBCZW51dHplciBlcnN0ZWxsdCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uUmVmcmVzaFVzZXInXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGRpZSBCZW51dHplci1TaXR6dW5nIGVybmV1ZXJ0IHdpcmQnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGRpZSBJbmZvcm1hdGlvbmVuIHp1IGVpbmVtIEJlbnV0emVyIGFrdHVhbGlzaWVydCB3dXJkZW4nOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGVpbiBCZW51dHplcmtvbnRvIGdlbMO2c2NodCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlR3JvdXAnXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGVpbmUgQmVudXR6ZXJncnVwcGUgZXJzdGVsbHQgd3VyZGUnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZUdyb3VwJ10gPSAnQXVzZsO8aHJlbiwgd2VubiBlaW5lIEJlbnV0emVyZ3J1cHBlIGFrdHVhbGlzaWVydCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlR3JvdXAnXSA9ICdBdXNmw7xocmVuLCB3ZW5uIGVpbmUgQmVudXR6ZXJncnVwcGUgZ2Vsw7ZzY2h0IHd1cmRlJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdBZG1pbmlzdHJhdGlvbnMtR3J1cHBlJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogRGllIGZvbGdlbmRlbiBGZWxkZXIgc2luZCBrb21wbGV0dGUgU21hcnR5LVRlbXBsYXRlcy48YnIgLz5OZWJlbiBkZW4gYW5kZXJlbiwgYmVyZWl0cyBleGlzdGllcmVuZGVuIFNtYXJ0eS1WYXJpYWJsZW4gc3RlaGVuIElobmVuIGpldHp0IGRpZSBWYXJpYWJsZW4geyR1c2VybmFtZX0gdW5kIHskZ3JvdXB9IHp1ciBWZXJmw7xndW5nLiA8ZW0+KERpZSBWYXJpYWJsZSB7JGdyb3VwfSBlbnRow6RsdCBkaWUgZXJzdGUgQmVudXR6ZXJncnVwcGUsIGRlciBkZXIgQmVudXR6ZXIgYW5nZWjDtnJ0Lik8L2VtPi4nOwokbGFuZ1snaW5mb19hZG1pbl9wYXNzd29yZCddID0gJ0JlYXJiZWl0ZW4gU2llIGRpZXNlcyBGZWxkLCB1bSBkYXMgUGFzc3dvcnQgZGVzIEJlbnV0emVycyB6dXLDvGNrenVzZXR6ZW4uJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdCZWFyYmVpdGVuIFNpZSBkaWVzZXMgRmVsZCwgdW0gZGFzIFBhc3N3b3J0IGRlcyBCZW51dHplcnMgenVyw7xja3p1c2V0emVuLic7CiRsYW5nWydlcnJvcl91c2VybmFtZV9leGlzdHMnXSA9ICdFaW4gQmVudXR6ZXIgbWl0IGRpZXNlbSBCZW51dHplcm5hbWVuIGV4aXN0aWVydCBiZXJlaXRzLic7CiRsYW5nWydub2NzdnJlc3VsdHMnXSA9ICdWb20gQ1NWLUV4cG9ydCB3dXJkZW4ga2VpbmUgRGF0ZW4genVyw7xja2dlZ2ViZW4uJzsKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ0zDpG5nZSBkZXMgQmVudXR6ZXJuYW1lbi1GZWxkZXMnOwokbGFuZ1sncHJvbXB0X3B3ZmxkbGVuJ10gPSAnTMOkbmdlIGRlcyBQYXNzd29ydC1GZWxkZXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ0JlaW0gVW50ZXItL8OcYmVyc2NocmVpdGVuIGRpZXNlciBMw6RuZ2UgaXN0IGRhcyBQYXNzd29ydCB1bmfDvGx0aWcuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZWxlbmd0aHMnXSA9ICdCZWltIFVudGVyLS/DnGJlcnNjaHJlaXRlbiBkaWVzZXIgTMOkbmdlIGlzdCBkZXIgQmVudXR6ZXJuYW1lIHVuZ8O8bHRpZy4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ1VuZ8O8bHRpZ2UgRS1NYWlsLUFkcmVzc2UnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdGw7xyIGRpZXNlcyBCZW51dHplcmtvbnRvIHd1cmRlIGtlaW5lIEUtTWFpbC1BZHJlc3NlIGdlZnVuZGVuLic7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2VldHRpbmdpbmZvJ10gPSAnUHJvYmxlbSBiZWltIFNldHplbiBkZXIgQmVudXR6ZXJpbmZvcm1hdGlvbmVuJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ1Byb2JsZW0gYmVpbSBTZXR6ZW4gZGVyIEVpZ2Vuc2NoYWZ0ZW4nOwokbGFuZ1sndXNlcl9hZGRlZCddID0gJ0JlbnV0emVyICVzID0gJXMgd3VyZGUgaGluenVnZWbDvGd0JzsKJGxhbmdbJ3VzZXJfZGVsZXRlZCddID0gJ0JlbnV0emVyIG1pdCBkZXIgdWlkPSVzIHd1cmRlIGdlbMO2c2NodCc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ0VpZ2Vuc2NoYWZ0JzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdXZXJ0IChyZWd1bMOkcmVyIEF1c2RydWNrKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ1dhcm51bmc6IERpZXNlIEZlbGRlciBiZWVpbmZsdXNzZW4gZGllIEdyw7bDn2UgZGVyIEVpbmdhYmVmZWxkZXIgaW4gRm9ybXVsYXJlbi4gRGllIFZlcnJpbmdlcnVuZyBkaWVzZXIgWmFobCBpc3QgZGFoZXIgYXVmIGVpbmVyIGJlcmVpdHMgZXhpc3RpZXJlbmRlbiBTZWl0ZSBuaWNodCByYXRzYW0uJzsKJGxhbmdbJ2NvbmZpcm1fc3VibWl0cHJlZnMnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIGRpZSBNb2R1bGVpbnN0ZWxsdW5nZW4gw6RuZGVybj8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0RpZXNlIEUtTWFpbC1BZHJlc3NlIGlzdCBiZXJlaXRzIGluIFZlcndlbmR1bmcuJzsKJGxhbmdbJ3Byb21wdF91c2Vjb29raWVzdG9yZW1lbWJlciddID0gJ0Nvb2tpZXMgZsO8ciBkaWUgU3BlaWNoZXJ1bmcgZGVyIEFubWVsZGVkZXRhaWxzIHZlcndlbmRlbic7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ0RlciBOYW1lIGRlcyBDb29raWVzJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnRS1NYWlsLUFkcmVzc2R1cGxpa2F0ZSBlcmxhdWJlbic7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdEaWUgRS1NYWlsLUFkcmVzc2Ugc29sbCBkZXIgQmVudXR6ZXJuYW1lIHNlaW4nOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnRXMgd2lyZCB2ZXJzdWNodCwgZGllIGVyZm9sZ3JlaWNoZSBBbm1lbGR1bmcgw7xiZXIgZWluZW4gQ29va2llIGF1ZiBkZW0gUmVjaG5lciB6dSBzcGVpY2hlcm4gPGVtPihkZXIgQ29va2llIHdpcmQgYmVpIGVudHNwcmVjaGVuZGVuIEFrdGl2aXTDpHRlbiBhdWYgZGVyIFdlYnNlaXRlIHp1csO8Y2sgZ2VzZXR6dCk8L2VtPic7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcoZXJsYXVidCBtZWhyZXJlbiBCZW51dHplcm4gZGllIE51dHp1bmcgZGVyIGdsZWljaGVuIEUtTWFpbC1BZHJlc3NlKSc7CiRsYW5nWydpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnKGRpZSBFLU1haWwtQWRyZXNzZSBkZXMgQmVudXR6ZXJzIGlzdCBzZWluIEJlbnV0emVybmFtZSAtLSB2ZXJ3ZW5kZW4gU2llIGRpZXNlIEVpbnN0ZWxsdW5nIE5JRU1BTFMgenVzYW1tZW4gbWl0ICJFLU1haWwtQWRyZXNzZHVwbGlrYXRlIGVybGF1YmVuIiEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnRXJuZXV0ZSBBbmZyYWdlICJQYXNzd29ydCB2ZXJnZXNzZW4iIGVybGF1YmVuPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoZXJsYXVidCBlaW5lbSBCZW51dHplciBkaWUgZXJuZXV0ZSBBbmZyYWdlIGF1ZiBkYXMgWnVyw7xja3NldHplbiBkZXMgUGFzc3dvcnRlcywgYXVjaCB3ZW5uIGVyIGF1ZiBlaW5lIHZvcmFuZ2VnYW5nZW5lIFp1csO8Y2tzZXR6dW5nIG5pY2h0IHJlYWdpZXJ0IGhhdCknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdGcm9udGVuZFVzZXItc3BlemlmaXNjaGUgQmVyZWNodGlndW5nZW4gdmVyd2VuZGVuPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFsZXJ3ZWlzZSBlbnRzcHJlY2hlbiBkaWUgRkVVc2VycyBCZXJlY2h0aWd1bmdlbiBkZW5lbiBhdXMgZGVyIEFkbWluaXN0cmF0aW9uIHdpZSBldHdhIEJlbnV0emVyIGhpbnp1ZsO8Z2VuLCBHcnVwcGUgaGluenVmw7xnZW4gdXN3LiBXZW5uIFNpZSBqZWRvY2ggZGllc2UgT3B0aW9uIGF1c3fDpGhsZW4sIHdlcmRlbiBmw7xyIGRpZSBGcm9udGVuZFVzZXJzLUJlbnV0emVya29udGVuIHNlcGFyYXRlIEJlcmVjaHRpZ3VuZ2VuIGdlc2V0enQuKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnS29ubnRlIGRpZSBob2NoZ2VsYWRlbmUgRGF0ZWkgbmljaHQgZmluZGVuIChpbnRlcm5lciBGZWhsZXIpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJ10gPSAnTWl0IGRlciBob2NoZ2VsYWRlbmVuIERhdGVpIGlzdCBlaW4gUHJvYmxlbSBhdWZnZXRyZXRlbi4gQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBub2NoIGVpbm1hbC4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnU2llIGhhYmVuIGtlaW5lbiBCZW51dHplcm5hbWVuIGVpbmdlZ2ViZW4uJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdlbWFpbCddID0gJ1NpZSBoYWJlbiBJaHJlIEUtTWFpbC1BZHJlc3NlIG5pY2h0IGVpbmdlZ2ViZW4hJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ1NpZSBoYWJlbiBrZWluIFBhc3N3b3J0IGVpbmdlZ2ViZW4uJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dvdXQnXSA9ICdGcm9udGVuZFVzZXIg4oCTIEFibWVsZHVuZyc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nZ2VkaW4nXSA9ICdGcm9udGVuZFVzZXIg4oCTIEFubWVsZHVuZyc7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQiPjxiPkFDSFRVTkc8L2I+IFdlbm4gU2llIGJlcmVpdHMgZXhpc3RpZXJlbmRlIEVpZ2Vuc2NoYWZ0ZW4gw6RuZGVybiwgZGllIHNjaG9uIEdydXBwZW4genVnZW9yZG5ldCBzaW5kLCBrYW5uIElocmUgU2VpdGUgbcO2Z2xpY2hlcndlaXNlIHplcnN0w7ZydCB3ZXJkZW48aT4oYmVzb25kZXJzLCB3ZW5uIFNpZSBkaWUgTMOkbmdlIGRlciBGZWxkZXIgcmVkdXppZXJlbiwgZXRjKS48L2k+PC9zcGFuPic7CiRsYW5nWydpbmZvX3NtdHB2YWxpZGF0ZSddID0gJ0RpZXMgZnVua3Rpb25pZXJ0IE5JQ0hUIHVudGVyIFdpbmRvd3MuJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdFcnN0ZWxsZW4gU2llIE5JRU1BTFMgZWluZSBFaWdlbnNjaGFmdCBmw7xyIGVpbmVuIEJlbnV0emVybmFtZW4gb2RlciBQYXNzd29ydC4gRGllcyBpc3QgaW0gRnJvbnRFbmRVc2Vycy1Nb2R1bCBiZXJlaXRzIGVpbmdlYmF1dC4nOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0JlbnV0emVyIGluIGVpbmUgQ1NWLURhdGVpIGV4cG9ydGllcmVuJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydGllcmVuJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydGllcmVuJzsKJGxhbmdbJ2FkbWluJ10gPSAnQWRtaW5pc3RyYXRvcic7CiRsYW5nWydlZGl0cHJvcCddID0gJ0VpZ2Vuc2NoYWZ0IDxlbT4lczwvZW0+IGJlYXJiZWl0ZW4nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW1hbGUgTMOkbmdlJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdFcnN0ZWxsdCc7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0aWVyZW4gbmFjaCc7CiRsYW5nWydzb3J0J10gPSAnU29ydGllcnVuZyc7CiRsYW5nWyd1c2Vyc2luZ3JvdXAnXSA9ICdCZW51dHplciBpbiBkZXIvZGVuIGF1c2dld8OkaGx0ZW4gR3J1cHBlKG4pJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ0VyZ2Vibmlzc2UgYmVzY2hyw6Rua2VuIGF1Zic7CiRsYW5nWydlcnJvcl9ub2VtYWlsZmllbGQnXSA9ICdGw7xyIGRpZXNlbiBCZW51dHplciBrb25udGUgZGFzIEUtTWFpbC1GZWxkIG5pY2h0IGdlZnVuZGVuIHdlcmRlbi4gQml0dGUga29udGFrdGllcmVuIFNpZSBkZW4gU3lzdGVtYWRtaW5pc3RyYXRvci4nOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICdTZWl0ZW4tSUQvLUFsaWFzIGbDvHIgZGFzIEZvcm11bGFyICJQYXNzd29ydCB2ZXJnZXNzZW4iJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnU2VpdGVuLUlELy1BbGlhcyBmw7xyIGRhcyBGb3JtdWxhciAiRWluc3RlbGx1bmdlbiDDpG5kZXJuIic7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ1NlaXRlbi1JRC8tQWxpYXMgZGVyIFNlaXRlLCBhdWYgZGllIG5hY2ggZGVyIEFubWVsZHVuZyBnZXNwcnVuZ2VuIHdlcmRlbiBzb2xsIConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnU2VpdGVuLUlELy1BbGlhcyBkZXIgU2VpdGUsIGF1ZiBkaWUgbmFjaCBkZXIgQWJtZWxkdW5nIGdlc3BydW5nZW4gd2VyZGVuIHNvbGwgKic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0aWVycmVpaGVuZm9sZ2UnOwokbGFuZ1sncHJvbXB0X251bXJlc2V0cmVjb3JkJ10gPSAnQW56YWhsIGRlciBCZW51dHplcm4sIGRpZSBpaHIgdmVybG9yZW5lcyBQYXNzd29ydCB6dXLDvGNrenVzZXR6ZW4gbcO2Y2h0ZW4uIEFrdHVlbGwgc3RlaHQgZGVyIFrDpGhsZXIgYXVmOic7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ0FsbGUgRWludHLDpGdlIGVudGZlcm5lbiwgZGllIMOkbHRlciBhbHMgZWluZSBXb2NoZSBzaW5kJzsKJGxhbmdbJ3JlbW92ZTFtb250aCddID0gJ0FsbGUgRWludHLDpGdlIGVudGZlcm5lbiwgZGllIMOkbHRlciBhbHMgZWluIE1vbmF0IHNpbmQnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnQWxsZSBFaW50csOkZ2UgZW50ZmVybmVuJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXb2xsZW4gU2llIGRhcyB3aXJrbGljaD8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICdTaWUgaGFiZW4gZWluZW4gdW5nw7xsdGlnZW4gQ29kZSBlaW5nZWdlYmVuOyBiaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIG5vY2ggZWlubWFsLic7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnRsO8ciBJaHJlIEJlbnV0emVyLUlEIHd1cmRlIGtlaW4gdGVtcG9yw6RyZXIgQ29kZSBpbiBkZXIgRGF0ZW5iYW5rIGdlZnVuZGVuLic7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGbDvHIgZGllIEFuemVpZ2UgZGVzIMOcYmVycHLDvGZ1bmdzLUZvcm11bGFycyc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZsO8ciBkaWUgRS1NYWlsIGJlaSB2ZXJnZXNzZW5lbSBQYXNzd29ydCc7CiRsYW5nWydlcnJvcl9yZXNldGFscmVhZHlzZW50J10gPSAnRW50d2VkZXIgU2llIHNlbGJzdCBvZGVyIGplbWFuZCBhbmRlcmVzIGhhdCBiZXJlaXRzIGRhcyBadXLDvGNrc2V0emVuIGRlcyBQYXNzd29ydHMgZsO8ciBkaWVzZSBLb250byBhdXNnZWzDtnN0LiBQcsO8ZmVuIFNpZSBJaHJlbiBFLU1haWwtRWluZ2FuZy4gU2llIGZpbmRlbiBkb3J0IHdlaXRlcmUgQW53ZWlzdW5nZW4genVtIFp1csO8Y2tzZXR6ZW4gSWhyZXMgUGFzc3dvcnRlcy4nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGVuYmFua2ZlaGxlcic7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICdTaWUgZXJoYWx0ZW4gZGllc2UgTmFjaHJpY2h0LCBkYSBqZW1hbmQgYXVmIHVuc2VyZXIgU2VpdGUgYW5nZWdlYmVuIGhhdCwgZGFzcyBTaWUgSWhyIFBhc3N3b3J0IHZlcmxvcmVuIGhhYmVuLiBGYWxscyBkaWVzIHp1dHJpZmZ0LCBsZXNlbiBTaWUgYml0dGUgZGllIHdlaXRlcmVuIEFud2Vpc3VuZ2VuLiAgV2VubiBTaWUga2VpbmUgQWhudW5nIGhhYmVuLCB1bSB3YXMgZXMgZ2VodCwgZGFubiBsw7ZzY2hlbiBTaWUgc2ljaGVyaGVpdHNoYWxiZXIgZGllc2UgTmFjaHJpY2h0LiBXaXIgYmVkYW5rZW4gdW5zLCBkYXNzIFNpZSBzaWNoIGRpZSBaZWl0IGdlbm9tbWVuIGhhYmVuLic7CiRsYW5nWydwcm9tcHRfY29kZSddID0gJ0NvZGUnOwokbGFuZ1snbWVzc2FnZV9jb2RlJ10gPSAnRGVyIGZvbGdlbmRlIENvZGUgd3VyZGUgenVmw6RsbGlnIGdlbmVyaWVydCwgdW0gZGFzIEJlbnV0emVyLUtvbnRvIHp1IMO8YmVycHLDvGZlbi4gV2VubiBTaWUgYXVmIGRlbiBmb2xnZW5kZW4gTGluayBrbGlja2VuLCBnZWxhbmdlbiBTaWUgYXVmIGVpbmUgU2VpdGUsIHdvIFNpZSBkaWVzZW4gQ29kZSBlaW5nZWJlbiBtw7xzc2VuLiBOb3JtYWxlcndlaXNlIGVudGjDpGx0IGRhcyBGZWxkIGJlcmVpdHMgSWhyZW4gQ29kZS4gRmFsbHMgYWJlciBuaWNodCwgbGF1dGV0IGRlciBDb2RlOic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0VpbiBLbGljayBhdWYgZGVuIGZvbGdlbmRlbiBMaW5rIGJyaW5ndCBTaWUgYXVmIGRpZSBXZWJzZWl0ZSwgd28gU2llIGRlbiB1bnRlbnN0ZWhlbmRlbiBDb2RlIGVpbmdlYmVuIHVuZCBkYW1pdCBJaHIgUGFzc3dvcnQgenVyw7xja3NldHplbiBrw7ZubmVuOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnUGFzc3dvcnQgdmVybG9yZW4nOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdEYXMgQ01TTWFpbGVyLU1vZHVsIHd1cmRlIG5pY2h0IGdlZnVuZGVuLic7CiRsYW5nWydpbmZvX2ZvcmdvdHB3bWVzc2FnZXNlbnQnXSA9ICdFaW5lIEUtTWFpbCBtaXQgSW5mb3JtYXRpb25lbiB6dW0gWnVyw7xja3NldHplbiBkZXMgUGFzc3dvcnRzIHd1cmRlIGFuICVzIHZlcnNhbmR0LiBWaWVsZW4gRGFuayEnOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdTaWUgaGFiZW4gSWhyIFBhc3N3b3J0IHZlcmdlc3NlbiBvZGVyIHZlcmxvcmVuLiBHZWJlbiBTaWUgaGllciBJaHJlbiBCZW51dHplcm5hbWVuIGVpbi4gV2VubiB3aXIgU2llIGltIFN5c3RlbSBmaW5kZW4sIGVyaGFsdGVuIFNpZSBlaW5lIEUtTWFpbCBtaXQgd2VpdGVyZW4gQW53ZWlzdW5nZW4genVtIFp1csO8Y2tzZXR6ZW4gZGVzIFBhc3N3b3J0cy4nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdWb3JsYWdlIGbDvHIgdmVyZ2Vzc2VuZSBQYXNzd8O2cnRlcic7CiRsYW5nWydsb3N0dXNlcm5hbWVfdGVtcGxhdGUnXSA9ICdWb3JsYWdlIGbDvHIgdmVyZ2Vzc2VuZSBCZW51dHplcm5hbWVuJzsKJGxhbmdbJ2Vycm9yX3Byb3Bub3Rmb3VuZCddID0gJ0VpZ2Vuc2NoYWZ0ICVzIG5pY2h0IGdlZnVuZGVuJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdFaWdlbnNjaGFmdGVuIGdlZnVuZGVuJzsKJGxhbmdbJ2FkZHByb3AnXSA9ICdFaWdlbnNjaGFmdCBoaW56dWbDvGdlbic7CiRsYW5nWydlcnJvcl9yZXF1aXJlZGZpZWxkJ10gPSAnRWluIGVyZm9yZGVybGljaGVzIEZlbGQgKCVzKSB3YXIgbGVlci4nOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdVbSBJaHIgUGFzc3dvcnQgenUgw6RuZGVybiwgZ2ViZW4gU2llIGJpdHRlIGhpZXIgZWluIG5ldWVzIFBhc3N3b3J0IGVpbi4nOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdFcyBzY2hlaW50IHNvLCBhbHMgb2IgU2llIG5pY2h0IGFuZ2VtZWxkZXQgc2luZC4nOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ0VpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndXNlcl9yZWdpc3RyYXRpb24nXSA9ICdSZWdpc3RyaWVydW5nJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnRGllc2VzIEtvbnRvIGlzdCBhYmdlbGF1ZmVuJzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdVbmdlbmF1ZSBGb3JtYXRpZXJ1bmcgZGVyIEUtTWFpbC1BZHJlc3NlJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRleHBpcnlkYXRlJ10gPSAnVW5nw7xsdGlnZXMgQWJsYXVmZGF0dW0nOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdwcm9wZXJ0eSddID0gJ0ZlaGxlciBiZWltIFNldHplbiBkZXIgRWlnZW5zY2hhZnQgJXMgZsO8ciBkZW4gQmVudXR6ZXIgJHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGdyb3VwaWQnXSA9ICdVbmfDvGx0aWdlIEdydXBwZW4tSUQgJXMnOwokbGFuZ1snaGlkZGVuZmllbGRtYXJrZXInXSA9ICdLZW5uemVpY2hudW5nIGbDvHIgdmVyYm9yZ2VuZSBGZWxkZXInOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0ZhcmJlIGbDvHIgdmVyYm9yZ2VuZSBGZWxkZXInOwokbGFuZ1snaGlkZGVuJ10gPSAnVmVyYm9yZ2VuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZW5hbWUnXSA9ICdFaW5lIEVpZ2Vuc2NoYWZ0IG1pdCBkaWVzZW0gTmFtZW4gZXhpc3RpZXJ0IGJlcmVpdHMuJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ0VzIHd1cmRlbiBub2NoIGtlaW5lIEVpZ2Vuc2NoYWZ0ZW4gZGVmaW5pZXJ0Lic7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ0bDvHIgZGllc2UgQmVudXR6ZXJncnVwcGUgd3VyZGVuIGtlaW5lIEVpZ2Vuc2NoYWZ0ZW4gYXVzZ2V3w6RobHQuJzsKJGxhbmdbJ25vZ3JvdXBzJ10gPSAnRXMgd3VyZGVuIG5vY2gga2VpbmUgR3J1cHBlbiBkZWZpbmllcnQuJzsKJGxhbmdbJ2dyb3Vwc2ZvdW5kJ10gPSAnQmVudXR6ZXJncnVwcGVuIGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX29uZWdyb3VwcmVxdWlyZWQnXSA9ICdEaWUgTWl0Z2xpZWRzY2hhZnQgaW4gbWluZGVzdGVucyBlaW5lciBHcnVwcGUgaXN0IGVyZm9yZGVybGljaC4nOwokbGFuZ1sncHJvbXB0X3JlcXVpcmVvbmVncm91cCddID0gJ0VyZm9yZGVydCBkaWUgTWl0Z2xpZWRzY2hhZnQgaW4gbWluZGVzdGVucyBlaW5lciBHcnVwcGUnOwokbGFuZ1snYmFjayddID0gJ1p1csO8Y2snOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzIGlzdCBlaW4gUGZsaWNodGZlbGQuJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRtYXJrZXInXSA9ICdQZmxpY2h0ZmVsZGVyIGtlbm56ZWljaG5lbiBtaXQnOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnUGZsaWNodGZlbGRlciBlaW5mw6RyYmVuIG1pdCc7CiRsYW5nWyduZXh0J10gPSAnV2VpdGVyJzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnRWluZSBHcnVwcGUgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdQZmxpY2h0ZmVsZCc7CiRsYW5nWydvcHRpb25hbCddID0gJ29wdGlvbmFsJzsKJGxhbmdbJ29mZiddID0gJ0F1cyc7CiRsYW5nWydzaXplJ10gPSAnR3LDtsOfZSc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1heGltYWxlIEdyw7bDn2UgaXJnZW5kIGVpbmVyIEJpbGRkaW1lbnNpb24gaW4gUGl4ZWwpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ0zDpG5nZSc7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyPihaZWljaGVuIGluIGRlciBUZXh0ZWluZ2FiZSknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ0xpc3RlbmZlbGQtT3B0aW9uZW4sIGdldHJlbm50IGR1cmNoIFplaWxlbnVtYnLDvGNoZS4gRGllIFdlcnRlIGvDtm5uZW4gbWl0IGEgPSBaZWljaGVuIHZvbSBUZXh0IGdldHJlbm50IHdlcmRlbiwgei5Cc3AuOiBXZWlibGljaD13JzsKJGxhbmdbJ3JhZGlvb3B0aW9ucyddID0gJ0Jlc2NocmlmdHVuZyBkZXMgT3B0aW9uc2ZlbGRlcywgZ2V0cmVubnQgZHVyY2ggWmVpbGVudW1icsO8Y2hlLiBEaWUgV2VydGUga8O2bm5lbiBtaXQgYSA9IFplaWNoZW4gdm9tIFRleHQgZ2V0cmVubnQgd2VyZGVuLCB6LkJzcC46IFdlaWJsaWNoPXcnOwokbGFuZ1sncHJvbXB0J10gPSAnRWluZ2FiZWF1ZmZvcmRlcnVuZyc7CiRsYW5nWydwcm9tcHRfdHlwZSddID0gJ1R5cCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ2ZpZWxkc3RhdHVzJ10gPSAnRmVsZHN0YXR1cyc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdGcmFnZSBiZWkgdmVyZ2Vzc2VuZW08YnIvPkJlbnV0emVybmFtZW4nOwokbGFuZ1sndGV4dCddID0gJ1RleHQnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ01laHJmYWNobGlzdGVuYXVzd2FobCc7CiRsYW5nWydyYWRpb2J1dHRvbnMnXSA9ICdPcHRpb25zZmVsZGVyJzsKJGxhbmdbJ2ltYWdlJ10gPSAnQmlsZCc7CiRsYW5nWydlbWFpbCddID0gJ0UtTWFpbC1BZHJlc3NlJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dGZlbGQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdBdXN3YWhsbGlzdGUnOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICdXaWxsa29tbWVuJzsKJGxhbmdbJ2xvZ291dCddID0gJ0FibWVsZGVuJzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdEaWVzZW4gR3J1cHBlbm5hbWVuIHZlcndlbmRlbic7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdNZWluZSBFaW5zdGVsbHVuZ2VuIMOkbmRlcm4nOwokbGFuZ1snZXJyb3JfbG9naW5mYWlsZWQnXSA9ICdJaHJlIEFubWVsZHVuZyBpc3QgZmVobGdlc2NobGFnZW4gLSB1bmfDvGx0aWdlciBCZW51dHplcm5hbWUgb2RlciB1bmfDvGx0aWdlcyBQYXNzd29ydD8nOwokbGFuZ1snbG9naW4nXSA9ICdBbm1lbGRlbic7CiRsYW5nWydwcm9tcHRfc2lnbmluX2J1dHRvbiddID0gJ0Jlc2NocmlmdHVuZyBkZXMgQW5tZWxkZS1CdXR0b25zJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ0JlbnV0emVybmFtZSc7CiRsYW5nWydwcm9tcHRfZW1haWwnXSA9ICdFLU1haWwtQWRyZXNzZSc7CiRsYW5nWydwcm9tcHRfcGFzc3dvcmQnXSA9ICdQYXNzd29ydCc7CiRsYW5nWydwcm9tcHRfcmVtZW1iZXJtZSddID0gJ0FubWVsZHVuZyBhdWYgZGllc2VtIENvbXB1dGVyIG1lcmtlbic7CiRsYW5nWydyZWdpc3RlciddID0gJ1JlZ2lzdHJpZXJlbic7CiRsYW5nWydmb3Jnb3RwdyddID0gJ0hhYmVuIFNpZSBJaHIgUGFzc3dvcnQgdmVyZ2Vzc2VuPyc7CiRsYW5nWydsb3N0dXNlcm5hbWUnXSA9ICdIYWJlbiBTaWUgSWhyZSBCZW51dHplcmRhdGVuIHZlcmdlc3Nlbj8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdTdGFuZGFyZCc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1ZvcmxhZ2UnOwokbGFuZ1snZXJyb3JfdXNlcm5vdGZvdW5kJ10gPSAnS29ubnRlIGtlaW5lIEluZm9ybWF0aW9uZW4gZsO8ciBkaWVzZW4gQmVudXR6ZXIgZmluZGVuJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1ldGFrZW4nXSA9ICdEaWVzZXIgQmVudXR6ZXJuYW1lICglcykgd2lyZCBiZXJlaXRzIHZlcndlbmRldC4nOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ1NvbGwgU01UUCB2ZXJ3ZW5kZXQgd2VyZGVuLCB1bSBFLU1haWwtQWRyZXNzZW4gYXVmIEfDvGx0aWdrZWl0IHp1IHByw7xmZW4/JzsKJGxhbmdbJ3Byb21wdF9taW5wd2xlbiddID0gJ01pbmltYWxlIEzDpG5nZSBkZXMgUGFzc3dvcnRzJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ01heGltYWxlIEzDpG5nZSBkZXMgUGFzc3dvcnRzJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ01pbmltYWxlIEzDpG5nZSBkZXMgQmVudXR6ZXJuYW1lbnMnOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnTWF4aW1hbGUgTMOkbmdlIGRlcyBCZW51dHplcm5hbWVucyc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdBdXN6ZWl0IGbDvHIgU2Vzc2lvbnMgKGluIFNla3VuZGVuKSc7CiRsYW5nWydwcm9tcHRfY29va2lla2VlcGFsaXZlJ10gPSAnQ29va2llcyBmw7xyIGRpZSBBbm1lbGR1bmcgdmVyd2VuZGVuJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnRS1NYWlsLVJlZ2lzdHJpZXJ1bmcgZXJsYXViZW4nOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ1N0YW5kYXJkLUJlbnV0emVyZ3J1cHBlIGbDvHIgbmV1ZSBCZW51dHplcic7CiRsYW5nWydjaGFuZ2VzZXR0aW5nc190ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGbDvHIgRWluc3RlbGx1bmdlbiDDpG5kZXJuJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3JkbWlzbWF0Y2gnXSA9ICdEaWUgUGFzc3fDtnJ0ZXIgc3RpbW1lbiBuaWNodCDDvGJlcmVpbi4nOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnVW5nw7xsdGlnZXIgQmVudXR6ZXJuYW1lJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZCddID0gJ1VuZ8O8bHRpZ2VzIFBhc3N3b3J0JzsKJGxhbmdbJ2VkaXR1c2VyJ10gPSAnQmVudXR6ZXIgYmVhcmJlaXRlbic7CiRsYW5nWyd2YWxpZCddID0gJ0fDvGx0aWcnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdCZW51dHplcm5hbWUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJ0RpZXNlciBCZW51dHplciBpc3Qgbm9jaCBrZWluIE1pdGdsaWVkIGVpbmVyIEJlbnV0emVyZ3J1cHBlLic7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnS2VpbmUgRWlnZW5zY2hhZnRlbic7CiRsYW5nWydlcnJvcl9kdXBfcHJvcGVydGllcyddID0gJ1NpZSBoYWJlbiB2ZXJzdWNodCwgRWlnZW5zY2hhZnRlbiBkb3BwZWx0IHp1IGltcG9ydGllcmVuJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnV2VydCc7CiRsYW5nWydncm91cHMnXSA9ICdCZW51dHplcmdydXBwZW4nOwokbGFuZ1sncHJvcGVydGllcyddID0gJ0VpZ2Vuc2NoYWZ0ZW4nOwokbGFuZ1sncHJvcG5hbWUnXSA9ICdOYW1lIGRlciBFaWdlbnNjaGFmdCc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdXZXJ0IGRlciBFaWdlbnNjaGFmdCc7CiRsYW5nWydhZGQnXSA9ICdIaW56dWbDvGdlbic7CiRsYW5nWydoaXN0b3J5J10gPSAnR2VzY2hpY2h0ZSc7CiRsYW5nWydlZGl0J10gPSAnQmVhcmJlaXRlbic7CiRsYW5nWydleHBpcmVzJ10gPSAnQWJsYXVmJzsKJGxhbmdbJ3NwZWNpZnlfZGF0ZSddID0gJ0RhdHVtIGZlc3RsZWdlbic7CiRsYW5nWycxMmhycyddID0gJzEyIFN0dW5kZW4nOwokbGFuZ1snMjRocnMnXSA9ICcyNCBTdHVuZGVuJzsKJGxhbmdbJzQ4aHJzJ10gPSAnNDggU3R1bmRlbic7CiRsYW5nWycxd2VlayddID0gJ2VpbmUgV29jaGUnOwokbGFuZ1snMndlZWtzJ10gPSAnendlaSBXb2NoZW4nOwokbGFuZ1snMW1vbnRoJ10gPSAnZWluIE1vbmF0JzsKJGxhbmdbJzNtb250aHMnXSA9ICdkcmVpIE1vbmF0ZSc7CiRsYW5nWyc2bW9udGhzJ10gPSAnc2VjaHMgTW9uYXRlJzsKJGxhbmdbJzF5ZWFyJ10gPSAnZWluIEphaHInOwokbGFuZ1snbmV2ZXInXSA9ICdOaWVtYWxzJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ0RhcyBNb2R1bCB3dXJkZSBpbnN0YWxsaWVydC48YnIvPlN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgQmVyZWNodGlndW5nICJNb2RpZnkgRnJvbnRFbmRVc2VyIFByb3BlcnRpZXMiIGdlc2V0enQgd3VyZGUuIFp1c8OkdHpsaWNoIHdpcmQgZGllIEluc3RhbGxhdGlvbiBkZXMgQ2FwdGNoYS1Nb2R1bHMgZW1wZm9obGVuLiBOYWNoIGRlc3NlbiBJbnN0YWxsYXRpb24gd2lyZCBiZWkgZGVyIEFubWVsZHVuZyBlcmfDpG56ZW5kIHp1IEJlbnV0emVybmFtZW4gdW5kIFBhc3N3b3J0IGRlciBJbmhhbHQgZWluZXMgQ2FwdGNoYS1CaWxkZXMgYWJnZWZyYWd0LiBEaWVzIHNvbGwgaGVsZmVuLCBCcnV0ZS1mb3JjZS1BdHRhY2tlbiB6dSB2ZXJoaW5kZXJuLiA8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZXNlIEZ1bmt0aW9uYWxpdMOkdCBrYW5uIG1pdCBkZW0gUGFyYW1ldGVyIG5vY2FwdGNoYSBkZWFrdGl2aWVydCB3ZXJkZW4sIGF1Y2ggd2VubiBkYXMgQ2FwdGNoYS1Nb2R1bCBpbnN0YWxsaWVydCBpc3QuJzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAnS2VubndvcnQnOwokbGFuZ1sncmVwZWF0cGFzc3dvcmQnXSA9ICdXaWVkZXJob2x1bmcgS2VubndvcnQnOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ0VpbmUgQmVudXR6ZXJncnVwcGUgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnQmVudXR6ZXJncnVwcGUgYmVhcmJlaXRlbic7CiRsYW5nWydzdWJtaXQnXSA9ICdBYnNlbmRlbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnTMO2c2NoZW4nOwokbGFuZ1snY29uZmlybV9lZGl0Z3JvdXAnXSA9ICdTaW5kIGRhcyB3aXJrbGljaCBkaWUgcmljaHRpZ2VuIEVpbnN0ZWxsdW5nZW4gZsO8ciBkaWVzZSBCZW51dHplcmdydXBwZT9cbkRhcyBEZWFrdGl2aWVyZW4gZWluZXIgRWlnZW5zY2hhZnQgbMO2c2NodCBrZWluZSBFaW50csOkZ2UgaW4gZGVyIEVpZ2Vuc2NoYWZ0ZW50YWJlbGxlIGbDvHIgZGllc2UgQmVudXR6ZXJncnVwcGUvZGllc2VuIEJlbnV0emVyLiBTaWUgc2luZCBsZWRpZ2xpY2ggbmljaHQgbWVociB2ZXJmw7xnYmFyLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnV29sbGVuIFNpZSBkaWVzZSBCZW51dHplcmdydXBwZSB3aXJrbGljaCBsw7ZzY2hlbj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ1dvbGxlbiBTaWUgZGllc2UgRWlnZW5zY2hhZnQgd2lya2xpY2gga29tcGxldHQgbMO2c2NoZW4/XG5GYWxscyBqYSwgd2lyZCBhdWNoIGplZGVyIEJlbnV0emVyZWludHJhZyBmw7xyIGRpZXNlIEVpZ2Vuc2NoYWZ0IGdlbMO2c2NodC4nOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnVW56dXJlaWNoZW5kZSBQYXJhbWV0ZXInOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydlcnJvcl9jYW50YWRkcHJvcCddID0gJ1Byb2JsZW0gYmVpbSBIaW56dWbDvGdlbiBlaW5lciBFaWdlbnNjaGFmdCc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXByZWxuJ10gPSAnUHJvYmxlbSBiZWltIEhpbnp1ZsO8Z2VuIGVpbmVyIEdydXBwZW5iZXppZWh1bmcnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwJ10gPSAnUHJvYmxlbSBiZWltIEhpbnp1ZsO8Z2VuIGVpbmVyIEJlbnV0emVyZ3J1cHBlJzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnUHJvYmxlbSBiZWltIEhpbnp1ZsO8Z2VuIGVpbmVzIEJlbnV0emVycyB6dSBlaW5lciBCZW51dHplcmdydXBwZSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmxlbSBiZWltIEzDtnNjaGVuIGVpbmVyIEVpZ2Vuc2NoYWZ0JzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnS29ubnRlIGtlaW5lIEUtTWFpbC1BZHJlc3NlIGZpbmRlbic7CiRsYW5nWydlcnJvcl9kZXN0aW5hdGlvbm5vdHdyaXRhYmxlJ10gPSAnU2llIGhhYmVuIGtlaW5lIFNjaHJlaWJiZXJlY2h0aWd1bmcgZsO8ciBkYXMgWmllbHZlcnplaWNobmlzLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnVW5nw7xsdGlnZSBQYXJhbWV0ZXInOwokbGFuZ1snZXJyb3Jfbm9ncm91cHMnXSA9ICdLb25udGUga2VpbmUgQmVudXR6ZXJncnVwcGVuIGZpbmRlbic7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ0Fud2VuZGVuJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAnQmVudXR6ZXJuYW1lIChyZWd1bMOkcmVyIEF1c2RydWNrKSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2NocmVpYnVuZyc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdOYW1lIGRlciBCZW51dHplcmdydXBwZSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdadWdyaWZmIHZlcndlaWdlcnQnOwokbGFuZ1snZXJyb3InXSA9ICdGZWhsZXInOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdFaW5lIEJlbnV0emVyZ3J1cHBlIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2ltcG9ydGdyb3VwJ10gPSAnR3J1cHBlIGltcG9ydGllcmVuJzsKJGxhbmdbJ2FkZHVzZXInXSA9ICdFaW5lbiBCZW51dHplciBoaW56dWbDvGdlbic7CiRsYW5nWyd1c2Vyc2ZvdW5kJ10gPSAnQmVudXR6ZXIgZ2VmdW5kZW4sIGRpZSBkZW4gS3JpdGVyaWVuIGVudHNwcmVjaGVuJzsKJGxhbmdbJ2dyb3VwJ10gPSAnQmVudXR6ZXJncnVwcGUnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdCZW51dHplcmdydXBwZSBhdXN3w6RobGVuJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1JlZ2lzdHJpZXJ1bmdzdm9ybGFnZSc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdBYm1lbGR1bmdzdm9ybGFnZSc7CiRsYW5nWydsb2dpbl90ZW1wbGF0ZSddID0gJ0FubWVsZHVuZ3N2b3JsYWdlJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWyd1c2VycyddID0gJ0JlbnV0emVyJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zyb250ZW5kVXNlci1WZXJ3YWx0dW5nJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRXJsYXVidCBkZW4gQmVudXR6ZXJuLCBzaWNoIGF1ZiBJaHJlciBXZWJzZWl0ZSBhbnp1bWVsZGVuJzsKJGxhbmdbJ2RlZmF1bHRmcm9udHBhZ2UnXSA9ICdTdGFuZGFyZC1TdGFydHNlaXRlJzsKJGxhbmdbJ2xhc3RhY2Nlc3NlZHBhZ2UnXSA9ICdMZXR6dGUgU2VpdGUsIGF1ZiBkaWUgenVnZWdyaWZmZW4gd3VyZGUnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnQW5kZXJlIFNlaXRlOic7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnR2ViZW4gU2llIGRlbiBUZXh0IGF1cyBkZW0gQmlsZCBlaW4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/el_GR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ86czq7Ous6/z4Igz4DOtc60zq/Ov8+FIM6zzrnOsSDPhM6/IM+Mzr3Ov868zrEgz4fPgc6uz4PPhM63JzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ86czq7Ous6/z4Igz4DOtc60zq/Ov8+FIM6zzrnOsSDPhM6/zr0gzrrPic60zrnOus+MJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICfOpM6/IM61zrvOrM+HzrnPg8+Ezr8vzrzOrc6zzrnPg8+Ezr8gzrzOrs66zr/PgiDOs865zrEgz4TOv869IM66z4nOtM65zrrPjCDOtM61zr0gzrXOr869zrHOuSDOsc+Azr/OtM61zrrPhM+MJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZWxlbmd0aHMnXSA9ICfOpM6/IM61zrvOrM+HzrnPg8+Ezr8vzrzOrc6zzrnPg8+Ezr8gzrzOrs66zr/PgiDOs865zrEgz4TOvyDPjM69zr/OvM6xIM+Hz4HOrs+Dz4TOtyDOtM61zr0gzrXOr869zrHOuSDOsc+Azr/OtM61zrrPhM+MJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxhZGRyZXNzJ10gPSAnzpTOtc69IM61z4XPgc6tzrjOt866zrUgzrTOuc61z43OuM+Fzr3Pg863IGVtYWlsIM6zzrnOsSDOsc+Fz4TPjM69IM+Ezr/OvSDOu86/zrPOsc+BzrnOsc+DzrzPjCc7CiRsYW5nWyd1c2VyX2FkZGVkJ10gPSAnzp8gz4fPgc6uz4PPhM63z4Igz4DPgc6/z4PPhM6tzrjOt866zrUgJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICfOnyDPh8+Bzq7Pg8+EzrfPgiDOtM65zrHOs8+BzqzPhs63zrrOtSB1aWQ9JXMnOwokbGFuZ1sncHJvcGVydHlmaWx0ZXInXSA9ICfOmc60zrnPjM+EzrfPhM6xJzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICfOpM65zrzOriAocmVndWxhciBleHByZXNzaW9uKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ86gz4HOv861zrnOtM6/z4DOv86vzrfPg863OiDOpM6xIM+AzrXOtM6vzrEgzrHPhc+EzqwgzrXPgM63z4HOtc6szrbOv8+Fzr0gz4TOvyDOvM6tzrPOtc64zr/PgiDPhM+Jzr0gz4DOtc60zq/Pic69IM61zrnPg86xzrPPic6zzq7PgiDOs865zrEgz4TOuc+CIM+Gz4zPgc68zrXPgi4gIM6XIM61zrvOu86sz4TPic+Dzrcgz4TOv8+FIM6xz4HOuc64zrzOv8+NIM6xz4XPhM6/z40gz4POtSDOv8+Azr/Ouc6/zrTOrs+Azr/PhM61IM+Fz4DOsc+BzrrPhM+MIM60zrnOus+Ez4XOsc66z4wgz4TPjM+Azr8gzrTOtc69IM61zr3OtM61zq/Ous69z4XPhM6xzrknOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ86Yzq3Ou861z4TOtSDPhM63zr0gzrHOu867zrHOs86uIM+Ez4nOvSDPgM+Bzr/PhM65zrzOrs+DzrXPic69IM+Ezr/PhSDOtM65zrHPh861zrnPgc65z4PPhM6uPyc7CiRsYW5nWydlcnJvcl9lbWFpbGFscmVhZHl1c2VkJ10gPSAnzpcgzrTOuc61z43OuM+Fzr3Pg863IEVtYWlsIM6uzrTOtyDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM6xzrknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICfOnc6xIM61z4DOuc+Ez4HOrc+Azr/Ovc+EzrHOuSDOtM65z4DOu86sIGVtYWlscyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcozp3OsSDOtc+AzrnPhM+Bzq3PgM6/zr3PhM6xzrkgz4DOv867zrvOsc+AzrvOv86vIM+Hz4HOrs+Dz4TOtc+CIM68zrUgz4TOt869IM6vzrTOuc6xIM60zrnOtc+NzrjPhc69z4POtyBlbWFpbCknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnzpTOtc69IM6tz4fOtc+EzrUgzrXOuc+DzqzOs861zrkgzq3Ovc6xIM+Mzr3Ov868zrEgz4fPgc6uz4PPhM63JzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ86UzrXOvSDOrc+HzrXPhM61IM61zrnPg86szrPOtc65IM6tzr3Osc69IM66z4nOtM65zrrPjCDPgM+Bz4zPg86yzrHPg863z4InOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ86Rz4DOv8+Dz43Ovc60zrXPg863IM61zrPOs861zrPPgc6xzrzOrc69zr/PhSDPh8+Bzq7Pg8+EzrcnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnzqPPjc69zrTOtc+DzrcgzrXOs86zzrXOs8+BzrHOvM6tzr3Ov8+FIM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPs6gz4HOv8+Dzr/Ph86uIM+Dz4TOt869IM+Hz4HOrs+Dzrc8L2I+IM6XIM6xzrvOu86xzrPOriDPhM+Jzr0gzrnOtM65zr/PhM6uz4TPic69IM+Azr/PhSDOuc+Dz4fPjc6/z4XOvSDOs865zrEgz4TOuc+CIM+Fz4DOrM+Bz4fOv8+Fz4POtc+CIM6/zrzOrM60zrXPgiwgzrzPgM6/z4HOtc6vIM69zrEgzrXPgM65z4bOrc+BzrXOuSDOus6xz4TOsc+Dz4TPgc6/z4bOriDOus6xzrkgzrTOuc6xzrrOv8+Azq4gzrvOtc65z4TOv8+Fz4HOs86vzrHPgiDPg861IM6/z4DOv865zr/OtM6uz4DOv8+EzrUgz4XPgM6sz4HPh86/zr3PhM6xIM60zrnOus+Ez4XOsc66z4wgz4TPjM+Azr8gPGk+KM65zrTOuc6xzq/PhM61z4HOsSDOsc69IM61zrvOu86xz4TPjs+DzrXPhM61IM+EzrEgzrzOrs66zrcgz4TPic69IM+AzrXOtM6vz4nOvSwgzrrOu8+AKTwvaT48L2ZvbnQ+JzsKJGxhbmdbJ2luZm9fc210cHZhbGlkYXRlJ10gPSAnzpHPhc+Ezq4gzrcgzrTOuc6xzrTOuc66zrHPg86vzrEgzrTOtc69IM67zrXOuc+Ezr/Phc+BzrPOtc6vIM+Dz4TOsSB3aW5kb3dzJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICfOnM6uzr0gzrTOt868zrnOv8+Fz4HOs86uz4POtc+EzrUgzrzOr86xIM65zrTOuc+Mz4TOt8+EzrEgzrPOuc6xIM6tzr3OsSDPjM69zr/OvM6xIM+Hz4HOrs+Dz4TOtyDOriDOus6sz4TOuSDPgM6xz4HPjM68zr/Ouc6/IM66zrHOuM+Oz4IgzrHPhc+Ez4wgzrXOr869zrHOuSDOtc69z4PPic68zrHPhM+JzrzOrc69zr8gz4PPhM6/IM6sz4HOuM+Bz4nOvM6xICBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ3Byb21wdF9leHBvcnRjc3YnXSA9ICfOlc6+zrHOs8+JzrPOriDPh8+BzrfPg8+Ez47OvSDPg861IM6xz4HPh861zq/OvyDPhM+Nz4DOv8+FIENTVic7CiRsYW5nWydleHBvcnRjc3YnXSA9ICfOlc6+zrHOs8+JzrPOric7CiRsYW5nWydhZG1pbiddID0gJ86UzrnOsc+HzrXOuc+BzrnPg8+Ezq7Pgic7CiRsYW5nWydlZGl0cHJvcCddID0gJ86Vz4DOtc6+zrXPgc6zzrHPg86vzrEgzrnOtM65z4zPhM63z4TOsc+CJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ86czq3Os865z4PPhM6/IM68zq7Ous6/z4InOwokbGFuZ1snY3JlYXRlZCddID0gJ86UzrfOvM65zr/Phc+BzrPOrs64zrfOus61JzsKJGxhbmdbJ3NvcnRieSddID0gJ86kzrHOvs65zr3PjM68zrfPg863IM66zrHPhM6xJzsKJGxhbmdbJ3NvcnQnXSA9ICfOpM6xzr7Ouc69z4zOvM63z4POtyc7CiRsYW5nWyd1c2Vyc2luZ3JvdXAnXSA9ICfOp8+Bzq7Pg8+EzrXPgiDPg8+EzrcozrnPgikgIM61z4DOuc67zrXOs868zq3Ovc63KM61z4IpIM6/zrzOrM60zrEozrXPgiknOwokbGFuZ1sndXNlcmxpbWl0J10gPSAnzpjOrc+Dzrcgzr/Pgc6vzr/PhSDPg8+EzrEgzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xIM+DzrUnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGZpZWxkJ10gPSAnzpTOtc69IM6uz4TOsc69IM60z4XOvc6xz4TOriDOtyDOtc+Nz4HOtc+DzrcgzrXOvc+Mz4Igz4DOtc60zq/Ov8+FIGVtYWlsIM6zzrnOsSDOsc+Fz4TPjM69IM+Ezr/OvSDPh8+Bzq7Pg8+EzrcuICDOmc+Dz4nPgiDPgM+Bzq3PgM61zrkgzr3OsSDOtc+AzrnOus6/zrnOvc+Jzr3Ors+DzrXPhM61IM68zrUgz4TOv869IM60zrnOsc+HzrXOuc+BzrnPg8+Ezq4gz4PPhc+Dz4TOrs68zrHPhM6/z4InOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICfOkc69zrHOs869z4nPgc65z4PPhM65zrrPjCDPg861zrvOr860zrHPgi/OjM69zr/OvM6xIM6xzr3PhM65z4PPhM6/zq/Ph865z4POt8+CIM6zzrnOsSDPhM63zr0gz4bPjM+BzrzOsSAizp7Orc+HzrHPg86xIM+Ezr/OvSDOus+JzrTOuc66z4wgz4DPgc+Mz4POss6xz4POt8+CIic7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ86Rzr3Osc6zzr3Pic+BzrnPg8+EzrnOus+MIM+DzrXOu86vzrTOsc+CL86Mzr3Ov868zrEgzrHOvc+EzrnPg8+Ezr/Or8+HzrnPg863z4IgzrPOuc6xIM+EzrfOvSDPhs+Mz4HOvM6xICLOkc67zrvOsc6zzq4gz4HPhc64zrzOr8+DzrXPic69Iic7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ86Rzr3Osc6zzr3Pic+BzrnPg8+EzrnOus+MIM+DzrXOu86vzrTOsc+CL86Mzr3Ov868zrEgzrHOvc+EzrnPg8+Ezr/Or8+HzrnPg863z4Igz4PPhM63zr0gzr/PgM6/zq/OsSDOuM6xIM68zrXPhM6xz4bOrc+Bzr/Ovc+EzrHOuSDOvM61z4TOsSDPhM63zr0gzrXOr8+Dzr/OtM6/JzsKJGxhbmdbJ3Byb21wdF9sb2dvdXRfcGFnZSddID0gJ86Rzr3Osc6zzr3Pic+BzrnPg8+EzrnOus+MIM+DzrXOu86vzrTOsc+CL86Mzr3Ov868zrEgzrHOvc+EzrnPg8+Ezr/Or8+HzrnPg863z4LPg8+EzrfOvSDOv8+Azr/Or86xIM64zrEgzrzOtc+EzrHPhs6tz4HOv869z4TOsc65IM68zrXPhM6sIM+EzrfOvSDOrc6+zr/OtM6/JzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ86kz4HPjM+Azr/PgiDPhM6xzr7Ouc69z4zOvM63z4POt8+CJzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ86Izr3Osc+CIM6xz4HOuc64zrzPjM+CIM+Hz4HOt8+Dz4TPjs69IM61z4XPgc6vz4POus6/zr3PhM6xzrkgz4PPhM63zr0gzrTOuc6xzrTOuc66zrHPg86vzrEgzrHOu867zrHOs86uz4Igz4fOsc68zq3Ovc+Jzr0gzrrPic60zrnOus+Ozr0gz4DPgc+Mz4POss6xz4POt8+CLiAgzqPPhM63zr0gz4DOsc+Bzr/Pjc+DzrEgz4PPhM65zrPOvM6uIM6/IM6xz4HOuc64zrzPjM+CIM6xz4XPhM+Mz4IgzrXOr869zrHOuTonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICfOms6xz4TOrM+BzrPOt8+Dzrcgz4zOu8+Jzr0gzrXOus61zq/Ovc+Jzr0gz4TPic69IM61zrPOs8+BzrHPhs+Ozr0gz4DOv8+FIM61zq/Ovc6xzrkgz4DOsc67zrHOuc+Mz4TOtc+BzrXPgiDOsc+Azr8gzrzOuc6xIM61zrLOtM6/zrzOrM60zrEnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnzprOsc+EzqzPgc6zzrfPg863IM+MzrvPic69IM61zrrOtc6vzr3Pic69IM+Ez4nOvSDOtc6zzrPPgc6xz4bPjs69IM+Azr/PhSDOtc6vzr3Osc65IM+AzrHOu86xzrnPjM+EzrXPgc61z4IgzrHPgM6/IM6tzr3OsSDOvM6uzr3OsSc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICfOms6xz4TOrM+BzrPOt8+Dzrcgz4zOu8+Jzr0gz4TPic69IM61zrPOs8+BzrHPhs+Ozr0nOwokbGFuZ1snYXJleW91c3VyZSddID0gJ86Vzq/Pg8+EzrUgz4POr86zzr/Phc+Bzr/OuT8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICfOiM+HzrXOuSDOtc65z4POsc+HzrjOtc6vIM68zrcgzq3Os866z4XPgc6/z4IgzrrPjs60zrnOus6xz4IsIM+Az4HOv8+Dz4DOsc64zq7Pg8+EzrUgzr7Osc69zqwnOwokbGFuZ1snZXJyb3JfdGVtcGNvZGVub3Rmb3VuZCddID0gJ86UzrXOvSDOrc+HzrXOuSDOss+BzrXOuM61zq8gz4DPgc6/z4PPic+BzrnOvc+Mz4IgzrrPjs60zrnOus6xz4Igz4DOv8+FIM69zrEgzrHOvc+EzrnPg8+Ezr/Ouc+HzrXOryDPg8+Ezr8gzrTOuc66z4wgz4POsc+CIM6xzr3Osc6zzr3Pic+BzrnPg8+EzrnOus+MIM+Hz4HOrs+Dz4TOtyDPg8+EzrfOvSDOss6sz4POtyDOtM61zrTOv868zq3Ovc+Jzr0nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOtc68z4bOrM69zrnPg863z4Igz4TOt8+CIM+Gz4zPgc68zrHPgiDOtc+AzrHOu86uzrjOtc+Fz4POt8+CIM+Dz4TOv865z4fOtc6vz4nOvSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnzqDPgc+Mz4TPhc+Azr8gZW1haWwgzrPOuc6xIM+Ezr/Phc+CIM6+zrXPh86xz4POvM6tzr3Ov8+Fz4IgzrrPic60zrnOus6/z43PgiDPgM+Bz4zPg86yzrHPg863z4InOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ86JIM61z4POtc6vz4Igzq4gzrrOrM+Azr/Ouc6/z4IgzqzOu867zr/PgiDOrc+HzrXOuSDOrs60zrcgzrXOus66zrnOvc6uz4POtc65IM60zrnOsc60zrnOus6xz4POr86xIM6zzrnOsSDPhM63zr0gzrHOu867zrHOs86uIM66z4nOtM65zrrOv8+NIM+Az4HPjM+DzrLOsc+DzrfPgiDOs865zrEgzrHPhc+Ez4zOvSDPhM6/zr0gzrvOv86zzrHPgc65zrHPg868z4wuICDOlc67zq3Os86+z4TOtSDPhM6/IGVtYWlsIM+DzrHPgiwgzrzPgM6/z4HOtc6vz4TOtSDOvc6xIM67zqzOss61z4TOtSDPgM61z4HOsc65z4TOrc+Bz4kgzr/OtM63zrPOr861z4IgzrPOuc6xIM+EzrfOvSDOsc67zrvOsc6zzq4gzrrPic60zrnOus6/z40gz4PPhM6xIM61zrnPg861z4HPh8+MzrzOtc69zrEnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ86jz4bOrM67zrzOsSDOss6sz4POt8+CIM60zrXOtM6/zrzOrc69z4nOvSc7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICfOlc67zqzOss6xz4TOtSDOsc+Fz4TPjCDPhM6/IM68zq7Ovc+FzrzOsSDOtc+AzrXOuc60zq4gzrrOrM+Azr/Ouc6/z4IgzrHOvc6tz4bOtc+BzrUgz4PPhM6/zr0gzrTOuc66z4TPhc6xzrrPjCDPhM+Mz4DOvyDPjM+Ezrkgzq3Ph861z4TOtSDOvs61z4fOrM+DzrXOuSDPhM6/zr0gzrrPic60zrnOus+MIM+Az4HPjM+DzrLOsc+DzrfPgi4gIM6Rzr0gz4zOvc+Ez4nPgiDOrc+Ez4POuSDPg8+FzrzOss6xzq/Ovc61zrkgzrTOuc6xzrLOrM+Dz4TOtSDPhM65z4Igz4DOsc+BzrHOus6sz4TPiSDOv860zrfOs86vzrXPgi4gIM6Rzr0gzrTOtc69IM6tz4fOtc+EzrUgzrnOtM6tzrEgzrPOuc6xIM6xz4XPhM+MIM+Ezr8gzrjOrc68zrEgzrTOuc6xzrPPgc6sz4jPhM61IM68zrUgzrHPg8+GzqzOu861zrnOsSDPhM6/IM+AzrHPgc+Mzr0gzrzOrs69z4XOvM6xLCDPg86xz4IgzrXPhc+HzrHPgc65z4PPhM6/z43OvM61IM6zzrnOsSDPhM6/zr0gz4fPgc+Mzr3OvyDPg86xz4IuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnzprPjs60zrnOus6xz4InOwokbGFuZ1snbWVzc2FnZV9jb2RlJ10gPSAnzp8gz4DOsc+BzrHOus6sz4TPiSDOus+OzrTOuc66zrHPgiDOrc+HzrXOuSDOtM63zrzOuc6/z4XPgc6zzrfOuM61zq8gz4TPhc+HzrHOr86xIM+Az4HOv866zrXOuc68zq3Ovc6/z4Ugzr3OsSDOtc+AzrHOu863zrjOtc+Fz4TOtc6vIM6/IM67zr/Os86xz4HOuc6xz4POvM+Mz4Igz4fPgc6uz4PPhM63LiAgz4zPhM6xzr0gzrrOrM69zrXPhM61IM66zrvOr866IM+Dz4TOv869IM+Fz4DOtc+Bz4PPjc69zrTOtc+DzrzOvyDPgM6/z4UgzrHOus6/zrvOv8+FzrjOtc6vIM64zrEgz4POsc+CIM61zrzPhs6xzr3Ouc+Dz4TOtc6vIM6tzr3OsSDPgM61zrTOr86/IM6zzrnOsSDPhM63zr0gzrXOuc+DzrHOs8+JzrPOriDPhM6/z4UgzrrPjs60zrnOus6xLiAgzqPPhc69zq7OuM+Jz4Igz4TOvyDPgM61zrTOr86/IM6tz4fOtc65IM+Az4HOv8+Dz4XOvM+AzrvOt8+Bz4nOvM6tzr3OvyDPhM6/zr0gzrrPjs60zrnOus6xIM6xzrvOu86xIM+Dz4TOt869IM+AzrXPgc6vz4DPhM+Jz4POtyDPgM6/z4UgzrTOtc69IM61zq/Ovc6xzrksIM6/IM66z47OtM65zrrOsc+CIM61zq/Ovc6xzrk6JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnzprOrM69z4nOvc+EzrHPgiDOus67zq/OuiDPg8+Ezr8gz4DOsc+BzrHOus6sz4TPiSDPhc+AzrXPgc+Dz43Ovc60zrXPg868zr8gzrjOsSDOvM61z4TOsc+GzrXPgc64zrXOr8+EzrUgz4PPhM6/IM60zrnOus+Ez4XOsc66z4wgz4TPjM+Azr8gz4zPgM6/z4UgzrjOsSDOtc65z4POrM6zzrXPhM61IM+Ezr/OvSDPgM6xz4HOsc+AzrHOrM69z4IgzrrPjs60zrnOus6xIM66zrHOuSDOuM6xIM6xzrvOu86szr7Otc+EzrUgz4TOv869IM66z4nOtM65zrrPjDonOwokbGFuZ1snbG9zdHBhc3N3b3JkX2VtYWlsc3ViamVjdCddID0gJ86ezrXPh86xz4POvM6tzr3Ov8+CIM66z4nOtM65zrrPjM+CJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnzpTOtc69IM6uz4TOsc69IM60z4XOvc6xz4TOriDOtyDOtc+Nz4HOtc+Dzrcgz4TOv8+FIM6xz4HOuM+Bz47OvM6xz4TOv8+CIENNU01haWxlcic7CiRsYW5nWydpbmZvX2ZvcmdvdHB3bWVzc2FnZXNlbnQnXSA9ICfOiM+HzrXOuSDOsc+Azr/Pg8+EzrHOu867zrXOryBlbWFpbCDPg8+Ezr/OvSAlcyDOvM61IM6/zrTOt86zzq/Otc+CIM6zzrnOsSDPhM6/zr0gz4TPgc+Mz4DOvyDOsc67zrvOsc6zzq7PgiDOus+JzrTOuc66zr/PjS4gIM6jzrHPgiDOtc+Fz4fOsc+BzrnPg8+Ezr/Pjc68zrUnOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICfOj8+Dz4TOtSDOvs61z4fOrM+DzrHPhM61IM6uIM+HzqzPg86xz4TOtSDPhM6/zr0gzrrPic60zrnOus+MIM+Az4HPjM+DzrLOsc+DzrfPgi4gzpvOv865z4DPjM69LCDPgM67zrfOus+Ez4HOv867zr/Os86uz4PPhM61IM+Ezr8gz4zOvc6/zrzOsSDPh8+Bzq7Pg8+EzrcgzrXOtM+OLCDOus6xzrkgzqzOvSDOtc6vzr3Osc65IM60z4XOvc6xz4TOriDOtyDOtc+Nz4HOtc+Dzrcgz4POsc+CIM64zrEgz4POsc+CIM+Dz4TOsc67zrvOtc6vIM6tzr3OsSBlbWFpbCDOvM61IM6/zrTOt86zzq/Otc+CIM6zzrnOsSDPhM63zr0gzrHOu867zrHOs86uIM+Ezr/PhSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF90ZW1wbGF0ZSddID0gJ86gz4HPjM+Ez4XPgM6xIM6zzrnOsSDPhM6/z4XPgiDPh86xzrzOrc69zr/Phc+CIM66z4nOtM65zrrOv8+Nz4InOwokbGFuZ1snZXJyb3JfcHJvcG5vdGZvdW5kJ10gPSAnzpTOtc69IM61z4XPgc6tzrjOt866zrUgzrcgzrnOtM65z4zPhM63z4TOsSAlcyAnOwokbGFuZ1sncHJvcHNmb3VuZCddID0gJ86Vz4XPgc6tzrjOt866zrHOvSDOv865IM65zrTOuc+Mz4TOt8+EzrXPgic7CiRsYW5nWydhZGRwcm9wJ10gPSAnzqDPgc6/z4POuM6uzrrOtyDOuc60zrnPjM+EzrfPhM6xz4InOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ86kzr8gzrHPgM6xzrnPhM6/z43OvM61zr3OvyDPgM61zrTOr86/ICglcykgzq7PhM6xzr0gzrrOtc69z4wnOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICfOlc65z4POrM6zzrXPhM61IM6tzr3Osc69IM69zrXPjCDOus+JzrTOuc66z4wgzrXOtM+OIM+Az4HOv866zrXOuc68zq3Ovc6/z4Ugzr3OsSDOsc67zrvOrM6+zrXPhM61IM66z4nOtM65zrrPjCc7CiRsYW5nWydlcnJvcl9ub3Rsb2dnZWRpbiddID0gJ86UzrXOvSDOrc+HzrXPhM61IM66zqzOvc61zrkgzrXOuc+DzrHOs8+JzrPOric7CiRsYW5nWyd1c2VyX3NldHRpbmdzJ10gPSAnzqHPhc64zrzOr8+DzrXOuc+CJzsKJGxhbmdbJ3VzZXJfcmVnaXN0cmF0aW9uJ10gPSAnzpXOs86zz4HOsc+Gzq4nOwokbGFuZ1snZXJyb3JfYWNjb3VudGV4cGlyZWQnXSA9ICfOkc+Fz4TPjM+CIM6/IM67zr/Os86xz4HOuc6xz4POvM+Mz4Igzq3Ph861zrkgzrvOrs6+zrXOuSc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnzpHOvc+EzrnOus6xzr3Ov869zrnOus6uIM68zr/Pgc+Gzq4gzrTOuc61z43OuM+Fzr3Pg863z4IgZW1haWwnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICfOnM63IM6xz4DOv860zrXOus+Ezq4gzrfOvM61z4HOv868zrfOvc6vzrEgzrvOrs6+zrfPgic7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ3Byb3BlcnR5J10gPSAnzqPPhs6szrvOvM6xIM+Dz4TOt869IM+Bz43OuM68zrnPg863IM+EzrfPgiDOuc60zrnPjM+EzrfPhM6xz4IgJXMgzrPOuc6xIM+Ezr/OvSDPh8+Bzq7Pg8+EzrcgJHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGdyb3VwaWQnXSA9ICfOnM63IM6xz4DOv860zrXOus+Ez4wgzrHOvc6xzrPOvc+Jz4HOuc+Dz4TOuc66z4wgzrPOuc6xIM+EzrfOvSDOv868zqzOtM6xICVzJzsKJGxhbmdbJ2hpZGRlbmZpZWxkbWFya2VyJ10gPSAnzprPgc+Fz4bPjCDPgM61zrTOr86/IM60zrXOr866z4TOtyc7CiRsYW5nWydoaWRkZW5maWVsZGNvbG9yJ10gPSAnzprPgc+Fz4bPjCDPgM61zrTOr86/IM+Hz4HPjs68zrHPhM6/z4InOwokbGFuZ1snaGlkZGVuJ10gPSAnzprPgc+Fz4bPjCc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnzpcgzr/Ovc6/zrzOsc+Dzq/OsSDOsc+Fz4TOrs+CIM+EzrfPgiDOmc60zrnPjM+EzrfPhM6xz4Igzq3Ph861zrkgzq7OtM63IM6xz4DOv860zr/OuM61zq8nOwokbGFuZ1snZXJyb3Jfbm9wcm9wZXJ0aWVzJ10gPSAnzpTOtc69IM6tz4fOv8+Fzr0gzr/Pgc65z4PPhM61zq8gzrnOtM65z4zPhM63z4TOtc+CJzsKJGxhbmdbJ2Vycm9yX25vcmVsYXRpb25zJ10gPSAnzpTOtc69IM6tz4fOv8+Fzr0gzrXPgM65zrvOtc6zzrXOryDOuc60zrnPjM+EzrfPhM61z4IgzrPOuc6xIM6xz4XPhM6uzr0gz4TOt869IM6/zrzOrM60zrEnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICfOlc+Fz4HOrc64zrfOus6xzr0gzr/OvM6szrTOtc+CJzsKJGxhbmdbJ2Vycm9yX29uZWdyb3VwcmVxdWlyZWQnXSA9ICfOkc+AzrHOuc+EzrXOr8+EzrHOuSDPg8+FzrzOvM61z4TOv8+Hzq4gz4POtSDPhM6/z4XOu86sz4fOuc+Dz4TOv869IM68zq/OsSDOv868zqzOtM6xJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICfOkc+AzrHOuc+EzrXOr8+EzrHOuSDPg8+FzrzOvM61z4TOv8+Hzq4gz4POtSDPhM6/z4XOu86sz4fOuc+Dz4TOv869IM68zq/OsSDOv868zqzOtM6xJzsKJGxhbmdbJ2JhY2snXSA9ICfOoM6vz4PPiSc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnzqTOvyAlcyDOtc6vzr3Osc65IM6xz4DOsc65z4TOv8+NzrzOtc69zr8gz4DOtc60zq/Ovyc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnzqPOt868zqzOvc61z4TOtSDPhM6xIM6xz4DOsc65z4TOv8+NzrzOtc69zrEgz4DOtc60zq/OsSDOvM61JzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ86Vz4DOuc+DzrfOvM6szr3Otc+EzrUgz4TOsSDOsc+AzrHOuc+Ezr/Pjc68zrXOvc6xIM+AzrXOtM6vzrEgzrzOtSc7CiRsYW5nWyduZXh0J10gPSAnzpXPgM+MzrzOtc69zr8nOwokbGFuZ1snZXJyb3JfZ3JvdXBleGlzdHMnXSA9ICfOpc+AzqzPgc+HzrXOuSDOrs60zrcgzr/OvM6szrTOsSDOvM61IM6xz4XPhM+MIM+Ezr8gz4zOvc6/zrzOsSc7CiRsYW5nWydyZXF1aXJlZCddID0gJ86Rz4DOsc65z4TOv8+NzrzOtc69zr8gz4DOtc60zq/Ovyc7CiRsYW5nWydvcHRpb25hbCddID0gJ86gz4HOv86xzrnPgc61z4TOuc66zqwnOwokbGFuZ1snb2ZmJ10gPSAnzpXOus+Ez4zPgic7CiRsYW5nWydsZW5ndGgnXSA9ICfOnM6uzrrOv8+CJzsKJGxhbmdbJ2xlbmd0aGNvbW1lbnQnXSA9ICc8YnI+KM+HzrHPgc6xzrrPhM6uz4HOtc+CIM+Dz4TOt869IM61zrnPg86xzrPPic6zzq4gzrrOtc65zrzOrc69zr/PhSknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ86Vz4DOuc67zr/Os86tz4IgzrzOtc69zr/PjSBEcm9wZG93biwgzrzOtSDOtM65zrHPh8+Jz4HOuc+Dz4TOuc66zq3PgiDOs8+BzrHOvM68zq3Pgic7CiRsYW5nWyd5ZXMnXSA9ICfOnc6xzrknOwokbGFuZ1sncHJvbXB0J10gPSAnzqDPgc6/z4TPgc6/z4DOric7CiRsYW5nWyd0eXBlJ10gPSAnzqTPjc+Azr/Pgic7CiRsYW5nWyd0ZXh0J10gPSAnzprOtc6vzrzOtc69zr8nOwokbGFuZ1snY2hlY2tib3gnXSA9ICfOkc69z4TOuc66zrXOr868zrXOvc6/IM61zrvOrc6zz4fOv8+FIENoZWNrYm94JzsKJGxhbmdbJ2VtYWlsJ10gPSAnzpTOuc61z43OuM+Fzr3Pg863IEVtYWlsJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnzqDOtc+BzrnOv8+Hzq4gzrrOtc65zrzOrc69zr/PhSc7CiRsYW5nWydkcm9wZG93biddID0gJ86czrXOvc6/z40gRHJvcGRvd24nOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICfOms6xzrvPjs+CIM6uzrvOuM6xz4TOtSc7CiRsYW5nWydsb2dvdXQnXSA9ICfOkc+Azr/Pg8+Nzr3OtM61z4POtyc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICfOkc67zrvOsc6zzq4gz4DPgc6/z4PPic+AzrnOus+Ozr0gz4HPhc64zrzOr8+DzrXPic69JzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnzpcgz4PPjc69zrTOtc+DzrcgzrHPgM6tz4TPhc+HzrUgLSDOnM63IM6xz4DOv860zrXOus+Ez4wgz4zOvc6/zrzOsSDPh8+Bzq7Pg8+Ezrcgzq4gzrrPic60zrnOus6/z40nOwokbGFuZ1snbG9naW4nXSA9ICfOlc6vz4POv860zr/Pgic7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICfOjM69zr/OvM6xIM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWydwcm9tcHRfcGFzc3dvcmQnXSA9ICfOms+JzrTOuc66z4zPgic7CiRsYW5nWydyZWdpc3RlciddID0gJ86VzrPOs8+BzrHPhs6uJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnzp7Otc+HzqzPg86xz4TOtSDPhM6/zr0gzrrPic60zrnOus+MPyc7CiRsYW5nWydkZWZhdWx0cyddID0gJ86gz4HOv861z4DOuc67zr/Os86tz4InOwokbGFuZ1sndGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICfOpM6/IM6xzr3Osc6zzr3Pic+BzrnPg8+EzrnOus+MIM+Hz4HOrs+Dz4TOtyDOtM61zr0gzrXPhc+Bzq3OuM63zrrOtSc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnzpHPhc+Ez4wgz4TOvyDPjM69zr/OvM6xIM+Hz4HOrs+Dz4TOtyAoJXMpIM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrHOuSDOrs60zrcnOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ86nz4HOrs+DzrcgU01UUCDOs865zrEgz4TOt869IM61z4DOuc66z43Pgc+Jz4POtyDPhM+Jzr0gzrTOuc61z4XOuM+Nzr3Pg861z4nOvSBlbWFpbD8nOwokbGFuZ1sncHJvbXB0X21pbnB3bGVuJ10gPSAnzpXOu86sz4fOuc+Dz4TOvyDOvM6uzrrOv8+CIM6az4nOtM65zrrOv8+NJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ86czq3Os865z4PPhM6/IM68zq7Ous6/z4IgzprPic60zrnOus6/z40nOwokbGFuZ1sncHJvbXB0X21pbnVubGVuJ10gPSAnzpXOu86sz4fOuc+Dz4TOvyDOvM6uzrrOv8+CIM6/zr3PjM68zrHPhM6/z4Igz4fPgc6uz4PPhM63JzsKJGxhbmdbJ3Byb21wdF9tYXh1bmxlbiddID0gJ86czq3Os865z4PPhM6/IM68zq7Ous6/z4Igzr/Ovc+MzrzOsc+Ezr/PgiDPh8+Bzq7Pg8+EzrcnOwokbGFuZ1sncHJvbXB0X3Nlc3Npb250aW1lb3V0J10gPSAnzqfPgc+Mzr3Ov8+CIM67zq7Ovs63z4IgzrTOuc61z4DOsc+Gzq7PgiAozrTOtc+Fz4TOtc+Bz4zOu861z4DPhM6xKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlbWFpbHJlZyddID0gJ86Vz4DOuc+Ez4HOrc+AzrXPhM6xzrkgzrcgzrXOs86zz4HOsc+Gzq4gz4PPhM63zr0gz4XPgM63z4HOtc+Dzq/OsSBFbWFpbCc7CiRsYW5nWydwcm9tcHRfZGZsdGdyb3VwJ10gPSAnzqDPgc6/zrXPgM65zrvOtc6zzrzOrc69zrcgzr/OvM6szrTOsSDOs865zrEgz4TOv8+Fz4Igzr3Orc6/z4XPgiDPh8+Bzq7Pg8+EzrXPgic7CiRsYW5nWydjaGFuZ2VzZXR0aW5nc190ZW1wbGF0ZSddID0gJ86RzrvOu86xzrPOriDPgc+FzrjOvM6vz4POtc+Jzr0gz4DPgc6/z4TPjc+Azr/PhSc7CiRsYW5nWydlcnJvcl9wYXNzd29yZG1pc21hdGNoJ10gPSAnzp/OuSDOus+JzrTOuc66zr/OryDPgM+Bz4zPg86yzrHPg863z4IgzrTOtc69IM+EzrHOuc+BzrnOrM62zr/Phc69JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ86czrcgzrHPgM6/zrTOtc66z4TPjCDPjM69zr/OvM6xIM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICfOnM63IM6xz4DOv860zrXOus+Ez4zPgiDOus+JzrTOuc66z4zPgic7CiRsYW5nWydlZGl0dXNlciddID0gJ86Vz4DOtc6+zrXPgc6zzrHPg86vzrEgz4PPhM6/zrnPh861zq/Pic69IM+Hz4HOrs+Dz4TOtyc7CiRsYW5nWyd2YWxpZCddID0gJ86IzrPOus+Fz4HOvyc7CiRsYW5nWyd1c2VybmFtZSddID0gJ86Mzr3Ov868zrEgz4fPgc6uz4PPhM63JzsKJGxhbmdbJ3N0YXR1cyddID0gJ86azrHPhM6sz4PPhM6xz4POtyc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICfOkc+Fz4TPjM+CIM6/IM+Hz4HOrs+Dz4TOt8+CIM60zrXOvSDOtc6vzr3Osc65IM68zq3Ou86/z4IgzrrOsc68zrzOr86xz4Igzr/OvM6szrTOsc+CJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICfOp8+Jz4HOr8+CIM65zrTOuc+Mz4TOt8+EzrXPgic7CiRsYW5nWyd2YWx1ZSddID0gJ86kzrnOvM6uJzsKJGxhbmdbJ2dyb3VwcyddID0gJ86fzrzOrM60zrXPgic7CiRsYW5nWydwcm9wZXJ0aWVzJ10gPSAnzpnOtM65z4zPhM63z4TOtc+CJzsKJGxhbmdbJ3Byb3BuYW1lJ10gPSAnzozOvc6/zrzOsSDOuc60zrnPjM+EzrfPhM6xz4InOwokbGFuZ1sncHJvcHZhbHVlJ10gPSAnzqTOuc68zq4gzrnOtM65z4zPhM63z4TOsc+CJzsKJGxhbmdbJ2FkZCddID0gJ86gz4HOv8+DzrjOrs66zrcnOwokbGFuZ1snZWRpdCddID0gJ86Vz4DOtc6+zrXPgc6zzrHPg86vzrEnOwokbGFuZ1snZXhwaXJlcyddID0gJ86bzq7Os861zrknOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnzp/Pgc65z4POvM+Mz4IgzrfOvM61z4HOv868zrfOvc6vzrHPgic7CiRsYW5nWycxMmhycyddID0gJzEyIM+Oz4HOtc+CJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQgz47Pgc61z4InOwokbGFuZ1snNDhocnMnXSA9ICc0OCDPjs+BzrXPgic7CiRsYW5nWycxd2VlayddID0gJzEgzrXOss60zr/OvM6szrTOsSc7CiRsYW5nWycyd2Vla3MnXSA9ICcyIM61zrLOtM6/zrzOrM60zrXPgic7CiRsYW5nWycxbW9udGgnXSA9ICcxIM68zq7Ovc6xz4InOwokbGFuZ1snM21vbnRocyddID0gJzMgzrzOrs69zrXPgic7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiDOvM6uzr3Otc+CJzsKJGxhbmdbJzF5ZWFyJ10gPSAnMSDOrc+Ezr/Pgic7CiRsYW5nWyduZXZlciddID0gJ86gzr/PhM6tJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ86kzr8gzqzPgc64z4HPic68zrEgzrXOs866zrHPhM6xz4PPhM6szrjOt866zrUgzrXPgM65z4TPhc+Hz47Pgi48YnIvPs6SzrXOss6xzrnPic64zq7PhM61IM+Mz4TOuSDOv8+Bzq/Pg86xz4TOtSDOtM65zrrOsc65z47OvM6xz4TOsSAizqTPgc6/z4DOv8+Azr/Or863z4POtyDOuc60zrnOv8+Ezq7PhM+Jzr0gz4PPhM6xIM60zrnOus6xzrnPjs68zrHPhM6xIM+Ezr/PhSBGcm9udEVuZFVzZXIuIic7CiRsYW5nWydwYXNzd29yZCddID0gJ86az4nOtM65zrrPjM+CIM+Az4HPjM+DzrLOsc+DzrfPgic7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ86Vz4DOsc69zqzOu863z4jOtyc7CiRsYW5nWydlcnJvcl9ncm91cG5hbWVfZXhpc3RzJ10gPSAnzpcgzr/OvM6szrTOsSDOvM61IM6xz4XPhM6uzr0gz4TOt869IM6/zr3Ov868zrHPg86vzrEgz4XPgM6sz4HPh861zrkgzq7OtM63JzsKJGxhbmdbJ2VkaXRncm91cCddID0gJ86Vz4DOtc6+zrXPgc6zzrHPg86vzrEgzr/OvM6szrTOsc+CJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ86Rz4DOv8+Dz4TOv867zq4nOwokbGFuZ1snY2FuY2VsJ10gPSAnzobOus+Fz4HOvyc7CiRsYW5nWydkZWxldGUnXSA9ICfOlM65zrHOs8+BzrHPhs6uJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnzpXOr8+Dz4TOtSDPg86vzrPOv8+Fz4HOv865IM+Mz4TOuSDOsc+Fz4TOrc+CIM61zq/Ovc6xzrkgzr/OuSDOus6xz4TOrM67zrvOt867zrXPgiDPgc+FzrjOvM6vz4POtc65z4IgzrPOuc6xIM6xz4XPhM6uzr0gz4TOt869IM6/zrzOrM60zrE/XG4gzpcgzrHPgM6/zrXOvc61z4HOs86/z4DOv86vzrfPg863IM68zrnOsc+CIM65zrTOuc+Mz4TOt8+EzrHPgiDOtM61zr0gOM6xIM6tz4fOtc65IM+Jz4Igz4PPhc69zq3PgM61zrnOsSDPhM63zr0gzrTOuc6xzrPPgc6xz4bOriDOus6sz4DOv865zrHPgiDOtc6zzrPPgc6xz4bOrs+CIM+Dz4TOv869IM+Azq/Ovc6xzrrOsSDOuc60zrnOv8+Ezq7PhM+Jzr0gzrPOuc6xIM+EzrfOvSDOv868zqzOtM6xL8+Hz4HOrs+Dz4TOty4gIM6Rz4DOu86sIM60zrXOvSA4zrEgzrXOr869zrHOuSDOtM65zrHOuM6tz4POuc68zrEuJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlZ3JvdXAnXSA9ICfOlc6vz4PPhM61IM+Dzq/Os86/z4XPgc6/zrkgzrPOuc6xIM+EzrfOvSDOtM65zrHOs8+BzrHPhs6uIM6xz4XPhM6uz4Igz4TOt8+CIM6/zrzOrM60zrHPgj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ86Vzq/Pg8+EzrUgz4POr86zzr/Phc+Bzr/OuSDOs865zrEgz4TOt869IM+AzrvOrs+BzrcgzrTOuc6xzrPPgc6xz4bOriDOsc+Fz4TOrs+CIM+EzrfPgiDOuc60zrnPjM+EzrfPhM6xz4I/XG7Oms6xz4RcJ86xz4XPhM+Mzr0gz4TOv869IM+Ez4HPjM+Azr8gzrjOsSDOtM65zrHOs8+BzrHPhs6/z43OvSDOus6xzrkgzr/PgM6/zrnOtc+CIM61zrPOs8+BzrHPhs6tz4Igz4fPgc6uz4PPhM63IM6xz4bOv8+Bzr/Pjc69IM+EzrfOvSDOuc60zrnPjM+EzrfPhM6xIM6xz4XPhM6uLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICfOkc66zrHOuM+Mz4HOuc+Dz4TOtc+CIM+AzrHPgc6szrzOtc+Ez4HOv865JzsKJGxhbmdbJ2lkJ10gPSAnzpHOvc6xzrPOvc+Jz4HOuc+Dz4TOuc66z4wnOwokbGFuZ1snbmFtZSddID0gJ86fzr3Ov868zrHPg86vzrEnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdvcnVwJ10gPSAnzqDPgc+MzrLOu863zrzOsSDPg8+EzrfOvSDPgM+Bzr/Pg864zq7Ous63IM6/zrzOrM60zrHPgic7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnzpzOriDOrc6zzrrPhc+BzrXPgiDPgM6xz4HOrM68zrXPhM+Bzr/OuSc7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ86Vz4bOsc+BzrzOv86zzq4nOwokbGFuZ1snZmlsdGVyJ10gPSAnzqbOr867z4TPgc6/JzsKJGxhbmdbJ3VzZXJmaWx0ZXInXSA9ICdSZWd1bGFyIEV4cHJlc3Npb24gzrPOuc6xIM+Ezr8gz4zOvc6/zrzOsSDPh8+Bzq7Pg8+EzrcnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICfOoM61z4HOuc6zz4HOsc+Gzq4nOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnzp/Ovc6/zrzOsc+Dzq/OsSDOv868zqzOtM6xz4InOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnzpHPgM6xzrPOv8+BzrXPjc61z4TOsc65IM63IM+Az4HPjM+DzrLOsc+DzrcuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnzqPPhs6szrvOvM6xJzsKJGxhbmdbJ2FkZGdyb3VwJ10gPSAnzqDPgc6/z4POuM6uzrrOtyDOvc6tzrHPgiDOn868zqzOtM6xz4InOwokbGFuZ1snYWRkdXNlciddID0gJ86gz4HOv8+DzrjOrs66zrcgzr3Orc6/z4Ugz4fPgc6uz4PPhM63JzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICfOlc+Fz4HOrc64zrfOus6xzr0gzr/OuSDPgM6xz4HOsc66zqzPhM+JIM+Hz4HOrs+Dz4TOtc+CIM+Azr/PhSDOuc66zrHOvc6/z4DOv865zr/Pjc69IM+EzrEgzrrPgc65z4TOrs+BzrnOsSc7CiRsYW5nWydncm91cCddID0gJ86fzrzOrM60zrEnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICfOlc+AzrnOu86/zrPOriDOv868zqzOtM6xz4InOwokbGFuZ1sncmVnaXN0cmF0aW9uX3RlbXBsYXRlJ10gPSAnzqDPgc+Mz4TPhc+Azr8gzrXOs86zz4HOsc+Gzq7Pgic7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICfOoM+Bz4zPhM+Fz4DOvyDOsc+Azr/Pg8+Nzr3OtM61z4POt8+CJzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnzqDPgc+Mz4TPhc+Azr8gz4PPjc69zrTOtc+DzrfPgic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ86gz4HOv8+EzrnOvM6uz4POtc65z4InOwokbGFuZ1sndXNlcnMnXSA9ICfOp8+Bzq7Pg8+EzrXPgic7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICfOlM65zrHPh861zq/Pgc65z4POtyDOtc6zzrPOtc6zz4HOsc68zq3Ovc+Jzr0gz4fPgc63z4PPhM+Ozr0nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICfOlM65zrHPh861zrnPgc65z4PPhM61zq/PhM61IM+Ezr/Phc+CIM61zrPOs861zrPPgc6xzrzOrc69zr/Phc+CIM+Hz4HOrs+Dz4TOtc+CJzsKJGxhbmdbJ2RlZmF1bHRmcm9udHBhZ2UnXSA9ICfOoM+Bzr/Otc+AzrnOu861zrPOvM6tzr3OtyDOsc+Bz4fOuc66zq4gz4POtc67zq/OtM6xJzsKJGxhbmdbJ2xhc3RhY2Nlc3NlZHBhZ2UnXSA9ICfOo861zrvOr860zrEgz4DOv8+FIM+Az4HOv8+Dz4DOtc67zqzPg8+EzrfOus61IM+Az4HPjM+Dz4bOsc+EzrEnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnzobOu867zrcgz4POtc67zq/OtM6xOiAnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2hlbHBfbm9pbmxpbmUnXSA9ICdVc2FkbyBjb24gdW5hIGRlIGxhcyBmb3JtYXMsIGVzdGUgcGFyJmFhY3V0ZTttZXRybyBlc3BlY2lmaWNhIHF1ZSBsYXMgZm9ybWFzIGRvIGRlYmVyJmFhY3V0ZTtuIHNlciBwdWVzdGFzIGVuIGxpbmVhLCBsbyBjdWFsIHByb3ZvY2FyJmFhY3V0ZTsgcXVlIGRlc3B1ZXMgZGVsIGVudmlvIGRlIHVuYSBmb3JtYSBlbCBjb250ZW5pZG8gcHJlZGV0ZXJtaW5hZG8gZGUgbGEgcGFnaW5hIGVuIGxhIHF1ZSBzZSBlbmN1ZW50cmUsIHNlYSByZWVtcGxhemFkby4nOwokbGFuZ1sndGl0bGVfcmVzZXRfc2Vzc2lvbiddID0gJ0FkdmVydGVuY2lhIGRlIHRpZW1wbyBkZSBlc3BlcmEgYWdvdGFkbyc7CiRsYW5nWydtc2dfcmVzZXRfc2Vzc2lvbiddID0gJ1N1IHNlc2kmb2FjdXRlO24gZGUgYWNjZXNvIGVzdGEgYSBwdW50byBkZSBleHBpcmFyLCBwb3IgZmF2b3Igb3ByaW1hIE9LIHBhcmEgY29uZmlybWFyIHN1IGFjdGl2aWRhZCBlbiBlc3RlIHNpdGlvJzsKJGxhbmdbJ29rJ10gPSAnT2sgJzsKJGxhbmdbJ3Jlc2V0c2Vzc2lvbl90ZW1wbGF0ZSddID0gJ1JlZXN0YWJsZWNlciBwbGFudGlsbGEgZGUgc2VzaSZvYWN1dGU7bic7CiRsYW5nWydpbmZvX25hbWUnXSA9ICdFc3RlIGVzIGVsIG5vbWJyZSBkZWwgY2FtcG8sIHVzYWRvIHBhcmEgbGxhbWFkYXMgZW4gU21hcnR5LiBTb2xvIHB1ZWRlIGNvbnRlbmVyIGNhcmFjdGVyZXMgYWxmYW51bWVyaWNvcyB5IGd1aW9uZXMgbWVub3Jlcy4nOwokbGFuZ1sndmlzaXRvcnNfdGFiJ10gPSAnVmlzaXRhbnRlcyc7CiRsYW5nWydmZXVfZ3JvdXBzX3Byb21wdCddID0gJ1NlbGVjY2lvbmUgdW5vIG8gbWFzIGdydXBvcyBGRVUgcXVlIHRpZW5lbiBwZXJtaXNvIHBhcmEgdmVyIGVzdGEgcCZhYWN1dGU7Z2luYSc7CiRsYW5nWydlcnJvcl9tdXN0c2VsZWN0X2dyb3VwJ10gPSAnVW4gZ3J1cG8gZGViZSBzZXIgc2VsZWNjaW9uYWRvJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGVjY2lvbmUgdW5vJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICdBJm50aWxkZTtvIGRlIGluaWNpbyc7CiRsYW5nWydlbmRfeWVhciddID0gJ0EmbnRpbGRlO28gZGUgZmluJzsKJGxhbmdbJ2RhdGUnXSA9ICdGZWNoYSc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdUYW1hJm50aWxkZTtvIGRlIGltYWdlbiBtaW5pYXR1cmEnOwokbGFuZ1snT25VcGRhdGVHcm91cCddID0gJ0N1YW5kbyBzZSBtb2RpZmlxdWUgZWwgZ3J1cG8gZGUgdXN1YXJpb3MnOwokbGFuZ1snZXJyb3JfdG9vbWFueXNlbGVjdGVkJ10gPSAnRGVtYXNpYWRvcyB1c3VhcmlvcyBzZWxlY2Npb25hZG9zIHBhcmEgb3BlcmFjaW9uZXMgdm9sdW1pbm9zYXMsIHBvciBmYXZvciByZWR1emNhIGEgMjUwIG8gbWVub3NsZXNzJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnJmlxdWVzdDtFc3QmYWFjdXRlOyBzZWd1cm8gZGUgYm9ycmFyIGxvcyB1c3VhcmlvcyBzZWxlY2Npb25hZG9zPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdCb3JyYXIgbGEgc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWydwcm9tcHRfcmFuZG9tdXNlcm5hbWUnXSA9ICdHZW5lcmFyIHVzdWFyaW8gYWxlYXRvcmlvIGN1YW5kbyBzZSBhZ3JlZ3VlbiBudWV2b3MgdXN1YXJpb3MnOwokbGFuZ1snbW9udGhzJ10gPSAnbWVzZXMnOwokbGFuZ1sncHJvbXB0X2V4cGlyZWFnZSddID0gJ1BlcmlvZG8gcHJlZGV0ZXJtaW5hZG8gZGUgZXhwaXJhY2kmb2FjdXRlO24gZGUgdXN1YXJpb3MgJzsKJGxhbmdbJ25vdGlmaWNhdGlvbl9zZXR0aW5ncyddID0gJ0FqdXN0ZXMgZGUgbm90aWZpY2FjaW9uZXMnOwokbGFuZ1sncHJvcGVydHlfc2V0dGluZ3MnXSA9ICdBanVzdGVzIGRlIHByb3BpZWRhZGVzJzsKJGxhbmdbJ3JlZGlyZWN0aW9uX3NldHRpbmdzJ10gPSAnQWp1c3RlcyBkZSByZWRpcmVjY2lvbmFtaWVudG8nOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FqdXN0ZXMgZ2VuZXJhbGVzJzsKJGxhbmdbJ3Nlc3Npb25fc2V0dGluZ3MnXSA9ICdBanVzdGVzIGRlIHNlc2kmb2FjdXRlO24geSBjb29raWVzJzsKJGxhbmdbJ2ZpZWxkX3NldHRpbmdzJ10gPSAnQWp1c3RlcyBkZSBjYW1wb3MnOwokbGFuZ1snZXJyb3JfbG9zdHVuX25vbnJlcXVpcmVkJ10gPSAnVGhlIGxvc3R1c2VybmFtZSBmbGFnIGNhbiBvbmx5IGJlIHVzZWQgb24gcmVxdWlyZWQgZmllbGRzJzsKJGxhbmdbJ3Byb3BfdGV4dGFyZWFfd3lzaXd5ZyddID0gJ0FsbG93IHVzZSBvZiB3eXNpd3lnIG9uIHRoaXMgdGV4dCBhcmVhJzsKJGxhbmdbJ2luZm9fY29va2llc3RvcmVtZW1iZXInXSA9ICc8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBUaGlzIHVzZXMgdGhlIG1jcnlwdCBmdW5jdGlvbnMgZm9yIGVuY3J5cHRpb24gcHVycG9zZXMsIGFuZCB0aGV5IGNvdWxkIG5vdCBiZSBkZXRlY3RlZCBvbiB5b3VyIGluc3RhbGwuICAgUGxlYXNlIGNvbnRhY3QgeW91ciBzZXJ2ZXIgYWRtaW5pc3RyYXRvci4nOwokbGFuZ1snZWRpdGluZ191c2VyJ10gPSAnVXN1YXJpbyBkZSBlZGljaSZvYWN1dGU7bic7CiRsYW5nWydub2lubGluZSddID0gJ0RvIG5vdCBpbmxpbmUgZm9ybXMnOwokbGFuZ1snaW5mb19sb3N0dW4nXSA9ICdDbGljayBoZXJlIGlmIHlvdSBjYW5ub3QgcmVtZW1iZXIgeW91ciBsb2dpbiBkZXRhaWxzJzsKJGxhbmdbJ2luZm9fZm9yZ290cHcnXSA9ICdDbGljayBoZXJlIGlmIHlvdSBjYW5ub3QgcmVtZW1iZXIgeW91ciBwYXNzd29yZCc7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJ0NsaWNrIGhlcmUgdG8gc2lnbiBvdXQnOwokbGFuZ1snaW5mb19jaGFuZ2VzZXR0aW5ncyddID0gJ0NsaWNrIGhlcmUgdG8gYWRqdXN0IHlvdXIgcGFzc3dvcmQgb3Igb3RoZXIgaW5mb3JtYXRpb24nOwokbGFuZ1sndmlld3VzZXJfdGVtcGxhdGUnXSA9ICdWaWV3IFVzZXIgVGVtcGxhdGUnOwokbGFuZ1snZXZlbnQnXSA9ICdFdmVudCc7CiRsYW5nWydmZXVfZXZlbnRfbm90aWZpY2F0aW9uJ10gPSAnRkVVIEV2ZW50IE5vdGlmaWNhdGlvbic7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX2FkZHJlc3MnXSA9ICdOb3RpZmljYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnTm90aWZpY2F0aW9uIEVtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fc3ViamVjdCddID0gJ05vdGlmaWNhdGlvbiBFbWFpbCBTdWJqZWN0JzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25zJ10gPSAnRW1haWwgTm90aWZpY2F0aW9ucyc7CiRsYW5nWydPbkxvZ2luJ10gPSAnQWwgaW5ncmVzYXInOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdBbCBzYWxpcic7CiRsYW5nWydPbkV4cGlyZVVzZXInXSA9ICdPbiBTZXNzaW9uIEV4cGlyeSc7CiRsYW5nWydPbkNyZWF0ZVVzZXInXSA9ICdPbiBOZXcgVXNlciBDcmVhdGVkJzsKJGxhbmdbJ09uRGVsZXRlVXNlciddID0gJ09uIFVzZXIgRGVsZXRlZCc7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdPbiBVc2VyIFNldHRpbmdzIENoYW5nZWQnOwokbGFuZ1snT25DcmVhdGVHcm91cCddID0gJ09uIFVzZXIgR3JvdXAgQ3JlYXRlZCc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBEZWxldGVkJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcHJlbXNnJ10gPSAnVGhlIGxvc3QgbG9naW4gZGV0YWlscyBmdW5jdGlvbmFsaXR5IGhhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLiAgV2UgaGF2ZSBmb3VuZCBhIHVuaXF1ZSB1c2VybmFtZSB0aGF0IG1hdGNoZXMgdGhlIGRldGFpbHMgeW91IGVudGVyZWQuJzsKJGxhbmdbJ3lvdXJfdXNlcm5hbWVfaXMnXSA9ICdTdSBub21icmUgZGUgdXN1YXJpbyBlcyc7CiRsYW5nWydsb3N0dW5jb25maXJtX3Bvc3Rtc2cnXSA9ICdXZSByZWNvbW1lbmQgeW91IHJlY29yZCB0aGlzIGluZm9ybWF0aW9uIGluIGEgc2VjdXJlLCBidXQgcmV0cmlldmFibGUgbG9jYXRpb24uJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBjaGFuZ2Ugc2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2FmdGVyX3ZlcmlmeV9jb2RlJ10gPSAnSUQgUCZhYWN1dGU7Zy4vQWxpYXMgYSBkb25kZSBpciBsdWVnbyBkZSB2ZXJpZmljYXIgYyZvYWN1dGU7ZGlnbyAqJzsKJGxhbmdbJ2xvc3R1bl9kZXRhaWxzX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIERldGFsbGVzIGRlIFVzdWFyaW9zIFBlcmRpZG9zJzsKJGxhbmdbJ2xvc3R1bl9jb25maXJtX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIENvbmZpcm1hY2kmb2FjdXRlO24gZGUgVXN1YXJpb3MgUGVyZGlkb3MnOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlbWF0Y2gnXSA9ICdFcnJvcjogTSZhYWN1dGU7cyBkZSB1bmEgY3VlbnRhIGRlIHVzdWFyaW8gY29pbmNpZGVuIGNvbiBsYXMgcHJvcGllZGFkZXMgZXNwZWNpZmljYWRhcyc7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdFcnJvcjogTm8gc2UgcHVkbyBoYWxsYXIgdW4gdXN1YXJpbyBxdWUgY29pbmNpZGEnOwokbGFuZ1snZXJyb3JfZ3JvdXBub3Rmb3VuZCddID0gJ0Vycm9yOiBObyBzZSBwdWRvIGhhbGxhciB1biBncnVwbyBjb24gZXNlIG5vbWJyZSc7CiRsYW5nWydyZWFkb25seSddID0gJ1NvbG8gTGVjdHVyYSc7CiRsYW5nWydwcm9tcHRfdXNlcm1hbmlwdWxhdG9yJ10gPSAnQ2xhc2UgVXNlciBNYW5pcHVsYXRvcic7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdRdWl0YWRvIGRlbCBzaXN0ZW1hIHBvciBlbCBhZG1pbmlzdHJhZG9yJzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdNb3N0cmFyIHNvbG8gdXN1YXJpb3MgbG9ndWVhZG9zJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdEZXNsb2d1ZWFyIGVzdGUgdXN1YXJpbyc7CiRsYW5nWyd1c2VyX3Byb3BlcnRpZXMnXSA9ICdQcm9waWVkYWRlcyBkZWwgVXN1YXJpbyc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0hpc3RvcmlhbCBkZWwgVXN1YXJpbyc7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnRhcic7CiRsYW5nWydjbGVhciddID0gJ0xpbXBpYXInOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJoaXN0b3J5J10gPSAnRXhwb3J0YXIgaGlzdG9yaWFsIGRlbCB1c3VhcmlvIGEgQVNDSUknOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdMaW1waWFyIHJlZ2lzdHJvcyBkZWwgSGlzdG9yaWFsIGRlbCBVc3VhcmlvJzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJyZpcXVlc3Q7T2x2aWQmb2FjdXRlOyBzdXMgRGF0b3MgZGUgQWNjZXNvPyc7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdFeHBvcnRhciBkZWZpbmljaSZvYWN1dGU7biBkZSBncnVwbyAoeSBwcm9waWVkYWRlcykgYSBYTUwnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZSddID0gJ01hbnRlbmltaWVudG8gZGVsIEhpc3RvcmlhbCBkZWwgVXN1YXJpbyc7CiRsYW5nWyd5ZXMnXSA9ICdTJmlhY3V0ZTsnOwokbGFuZ1snbm8nXSA9ICdObyAnOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnRGUnOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogU2luIExpbWl0ZSAqKic7CiRsYW5nWydkYXRlX29uZWhvdXJvbGQnXSA9ICdVbmEgSG9yYSc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICdTZWlzIEhvcmFzJzsKJGxhbmdbJ2RhdGVfdHdlbHZlaG91cm9sZCddID0gJ0RvY2UgSG9yYXMnOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICdVbiBEJmlhY3V0ZTthJzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJ1VuYSBTZW1hbmEnOwokbGFuZ1snZGF0ZV90d293ZWVrc29sZCddID0gJ0RvcyBTZW1hbmFzJzsKJGxhbmdbJ2RhdGVfb25lbW9udGhvbGQnXSA9ICdVbiBNZXMnOwokbGFuZ1snZGF0ZV90aHJlZW1vbnRoc29sZCddID0gJ1RyZXMgTWVzZXMnOwokbGFuZ1snZGF0ZV9zaXhtb250aHNvbGQnXSA9ICdTZWlzIE1lc2VzJzsKJGxhbmdbJ2RhdGVfb25leWVhcm9sZCddID0gJ1VuIEEmbnRpbGRlO28nOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnQWdydXBhciB5IE9yZGVuYXInOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ1JlZ2lzdHJvcyBxdWUgY3VtcGxhbiBlbCBjcml0ZXJpbyc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfZGVzYyddID0gJ05vbWJyZSBkZSBVc3VhcmlvIGRlc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdOb21icmUgZGUgVXN1YXJpbyBhc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2Rlc2MnXSA9ICdGZWNoYSBkZXNjZW5kZW50ZSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdGZWNoYSBhc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ1RpcG8gZGUgRXZlbnRvIGRlc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fYXNjJ10gPSAnVGlwbyBkZSBFdmVudG8gYXNjZW5kZW50ZSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuIElQIGRlc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBJUCBhc2NlbmRlbnRlJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdIaXN0b3JpYWwgbm8gZGV0ZWN0YWRvJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzdGFibGVjZXInOwokbGFuZ1sncHJvbXB0X2dyb3VwX2lwJ10gPSAnQWdydXBhciBwb3IgRGlyZWNjaSZvYWN1dGU7biBJUCc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0ZpbHRybyBkZSBUaXBvIGRlIEV2ZW50byc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdNb3N0cmFyIHNvbG8gZXZlbnRvcyBpbmZlcmlvcmVzIGE6JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdMaW1pdGUgZGUgbGEgUCZhYWN1dGU7Z2luYSc7CiRsYW5nWydmb3InXSA9ICdwYXJhJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAnSW5mb3JtZSBkZWwgSGlzdG9yaWFsIGRlbCBVc3VhcmlvJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdEZXNjb25vY2lkbyc7CiRsYW5nWydwcm9tcHRfaXBhZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBJUCc7CiRsYW5nWydwcm9tcHRfZXZlbnR0eXBlJ10gPSAnVGlwbyBkZSBFdmVudG8nOwokbGFuZ1sncHJvbXB0X2RhdGUnXSA9ICdGZWNoYSc7CiRsYW5nWydwcm9tcHRfcmV0dXJuJ10gPSAnVm9sdmVyJzsKJGxhbmdbJ2ltcG9ydF9jb21wbGV0ZV9tc2cnXSA9ICdPcGVyYWNpJm9hY3V0ZTtuIGRlIEltcG9ydGFjaSZvYWN1dGU7biBDb21wbGV0YWRhJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ0wmaWFjdXRlO25lYXMgUHJvY2VzYWRhcyc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRXJyb3JlcyBFbmNvbnRyYWRvcyc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnUmVnaXN0cm9zIEEmbnRpbGRlO2FkaWRvcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnTm8gc2UgcHVlZGUgaGFsbGFyIGxhcyBwcm9waWVkYWRlcyBkZWwgZ3J1cG8gJXMnOwokbGFuZ1snZXJyb3Jfbm9yZXNwb25zZWZyb21zZXJ2ZXInXSA9ICdObyBzZSBwdWRvIG9idGVuZXIgdW5hIHJlc3B1ZXN0YSBkZWwgc2Vydmlkb3IgU01UUCc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlbm90Zm91bmQnXSA9ICdObyBzZSBwdWRvIGVuY29udHJhciBlbCBmaWNoZXJvIGVzcGVjaWZpY2FkbyAoJVMpJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICdWYWxvciBpbnZhbGlkbyBwYXJhIGxhIGxpc3RhIGRlc3BsZWdhYmxlICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkbGVuZ3RoJ10gPSAnRWwgY2FtcG8gJXMgZXhjZWRlIGxhIGxvbmdpdHVkIG0mYWFjdXRlO3hpbWEnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICdFcnJvciBkdXJhbnRlIGxhIEltcG9ydGFjaSZvYWN1dGU7biAobCZpYWN1dGU7bmVhICVzKTogJXMnOwokbGFuZ1snZXJyb3JfcHJvcGVydHlkZWZucyddID0gJ05vIHNlIHB1ZG8gb2J0ZW5lciBsYSBkZWZpbmljaSZvYWN1dGU7biBkZSBsYSBwcm9waWVkYWQgKGVycm9yIGludGVybm8pJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbyddID0gJ1Byb2JsZW1hcyBhbCBjb25maWd1cmFyIGluZm8gZGVsIHVzdWFyaW8nOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ05vIHNlIGVuY29udHImb2FjdXRlOyBsYSBjb2x1bW5hIGNvcnJlc3BvbmRpZW50ZSBhbCBjYW1wbyByZXF1ZXJpZG8gJXMnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3BlcnRpZXMnXSA9ICdObyBzZSBlbmNvbnRyYXJvbiBwcm9waWVkYWRlcyBwYXJhIGVsIGdydXBvIGVzcGVjaWZpY2Fkbyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnRWwgZm9ybWF0byBkZWwgZmljaGVybyBlc3BlY2lmaWNhZG8gbm8gZXMgY29ycmVjdG8nOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ05vIHNlIHB1ZG8gYWJyaXIgZWwgZmljaGVybyc7CiRsYW5nWydpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdCddID0gJzxoND5JbmZvcm1hY2kmb2FjdXRlO24gZGUgRm9ybWF0byBkZSBBcmNoaXZvPC9oND4NCjxwPkVsIGFyY2hpdm8gcGFyYSBpbXBvcnRhciBkZWJlIHNlciBkZSBmb3JtYXRvIEFTQ0lJIHVzYW5kbyBsb3MgdmFsb3JlcyBzZXBhcmFkb3MgcG9yIGNvbWEuICBDYWRhIGwmaWFjdXRlO25lYSBlbiBlc3RlIGFyY2hpdm8gZGUgaW1wb3J0YWNpJm9hY3V0ZTtuIChjb24gZXhlcGNpJm9hY3V0ZTtuIGRlIGxhIGwmaWFjdXRlO25lYSBkZSBlbmNhYmV6YWRvcywgZGlzY3V0aWRhIGFiYWpvKSByZXByZXNlbnRhIGVsIHJlZ2lzdHJvIGRlIHVuIHVzdWFyaW8uICBDYWRhIGwmaWFjdXRlO25lYSBkZWJlIGNvbnRlbmVyIGVsIG1pc21vIG4mdWFjdXRlO21lcm8gZGUgY2FtcG9zLCB5IGVsIG9yZGVuIGRlIGxvcyBjYW1wb3MgZW4gY2FkYSBsJmlhY3V0ZTtuZWEgZGViZSBzZXIgaWQmZWFjdXRlO250aWNvLjwvcD4NCjxoNT5MJmlhY3V0ZTtuZWEgZGUgZW5jYWJlemFkbzwvaDU+DQo8dWw+DQo8bGk+TGEgcHJpbWVyYSBsJmlhY3V0ZTtuZWEgZGVsIGFyY2hpdm8gZGViZSBjb21lbnphciBjb24gZG9zIGNhcmFjdGVyZXMgbnVtZXJhbCAoXCMpLCB5IGxvcyBub21icmUgZGUgY2FkYSB1bm8gZGUgbG9zIGNhbXBvcyBlbiBlbCBhcmNoaXZvLiAgRWwgbm9tYnJlIGRlIGVzdG9zIGNhbXBvcyBlcyBzaWduaWZpY2F0aXZvLiAgSGF5IGFsZ3Vub3Mgbm9tYnJlIGRlIGNhbXBvcyByZXF1ZXJpZG9zICh2ZXIgYWJham8pLCB5IG90cm9zIG5vbWJyZXMgZGUgY2FtcG9zIGRlYmVuIGNvaW5jaWRpciBjb24gZWwgbm9tYnJlIGRlIGxhcyBwcm9waWVkYWRlcyBhc29jaWFkYXMgYSBsb3MgZ3J1cG9zIGRlIHVzdWFyaW9zIGEgbG9zIGN1YWxlcyB2YW4gYSBzZXIgYWdyZWdhZG9zLjwvbGk+DQo8bGk+RWwgcHJvY2VzbyBkZSBpbXBvcnRhY2kmb2FjdXRlO24gdmEgYSBmYWxsYXIgc2kgbG9zIGNhbXBvcyBlbiBlbCBhcmNoaXZvIGRlIGltcG9ydGFyIG5vIGNvaW5jaWRlbiBjb24gdG9kYXMgbGFzIHByb3BpZWRhZGVzIHJlcXVlcmlkYXMgYXNvY2lhZGFzIGEgbG9zIGdydXBvcyBkZSB1c3VhcmlvcyBhIGxvcyBjdWFsZXMgdmFuIGEgc2VyIGFncmVnYWRvcy48L2xpPg0KPGxpPkVsIGFyY2hpdm8gZGUgaW1wb3J0YXIgcHVlZGUgY29udGVuZXIgY2FtcG9zIHF1ZSByZXByZXNlbnRlbiBhbGd1bmFzIGRlIGxhcyBwcm9waWVkYWRlcyBvcGNpb25hbGVzIGVuIGVsIGdydXBvIGVzcGVjaWZpY2Fkby48L2xpPg0KPGxpPkVsIHByb2Nlc28gZGUgaW1wb3J0YXIgdmEgYSBpZ25vcmFyIGN1YWxxdWllciBjYW1wbyBlbiBlbCBhcmNoaXZvIGRlIGltcG9ydGFyIHF1ZSBwdWVkYSBzZXIgZGVzY29ub2NpZG8sIG8gbWFwZWUgcHJvcGllZGFkZXMgcXVlIHNlIGhhbGxlbiA8ZW0+YXBhZ2FkYXM8L2VtPiBlbiBlbCBncnVwbyBlc3BlY2lmaWNhZG8gZGUgdXN1YXJpb3MuPC9saT4NCjwvdWw+DQo8aDU+Q29sdW1uYXIgRGF0YTwvaDU+DQo8dWw+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gRmllbGQgLSBUaGUgZGVzaXJlZCB1c2VybmFtZS4NCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNuIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBUaGUgcmVjb3JkIHdpbGwgZmFpbCBpZiBhIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZS48L3A+PC9saT4NCjxsaT5UaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBGaWVsZCAtIFRvZG88L2xpPg0KPGxpPlRoZSA8c3Ryb25nPmV4cGlyZXM8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5Ecm9wZG93biBGaWVsZHMNCiAgICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QgRmllbGRzDQogICAgPHA+TXVsdGlzZWxlY3QgZmllbGRzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBBU0NJSSBmaWxlIGFzIGEgOiBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzLCB3aGVyZSBlYWNoIHN0cmluZyByZXByZXNlbnRzIHRoZSB0ZXh0IHNob3duIGluIHRoZSBtdWx0aXNlbGVjdCBsaXN0PC9wPg0KPC9saT4NCjxsaT5JbWFnZSBGaWVsZHMNCiAgICA8cD5JbWFnZSBhcmUgZmllbGRzIHdobyYjMDM5O3MgY29sdW1uIG5hbWUgbWF0Y2hlcyBhIHByb3BlcnR5IG9mIHR5cGUgSW1hZ2UuICBJZiB0aGlzIGZpZWxkIGlzIGEgcmVxdWlyZWQgcGFydCBvZiB0aGUgZGVzdGluYXRpb24gZ3JvdXAsIHRoZW4gdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiB0aGUgdXBsb2FkcyBkaXNyZWN0b3J5IG9mIHRoZSBDTVMgaW5zdGFsbGF0aW9uLiAgSWYgdGhlIGltYWdlIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvcD4NCjwvdWw+DQo8aDU+Tm90ZXM8L2g1Pg0KPHA+VGhlIGltcG9ydCBwcm9jZXNzIGlzIHN1YmplY3QgdG8gdGhlIGxpbWl0YXRpb25zIGltcG9zZWQgYnkgdGhlIGhvc3QgcHJvdmlkZXIsIHN1Y2ggYXMgbWVtb3J5IGxpbWl0YXRpb25zLCBwcm9jZXNzaW5nIHRpbWUsIGZpbGUgc2l6ZSB1cGxvYWQsIGFuZCBzYWZlIG1vZGUgcmVzdHJpY3Rpb25zLiAgQW55IG9uZSBvZiB0aGVzZSBsaW1pdGF0aW9ucyBtYXkgY2F1c2UgdGhlIGltcG9ydCB0byBmYWlsLiBUaGVyZWZvcmUgaXQgaXMgYWR2aXNhYmxlIHRvIGVuc3VyZSB0aGF0IGltcG9ydCBmaWxlcyBhcmUgc21hbGxlciBpbiBzaXplLCBhbmQgc2ltcGxlciBpbiBuYXR1cmUuPC9wPg0KPHA+VGhvdWdoIGV2ZXJ5IGVmZm9ydCBoYXMgYmVlbiBtYWRlIHRvIGVuc3VyZSB0aGF0IGRhdGFiYXNlIGNvcnJ1cHRpb24gd2lsbCBub3Qgb2NjdXIsIGl0IGlzIGFkdmlzYWJsZSB0byBwZXJmb3JtIGEgZGF0YWJhc2UgYmFja3VwIGJlZm9yZSBkb2luZyBhIHVzZXIgaW1wb3J0LjwvcD4NCjxoNT5FeGFtcGxlPC9oNT4NCjxwcmU+DQojI3VzZXJuYW1lLGZpcnN0X25hbWUsbGFzdF9uYW1lLGVtYWlsLGNpdHksc3RhdGUsY291bnRyeSx6aXANCnVzZXIxLHRlc3QsdXNlcix1c2VyMUBzb21lZG9tYWluLmNvbSxzb21ld2hlcmUsVFgsVVMsMTIzNDUNCjwvcHJlPg0KJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRkZXN0Z3JvdXAnXSA9ICdJbXBvcnRhciBVc3VhcmlvcyBhIEVzdGUgR3J1cG8nOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnSW5wb3J0YXIgRmljaGVybyBDU1YnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdBcmNoaXZvIFhNTCBkZSBFbnRyYWRhJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0V4cG9ydGFyIFVzdWFyaW9zJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR1c2VycyddID0gJ0ltcG9ydGFyIFVzdWFyaW9zJzsKJGxhbmdbJ3Byb21wdF9jbGVhciddID0gJ0xpbXBpYXInOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdSdXRhIGRlIERlc3Rpbm8gcGFyYSBsYSBJbWFnZW4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ191cGxvYWQnXSA9ICdIYSBvY3VycmlkbyB1biBwcm9ibGVtYSBjb24gdW5hIHN1YmlkYSBpbmV4aXN0ZW50ZSAocGVybyByZXF1ZXJpZGEpJzsKJGxhbmdbJ2Vycm9yX2JhZF94bWwnXSA9ICdObyBzZSBwdWVkZSBwYXJzZWFyIGVsIGFyY2hpdm8gWE1MIHByb3Zpc3RvJzsKJGxhbmdbJ2Vycm9yX25vdGVtcHR5Z3JvdXAnXSA9ICdObyBzZSBwdWVkZSBlbGltaW5hciB1biBncnVwbyBjb24gdXN1YXJpb3MnOwokbGFuZ1snZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucyddID0gJ0VzdGUgdXN1YXJpbyB5YSBlc3QmYWFjdXRlOyBsb2d1ZWFkbyc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdFbCB0ZXh0byBkZSBsYSBpbWFnZW4gbm8gZXMgY29ycmVjdG8nOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ1Blcm1pdGlyIHF1ZSBsb3MgdXN1YXJpb3Mgc2UgbG9ndWVlbiBtJmFhY3V0ZTtzIGRlIHVuYSB2ZXonOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbmVzIGRlIGltYWdlbiBwZXJtaXRpZGFzIHBhcmEgbG9zIFVzdWFyaW9zJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVVc2VyJ10gPSAnPGgzPk9uRGVsZXRlVXNlcjxoMz4NCjxwPkV2ZW50byBnZW5lcmFkbyBjdWFuZG8gdW4gdXN1YXJpbyBlcyBlbGltaW5hZG88L3A+DQo8aDQ+UGFyJmFhY3V0ZTttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gTm9tYnJlIGRlbCB1c3VhcmlvPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIElkIGRlbCB1c3VhcmlvPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPlVuIGV2ZW50byBnZW5lcmFkbyBjdWFuZG8gc2UgY3JlYSB1biB1c3VhcmlvPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gRWwgbm9tYnJlIGRlIHVzdWFyaW88L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gRWwgaWQgZGUgdXN1YXJpbzwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5VbiBldmVudG8gZ2VuZXJhZG8gY3VhbmRvIHNlIGFjdHVhbGl6YSB1biB1c3VhcmlvIChjdWFuZG8gbG8gaGFjZSBwb3Igc2kgbWlzbW8gbyBwb3IgZWwgYWRtaW4pPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gTm9tYnJlIGRlbCB1c3VhcmlvPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIElkIGRlbCB1c3VhcmlvPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+VW4gZXZlbnRvIGdlbmVyYWRvIGN1YW5kbyBzZSBjcmVhIHVuIGdydXBvPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gRWwgbm9tYnJlIGRlIGdydXBvPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIExhIGRlc2NyaXBjaSZvYWN1dGU7biBkZWwgZ3J1cG88L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gSWQgZGVsIGdydXBvPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVHcm91cCddID0gJzxoMz5PbkRlbGV0ZUdyb3VwPGgzPg0KPHA+VW4gZXZlbnRvIGdlbmVyYWRvIGN1YW5kbyBzZSBlbGltaW5hIHVuIGdydXBvPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gRWwgbm9tYnJlIGRlbCBncnVwbzwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBJZCBkZWwgZ3J1cG88L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5VbiBldmVudG8gZ2VuZXJhZG8gY3VhbmRvIHVuIHVzdWFyaW8gaW5ncmVzYSBhbCBQb3J0YWw8L3A+DQo8aDQ+UGFyJmFhY3V0ZTttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gRWwgbm9tYnJlIGRlbCB1c3VhcmlvIHF1ZSBpbmdyZXMmb2FjdXRlOzwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBMYSBkaXJlY2NpJm9hY3V0ZTtuIElQIGRlbCBjbGllbnRlPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWRvdXQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25FeHBpcmVVc2VyJ10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gZXhwaXJlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ1VuIGV2ZW50byBnZW5lcmFkbyBjdWFuZG8gdW4gdXN1YXJpbyBpbmdyZXNhIGFsIHNpc3RlbWEnOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ1VuIGV2ZW50byBnZW5lcmFkbyBjdWFuZG8gdW4gdXN1YXJpbyBzYWxlIGRlbCBzaXN0ZW1hJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnVW4gZXZlbnRvIGdlbmVyYWRvIGN1YW5kbyBsYSBzZXNpJm9hY3V0ZTtuIGRlIHVuIHVzdWFyaW8gZXhwaXJhJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVVc2VyJ10gPSAnVW4gZXZlbnRvIGdlbmVyYWRvIGN1YW5kbyB1biBudWV2byB1c3VhcmlvIGVzIGNyZWFkbyc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ1VuIGV2ZW50byBnZW5lcmFkbyBjdWFuZG8gbGEgaW5mbyBkZSB1biB1c3VhcmlvIGVzIGFjdHVhbGl6YWRhJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnVW4gZXZlbnRvIGdlbmVyYWRvIGN1YW5kbyBsYSBjdWVudGEgZGUgdW4gdXN1YXJpbyBlcyBlbGltaW5hZGEnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZUdyb3VwJ10gPSAnVW4gZXZlbnRvIGdlbmVyYWRvIGN1YW5kbyB1biBncnVwbyBkZSB1c3VhcmlvcyBlcyBjcmVhZG8nOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZUdyb3VwJ10gPSAnVW4gZXZlbnRvIGdlbmVyYWRvIGN1YW5kbyB1biBncnVwbyBkZSB1c3VhcmlvcyBlcyBhY3R1YWxpemFkbyc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlR3JvdXAnXSA9ICdVbiBldmVudG8gZ2VuZXJhZG8gY3VhbmRvIHVuIGdydXBvIGRlIHVzdWFyaW9zIGVzIGVsaW1pbmFkbyc7CiRsYW5nWydiYWNrZW5kX2dyb3VwJ10gPSAnR3J1cG8gZGUgQWRtaW5pc3RyYWNpJm9hY3V0ZTtuJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogTG9zIHNpZ3VpZW50ZXMgbWFjcm9zIHB1ZWRlbiB1c2Fyc2UgZW4gZXN0b3MgY2FtcG9zOiB7JHVzZXJuYW1lfSx7JGdyb3VwfS4gQ3VhbmRvIHNlIHVzYSBlbCBtYWNybyB7JGdyb3VwfSwgZWwgc2lzdGVtYSB2YSBhIHN1c3RpdHVpciBlbCBub21icmUgZGVsIHByaW1lciBncnVwbyBkZSBtaWVtYnJvcyBhbCBjdWFsIGVsIHVzdWFyaW8gcGVydGVuZWNlLCB5IHZhIGEgcmUtZGlyZWNjaW9uYXIgYSBlc2EgcCZhYWN1dGU7Z2luYS4nOwokbGFuZ1snaW5mb19hZG1pbl9wYXNzd29yZCddID0gJ0VkaXRhciBlc3RlIGNhbXBvIHBhcmEgcmVzZXRlYXIgbGEgY29udHJhc2UmbnRpbGRlO2EgZGVsIHVzdWFyaW8nOwokbGFuZ1snaW5mb19hZG1pbl9yZXBlYXRwYXNzd29yZCddID0gJ0VkaXRhciBlc3RlIGNhbXBvIHBhcmEgcmVzZXRlYXIgbGEgY29udHJhc2UmbnRpbGRlO2EgZGVsIHVzdWFyaW8nOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnWWEgZXhpc3RlIHVuIHVzYXJpbyBjb24gZXNlIG5vbWJyZSc7CiRsYW5nWydub2NzdnJlc3VsdHMnXSA9ICdObyBzZSBoYW4gZGV2dWVsdG8gcmVzdWx0YWRvcyBkZSBsYSBleHBvcnRhY2kmb2FjdXRlO24gYSBDU1YnOwokbGFuZ1sncHJvbXB0X3VuZmxkbGVuJ10gPSAnTG9uZ2l0dWQgZGVsIGNhbXBvICZxdW90O05vbWJyZSBkZSB1c3VhcmlvJnF1b3Q7JzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ0xvbmdpdHVkIGRlbCBjYW1wbyAmcXVvdDtDb250cmFzZSZudGlsZGU7YSZxdW90Oyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmRsZW5ndGhzJ10gPSAnTGFzIGxvbmdpdHVkZXMgTWluL01heCBkZSBsYSBjb250cmFzZSZudGlsZGU7YSBzb24gaW52YWxpZGFzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZWxlbmd0aHMnXSA9ICdMYXMgbG9uZ2l0dWRlcyBNaW4vTWF4IGRlbCBub21icmUgZGUgdXN1YXJpbyBzb24gaW52YWxpZGFzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuIGRlIGUtbWFpbCBpbnZhbGlkYSc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ05vIHB1ZGltb3MgZW5jb250cmFyIHVuYSBkaXJlY2NpJm9hY3V0ZTtuIGRlIGUtbWFpbCBwYXJhIGVzdGEgY3VlbnRhJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdQcm9ibGVtYXMgYWwgZXN0YWJsZWNlciBsYSBpbmZvcm1hY2kmb2FjdXRlO24gZGVsIHVzdWFyaW8nOwokbGFuZ1snZXJyb3Jfc2V0dGluZ3Byb3BlcnR5J10gPSAnUHJvYmxlbWFzIGFsIGVzdGFibGVjZXIgbGEgcHJvcGllZGFkJzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdVc3VhcmlvIEEmbnRpbGRlO2FkaWRvICVzID0gJXMnOwokbGFuZ1sndXNlcl9kZWxldGVkJ10gPSAnVXN1YXJpbyBFbGltaW5hZG8gdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnUHJvcGllZGFkJzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWYWxvciAoZXhwcmVzaSZvYWN1dGU7biByZWd1bGFyKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ0N1aWRhZG86IEVzdG9zIGNhbXBvcyBhZmVjdGFuIGFsIHRhbWEmbnRpbGRlO28gZGUgbG9zIGNhbXBvcyBkZSB0ZXh0byBkZSBsb3MgZm9ybXVsYXJpb3MuIFJlZHVjaXIgZWwgbiZ1YWN1dGU7bWVybyBlbiB1bmEgd2ViIGV4aXN0ZW50ZSwgcHVlZGUgbm8gc2VyIHJlY29tZW5kYWJsZS4nOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ0VzdCZhYWN1dGU7cyBzZWd1cm8gZGUgcXVlcmVyIGFqdXN0YXIgbGFzIHByZWZlcmVuY2lhcyBkZWwgbSZvYWN1dGU7ZHVsbz8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0RpcmVjY2kmb2FjdXRlO24gZGUgZS1tYWlsIHlhIHV0aWxpemFkYSc7CiRsYW5nWydwcm9tcHRfdXNlY29va2llc3RvcmVtZW1iZXInXSA9ICdVc2FyIGNvb2tpZXMgcGFyYSByZWNvcmRhciBsb3MgZGV0YWxsZXMgZGUgYWNjZXNvJzsKJGxhbmdbJ3Byb21wdF9jb29raWVuYW1lJ10gPSAnRWwgbm9tYnJlIGRlIGxhIGNvb2tpZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJ1Blcm1pdGlyIGUtbWFpbHMgZHVwbGljYWRvcyc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuIGRlIGVtYWlsIGVzIGVsIHVzdWFyaW8nOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnSW50ZW50YXIgbWFudGVuZXIgbG9zIGluZ3Jlc29zIGNvbiB2aWRhIGNvbiBlbCB1c28gZGUgdW5hIGNvb2tpZSA8ZW0+KGxhIGNvb2tpZSBlcyByZXNldGVhZGEgY29uIGxhIGFjdGl2aWRhZCBkZWwgc2l0aW8gd2ViKTwvZW0+JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJyhwZXJtaXRpciB2YXJpb3MgdXN1YXJpb3MgY29uIHVuYSBtaXNtYSBkaXJlY2NpJm9hY3V0ZTtuIGRlIGUtbWFpbCknOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyh1c2VyJiMwMzk7cyBlbWFpbCBhZGRyZXNzIGlzIHRoZWlyIHVzZXJuYW1lIC0tIGRvbiYjMDM5O3Qgc2V0IHRoaXMgd2l0aCAmcXVvdDthbGxvdyBkdXBsaWNhdGUgZW1haWwgYWRkcmVzc2VzJnF1b3Q7ISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdQZXJtaXRpciByZWNvcmRhdG9yaW9zIGRlICZxdW90O2NvbnRyYXNlJm50aWxkZTthIG9sdmlkYWRhJnF1b3Q7IGR1cGxpY2Fkb3M/JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJyhwZXJtaXRpciBsYSBwZXRpY2kmb2FjdXRlO24gZGUgcmVzZXRlbyBkZSBjb250cmFzZSZudGlsZGU7YSwgYXVucXVlIGVsIHVzdWFyaW8gbm8gaGF5YSB1dGlsaXphZG8gbnVuY2EgbGEgYW50ZXJpb3IpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnVXNhciBwZXJtaXNvcyBlc3BlY2lmaWNvcyBwYXJhIGVsIFVzdWFyaW8gZGUgRnJvbnQtZW5kPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFsbWVudGUsIGxvcyBwZXJtaXNvcyBkZSBsb3MgVXN1YXJpb3MgRkUgc29uIGVxdWl2YWxlbnRlcyBhIGxvcyBwZXJtaXNvcyBkZWwgQXJlYSBkZSBBZG1pbmlzdHJhY2kmb2FjdXRlO24gY29tbyBBJm50aWxkZTthZGlyIFVzdWFyaW8sIEEmbnRpbGRlO2FkaXIgR3J1cG8sIGV0Yy4gU2kgc2VsZWNjaW9uYSBlc3RhIG9wY2kmb2FjdXRlO24sIGhhYnImYWFjdXRlOyBwZXJtaXNvcyBkaWZlcmVudGVzIHBhcmEgbG9zIFVzdWFyaW8gRkUuKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnTm8gc2UgcHVkbyBlbmNvbnRyYXIgZWwgZmljaGVybyBzdWJpZG8gKGVycm9yIGludGVybm8pJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJ10gPSAnSHVibyB1biBwcm9ibGVtYSBjb24gc3UgYXJjaGl2byBzdWJpZG8uICBQb3IgZmF2b3IgcHJ1ZWJlIG51ZXZhbWVudGUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnTm8gaW5kaWMmb2FjdXRlOyB1biBub21icmUgZGUgdXN1YXJpbyc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdObyBzZSBpbmdyZXMmb2FjdXRlOyB1biBlbWFpbCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdObyBpbmRpYyZvYWN1dGU7IHVuYSBjb250cmFzZSZudGlsZGU7YSc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nb3V0J10gPSAnU2FsaWRhIGRlIFVzdWFyaW8gZGVsIFBvcnRhbCc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nZ2VkaW4nXSA9ICdJbmdyZXNvIGRlIFVzdWFyaW8gZGVsIFBvcnRhbCc7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPlRFTkdBIFBSRUNBVUNJJk9hY3V0ZTtOPC9iPiBjdWFuZG8gc2UgY2FtYmlhIHByb3BpZWRhZGVzIGV4aXN0ZW50ZXMgcXVlIHNvbiBhc2lnbmFkYXMgYSBncnVwb3MsIHBvdGVuY2lhbG1lbnRlIHVzdGVkIHB1ZWRlIGNhdXNhciBkYSZudGlsZGU7byB5IGRlc2hhY2VyIHVuIHNpdGlvIGV4aXN0ZW50ZSA8aT4oZXNwZWNpYWxtZW50ZSBzaSByZWR1Y2UgbGEgbG9uZ2l0dWQgZGUgbG9zIGNhbXBvcywgZXRjKTwvaT48L2ZvbnQ+JzsKJGxhbmdbJ2luZm9fc210cHZhbGlkYXRlJ10gPSAnRXN0YSBmdW5jaSZvYWN1dGU7biBubyB0cmFiYWphIGVuIFdpbmRvd3MnOwokbGFuZ1snbXNnX2RvbnRjcmVhdGV1c2VybmFtZSddID0gJ05vIGNyZWFyIHVuYSBwcm9waWVkYWQgcGFyYSBlbCB1c3VhcmlvLCBvIGxhIGNvbnRyYXNlJm50aWxkZTthLCB5YSBxdWUgZXN0YXMgcHJvcGllZGFkZXMgc29uIHBhcnRlIGRlbCBtJm9hY3V0ZTtkdWxvIFVzdWFyaW9zIGRlbCBQb3J0YWwnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0V4cG9ydGFyIFVzdWFyaW9zIGEgQ1NWJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydGFyJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydGFyJzsKJGxhbmdbJ2FkbWluJ10gPSAnQWRtaW4gJzsKJGxhbmdbJ2VkaXRwcm9wJ10gPSAnRWRpdGFyIFByb3BpZWRhZCc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdMb25naXR1ZCBtJmFhY3V0ZTt4aW1hJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdDcmVhZG8nOwokbGFuZ1snc29ydGJ5J10gPSAnT3JkZW5hciBwb3InOwokbGFuZ1snc29ydCddID0gJ09yZGVuYW5kbyc7CiRsYW5nWyd1c2Vyc2luZ3JvdXAnXSA9ICdVc3VhcmlvcyBlbiBlbC9sb3MgZ3J1cG8ocykgc2VsZWNjaW9uYWRvKHMpJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ0xpbWl0YXIgcmVzdWx0YWRvcyBhJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ05vIHNlIGhhIHBvZGlkbyBlbmNvbnRyYXIgdW4gY2FtcG8gZGUgZS1tYWlsIHBhcmEgZXN0ZSB1c3VhcmlvLiBFcyBwb3NpYmxlIHF1ZSB0ZW5nYSBxdWUgcG9uZXJzZSBlbiBjb250YWN0byBjb24gZWwgYWRtaW5pc3RyYWRvciBkZWwgc2lzdGVtYSc7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ0lEUCZhYWN1dGU7Zy9BbGlhcyBwYXJhIGZvcm11bGFyaW8gZGUgT2x2aWRvIGRlIENvbnRyYXNlJm50aWxkZTthJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnSURQJmFhY3V0ZTtnL0FsaWFzIHBhcmEgZm9ybXVsYXJpbyBkZSBDYW1iaW8gQ29uZmlndXJhY2kmb2FjdXRlO24nOwokbGFuZ1sncHJvbXB0X2xvZ2luX3BhZ2UnXSA9ICdJRFAmYWFjdXRlO2cvQWxpYXMgcGFyYSBzYWx0YXIgbHVlZ28gZGVsIGluZ3Jlc28qJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXRfcGFnZSddID0gJ0lEUCZhYWN1dGU7Zy9BbGlhcyBwYXJhIHNhbHRhciBsdWVnbyBkZWwgZWdyZXNvKic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdGb3JtYSBkZSBvcmRlbmFyJzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ0hheSB1biBjaWVydG8gbiZ1YWN1dGU7bWVybyBkZSB1c3VhcmlvcyBxdWUgZXN0JmFhY3V0ZTtuIGVuIGVsIG1lZGlvIGRlIHVuYSByZWN1cGVyYWNpJm9hY3V0ZTtuIGRlIGNvbnRyYXNlJm50aWxkZTthIHBlcmRpZGEuIEVsIG4mdWFjdXRlO21lcm8gYXNjaWVuZGUgYTonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdFbGltaW5hciB0b2RhcyBsYXMgZW50cmFkYXMgZGUgaGFjZSBtJmFhY3V0ZTtzIGRlIHVuYSBzZW1hbmEnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnRWxpbWluYXIgdG9kYXMgbGFzIGVudHJhZGFzIGRlIGhhY2UgbSZhYWN1dGU7cyBkZSB1biBtZXMnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnRWxpbWluYXIgdG9kYXMgbGFzIGVudHJhZGFzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICcmaXF1ZXN0O0VzdCZhYWN1dGU7IHNlZ3Vybz8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICdTZSBoYSBpbnRyb2R1Y2lkbyB1biBjJm9hY3V0ZTtkaWdvIGludmFsaWRvLCB2dWVsdmEgYSBpbnRlbnRhcmxvJzsKJGxhbmdbJ2Vycm9yX3RlbXBjb2Rlbm90Zm91bmQnXSA9ICdObyBzZSBwdWRvIGhhbGxhciB1biBjJm9hY3V0ZTtkaWdvIHRlbXBvcmFyaW8gcGFyYSBzdSBpZCBkZSB1c3VhcmlvIGVuIGxhIGJhc2UgZGUgZGF0b3MnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgdXNhZGEgcGFyYSBtb3N0cmFyIGVsIGZvcm11bGFyaW8gZGUgdmVyaWZpY2FjaSZvYWN1dGU7bic7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBhcmEgZWwgZW1haWwgZGUgY29udHJhc2UmbnRpbGRlO2Egb2x2aWRhZGEnOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ0JpZW4gdXN0ZWQgdSBvdHJhIHBlcnNvbmEgeWEgaGFuIHJlY2xhbWFkbyBwb3IgdW5hIG9wZXJhY2kmb2FjdXRlO24gZGUgcmVzZXRlbyBkZSBsYSBjb250cmFzZSZudGlsZGU7YSBwYXJhIGVzdGEgY3VlbnRhLiAgT2JzZXJ2ZSBzdSBlbWFpbCwgdXN0ZWQgeWEgZGViZSB0ZW5lciBlbiBzdSBjYXNpbGxhIGxhcyBpbnN0cnVjY2lvbmVzIG5lY2VzYXJpYXMgY29tbyBwYXJhIHJlc2V0ZWFyIHN1IGNvbnRyYXNlJm50aWxkZTthJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdFcnJvciBlbiBsYSBiYXNlIGRlIGRhdG9zJzsKJGxhbmdbJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCddID0gJ1VzdGVkIGVzdGEgcmVjaWJpZW5kbyBlc3RlIG1lbnNhamUgcHVlcyBhbGd1aWVuIG5vcyBoYSBpbmRpY2FkbyBlbiBudWVzdHJvIHNpdGlvIHdlYiBxdWUgaGEgcGVyZGlkbyBsYSBjb250cmFzZSZudGlsZGU7YS4gIFNpIGFzJmlhY3V0ZTsgZXMsIGxlYSBsYXMgaW5zdHJ1Y2Npb25lcyBkZSBhYmFqby4gIFNpIHVzdGVkIG5vIHRpZW5lIG5pbmd1bmEgaWRlYSBhbCByZXNwZWN0bywgcHVlZGUgZWxpbWluYXIgZXN0ZSBtZW5zYWplIGNvbiB0b2RhIHRyYW5xdWlsaWRhZCwgeSBsZSBhZ3JhZGVjZW1vcyBwb3Igc3UgdGllbXBvLic7CiRsYW5nWydwcm9tcHRfY29kZSddID0gJ0Mmb2FjdXRlO2RpZ28nOwokbGFuZ1snbWVzc2FnZV9jb2RlJ10gPSAnRWwgYyZvYWN1dGU7ZGlnbyBzaWd1aWVudGUgc2UgaGEgZ2VuZXJhZG8gZW4gZm9ybWEgYWxlYXRvcmlhIGNvbiBlbCBmaW4gZGUgdmVyaWZpY2FyIGFsIHVzdWFyaW8gZGUgbGEgY3VlbnRhLiAgQ3VhbmRvIHVzdGVkIGhhZ2EgY2xpY2sgZW4gZWwgZW5sYWNlIGRlIGFiYWpvIGEgdXN0ZWQgbGUgc2VyJmFhY3V0ZTsgcHJlc2VudGFkbyB1biBjYW1wbyBwYXJhIGluZ3Jlc2FyIGVsIGMmb2FjdXRlO2RpZ28uICBOb3JtYWxtZW50ZSBlbCBjYW1wbyBlcyByZWxsZW5hZG8gYXV0b20mYWFjdXRlO3RpY2FtZW50ZSwgcGVybyBlbiBjYXNvIGRlIHF1ZSBhcyZpYWN1dGU7IG5vIGZ1ZXJhIGVsIGMmb2FjdXRlO2RpZ28gZXM6JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnQWwgaGFjZXIgY2xpY2sgc29icmUgZWwgc2lndWllbnRlIGVubGFjZSBzZSBsZSByZWRpcmlnaXImYWFjdXRlOyBhIHVuYSBwJmFhY3V0ZTtnaW5hIGRvbmRlIHB1ZWRhIGludHJvZHVjaXIgZWwgYyZvYWN1dGU7ZGlnbyB5IHJlc2V0ZWFyIHN1IGNvbnRyYXNlJm50aWxkZTthOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnQ29udHJhc2UmbnRpbGRlO2EgUGVyZGlkYSc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ05vIHNlIGhhIHBvZGlkbyBlbmNvbnRyYXIgZWwgbSZvYWN1dGU7ZHVsbyBDTVNNYWlsZXInOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnU2UgaGEgZW52aWFkbyB1biBlbWFpbCBhICVzIGNvbiBsYXMgaW50cnVjY2lvbmVzIGRlIGNvbW8gcmVzZXRlYXIgbGEgY29udHJhc2UmbnRpbGRlO2EuIE11Y2hhcyBncmFjaWFzLic7CiRsYW5nWydsb3N0cHdfbWVzc2FnZSddID0gJ0FzJmlhY3V0ZTsgcXVlIG9sdmlkJm9hY3V0ZTsgbyBwZXJkaSZvYWN1dGU7IHN1IGNvbnRyYXNlJm50aWxkZTthLiBFc2NyaWJhIGFxdSZpYWN1dGU7IHN1IG5vbWJyZSBkZSB1c3VhcmlvIHksIHNpIHBvZGVtb3MgZW5jb250cmFybG8sIGxlIGVudmlhcmVtb3MgdW4gZS1tYWlsIGNvbiBsYXMgaW5zdHJ1Y2Npb25lcyBwYXJhIHJlc2V0ZWFyIGFsIG1pc21vLic7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYXMgZGUgQ29udHJhc2UmbnRpbGRlO2EgUGVyZGlkYSc7CiRsYW5nWydsb3N0dXNlcm5hbWVfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgTm9tYnJlIGRlIFVzdWFyaW8gUGVyZGlkbyc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdQcm9waWVkYWQgJXMgbm8gZW5jb250cmFkYSc7CiRsYW5nWydwcm9wc2ZvdW5kJ10gPSAnUHJvcGllZGFkZXMgZW5jb250cmFkYXMnOwokbGFuZ1snYWRkcHJvcCddID0gJ0EmbnRpbGRlO2FkaXIgUHJvcGllZGFkJzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICdVbiBjYW1wbyBvYmxpZ2F0b3JpbyAoJXMpIGVzdCZhYWN1dGU7IHZhYyZpYWN1dGU7byc7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ0ludHJvZHVjaXIgdW5hIG51ZXZhIGNvbnRyYXNlJm50aWxkZTthIGFxdSZpYWN1dGU7IHBhcmEgbW9kaWZpY2FyIHN1IGNvbnRyYXNlJm50aWxkZTthJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnUGFyZWNlIHF1ZSBubyBlc3QmYWFjdXRlO3MgbG9ndWVhZG8nOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ1ByZWZlcmVuY2lhcyc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdHJvJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnRXN0YSBjdWVudGEgaGEgY2FkdWNhZG8nOwokbGFuZ1snZXJyb3JfaW1wcm9wZXJlbWFpbGZvcm1hdCddID0gJ0RpcmVjY2kmb2FjdXRlO24gZGUgZS1tYWlsIGludiZhYWN1dGU7bGlkYSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZXhwaXJ5ZGF0ZSddID0gJ0ZlY2hhIGRlIGNhZHVjaWRhZCBpbnYmYWFjdXRlO2xpZGEnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdwcm9wZXJ0eSddID0gJ0Vycm9yIGVzdGFibGVjaWVuZG8gbGEgcHJvcGllZGFkICVzIHBhcmEgZWwgdXN1YXJpbyAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ0lkIGRlIGdydXBvICVzIGludiZhYWN1dGU7bGlkbyc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ01hcmNhZG9yIGRlIGNhbXBvIG9jdWx0byc7CiRsYW5nWydoaWRkZW5maWVsZGNvbG9yJ10gPSAnQ29sb3IgZGUgY2FtcG8gb2N1bHRvJzsKJGxhbmdbJ2hpZGRlbiddID0gJ09jdWx0byc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnVW5hIHByb3BpZWRhZCBjb24gZXNlIG5vbWJyZSB5YSBlc3QmYWFjdXRlOyBkZWZpbmlkYSc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdObyBoYXkgcHJvcGllZGFkZXMgZGVmaW5pZGFzJzsKJGxhbmdbJ2Vycm9yX25vcmVsYXRpb25zJ10gPSAnTm8gaGF5IHByb3BpZWRhZGVzIHNlbGVjY2lvbmFkYXMgcGFyYSBlc3RlIGdydXBvJzsKJGxhbmdbJ25vZ3JvdXBzJ10gPSAnTm8gaGF5IEdydXBvcyBkZWZpbmlkb3MnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdHcnVwb3MgRW5jb250cmFkb3MnOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ0xhIHBlcnRlbmVjaWEgZW4gYWwgbWVub3MgdW4gZ3J1cG8gZXMgcmVxdWVyaWRhJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdQZXJ0ZW5lY2lhIGVuIGFsIG1lbm9zIHVuIGdydXBvIGVzIHJlcXVlcmlkYSc7CiRsYW5nWydiYWNrJ10gPSAnQXRyJmFhY3V0ZTtzJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfcmVxdWlyZWRfcGFyYW0nXSA9ICclcyBlcyB1biBjYW1wbyBvYmxpZ2F0b3Jpbyc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnTWFyY2FyIGxvcyBjYW1wb3MgcmVxdWVyaWRvcyBjb24nOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnRGVzdGFjYXIgbG9zIGNhbXBvcyByZXF1ZXJpZG9zIGVuJzsKJGxhbmdbJ25leHQnXSA9ICdTaWd1aWVudGUnOwokbGFuZ1snZXJyb3JfZ3JvdXBleGlzdHMnXSA9ICdZYSBleGlzdGUgdW4gR3J1cG8gY29uIGVzZSBub21icmUnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdDYW1wbyBPYmxpZ2F0b3Jpbyc7CiRsYW5nWydvcHRpb25hbCddID0gJ09wY2lvbmFsJzsKJGxhbmdbJ29mZiddID0gJ0FwYWdhZG8nOwokbGFuZ1snc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28nOwokbGFuZ1snc2l6ZWNvbW1lbnQnXSA9ICc8YnIvPihUYW1hJm50aWxkZTtvIG0mYWFjdXRlO3hpbW8gZGUgY3VhbHF1aWVyYSBkZSBsYXMgZGltZW5zaW9uZXMgZGUgbGEgaW1hZ2VuIGVuIHBpeGVscyknOwokbGFuZ1snbGVuZ3RoJ10gPSAnTG9uZ2l0dWQnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oY2FyYWN0ZXJlcyBlbiBlbCB0ZXh0byBpbnRyb2R1Y2lkbyknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ09wY2lvbmVzIGRlIGRlc3BsZWdhYmxlLCBzZXBhcmFkYXMgcG9yIG51ZXZvIHJlbmdsJm9hY3V0ZTtuLiAgTG9zIHZhbG9yZXMgcHVlZGVuIGVzdGFyIHNlcGFyYWRvcyBkZWwgdGV4dG8gY29uIGVsIGNhcmFjdGVyID0gLiBwLmVqOiBGZW1lbmlubz1mJzsKJGxhbmdbJ3JhZGlvb3B0aW9ucyddID0gJ1JhZGlvYnV0dG9uIGxhYmVscywgc2VwYXJhdGVkIGJ5IGxpbmUgYnJlYWtzLiBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3Byb21wdCddID0gJ1N1Z2VyZW5jaWEnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUaXBvJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXBvJzsKJGxhbmdbJ2ZpZWxkc3RhdHVzJ10gPSAnRXN0YWRvIGRlIENhbXBvJzsKJGxhbmdbJ3VzZWRpbmxvc3R1biddID0gJ1ByZWd1bnRhIHNpIFBlcmRpZG88YnIvPk5vbWJyZSBkZSBVc3VhcmlvJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0byc7CiRsYW5nWydjaGVja2JveCddID0gJ0NhamEgZGUgVGlsZGFyJzsKJGxhbmdbJ211bHRpc2VsZWN0J10gPSAnTGlzdGEgTXVsdGkgU2VsZWN0b3JhJzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ0JvdG9uZXMgcmFkaWFsZXMnOwokbGFuZ1snaW1hZ2UnXSA9ICdJbWFnZW4nOwokbGFuZ1snZW1haWwnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuIGUtbWFpbCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJyZBYWN1dGU7cmVhIGRlIFRleHRvJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTWVuJnVhY3V0ZTsgZGVzcGxlZ2FibGUnOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICdCaWVudmVuaWRvJzsKJGxhbmdbJ2xvZ291dCddID0gJ1NhbGlyJzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdVc2FyIGVzdGUgbm9tYnJlIGRlIGdydXBvJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ01vZGlmaWNhciBtaXMgcHJlZmVyZW5jaWFzJzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnTG9naW4gZmFsbGlkbyAtIE5vbWJyZSBkZSB1c3VhcmlvIG8gY29udHJhc2UmbnRpbGRlO2EgaW52JmFhY3V0ZTtsaWRvcz8nOwokbGFuZ1snbG9naW4nXSA9ICdFbnRyYXInOwokbGFuZ1sncHJvbXB0X3NpZ25pbl9idXR0b24nXSA9ICdFdGlxdWV0YSBkZWwgYm90Jm9hY3V0ZTtuIEVudHJhcic7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdVc3VhcmlvJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0RpcmVjY2kmb2FjdXRlO24gZS1tYWlsJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ0NvbnRyYXNlJm50aWxkZTthJzsKJGxhbmdbJ3Byb21wdF9yZW1lbWJlcm1lJ10gPSAnUmVjb3JkYXJtZSBlbiBlc3RhIGNvbXB1dGFkb3JhJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnUmVnaXN0cmFyJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnT2x2aWQmb2FjdXRlOyBzdSBjb250cmFzZSZudGlsZGU7YT8nOwokbGFuZ1snbG9zdHVzZXJuYW1lJ10gPSAnJmlxdWVzdDtIYSBPbHZpZGFkbyBzdXMgRGF0b3MgZGUgSW5ncmVzbz8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdWYWxvcmVzIHBvciBkZWZlY3RvJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhJzsKJGxhbmdbJ2Vycm9yX3VzZXJub3Rmb3VuZCddID0gJ0lEIGRlbCB1c3VhcmlvIG5vIGVuY29udHJhZG8nOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ0VsIG5vbWJyZSBkZSB1c3VhcmlvICglcykgeWEgZXN0JmFhY3V0ZTsgZW4gdXNvJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdVc2FyIFNNVFAgcGFyYSB2YWxpZGFkIGRpcmVjY2kmb2FjdXRlO25lcyBkZSBlLW1haWw/JzsKJGxhbmdbJ3Byb21wdF9taW5wd2xlbiddID0gJ0xvbmdpdHVkIE0maWFjdXRlO25pbWEgZGUgbGEgQ29udHJhc2UmbnRpbGRlO2EnOwokbGFuZ1sncHJvbXB0X21heHB3bGVuJ10gPSAnTG9uZ2l0dWQgTSZhYWN1dGU7eGltYSBkZSBsYSBDb250cmFzZSZudGlsZGU7YSc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdMb25naXR1ZCBNJmlhY3V0ZTtuaW1hIGRlbCBOb21icmUgZGUgVXN1YXJpbyc7CiRsYW5nWydwcm9tcHRfbWF4dW5sZW4nXSA9ICdMb25naXR1ZCBNJmFhY3V0ZTt4aW1hIGRlbCBOb21icmUgZGUgVXN1YXJpbyc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdGdWVyYSBkZSBUaWVtcG8gZGUgU2VzaSZvYWN1dGU7biAoc2VndW5kb3MpJzsKJGxhbmdbJ3Byb21wdF9jb29raWVrZWVwYWxpdmUnXSA9ICdVc2FyIGNvb2tpZXMgcGFyYSBtYW50ZW5lciBsb3MgaW5ncmVzb3Mgdml2b3MnOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdQZXJtaXRpciBlbCBSZWdpc3RybyBkZSBFbWFpbCc7CiRsYW5nWydwcm9tcHRfZGZsdGdyb3VwJ10gPSAnR3J1cG8gcG9yIGRlZmVjdG8gcGFyYSBudWV2b3MgdXN1YXJpb3MnOwokbGFuZ1snY2hhbmdlc2V0dGluZ3NfdGVtcGxhdGUnXSA9ICdDYW1iaWFyIFBsYW50aWxsYSBkZSBQcmVmZXJlbmNpYXMnOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ0xhcyBjb250cmFzZSZudGlsZGU7YXMgbm8gY29pbmNpZGVuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ05vbWJyZSBkZSB1c3VhcmlvIGludmFsaWRvJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZCddID0gJ0NvbnRyYXNlJm50aWxkZTthIGludmFsaWRhJzsKJGxhbmdbJ2VkaXR1c2VyJ10gPSAnRWRpdGFyIFVzdWFyaW8nOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZG8nOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc3VhcmlvJzsKJGxhbmdbJ3N0YXR1cyddID0gJ0VzdGFkbyc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICdFc3RlIHVzdWFyaW8gbm8gZXMgbWllbWJybyBkZSBuaW5nJnVhY3V0ZTtuIGdydXBvJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICdTaW4gUHJvcGllZGFkZXMnOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdJbnRlbnRvIGRlIGltcG9ydGFyIHByb3BpZWRhZGVzIGR1cGxpY2FkYXMnOwokbGFuZ1sndmFsdWUnXSA9ICdWYWxvcic7CiRsYW5nWydncm91cHMnXSA9ICdHcnVwb3MnOwokbGFuZ1sncHJvcGVydGllcyddID0gJ1Byb3BpZWRhZGVzJzsKJGxhbmdbJ3Byb3BuYW1lJ10gPSAnTm9tYnJlIGRlIGxhIFByb3BpZWRhZCc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdWYWxvciBkZSBsYSBQcm9waWVkYWQnOwokbGFuZ1snYWRkJ10gPSAnQSZudGlsZGU7YWRpcic7CiRsYW5nWydoaXN0b3J5J10gPSAnSGlzdG9yaWFsJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snZXhwaXJlcyddID0gJ0NhZHVjYSc7CiRsYW5nWydzcGVjaWZ5X2RhdGUnXSA9ICdFc3BlY2lmaWNhciBGZWNoYSc7CiRsYW5nWycxMmhycyddID0gJzEyIEhvcmFzJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQgSG9yYXMnOwokbGFuZ1snNDhocnMnXSA9ICc0OCBIb3Jhcyc7CiRsYW5nWycxd2VlayddID0gJzEgU2VtYW5hJzsKJGxhbmdbJzJ3ZWVrcyddID0gJzIgU2VtYW5hcyc7CiRsYW5nWycxbW9udGgnXSA9ICcxIE1lcyc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBNZXNlcyc7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiBNZXNlcyc7CiRsYW5nWycxeWVhciddID0gJzEgQSZudGlsZGU7byc7CiRsYW5nWyduZXZlciddID0gJ051bmNhJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ01vZHVsZSBpbnN0YWxsZWQgc3VjZXNzZnVsbHkuPGJyLz5CZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24uICBBZGRpdGlvbmFsbHksIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gIElmIGluc3RhbGxlZCwgdmFsaWRhdGlvbiBvZiBhIGNhcHRjaGEgaW1hZ2Ugd2lsbCBiZSByZXF1aXJlZCBpbiBhZGRpdGlvbiB0byB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ2luLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGJydXRlIGZvcmNlIGF0dGFja3MuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBub2NhcHRjaGEgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGV2ZW4gaWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZC4mcXVvdDsnOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdDb250cmFzZSZudGlsZGU7YSc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ0RlIG51ZXZvJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdZYSBleGlzdGUgdW4gZ3J1cG8gY29uIGVzZSBub21icmUnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnRWRpdGFyIEdydXBvJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Vudmlhcic7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxhcic7CiRsYW5nWydkZWxldGUnXSA9ICdCb3JyYXInOwokbGFuZ1snY29uZmlybV9lZGl0Z3JvdXAnXSA9ICcmaXF1ZXN0O1VzdGVkIGVzdCZhYWN1dGU7IHNlZ3VybyBxdWUgZXN0YSBlcyBsYSBjb25maWd1cmFjaSZvYWN1dGU7biBhcHJvcGlhZGEgcGFyYSBlc3RlIGdydXBvP1xuQXBhZ2FuZG8gdW5hIHByb3BpZWRhZCBubyB2YSBhIGFudWxhciBuaW5ndW5hIGVudHJhZGEgZW4gbGEgdGFibGEgZGUgcHJvcGllZGFkZXMgcGFyYSBlc3RlIGdydXBvL3VzdWFyaW8uICBTaW1wbGVtZW50ZSBsYXMgdmEgYSBoYWNlciBpbmFjY2VzaWJsZXMuJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlZ3JvdXAnXSA9ICcmaXF1ZXN0O0VzdCZhYWN1dGU7IHNlZ3VybyBxdWUgcXVpZXJlIGVsaW1pbmFyIGVzdGUgZ3J1cG8/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3Byb3AnXSA9ICcmaXF1ZXN0O0VzdCZhYWN1dGU7IHNlZ3VybyBxdWUgcXVpZXJlIGVsaW1pbmFyIGNvbXBsZXRhbWVudGUgZXN0YSBwcm9waWVkYWQ/XG5IYWNpZW5kb2xvIGFzJmlhY3V0ZTsgYm9ycmFyJmFhY3V0ZTsgY3VhbHF1aWVyIGVudHJhZGEgZGUgdXN1YXJpbyBwYXJhIGVzdGEgcHJvcGllZGFkLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdQYXImYWFjdXRlO21ldHJvcyBpbnN1ZmljaWVudGVzJzsKJGxhbmdbJ2lkJ10gPSAnSWQgJzsKJGxhbmdbJ25hbWUnXSA9ICdOb21icmUnOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdQcm9ibGVtYSBhZ3JlZ2FuZG8gbGEgcHJvcGllZGFkJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cHJlbG4nXSA9ICdQcm9ibGVtYSBhZ3JlZ2FuZG8gbGEgcmVsYWNpJm9hY3V0ZTtuIGRlIGdydXBvJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZW1hIGFncmVnYW5kbyBncnVwbyc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2JsZW1hIGFncmVnYW5kbyB1biB1c3VhcmlvIGEgdW4gZ3J1cG8nOwokbGFuZ1snZXJyb3JfY291bGRub3RkZWxldGVwcm9wZXJ0eSddID0gJ1Byb2JsZW1hIGVsaW1pbmFuZG8gdW5hIHByb3BpZWRhZCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGZpbmRlbWFpbCddID0gJ05vIHNlIHB1ZG8gaGFsbGFyIHVuYSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdObyBoYXkgcGVybWlzbyBkZSBlc2NyaXR1cmEgZW4gZWwgZGlyZWN0b3JpbyBkZXN0aW5vJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbXMnXSA9ICdQYXImYWFjdXRlO21ldHJvcyAgaW52YWxpZG9zJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnTm8gc2UgcHVkbyBlbmNvbnRyYXIgbmluZyZ1YWN1dGU7biBncnVwbyc7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ0FwbGljYXInOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHJvJzsKJGxhbmdbJ3VzZXJmaWx0ZXInXSA9ICdFeHByZXNpJm9hY3V0ZTtuIE5vcm1hbCBkZSBOb21icmUgZGUgVXN1YXJpbyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXBjaSZvYWN1dGU7bic7CiRsYW5nWydncm91cG5hbWUnXSA9ICdOb21icmUgZGVsIEdydXBvJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2VzbyBEZW5lZ2Fkbyc7CiRsYW5nWydlcnJvciddID0gJ0Vycm9yLic7CiRsYW5nWydhZGRncm91cCddID0gJ0EmbnRpbGRlO2FkaXIgR3J1cG8nOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnRhciBHcnVwbyc7CiRsYW5nWydhZGR1c2VyJ10gPSAnQSZudGlsZGU7YWRpciBVc3VhcmlvJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdVc3VhcmlvcyBlbmNvbnRyYWRvcyBxdWUgY29pbmNpZGVuIGNvbiBlbCBjcml0ZXJpbyBkZSBiJnVhY3V0ZTtzcXVlZGEnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwbyc7CiRsYW5nWydzZWxlY3Rncm91cCddID0gJ1NlbGVjY2lvbmFyIEdydXBvJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBkZSBSZWdpc3RybyBkZSBVc3Vhcmlvcyc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgU2FsaWRhJzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIEFjY2Vzbyc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2lhcyc7CiRsYW5nWyd1c2VycyddID0gJ1VzdWFyaW9zJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0FkbWluaXN0cmFjaSZvYWN1dGU7biBkZSBVc3VhcmlvcyBkZWwgUG9ydGFsJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnUGVybWl0aXIgYSBsb3MgdXN1YXJpb3MgaW5ncmVzYXIgYWwgcG9ydGFsIGRlbCBzaXRpbyB3ZWInOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgcG9yIGRlZmVjdG8gZGUgaW5pY2lvJzsKJGxhbmdbJ2xhc3RhY2Nlc3NlZHBhZ2UnXSA9ICdVbHRpbWEgcCZhYWN1dGU7Z2luYSBhY2NlZGlkYSc7CiRsYW5nWydvdGhlcnBhZ2UnXSA9ICdPdHJhIHAmYWFjdXRlO2dpbmE6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnSW50cm9kdXpjYSBlbCB0ZXh0byBkZSBsYSBpbWFnZW4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2luZm9fbmFtZSddID0gJ1RoaXMgaXMgdGhlIGZpZWxkIG5hbWUsIHRvIGJlIHVzZWQgZm9yIGFkZHJlc3NpbmcgaW4gc21hcnR5LiAgSXQgbXVzdCBjb25zaXN0IG9mIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIHVuZGVyc2NvcmVzLic7CiRsYW5nWyd2aXNpdG9yc190YWInXSA9ICdLJnV1bWw7bGFsaXNlZCc7CiRsYW5nWydmZXVfZ3JvdXBzX3Byb21wdCddID0gJ1ZhbGkgJnV1bWw7a3MgdiZvdGlsZGU7aSByb2hrZW0gRkVVIGdydXBwLCBrZWxsZWwgb24gbHViYXR1ZCBzZWRhIGxlaHRlIG4mYXVtbDtoYSc7CiRsYW5nWydlcnJvcl9tdXN0c2VsZWN0X2dyb3VwJ10gPSAnJlV1bWw7a3MgZ3J1cHAgcGVhYiBvbGVtYSB2YWxpdHVkJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1ZhbGkgJnV1bWw7a3MnOwokbGFuZ1snc3RhcnRfeWVhciddID0gJ0FsZ3VzIGFhc3RhJzsKJGxhbmdbJ2VuZF95ZWFyJ10gPSAnTCZvdGlsZGU7cHAgYWFzdGEnOwokbGFuZ1snZGF0ZSddID0gJ0t1dXAmYXVtbDtldic7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdQaXNpcGlsZGkgc3V1cnVzJzsKJGxhbmdbJ09uVXBkYXRlR3JvdXAnXSA9ICdLYXN1dGFqYSBncnVwaSBtdXV0bWlzZWwnOwokbGFuZ1snZXJyb3JfdG9vbWFueXNlbGVjdGVkJ10gPSAnTGlpZ2EgcGFsanUga2FzdXRhamFpZCBvbiB2YWxpdHVkIG1hc3NvcGVyYXRzaW9vbmlkZWtzLi4uIFBhbHVuIG11dWRhIHNlZSAyNTAta3MgdiZvdGlsZGU7aSB2JmF1bWw7aWtzZW1ha3MnOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdPbGVkIHNhIGtpbmRlbCwgZXQgdGFoYWQga3VzdHV0YWRhIHZhbGl0dWQga2FzdXRhamFkPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdLdXN0dXRhbWluZSB2YWxpdHVkJzsKJGxhbmdbJ3Byb21wdF9yYW5kb211c2VybmFtZSddID0gJ0xpc2FkZXMgdXVzaSBrYXN1dGFqYWlkIGdlbmVyZWVyaSBzdXZhbGluZSBrYXN1dGFqYW5pbWknOwokbGFuZ1snbW9udGhzJ10gPSAna3V1ZCc7CiRsYW5nWydwcm9tcHRfZXhwaXJlYWdlJ10gPSAnVmFpa2ltaXNpIGthc3V0YWphIGFlZ3VtaXNwZXJpb29kJzsKJGxhbmdbJ25vdGlmaWNhdGlvbl9zZXR0aW5ncyddID0gJ1RlYWRldGUgc2VhZGVkJzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnT21hZHVzdGUgc2VhZGVkJzsKJGxhbmdbJ3JlZGlyZWN0aW9uX3NldHRpbmdzJ10gPSAnU3V1bmFtaXNlIHNlYWRlZCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnJlV1bWw7bGRpc2VkIHNlYWRlZCc7CiRsYW5nWydzZXNzaW9uX3NldHRpbmdzJ10gPSAnU2Vzc2lvb25pIGphIGsmdXVtbDtwc2lzZSBzZWFkZWQnOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdWJmF1bWw7bGphIHNlYWRlZCc7CiRsYW5nWydlcnJvcl9sb3N0dW5fbm9ucmVxdWlyZWQnXSA9ICdLYW90YXR1ZCBrYXN1dGFqYW5pbWUgbGlwcHUgc2FhYiBrYXN1dGFkYSBhaW51bHQgbiZvdGlsZGU7dXR1ZCB2JmF1bWw7bGphZGUganV1cmVzJzsKJGxhbmdbJ3Byb3BfdGV4dGFyZWFfd3lzaXd5ZyddID0gJ0x1YmEga2FzdXRhZGEgd3lzaXd5ZyBzZWxsZWwgdGVrc3RpYWxhbCc7CiRsYW5nWydpbmZvX2Nvb2tpZXN0b3JlbWVtYmVyJ10gPSAnPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gVGhpcyB1c2VzIHRoZSBtY3J5cHQgZnVuY3Rpb25zIGZvciBlbmNyeXB0aW9uIHB1cnBvc2VzLCBhbmQgdGhleSBjb3VsZCBub3QgYmUgZGV0ZWN0ZWQgb24geW91ciBpbnN0YWxsLiAgIFBsZWFzZSBjb250YWN0IHlvdXIgc2VydmVyIGFkbWluaXN0cmF0b3IuJzsKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ011dWRhIGthc3V0YWphdCc7CiRsYW5nWydub2lubGluZSddID0gJ0FyYSBrYXN1dGEgJnF1b3Q7aW5saW5lJnF1b3Q7IHZvcm1lJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnVmFqdXRhIHNpaWEsIGt1aSBzYSBlaSBtJmF1bWw7bGV0YSBvbWEga2FzdXRhamFuaW1lJzsKJGxhbmdbJ2luZm9fZm9yZ290cHcnXSA9ICdWYWp1dGEgc2lpYSwga3VpIHNhIGVpIG0mYXVtbDtsZXRhIG9tYSBwYXJvb2xpJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnVmFqdXRhIHNpaWEgdiZhdW1sO2xqYSBsb2dpbWlzZWtzJzsKJGxhbmdbJ2luZm9fY2hhbmdlc2V0dGluZ3MnXSA9ICdWYWp1dGEgc2lpYSBvbWEgcGFyb29saSB2Jm90aWxkZTtpIG11dSBpbmZvcm1hdHNpb29uaSBtdXV0bWlzZWtzJzsKJGxhbmdbJ3ZpZXd1c2VyX3RlbXBsYXRlJ10gPSAnS2FzdXRhamEgdmFhdGFtaXNlIG1hbGwnOwokbGFuZ1snZXZlbnQnXSA9ICdTJnV1bWw7bmRtdXMnOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ0ZFVSBzJnV1bWw7bmRtdXNlIHRlYXZpdHVzJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJ1RlYWRldGUgZW1haWxpIGFhZHJlc3MnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ1RlYWRldGUgZW1haWxpIG1hbGwnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9zdWJqZWN0J10gPSAnVGVhZGV0ZSBlbWFpbGkgdGVlbWEnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdFbWFpbGkgdGVhdGVkJzsKJGxhbmdbJ09uTG9naW4nXSA9ICdTaXNzZWxvZ2ltaXNlbCc7CiRsYW5nWydPbkxvZ291dCddID0gJ1YmYXVtbDtsamFsb2dpbWlzZWwnOwokbGFuZ1snT25FeHBpcmVVc2VyJ10gPSAnU2Vzc2lvb25pIGFlZ3VtaXNlbCc7CiRsYW5nWydPbkNyZWF0ZVVzZXInXSA9ICdVdWUga2FzdXRhamEgbG9vbWlzZWwnOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnS2FzdXRhamEga3VzdHV0YW1pc2VsJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ0thc3V0YWphIHNlYWRldGUgbXV1dHVtaXNlbCc7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnS2FzdXRhamFncnVwcGkgbG9vbWlzZWwnOwokbGFuZ1snT25EZWxldGVHcm91cCddID0gJ0thc3V0YWphZ3J1cHBpIGt1c3R1dGFtaXNlbCc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ0thb3RhdHVkIGthc3V0YWphbmltZSBmdW5rdHNpb25hYWxzdXMgbCZvdGlsZGU7cGV0YXMgZWR1a2FsdC4gTWUgbGVpZHNpbWUgdW5pa2FhbHNlIGthc3V0YWphbmltZSwgbWlzIHZhc3RhYiBzaXNlc3RhdHVkIGRldGFpbGlkZWxlLic7CiRsYW5nWyd5b3VyX3VzZXJuYW1lX2lzJ10gPSAnU2ludSBrYXN1dGFqYW5pbWkgb24nOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAnTWUgc29vdml0YW1lIHNhbHZlc3RhZGEgc2VlIGluZm9ybWF0c2lvb24gdHVydmFsaXNzZSwgYWdhIGsmYXVtbDt0dGVzYWFkYXZhc3NlIGFzdWtvaHRhLic7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfY2hhbmdlX3NldHRpbmdzJ10gPSAnUGFnZUlEL0FsaWFzIGt1aHUgaCZ1dW1sO3BhdGEgcGVhbGUgc2VhZGV0ZSBtdXV0bWlzdCc7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfdmVyaWZ5X2NvZGUnXSA9ICdQYWdlSUQvQWxpYXMga3VodSBoJnV1bWw7cGF0YSBwZWFsZSBrb29kaSB2ZXJpZml0c2VlcmltaXN0IConOwokbGFuZ1snbG9zdHVuX2RldGFpbHNfdGVtcGxhdGUnXSA9ICdLYW90YXR1ZCBrYXN1dGFqYW5pbWUgZGV0YWlsaWRlIG1hbGwnOwokbGFuZ1snbG9zdHVuX2NvbmZpcm1fdGVtcGxhdGUnXSA9ICdLYW90YXR1ZCBrYXN1dGFqYW5pbWUga2lubml0dXNlIG1hbGwnOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlbWF0Y2gnXSA9ICdWaWdhOiBSb2hrZW0ga3VpICZ1dW1sO2tzIGthc3V0YWpha29udG8ga2xhcGliIGFudHVkIG9tYWR1c3RlZ2EnOwokbGFuZ1snZXJyb3JfY2FudGZpbmR1c2VyJ10gPSAnVmlnYTogRWkgbGVpZG51ZCBrbGFwcGl2YXQga2FzdXRhamF0JzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdWaWdhOiBFaSBsZWlkbnVkIGdydXBwaSBzZWxsZSBuaW1lIGomYXVtbDtyZ2knOwokbGFuZ1sncmVhZG9ubHknXSA9ICdBaW51bHQgbG9ldGF2JzsKJGxhbmdbJ3Byb21wdF91c2VybWFuaXB1bGF0b3InXSA9ICdLYXN1dGFqYSBtYW5pcHVsYWF0b3JrbGFzcyc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdMb2dpdHVkIHYmYXVtbDtsamEgYWRtaW5pc3RyYWF0b3JpIHBvb2x0JzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdOJmF1bWw7aXRhIGFpbnVsdCBzaXNzZWxvZ2ludWQga2FzdXRhamFpZCc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnTG9naSBzZWUga2FzdXRhamEgdiZhdW1sO2xqYSc7CiRsYW5nWyd1c2VyX3Byb3BlcnRpZXMnXSA9ICdLYXN1dGFqYSBvbWFkdXNlZCc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0thc3V0YWphIGFqYWx1Z3UnOwokbGFuZ1snZXhwb3J0J10gPSAnRWtzcG9yZGknOwokbGFuZ1snY2xlYXInXSA9ICdQdWhhc3RhJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0V4cG9ydCBVc2VyIEhpc3RvcnkgVG8gQVNDSUkgdGhhdCBpcyBhdCBsZWFzdCc7CiRsYW5nWydwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeSddID0gJ0NsZWFyIFVzZXIgSGlzdG9yeSByZWNvcmRzIHRoYXQgaXMgYXQgbGVhc3QnOwokbGFuZ1sndGl0bGVfbG9zdHVzZXJuYW1lJ10gPSAnVW51c3Rhc2lkIGthc3V0YWphbmltZT8nOwokbGFuZ1sndGl0bGVfcnNzZXhwb3J0J10gPSAnRXhwb3J0IGdyb3VwIGRlZmluaXRpb24gKGFuZCBwcm9wZXJ0aWVzKSB0byBYTUwnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZSddID0gJ0thc3V0YWphIGFqYWxvbyBob29sZHVzJzsKJGxhbmdbJ3llcyddID0gJ0phaCc7CiRsYW5nWydubyddID0gJ0VpJzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ2tva2t1JzsKJGxhbmdbJ2RhdGVfYWxscmVjb3JkcyddID0gJyoqIFBpaXJhbWF0dSAqKic7CiRsYW5nWydkYXRlX29uZWhvdXJvbGQnXSA9ICcmVXVtbDtrcyB0dW5kIHZhbmEnOwokbGFuZ1snZGF0ZV9zaXhob3Vyb2xkJ10gPSAnS3V1cyB0dW5kaSB2YW5hJzsKJGxhbmdbJ2RhdGVfdHdlbHZlaG91cm9sZCddID0gJzEyIHR1bmRpIHZhbmEnOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICcmVXVtbDtrcyBwJmF1bWw7ZXYgdmFuYSc7CiRsYW5nWydkYXRlX29uZXdlZWtvbGQnXSA9ICcmVXVtbDtrcyBuJmF1bWw7ZGFsIHZhbmEnOwokbGFuZ1snZGF0ZV90d293ZWVrc29sZCddID0gJ0tha3MgbiZhdW1sO2RhbGF0IHZhbmEnOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJyZVdW1sO2tzIGt1dSB2YW5hJzsKJGxhbmdbJ2RhdGVfdGhyZWVtb250aHNvbGQnXSA9ICdLb2xtIGt1dWQgdmFuYSc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ0t1dXMga3V1ZCB2YW5hJzsKJGxhbmdbJ2RhdGVfb25leWVhcm9sZCddID0gJyZVdW1sO2tzIGFhc3RhIHZhbmEnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnR3J1cGVlcmltaW5lIGphIHNvcnRpbWluZSc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2ZvdW5kJ10gPSAnS2lyamVkLCBtaXMgdmFzdGF2YWQga3JpdGVlcml1bWlsZSc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfZGVzYyddID0gJ1YmYXVtbDtoZW5ldiBrYXN1dGFqYW5pbWknOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2FzYyddID0gJ1N1dXJlbmV2IGthc3V0YWphbmltaSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnViZhdW1sO2hlbmV2IGt1dXAmYXVtbDtldic7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdTdXVyZW5ldiBrdXVwJmF1bWw7ZXYnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9kZXNjJ10gPSAnViZhdW1sO2hlbmV2IHMmdXVtbDtuZG11c2UgdCZ1dW1sOyZ1dW1sO3AnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdTdXVyZW5ldiBzJnV1bWw7bmRtdXNlIHQmdXVtbDsmdXVtbDtwJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfZGVzYyddID0gJ1YmYXVtbDtoZW5ldiBJUCBhYWRyZXNzJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnU3V1cmVuZXYgSVAgYWFkcmVzcyc7CiRsYW5nWydpbmZvX25vaGlzdG9yeWRldGVjdGVkJ10gPSAnQWphbHVndSBlaSB0dXZhc3RhdHVkJzsKJGxhbmdbJ3Jlc2V0J10gPSAnVGFhc3RhJzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0dydXBlZXJpIElQIGFhZHJlc3NpIGomYXVtbDtyZ2knOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnXSA9ICdTJnV1bWw7bmRtdXNlIHQmdXVtbDsmdXVtbDtiaSBmaWx0ZXInOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9kYXRlJ10gPSAnTiZhdW1sO2l0YSBzJnV1bWw7bmRtdXNpLCBtaXMgb24gdiZhdW1sO2hlbSBrdWk6JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdMZWhlayZ1dW1sO2xqZSBwaWlyYW5nJzsKJGxhbmdbJ2ZvciddID0gJ2Zvcic7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeSddID0gJ0thc3V0YWphIGFqYWxvbyByYXBvcnQnOwokbGFuZ1sndW5rbm93biddID0gJ1R1bmRtYXR1JzsKJGxhbmdbJ3Byb21wdF9pcGFkZHJlc3MnXSA9ICdJUCBhYWRyZXNzJzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICdTJnV1bWw7bmRtdXNlIHQmdXVtbDsmdXVtbDtwJzsKJGxhbmdbJ3Byb21wdF9kYXRlJ10gPSAnS3V1cCZhdW1sO2V2JzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdUYWdhc2knOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ0ltcG9ydCBPcGVyYXRpb24gQ29tcGxldGUnOwokbGFuZ1sncHJvbXB0X2xpbmVzcHJvY2Vzc2VkJ10gPSAnUmlkYSB0Jm91bWw7Jm91bWw7ZGVsZHVkJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdWZWFkIHR1dmFzdGF0dWQnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ0tpcmpldCBsaXNhdHVkJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnXSA9ICdDb3VsZCBub3QgZmluZCBwcm9wZXJ0aWVzIGZvciBncm91cCAlcyc7CiRsYW5nWydlcnJvcl9ub3Jlc3BvbnNlZnJvbXNlcnZlciddID0gJ0NvdWxkIG5vdCBnZXQgYSByZXNwb25zZSBmcm9tIHRoZSBTTVRQIHNlcnZlcic7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlbm90Zm91bmQnXSA9ICdGaWxlIHNwZWNpZmllZCAoJXMpIGNvdWxkIG5vdCBiZSBmb3VuZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZHZhbHVlJ10gPSAnSW52YWxpZCB2YWx1ZSBmb3IgZHJvcGRvd24gb3IgbXVsdGlzZWxlY3QgZmllbGQgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdGaWVsZCAlcyBleGNlZWRzIG1heGltdW0gbGVuZ3RoJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0IEVycm9yIChsaW5lICVzKTogJXMnOwokbGFuZ1snZXJyb3JfcHJvcGVydHlkZWZucyddID0gJ0NvdWxkIG5vdCBnZXQgdGhlIHByb3BlcnR5IGRlZmluaXRpb25zIChpbnRlcm5hbCBlcnJvciknOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdpbmZvJ10gPSAnUHJvYmxlbSBzZXR0aW5nIHVzZXIgaW5mbyc7CiRsYW5nWydlcnJvcl9pbXBvcnRyZXF1aXJlZGZpZWxkJ10gPSAnQ291bGQgbm90IGZpbmQgYSBjb2x1bW4gdG8gbWF0Y2ggdGhlIHJlcXVpcmVkIGZpZWxkICVzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wZXJ0aWVzJ10gPSAnQ291bGQgbm90IGZpbmQgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnVGhlIGZpbGUgc3BlY2lmaWVkIGZvciBpbXBvcnQgaXMgbm90IGluIHRoZSBjb3JyZWN0IGZvcm1hdCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdG9wZW5maWxlJ10gPSAnQ291bGQgbm90IG9wZW4gZmlsZSc7CiRsYW5nWydpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdCddID0gJzxoND5GaWxlIEZvcm1hdCBJbmZvcm1hdGlvbjwvaDQ+DQo8cD5UaGUgaW5wdXQgZmlsZSBtdXN0IGJlIGluIEFTQ0lJIGZvcm1hdCB1c2luZyBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzLiAgRWFjaCBsaW5lIGluIHRoaXMgaW5wdXQgZmlsZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBoZWFkZXIgbGluZSwgZGlzY3Vzc2VkIGJlbG93KSByZXByZXNlbnRzIG9uZSB1c2VyIHJlY29yZC4gIFRoZSBvcmRlciBvZiB0aGUgZmllbGRzIGluIGVhY2ggbGluZSBtdXN0IGJlIGlkZW50aWNhbC48L3A+DQo8aDU+SGVhZGVyIGxpbmU8L2g1Pg0KPHVsPg0KPGxpPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIG11c3QgYmVnaW4gd2l0aCB0d28gcG91bmQgKFwjKSBjaGFyYWN0ZXJzLCBhbmQgbmFtZXMgZWFjaCBvZiB0aGUgZmllbGRzIGluIHRoZSBmaWxlLiAgVGhlIG5hbWVzIG9mIHRoZXNlIGZpZWxkcyBpcyBzaWduaWZpY2FudC4gIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkIG5hbWVzIChzZWUgYmVsb3cpLCBhbmQgb3RoZXIgZmllbGQgbmFtZXMgbXVzdCBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB1c2VycyBhcmUgZ29pbmcgdG8gYmUgYWRkZWQgaW50by48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGZhaWwgaWYgdGhlIGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSBkb2VzIG5vdCBtYXRjaCBhbGwgb2YgdGhlIHJlcXVpcmVkIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB0aGF0IHVzZXJzIGFyZSBiZWluZyBhZGRlZCBpbnRvPC9saT4NCjxsaT5UaGUgaW5wdXQgZmlsZSBtYXkgY29udGFpbiBmaWVsZHMgcmVwcmVzZW50aW5nIHNvbWUgb2YgdGhlIG9wdGlvbmFsIHByb3BlcnRpZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGlnbm9yZSBhbnkgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIHRoYXQgYXJlIGVpdGhlciBub3Qga25vd24sIG9yIG1hcCB0byBwcm9wZXJ0aWVzIHRoYXQgYXJlIDxlbT5vZmY8L2VtPiBpbiB0aGUgc3BlY2lmaWVkIHVzZXIgZ3JvdXAuPC9saT4NCjwvdWw+DQo8aDU+Q29sdW1uYXIgRGF0YTwvaDU+DQo8dWw+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcmlkPC9zdHJvbmc+IEZpZWxkIC0gVGhlIHVzZXJpZCBmb3IgdGhlIHVzZXIuIEEgdmFsdWUgaW4gdGhpcyBmaWVsZCB3aWxsIGluZGljYXRlIHlvdSBhcmUgZG9pbmcgYW4gdXBkYXRlLjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gRmllbGQgLSBUaGUgZGVzaXJlZCB1c2VybmFtZS4NCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNoIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBUaGUgcmVjb3JkIHdpbGwgZmFpbCBpZiBhIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZS48L3A+PC9saT4NCjxsaT5UaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBGaWVsZCAtIFRoZSBwYXNzd29yZCB0byBzZXQgZm9yIHRoZSB1c2VyPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5jcmVhdGVkYXRlPC9zdHJvbmc+IEZpZWxkIC0gdG9kbzwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+ZXhwaXJlczwvc3Ryb25nPiBGaWVsZCAtIHRvZG88L2xpPg0KPGxpPlRoZSA8c3Ryb25nPmdyb3VwbmFtZTwvc3Ryb25nPiBGaWVsZCAtIFRoZSBncm91cHMgdGhhdCB5b3Ugd2FudCB0byBoYXZlIHRoZSB1c2VyIGJlIGEgbWVtYmVyIG9mLiBJZiBhbGwgcmVxdWlyZWQgZmllbGRzIGFyZSBub3QgZmlsbGVkIGluIHRoZSBpbnNlcnQvdXBkYXRlIG9mIHRoZSByZWNvcmQgd2lsbCBmYWlsLiBTZWUgTXVsdGlzZWxlY3QgRmllbGRzIGJlbG93IGZvciBzeW50YXguPC9saT4NCjxsaT5Ecm9wZG93bi9SYWRpbyBGaWVsZHMNCiAgICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QgRmllbGRzDQogICAgPHA+TXVsdGlzZWxlY3QgZmllbGRzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBBU0NJSSBmaWxlIGFzIGEgOiBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzLCB3aGVyZSBlYWNoIHN0cmluZyByZXByZXNlbnRzIHRoZSB0ZXh0IHNob3duIGluIHRoZSBtdWx0aXNlbGVjdCBsaXN0PC9wPg0KPC9saT4NCjxsaT5EYXRlIEZpZWxkcw0KICAgIDxwPk11c3QgYmUgaW4gdGhlIGZvcm1hdCBvZiBNTS1ERC1ZWVlZPC9wPg0KPC9saT4NCjxsaT5JbWFnZSBGaWVsZHMNCiAgICA8cD5JbWFnZSBhcmUgZmllbGRzIHdobyYjMDM5O3MgY29sdW1uIG5hbWUgbWF0Y2hlcyBhIHByb3BlcnR5IG9mIHR5cGUgSW1hZ2UuICBJZiB0aGlzIGZpZWxkIGlzIGEgcmVxdWlyZWQgcGFydCBvZiB0aGUgZGVzdGluYXRpb24gZ3JvdXAsIHRoZW4gdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiB0aGUgdXBsb2FkcyBkaXNyZWN0b3J5IG9mIHRoZSBDTVMgaW5zdGFsbGF0aW9uLiAgSWYgdGhlIGltYWdlIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvcD48L2xpPg0KPC91bD4NCjxoNT5Ob3RlczwvaDU+DQo8cD5UaGUgaW1wb3J0IHByb2Nlc3MgaXMgc3ViamVjdCB0byB0aGUgbGltaXRhdGlvbnMgaW1wb3NlZCBieSB0aGUgaG9zdCBwcm92aWRlciwgc3VjaCBhcyBtZW1vcnkgbGltaXRhdGlvbnMsIHByb2Nlc3NpbmcgdGltZSwgZmlsZSBzaXplIHVwbG9hZCwgYW5kIHNhZmUgbW9kZSByZXN0cmljdGlvbnMuICBBbnkgb25lIG9mIHRoZXNlIGxpbWl0YXRpb25zIG1heSBjYXVzZSB0aGUgaW1wb3J0IHRvIGZhaWwuIFRoZXJlZm9yZSBpdCBpcyBhZHZpc2FibGUgdG8gZW5zdXJlIHRoYXQgaW1wb3J0IGZpbGVzIGFyZSBzbWFsbGVyIGluIHNpemUsIGFuZCBzaW1wbGVyIGluIG5hdHVyZS48L3A+DQo8cD5UaG91Z2ggZXZlcnkgZWZmb3J0IGhhcyBiZWVuIG1hZGUgdG8gZW5zdXJlIHRoYXQgZGF0YWJhc2UgY29ycnVwdGlvbiB3aWxsIG5vdCBvY2N1ciwgaXQgaXMgYWR2aXNhYmxlIHRvIHBlcmZvcm0gYSBkYXRhYmFzZSBiYWNrdXAgYmVmb3JlIGRvaW5nIGEgdXNlciBpbXBvcnQuPC9wPg0KPHA+VGhlIEV4cG9ydCBkYXRhIGlzIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBuZWVkZWQgZm9yIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0IFVzZXJzIEludG8gVGhpcyBHcm91cCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdJbnB1dCBDU1YgRmlsZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0eG1sZmlsZSddID0gJ0lucHV0IFhNTCBGaWxlJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0Vrc3BvcmRpIGthc3V0YWphaWQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHVzZXJzJ10gPSAnSW1wb3JkaSBrYXN1dGFqYWlkJzsKJGxhbmdbJ3Byb21wdF9jbGVhciddID0gJ1B1aGFzdGEnOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdQaWxkaSBzaWh0a29oYSB0ZWUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ191cGxvYWQnXSA9ICdBIHByb2JsZW0gb2NjdXJyZWQgd2l0aCBhIG1pc3NpbmcgKGJ1dCByZXF1aXJlZCkgdXBsb2FkJzsKJGxhbmdbJ2Vycm9yX2JhZF94bWwnXSA9ICdDb3VsZCBub3QgcGFyc2UgdGhlIHByb3ZpZGVkIFhNTCBmaWxlJzsKJGxhbmdbJ2Vycm9yX25vdGVtcHR5Z3JvdXAnXSA9ICdFaSBzYWEga3VzdHV0YWRhIGdydXBwaSwga3VzIG9uIGVuZGlzZWx0IGthc3V0YWphaWQnOwokbGFuZ1snZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucyddID0gJ1NlZSBrYXN1dGFqYSBvbiBqdWJhIHNpc3NlIGxvZ2l0dWQnOwokbGFuZ1snZXJyb3JfY2FwdGNoYW1pc21hdGNoJ10gPSAnVGVrc3QgcGlsZGlsdCBlaSBvbG51ZCBrb3JyZWt0c2VsdCBzaXNlc3RhdHVkJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19yZXBlYXRlZF9sb2dpbnMnXSA9ICdMdWJhIGthc3V0YWphdGVsIGxvZ2lkYSBzaXNzZSByb2hrZW0sIGt1aSAmdXVtbDtrcyBrb3JkJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdQaWxkaSBmYWlsaWRlIGxhaWVuZGlkLCBtaWRhIGthc3V0YWphZCBzYWF2YWQgJnV1bWw7bGVzIGxhYWRpZGEnOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyB1cGRhdGVkIChlaXRoZXIgYnkgdXNlciB0aGVtc2VsZiBvciBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZUdyb3VwJ10gPSAnPGgzPk9uQ3JlYXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBncm91cCBkZXNjcmlwdGlvbjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9naW4nXSA9ICc8aDM+T25Mb2dpbjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGlkIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPg0KPGxpPjxlbT5pcDwvZW0+IC0gVGhlIGlwIGFkZHJlc3Mgb2YgdGhlIGNsaWVudDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dvdXQnXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBvdXQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2Vkb3V0IHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uRXhwaXJlVXNlciddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGV4cGlyZXM8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9pbmZvX09uTG9naW4nXSA9ICdTJnV1bWw7bmRtdXMsIG1pcyBnZW5lcmVlcml0YWtzZSBrYXN1dGFqYSBzaXNzZWxvZ2ltaXNlbCBzJnV1bWw7c3RlZW1pJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdTJnV1bWw7bmRtdXMsIG1pcyBnZW5lcmVlcml0YWtzZSBrYXN1dGFqYSB2JmF1bWw7bGphbG9naW1pc2VsIHMmdXVtbDtzdGVlbWlzdCc7CiRsYW5nWydldmVudF9pbmZvX09uRXhwaXJlVXNlciddID0gJ1MmdXVtbDtuZG11cywgbWlzIGdlbmVyZWVyaXRha3NlIGthc3V0YWphIHNlc3Npb29uaSBhZWd1bWlzZWwnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZVVzZXInXSA9ICdTJnV1bWw7bmRtdXMsIG1pcyBnZW5lcmVlcml0YWtzZSB1dWUga2FzdXRhamEgbG9vbWlzZWwnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdTJnV1bWw7bmRtdXMsIG1pcyBnZW5lcmVlcml0YWtzZSBrYXN1dGFqYSBpbmZvIHV1ZW5kYW1pc2VsJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnUyZ1dW1sO25kbXVzLCBtaXMgZ2VuZXJlZXJpdGFrc2Uga2FzdXRhamFrb250byBrdXN0dXRhbWlzZWwnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZUdyb3VwJ10gPSAnUyZ1dW1sO25kbXVzLCBtaXMgZ2VuZXJlZXJpdGFrc2Uga2FzdXRhamFncnVwaSBsb29taXNlbCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdTJnV1bWw7bmRtdXMsIG1pcyBnZW5lcmVlcml0YWtzZSBrYXN1dGFqYWdydXBpIHV1ZW5kYW1pc2VsJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ1MmdXVtbDtuZG11cywgbWlzIGdlbmVyZWVyaXRha3NlIGthc3V0YWphZ3J1cGkga3VzdHV0YW1pc2VsJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdBZG1pbmlzdHJhYXRvcmlsaWlkZXNlIGdydXBwJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogViZhdW1sO2xqYWRlbCB2Jm90aWxkZTtpYiBrYXN1dGFkYSBqJmF1bWw7cmduZXZhaWQgbWFrcm9zaTogeyR1c2VybmFtZX0seyRncm91cH0uIEthc3V0YWRlcyB7JGdyb3VwfSBtYWtyb3QsIGFzZW5kYWIgcyZ1dW1sO3N0ZWVtIGVzaW1lc2UgZ3J1cGkgbmltZSwgbWlsbGVzc2Uga2FzdXRhamEga3V1bHViLCBqYSBzdXVuYWIgZWRhc2kgc2VsbGVsZSBsZWhlbGUuJzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdLYXN1dGFqYSBwYXJvb2xpIHRhYXN0YW1pc2VrcyBtdXVkYSBzZWRhIHYmYXVtbDtsamEnOwokbGFuZ1snaW5mb19hZG1pbl9yZXBlYXRwYXNzd29yZCddID0gJ0thc3V0YWphIHBhcm9vbGkgdGFhc3RhbWlzZWtzIG11dWRhIHNlZGEgdiZhdW1sO2xqYSc7CiRsYW5nWydlcnJvcl91c2VybmFtZV9leGlzdHMnXSA9ICdTZWxsaXNlIG5pbWVnYSBrYXN1dGFqYSBqdWJhIGVrc2lzdGVlcmliJzsKJGxhbmdbJ25vY3N2cmVzdWx0cyddID0gJ0NTViBla3Nwb3J0IGVpIHRvb251ZCB0dWxlbXVzaSc7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdLYXN1dGFqYW5pbWUgbGFodHJpIHBpa2t1cyc7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdQYXJvb2xpIGxhaHRyaSBwaWtrdXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ01pbi9NYXggcGFyb29saSBwaWtrdXNlZCBvbiB2aWdhc2VkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZWxlbmd0aHMnXSA9ICdNaW4vTWF4IGthc3V0YWphbmltZSBwaWtrdXNlZCBvbiB2aWdhc2VkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdWaWdhbmUgZS1tYWlsaSBhYWRyZXNzJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxhZGRyZXNzJ10gPSAnTWUgZWkgc3V1dG51ZCBsZWlkYSBzZWxsZSBrb250b2dhIHNlb3R1ZCBlLW1haWxpIGFhZHJlc3NpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdQcm9ibGVlbSBrYXN1dGFqYWluZm8gc2VhZG1pc2VnYSc7CiRsYW5nWydlcnJvcl9zZXR0aW5ncHJvcGVydHknXSA9ICdQcm9ibGVlbSBvbWFkdXNlIHNlYWRtaXNlZ2EnOwokbGFuZ1sndXNlcl9hZGRlZCddID0gJ0thc3V0YWphIGxpc2F0dWQgJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdrYXN1dGFqYSBrdXN0dXRhdHVkIHVpZD0lcyc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ09tYWR1cyc7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnViZhdW1sOyZhdW1sO3J0dXMgKHZhYmFzIHZvcm1pcyknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdIb2lhdHVzOiBOZWVkIGxhaHRyaWQgbSZvdGlsZGU7anV0YXZhZCB2b3JtaWRlIGxhaHRyaXRlIHN1dXJ1c2kuIFNlbGxlIG51bWJyaSB2JmF1bWw7aGVuZGFtaW5lIG9sZW1hc29sZXZhbCBzYWlkaWwgZWkgcHJ1dWdpIG9sbGEgc29vdml0YXRhdic7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnTXV1ZGEgYWRtaW5uaSBlZWxpc3R1c2k/JzsKJGxhbmdbJ2Vycm9yX2VtYWlsYWxyZWFkeXVzZWQnXSA9ICdFLW1haWxpIGFhZHJlc3Mgb24ganViYSBrYXN1dHVzZXMnOwokbGFuZ1sncHJvbXB0X3VzZWNvb2tpZXN0b3JlbWVtYmVyJ10gPSAnS2FzdXRhIGsmdXVtbDtwc2lzZWlkLCBldCBtJmF1bWw7bGV0YWRhIHNpc3NlbG9naW1pc2UgYW5kbWVpZCc7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ0smdXVtbDtwc2lzZSBuaW1pJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnTHViYSBlLW1haWxpIGR1cGxpa2FhdGUnOwokbGFuZ1sncHJvbXB0X3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnRS1tYWlsaSBhYWRyZXNzIG9uIGthc3V0YWphbmltZWtzJzsKJGxhbmdbJ2luZm9fY29va2llX2tlZXBhbGl2ZSddID0gJ0F0dGVtcHQgdG8ga2VlcCBsb2dpbnMgYWxpdmUgYnkgdGhlIHVzZSBvZiBhIGNvb2tpZSA8ZW0+KHRoZSBjb29raWUgaXMgcmVzZXQgb24gYWN0aXZpdHkgaW4gdGhlIHdlYnNpdGUpPC9lbT4nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKGx1YmEgbWl0bWVsIGthc3V0YWphbCBrYXN1dGFkYSBzYW1hIGUtbWFpbGkgYWFkcmVzc2kpJzsKJGxhbmdbJ2luZm9fdXNlcm5hbWVfaXNfZW1haWwnXSA9ICcodXNlciYjMDM5O3MgZW1haWwgYWRkcmVzcyBpcyB0aGVpciB1c2VybmFtZSAtLSBkb24mIzAzOTt0IHNldCB0aGlzIHdpdGggJnF1b3Q7YWxsb3cgZHVwbGljYXRlIGVtYWlsIGFkZHJlc3NlcyZxdW90OyEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnQWxsb3cgZHVwbGljYXRlICZxdW90O2ZvcmdvdCBwYXNzd29yZCZxdW90OyByZW1pbmRlcnM/JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJyhBbGxvdyBhIHVzZXJzIHRvIHJlcXVlc3QgYSBwYXNzd29yZCByZXNldCwgZXZlbiBpZiB0aGV5IGhhdmVuJiMwMzk7dCBhY3RlZCBvbiBhIHByZXZpb3VzIG9uZSknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdLYXN1dGEgRnJvbnQtZW5kIFVzZXIgc3BldHNpaWZpbGlzaSAmb3RpbGRlO2lndXNlaWQ/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhOb3JtYWxseSwgRkVVU2VycyBwZXJtaXNzaW9ucyBhcmUgdGhlIHNhbWUgYXMgdGhlIGVxdWl2YWxlbnQgQWRtaW4gQXJlYSBwZXJtaXNzaW9ucyBsaWtlIEFkZCBVc2VyLCBBZGQgR3JvdXAsIGV0Yy4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlcmUgd2lsbCBiZSBzZXBhcmF0ZSBwZXJtaXNzaW9ucyBmb3IgRkVVc2Vycy4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdFaSBsZWlkbnVkICZ1dW1sO2xlc2xhZXR1ZCBmYWlsaSAoc2lzZW1pbmUgdmlnYSknOwokbGFuZ1snZXJyb3JfcHJvYmxlbV91cGxvYWQnXSA9ICdUdXZhc3RhdGkgcHJvYmxlZW0gJnV1bWw7bGVzbGFldHVkIGZhaWxpZ2EuIFBhbHVuIHByb292aSB1dWVzdGknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnU2EgZWkgc2lzZXN0YW51ZCBrYXN1dGFqYW5pbWUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ2VtYWlsJ10gPSAnU2EgZWkgc2lzZXN0YW51ZCBvbWEgZS1tYWlsaSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdTYSBlaSBzaXNlc3RhbnVkIHBhcm9vbGknOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0Vlc2xpaWRlc2UgS2FzdXRhamEgViZhdW1sO2xqYWxvZ2ltaW5lJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0Vlc2xpaWRlc2UgS2FzdXRhamEgU2lzc2Vsb2dpbWluZSc7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPkVUVEVWQUFUVVNUPC9iPiBvbGVtYXNvbGV2YXRlIG9tYWR1c3RlIG11dXRtaW5lIHYmb3RpbGRlO2liIGomYXVtbDsmYXVtbDtkYXZhbHQga2FoanVzdGFkYSBvbGVtYXNvbGV2YXQgc2FpdGk8aT4oZXJpdGksIGt1aSBsJnV1bWw7aGVuZGFkIHYmYXVtbDtsamFkZSBwaWtrdXNpIHZtcy4pPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdTZWUgZnVua3RzaW9vbiBlaSB0Jm91bWw7Jm91bWw7dGEgd2luZG93cyYjMDM5O2lsJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICcmQXVtbDtyYSBsb28ga2FzdXRhamFuaW1lIHYmb3RpbGRlO2kgcGFyb29saSBsYWh0cmVpZCAtIG5lZWQgb24ganViYSBGcm9udEVuZFVzZXJzIG1vb2R1bGlzc2Ugc2lzc2UgZWhpdGF0dWQnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0Vrc3BvcmRpIEthc3V0YWphZCBDU1YmIzAzOTtzc2UnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRWtzcG9yZGknOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3JkaSc7CiRsYW5nWydhZG1pbiddID0gJ0FkbWluaXN0cmFhdG9yJzsKJGxhbmdbJ2VkaXRwcm9wJ10gPSAnTXV1ZGEgT21hZHVzdCc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYWtzaW1hYWxuZSBwaWtrdXMnOwokbGFuZ1snY3JlYXRlZCddID0gJ0xvb2R1ZCc7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0ZWVyaSc7CiRsYW5nWydzb3J0J10gPSAnU29ydGVlcmltaW5lJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ0thc3V0YWphKHQpIHZhbGl0dWQgZ3J1cHBwaWRlcyc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdUdWxlbXVzaSc7CiRsYW5nWydlcnJvcl9ub2VtYWlsZmllbGQnXSA9ICdTZWxsZWxlIGthc3V0YWphbGUgZWkgbGVpdHVkIGUtbWFpbGkgdiZhdW1sO2xqYS4gViZvdGlsZGU7aWItb2xsYSBwZWFrc2lkIGtvbnRha3RlZXJ1bWEgcyZ1dW1sO3N0ZWVtaWFkbWluaXN0cmFhdG9yaWdhPyc7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ0xlaGVJRC9BbGlhcyBVbnVzdGF0dWQgUGFyb29saSB2b3JtaSBqYW9rcyc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ0xlaGVJRC9BbGlhcyBTZWFkZXRlIHZvcm1pIGphb2tzJzsKJGxhbmdbJ3Byb21wdF9sb2dpbl9wYWdlJ10gPSAnTGVoZUlEL0FsaWFzLCBrdWh1IHN1dW5hdGEgcGVhbGUgc2lzc2Vsb2dpbWlzdCAqJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXRfcGFnZSddID0gJ0xlaGVJRC9BbGlhcywga3VodSBzdXVuYXRhIHBlYWxlIHYmYXVtbDtsamFsb2dpbWlzdCAqJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ1NvcnRlZXJpbWlzZSBqJmF1bWw7cmpla29yZCc7CiRsYW5nWydwcm9tcHRfbnVtcmVzZXRyZWNvcmQnXSA9ICdNJm90aWxkZTtuZWQga2FzdXRhamFkIHRhYXN0YXZhZCBvbWEga2FkdW51ZCBwYXJvb2xlLiBIZXRrZWwgb24gbmVpZDonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdFZW1hbGRhIGsmb3RpbGRlO2lrIHNpc2VzdHVzZWQsIG1pcyBvbiB2YW5lbWFkIGt1aSAxIG4mYXVtbDtkYWwnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnRWVtYWxkYSBrJm90aWxkZTtpayBzaXNlc3R1c2VkLCBtaXMgb24gdmFuZW1hZCBrdWkgMSBrdXUnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnRWVtYWxkYSBrJm90aWxkZTtpayBzaXNlc3R1c2VkJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdPbGVkIHNhIGtpbmRlbD8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICdTaXNlc3RhdHVkIGtvb2Qgb24gdmlnYW5lLCBwYWx1biBwcm9vdmkgdXVlc3RpJzsKJGxhbmdbJ2Vycm9yX3RlbXBjb2Rlbm90Zm91bmQnXSA9ICdTaW51IGthc3V0YWphIElELWxlIHZhc3RhdmF0IGFqdXRpc3Qga29vZGkgYW5kbWViYWFzaXN0IGVpIGxlaXR1ZCc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJ0tpbm5pdGFtaXNlIHZvcm1pIG1hbGwnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfZW1haWx0ZW1wbGF0ZSddID0gJ1VudXN0YXR1ZCBwYXJvb2xpIGUtbWFpbGkgbWFsbCc7CiRsYW5nWydlcnJvcl9yZXNldGFscmVhZHlzZW50J10gPSAnS2FzIHNpbmEgdiZvdGlsZGU7aSBrZWVnaSB0ZWluZSBvbiBqdWJhIHNlbGxlIGthc3V0YWpha29udG8gcGFyb29saSB0YWFzdGFtaXN0IGFsdXN0YW51ZC4gIEtvbnRyb2xsaSBvbWEgZS1tYWlsaSwgc2VhbCB2Jm90aWxkZTtpdmFkIG9sbGEgZWRhc2lzZWQganVodG4mb3VtbDsmb3VtbDtyaWQsIGt1aWRhcyBvbWEgcGFyb29saSB0YWFzdGFkYSc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnQW5kbWViYWFzaSB2aWdhJzsKJGxhbmdbJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCddID0gJ1NhaWQgc2VsbGUga2lyamEsIGt1bmEga2VlZ2kgJnV1bWw7dGxlcyBtZWllIGxlaGVsZSwgZXQgb2xlZCBrYW90YW51ZCBvbWEgcGFyb29saS4gS3VpIHNlZSBvbiBuaWksIGxvZSBqdWhpc2VpZCBhbGxwb29sLiBLdWkgc3VsIHBvbGUgJm90aWxkZTtybmEgYWltdWdpLCBtaWxsZXN0IGp1dHQgayZhdW1sO2liLCB2Jm90aWxkZTtpZCBzZWxsZSBraXJqYSBrdXN0dXRhZGEuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnS29vZCc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdKJmF1bWw7cmduZXYga29vZCBvbiBzdXZhbGlzZWx0IGdlbmVyZWVyaXR1ZCBrYXN1dGFqYWtvbnRvIGtpbm5pdGFtaXNla3MuIEt1aSBzYSBrbGlraWQgYWxsaiZhdW1sO3JnbmV2YWwgbGluZ2lsLCB0dWxlYiBzdWwgc2VlIGtvb2Qgc2lzZXN0YWRhIHZhc3RhdmFzc2UgbGFodHJpc3NlLiBUYXZhbGlzZWx0IG9uIGtvb2QganViYSBsYWh0cmlzc2Ugc2lzZXN0YXR1ZCwga3VpIGFnYSBtaXR0ZSwgc2lpcyBrb29kIG9uOic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0tsaWtraWRlcyBhbGxqJmF1bWw7cmduZXZhbCBsaW5naWwgdmlpYWtzZSBzaW5kIHNhaWRpbGUsIGt1cyBzYWFkIHNpc2VzdGFkYSAmdXVtbDtsYWxwb29sIHRvb2R1ZCBrb29kaSBqYSB0YWFzdGFkYSBvbWEgcGFyb29saTonOwokbGFuZ1snbG9zdHBhc3N3b3JkX2VtYWlsc3ViamVjdCddID0gJ0thb3Rhc2lkIFNhbGFzJm90aWxkZTtuYSc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ0NNU01haWxlciBtb29kdWxpdCBlaSBzdXVkZXR1ZCBsZWlkYSc7CiRsYW5nWydpbmZvX2ZvcmdvdHB3bWVzc2FnZXNlbnQnXSA9ICdBYWRyZXNzaWxlICVzIG9uIHNhYWRldHVkIGUtbWFpbCBqdWhpc3RlZ2EsIGt1aWRhcyBzYSBzYWFkIG9tYSBwYXJvb2xpIHRhYXN0YWRhLiBUJmF1bWw7bmFtZSc7CiRsYW5nWydsb3N0cHdfbWVzc2FnZSddID0gJ1RpcGkgc2lzc2Ugb21hIGthc3V0YWphbmltaSBuaW5nIG1lIHNhYWRhbWUgc3VsbGUgZS1tYWlsaWdhIGp1aGlzZWQsIGt1aWRhcyBzYSBvbWEgcGFyb29saSB0YWFzdGFkYSBzYWFkJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3RlbXBsYXRlJ10gPSAnVW51c3RhdHVkIFBhcm9vbGkgTWFsbGlkJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ0thb3RhdHVkIGthc3V0YWphbmltZSBtYWxsJzsKJGxhbmdbJ2Vycm9yX3Byb3Bub3Rmb3VuZCddID0gJyVzIG9tYWR1c2kgZWkgbGVpdHVkJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdvbWFkdXModCkgbGVpdHVkJzsKJGxhbmdbJ2FkZHByb3AnXSA9ICdMaXNhIE9tYWR1cyc7CiRsYW5nWydlcnJvcl9yZXF1aXJlZGZpZWxkJ10gPSAnTiZvdGlsZGU7dXR1ZCB2JmF1bWw7bGkgKCVzKSBvbGkgdCZ1dW1sO2hpJzsKJGxhbmdbJ2luZm9fZW1wdHlwYXNzd29yZGZpZWxkJ10gPSAnT21hIHBhcm9vbGkgbXV1dG1pc2VrcyBzaXNlc3RhIHNpaWEgdXVzIHBhcm9vbCc7CiRsYW5nWydlcnJvcl9ub3Rsb2dnZWRpbiddID0gJ1NhIGVpIG9sZSBzaXNzZSBsb2dpdHVkJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdTZWFkZWQnOwokbGFuZ1sndXNlcl9yZWdpc3RyYXRpb24nXSA9ICdSZWdpc3RyZWVyaW1pbmUnOwokbGFuZ1snZXJyb3JfYWNjb3VudGV4cGlyZWQnXSA9ICdTZWUga29udG8gb24gYWVndW51ZCc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnVmlnYW5lIGUtbWFpbGkgYWFkcmVzc2kgdm9ybWluZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZXhwaXJ5ZGF0ZSddID0gJ1ZpZ2FuZSBhZWd1bWlza3V1cCZhdW1sO2V2JzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdWaWdhIG9tYWR1c2UgJXMgbSZhdW1sOyZhdW1sO3JhbWlzZWwga2FzdXRhamFsZSAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ1ZpZ2FuZSBncnVwaSBJRCAlcyc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ1BlaWRldHVkIHYmYXVtbDtsamEgbWFya2VyJzsKJGxhbmdbJ2hpZGRlbmZpZWxkY29sb3InXSA9ICdQZWlkZXR1ZCB2JmF1bWw7bGphIHYmYXVtbDtydic7CiRsYW5nWydoaWRkZW4nXSA9ICdQZWlkZXR1ZCc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnU2VsbGlzZSBuaW1lZ2Egb21hZHVzIGp1YmEgZWtzaXN0ZWVyaWInOwokbGFuZ1snZXJyb3Jfbm9wcm9wZXJ0aWVzJ10gPSAnT21hZHVzaSBlaSBvbGUnOwokbGFuZ1snZXJyb3Jfbm9yZWxhdGlvbnMnXSA9ICdTZWxsZSBncnVwaSBqYW9rcyBlaSB2YWxpdHVkICZ1dW1sO2h0ZWdpIG9tYWR1c3QnOwokbGFuZ1snbm9ncm91cHMnXSA9ICcmVXVtbDtodGVnaSBncnVwcGkgZWkgb2xlIGRlZmluZWVyaXR1ZCc7CiRsYW5nWydncm91cHNmb3VuZCddID0gJ2dydXBwKGkpIGxlaXR1ZCc7CiRsYW5nWydlcnJvcl9vbmVncm91cHJlcXVpcmVkJ10gPSAnS3V1bHV2dXMgdiZhdW1sO2hlbWFsdCAmdXVtbDtodGUgZ3J1cHBpIG9uIGtvaHVzdHVzbGlrJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdLdXVsdXZ1cyB2JmF1bWw7aGVtYWx0ICZ1dW1sO2h0ZSBncnVwcGkgb24ga29odXN0dXNsaWsnOwokbGFuZ1snYmFjayddID0gJ1RhZ2FzaSc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnJXMgb24gbiZvdGlsZGU7dXR1ZCB2JmF1bWw7bGknOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ00mYXVtbDtyZ2lzdGEgbiZvdGlsZGU7dXR1ZCB2JmF1bWw7bGphZCc7CiRsYW5nWydyZXF1aXJlZGZpZWxkY29sb3InXSA9ICdUJm90aWxkZTtzdGEgbiZvdGlsZGU7dXR1ZCB2JmF1bWw7bGphZCBlc2lsZSc7CiRsYW5nWyduZXh0J10gPSAnSiZhdW1sO3JnbWluZSc7CiRsYW5nWydlcnJvcl9ncm91cGV4aXN0cyddID0gJ1NlbGxpc2UgbmltZWdhIGdydXBwIGp1YmEgZWtzaXN0ZWVyaWInOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdOJm90aWxkZTt1dHVkIFYmYXVtbDtsaSc7CiRsYW5nWydvcHRpb25hbCddID0gJ1ZhbGlrdWxpbmUnOwokbGFuZ1snb2ZmJ10gPSAnViZhdW1sO2xqYXMnOwokbGFuZ1snc2l6ZSddID0gJ1N1dXJ1cyc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KFBpbGRpIGlnYSAmdXVtbDtrc2lrdSBrJnV1bWw7bGplIG1ha3NpbWFhbG5lIHN1dXJ1cyBwaWtzbGl0ZXMpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ1Bpa2t1cyc7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyPih0JmF1bWw7aGVtJmF1bWw7cmtlIGxhaHRyaXMpJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdWYWxpa21lbiZ1dW1sOyZ1dW1sOyB2YWxpa3VkLCBlcmFsZGF0dWQgcmVhdmFoZWdhJzsKJGxhbmdbJ3JhZGlvb3B0aW9ucyddID0gJ1JhZGlvYnV0dG9uIGxhYmVscywgc2VwYXJhdGVkIGJ5IGxpbmUgYnJlYWtzLiBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3Byb21wdCddID0gJ1BlYWxraXJpJzsKJGxhbmdbJ3Byb21wdF90eXBlJ10gPSAnVCZ1dW1sOyZ1dW1sO3AnOwokbGFuZ1sndHlwZSddID0gJ1QmdXVtbDsmdXVtbDtwJzsKJGxhbmdbJ2ZpZWxkc3RhdHVzJ10gPSAnViZhdW1sO2xqYSBvbGVrJzsKJGxhbmdbJ3VzZWRpbmxvc3R1biddID0gJ0smdXVtbDtzaSBrYW90YXR1ZDxici8+a2FzdXRhamFuaW1lIGtvcnJhbCc7CiRsYW5nWyd0ZXh0J10gPSAnVGVrc3QnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdMaW5udWtlJzsKJGxhbmdbJ211bHRpc2VsZWN0J10gPSAnTXVsdGkgU2VsZWN0IExpc3QnOwokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW8gQnV0dG9ucyc7CiRsYW5nWydpbWFnZSddID0gJ1BpbHQnOwokbGFuZ1snZW1haWwnXSA9ICdFLW1haWxpIGFhZHJlc3MnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdGl2JmF1bWw7bGknOwokbGFuZ1snZHJvcGRvd24nXSA9ICdWYWxpa21lbiZ1dW1sOyZ1dW1sOyc7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ1RlcmUsJzsKJGxhbmdbJ2xvZ291dCddID0gJ0xvZ2kgdiZhdW1sO2xqYSc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAnS2FzdXRhIHNlZGEgZ3J1cGluaW1lJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ011dWRhIG1pbnUgc2VhZGVpZCc7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ1Npc3NlbG9naW1pbmUgZWJhJm90aWxkZTtubmVzdHVzLiBWYWxlIGthc3V0YWphbmltaSB2Jm90aWxkZTtpIHBhcm9vbD8nOwokbGFuZ1snbG9naW4nXSA9ICdMb2dpIHNpc3NlJzsKJGxhbmdbJ3Byb21wdF9zaWduaW5fYnV0dG9uJ10gPSAnTG9naSBzaXNzZSBudXB1IHNpbHQnOwokbGFuZ1sncHJvbXB0X3VzZXJuYW1lJ10gPSAnS2FzdXRhamFuaW1pJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0UtbWFpbGkgYWFkcmVzcyc7CiRsYW5nWydwcm9tcHRfcGFzc3dvcmQnXSA9ICdQYXJvb2wnOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICdNJmF1bWw7bGV0YSBtaW5kIHNlbGxlcyBhcnZ1dGlzJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnUmVnaXN0cmVlcmknOwokbGFuZ1snZm9yZ290cHcnXSA9ICdVbnVzdGFzaWQgc2FsYXMmb3RpbGRlO25hPyc7CiRsYW5nWydsb3N0dXNlcm5hbWUnXSA9ICdVbnVzdGFzaWQga2FzdXRhamFuaW1lPyc7CiRsYW5nWydkZWZhdWx0cyddID0gJ1RhYXN0YSBhbGdzZWFkZWQnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdNYWxsJzsKJGxhbmdbJ2Vycm9yX3VzZXJub3Rmb3VuZCddID0gJ0thc3V0YWphIElELWQgZWkgbGVpdHVkJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1ldGFrZW4nXSA9ICdTZWUga2FzdXRhamFuaW1pICglcykgb24ganViYSBrYXN1dHVzZWwnOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ0thc3V0YSBTTVRQLWQgZS1tYWlsaSBhYWRyZXNzaWRlIGtlaHRpdnVzZSBraW5uaXRhbWlzZWtzPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdNaW5pbWFhbG5lIHBhcm9vbGkgcGlra3VzJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ01ha3NpbWFhbG5lIHBhcm9vbGkgcGlra3VzJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ01pbmltYWFsbmUga2FzdXRhamFuaW1lIHBpa2t1cyc7CiRsYW5nWydwcm9tcHRfbWF4dW5sZW4nXSA9ICdNYWtzaW1hYWxuZSBrYXN1dGFqYW5pbWUgcGlra3VzJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1Nlc3Npb29uaSB0YWltYXV0IChzZWt1bmRpdGVzKSc7CiRsYW5nWydwcm9tcHRfY29va2lla2VlcGFsaXZlJ10gPSAnS2FzdXRhIGsmdXVtbDtwc2lzZWlkIHNpc3NlbG9naW1pc3RlIGFsYWxob2l1a3MnOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdMdWJhIEUtbWFpbGkgcmVnaXN0cmVlcmltaXN0JzsKJGxhbmdbJ3Byb21wdF9kZmx0Z3JvdXAnXSA9ICdBbGduZSBncnVwcCB1dXRlbGUga2FzdXRhamF0ZWxlJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnU2VhZGV0ZSBtdXV0bWlzZSBNYWxsJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3JkbWlzbWF0Y2gnXSA9ICdQYXJvb2xpZCBlaSBrYXR0dSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWUnXSA9ICdFYmFzb2JpdiBLYXN1dGFqYW5pbWknOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkJ10gPSAnRWJhc29iaXYgU2FsYXMmb3RpbGRlO25hJzsKJGxhbmdbJ2VkaXR1c2VyJ10gPSAnTXV1ZGEgS2FzdXRhamF0JzsKJGxhbmdbJ3ZhbGlkJ10gPSAnS2VodGl2JzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnS2FzdXRhamFuaW1pJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YWF0dXMnOwokbGFuZ1snZXJyb3JfbWVtYmVyZ3JvdXBzJ10gPSAnU2VlIGthc3V0YWphIGVpIGt1dWx1ICZ1dW1sO2h0ZWdpIGdydXBwaSc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnT21hZHVzaSBlaSBvbGUnOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICcmVXVtbDtyaXRhIGltcG9ydGlkYSBkdXBsaWthYXRvbWFkdXNpJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1snZ3JvdXBzJ10gPSAnR3J1cGlkJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdPbWFkdXNlZCc7CiRsYW5nWydwcm9wbmFtZSddID0gJ09tYWR1c2UgTmltaSc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdPbWFkdXNlIFYmYXVtbDsmYXVtbDtydHVzJzsKJGxhbmdbJ2FkZCddID0gJ0xpc2EnOwokbGFuZ1snaGlzdG9yeSddID0gJ0FqYWx1Z3UnOwokbGFuZ1snZWRpdCddID0gJ011dWRhJzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdBZWd1Yic7CiRsYW5nWydzcGVjaWZ5X2RhdGUnXSA9ICdUJmF1bWw7cHN1c3RhIGt1dXAmYXVtbDtldmFnYSc7CiRsYW5nWycxMmhycyddID0gJzEyIFR1bmRpJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQgVHVuZGknOwokbGFuZ1snNDhocnMnXSA9ICc0OCBUdW5kaSc7CiRsYW5nWycxd2VlayddID0gJzEgTiZhdW1sO2RhbCc7CiRsYW5nWycyd2Vla3MnXSA9ICcyIE4mYXVtbDtkYWxhdCc7CiRsYW5nWycxbW9udGgnXSA9ICcxIEt1dSc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBLdXVkJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IEt1dWQnOwokbGFuZ1snMXllYXInXSA9ICcxIEFhc3RhJzsKJGxhbmdbJ25ldmVyJ10gPSAnTWl0dGUgS3VuYWdpJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ01vb2R1bCBpbnN0YWxsZWVyaXR1ZC48YnIvPk0mYXVtbDsmYXVtbDtyYSBraW5kbGFzdGkgayZvdGlsZGU7aWtpZGVsZSBhc2phZ2Egc2VvdHVkIGthc3V0YWphdGVsZSAmcXVvdDtNb2RpZnkgRnJvbnRFbmRVc2VyIFByb3BlcnRpZXMmcXVvdDsgJm90aWxkZTtpZ3VzLic7CiRsYW5nWydwYXNzd29yZCddID0gJ1Bhcm9vbCc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ1Bhcm9vbCB1dWVzdGknOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ1NlbGxpc2UgbmltZWdhIGdydXBwIGp1YmEgZWtzaXN0ZWVyaWInOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnTXV1ZGEgR3J1cHBpJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NhbHZlc3RhJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1QmdXVtbDtoaXN0YSc7CiRsYW5nWydkZWxldGUnXSA9ICdLdXN0dXRhJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnT2xlZCBzYSBraW5kZWwsIGV0IG5lZWQgb24gc2VsbGUgZ3J1cGkgamFva3Mga29ycmVrdHNlZCBzZWFkZWQ/XG5PbWFkdXNlIHYmYXVtbDtsamEgbCZ1dW1sO2xpdGFtaW5lIGVpIGt1c3R1dGEgJnV1bWw7aHRlZ2kgc2lzc2VrYW5uZXQgc2VsbGUgZ3J1cGkva2FzdXRhamEgb21hZHVzdGUgdGFiZWxpcy4gTmVpZCBlaSBzYWEgbGlodHNhbHQga2FzdXRhZGEuJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlZ3JvdXAnXSA9ICdPbGVkIGtpbmRlbCwgZXQgc29vdmlkIHNlZGEgZ3J1cHBpIGt1c3R1dGFkYT8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ09sZWQga2luZGVsLCBldCBzb292aWQgc2VsbGUgb21hZHVzZSBsJm90aWxkZTtwbGlrdWx0IGt1c3R1dGFkYT9cblNlbGxlZ2Ega2Fhc25lYiBrJm90aWxkZTtpa2lkZSBrYXN1dGFqYXRlIHNlbGxlIG9tYWR1c2Uga3VzdHV0YW1pbmUuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0ViYXBpaXNhdmFkIHBhcmFtZWV0cmlkJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snbmFtZSddID0gJ05pbWknOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdQcm9ibGVlbSBvbWFkdXNlIGxpc2FtaXNlbCc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXByZWxuJ10gPSAnUHJvYmxlZW0gZ3J1cGkgc2Vvc2UgbGlzYW1pc2VsJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZWVtIGdydXBpIGxpc2FtaXNlbCc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2JsZWVtIGthc3V0YWphIGdydXBwaSBsaXNhbWlzZWwnOwokbGFuZ1snZXJyb3JfY291bGRub3RkZWxldGVwcm9wZXJ0eSddID0gJ1Byb2JsZWVtIG9tYWR1c2Uga3VzdHV0YW1pc2VsJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnRWkgbGVpZG51ZCBlLW1haWxpIGFhZHJlc3NpJzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdQdXVkdXZhZCBraXJqdXRhbWlzZSAmb3RpbGRlO2lndXNlZCBzaWh0a2F0YWxvb2dpbGUnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ1ZpZ2FzZWQgUGFyYW1lZXRyaWQnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHMnXSA9ICdFaSBsZWlkbnVkICZ1dW1sO2h0ZWdpIGdydXBwaSc7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ1V1ZW5kYSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0cmVlcmknOwokbGFuZ1sndXNlcmZpbHRlciddID0gJ0thc3V0YWphbmltaSB2YWJhcyB2b3JtaXMnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdLaXJqZWxkdXMnOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnR3J1cGkgTmltaSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdMaWdpcCZhdW1sOyZhdW1sO3Mga2VlbGF0dWQnOwokbGFuZ1snZXJyb3InXSA9ICdWaWdhJzsKJGxhbmdbJ2FkZGdyb3VwJ10gPSAnTGlzYSBHcnVwcCc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ0ltcG9yZGkgR3J1cHAnOwokbGFuZ1snYWRkdXNlciddID0gJ0xpc2EgS2FzdXRhamEnOwokbGFuZ1sndXNlcnNmb3VuZCddID0gJ0FudHVkIGtyaXRlZXJpdW1pbGUgdmFzdGF2KGF0KSBrYXN1dGFqYSh0KSc7CiRsYW5nWydncm91cCddID0gJ0dydXBwJzsKJGxhbmdbJ3NlbGVjdGdyb3VwJ10gPSAnVmFsaSBHcnVwcCc7CiRsYW5nWydyZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdSZWdpc3RyZWVyaW1pc2UgTWFsbCc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdWJmF1bWw7bGphbG9naW1pc2UgTWFsbCc7CiRsYW5nWydsb2dpbl90ZW1wbGF0ZSddID0gJ1Npc3NlbG9naW1pc2UgTWFsbCc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0VlbGlzdHVzZWQnOwokbGFuZ1sndXNlcnMnXSA9ICdLYXN1dGFqYWQnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRnJvbnRlbmQgVXNlciBNYW5hZ21lbnQnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdMdWJhIGthc3V0YWphdGVsIG9tYSBzYWlkaSBlZXNsaWl0ZWwgc2lzc2UgbG9naWRhJzsKJGxhbmdbJ2RlZmF1bHRmcm9udHBhZ2UnXSA9ICdBbGduZSBlc2lsZWh0JzsKJGxhbmdbJ2xhc3RhY2Nlc3NlZHBhZ2UnXSA9ICdWaWltYXRpIHZhYWRhdHVkIGxlaHQnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnTXV1IGxlaHQ6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnU2lzZXN0YSB0ZWtzdCBwaWxkaWx0JzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/eu_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3JlYWRvbmx5J10gPSAnSXJha3VydHpla28gc29pbGlrJzsKJGxhbmdbJ3Byb21wdF91c2VybWFuaXB1bGF0b3InXSA9ICdVc2VyIE1hbmlwdWxhdG9yIENsYXNzJzsKJGxhbmdbJ2FkbWluX2xvZ2dvdXQnXSA9ICdBZG1pbmlzdHJhdHphaWxlYWsgc2Fpb3RpayBib3RhIGR1JzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdTYWlvYSBoYXNpdGEgZHV0ZW4gZXJhYmlsdHphaWxlYWsgZXJha3V0c2knOwokbGFuZ1sncHJvbXB0X2xvZ291dCddID0gJ0VyYWJpbHR6YWlsZWEgc2Fpb3RpayBhdGVyYSc7CiRsYW5nWyd1c2VyX3Byb3BlcnRpZXMnXSA9ICdFcmFiaWx0emFpbGVhcmVuIFByb3BpZXRhdGVhayc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0VyYWJpbHR6YWlsZWFyZW4gSGlzdG9yaWFsYSc7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnRhdHUnOwokbGFuZ1snY2xlYXInXSA9ICdHYXJiaXR1JzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0V4cG9ydGF0dSBFcmFiaWx0emFpbGUgSGlzdG9yaWFsYSBBU0NJSSBmb3JtYXR1cmEnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdHYXJiaXR1IEVyYWJpbHR6YWlsZSBIaXN0b3JpYWxhcmVuIGVycmVnaXN0cm9hayc7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeW1haW50ZW5hbmNlJ10gPSAnRXJhYmlsdHphaWxlIEhpc3RvcmlhbGFyZW4gTWFudGVudWEnOwokbGFuZ1sneWVzJ10gPSAnQmFpJzsKJGxhbmdbJ25vJ10gPSAnRXonOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnT2YnOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogTXVnYXJpayBnYWJlICoqJzsKJGxhbmdbJ2RhdGVfb25laG91cm9sZCddID0gJ09yZHViZXRla29hJzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJ1NlaSBvcmR1dGFrb2EnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnSGFtYWJpIG9yZHV0YWtvYSc7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ0VndW4gYmF0ZWtvYSc7CiRsYW5nWydkYXRlX29uZXdlZWtvbGQnXSA9ICdBc3RlYmV0ZWtvYSc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnQmkgQXN0ZXRha29hJzsKJGxhbmdbJ2RhdGVfb25lbW9udGhvbGQnXSA9ICdIaWxhYmV0ZWtvYSc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnSGlydSBIaWxhYmV0ZXRha29hJzsKJGxhbmdbJ2RhdGVfc2l4bW9udGhzb2xkJ10gPSAnU2VpIEhpbGFiZXRldGFrb2EnOwokbGFuZ1snZGF0ZV9vbmV5ZWFyb2xkJ10gPSAnVXJ0ZWJldGFrb2EnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnVGFsZGVrYWtldGEgZXRhIFNhaWxrYWtldGEnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ0JpbGFrZXRhLWlyaXpwaWRlYSBiZXRldHplbiBkdXRlbiBlcnJlZ2lzdHJvYWsnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2Rlc2MnXSA9ICdFcmFiaWx0emFpbGUtaXplbmEgYmVoZXJhbnprYSc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfYXNjJ10gPSAnRXJhYmlsdHphaWxlLWl6ZW5hIGdvcmFuemthJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2Rlc2MnXSA9ICdEYXRhIGJlaGVyYW56a2EnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfYXNjJ10gPSAnRGF0YSBnb3JhbnprYSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdHZXJ0YWVyYS1tb3RhIGJlaGVyYW56a2EnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdHZXJ0YWVyYS1tb3RhIGdvcmFuemthJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfZGVzYyddID0gJ0lQIGhlbGJpZGVhIGJlaGVyYW56a2EnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19hc2MnXSA9ICdJUCBoZWxiaWRlYSBnb3JhbnprYSc7CiRsYW5nWydpbmZvX25vaGlzdG9yeWRldGVjdGVkJ10gPSAnRXogZGEgSGlzdG9yaWFsaWsgdG9wYXR1JzsKJGxhbmdbJ3Jlc2V0J10gPSAnQmVycmV6YXJyaSc7CiRsYW5nWydwcm9tcHRfZ3JvdXBfaXAnXSA9ICdJUCBoZWxiaWRlYXJlbiBhcmFiZXJhIFRhbGRla2F0dSc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0dlcnRhZXJhLW1vdGEgaXJhZ2F6a2lhJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ0hhdSBiYWlubyBndXR4aWFnbyBkaXJlbiBnZXJ0YWVyYWsgYmFrYXJyaWsgZXJha3V0c2k6JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdPcnJpYWxkZS1tdWdhJzsKJGxhbmdbJ2ZvciddID0gJ2Zvcic7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeSddID0gJ0VyYWJpbHR6YWlsZSBIaXN0b3JpYWxhcmVuIFR4b3N0ZW5hJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdFemV6YWd1bmEnOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0lQIEhlbGJpZGVhJzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICdHZXJ0YWVyYS1tb3RhJzsKJGxhbmdbJ3Byb21wdF9kYXRlJ10gPSAnRGF0YSc7CiRsYW5nWydwcm9tcHRfcmV0dXJuJ10gPSAnSXR6dWxpJzsKJGxhbmdbJ2ltcG9ydF9jb21wbGV0ZV9tc2cnXSA9ICdJbnBvcnRhc2lvLWVyYWdpa2V0YSBBbWFpdHV0YSc7CiRsYW5nWydwcm9tcHRfbGluZXNwcm9jZXNzZWQnXSA9ICdQcm96ZXNhdHVyaWtvIGxlcnJvYWsnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0Vycm9yZWFrIGF1cmtpdHUgZGlyYSc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnRXJyZWdpc3RydWFrIGdlaGl0dXRhJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnRXppbiBpemFuIGRhIFNNVFAgemVyYml0emFyaXRpayBlcmFudHp1bmlrIGphc28nOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnRXppbiBpemFuIGRhIGFkaWVyYXppdGFrbyBmaXR4YXRlZ2lhICglcykgdG9wYXR1JzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICdJbnZhbGlkIHZhbHVlIGZvciBkcm9wZG93biBvciBtdWx0aXNlbGVjdCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZGxlbmd0aCddID0gJ0ZpZWxkICVzIGV4Y2VlZHMgbWF4aW11bSBsZW5ndGgnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnQgRXJyb3IgKGxpbmUgJXMpOiAlcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0eWRlZm5zJ10gPSAnQ291bGQgbm90IGdldCB0aGUgcHJvcGVydHkgZGVmaW5pdGlvbnMgKGludGVybmFsIGVycm9yKSc7CiRsYW5nWydlcnJvcl9pbXBvcnRyZXF1aXJlZGZpZWxkJ10gPSAnQ291bGQgbm90IGZpbmQgYSBjb2x1bW4gdG8gbWF0Y2ggdGhlIHJlcXVpcmVkIGZpZWxkICVzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wZXJ0aWVzJ10gPSAnQ291bGQgbm90IGZpbmQgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnVGhlIGZpbGUgc3BlY2lmaWVkIGZvciBpbXBvcnQgaXMgbm90IGluIHRoZSBjb3JyZWN0IGZvcm1hdCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdG9wZW5maWxlJ10gPSAnQ291bGQgbm90IG9wZW4gZmlsZSc7CiRsYW5nWydpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdCddID0gJzxoND5GaWxlIEZvcm1hdCBJbmZvcm1hdGlvbjwvaDQ+DQo8cD5UaGUgaW5wdXQgZmlsZSBtdXN0IGJlIGluIEFTQ0lJIGZvcm1hdCB1c2luZyBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzLiAgRWFjaCBsaW5lIGluIHRoaXMgaW5wdXQgZmlsZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBoZWFkZXIgbGluZSwgZGlzY3Vzc2VkIGJlbG93KSByZXByZXNlbnRzIG9uZSB1c2VyIHJlY29yZC4gIEVhY2ggbGluZSBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgbnVtYmVyIG9mIGZpZWxkcywgYW5kIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzIGluIGVhY2ggbGluZSBtdXN0IGJlIGlkZW50aWNhbC48L3A+DQo8aDU+SGVhZGVyIGxpbmU8L2g1Pg0KPHVsPg0KPGxpPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIG11c3QgYmVnaW4gd2l0aCB0d28gcG91bmQgKFwjKSBjaGFyYWN0ZXJzLCBhbmQgbmFtZXMgZWFjaCBvZiB0aGUgZmllbGRzIGluIHRoZSBmaWxlLiAgVGhlIG5hbWVzIG9mIHRoZXNlIGZpZWxkcyBpcyBzaWduaWZpY2FudC4gIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkIG5hbWVzIChzZWUgYmVsb3cpLCBhbmQgb3RoZXIgZmllbGQgbmFtZXMgbXVzdCBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB1c2VycyBhcmUgZ29pbmcgdG8gYmUgYWRkZWQgaW50by48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGZhaWwgaWYgdGhlIGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSBkb2VzIG5vdCBtYXRjaCBhbGwgb2YgdGhlIHJlcXVpcmVkIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB0aGF0IHVzZXJzIGFyZSBiZWluZyBhZGRlZCBpbnRvPC9saT4NCjxsaT5UaGUgaW5wdXQgZmlsZSBtYXkgY29udGFpbiBmaWVsZHMgcmVwcmVzZW50aW5nIHNvbWUgb2YgdGhlIG9wdGlvbmFsIHByb3BlcnRpZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGlnbm9yZSBhbnkgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIHRoYXQgYXJlIGVpdGhlciBub3Qga25vd24sIG9yIG1hcCB0byBwcm9wZXJ0aWVzIHRoYXQgYXJlIDxlbT5vZmY8L2VtPiBpbiB0aGUgc3BlY2lmaWVkIHVzZXIgZ3JvdXAuPC9saT4NCjwvdWw+DQo8aDU+Q29sdW1uYXIgRGF0YTwvaDU+DQo8dWw+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gRmllbGQgLSBUaGUgZGVzaXJlZCB1c2VybmFtZS4NCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNuIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBUaGUgcmVjb3JkIHdpbGwgZmFpbCBpZiBhIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZS48L3A+PC9saT4NCjxsaT5UaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBGaWVsZCAtIFRvZG88L2xpPg0KPGxpPlRoZSA8c3Ryb25nPmV4cGlyZXM8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5Ecm9wZG93biBGaWVsZHMNCiAgICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QgRmllbGRzDQogICAgPHA+TXVsdGlzZWxlY3QgZmllbGRzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBBU0NJSSBmaWxlIGFzIGEgOiBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzLCB3aGVyZSBlYWNoIHN0cmluZyByZXByZXNlbnRzIHRoZSB0ZXh0IHNob3duIGluIHRoZSBtdWx0aXNlbGVjdCBsaXN0PC9wPg0KPC9saT4NCjxsaT5JbWFnZSBGaWVsZHMNCiAgICA8cD5JbWFnZSBhcmUgZmllbGRzIHdobyYjMDM5O3MgY29sdW1uIG5hbWUgbWF0Y2hlcyBhIHByb3BlcnR5IG9mIHR5cGUgSW1hZ2UuICBJZiB0aGlzIGZpZWxkIGlzIGEgcmVxdWlyZWQgcGFydCBvZiB0aGUgZGVzdGluYXRpb24gZ3JvdXAsIHRoZW4gdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiB0aGUgdXBsb2FkcyBkaXNyZWN0b3J5IG9mIHRoZSBDTVMgaW5zdGFsbGF0aW9uLiAgSWYgdGhlIGltYWdlIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvcD4NCjwvdWw+DQo8aDU+Tm90ZXM8L2g1Pg0KPHA+VGhlIGltcG9ydCBwcm9jZXNzIGlzIHN1YmplY3QgdG8gdGhlIGxpbWl0YXRpb25zIGltcG9zZWQgYnkgdGhlIGhvc3QgcHJvdmlkZXIsIHN1Y2ggYXMgbWVtb3J5IGxpbWl0YXRpb25zLCBwcm9jZXNzaW5nIHRpbWUsIGZpbGUgc2l6ZSB1cGxvYWQsIGFuZCBzYWZlIG1vZGUgcmVzdHJpY3Rpb25zLiAgQW55IG9uZSBvZiB0aGVzZSBsaW1pdGF0aW9ucyBtYXkgY2F1c2UgdGhlIGltcG9ydCB0byBmYWlsLiBUaGVyZWZvcmUgaXQgaXMgYWR2aXNhYmxlIHRvIGVuc3VyZSB0aGF0IGltcG9ydCBmaWxlcyBhcmUgc21hbGxlciBpbiBzaXplLCBhbmQgc2ltcGxlciBpbiBuYXR1cmUuPC9wPg0KPHA+VGhvdWdoIGV2ZXJ5IGVmZm9ydCBoYXMgYmVlbiBtYWRlIHRvIGVuc3VyZSB0aGF0IGRhdGFiYXNlIGNvcnJ1cHRpb24gd2lsbCBub3Qgb2NjdXIsIGl0IGlzIGFkdmlzYWJsZSB0byBwZXJmb3JtIGEgZGF0YWJhc2UgYmFja3VwIGJlZm9yZSBkb2luZyBhIHVzZXIgaW1wb3J0LjwvcD4NCjxoNT5FeGFtcGxlPC9oNT4NCjxwcmU+DQojI3VzZXJuYW1lLGZpcnN0X25hbWUsbGFzdF9uYW1lLGVtYWlsLGNpdHksc3RhdGUsY291bnRyeSx6aXANCnVzZXIxLHRlc3QsdXNlcix1c2VyMUBzb21lZG9tYWluLmNvbSxzb21ld2hlcmUsVFgsVVMsMTIzNDUNCjwvcHJlPg0KJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRkZXN0Z3JvdXAnXSA9ICdJbXBvcnQgVXNlcnMgSW50byBUaGlzIEdyb3VwJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRmaWxlbmFtZSddID0gJ0lucHV0IENTViBGaWxlJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0V4cG9ydCBVc2Vycyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnQgVXNlcnMnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnQ2xlYXInOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdJbWFnZSBEZXN0aW5hdGlvbiBQYXRoJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIHdpdGggYSBtaXNzaW5nIChidXQgcmVxdWlyZWQpIHVwbG9hZCc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnQ2Fubm90IGRlbGV0ZSBhIGdyb3VwIHRoYXQgc3RpbGwgaGFzIHVzZXJzJzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdUaGlzIHVzZXIgaXMgYWxyZWFkeSBsb2dnZWQgaW4nOwokbGFuZ1snZXJyb3JfY2FwdGNoYW1pc21hdGNoJ10gPSAnVGhlIHRleHQgZnJvbSB0aGUgaW1hZ2Ugd2FzIG5vdCBlbnRlcmVkIGNvcnJlY3RseSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnQWxsb3cgdXNlcnMgdG8gbG9naW4gbW9yZSB0aGFuIG9uY2UnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0ltYWdlIEZpbGUgRXh0ZW5zaW9ucyB0aGF0IFVzZXJzIGFsbG93ZWQgdG8gdXBsb2FkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVVc2VyJ10gPSAnPGgzPk9uRGVsZXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgdXBkYXRlZCAoZWl0aGVyIGJ5IHVzZXIgdGhlbXNlbGYgb3IgYWRtaW4pPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgZ3JvdXAgZGVzY3JpcHRpb248L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVHcm91cCddID0gJzxoMz5PbkRlbGV0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBUaGUgaXAgYWRkcmVzcyBvZiB0aGUgY2xpZW50PC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWRvdXQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25FeHBpcmVVc2VyJ10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gZXhwaXJlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluIHRvIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dCBvZiB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gaXMgZXhwaXJlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgbmV3IHVzZXIgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpbmZvIGlzIHVwZGF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgYWNjb3VudCBpcyBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBkZWxldGVkJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdCYWNrZW5kIEdyb3VwJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogVGhlIGZvbGxvd2luZyBtYWNyb3MgY2FuIGJlIHVzZWQgaW4gdGhlc2UgZmllbGRzOiB7JHVzZXJuYW1lfSx7JGdyb3VwfS4gV2hlbiB1c2luZyB0aGUgeyRncm91cH0gbWFjcm8sIHRoZSBzeXN0ZW0gd2lsbCBzdWJzaXR1dGUgdGhlIG5hbWUgb2YgdGhlIGZpcnN0IG1lbWJlciBncm91cCB0aGF0IHRoZSB1c2VyIGJlbG9uZ3MgdG8sIGFuZCB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcGFnZS4nOwokbGFuZ1snaW5mb19hZG1pbl9wYXNzd29yZCddID0gJ0VkaXQgdGhpcyBmaWVsZCB0byByZXNldCB0aGUgdXNlcnMgcGFzc3dvcmQnOwokbGFuZ1snaW5mb19hZG1pbl9yZXBlYXRwYXNzd29yZCddID0gJ0VkaXQgdGhpcyBmaWVsZCB0byByZXNldCB0aGUgdXNlcnMgcGFzc3dvcmQnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnQSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydub2NzdnJlc3VsdHMnXSA9ICdObyByZXN1bHRzIHJldHVybmVkIGZyb20gY3N2IGV4cG9ydCc7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdMZW5ndGggb2YgdXNlcm5hbWUgZmllbGQnOwokbGFuZ1sncHJvbXB0X3B3ZmxkbGVuJ10gPSAnTGVuZ3RoIG9mIHBhc3N3b3JkIGZpZWxkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICdNaW4vTWF4IHBhc3N3b3JkIGxlbmd0aHMgYXJlIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ01pbi9NYXggdXNlcm5hbWUgbGVuZ3RocyBhcmUgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZW1haWxhZGRyZXNzJ10gPSAnSW52YWxpZCBFbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxhZGRyZXNzJ10gPSAnV2UgY291bGQgbm90IGZpbmQgYW4gZW1haWwgYWRkcmVzcyBmb3IgdGhpcyBhY2NvdW50JzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdQcm9ibGVtIHNldHRpbmcgdXNlciBpbmZvJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ1Byb2JsZW0gc2V0dGluZyBwcm9wZXJ0eSc7CiRsYW5nWyd1c2VyX2FkZGVkJ10gPSAnVXNlciBBZGRlZCAlcyA9ICVzJzsKJGxhbmdbJ3VzZXJfZGVsZXRlZCddID0gJ1VzZXIgRGVsZXRlZCB1aWQ9JXMnOwokbGFuZ1sncHJvcGVydHlmaWx0ZXInXSA9ICdQcm9wZXJ0eSc7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnVmFsdWUgKHJlZ3VsYXIgZXhwcmVzc2lvbiknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdXYXJuaW5nOiBUaGVzZSBmaWVsZHMgYWZmZWN0IHRoZSBzaXplIG9mIGlucHV0IGZpZWxkcyBmb3IgZm9ybXMuICBEZWNyZWFzaW5nIHRoaXMgbnVtYmVyIG9uIGFuIGV4aXN0aW5nIHNpdGUgbWF5IG5vdCBiZSBhZHZpc2FibGUnOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhZGp1c3QgdGhlIG1vZHVsZSBwcmVmZXJlbmNlcz8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0VtYWlsIGFkZHJlc3MgYWxyZWFkeSB1c2VkJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnQWxsb3cgZHVwbGljYXRlIGVtYWlscyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcoYWxsb3cgbXVsdGlwbGUgdXNlcnMgd2l0aCB0aGUgc2FtZSBlbWFpbCBhZGRyZXNzKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJ0FsbG93IGR1cGxpY2F0ZSAmcXVvdDtmb3Jnb3QgcGFzc3dvcmQmcXVvdDsgcmVtaW5kZXJzPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoYWxsb3cgYSB1c2VycyB0byByZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQsIGV2ZW4gaWYgdGhleSBoYXZlbiYjMDM5O3QgYWN0ZWQgb24gYSBwcmV2aW91cyBvbmUpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnVXNlIEZyb250LWVuZCBVc2VyIHNwZWNpZmljIHBlcm1pc3Npb25zPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFsbHksIEZFVVNlcnMgcGVybWlzc2lvbnMgYXJlIHRoZSBzYW1lIGFzIHRoZSBlcXVpdmFsZW50IEFkbWluIEFyZWEgcGVybWlzc2lvbnMgbGlrZSBBZGQgVXNlciwgQWRkIEdyb3VwLCBldGMuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZXJlIHdpbGwgYmUgc2VwYXJhdGUgcGVybWlzc2lvbnMgZm9yIEZFVXNlcnMuKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZGVkIGZpbGUgKGludGVybmFsIGVycm9yKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXNlcm5hbWUnXSA9ICdZb3UgZGlkIG5vdCBlbnRlciBhIHVzZXJuYW1lJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ1lvdSBkaWQgbm90IGVudGVyIGEgcGFzc3dvcmQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0Zyb250ZW5kIFVzZXIgTG9nb3V0JzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0Zyb250ZW5kIFVzZXIgTG9naW4nOwokbGFuZ1snZWRpdHByb3BfaW5mb21zZyddID0gJzxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48Yj5VU0UgQ0FVVElPTjwvYj4gd2hlbiBjaGFuZ2luZyBleGlzdGluZyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGFzc2lnbmVkIHRvIGdyb3VwcywgeW91IG1heSBwb3RlbnRpYWxseSBjYXVzZSBkYW1hZ2UgYW5kIGJyZWFrIGFuIGV4aXN0aW5nIHNpdGUgPGk+KGVzcGVjaWFsbHkgaWYgeW91IHJlZHVjZSBmaWVsZCBsZW5ndGhzLCBldGMpPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHdvcmsgb24gd2luZG93cyc7CiRsYW5nWydtc2dfZG9udGNyZWF0ZXVzZXJuYW1lJ10gPSAnRG8gbm90IGNyZWF0ZSBhIHByb3BlcnR5IGZvciB1c2VybmFtZSwgb3IgcGFzc3dvcmQgYXMgdGhlc2UgcHJvcGVydGllcyBhcmUgYnVpbHRpbiB0byB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0V4cG9ydCBVc2VycyB0byBDU1YnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0JzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydCc7CiRsYW5nWydhZG1pbiddID0gJ0FkbWluJzsKJGxhbmdbJ2VkaXRwcm9wJ10gPSAnRWRpdCBQcm9wZXJ0eSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWydjcmVhdGVkJ10gPSAnQ3JlYXRlZCc7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0IEJ5JzsKJGxhbmdbJ3NvcnQnXSA9ICdTb3J0aW5nJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ1VzZXJzIGluIHRoZSBzZWxlY3RlZCBncm91cChzKSc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdMaW1pdCByZXN1bHRzIHRvJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGFuIGVtYWlsIGZpZWxkIGZvciB0aGlzIHVzZXIuICBZb3UgbWF5IG5lZWQgdG8gY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3InOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgZm9yIEZvcmdvdCBQYXNzd29yZCBmb3JtJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGZvciBDaGFuZ2UgU2V0dGluZ3MgZm9ybSc7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGxvZ2luIConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgbG9nb3V0IConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydwcm9tcHRfbnVtcmVzZXRyZWNvcmQnXSA9ICdBIG51bWJlciBvZiB1c2VycyBhcmUgaW4gdGhlIG1pZGRsZSBvZiByZXNldHRpbmcgbG9zdCBwYXNzd29yZHMuICBDdXJyZW50bHkgdGhpcyBjb3VudCBpcyBhdDonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgd2VlayBvbGQnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnUmVtb3ZlIGFsbCBlbnRyaWVzIG1vcmUgdGhhbiBhIG1vbnRoIG9sZCc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZT8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICdBbiBpbnZhbGlkIGNvZGUgaGFzIGJlZW4gZW50ZXJlZCwgcGxlYXNlIHRyeSBhZ2Fpbic7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnQSB0ZW1wb3JhcnkgY29kZSBmb3IgeW91ciB1c2VyIGlkIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdmVyaWZpY2F0aW9uIGZvcm0nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfZW1haWx0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzZWQgZm9yIGZvcmdvdHRlbiBwYXNzd29yZCBlbWFpbCc7CiRsYW5nWydlcnJvcl9yZXNldGFscmVhZHlzZW50J10gPSAnRWl0aGVyIHlvdXJzZWxmIG9yIHNvbWVvbmUgZWxzZSBoYXMgYWxyZWFkeSB0cmlnZ2VyZWQgYSBwYXNzd29yZCByZXNldCBvcGVyYXRpb24gZm9yIHRoaXMgYWNjb3VudC4gIENoZWNrIHlvdXIgZW1haWwsIHlvdSBtYXkgaGF2ZSBmdXJ0aGVyIGluc3RydWN0aW9ucyBvbiBob3cgdG8gcmVzZXQgeW91ciBwYXNzd29yZCBpbiB5b3VyIGluYm94JzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZSBlcnJvcic7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICdZb3UgYXJlIHJlY2VpdmluZyB0aGlzIG1lc3NhZ2UgYmVjYXVzZSBzb21lYm9keSB0b2xkIG91ciBzaXRlIHRoYXQgeW91IGhhZCBsb3N0IHlvdXIgcGFzc3dvcmQuICBJZiB0aGlzIGlzIHRoZSBjYXNlLCByZWFkIHRoZSBpbnN0cnVjdGlvbnMgYmVsb3cuICBJZiB5b3UgZG9uJiMwMzk7dCBoYXZlIGEgY2x1ZSB3aGF0IHRoaXMgaXMsIHRoZW4geW91IGFyZSBzYWZlIHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UsIGFuZCB3ZSB0aGFuayB5b3UgZm9yIHlvdXIgdGltZS4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdDb2RlJzsKJGxhbmdbJ21lc3NhZ2VfY29kZSddID0gJ1RoZSBmb2xsb3dpbmcgY29kZSBoYXMgYmVlbiBnZW5lcmF0ZWQgcmFuZG9tbHkgZ2VuZXJhdGVkIGluIG9yZGVyIHRvIHZlcmlmeSB0aGUgdXNlciBhY2NvdW50LiAgd2hlbiB5b3UgY2xpY2sgb24gdGhlIGxpbmsgYmVsb3cgeW91IHdpbGwgYmUgcHJlc2VudGVkIHdpdGggYSBmaWVsZCB0byBlbnRlciB0aGlzIGNvZGUuICBOb3JtYWxseSB0aGUgZmllbGQgaXMgcHJlLWNvbXBsZXRlZCBmb3IgeW91LCBidXQgaW5jYXNlIGl0IGlzbiYjMDM5O3QgdGhlIGNvZGUgaXM6JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnQ2xpY2tpbmcgb24gdGhlIGZvbGxvd2luZyBsaW5rIHdpbGwgdGFrZSB5b3UgdG8gdGhlIHdlYnNpdGUgd2hlcmUgeW91IGNhbiBlbnRlciB0aGUgYWJvdmUgY29kZSwgYW5kIHJlc2V0IHlvdXIgcGFzc3dvcmQ6JzsKJGxhbmdbJ2xvc3RwYXNzd29yZF9lbWFpbHN1YmplY3QnXSA9ICdMb3N0IFBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIENNU01haWxlciBtb2R1bGUnOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnQW4gZW1haWwgaGFzIGJlZW4gc2VudCB0byAlcyB3aXRoIGluc3RydWN0aW9ucyBhcyB0byBob3cgdG8gcmVzZXQgeW91ciBwYXNzd29yZC4gIFRoYW5rIHlvdSc7CiRsYW5nWydsb3N0cHdfbWVzc2FnZSddID0gJ1NvIHlvdSBmb3Jnb3Qgb3IgbG9zdCB5b3VyIHBhc3N3b3JkLiBXZWxsLCB0eXBlIHlvdXIgdXNlcm5hbWUgaW4gaGVyZSwgYW5kIGlmIHdlIGNhbiBmaW5kIHlvdSB3ZSB3aWxsIHNlbmQgeW91IGFuIGVtYWlsIHdpdGggaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byByZXNldCBpdCc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF90ZW1wbGF0ZSddID0gJ0ZvcmdvdCBQYXNzd29yZCBUZW1wbGF0ZXMnOwokbGFuZ1snZXJyb3JfcHJvcG5vdGZvdW5kJ10gPSAnUHJvcGVydHkgJXMgbm90IGZvdW5kJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdQcm9wZXJ0aWVzIGZvdW5kJzsKJGxhbmdbJ2FkZHByb3AnXSA9ICdBZGQgUHJvcGVydHknOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ0EgcmVxdWlyZWQgZmllbGQgKCVzKSB3YXMgZW1wdHknOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdFbnRlciBhIG5ldyBwYXNzd29yZCBoZXJlIHRvIGNoYW5nZSB5b3VyIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnWW91IGRvIG5vdCBhcHBlYXIgdG8gYmUgbG9nZ2VkIGluJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdHJhdGlvbic7CiRsYW5nWydlcnJvcl9hY2NvdW50ZXhwaXJlZCddID0gJ1RoaXMgYWNjb3VudCBoYXMgZXhwaXJlZCc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnSW1wcm9wZXIgZW1haWwgYWRkcmVzcyBmb3JtYXR0aW5nJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRleHBpcnlkYXRlJ10gPSAnSW52YWxpZCBleHBpcnkgZGF0ZSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ3Byb3BlcnR5J10gPSAnRXJyb3Igc2V0dGluZyBwcm9wZXJ0eSAlcyBmb3IgdXNlciAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ0ludmFsaWQgZ3JvdXAgaWQgJXMnOwokbGFuZ1snaGlkZGVuZmllbGRtYXJrZXInXSA9ICdIaWRkZW4gZmllbGQgbWFya2VyJzsKJGxhbmdbJ2hpZGRlbmZpZWxkY29sb3InXSA9ICdIaWRkZW4gZmllbGQgY29sb3InOwokbGFuZ1snaGlkZGVuJ10gPSAnSGlkZGVuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZW5hbWUnXSA9ICdBIHByb3BlcnR5IHdpdGggdGhhdCBuYW1lIGlzIGFscmVhZHkgZGVmaW5lZCc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdObyBwcm9wZXJ0aWVzIGRlZmluZWQnOwokbGFuZ1snZXJyb3Jfbm9yZWxhdGlvbnMnXSA9ICdObyBwcm9wZXJ0aWVzIHdlcmUgc2VsZWN0ZWQgZm9yIHRoaXMgZ3JvdXAnOwokbGFuZ1snbm9ncm91cHMnXSA9ICdObyBHcm91cHMgYXJlIGRlZmluZWQnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdHcm91cHMgRm91bmQnOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ01lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdSZXF1aXJlIG1lbWJlcnNoaXAgaW4gYXRsZWFzdCBvbmUgZ3JvdXAnOwokbGFuZ1snYmFjayddID0gJ0JhY2snOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzIGlzIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ01hcmsgcmVxdWlyZWQgZmllbGRzIHdpdGgnOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnSGlsaXRlIHJlcXVpcmVkIGZpZWxkcyBpbic7CiRsYW5nWyduZXh0J10gPSAnTmV4dCc7CiRsYW5nWydlcnJvcl9ncm91cGV4aXN0cyddID0gJ0EgR3JvdXAgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdSZXF1aXJlZCBGaWVsZCc7CiRsYW5nWydvcHRpb25hbCddID0gJ09wdGlvbmFsJzsKJGxhbmdbJ29mZiddID0gJ09mZic7CiRsYW5nWydzaXplJ10gPSAnU2l6ZSc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1heGltdW0gc2l6ZSBvZiBhbnkgb25lIGRpbWVuc2lvbiBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzKSc7CiRsYW5nWydsZW5ndGgnXSA9ICdMZW5ndGgnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oY2hhcnMgaW4gdGhlIHRleHQgaW5wdXQpJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdEcm9wZG93biBvcHRpb25zLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuICBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfdHlwZSddID0gJ1R5cGUnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwokbGFuZ1sndGV4dCddID0gJ1RleHQnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ011bHRpIFNlbGVjdCBMaXN0JzsKJGxhbmdbJ2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snZW1haWwnXSA9ICdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dGFyZWEnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ1dlbGNvbWUnOwokbGFuZ1snbG9nb3V0J10gPSAnU2lnbiBvdXQnOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzJ10gPSAnQ2hhbmdlIE15IFNldHRpbmdzJzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnTG9naW4gZmFpbGVkIC0gSW52YWxpZCB1c2VybmFtZSBvciBwYXNzd29yZD8nOwokbGFuZ1snbG9naW4nXSA9ICdTaWduIGluJzsKJGxhbmdbJ3Byb21wdF9zaWduaW5fYnV0dG9uJ10gPSAnU2lnbiBpbiBidXR0b24gbGFiZWwnOwokbGFuZ1sncHJvbXB0X3VzZXJuYW1lJ10gPSAnVXNlcm5hbWUnOwokbGFuZ1sncHJvbXB0X3Bhc3N3b3JkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1sncmVnaXN0ZXInXSA9ICdSZWdpc3Rlcic7CiRsYW5nWydmb3Jnb3RwdyddID0gJ0ZvcmdvdCBZb3VyIFBhc3N3b3JkPyc7CiRsYW5nWydkZWZhdWx0cyddID0gJ0RlZmF1bHRzJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1snZXJyb3JfdXNlcm5vdGZvdW5kJ10gPSAnVXNlciBJRCBub3QgZm91bmQnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ1RoYXQgdXNlcm5hbWUgKCVzKSBpcyBhbHJlYWR5IGluIHVzZSc7CiRsYW5nWydwcm9tcHRfc210cHZhbGlkYXRlJ10gPSAnVXNlIFNNVFAgdG8gdmFsaWRhdGUgZW1haWwgYWRkcmVzc2VzPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdNaW5pbXVtIFBhc3N3b3JkIExlbmd0aCc7CiRsYW5nWydwcm9tcHRfbWF4cHdsZW4nXSA9ICdNYXhpbXVtIFBhc3N3b3JkIExlbmd0aCc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdNaW5pbXVtIFVzZXJuYW1lIExlbmd0aCc7CiRsYW5nWydwcm9tcHRfbWF4dW5sZW4nXSA9ICdNYXhpbXVtIFVzZXJuYW1lIExlbmd0aCc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdTZXNzaW9uIFRpbWVvdXQgKHNlY29uZHMpJzsKJGxhbmdbJ3Byb21wdF9jb29raWVrZWVwYWxpdmUnXSA9ICdVc2UgY29va2llcyB0byBrZWVwIGxvZ2lucyBhbGl2ZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlbWFpbHJlZyddID0gJ0FsbG93IEVtYWlsIFJlZ2lzdHJhdGlvbic7CiRsYW5nWydwcm9tcHRfZGZsdGdyb3VwJ10gPSAnRGVmYXVsdCBHcm91cCBmb3IgbmV3IHVzZXJzJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnQ2hhbmdlIFNldHRpbmdzIFRlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3JkbWlzbWF0Y2gnXSA9ICdQYXNzd29yZHMgRG8gbm90IG1hdGNoJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ0ludmFsaWQgVXNlcm5hbWUnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkJ10gPSAnSW52YWxpZCBQYXNzd29yZCc7CiRsYW5nWydlZGl0dXNlciddID0gJ0VkaXQgVXNlcic7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnVXNlcm5hbWUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJ1RoaXMgdXNlciBpcyBub3QgYSBtZW1iZXIgb2YgYW55IGdyb3Vwcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnTm8gUHJvcGVydGllcyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbHVlJzsKJGxhbmdbJ2dyb3VwcyddID0gJ0dyb3Vwcyc7CiRsYW5nWydwcm9wZXJ0aWVzJ10gPSAnUHJvcGVydGllcyc7CiRsYW5nWydwcm9wbmFtZSddID0gJ1Byb3BlcnR5IE5hbWUnOwokbGFuZ1sncHJvcHZhbHVlJ10gPSAnUHJvcGVydHkgVmFsdWUnOwokbGFuZ1snYWRkJ10gPSAnQWRkJzsKJGxhbmdbJ2hpc3RvcnknXSA9ICdIaXN0b3J5JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdFeHBpcmVzJzsKJGxhbmdbJ3NwZWNpZnlfZGF0ZSddID0gJ1NwZWNpZnkgRGF0ZSc7CiRsYW5nWycxMmhycyddID0gJzEyIEhvdXJzJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQgSG91cnMnOwokbGFuZ1snNDhocnMnXSA9ICc0OCBIb3Vycyc7CiRsYW5nWycxd2VlayddID0gJzEgV2Vlayc7CiRsYW5nWycyd2Vla3MnXSA9ICcyIFdlZWtzJzsKJGxhbmdbJzFtb250aCddID0gJzEgTW9udGgnOwokbGFuZ1snM21vbnRocyddID0gJzMgTW9udGhzJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IE1vbnRocyc7CiRsYW5nWycxeWVhciddID0gJzEgWWVhcic7CiRsYW5nWyduZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ01vZHVsZSBpbnN0YWxsZWQgc3VjZXNzZnVsbHkuPGJyLz5CZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24uICBBZGRpdGlvbmFsbHksIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gIElmIGluc3RhbGxlZCwgdmFsaWRhdGlvbiBvZiBhIGNhcHRjaGEgaW1hZ2Ugd2lsbCBiZSByZXF1aXJlZCBpbiBhZGRpdGlvbiB0byB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ2luLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGJydXRlIGZvcmNlIGF0dGFja3MuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBub2NhcHRjaGEgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGV2ZW4gaWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZC4mcXVvdDsnOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdQYXNzd29yZCc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ0FnYWluJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdHcm91cCBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnRWRpdCBHcm91cCc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydjb25maXJtX2VkaXRncm91cCddID0gJ0FyZSB5b3Ugc3VyZSB0aGlzIGlzIHRoZSBwcm9wZXIgc2V0dGluZ3MgZm9yIHRoaXMgZ3JvdXA/XG5UdXJuaW5nIGEgcHJvcGVydHkgb2ZmIHdpbGwgbm90IGRlbGV0ZSBhbnkgZW50cmllcyBpbiB0aGUgcHJvcGVydGllcyB0YWJsZSBmb3IgdGhpcyBncm91cC91c2VyLiAgVGhleSB3aWxsIG1lcmVseSBiZSB1bmF2YWlsYWJsZS4nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVncm91cCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBncm91cD8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb21wbGV0ZWx5IGRlbGV0ZSB0aGlzIHByb3BlcnR5P1xuRG9pbmcgc28gd2lsbCBhbHNvIGVyYXNlIGFueSB1c2VyIGVudHJpZXMgZm9yIHRoaXMgcHJvcGVydHkuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0luc3VmZmljaWVudCBQYXJhbWV0ZXJzJzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdvcnVwJ10gPSAnUHJvYmxlbSBhZGRpbmcgZ3JvdXAnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ0ludmFsaWQgUGFyYW1ldGVycyc7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ0FwcGx5JzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAnVXNlcm5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnR3JvdXAgTmFtZSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3InOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdBZGQgR3JvdXAnOwokbGFuZ1snYWRkdXNlciddID0gJ0FkZCBVc2VyJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdVc2VycyBmb3VuZCB0aGF0IG1hdGNoIHRoZSBjcml0ZXJpYSc7CiRsYW5nWydncm91cCddID0gJ0dyb3VwJzsKJGxhbmdbJ3NlbGVjdGdyb3VwJ10gPSAnU2VsZWN0IEdyb3VwJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1JlZ2lzdHJhdGlvbiBUZW1wbGF0ZSc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdMb2dvdXQgVGVtcGxhdGUnOwokbGFuZ1snbG9naW5fdGVtcGxhdGUnXSA9ICdMb2dpbiBUZW1wbGF0ZSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3VzZXJzJ10gPSAnVXNlcnMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRnJvbnRlbmQgVXNlciBNYW5hZ2VtZW50JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQWxsb3cgdXNlcnMgdG8gbG9nIGluIHRvIHRoZSBmcm9udGVuZCBvZiB5b3VyIHNpdGUnOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gJ0RlZmF1bHQgZnJvbnQgcGFnZSc7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAnTGFzdCBhY2Nlc3NlZCBwYWdlJzsKJGxhbmdbJ290aGVycGFnZSddID0gJ090aGVyIHBhZ2U6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnRW50ZXIgdGhlIHRleHQgZnJvbSB0aGUgaW1hZ2UnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3Byb21wdF92aWV3cHJvcHMnXSA9ICdTZWxlY3QgQWRkaXRpb25hbCBQcm9wZXJ0aWVzIHRvIFZpZXcnOwokbGFuZ1sndmlldyddID0gJ1ZpZXcnOwokbGFuZ1snaW5mb19pZ25vcmVfdXNlcmlkJ10gPSAnSWYgY2hlY2tlZCB0aGUgaW1wb3J0IHJvdXRpbmUgd2lsbCBhdHRlbXB0IHRvIGFkZCB1c2VycyBpbmRlcGVuZGFudCBvZiB0aGUgdXNlcmlkIGNvbHVtbi4gIElmIGEgdXNlciB3aXRoIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGUgaW1wb3J0IGZpbGUgYWxyZWFkeSBleGlzdHMsIGFuIGVycm9yIHdpbGwgYmUgZ2VuZXJhdGVkJzsKJGxhbmdbJ2lnbm9yZV91c2VyaWQnXSA9ICdJZ25vcmUgVXNlcklEIENvbHVtbiBvbiBJbXBvcnQnOwokbGFuZ1snZXhwb3J0X3Bhc3NoYXNoJ10gPSAnRXhwb3J0IHRoZSBwYXNzd29yZCBoYXNoIHRvIHRoZSBmaWxlJzsKJGxhbmdbJ2luZm9fZXhwb3J0X3Bhc3NoYXNoJ10gPSAnVGhlIHBhc3N3b3JkIGhhc2ggaXMgb25seSB1c2VmdWwgaWYgdGhlIHBhc3N3b3JkIHNhbHQgb24gdGhlIGltcG9ydCBob3N0IGlzIGlkZW50aWNhbCB0byB0aGF0IG9mIHRoZSBleHBvcnQgaG9zdCc7CiRsYW5nWydlcnJvcl9hZGp1c3RzYWx0J10gPSAnVGhlIHBhc3N3b3JkIHNhbHQgY2Fubm90IGJlIGFkanVzdGVkJzsKJGxhbmdbJ3Byb21wdF9wd3NhbHQnXSA9ICdQYXNzd29yZCBTYWx0JzsKJGxhbmdbJ2luZm9fcHdzYWx0J10gPSAnRnJvbnRFbmRVc2VycyBzYWx0cyBhbGwgcGFzc3dvcmRzIHdpdGggdGhpcyBrZXkgd2hpY2ggaXMgY3JlYXRlZCB1cG9uIGluc3RhbGwuICBPbmNlIHVzZXJzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgZGF0YWJhc2UgdGhlIHNhbHQgY2Fubm90IGJlIGNoYW5nZWQuIFRoZSBzYWx0IG1heSBiZSBlbXB0eSBmb3Igb2xkZXIgaW5zdGFsbHMuJzsKJGxhbmdbJ2FkdmFuY2VkX3NldHRpbmdzJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1snaW5mb19zZXNzaW9udGltZW91dCddID0gJ1NwZWNpZnkgdGhlIG51bWJlciBvZiBzZWNvbmRzIGJlZm9yZSBhbiBpbmFjdGl2ZSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgbG9nZ2VkIG91dCBvZiB0aGUgd2Vic2l0ZSc7CiRsYW5nWydwcm9tcHRfZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdVc2VyIEV4cGlyeSBJbnRlcnZhbCc7CiRsYW5nWydpbmZvX2V4cGlyZXVzZXJzX2ludGVydmFsJ10gPSAnU3BlY2lmeSBhIHZhbHVlIChpbiBzZWNvbmRzKSB0aGF0IGluZGljYXRlcyBob3cgb2Z0ZW4gdGhlIHN5c3RlbSBzaG91bGQgZm9yY2UgdXNlcnMgd2hvcyBzZXNzaW9uIGhhcyBleHBpcmVkIHRvIGJlIGxvZ2dlZCBvdXQuICBUJnF1b3Q7aGlzIGlzIGFuIG9wdGltaXphdGlvbiB0byBzYXZlIGRhdGFiYXNlIHF1ZXJpZXMuICBJZiBsZWZ0IGVtcHR5IG9yIHNldCB0byAwIGV4cGlyeSB3aWxsIGJlIHBlcmZvcm1lZCBvbiBldmVyeSByZXF1ZXN0Lic7CiRsYW5nWydtc2dfc2V0dGluZ3NjaGFuZ2VkJ10gPSAnQXNldHVrc2VzaSBvbiBwJmF1bWw7aXZpdGV0dHkgb25uaXN0dW5lZXN0aSc7CiRsYW5nWydmb3JjZWRsb2dvdXR0YXNrX2Rlc2MnXSA9ICdGb3JjZSB1c2VycyB0byBsb2dvdXQgYXQgcmVndWxhciBpbnRlcnZhbHMnOwokbGFuZ1sncHJvbXB0X2ZvcmNlbG9nb3V0X3RpbWVzJ10gPSAnVGltZXMgZm9yIGZvcmNlZCBsb2dvdXQnOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF90aW1lcyddID0gJ1NwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB0aW1lcyBsaWtlIEhIOk1NLEhIOk1NIHdoZXJlIHVzZXJzIHdpbGwgYmUgZm9yY2libHkgbG9nZ2VkIG91dC4gTm90ZSwgdGhpcyB1c2VzIHRoZSBwc3VlZG9jcm9uIG1lY2hhbmlzbSBzbyB5b3UgbXVzdCBiZSBzdXJlIHRoYXQgdGhlIHRpbWVzIGVudGVyZWQgaGVyZSB3aWxsIGNvaW5jaWRlIHJlYXNvbmFibHkgd2l0aCB5b3VyICZxdW90O3BzZXVkb2Nyb24gZ3JhbnVsYXJpdHkmcXVvdDsgYW5kIHRoYXQgc3VmZmljaWVudCByZXF1ZXN0cyB3aWxsIG9jY3VyIHRvIHlvdXIgd2Vic2l0ZSB0byBlbnN1cmUgdGhhdCBwc2V1ZG9jcm9uIGlzIGV4ZWN1dGVkLic7CiRsYW5nWydwcm9tcHRfZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSddID0gJ0V4Y2x1ZGUgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYWN0aXZlIGluIDxlbT4obWludXRlcyk8L2VtPic7CiRsYW5nWydpbmZvX2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnXSA9ICdJZiBzcGVjaWZpZWQsIGFueSB1c2VycyB0aGF0IGhhdmUgYmVlbiBhY3RpdmUgaW4gdGhpcyBudW1iZXIgb2Ygc2Vjb25kcyB3aWxsIG5vdCBiZSBmb3JjaWJseSBsb2dnZWQgb3V0JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgdXNlciAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZWV4dGVuc2lvbiddID0gJ1RoZSB1cGxvYWRlZCBmaWxlIGRvZXMgbm90IG1hdGNoIHRoZSBsaXN0IG9mIGFsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQWxsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSBoYXMgYmVlbiBkZWxldGVkJzsKJGxhbmdbJ2luZm9fZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbiddID0gJ0lmIGVuYWJsZWQsIHRoaXMgbW9kdWxlIHdpbGwgbGlzdGVuIHRvIGV2ZW50cyBmcm9tIHRoZSBFY29tbWVyY2Ugc3VpdGUuICBUaGUgZm9sbG93aW5nIHNldHRpbmdzIG9ubHkgaGF2ZSBlZmZlY3QgaWYgdGhpcyBzZXR0aW5nIGlzIGVuYWJsZWQuJzsKJGxhbmdbJ3Byb21wdF9lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnTGlzdGVuIHRvIE9yZGVyIEV2ZW50cyc7CiRsYW5nWydpbmZvX3BhaWRyZWdfc2V0dGluZ3MnXSA9ICdUaGUgZm9sbG93aW5nIHNldHRpbmdzIG9ubHkgYXBwbHkgaWYgdXNpbmcgc2VsZiByZWdpc3RyYXRpb24gYW5kIGFsbG93aW5nIGZvciBwYWlkIHJlZ2lzdHJhdGlvbic7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydkZWxldGVfdXNlciddID0gJ0RlbGV0ZSBVc2VyJzsKJGxhbmdbJ2V4cGlyZV91c2VyJ10gPSAnRXhwaXJlIFVzZXInOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmNhbmNlbGxlZCddID0gJ0FjdGlvbiB0byBwZXJmb3JtIHdoZW4gYSBzdWJzY3JpcHRpb24gb3JkZXIgaXMgY2FuY2VsbGVkJzsKJGxhbmdbJ3Byb21wdF9hY3Rpb25fb3JkZXJkZWxldGVkJ10gPSAnQWN0aW9uIHRvIHBlcmZvcm0gd2hlbiBhIHN1YnNjcmlwdGlvbiBvcmRlciBpcyBkZWxldGVkJzsKJGxhbmdbJ2Vjb21tZXJjZV9zZXR0aW5ncyddID0gJ0Vjb21tZXJjZSBTZXR0aW5ncyc7CiRsYW5nWydzZWN1cmVmaWVsZG1hcmtlciddID0gJ1NlY3VyZSBGaWVsZCBNYXJrZXInOwokbGFuZ1snc2VjdXJlZmllbGRjb2xvciddID0gJ1NlY3VyZSBGaWVsZCBDb2xvcic7CiRsYW5nWydwcm9tcHRfZW5jcnlwdCddID0gJ1N0b3JlIHRoaXMgZGF0YSBlbmNyeXB0ZWQgaW4gdGhlIGRhdGFiYXNlJzsKJGxhbmdbJ2Vycm9yX25vdHN1cHBvcnRlZCddID0gJ1RoZSBjaG9zZW4gb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZ2l2ZW4geW91ciBjdXJyZW50IGNvbmZpZ3VyYXRpb24nOwokbGFuZ1snYXVkaXRfdXNlcl9jcmVhdGVkJ10gPSAnVXNlciBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQnOwokbGFuZ1snaW5mb19hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnSWYgYSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQgYnkgYW4gZXh0ZXJuYWwgYXV0aGVudGljYXRpb24gbW9kdWxlIGJ1dCBpcyBub3Qga25vd24gaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIHNob3VsZCBhbiBGRVUgYWNjb3VudCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHk/JzsKJGxhbmdbJ3Byb21wdF9hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnQXV0b21hdGljYWxseSBDcmVhdGUgVW5rbm93biBVc2Vycyc7CiRsYW5nWydkaXNwbGF5X3NldHRpbmdzJ10gPSAnRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWydpbmZvX3N0ZF9hdXRoX3NldHRpbmdzJ10gPSAnVGhlIGZvbGxvd2luZyBzZXR0aW5ncyBhcmUgb25seSBhcHBsaWNhYmxlIGlmIHVzaW5nIHRoZSAmcXVvdDtCdWlsdGluIEF1dGhlbnRpY2F0aW9uJnF1b3Q7Lic7CiRsYW5nWydpbmZvX3N1cHBvcnRfbG9zdHVuJ10gPSAnU2VsZWN0aW5nIE5vIHdpbGwgZGlzYWJsZSB0aGUgYWJpbGl0eSBmb3IgYSB1c2VyIHRvIHJlcXVlc3QgbG9zdCBsb2dpbiBpbmZvcm1hdGlvbiwgaXJyZXNwZWN0aXZlIG9mIG90aGVyIHNldHRpbmdzJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0cHcnXSA9ICdTZWxlY3RpbmcgTm8gd2lsbCBkaXNhYmxlIHRoZSBhYmlsaXR5IGZvciBhIHVzZXIgdG8gYSBwYXNzd29yZCByZXNldCwgaXJyZXNwZWN0aXZlIG9mIG90aGVyIHNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9zdXBwb3J0X2xvc3R1biddID0gJ0FsbG93IHVzZXJzIHRvIHJlcXVlc3QgdGhlaXIgdXNlcm5hbWUnOwokbGFuZ1sncHJvbXB0X3N1cHBvcnRfbG9zdHB3J10gPSAnQWxsb3cgdXNlcnMgdG8gcmVxdWVzdCBhIHBhc3N3b3JkIGNoYW5nZSc7CiRsYW5nWydhdXRoX3NldHRpbmdzJ10gPSAnQXV0aGVudGljYXRpb24gU2V0dGluZ3MnOwokbGFuZ1snYXV0aGVudGljYXRpb24nXSA9ICdCdWlsdGluIEF1dGhlbnRpY2F0aW9uJzsKJGxhbmdbJ2F1dGhfYnVpbHRpbiddID0gJ0ZFVSBTdGFuZGFyZCBBdXRoZW50aWNhdGlvbic7CiRsYW5nWydhdXRoX21vZHVsZSddID0gJ0F1dGhlbnRpY2F0aW9uIE1vZHVsZS9NZXRob2QnOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ1RoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSBzdXBwb3J0cyB1c2luZyBhbHRlcm5hdGUgYXV0aGVudGljYXRpb24gbWV0aG9kcywgd2l0aCB2YXJ5aW5nIGNhcGFiaWxpdGllcy4gIFNvbWUgZnVuY3Rpb25hbGl0eSB3aWxsIG5vdCBmdW5jdGlvbiBvciBiZSBkaXNhYmxlZCB3aGVuIG5vdCB1c2luZyB0aGUgYnVpbHQgaW4gYXV0aGVudGljYXRpb24gbWV0aG9kJzsKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciB1c2VyJzsKJGxhbmdbJ3VuaXF1ZSddID0gJ1VuaXF1ZSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVfZmllbGRfdmFsdWUnXSA9ICdUaGUgdmFsdWUgc3BlY2lmaWVkIGZvciAlcyAoJXMpIGlzIG5vdCB1bmlxdWUnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ0ZvcmNlIHZhbHVlcyBvZiB0aGlzIHByb3BlcnR5IHRvIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHVzZXIgYWNjb3VudHMnOwokbGFuZ1snaGVscF9yZXR1cm5sYXN0J10gPSAnVXNlZCB3aXRoIHRoZSBsb2dpbiBhbmQgbG9nb3V0IGZvcm1zLCB0aGlzIHBhcmFtZXRlciBpZiBzcGVjaWZpZWQgd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSB1c2VyIHNob3VsZCBiZSByZXR1cm5lZCB0byB0aGUgcGFnZSAoYnkgdXJsKSB0aGF0IHRoZSB1c2VyIHdhcyB2aWV3aW5nIGJlZm9yZSB0aGUgYWN0aW9uIG9jY3VycmVkLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBvdmVycmlkZSB0aGUgcmVkaXJlY3QgcHJlZmVyZW5jZXMsIGFuZCB0aGUgcmV0dXJudG8gcGFyYW1ldGVyLic7CiRsYW5nWydoZWxwX25vaW5saW5lJ10gPSAnVXNlZCB3aXRoIG9uZSBvZiB0aGUgZm9ybXMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IHRoZSBmb3JtcyBzaG91bGQgbm90IGJlIHBsYWNlZCBpbmxpbmUsIGluc3RlYWQgdGhlIHJlc3VsdGluZyBvdXRwdXQgYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uIHdpbGwgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrJzsKJGxhbmdbJ3RpdGxlX3Jlc2V0X3Nlc3Npb24nXSA9ICdMb2dpbiBTZXNzaW9uIFRpbWVvdXQgV2FybmluZyc7CiRsYW5nWydtc2dfcmVzZXRfc2Vzc2lvbiddID0gJ1lvdXIgbG9naW4gc2Vzc2lvbiBpcyBhYm91dCB0byBleHBpcmUsIHBsZWFzZSBjbGljayAmcXVvdDsmcXVvdDtPayZxdW90OyB0byBjb25maXJtIHlvdXIgYWN0aXZpdHkgb24gdGhpcyB3ZWJzaXRlLic7CiRsYW5nWydvayddID0gJ09rJzsKJGxhbmdbJ3Jlc2V0c2Vzc2lvbl90ZW1wbGF0ZSddID0gJ1Jlc2V0IFNlc3Npb24gVGVtcGxhdGUnOwokbGFuZ1snaW5mb19uYW1lJ10gPSAnVGhpcyBpcyB0aGUgZmllbGQgbmFtZSwgdG8gYmUgdXNlZCBmb3IgYWRkcmVzc2luZyBpbiBzbWFydHkuICBJdCBtdXN0IGNvbnNpc3Qgb2Ygb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgdW5kZXJzY29yZXMuJzsKJGxhbmdbJ3Zpc2l0b3JzX3RhYiddID0gJ1Zpc2l0b3JzJzsKJGxhbmdbJ2ZldV9ncm91cHNfcHJvbXB0J10gPSAnU2VsZWN0IG9uZSBvciBtb3JlIEZFVSBncm91cHMgdGhhdCBhcmUgYWxsb3dlZCB0byB2aWV3IHRoaXMgcGFnZSc7CiRsYW5nWydlcnJvcl9tdXN0c2VsZWN0X2dyb3VwJ10gPSAnQSBncm91cCBtdXN0IGJlIHNlbGVjdGVkJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc3RhcnRfeWVhciddID0gJ1N0YXJ0IFllYXInOwokbGFuZ1snZW5kX3llYXInXSA9ICdFbmQgWWVhcic7CiRsYW5nWydkYXRlJ10gPSAnRGF0ZSc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdUaHVtYm5haWwgU2l6ZSc7CiRsYW5nWydPblVwZGF0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBNb2RpZmllZCc7CiRsYW5nWydlcnJvcl90b29tYW55c2VsZWN0ZWQnXSA9ICdUb28gbWFueSB1c2VycyBhcmUgc2VsZWN0ZWQgZm9yIGJ1bGsgb3BlcmF0aW9ucy4uLi4gUGxlYXNlIHRyaW0gaXQgdG8gMjUwIG9yIGxlc3MnOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCB1c2Vycz8nOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRGVsZXRlIFNlbGVjdGVkJzsKJGxhbmdbJ3Byb21wdF9yYW5kb211c2VybmFtZSddID0gJ0dlbmVyYXRlIHJhbmRvbSB1c2VybmFtZSB3aGVuIGFkZGluZyBuZXcgdXNlcnMnOwokbGFuZ1snbW9udGhzJ10gPSAnbW9udGhzJzsKJGxhbmdbJ3Byb21wdF9leHBpcmVhZ2UnXSA9ICdEZWZhdWx0IHVzZXIgZXhwaXJ5IHBlcmlvZCc7CiRsYW5nWydub3RpZmljYXRpb25fc2V0dGluZ3MnXSA9ICdOb3RpZmljYXRpb24gU2V0dGluZ3MnOwokbGFuZ1sncHJvcGVydHlfc2V0dGluZ3MnXSA9ICdQcm9wZXJ0eSBTZXR0aW5ncyc7CiRsYW5nWydyZWRpcmVjdGlvbl9zZXR0aW5ncyddID0gJ1JlZGlyZWN0aW9uIFNldHRpbmdzJzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3Nlc3Npb25fc2V0dGluZ3MnXSA9ICdTZXNzaW9uIGFuZCBDb29raWUgU2V0dGluZ3MnOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdGaWVsZCBTZXR0aW5ncyc7CiRsYW5nWydlcnJvcl9sb3N0dW5fbm9ucmVxdWlyZWQnXSA9ICdUaGUgbG9zdHVzZXJuYW1lIGZsYWcgY2FuIG9ubHkgYmUgdXNlZCBvbiByZXF1aXJlZCBmaWVsZHMnOwokbGFuZ1sncHJvcF90ZXh0YXJlYV93eXNpd3lnJ10gPSAnQWxsb3cgdXNlIG9mIHd5c2l3eWcgb24gdGhpcyB0ZXh0IGFyZWEnOwokbGFuZ1snaW5mb19jb29raWVzdG9yZW1lbWJlciddID0gJzxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFRoaXMgdXNlcyB0aGUgbWNyeXB0IGZ1bmN0aW9ucyBmb3IgZW5jcnlwdGlvbiBwdXJwb3NlcywgYW5kIHRoZXkgY291bGQgbm90IGJlIGRldGVjdGVkIG9uIHlvdXIgaW5zdGFsbC4gICBQbGVhc2UgY29udGFjdCB5b3VyIHNlcnZlciBhZG1pbmlzdHJhdG9yLic7CiRsYW5nWydlZGl0aW5nX3VzZXInXSA9ICdFZGl0aW5nIFVzZXInOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdEbyBub3QgaW5saW5lIGZvcm1zJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnUGFpbmEgdCZhdW1sO3N0JmF1bWw7LCBqb3MgZXQgbXVpc3RhIGtpcmphdXR1bWlzdGlldG9qYXNpJzsKJGxhbmdbJ2luZm9fZm9yZ290cHcnXSA9ICdQYWluYSB0JmF1bWw7c3QmYXVtbDssIGpvcyBldCBtdWlzdGEgc2FsYXNhbmFhc2knOwokbGFuZ1snaW5mb19sb2dvdXQnXSA9ICdLbGlra2FhIGtpcmphdXR1YWtzZXNpIHVsb3MnOwokbGFuZ1snaW5mb19jaGFuZ2VzZXR0aW5ncyddID0gJ1BhaW5hIHQmYXVtbDtzdCZhdW1sOyBtdW9rYXRha3Nlc2kgc2FsYXNhbmFhc2kgdGFpIG11aXRhIHRpZXRvamFzaSc7CiRsYW5nWyd2aWV3dXNlcl90ZW1wbGF0ZSddID0gJ04mYXVtbDt5dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyAtcG9oamEnOwokbGFuZ1snZXZlbnQnXSA9ICdUYXBhaHR1bWEnOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ0ZFVS10YXBhaHR1bWFodW9tYXV0dXMnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnSWxtb2l0dXN2aWVzdGllbiBrb2hkZW9zb2l0ZSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnSWxtb2l0dXN2aWVzdGllbiBwb2hqYSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICdJbG1vaXR1c3ZpZXN0aWVuIGFpaGUgKFN1YmplY3QpJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25zJ10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGktaWxtb2l0dWtzZXQnOwokbGFuZ1snT25Mb2dpbiddID0gJ1NpcyZhdW1sOyZhdW1sO25raXJqYXV0dWVzc2EnOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdVbG9za2lyamF1dHVlc3NhJzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ0lzdHVubm9uIHZhbmhldGVzc2EnOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2ppJmF1bWw7IGx1b2Rlc3NhJzsKJGxhbmdbJ09uRGVsZXRlVXNlciddID0gJ0smYXVtbDt5dHQmYXVtbDtqaSZhdW1sOyBwb2lzdGV0dGFlc3NhJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBhc2V0dWtzaWVuIG11dXR0dWVzc2EnOwokbGFuZ1snT25DcmVhdGVHcm91cCddID0gJ0x1b3RhZXNzYSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3J5aG0mYXVtbDsnOwokbGFuZ1snT25EZWxldGVHcm91cCddID0gJ1BvaXN0ZXR0YWVzc2EgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtyeWhtJmF1bWw7JzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcHJlbXNnJ10gPSAnJnF1b3Q7S2Fkb25uZWV0IGtpcmphdXR1bWlzdGllZG90JnF1b3Q7LXRvaW1pbm5hbGxpc3V1cyBvbiBvbm5pc3R1bmVlc3RpIHN1b3JpdGV0dHUuIEwmb3VtbDt5ZGV0dGlpbiB1bmlpa2tpIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dHVubnVzLCBqb2thIHZhc3RhYSBhbnRhbWlhc2kgdGlldG9qYS4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7dHVubnVrc2VzaSBvbic7CiRsYW5nWydsb3N0dW5jb25maXJtX3Bvc3Rtc2cnXSA9ICdTdW9zaXR0ZWxlbW1lIGtpcmphYW1hYW4gdCZhdW1sO20mYXVtbDtuIHRpZWRvbiB5bCZvdW1sO3MgdHVydmFsbGlzZWVuLCBtdXR0YSBzYWF0YXZpbGxhIG9sZXZhYW4gc2lqYWludGlpbi4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX2NoYW5nZV9zZXR0aW5ncyddID0gJ1BhZ2VJRC9BbGlhcywgam9ubmUgc2lpcnJ5dCZhdW1sOyZhdW1sO24gYXNldHVzdGVuIG11dXRva3NlbiBqJmF1bWw7bGtlZW4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX3ZlcmlmeV9jb2RlJ10gPSAnUGFnZUlEL0FsaWFzIGtvb2RpbiB2YXJtZW5udWtzZW4gaiZhdW1sO2xrZWVuIConOwokbGFuZ1snbG9zdHVuX2RldGFpbHNfdGVtcGxhdGUnXSA9ICdLYWRvbm51dCBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3R1bm51cyBwb2hqYSc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJ0thZG9ubnV0IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dHVubnVzIHZhcm1lbm51cyBwb2hqYSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ1ZpcmhlOiBFbmVtbSZhdW1sO24ga3VpbiB5a3NpIHRpbGkgbCZvdW1sO3l0eWkgb21pbmFpc3V1a3NpbGxhJzsKJGxhbmdbJ2Vycm9yX2NhbnRmaW5kdXNlciddID0gJ1ZpcmhlOiBLJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyZhdW1sOyBlaSBsJm91bWw7eXR5bnl0IG4mYXVtbDtpbGwmYXVtbDsgZWhkb2lsbGEnOwokbGFuZ1snZXJyb3JfZ3JvdXBub3Rmb3VuZCddID0gJ1ZpcmhlOiBSeWhtJmF1bWw7JmF1bWw7IGVpIGwmb3VtbDt5dHlueXQnOwokbGFuZ1sncmVhZG9ubHknXSA9ICdWYWluIGx1a3UnOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ0smYXVtbDt5dHQmYXVtbDtqaWVuIG11b2trYXVzbHVva2thJzsKJGxhbmdbJ2FkbWluX2xvZ291dCddID0gJ1lsbCZhdW1sO3BpdCZhdW1sO2omYXVtbDsga2lyamFzaSB1bG9zJzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdOJmF1bWw7eXQmYXVtbDsgdmFpbiBraXJqYXV0dW5lZXQgayZhdW1sO3l0dCZhdW1sO2omYXVtbDt0JzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdLaXJqYWEgdCZhdW1sO20mYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDsgdWxvcyc7CiRsYW5nWyd1c2VyX3Byb3BlcnRpZXMnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gb21pbmFpc3V1ZGV0JzsKJGxhbmdbJ3VzZXJoaXN0b3J5J10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIGhpc3RvcmlhJzsKJGxhbmdbJ2V4cG9ydCddID0gJ1ZpZSc7CiRsYW5nWydjbGVhciddID0gJ1R5aGplbm4mYXVtbDsnOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJoaXN0b3J5J10gPSAnVmllIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7aGlzdG9yaWEgQVNDSUktbXVvZG9zc2Egam9rYSBvbiB2JmF1bWw7aGludCZhdW1sOyZhdW1sO24nOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdUeWhqZW5uJmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7aGlzdG9yaWEgam9rYSBvbiB2JmF1bWw7aGludCZhdW1sOyZhdW1sO24nOwokbGFuZ1sndGl0bGVfbG9zdHVzZXJuYW1lJ10gPSAnVW5vaGRpdGtvIHR1bm51a3NlbiB0YWkgc2FsYXNhbmFuPyc7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdWaWUgcnlobSZhdW1sO20mYXVtbDsmYXVtbDtyaXR5a3NldCBYTUwtbXVvZG9zc2EnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZSddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7aGlzdG9yaWFuIGhhbGxpbnRhJzsKJGxhbmdbJ3llcyddID0gJ0t5bGwmYXVtbDsnOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICcvJzsKJGxhbmdbJ2RhdGVfYWxscmVjb3JkcyddID0gJyoqIEVpIHJham9pdHVzdGEgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAnVHVubmluIHZhbmhhJzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJ0t1dXNpIHR1bnRpYSB2YW5oYSc7CiRsYW5nWydkYXRlX3R3ZWx2ZWhvdXJvbGQnXSA9ICdLYWtzaXRvaXN0YSB0dW50aWEgdmFuaGEnOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICdQJmF1bWw7aXYmYXVtbDtuIHZhbmhhJzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJ1ZpaWtvbiB2YW5oYSc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnS2Frc2kgdmlpa2tvYSB2YW5oYSc7CiRsYW5nWydkYXRlX29uZW1vbnRob2xkJ10gPSAnS3V1a2F1ZGVuIHZhbmhhJzsKJGxhbmdbJ2RhdGVfdGhyZWVtb250aHNvbGQnXSA9ICdLb2xtZSBrdXVrYXV0dGEgdmFuaGEnOwokbGFuZ1snZGF0ZV9zaXhtb250aHNvbGQnXSA9ICdLdXVzaSBrdXVrYXV0dGEgdmFuaGEnOwokbGFuZ1snZGF0ZV9vbmV5ZWFyb2xkJ10gPSAnVnVvZGVuIHZhbmhhJzsKJGxhbmdbJ3RpdGxlX2dyb3Vwc29ydCddID0gJ1J5aG1pdHRlbHkgamEgaiZhdW1sO3JqZXN0eXMnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ0hha3VlaHRvamEgdmFzdGFhdmF0IG1lcmtpbm4mYXVtbDt0JzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMgbGFza2V2YSc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfYXNjJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMgbm91c2V2YSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnUCZhdW1sO2l2JmF1bWw7bSZhdW1sOyZhdW1sO3ImYXVtbDsgbGFza2V2YSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdQJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sOyBub3VzZXZhJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ1RhcGFodHVtYW4gdHl5cHBpIGxhc2tldmEnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdUYXBhaHR1bWFuIHR5eXBwaSBub3VzZXZhJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfZGVzYyddID0gJ0lQLW9zb2l0ZSBsYXNrZXZhJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnSVAtb3NvaXRlIG5vdXNldmEnOwokbGFuZ1snaW5mb19ub2hpc3RvcnlkZXRlY3RlZCddID0gJ0VpIGhpc3RvcmlhYSc7CiRsYW5nWydyZXNldCddID0gJ05vbGxhYSc7CiRsYW5nWydwcm9tcHRfZ3JvdXBfaXAnXSA9ICdSeWhtaXR0ZWxlIElQLW9zb2l0dGVlbiBtdWthYW4nOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnXSA9ICdUYXBhaHR1bWF0eXlwcGlzdW9kYXR1cyc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdOJmF1bWw7eXQmYXVtbDsgdmFpbiB0YXBhaHR1bWF0IGpvdGthIG92YXQ6JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdTaXZ1cmFqb2l0dXMnOwokbGFuZ1snZm9yJ10gPSAnZm9yJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtoaXN0b3JpYXJhcG9ydHRpJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdUdW50ZW1hdG9uJzsKJGxhbmdbJ3Byb21wdF9pcGFkZHJlc3MnXSA9ICdJUC1Pc29pdGUnOwokbGFuZ1sncHJvbXB0X2V2ZW50dHlwZSddID0gJ1RhcGFodHVtYW4gdHl5cHBpJzsKJGxhbmdbJ3Byb21wdF9kYXRlJ10gPSAnUCZhdW1sO2l2JmF1bWw7JzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdQYWxhYSc7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnVHVvbnRpIG9ubmlzdHVpJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ1JpdmkmYXVtbDsgayZhdW1sO3NpdGVsdHknOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ1ZpcmhlaXQmYXVtbDsgbCZvdW1sO3l0eWknOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ01lcmtpbnQmYXVtbDsmYXVtbDsgbGlzJmF1bWw7dHR5JzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnXSA9ICdSeWhtJmF1bWw7bGxlICVzIGVpIGwmb3VtbDt5dHlueXQgb21pbmFpc3V1a3NpYSc7CiRsYW5nWydlcnJvcl9ub3Jlc3BvbnNlZnJvbXNlcnZlciddID0gJ1NNVFAtc2VydmVyaWluIGVpIHNhYXR1IHlodGV5dHQmYXVtbDsnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnVGllZG9zdG9hICglcykgZWkgbCZvdW1sO3l0eW55dCc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZHZhbHVlJ10gPSAnVmlyaGVlbGxpbmVuIGFydm8ga2VudCZhdW1sO3NzJmF1bWw7ICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkbGVuZ3RoJ10gPSAnS2VudCZhdW1sO3NzJmF1bWw7ICVzIGxpaWFuIHBpdGsmYXVtbDsgYXJ2byc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ1R1b250aXZpcmhlIChyaXZpICVzKTogJXMnOwokbGFuZ1snZXJyb3JfcHJvcGVydHlkZWZucyddID0gJ0VpIHZvaXR1IGxhZGF0YSBvbWluYWlzdXVzdGlldG9qYSAoU2lzJmF1bWw7aW5lbiB2aXJoZSknOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdpbmZvJ10gPSAnT25nZWxtYSBhc2V0ZXR0YWVzc2EgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHRpZXRvamEnOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ1ZhYWRpdHVsbGUga2VudCZhdW1sO2xsZSAlcyBlaSBsJm91bWw7eXR5bnl0IHNhcmFrZXR0YSc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ1J5aG0mYXVtbDtsbGUgZWkgbCZvdW1sO3lkeSBvbWluYWlzdXVrc2lhJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVmb3JtYXQnXSA9ICdUdW9udGl0aWVkb3N0b24gbXVvdG8gb24gdiZhdW1sOyZhdW1sO3ImYXVtbDsnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ1RpZWRvc3RvYSBlaSB2b2l0dSBhdmF0YSc7CiRsYW5nWydpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdCddID0gJzxoND5GaWxlIEZvcm1hdCBJbmZvcm1hdGlvbjwvaDQ+DQo8cD5UaGUgaW5wdXQgZmlsZSBtdXN0IGJlIGluIEFTQ0lJIGZvcm1hdCB1c2luZyBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzLiAgRWFjaCBsaW5lIGluIHRoaXMgaW5wdXQgZmlsZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBoZWFkZXIgbGluZSwgZGlzY3Vzc2VkIGJlbG93KSByZXByZXNlbnRzIG9uZSB1c2VyIHJlY29yZC4gIEVhY2ggbGluZSBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgbnVtYmVyIG9mIGZpZWxkcywgYW5kIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzIGluIGVhY2ggbGluZSBtdXN0IGJlIGlkZW50aWNhbC48L3A+DQo8aDU+SGVhZGVyIGxpbmU8L2g1Pg0KPHVsPg0KPGxpPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIG11c3QgYmVnaW4gd2l0aCB0d28gcG91bmQgKFwjKSBjaGFyYWN0ZXJzLCBhbmQgbmFtZXMgZWFjaCBvZiB0aGUgZmllbGRzIGluIHRoZSBmaWxlLiAgVGhlIG5hbWVzIG9mIHRoZXNlIGZpZWxkcyBpcyBzaWduaWZpY2FudC4gIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkIG5hbWVzIChzZWUgYmVsb3cpLCBhbmQgb3RoZXIgZmllbGQgbmFtZXMgbXVzdCBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB1c2VycyBhcmUgZ29pbmcgdG8gYmUgYWRkZWQgaW50by48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGZhaWwgaWYgdGhlIGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSBkb2VzIG5vdCBtYXRjaCBhbGwgb2YgdGhlIHJlcXVpcmVkIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB0aGF0IHVzZXJzIGFyZSBiZWluZyBhZGRlZCBpbnRvPC9saT4NCjxsaT5UaGUgaW5wdXQgZmlsZSBtYXkgY29udGFpbiBmaWVsZHMgcmVwcmVzZW50aW5nIHNvbWUgb2YgdGhlIG9wdGlvbmFsIHByb3BlcnRpZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGlnbm9yZSBhbnkgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIHRoYXQgYXJlIGVpdGhlciBub3Qga25vd24sIG9yIG1hcCB0byBwcm9wZXJ0aWVzIHRoYXQgYXJlIDxlbT5vZmY8L2VtPiBpbiB0aGUgc3BlY2lmaWVkIHVzZXIgZ3JvdXAuPC9saT4NCjwvdWw+DQo8aDU+Q29sdW1uYXIgRGF0YTwvaDU+DQo8dWw+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gRmllbGQgLSBUaGUgZGVzaXJlZCB1c2VybmFtZS4NCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNuIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBUaGUgcmVjb3JkIHdpbGwgZmFpbCBpZiBhIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZS48L3A+PC9saT4NCjxsaT5UaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBGaWVsZCAtIFRvZG88L2xpPg0KPGxpPlRoZSA8c3Ryb25nPmV4cGlyZXM8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5Ecm9wZG93biBGaWVsZHMNCiAgICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QgRmllbGRzDQogICAgPHA+TXVsdGlzZWxlY3QgZmllbGRzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBBU0NJSSBmaWxlIGFzIGEgOiBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzLCB3aGVyZSBlYWNoIHN0cmluZyByZXByZXNlbnRzIHRoZSB0ZXh0IHNob3duIGluIHRoZSBtdWx0aXNlbGVjdCBsaXN0PC9wPg0KPC9saT4NCjxsaT5JbWFnZSBGaWVsZHMNCiAgICA8cD5JbWFnZSBhcmUgZmllbGRzIHdobyYjMDM5O3MgY29sdW1uIG5hbWUgbWF0Y2hlcyBhIHByb3BlcnR5IG9mIHR5cGUgSW1hZ2UuICBJZiB0aGlzIGZpZWxkIGlzIGEgcmVxdWlyZWQgcGFydCBvZiB0aGUgZGVzdGluYXRpb24gZ3JvdXAsIHRoZW4gdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiB0aGUgdXBsb2FkcyBkaXNyZWN0b3J5IG9mIHRoZSBDTVMgaW5zdGFsbGF0aW9uLiAgSWYgdGhlIGltYWdlIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvcD4NCjwvdWw+DQo8aDU+Tm90ZXM8L2g1Pg0KPHA+VGhlIGltcG9ydCBwcm9jZXNzIGlzIHN1YmplY3QgdG8gdGhlIGxpbWl0YXRpb25zIGltcG9zZWQgYnkgdGhlIGhvc3QgcHJvdmlkZXIsIHN1Y2ggYXMgbWVtb3J5IGxpbWl0YXRpb25zLCBwcm9jZXNzaW5nIHRpbWUsIGZpbGUgc2l6ZSB1cGxvYWQsIGFuZCBzYWZlIG1vZGUgcmVzdHJpY3Rpb25zLiAgQW55IG9uZSBvZiB0aGVzZSBsaW1pdGF0aW9ucyBtYXkgY2F1c2UgdGhlIGltcG9ydCB0byBmYWlsLiBUaGVyZWZvcmUgaXQgaXMgYWR2aXNhYmxlIHRvIGVuc3VyZSB0aGF0IGltcG9ydCBmaWxlcyBhcmUgc21hbGxlciBpbiBzaXplLCBhbmQgc2ltcGxlciBpbiBuYXR1cmUuPC9wPg0KPHA+VGhvdWdoIGV2ZXJ5IGVmZm9ydCBoYXMgYmVlbiBtYWRlIHRvIGVuc3VyZSB0aGF0IGRhdGFiYXNlIGNvcnJ1cHRpb24gd2lsbCBub3Qgb2NjdXIsIGl0IGlzIGFkdmlzYWJsZSB0byBwZXJmb3JtIGEgZGF0YWJhc2UgYmFja3VwIGJlZm9yZSBkb2luZyBhIHVzZXIgaW1wb3J0LjwvcD4NCjxoNT5FeGFtcGxlPC9oNT4NCjxwcmU+DQojI3VzZXJuYW1lLGZpcnN0X25hbWUsbGFzdF9uYW1lLGVtYWlsLGNpdHksc3RhdGUsY291bnRyeSx6aXANCnVzZXIxLHRlc3QsdXNlcix1c2VyMUBzb21lZG9tYWluLmNvbSxzb21ld2hlcmUsVFgsVVMsMTIzNDUNCjwvcHJlPic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnVHVvIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dCByeWhtJmF1bWw7JmF1bWw7bic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdDU1YtdGllZG9zdG8nOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdYTUwtdGllZG9zdG8nOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJzJ10gPSAnVmllIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdUdW8gayZhdW1sO3l0dCZhdW1sO2omYXVtbDt0JzsKJGxhbmdbJ3Byb21wdF9jbGVhciddID0gJ1R5aGplbm4mYXVtbDsnOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdLdXZhbiBrb2hkZXBvbGt1JzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnSGF2YWl0dGlpbiBvbmdlbG1hIHB1dXR0dXZhbiAoamEgdmFhZGl0dW4pIHVwbG9hZGluIGthbnNzYSc7CiRsYW5nWydlcnJvcl9iYWRfeG1sJ10gPSAnWE1MLXRpZWRvc3RvYSBlaSB2b2l0dSBsdWtlYSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnRWkgdm9pZGEgdHVob3RhIHJ5aG0mYXVtbDsmYXVtbDsgam9zc2Egb24gdmllbGEgayZhdW1sO3l0dCZhdW1sO2ppJmF1bWw7JzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyBvbiBqbyBraXJqYXV0dW5lZW5hJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ0t1dmFzc2Egb2xldmEgdGVrc3RpIGVpIG9sZSBzeSZvdW1sO3RldHR5IG9pa2Vpbic7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnU2FsbGkgayZhdW1sO3l0dCZhdW1sO2ppZW4ga2lyamF1dHVhIHVzZWFtbWFuIGtlcnJhbic7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnS3V2aWVuIHRpZWRvc3RvcCZhdW1sOyZhdW1sO3R0ZWV0IGpvaXRhIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dCBzYWF2YXQgbGFkYXRhJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25SZWZyZXNoVXNlciddID0gJzxoMz5PblJlZnJlc2hVc2VyPC9oMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIHRoZSB1c2VyIHNlc3Npb24gaXMgcmVmcmVzaGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBVc2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyB1cGRhdGVkIChlaXRoZXIgYnkgdXNlciB0aGVtc2VsZiBvciBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZUdyb3VwJ10gPSAnPGgzPk9uQ3JlYXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBncm91cCBkZXNjcmlwdGlvbjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9naW4nXSA9ICc8aDM+T25Mb2dpbjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+aXA8L2VtPiAtIFRoZSBpcCBhZGRyZXNzIG9mIHRoZSBjbGllbnQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0PC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZG91dCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkV4cGlyZVVzZXInXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgc2Vzc2lvbiBleHBpcmVzPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZCBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ2luJ10gPSAnU3Vvcml0ZXRhYW4ga3VuIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7IGtpcmphdXR1dSBqJmF1bWw7cmplc3RlbG0mYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdTdW9yaXRldGFhbiBrdW4gayZhdW1sO3l0dCZhdW1sO2omYXVtbDsga2lyamF1dHV1IHVsb3MgaiZhdW1sO3JqZXN0ZWxtJmF1bWw7c3QmYXVtbDsnOwokbGFuZ1snZXZlbnRfaW5mb19PbkV4cGlyZVVzZXInXSA9ICdTdW9yaXRldGFhbiBrdW4gayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIGlzdHVudG8gdmFuaGVuZWUnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZVVzZXInXSA9ICdTdW9yaXRldGFhbiBrdW4gdXVzaSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyBsdW9kYWFuJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25SZWZyZXNoVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIHRoZSB1c2VyIHNlc3Npb24gaXMgcmVmcmVzaGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVVc2VyJ10gPSAnU3Vvcml0ZXRhYW4ga3VuIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biB0aWV0b2phIHAmYXVtbDtpdml0ZXQmYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnU3Vvcml0ZXRhYW4ga3VuIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biB0aWxpIHBvaXN0ZXRhYW4nOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZUdyb3VwJ10gPSAnU3Vvcml0ZXRhYW4ga3VuIHJ5aG0mYXVtbDsgbHVvZGFhbic7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgdXBkYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlR3JvdXAnXSA9ICdTdW9yaXRldGFhbiBrdW4gcnlobSZhdW1sOyBwb2lzdGV0YWFuJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdCYWNrZW5kIEdyb3VwJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogU2V1cmFhdmlhIG1ha3JvamEgdm9pZGFhbiBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7OiB7JHVzZXJuYW1lfSx7JGdyb3VwfS4gV2hlbiB1c2luZyB0aGUgeyRncm91cH0gbWFjcm8sIHRoZSBzeXN0ZW0gd2lsbCBzdWJzaXR1dGUgdGhlIG5hbWUgb2YgdGhlIGZpcnN0IG1lbWJlciBncm91cCB0aGF0IHRoZSB1c2VyIGJlbG9uZ3MgdG8sIGFuZCB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcGFnZS4nOwokbGFuZ1snaW5mb19hZG1pbl9wYXNzd29yZCddID0gJ011b2trYWEgdCZhdW1sO3QmYXVtbDsga2VudHQmYXVtbDsmYXVtbDsgbm9sbGF0YWtzZXNpIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBzYWxhc2FuYW4nOwokbGFuZ1snaW5mb19hZG1pbl9yZXBlYXRwYXNzd29yZCddID0gJ011b2trYWEgdCZhdW1sO3QmYXVtbDsga2VudHQmYXVtbDsmYXVtbDsgbm9sbGF0YWtzZXNpIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBzYWxhc2FuYW4nOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMgb24gam8gayZhdW1sO3l0Jm91bWw7c3MmYXVtbDsnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnQ1NWIGV4cG9ydCBlaSBwYWxhdXR0YW51dCB0dWxva3NpYSc7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3R1bm51c2tlbnQmYXVtbDtuIHBpdHV1cyc7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdTYWxhc2FuYWtlbnQmYXVtbDtuIHBpdHV1cyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmRsZW5ndGhzJ10gPSAnTWluaW1pLS9NYWtzaW1pLXBpdHV1ZGV0IHNhbGFzYW5hbGxlIG92YXQgdmlyaGVlbGxpc2V0JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZWxlbmd0aHMnXSA9ICdNaW5pbWktL01ha3NpbWktcGl0dXVkZXQgayZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udWtzZWxsZSBvdmF0IHZpcmhlZWxsaXNldCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZW1haWxhZGRyZXNzJ10gPSAnVmlyaGVlbGxpbmVuIGVtYWlsLW9zb2l0ZSc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ1RpbGlsbGUgZWkgbCZvdW1sO3l0eW55dCBlbWFpbC1vc29pdGV0dGEnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNlZXR0aW5naW5mbyddID0gJ09uZ2VsbWEgYXNldGV0dGFlc3NhIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biB0aWV0b2phJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ09uZ2VsbWEgYXNldGV0dGFlc3NhIG9taW5haXN1dWtzaWEnOwokbGFuZ1sndXNlcl9hZGRlZCddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7IGxpcyZhdW1sO3R0eSAlcz0lcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyBwb2lzdGV0dHUgdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnT21pbmFpc3V1cyc7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnQXJ2byAocmVxdWxhciBleHByZXNzaW9uKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ1Zhcm9pdHVzOiBOJmF1bWw7bSZhdW1sOyBrZW50JmF1bWw7dCB2YWlrdXR0YXZhdCBzeSZvdW1sO3R0Jm91bWw7a2VudHRpZW4ga29rb29uLiBBcnZvamVuIHBpZW5lbnQmYXVtbDttaW5lbiBlaSBvbGUgc3Vvc2l0ZWx0YXZhYSBrJmF1bWw7eXR0Jm91bWw7c3MmYXVtbDsgb2xldmFsbGEgc2l2dXN0b2xsYSc7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnSGFsdWF0a28gdmFybWFzdGkgbXVva2F0YSBtb2R1bGluIGFzZXR1a3NpYSc7CiRsYW5nWydlcnJvcl9lbWFpbGFscmVhZHl1c2VkJ10gPSAnRW1haWwgb3NvaXRlIG9uIGpvIGsmYXVtbDt5dCZvdW1sO3NzJmF1bWw7JzsKJGxhbmdbJ3Byb21wdF91c2Vjb29raWVzdG9yZW1lbWJlciddID0gJ0smYXVtbDt5dCZhdW1sOyBrZWtzZWomYXVtbDsga2lyamF1dHVtaXN0aWV0b2plbiB0YWxsZW5udWtzZWVuJzsKJGxhbmdbJ3Byb21wdF9jb29raWVuYW1lJ10gPSAnS2Vrc2luIG5pbWknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICdTYWxsaSB0dXBsYS1lbWFpbGl0JzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCddID0gJ1MmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRlIG9uIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7bmltaSc7CiRsYW5nWydpbmZvX2Nvb2tpZV9rZWVwYWxpdmUnXSA9ICdZcml0JmF1bWw7IHBpdCZhdW1sOyZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7amllbiBraXJqYXV0dW1pbmVuIGFrdGlpdmlzZW5hIGtla3NpbGwmYXVtbDsnOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnU2FsbGkgdXNlaWxsZSBrJmF1bWw7eXR0JmF1bWw7amlsbGUgc2FtYSBlbWFpbC1vc29pdGUnOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyh1c2VyJiMwMzk7cyBlbWFpbCBhZGRyZXNzIGlzIHRoZWlyIHVzZXJuYW1lIC0tIGRvbiYjMDM5O3Qgc2V0IHRoaXMgd2l0aCAmcXVvdDthbGxvdyBkdXBsaWNhdGUgZW1haWwgYWRkcmVzc2VzJnF1b3Q7ISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdTYWxsaSB1c2VhdCAmcXVvdDt1bm9oZGl0a28gc2FsYXNhbmFzaSZxdW90OyB2aWVzdGl0Pyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdTYWxsaSBrJmF1bWw7eXR0JmF1bWw7amllbiBweXl0JmF1bWw7JmF1bWw7IHNhbGFzYW5hIHV1ZGVzdGFhbiB2YWlra2EgZWRlbGxpc2VlbiBrdXRzdXVuIGVpIG9sZSB2aWVsJmF1bWw7IHJlYWdvaXR1JzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnSyZhdW1sO3l0JmF1bWw7IEZyb250LWVuZCBVc2VyIHNwZWNpZmljaSZhdW1sOyBvaWtldWtzaWEnOwokbGFuZ1snaW5mb19mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnKE5vcm1hbGx5LCBGRVVTZXJzIHBlcm1pc3Npb25zIGFyZSB0aGUgc2FtZSBhcyB0aGUgZXF1aXZhbGVudCBBZG1pbiBBcmVhIHBlcm1pc3Npb25zIGxpa2UgQWRkIFVzZXIsIEFkZCBHcm91cCwgZXRjLiBJZiB5b3Ugc2VsZWN0IHRoaXMgb3B0aW9uLCB0aGVyZSB3aWxsIGJlIHNlcGFyYXRlIHBlcm1pc3Npb25zIGZvciBGRVVzZXJzLiknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VwbG9hZCddID0gJ0VpIHZvaXR1IGF2YXRhIGxhZGF0dHVhIHRpZWRvc3RvYSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtX3VwbG9hZCddID0gJ0xhZGF0dXNzYSB0aWVkb3N0b3NzYSBvbiBoYXZhaXR0dSBvbmdlbG1hLCBvbGUgaHl2JmF1bWw7IGphIHlyaXQmYXVtbDsgdXVkZWxsZWVuJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1c2VybmFtZSddID0gJ0V0IHN5Jm91bWw7dHQmYXVtbDtueXQgayZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXN0YSc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdFdCBzeSZvdW1sO3R0JmF1bWw7bnl0IHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXRldHRhc2knOwokbGFuZ1snZXJyb3JfbWlzc2luZ3Bhc3N3b3JkJ10gPSAnRXQgc3kmb3VtbDt0dCZhdW1sO255dCBzYWxhc2FuYWEnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0tpcmphdWR1IHVsb3MnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnS2lyamF1ZHUgc2lzJmF1bWw7JmF1bWw7bic7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9XCZxdW90O3JlZFwmcXVvdDs+PGI+VVNFIENBVVRJT048L2I+IHdoZW4gY2hhbmdpbmcgZXhpc3RpbmcgcHJvcGVydGllcyB0aGF0IGFyZSBhc3NpZ25lZCB0byBncm91cHMsIHlvdSBtYXkgcG90ZW50aWFsbHkgY2F1c2UgZGFtYWdlIGFuZCBicmVhayBhbiBleGlzdGluZyBzaXRlIDxpPihlc3BlY2lhbGx5IGlmIHlvdSByZWR1Y2UgZmllbGQgbGVuZ3RocywgZXRjKTwvaT48L2ZvbnQ+JzsKJGxhbmdbJ2luZm9fc210cHZhbGlkYXRlJ10gPSAnVCZhdW1sO20mYXVtbDsgdG9pbWludG8gZWkgdG9pbWkgV2luZG93cy15bXAmYXVtbDtyaXN0Jm91bWw7c3MmYXVtbDsnOwokbGFuZ1snbXNnX2RvbnRjcmVhdGV1c2VybmFtZSddID0gJyZBdW1sO0wmQXVtbDsgbHVvIG9taW5haXN1dXR0YSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3R1bm51a3NlbGxlIHRhaSBzYWxhc2FuYWxsZSwgbiZhdW1sO20mYXVtbDsga2VudCZhdW1sO3QgbHVvZGFhbiBhaW5hIGF1dG9tYWF0dGlzZXN0aS4nOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ1ZpZSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3QgQ1NWLXRpZWRvc3Rvb24nOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnVmllJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ1R1byc7CiRsYW5nWydhZG1pbiddID0gJ0hhbGxpbm5vaSc7CiRsYW5nWydlZGl0cHJvcCddID0gJ011b2trYWEgb21pbmFpc3V1dHRhJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01ha3NpbWkgcGl0dXVzJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdMdW90dSc7CiRsYW5nWydzb3J0YnknXSA9ICdKJmF1bWw7cmplc3QmYXVtbDsnOwokbGFuZ1snc29ydCddID0gJ0omYXVtbDtyamVzdHlzJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7dCB2YWxpdHVzc2EgcnlobSZhdW1sO3NzJmF1bWw7JzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ04mYXVtbDt5dCZhdW1sOyByaXZpJmF1bWw7Oic7CiRsYW5nWydlcnJvcl9ub2VtYWlsZmllbGQnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO2xsZSBlaSBsJm91bWw7eWRldHR5IGVtYWlsIGtlbnR0JmF1bWw7JmF1bWw7LiBPdGEgeWh0ZXR0JmF1bWw7IHdlYm1hc3Rlcmlpbic7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyAmcXVvdDt1bm9odHVudXQgc2FsYXNhbmEmcXVvdDsgLWxvbWFra2VlbGxlJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzICZxdW90O211dXRhIGFzZXR1a3NpYSZxdW90OyAtbG9tYWtrZWVsbGUnOwokbGFuZ1sncHJvbXB0X2xvZ2luX3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgam9rYSBuJmF1bWw7eXRldCZhdW1sOyZhdW1sO24ga2lyamF1dHVtaXNlbiBqJmF1bWw7bGtlZW4nOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGpva2EgbiZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHVsb3Mga2lyamF1dHVtaXNlbiBqJmF1bWw7bGtlZW4nOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnSiZhdW1sO3JqZXN0eXMnOwokbGFuZ1sncHJvbXB0X251bXJlc2V0cmVjb3JkJ10gPSAnSm9pdGFpbiBrJmF1bWw7eXR0JmF1bWw7amkmYXVtbDsgb24gdCZhdW1sO2xsJmF1bWw7IGhldGtlbGwmYXVtbDsgcmVzZXRvaW1hc3NhIHNhbGFzYW5vamFhbi4gVCZhdW1sO2xsJmF1bWw7IGhldGtlbGwmYXVtbDsgbiZhdW1sO2l0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqaSZhdW1sOyBvdmF0OiAnOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdQb2lzdGEga2Fpa2tpIHlsaSB2aWlrb24gdmFuaGF0IG1lcmtpbm4mYXVtbDt0JzsKJGxhbmdbJ3JlbW92ZTFtb250aCddID0gJ1BvaXN0YSBrYWlra2kgeWxpIGt1dWthdWRlbiB2YW5oYXQgbWVya2lubiZhdW1sO3QnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnUG9pc3RhIGthaWtraSBtZXJraW5uJmF1bWw7dCc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnT2xldGtvIHZhcm1hPyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ1ZpcmhlZWxsaW5lbiBrb29kaSwgb2xlIGh5diZhdW1sOyBqYSB5cml0JmF1bWw7IHV1ZGVsbGVlbic7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnViZhdW1sO2xpYWlrYWlzdGEga29vZGlhIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dHVubnVrc2VsbGUgZWkgbCZvdW1sO3l0eW55dCB0aWV0b2thbm5hc3RhJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3ZlcmlmeXRlbXBsYXRlJ10gPSAnUG9oamEgdmFodmlzdHVzbG9tYWtrZWVsbGUnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfZW1haWx0ZW1wbGF0ZSddID0gJ1BvaGphICZxdW90O3Vub2h0dW51dCBzYWxhc2FuYSZxdW90OyAtcyZhdW1sO2hrJm91bWw7cG9zdGlsbGUnOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ0pva28gc2luJmF1bWw7IHRhaSBqb2t1IG11dSBvbiBoYWx1bm51dCBub2xsYXRhIHNhbGFzYW5hbiB0JmF1bWw7bGxlIHRpbGlsbGUuIFRhcmtpc3RhIHMmYXVtbDtoayZvdW1sO3Bvc3Rpc2ksIGwmYXVtbDt5ZCZhdW1sO3Qgc2llbHQmYXVtbDsgamF0a28tb2hqZWV0IHNhbGFzYW5hbiBub2xsYWFtaXNlZW4nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ1RpZXRva2FudGF2aXJoZSc7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICdTYWl0IHQmYXVtbDttJmF1bWw7biB2aWVzdGluIGtvc2thIGpva3Ugb24gdmFsaW5udXQgc2l2dXN0b2x0YSAmcXVvdDt1bm9oZGl0a28gc2FsYXNhbmFuc2kmcXVvdDsgdG9pbWlubm9uLiBKb3MgdGVpdCB0JmF1bWw7bSZhdW1sO24gdG9pbWlubm9uIGl0c2UgbCZvdW1sO3lkJmF1bWw7dCBvaGplZXQgYWx0YS4gSm9zIGV0IHRpZWQmYXVtbDsgbWlzdCZhdW1sOyBwdWh1dGFhbiB2b2l0IHR1aG90YSB0JmF1bWw7bSZhdW1sO24gcG9zdGluLCBraWl0b2tzaWEgYWphc3Rhc2kuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnS29vZGknOwokbGFuZ1snbWVzc2FnZV9jb2RlJ10gPSAnU2V1cmFhdmEga29vZGkgb24gbHVvdHUgc2ludWxsZSwgayZhdW1sO3l0JmF1bWw7IGtvb2RpYSB2YWh2aXN0YWFrc2VzaSBldHQmYXVtbDsgb2xldCB0aWxpbiBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sOy4gS3VuIGtsaWtrYWF0IGFsbGEgb2xldmFhIGxpbmtraSZhdW1sOyBzaW51biB0YXJ2aXRzZWUgc3kmb3VtbDt0dCZhdW1sOyZhdW1sOyB0JmF1bWw7bSZhdW1sOyBrb29kaSBsb21ha2tlZXNlZW4uIFlsZWVucyZhdW1sOyBrZW50dCZhdW1sOyBvbiB2YWxtaWlrc2kgdCZhdW1sO3l0ZXR0eSwgbXV0dGEgam9zIGpvc3RhaW4gc3l5c3QmYXVtbDsgZWkgb2xlIGtvb2Rpc2kgb246JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnVCZhdW1sO20mYXVtbDsgbGlua2tpIHZpZSBzaW51dCBzaXZ1bGxlIGpvbm5lIHZvaXQgc3kmb3VtbDt0dCZhdW1sOyZhdW1sOyB5bGwmYXVtbDsgbWFpbml0dW4ga29vZGluIGphIG5vbGxhdGEgc2FsYXNhbmFzaSc7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnS2Fkb25udXQgc2FsYXNhbmEnOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdFaSB2b2l0dSBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IENNU01haWxlci1tb2R1dWxpYSc7CiRsYW5nWydpbmZvX2ZvcmdvdHB3bWVzc2FnZXNlbnQnXSA9ICdTaW51bGxlIG9uIGwmYXVtbDtoZXRldHR5IGVtYWlsLW9zb2l0dGVzZWVuICVzIGpvc3NhIG9uIHRpZWRvdCBtaXRlbiB2b2l0IG5vbGxhdGEgc2FsYXNhbmFzaS4nOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdVbm9oZGl0IHNpaXMgc2FsYXNhbmFzaT8gTm9oLCBraXJqb2l0YSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3R1bm51a3Nlc2kgdCZhdW1sO2gmYXVtbDtuIGphIGwmYXVtbDtoZXQmYXVtbDttbWUgdHVubnVrc2VuIHMmYXVtbDtoayZvdW1sO3Bvc3Rpb3NvaXR0ZWVzZWVuIHZpZXN0aW4gam9rYSBzaXMmYXVtbDtsdCZhdW1sOyZhdW1sOyBvaGplZXQgc2FsYXNhbmFzaSBub2xsYWFtaXNlZW4uJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3RlbXBsYXRlJ10gPSAnJnF1b3Q7VW5vaHR1bnV0IHNhbGFzYW5hJnF1b3Q7IC1wb2hqYSc7CiRsYW5nWydsb3N0dXNlcm5hbWVfdGVtcGxhdGUnXSA9ICcmcXVvdDtVbm9odHVudXQgayZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMmcXVvdDsgLXBvaGphJzsKJGxhbmdbJ2Vycm9yX3Byb3Bub3Rmb3VuZCddID0gJ09taW5haXN1dXR0YSAlcyBlaSBsJm91bWw7eWR5JzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdPbWluYWlzdXVrc2lhIGwmb3VtbDt5dHlueXQnOwokbGFuZ1snYWRkcHJvcCddID0gJ0xpcyZhdW1sOyZhdW1sOyBvbWluYWlzdXVzJzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICdWYWFkaXR0dSBrZW50dCZhdW1sOyAoJXMpIG9uIHR5aGomYXVtbDsnOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdTeSZvdW1sO3QmYXVtbDsgdXVzaSBzYWxhc2FuYSc7CiRsYW5nWydlcnJvcl9ub3Rsb2dnZWRpbiddID0gJ0V0IG9sZSBraXJqYXV0dW51dCc7CiRsYW5nWyd1c2VyX3NldHRpbmdzJ10gPSAnQXNldHVrc2V0JzsKJGxhbmdbJ3VzZXJfcmVnaXN0cmF0aW9uJ10gPSAnUmVraXN0ZXImb3VtbDtpbnRpJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnVCZhdW1sO20mYXVtbDsgdGlsbGkgb24gdmFuaGVudHVudXQnOwokbGFuZ1snZXJyb3JfaW1wcm9wZXJlbWFpbGZvcm1hdCddID0gJ0VtYWlsLW9zb2l0dGVlbiBtdW90byBvbiB2JmF1bWw7JmF1bWw7ciZhdW1sOyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZXhwaXJ5ZGF0ZSddID0gJ1ZpcmhlZWxsaW5lbiB2YW5oZW50dW1pc3AmYXVtbDtpdiZhdW1sOyc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ3Byb3BlcnR5J10gPSAnVmlyaGUgYXNldGV0dGFlc3NhIG9taW5haXN1dXR0YSAlcyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO2xsZSAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ1ZpcmhlZWxsaW5lbiByeWhtJmF1bWw7ICVzJzsKJGxhbmdbJ2hpZGRlbmZpZWxkbWFya2VyJ10gPSAnUGlpbG90ZXR0dSBrZW50dCZhdW1sOyAtbWVya2ludCZhdW1sOyc7CiRsYW5nWydoaWRkZW5maWVsZGNvbG9yJ10gPSAnUGlpbG90ZXR1biBrZW50JmF1bWw7biB2JmF1bWw7cmknOwokbGFuZ1snaGlkZGVuJ10gPSAnUGlpbG90ZXR0dSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnU2FtYWxsYSBuaW1lbGwmYXVtbDsgb24gam8gb21pbmFpc3V1cyc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdFaSBvbWluYWlzdXVrc2lhIG0mYXVtbDsmYXVtbDtyaXRlbHR5JzsKJGxhbmdbJ2Vycm9yX25vcmVsYXRpb25zJ10gPSAnVCZhdW1sO2xsZSByeWhtJmF1bWw7bGxlIGVpIG9sZSB2YWxpdHR1amEgb21pbmFpc3V1a3NpYSc7CiRsYW5nWydub2dyb3VwcyddID0gJ0VpIG0mYXVtbDsmYXVtbDtyaXRlbHR5aiZhdW1sOyByeWhtaSZhdW1sOyc7CiRsYW5nWydncm91cHNmb3VuZCddID0gJ1J5aG1pJmF1bWw7IGwmb3VtbDt5dHlpJzsKJGxhbmdbJ2Vycm9yX29uZWdyb3VwcmVxdWlyZWQnXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gdHVsZWUga3V1bHVhIHYmYXVtbDtoaW50JmF1bWw7JmF1bWw7biB5aHRlZW4gcnlobSZhdW1sOyZhdW1sO24nOwokbGFuZ1sncHJvbXB0X3JlcXVpcmVvbmVncm91cCddID0gJ1ZhYWRpIHYmYXVtbDtoaW50JmF1bWw7JmF1bWw7biB5a3NpIHJ5aG0mYXVtbDsgcGVyIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7JzsKJGxhbmdbJ2JhY2snXSA9ICdUYWthaXNpbic7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnJXMgb24gdmFhZGl0dHUga2VudHQmYXVtbDsnOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ01lcmtpdHNlIHZhYWRpdHV0IGtlbnQmYXVtbDt0IG1lcmtpbGwmYXVtbDsnOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnS29yb3N0YSB2YWFkaXR0dWphIGtlbnR0aSZhdW1sOyc7CiRsYW5nWyduZXh0J10gPSAnU2V1cmFhdmEnOwokbGFuZ1snZXJyb3JfZ3JvdXBleGlzdHMnXSA9ICdTYW1hbGxhIG5pbWVsbCZhdW1sOyBvbiBqbyByeWhtJmF1bWw7JzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnVmFhZGl0dHUga2VudHQmYXVtbDsnOwokbGFuZ1snb3B0aW9uYWwnXSA9ICdWYXBhYWVodG9pbmVuJzsKJGxhbmdbJ29mZiddID0gJ09mZic7CiRsYW5nWydzaXplJ10gPSAnS29rbyc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1ha3NpbWkga3V2YW4ga29rbyAobGV2ZXlzIGphIGtvcmtldXMpIHBpa3NlbGVpc3MmYXVtbDsgKSc7CiRsYW5nWydsZW5ndGgnXSA9ICdQaXR1dXMnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oTWVya2tlaiZhdW1sOyB0ZWtzdGkga2VudCZhdW1sO3NzJmF1bWw7KSc7CiRsYW5nWydzZWxvcHRpb25zJ10gPSAnQWxhc3ZldG92YWxpa29uIHZhbGlubmF0LCBqb2thaW5lbiBhcnZvIG9tYWxsYSByaXZpbGwmYXVtbDsmYXVtbDtuLiBBcnZvIHZvaWRhYW4gZXJvdHRhYSA9IG1lcmtpbGwmYXVtbDssIGVzaW0gTmFpbmVuPU4NCic7CiRsYW5nWydyYWRpb29wdGlvbnMnXSA9ICdSYWRpb2J1dHRvbiBsYWJlbHMsIHNlcGFyYXRlZCBieSBsaW5lIGJyZWFrcy4gVmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgZnJvbSB0ZXh0IHdpdGggYSA9IGNoYXJhY3Rlci4gaS5lOiBGZW1hbGU9Zic7CiRsYW5nWydwcm9tcHQnXSA9ICdLZWhvdGUnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUeXlwcGknOwokbGFuZ1sndHlwZSddID0gJ1R5eXBwaSc7CiRsYW5nWydmaWVsZHN0YXR1cyddID0gJ0tlbnQmYXVtbDtuIHRpbGEnOwokbGFuZ1sndXNlZGlubG9zdHVuJ10gPSAnQXNrIGluIExvc3Q8YnIvPlVzZXJuYW1lJzsKJGxhbmdbJ3RleHQnXSA9ICdUZWtzdGknOwokbGFuZ1snY2hlY2tib3gnXSA9ICdWYWxpbnRhbGFhdGlra28nOwokbGFuZ1snbXVsdGlzZWxlY3QnXSA9ICdNb25pdmFsaW50YSZxdW90O2xpc3RhJzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ1JhZGlvIEJ1dHRvbnMnOwokbGFuZ1snaW1hZ2UnXSA9ICdLdXZhJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRW1haWwtb3NvaXRlJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3RpYWx1ZSc7CiRsYW5nWydkcm9wZG93biddID0gJ0FsYXN2ZXRvdmFsaWtrbyc7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ1RlcnZldHVsb2EnOwokbGFuZ1snbG9nb3V0J10gPSAnS2lyamF1ZHUgdWxvcyc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAnSyZhdW1sO3l0JmF1bWw7IHQmYXVtbDt0JmF1bWw7IHJ5aG0mYXVtbDsgbmltZSZhdW1sOyc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdBc2V0dWtzZW5pJzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnS2lyamF1dHVtaW5lbiBlcCZhdW1sO29ubmlzdHVpIC0gdGFya2lzdGEgayZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMgamEgc2FsYXNhbmEnOwokbGFuZ1snbG9naW4nXSA9ICdLaXJqYXVkdSc7CiRsYW5nWydwcm9tcHRfc2lnbmluX2J1dHRvbiddID0gJ0tpcmphdWR1IHNpcyZhdW1sOyZhdW1sO24gLW5hcGluIG90c2lra28nOwokbGFuZ1sncHJvbXB0X3VzZXJuYW1lJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMnOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAnUyZhdW1sO2hrJm91bWw7cG9zdGlvc29pdGUnOwokbGFuZ1sncHJvbXB0X3Bhc3N3b3JkJ10gPSAnU2FsYXNhbmEnOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICdNdWlzdGEgbWludXQgdCZhdW1sO2xsJmF1bWw7IHRpZXRva29uZWVsbGEnOwokbGFuZ1sncmVnaXN0ZXInXSA9ICdSZWtpc3RlciZvdW1sO2lkeSc7CiRsYW5nWydmb3Jnb3RwdyddID0gJ1Vub2hkaXRrbyBzYWxhc2FuYXNpJzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ1Vub2hkaXRrbyBraXJqYXV0dW1pc3RpZXRvc2k/JzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAnT2xldHVrc2V0JzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnUG9oamEnOwokbGFuZ1snZXJyb3JfdXNlcm5vdGZvdW5kJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDsmYXVtbDsgZWkgbCZvdW1sO3l0eW55dCc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnVmFsaXRzZW1hc2kgayZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMgb24gam8gayZhdW1sO3l0Jm91bWw7c3MmYXVtbDsnOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ0smYXVtbDt5dCZhdW1sOyBTTVRQOnQmYXVtbDsgZW1haWwtb3NvaXR0ZWlkZW4gdGFya2lzdHVrc2Vzc2EnOwokbGFuZ1sncHJvbXB0X21pbnB3bGVuJ10gPSAnU2FsYXNhbmFuIG1pbmltaXBpdHV1cyc7CiRsYW5nWydwcm9tcHRfbWF4cHdsZW4nXSA9ICdTYWxhc2FuYW4gbWFrc2ltaXBpdHV1cyc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdLJmF1bWw7eXR0JmF1bWw7aiZhdW1sO3R1bm51a3NlbiBtaW5pbWlwaXR1dXMnOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udWtzZW4gbWFrc2ltaXBpdHV1cyc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdJc3R1bm5vbiBhaWtha2F0a2Fpc3UgKHNla3VudGVqYSknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ0smYXVtbDt5dCZhdW1sOyBrZWtzZWomYXVtbDsgcGl0JmF1bWw7JmF1bWw7a3Nlc2kga2lyamF1dHVtaXNlbiB5bGwmYXVtbDsnOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdTYWxsaSBlbWFpbC1yZWtpc3RlciZvdW1sO2ludGknOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ09sZXR1c3J5aG0mYXVtbDsgdXVzaWxsZSBrJmF1bWw7eXR0JmF1bWw7amlsbGUnOwokbGFuZ1snY2hhbmdlc2V0dGluZ3NfdGVtcGxhdGUnXSA9ICdWYWloZGEgYXNldHVrc2lhIC1wb2hqYSc7CiRsYW5nWydlcnJvcl9wYXNzd29yZG1pc21hdGNoJ10gPSAnU2FsYXNhbmF0IGVpdiZhdW1sO3Qgb2xlIHlodGVuZXYmYXVtbDt0JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7dHVubnVzIGVpIGtlbHBhYSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdTYWxhc2FuYSBlaSBrZWxwYWEnOwokbGFuZ1snZWRpdHVzZXInXSA9ICdNdW9ra2FhIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7JmF1bWw7JzsKJGxhbmdbJ3ZhbGlkJ10gPSAnS2VscGFhJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMnOwokbGFuZ1snc3RhdHVzJ10gPSAnVGlsYSc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICdUJmF1bWw7bSZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sOyBlaSBrdXVsdSBtaWhpbmsmYXVtbDsmYXVtbDtuIHJ5aG0mYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICdFaSBvbWluYWlzdXVrc2lhJzsKJGxhbmdbJ2Vycm9yX2R1cF9wcm9wZXJ0aWVzJ10gPSAnWXJpdCZhdW1sOyB0dW9kYSB0dXBsYW9taW5haXN1dWRldCc7CiRsYW5nWyd2YWx1ZSddID0gJ0Fydm8nOwokbGFuZ1snZ3JvdXBzJ10gPSAnUnlobSZhdW1sO3QnOwokbGFuZ1sncHJvcGVydGllcyddID0gJ09taW5haXN1dWRldCc7CiRsYW5nWydwcm9wbmFtZSddID0gJ09taW5haXN1dWRlbiBuaW1pJzsKJGxhbmdbJ3Byb3B2YWx1ZSddID0gJ09taW5haXN1dWRlbiBhcnZvJzsKJGxhbmdbJ2FkZCddID0gJ0xpcyZhdW1sOyZhdW1sOyc7CiRsYW5nWydoaXN0b3J5J10gPSAnSGlzdG9yaWEnOwokbGFuZ1snZWRpdCddID0gJ011b2trYWEnOwokbGFuZ1snZXhwaXJlcyddID0gJ1ZhbmhlbmVlJzsKJGxhbmdbJ3NwZWNpZnlfZGF0ZSddID0gJ00mYXVtbDsmYXVtbDtyaXR0ZWxlIHAmYXVtbDtpdiZhdW1sOyc7CiRsYW5nWycxMmhycyddID0gJzEyIHR1bnRpYSc7CiRsYW5nWycyNGhycyddID0gJzI0IHR1bnRpYSc7CiRsYW5nWyc0OGhycyddID0gJzQ4IHR1bnRpYSc7CiRsYW5nWycxd2VlayddID0gJzEgdmlpa2tvJzsKJGxhbmdbJzJ3ZWVrcyddID0gJzIgdmlpa2tvYSc7CiRsYW5nWycxbW9udGgnXSA9ICcxIGt1dWthdXNpJzsKJGxhbmdbJzNtb250aHMnXSA9ICczIGt1dWthdXR0YSc7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiBrdXVrYXV0dGEnOwokbGFuZ1snMXllYXInXSA9ICcxIHZ1b3NpJzsKJGxhbmdbJ25ldmVyJ10gPSAnRWkga29za2Fhbic7CiRsYW5nWydwb3N0aW5zdGFsbG1lc3NhZ2UnXSA9ICdNb2R1bGUgaW5zdGFsbGVkIHN1Y2Vzc2Z1bGx5Ljxici8+QmUgc3VyZSB0byBzZXQgdGhlIFwmcXVvdDtNb2RpZnkgRnJvbnRFbmRVc2VyIFByb3BlcnRpZXMgcGVybWlzc2lvbi4gIEFkZGl0aW9uYWxseSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiAgSWYgaW5zdGFsbGVkLCB2YWxpZGF0aW9uIG9mIGEgY2FwdGNoYSBpbWFnZSB3aWxsIGJlIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgdG8gbG9naW4uICBUaGlzIGlzIGludGVuZGVkIHRvIHByZXZlbnQgYnJ1dGUgZm9yY2UgYXR0YWNrcy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIG5vY2FwdGNoYSBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZXZlbiBpZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLlwmcXVvdDsnOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdTYWxhc2FuYSc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ1V1ZGVzdGFhbic7CiRsYW5nWydlcnJvcl9ncm91cG5hbWVfZXhpc3RzJ10gPSAnTmltZWxsJmF1bWw7IG9uIGpvIHJ5aG0mYXVtbDsnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnTXVva2thYSByeWhtJmF1bWw7JmF1bWw7JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0wmYXVtbDtoZXQmYXVtbDsnOwokbGFuZ1snY2FuY2VsJ10gPSAnUGVydXV0YSc7CiRsYW5nWydkZWxldGUnXSA9ICdQb2lzdGEnOwokbGFuZ1snY29uZmlybV9lZGl0Z3JvdXAnXSA9ICdBcmUgeW91IHN1cmUgdGhpcyBpcyB0aGUgcHJvcGVyIHNldHRpbmdzIGZvciB0aGlzIGdyb3VwP1xuVHVybmluZyBhIHByb3BlcnR5IG9mZiB3aWxsIG5vdCBkZWxldGUgYW55IGVudHJpZXMgaW4gdGhlIHByb3BlcnRpZXMgdGFibGUgZm9yIHRoaXMgZ3JvdXAvdXNlci4gIFRoZXkgd2lsbCBtZXJlbHkgYmUgdW5hdmFpbGFibGUuJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlZ3JvdXAnXSA9ICdIYWx1YXRrbyB2YXJtYXN0aSBwb2lzdGFhIHQmYXVtbDttJmF1bWw7biByeWhtJmF1bWw7JmF1bWw7bic7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9wcm9wJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbXBsZXRlbHkgZGVsZXRlIHRoaXMgcHJvcGVydHk/XG5Eb2luZyBzbyB3aWxsIGFsc28gZXJhc2UgYW55IHVzZXIgZW50cmllcyBmb3IgdGhpcyBwcm9wZXJ0eS4nOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnUmlpdHQmYXVtbDttJmF1bWw7dHQmb3VtbDttJmF1bWw7dCBwYXJhbWV0cml0JzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snbmFtZSddID0gJ05pbWknOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdPbmdlbG1hIG9taW5haXN1dWRlbiBsaXMmYXVtbDt5a3Nlc3MmYXVtbDsnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwcmVsbiddID0gJ1J5aG0mYXVtbDtsaWl0b2tzZW4gbGlzJmF1bWw7JmF1bWw7bWlzZXNzYSBlc2lpbnR5aSBvbmdlbG1hJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ09uZ2VsbWEgcnlobSZhdW1sO24gbGlzJmF1bWw7JmF1bWw7bWlzZXNzJmF1bWw7JzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnT25nZWxtYSBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gbGlzJmF1bWw7JmF1bWw7bWlzZXNzJmF1bWw7IHJ5aG0mYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZGVsZXRlcHJvcGVydHknXSA9ICdPbmdlbG1hIG9taW5haXN1dWRlbiBwb2lzdGFtaXNlc3NhJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnRW1haWwgb3NvaXRldHRhIGVpIGwmb3VtbDt5ZGV0dHknOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ0tvaGRlIGthbnNpb29uIGVpIG9sZSBraXJqb2l0dXNvaWtldXR0YSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnVmlyaGVlbGxpc2V0IHBhcmFtZXRyaXQnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHMnXSA9ICdSeWhtaSZhdW1sOyBlaSBsJm91bWw7eXR5bnl0JzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnQXNldGEnOwokbGFuZ1snZmlsdGVyJ10gPSAnU3VvZGF0YSc7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDt0dW5udXMgKHJlZ3VsYXIgZXhwcmVzc2lvbiknOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdLdXZhdXMnOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnUnlobSZhdW1sO24gbmltaSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdQJmF1bWw7JmF1bWw7c3kga2llbGxldHR5JzsKJGxhbmdbJ2Vycm9yJ10gPSAnVmlyaGUnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdMaXMmYXVtbDsmYXVtbDsgcnlobSZhdW1sOyc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ1R1byByeWhtJmF1bWw7JzsKJGxhbmdbJ2FkZHVzZXInXSA9ICdMaXMmYXVtbDsmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDsnOwokbGFuZ1sndXNlcnNmb3VuZCddID0gJ0hha3VlaHRvaWhpbiBzb3BpdmF0IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7dCc7CiRsYW5nWydncm91cCddID0gJ1J5aG0mYXVtbDsnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdWYWxpdHR1IHJ5aG0mYXVtbDsnOwokbGFuZ1sncmVnaXN0cmF0aW9uX3RlbXBsYXRlJ10gPSAnUmVraXN0ZXImb3VtbDtpbnRpIHBvaGphJzsKJGxhbmdbJ2xvZ291dF90ZW1wbGF0ZSddID0gJ0tpcmphdWR1IHVsb3MgcG9oamEnOwokbGFuZ1snbG9naW5fdGVtcGxhdGUnXSA9ICdLaXJqYXV0dW1pcyBwb2hqYSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0FzZXR1a3NldCc7CiRsYW5nWyd1c2VycyddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7dCc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdGcm9udGVuZCBVc2VyIE1hbmFnZW1lbnQnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdTYWxsaWkgayZhdW1sO3l0dCZhdW1sO2ppZW4ga2lyamF1dHVhIHNpdnVzdG9sbGVzaSc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnT2xldHVzIGV0dXNpdnUnOwokbGFuZ1snbGFzdGFjY2Vzc2VkcGFnZSddID0gJ1ZpaW1la3NpIGsmYXVtbDt5dHkgc2l2dSc7CiRsYW5nWydvdGhlcnBhZ2UnXSA9ICdUb2luZW4gc2l2dTogJzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdTeSZvdW1sO3QmYXVtbDsga3V2YXNzYSBuJmF1bWw7a3l2JmF1bWw7IHRla3N0aSc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3Byb21wdF9mb3JjZV9jaHNldHRpbmdzJ10gPSAnRm9yY2VyIGxcJ3V0aWxpc2F0ZXVyIMOgIG1vZGlmaWVyIHNlcyBwYXJhbcOodHJlcyDDoCBsYSBwcm9jaGFpbmUgY29ubmV4aW9uwqAnOwokbGFuZ1snZmV1X3Byb3RlY3RlZF9zZWN0aW9uaGVhZCddID0gJ0VudMOqdGUgZGUgc2VjdGlvbiBwcm90w6lnw6llJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9iYWRwYXNzd29yZCddID0gJ0xlIG1vdCBkZSBwYXNzZSBmb3VybmkgZXN0IGluY29ycmVjdC4nOwokbGFuZ1snZXJyb3JfbG9zdHVuX3VzZXJub3Rmb3VuZCddID0gJ0xlcyBpbmZvcm1hdGlvbnMgZm91cm5pZXMgbmUgcGVybWV0dGVudCBwYXMgZFwnYWNjw6lkZXIgYXUgY29tcHRlIGNsaWVudC4nOwokbGFuZ1snZXJyb3JfbG9zdHVuX25vZGF0YSddID0gJ1ZvdXMgblwnYXZleiBwYXMgZW50csOpIHN1ZmZpc2FtbWVudCBkXCdpbmZvcm1hdGlvbiBwb3VyIG5vdXMgcGVybWV0dHJlIGRlIHJldHJvdXZlciB2b3RyZSBjb21wdGUuJzsKJGxhbmdbJ2luZm9fbG9zdHVuX3RleHRmaWVsZCddID0gJ1NpIHZvdXMgcG91dmV6IG1ldHRyZSB1bmUgcGFydGllIGR1IHRleHRlIHBvdXIgY2UgY2hhbXAgKHVuIG1pbmltdW0gZGUgNCBjYXJhY3TDqHJlcywgZXNwYWNlcyBub24gY29tcHJpcyknOwokbGFuZ1snaW5mb19sb3N0dW5fdGV4dGFyZWEnXSA9ICdTaSB2b3VzIHBvdXZleiBtZXR0cmUgdW5lIHBhcnRpZSBkdSB0ZXh0ZSBwb3VyIGNlIGNoYW1wLiBDZWxhIHZhIGNyw6llciB1bmUgcmVjaGVyY2hlIGRlIHNvdXMtY2hhw65uZS4gVm91cyBkZXZleiBzYWlzaXIgYXUgbW9pbnMgNCBjYXJhY3TDqHJlcy4nOwokbGFuZ1snaW5mb19sb3N0dW5fZW1haWwnXSA9ICdTXCdpbCB5IGEgcGx1c2lldXJzIGFkcmVzc2VzIGUtbWFpbCBhc3NvY2nDqWVzIMOgIHZvdHJlIGNvbXB0ZSwgZXNzYXllciBkXCdlbnRyZXIgYXUgbW9pbnMgbFwndW5lIGRcJ2VudHJlIGVsbGVzIGljaS4gQ2VsYSBwZXV0IGFpZGVyIMOgIHZvdXMgaWRlbnRpZmllci4nOwokbGFuZ1snaW5mb19sb3N0dXNlcm5hbWUnXSA9ICc8cD5BbG9ycy4uLiB2b3VzIHNlbWJsZXogYXZvaXIgb3VibGnDqSBvdSBwZXJkdSBsXCdhZHJlc3NlIGVtYWlsIHF1ZSB2b3VzIHV0aWxpc2V6IHBvdXIgdm91cyBjb25uZWN0ZXIgw6AgY2UgY29tcHRlLiBOZSB2b3VzIGlucXVpw6l0ZXogcGFzLCBub3VzIHBvdXZvbnMgdm91cyBhaWRlci48L3A+PHA+RW50cmV6IGF1dGFudCBkXCdpbmZvcm1hdGlvbnMgcXVlIHBvc3NpYmxlIGRhbnMgY2UgZm9ybXVsYWlyZSwgZXQgbm91cyBhbGxvbnMgdm9pciBzaSBub3VzIHBvdXZvbnMgdm91cyBpZGVudGlmaWVyLjwvcD4nOwokbGFuZ1snZXJyb3JfeW91YXJlYWJvdCddID0gJ0htbW0uLi4gaWwgc2VtYmxlIHF1ZSB2b3VzIHBvdXZleiDDqnRyZSB1biBib3QsIG91IGVzc2F5ZXIgcXVlbHF1ZSBjaG9zZSBkZSBwYXMgdHLDqHMgYmllbi4uLic7CiRsYW5nWydlcnJvcl9kZWxldGVwcm9wJ10gPSAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbGEgc3VwcHJlc3Npb24gZGUgbGEgcHJvcHJpw6l0w6knOwokbGFuZ1snZXJyb3JfYWN0aW9uX25vdGNvbmZpcm1lZCddID0gJ09vcHMuIElsIHNlbWJsZSBxdWUgdm91cyBuZSBwYXJ2ZW5leiBwYXMgw6AgY29uZmlybWVyIHVuZSBhY3Rpb24gaW1wb3J0YW50ZS4nOwokbGFuZ1snbXNnX2NvbmZpcm1fZGVsZXRlcHJvcCddID0gJ1ZvdXMgZGV2ZXogc8OpbGVjdGlvbm5lciAiT3VpIiBkYW5zIGxhIGJvw650ZSBkZSBjb25maXJtYXRpb24gcG91ciBjb25maXJtZXIgcXVlIHZvdXMgc291aGFpdGV6IHN1cHByaW1lciBjZXR0ZSBwcm9wcmnDqXTDqS4nOwokbGFuZ1sncHJvbXB0X2NvbmZpcm1fZGVsZXRlcHJvcCddID0gJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBjZXR0ZSBwcm9wcmnDqXTDqSA/JzsKJGxhbmdbJ3dhcm5fZGVsZXRlcHJvcCddID0gJzxzdHJvbmc+RmFpdGVzIGF0dGVudGlvbjwvc3Ryb25nPiBMYSBzdXBwcmVzc2lvbiBkXCd1bmUgcHJvcHJpw6l0w6kgc3VwcHJpbWUgbGVzIGRvbm7DqWVzIGFzc29jacOpZXMgw6AgdG91cyBsZXMgdXRpbGlzYXRldXJzIGRlIGNldHRlIHByb3ByacOpdMOpLiBJbCBzZXJhIMOpZ2FsZW1lbnQgcmV0aXJlciBjZXR0ZSBwcm9wcmnDqXTDqSBkZSB0b3V0ZXMgbGVzIHJlbGF0aW9ucyBkZSBncm91cGUuJzsKJGxhbmdbJ2hkcl9kZWxldGVwcm9wJ10gPSAnU3VwcHJpbWVyIGxhIHByb3ByacOpdMOpJzsKJGxhbmdbJ21zZ19jYW5jZWxsZWQnXSA9ICdPcMOpcmF0aW9uIGFubnVsw6llJzsKJGxhbmdbJ2Vycm9yX2RlbGV0ZV9wcm9wZGVmbiddID0gJ0TDqXNvbMOpLCBtYWlzIGNldHRlIHByb3ByacOpdMOpIG5lIHBldXQgcGFzIMOqdHJlIHN1cHByaW3DqWUuIEVsbGUgdXRpbGlzw6llLCBwYXIgdW4gb3UgcGx1c2lldXJzIGdyb3VwZXMgZFwndXRpbGlzYXRldXJzLiBTZXVscyBsZXMgcHJvcHJpw6l0w6lzIG9wdGlvbm5lbGxlcyAvb2ZmIHBldXZlbnQgw6p0cmUgc3VwcHJpbcOpcy4nOwokbGFuZ1sndGl0bGVfYWRkX3VzZXInXSA9ICdDcsOpZXIgdW4gbm91dmVhdSBjb21wdGUgZFwndXRpbGlzYXRldXInOwokbGFuZ1snaW5mb19wYXNzd29yZF9yZXNldCddID0gJ1ZvdHJlIG1vdCBkZSBwYXNzZSBhIMOpdMOpIHLDqWluaXRpYWxpc8OpIGF2ZWMgc3VjY8Oocy4gU1wnaWwtdm91cyBwbGHDrnQgY29ubmVjdGV6LXZvdXMgcG91ciBjb250aW51ZXIuJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3Jkbm90Y2hhbmdlZCddID0gJ1NcJ2lsIHZvdXMgcGxhw650IGFzc3VyZXotdm91cyBkXCdhdm9pciBjaGFuZ2VyIHZvdHJlIG1vdCBkZSBwYXNzZSwgZXQgdsOpcmlmaWV6IHF1XCdpbCBzb2l0IGNvcnJlY3QuJzsKJGxhbmdbJ21zZ19mb3JjZV9uZXdwdyddID0gJ0JpZW52ZW51ZSBkYW5zIGxlIHN5c3TDqG1lLiBQb3VyIGRlcyByYWlzb25zIGRlIHPDqWN1cml0w6ksIHNcJ2lsIHZvdXMgcGxhw650IHNww6ljaWZpZXIgdW4gbm91dmVhdSBtb3QgZGUgcGFzc2UuJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQnOwokbGFuZ1snaW5mb19mb3JjZV9uZXdwd190ZW1wbGF0ZSddID0gJ0NlIGdhYmFyaXQgZXN0IHV0aWxpc8OpIHBvdXIgYWZmaWNoZXIgbGUgZm9ybXVsYWlyZSBxdWkgZm9yY2UgbFwndXRpbGlzYXRldXIgw6AgY2hhbmdlciBzb24gbW90IGRlIHBhc3NlLic7CiRsYW5nWydmb3JjZV9uZXdwd190ZW1wbGF0ZSddID0gJ0ZvcmNlIE5ldyBQYXNzd29yZCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfZm9yY2VfbmV3cHcnXSA9ICdGb3JjZXIgbFwndXRpbGlzYXRldXIgw6AgcsOpaW5pdGlhbGlzZXIgc29uIG1vdCBkZSBwYXNzZSDDoCBsYSBwcm9jaGFpbmUgY29ubmV4aW9uwqAnOwokbGFuZ1sncHJvbXB0X2Rpc2FibGVkJ10gPSAnQ2UgY29tcHRlIGVzdC1pbCBkw6lzYWN0aXbDqSA/JzsKJGxhbmdbJ21zZ191c2VyX3N0YXRlX2NoYW5nZWQnXSA9ICdTdGF0dXQgZGUgbFwndXRpbGlzYXRldXIgbW9kaWZpw6knOwokbGFuZ1snaW5mb19kaXNhYmxlZCddID0gJ0NlIGNvbXB0ZSB1dGlsaXNhdGV1ciBlc3QgZMOpc2FjdGl2w6ksIGVtcMOqY2hhbnQgbGEgY29ubmV4aW9uJzsKJGxhbmdbJ2VuYWJsZV91c2VyJ10gPSAnQWN0aXZlciBjZSBjb21wdGUgdXRpbGlzYXRldXInOwokbGFuZ1snZGlzYWJsZV91c2VyJ10gPSAnRMOpc2FjdGl2ZXIgY2UgY29tcHRlIHV0aWxpc2F0ZXVyIGV0IHZlaWxsZXIgw6AgY2UgcXVlIGxcJ3V0aWxpc2F0ZXVyIHNvaXQgZMOpY29ubmVjdMOpJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRkaXNhYmxlZCddID0gJ05vdXMgc29tbWVzIGTDqXNvbMOpcywgbWFpcyBjZSBjb21wdGUgc2VtYmxlIGF2b2lyIMOpdMOpIGTDqXNhY3RpdsOpLiBTXCdpbCB2b3VzIHBsYcOudCBjb250YWN0ZXIgbGVzIGFkbWluaXN0cmF0ZXVycyBkdSBzaXRlIHBvdXIgcsOpc291ZHJlIGNlIHByb2Jsw6htZSc7CiRsYW5nWyd0aXRsZV9mb3Jnb3RwdyddID0gJ01vdCBkZSBwYXNzZSBvdWJsacOpJzsKJGxhbmdbJ3ZlcmlmeV9pZGVudGl0eSddID0gJ1bDqXJpZmllciB2b3RyZSBpZGVudGl0w6knOwokbGFuZ1snNDAzZXJyb3InXSA9ICdHw6luw6lyZXIgdW5lIGVycmV1ciA0MDMnOwokbGFuZ1sncHJvbXB0X2VuaGFuY2VkcHcnXSA9ICdFeGlnZXIgdW4gbW90IGRlIHBhc3NlIGZvcnQmbmJzcDsnOwokbGFuZ1snaW5mb19lbmhhbmNlZHB3J10gPSAnU2kgYWN0aXbDqSwgbGVzIG1vdHMgZGUgcGFzc2UgZGV2cm9udCBhdm9pciBhdSBtb2lucyB1biBjYXJhY3TDqHJlIGFscGhhYsOpdGlxdWUsIHVuZSBtYWp1c2N1bGUgZXQgdW4gY2hpZmZyZS4nOwokbGFuZ1sncHJvbXB0X3B3cmVxdWlyZWRjaGFycyddID0gJ0V4aWdlciB1biBkZSBjZXMgY2FyYWN0w6hyZXMgZGFucyBsZSBtb3QgZGUgcGFzc2UmbmJzcDsnOwokbGFuZ1snaW5mb19wd3JlcXVpcmVkY2hhcnMnXSA9ICdTaSBsZXMgbW90cyBkZSBwYXNzZSBub24gdmlkZXMgZXQgZm9ydHMgc29udCBhY3RpdsOpcywgYXUgbW9pbnMgbFwndW4gZGVzIGNhcmFjdMOocmVzIHNww6ljaWZpw6lzIHNlcm9udCBuw6ljZXNzYWlyZXMgZGFucyBsZSBtb3QgZGUgcGFzc2UgZW4gcGx1cyBkZXMgZXhpZ2VuY2VzIGRlIG1vdCBkZSBwYXNzZSBmb3J0cyc7CiRsYW5nWydlcnJvcl9jYW50c2V0cHJvcGVydHl0eXBlJ10gPSAnVm91cyBuZSBwb3V2ZXogcGFzIGTDqWZpbmlyIGxhIHByb3ByacOpdMOpIGRlIGNlIHR5cGUnOwokbGFuZ1snaW5mb19pbXBvcnRfZm9ybWF0J10gPSAnPHA+UG91ciBpbmZvcm1hdGlvbiBzdXIgbGUgZm9ybWF0IGRcJ2ltcG9ydCwgdm91cyBkZXZyaWV6IGNyw6llciB1biB1dGlsaXNhdGV1ciAob3UgZGV1eCkgZXhlbXBsZSBkYW5zIGxlcyBncm91cGVzIHNvdWhhaXTDqXMgZXQgZXhwb3J0ZXIgY2V0dGUgaW5mb3JtYXRpb24uIExlIGZpY2hpZXIgYWluc2kgY3LDqcOpIHBldXQgw6p0cmUgdXRpbGlzw6kgY29tbWUgdW4gZ2FiYXJpdCBwb3VyIGxlcyBwcm9jaGFpbnMgaW1wb3J0cy48L3A+PGJyLz4NCiA8cD5EZSBwbHVzLCB1bmUgY29sb25uZSAidHh0cGFzc3dvcmQiIHBldXQgw6p0cmUgYWpvdXTDqWUgYXUgZmljaGllciBkXCdpbXBvcnQgcG91ciBkw6lmaW5pciAoZW4gZm9ybWF0IHRleHRlKSBsZSBtb3QgZGUgcGFzc2UgZGVzIHV0aWxpc2F0ZXVycy4gU2kgbGEgY29sb25uZSAidHh0cGFzc3dvcmQiIGVzdCB2aWRlIHBvdXIgdW4gdXRpbGlzYXRldXIgZXhpc3RhbnQsIHNvbiBtb3QgZGUgcGFzc2UgbmUgc2VyYSBwYXMgdG91Y2jDqS4gU2kgY2V0dGUgY29sb25uZSBlc3QgdmlkZSBwb3VyIHVuIG5vdXZlbCB1dGlsaXNhdGV1ciwgb3Ugbm9uIHByw6lzZW50ZSwgbGUgbW90IGRlIHBhc3NlIGNvZMOpICJjaGFuZ2VtZSIgZXN0IHV0aWxpc8OpLic7CiRsYW5nWydpbXBvcnRfZGVsZXRlZHVzZXInXSA9ICdVdGlsaXNhdGV1ciBzdXBwcmltw6kgJXMnOwokbGFuZ1snZXJyb3JfZXhwb3J0X25vdXNlcnMnXSA9ICdBdWN1biB1dGlsaXNhdGV1ciB0cm91dsOpIMOgIGV4cG9ydGVyJzsKJGxhbmdbJ3Byb21wdF9leHBvcnRfdXNlcnMnXSA9ICdFeHBvcnRlciBsZXMgdXRsaXNhdGV1cnMnOwokbGFuZ1sndGl0bGVfZXhwb3J0X3VzZXJzJ10gPSAnRXhwb3J0ZXIgZGVzIHV0aWxpc2F0ZXVycyBkYW5zIHVuIGZpY2hpZXIgQVNDSUknOwokbGFuZ1snaW5mb19lbmNyeXB0J10gPSAnbGVzIHByb3ByacOpdMOpcyBjcnlwdMOpZXMgbmUgcGV1dmVudCBwYXMgw6p0cmUgZXhwb3J0w6lzIGVuIEFTQ0lJIG91IGNvbnN1bHTDqWVzIHBhciB1biBhZG1pbmlzdHJhdGV1ci4gSWxzIG5lIHBldXZlbnQgw6p0cmUgbW9kaWZpw6lzIHBhciBsXCd1dGlsaXNhdGV1ciBhdXRvcmlzw6kuJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGdyb3VwbmFtZSddID0gJ05vbSBkZSBncm91cGUgc3DDqWNpZmnDqSBpbnZhbGlkZSBvdSB2aWRlJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9jb2x1bW5jb3VudCddID0gJ05vbWJyZSBkZSBjb2xvbm5lcyBpbmNvcnJlY3QnOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0TDqWxpbWl0ZXVyJzsKJGxhbmdbJ2Vycm9yX2NyZWF0ZXRtcGZpbGUnXSA9ICdQcm9ibMOobWUgZGUgY3LDqWF0aW9uIGR1IGZpY2hpZXIgdGVtcG9yYWlyZSc7CiRsYW5nWydwcm9tcHRfZGVsZXRlX3VzZXJzJ10gPSAnU3VwcHJpbWVyIGRlcyB1dGlsaXNhdGV1cnMgc3VwcGzDqW1lbnRhaXJlcyc7CiRsYW5nWydpbmZvX2ltcG9ydF9kZWxldGVfdXNlcnMnXSA9ICdJZiBlbmFibGVkLCBhbmQgb25seSA8c3Ryb25nPm9uZSB1c2VyIGdyb3VwPC9zdHJvbmc+IGlzIG1lbnRpb25lZCBpbiB0aGUgaW1wb3J0IGZpbGUsIHVzZXJzIHRoYXQgYXJlIG1lbWJlcnMgb2YgdGhhdCB1c2VyIGdyb3VwIGJ1dCBub3QgbWVudGlvbmVkIGluIHRoZSBpbXBvcnQgZmlsZSwgd2lsbCBiZSBkZWxldGVkLiAgQ2F1dGlvbiBzaG91bGQgYmUgdXNlZCBoZXJlLCBhcyBubyBjaGVja3MgYXJlIGRvbmUgdG8gc2VlIGlmIHRoZSBkZWxldGVkIHVzZXJzIGFyZSBtZW1iZXJzIG9mIGFueSBvdGhlciBncm91cHMuJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF91c2VycyddID0gJ0ltcG9ydGVyIGRlcyB1dGlsaXNhdGV1cnMgw6AgcGFydGlyIGRcJ3VuIGZpY2hpZXIgZGUgdHlwZSBDU1YnOwokbGFuZ1snZnJvbnRlbmRfYWNjZXNzJ10gPSAnVXRpbGlzYXRldXJzJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub2NvbnRyb2xzJ10gPSAnSW1wb3NzaWJsZSBkXCdhZmZpY2hlciBsZSBmb3JtdWxhaXJlIGRlIHLDqWN1cMOpcmF0aW9uIGRlcyBkw6l0YWlscyBkXCdpZGVudGlmaWFudCBhZmZpY2hlciBsZSBkZXJuaWVyIG5vbSBkXCd1dGlsaXNhdGV1ci4uLiBwYXMgZGUgY2hhbXBzIGFwcHJvcHJpw6lzIHRyb3V2w6kgcG91ciBhZmZpY2hlcic7CiRsYW5nWydpbmZvX2ZpbHRlcl9zb3J0YnknXSA9ICc8c3Ryb25nPiBOb3RlOiA8L3N0cm9uZz4gTGUgdHJpIGRlcyBjb2xvbm5lcyBmb3VybmlyYSB1biB0cmkgc3VwcGzDqW1lbnRhaXJlIHN1ciBsZXMgw6lsw6ltZW50cyBjb3JyZXNwb25kYW50cyc7CiRsYW5nWydhbnknXSA9ICdBdWN1bic7CiRsYW5nWydzb3J0YnlfdXNlcm5hbWVfYXNjJ10gPSAnTm9tIGRcJ3V0aWxpc2F0ZXVyIChhc2NlbmRhbnQpJzsKJGxhbmdbJ3NvcnRieV91c2VybmFtZV9kZXNjJ10gPSAnTm9tIGRcJ3V0aWxpc2F0ZXVyIChkZXNjZW5kYW50KSc7CiRsYW5nWydzb3J0YnlfY3JlYXRlX2FzYyddID0gJ0RhdGUgZFwnZXhwaXJhdGlvbiAoYXNjZW5kYW50KSc7CiRsYW5nWydzb3J0YnlfY3JlYXRlX2Rlc2MnXSA9ICdEYXRlIGRcJ2V4cGlyYXRpb24gKGRlc2NlbmRhbnQpJzsKJGxhbmdbJ3NvcnRieV9leHBpcmVzX2FzYyddID0gJ0RhdGUgZFwnZXhwaXJhdGlvbiAoYXNjZW5kYW50KSc7CiRsYW5nWydzb3J0YnlfZXhwaXJlc19kZXNjJ10gPSAnRGF0ZSBkXCdleHBpcmF0aW9uIChkZXNjZW5kYW50KSc7CiRsYW5nWydpbmZvX2VuY3J5cHRlZCddID0gJ0xlcyBwcm9wcmnDqXTDqXMgY3J5cHTDqWVzIG5lIHBldXZlbnQgw6p0cmUgdnVzIGV0IMOpZGl0w6lzIHF1ZSBwYXIgbFwndXRpbGlzYXRldXIuIFBhcyBtw6ptZSBsXCdhZG1pbmlzdHJhdGV1ciBkdSBzaXRlIHBldXQgdm9pciBvdSBnw6lyZXIgY2VzIGRvbm7DqWVzLic7CiRsYW5nWydlbmNyeXB0ZWQnXSA9ICdDcnlwdMOpJzsKJGxhbmdbJ2luZm9fY29va2llbmFtZSddID0gJ1NpIGNvY2jDqSwgbGEgZm9uY3Rpb25uYWxpdMOpICJzZSBzb3V2ZW5pciBkZSBtb2kiIGVzdCBhY3RpdsOpZS4gQ2VjaSBlc3Qgc2ltaWxhaXJlIMOgIGxhIGZvbmN0aW9ubmFsaXTDqSBrZWVwLWFsaXZlIGR1IGNvb2tpZSwgbWFpcyBwZXV0IGR1cmVyIGp1c3F1XCfDoCA2MCBqb3Vycy4nOwokbGFuZ1snbXNnX3VzZXJuYW1lX3JlYWRvbmx5J10gPSAnTFwnYXV0aGVudGlmaWNhdGlvbiBkZSBs4oCZdXRpbGlzYXRldXIgbmUgcGVybWV0IHBhcyBkZSBjaGFuZ2VyIGxlIG5vbSBkXCd1dGlsaXNhdGV1ciBkZSBjZSBjb21wdGUnOwokbGFuZ1snbXNnX3Bhc3N3b3JkX3JlYWRvbmx5J10gPSAnTFwnYXV0aGVudGlmaWNhdGlvbiBkZSBs4oCZdXRpbGlzYXRldXIgbmUgcGVybWV0IHBhcyBkZSBjaGFuZ2VyIGxlIG1vdCBkZSBwYXNzZSBkZSBjZSBjb21wdGUnOwokbGFuZ1sncHJvbXB0X25vcm1hbGxvZ2luJ10gPSAnTG9naW4gZGlyZWN0wqAnOwokbGFuZ1snbW92ZV91cCddID0gJ0TDqXBsYWNlciB2ZXJzIGxlIGhhdXQnOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnRMOpcGxhY2VyIHZlcnMgbGUgYmFzJzsKJGxhbmdbJ3RpdGxlX3Byb3Btb2R1bGUnXSA9ICdDZXR0ZSBwcm9wcmnDqXTDqSBlc3QgY3LDqcOpIHBhciB1biBtb2R1bGUsIGV0IG5lIHBldXQgcGFzIMOqdHJlIG1vZGlmacOpZSc7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnTm9uIGRpc3BvbmlibGUnOwokbGFuZ1sncHJvbXB0X2RmbHRfY2hlY2tlZCddID0gJ1BhciBkw6lmYXV0LCBjZSBjaGFtcCBkb2l0IMOqdHJlIGNvY2jDqSc7CiRsYW5nWydvcGVyYXRpb25fY29tcGxldGVkJ10gPSAnT3DDqXJhdGlvbiBjb21wbMOpdMOpZSc7CiRsYW5nWydtZW1iZXJzJ10gPSAnTWVtYnJlcyc7CiRsYW5nWyd2aWV3X2ZpbHRlciddID0gJ1ZvaXIgbGVzIGZpbHRyZXMnOwokbGFuZ1snZGF0YSddID0gJ0Rvbm7DqWVzJzsKJGxhbmdbJ2FwcGxpZWQnXSA9ICdBcHBsaXF1w6knOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdlwqAnOwokbGFuZ1sncHJvbXB0X2FsbG93X2NoYW5nZXVzZXJuYW1lJ10gPSAnQXV0b3Jpc2VyIGxlIGNoYW5nZW1lbnQgZFwnaWRlbnRpZmlhbnQgcGFyIGxlcyBtZW1icmVzJm5ic3A7JzsKJGxhbmdbJ2luZm9fYWxsb3dfY2hhbmdldXNlcm5hbWUnXSA9ICdTaSBjZWxhIGVzdCBhdXRvcmlzw6ksIGxlcyB1dGlsaXNhdGV1cnMgcG91cnJvbnQgbW9kaWZpZXIgbGV1ciBpZGVudGlmaWFudCBlbiBtw6ptZSB0ZW1wcyBxdWVsIGxldXJzIGF1dHJlcyBwYXJhbcOodHJlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9zYXZlZCddID0gJ0dhYmFyaXQgZW5yZWdpc3Ryw6knOwokbGFuZ1sndGVtcGxhdGVfcmVzZXRkZWZhdWx0cyddID0gJ0dhYmFyaXQgcsOpaW5pdGlhbGlzw6knOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnUsOpZ2xhZ2VzJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyc7CiRsYW5nWydlbmFibGVfY2FwdGNoYSddID0gJ0FjdGl2ZXIgbGUgY2FwdGNoYSBzdXIgbGUgZm9ybXVsYWlyZSBkZSBjb25uZXhpb24nOwokbGFuZ1snaW5mb19lbmFibGVfY2FwdGNoYSddID0gJ1NpIGxcJ3V0aWxpc2F0ZXVyIG5cJ2VzdCBwYXMgY29ubmVjdMOpLCBldCBsZXMgcHLDqWbDqXJlbmNlcyBkdSBtb2R1bGUgaW5kaXF1ZSBkXCdhZmZpY2hlciBsZSBmb3JtdWxhaXJlIGRlIGNvbm5leGlvbiwgY2V0dGUgb3B0aW9uIGNvbnRyw7RsZSBzaSBsZSBjYXB0Y2hhIHNlcmEgYWZmaWNow6kgc3VyIGxcJ8OpY3JhbiBkZSBjb25uZXhpb24uIFNpIGxlIGNhcHRjaGEgZXN0IGRpc3BvbmlibGUnOwokbGFuZ1sncGFnZXR5cGVfdW5hdXRob3JpemVkJ10gPSAnVm91cyBuXCfDqnRlcyBwYXMgYXV0b3Jpc8OpKGUpIMOgIGFjY8OpZGVyIMOgIGNlIGNvbnRlbnUnOwokbGFuZ1snaW5mb19jb250ZW50cGFnZV9ncm91cGxpc3QnXSA9ICdTcMOpY2lmaWV6IGxhIGxpc3RlIGRlcyBncm91cGVzIHV0aWxpc2F0ZXVycyBxdWkgYXVyb250IGFjY8OocyDDoCBjZXR0ZSBwYWdlLiBTaSB2b3VzIG5lIHNww6ljaWZpZXogYXVjdW4gZ3JvdXBlLCB0b3V0IHV0aWxpc2F0ZXVyIGNvbm5lY3TDqSBwb3VycmEgdm9pciBjZXR0ZSBwYWdlJzsKJGxhbmdbJ3BhZ2V0eXBlX3NldHRpbmdzJ10gPSAnUsOpZ2xhZ2VzIGRlcyBwYWdlcyBwcm90w6lnw6llcyc7CiRsYW5nWydwYWdldHlwZV9ncm91cHMnXSA9ICdHcm91cGVzIGF1dG9yaXPDqXMmbmJzcDsnOwokbGFuZ1snaW5mb19wYWdldHlwZV9ncm91cHMnXSA9ICdTw6lsZWN0aW9ubmV6IGxlcyBncm91cGVzIHF1aSBwb3Vycm9udCAocGFyIGTDqWZhdXQpIHZvaXIgbGVzIHBhZ2VzIHByb3TDqWfDqWVzLiBVbiDDqWRpdGV1ciBhdmVjIGxhIHBlcm1pc3Npb24gIk1hbmFnZSBBbGwgQ29udGVudCIgcG91cnJhIHN1cnBhc3NlciBjZXR0ZSBwZXJtaXNzaW9uIHBvdXIgY2hhcXVlIHBhZ2UuJzsKJGxhbmdbJ3BhZ2V0eXBlX2FjdGlvbiddID0gJ0FjdGlvbiBwb3VyIHVuIGFjY8OocyBub24tYXV0b3Jpc8OpJm5ic3A7JzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfYWN0aW9uJ10gPSAnU3DDqWNpZmlleiBsZSBjb21wb3J0ZW1lbnQgZHUgbW9kdWxlIHBvdXIgbGVzIHBlcnNvbm5lcyBxdWkgYWNjw6hkZW50IMOgIGNldHRlIHBhZ2UgZXQgcXVpIG5lIHJlcXVpw6hyZW50IHBhcyBsZXMgZHJvaXRzIHN1ZmZpc2FudHMgcG91ciB5IGFjY8OpZGVyLiBWb3VzIHBvdXZleiBzb2l0IHJlZGlyaWdlciB2ZXJzIHVuZSBwYWdlIHNww6ljaWZpcXVlLCBzb2l0IGFmZmljaGUgbGUgZm9ybXVsYWlyZSBkZSBjb25uZXhpb24uJzsKJGxhbmdbJ3Nob3dsb2dpbmZvcm0nXSA9ICdBZmZpY2hlciBsZSBmb3JtdWxhaXJlIGRlIGNvbm5leGlvbic7CiRsYW5nWydyZWRpcmVjdCddID0gJ1JlZGlyaWdlciB2ZXJzIHVuZSBwYWdlJzsKJGxhbmdbJ3BhZ2V0eXBlX3JlZGlyZWN0dG8nXSA9ICdSZWRpcmlnZXIgdmVycyZuYnNwOyc7CiRsYW5nWydpbmZvX3BhZ2V0eXBlX3JlZGlyZWN0dG8nXSA9ICdDaG9pc2lzc2V6IGxhIHBhZ2UgdmVycyBsYXF1ZWxsZSByZWRpcmlnZXIuICBTaSB2b3VzIG5cJ2VuIGNob2lzaXNzZXogcGFzLCBhbG9ycyBxdWUgbFwnYWN0aW9uIGVzdCAicmVkaXJpZ2VyIiwgbGUgdmlzaXRldXIgc2UgdmVycmEgcHLDqXNlbnRlciB1biBtZXNzYWdlIGx1aSBpbmRpcXVhbnQgcXVcJ2lsIG5cJ2EgcGFzIGFjY8OocyDDoCBsYSBwYWdlLic7CiRsYW5nWydwZXJtaXNzaW9ucyddID0gJ1Blcm1pc3Npb25zwqAnOwokbGFuZ1snZmV1X3Byb3RlY3RlZF9wYWdlJ10gPSAnQ29udGVudSBwcm90w6lnw6knOwokbGFuZ1sncHJvbXB0X3ZpZXdwcm9wcyddID0gJ0Nob2lzaXNzZXogdW5lIHByb3ByacOpdMOpIGNvbXBsw6ltZW50YWlyZSDDoCBhZmZpY2hlcic7CiRsYW5nWyd2aWV3J10gPSAnVnVlJzsKJGxhbmdbJ2luZm9faWdub3JlX3VzZXJpZCddID0gJ0lmIGNoZWNrZWQgdGhlIGltcG9ydCByb3V0aW5lIHdpbGwgYXR0ZW1wdCB0byBhZGQgdXNlcnMgaW5kZXBlbmRhbnQgb2YgdGhlIHVzZXJpZCBjb2x1bW4uICBJZiBhIHVzZXIgd2l0aCB0aGUgbmFtZSBzcGVjaWZpZWQgaW4gdGhlIGltcG9ydCBmaWxlIGFscmVhZHkgZXhpc3RzLCBhbiBlcnJvciB3aWxsIGJlIGdlbmVyYXRlZCc7CiRsYW5nWydpZ25vcmVfdXNlcmlkJ10gPSAnSWdub3JlIGxhIGNvbG9ubmUgVXNlcklEIGxvcnMgZGUgbFwnaW1wb3J0YXRpb24nOwokbGFuZ1snZXhwb3J0X3Bhc3NoYXNoJ10gPSAnRXhwb3J0ZXIgbGUgaGFjaCBkdSBtb3QgZGUgcGFzc2UgcG91ciBsZSBmaWNoaWVyJzsKJGxhbmdbJ2luZm9fZXhwb3J0X3Bhc3NoYXNoJ10gPSAnTGUgaGFjaGFnZSBkdSBtb3QgZGUgcGFzc2UgblwnIGVzdCB1dGlsZSBxdWUgc2kgbGUgc2FsYWdlIGR1IG1vdCBkZSBwYXNzZSBzdXIgbFwnaW1wb3J0YXRpb24gZXN0IGlkZW50aXF1ZSDDoCBjZWx1aSBkZSBsXCdleHBvcnRhdGlvbic7CiRsYW5nWydlcnJvcl9hZGp1c3RzYWx0J10gPSAnTGUgc2FsYWdlIGRlIG1vdCBkZSBwYXNzZSBuZSBwZXV0IMOqdHJlIHLDqWdsw6knOwokbGFuZ1sncHJvbXB0X3B3c2FsdCddID0gJ1NhbGFnZSBkdSBtb3QgZGUgcGFzc2UmbmJzcDsnOwokbGFuZ1snaW5mb19wd3NhbHQnXSA9ICdGcm9udEVuZFVzZXJzIHV0aWxpc2UgbGUgc2FsYWdlIGRlIHRvdXMgbGVzIG1vdHMgZGUgcGFzc2UgYXZlYyBjZXR0ZSBjbMOpLCBxdWkgZXN0IGNyw6nDqSBsb3JzIGRlIGxcJ2luc3RhbGxhdGlvbi4gVW5lIGZvaXMgcXVlIGxlcyB1dGlsaXNhdGV1cnMgb250IMOpdMOpIGFqb3V0w6lzIMOgIGxhIGJhc2UgZGUgZG9ubsOpZXMgY2UgY29kZSBuZSBwZXV0IMOqdHJlIG1vZGlmacOpLiBjZXR0ZSBjbMOpIHBldXQgw6p0cmUgdmlkZSBwb3VyIGxlcyBhbmNpZW5uZXMgaW5zdGFsbGF0aW9ucy4nOwokbGFuZ1snYWR2YW5jZWRfc2V0dGluZ3MnXSA9ICdSw6lnbGFnZXMgYXZhbmPDqXMnOwokbGFuZ1snaW5mb19zZXNzaW9udGltZW91dCddID0gJ1Nww6ljaWZpZXIgbGUgbm9tYnJlIGRlIHNlY29uZGVzIGF2YW50IHF1XCd1biB1dGlsaXNhdGV1ciBpbmFjdGlmIHNvaXIgZMOpY29ubmVjdMOpIGF1dG9tYXRpcXVlbWVudCBkdSBzaXRlJzsKJGxhbmdbJ3Byb21wdF9leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ0ludGVydmFsbGUgcG91ciBsXCdleHBpcmF0aW9uIGRcJ3VuIHV0aWxpc2F0ZXVyJm5ic3A7JzsKJGxhbmdbJ2luZm9fZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdTcGVjaWZ5IGEgdmFsdWUgKGluIHNlY29uZHMpIHRoYXQgaW5kaWNhdGVzIGhvdyBvZnRlbiB0aGUgc3lzdGVtIHNob3VsZCBmb3JjZSB1c2VycyB3aG9zIHNlc3Npb24gaGFzIGV4cGlyZWQgdG8gYmUgbG9nZ2VkIG91dC4gIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIHRvIHNhdmUgZGF0YWJhc2UgcXVlcmllcy4gIElmIGxlZnQgZW1wdHkgb3Igc2V0IHRvIDAgZXhwaXJ5IHdpbGwgYmUgcGVyZm9ybWVkIG9uIGV2ZXJ5IHJlcXVlc3QuJzsKJGxhbmdbJ21zZ19zZXR0aW5nc2NoYW5nZWQnXSA9ICdWb3MgcsOpZ2xhZ2VzIG9udCDDqXTDqSBtaXMgw6Agam91ciBhdmVjIHN1Y2PDqHMnOwokbGFuZ1snZm9yY2VkbG9nb3V0dGFza19kZXNjJ10gPSAnT2JsaWdlIGxlcyB1dGlsaXNhdGV1cnMgw6Agc2UgZMOpY29ubmVjdGVyIMOgIGRlcyBpbnRlcnZhbGxlcyBkZSB0ZW1wcyByw6lndWxpZXJzJzsKJGxhbmdbJ3Byb21wdF9mb3JjZWxvZ291dF90aW1lcyddID0gJ1RlbXBzIHBvdXIgbGEgZMOpY29ubmV4aW9uIGZvcmPDqWUmbmJzcDsnOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF90aW1lcyddID0gJ1NwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB0aW1lcyBsaWtlIEhIOk1NLEhIOk1NIHdoZXJlIHVzZXJzIHdpbGwgYmUgZm9yY2libHkgbG9nZ2VkIG91dC4gTm90ZSwgdGhpcyB1c2VzIHRoZSBwc3VlZG9jcm9uIG1lY2hhbmlzbSBzbyB5b3UgbXVzdCBiZSBzdXJlIHRoYXQgdGhlIHRpbWVzIGVudGVyZWQgaGVyZSB3aWxsIGNvaW5jaWRlIHJlYXNvbmFibHkgd2l0aCB5b3VyICJwc2V1ZG9jcm9uIGdyYW51bGFyaXR5IiBhbmQgdGhhdCBzdWZmaWNpZW50IHJlcXVlc3RzIHdpbGwgb2NjdXIgdG8geW91ciB3ZWJzaXRlIHRvIGVuc3VyZSB0aGF0IHBzZXVkb2Nyb24gaXMgZXhlY3V0ZWQuJzsKJGxhbmdbJ3Byb21wdF9mb3JjZWxvZ291dF9zZXNzaW9uYWdlJ10gPSAnRXhjbHVyZSBsZXMgbWVtYnJlcyBxdWkgblwnb250IHBhcyDDqXTDqSBhY3RpZnMgZW4gPGVtPihtaW51dGVzKTwvZW0+JzsKJGxhbmdbJ2luZm9fZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSddID0gJ0lmIHNwZWNpZmllZCwgYW55IHVzZXJzIHRoYXQgaGF2ZSBiZWVuIGFjdGl2ZSBpbiB0aGlzIG51bWJlciBvZiBzZWNvbmRzIHdpbGwgbm90IGJlIGZvcmNpYmx5IGxvZ2dlZCBvdXQnOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGUnXSA9ICfDinRlcy12b3VzIHPDu3IoZSkgZGUgdm91bG9pciBzdXBwcmltZXIgbFwndXRpbGlzYXRldXIgOiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZWV4dGVuc2lvbiddID0gJ0xlIHR5cGUgZGUgZmljaGllciB1cGxvYWTDqSBuZSBzZW1ibGUgcGFzIGZhaXJlIHBhcnRpZSBkZXMgZmljaGllcnMgYXV0b3Jpc8Opcyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVG91dGVzIGxlcyBkb25uw6llcyBhc3NvY2nDqWVzIGF1IG1vZHVsZSBGcm9udEVuZFVzZXJzIG9udCDDqXTDqSBlZmZhY8OpZXMnOwokbGFuZ1snaW5mb19lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnU2kgYWN0aXbDqSwgY2UgbW9kdWxlIHZhIMOpY291dGVyIGxlcyDDqXbDqW5lbWVudHMgZGUgbGEgc3VpdGUgRWNvbW1lcmNlLg0KRGFucyBjZSBjYXMsIGxlcyBwYXJhbcOodHJlcyBzdWl2YW50cyBzb250IGVmZmVjdGlmcy4nOwokbGFuZ1sncHJvbXB0X2Vjb21tX3BhaWRyZWdpc3RyYXRpb24nXSA9ICdFY291dGVyIGxlcyDDqXbDqW5lbWVudHMgZGVzIGNvbW1hbmRlcyc7CiRsYW5nWydpbmZvX3BhaWRyZWdfc2V0dGluZ3MnXSA9ICdMZXMgcGFyYW3DqHRyZXMgc3VpdmFudHMgbmUgc1wnYXBwbGlxdWVudCBxdWUgc2kgdm91cyB1dGlsaXNleiBsZSBtb2R1bGUgU2VsZiBSZWdpc3RyYXRpb24gcGVybWV0dGFudCBkZXMgZW5yZWdpc3RyZW1lbnQgcGF5YW50JzsKJGxhbmdbJ25vbmUnXSA9ICdBdWN1bic7CiRsYW5nWydkZWxldGVfdXNlciddID0gJ1N1cHByaW1lciBsXCd1dGlsaXNhdGV1cic7CiRsYW5nWydleHBpcmVfdXNlciddID0gJ0V4cGlyZXogdXRpbGlzYXRldXInOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmNhbmNlbGxlZCddID0gJ0FjdGlvbiDDoCBlZmZlY3R1ZXIgcXVhbmQgdW4gb3JkcmUgZGUgc291c2NyaXB0aW9uIGVzdCBhbm51bMOpZSc7CiRsYW5nWydwcm9tcHRfYWN0aW9uX29yZGVyZGVsZXRlZCddID0gJ0FjdGlvbiDDoCBlZmZlY3R1ZXIgcXVhbmQgdW4gb3JkcmUgZGUgc291c2NyaXB0aW9uIGVzdCBzdXBwcmltw6knOwokbGFuZ1snZWNvbW1lcmNlX3NldHRpbmdzJ10gPSAnUGFyYW3DqHRyZXMgRWNvbW1lcmNlJzsKJGxhbmdbJ3NlY3VyZWZpZWxkbWFya2VyJ10gPSAnTWFya2VyIHPDqWN1cmlzw6kmbmJzcDsnOwokbGFuZ1snc2VjdXJlZmllbGRjb2xvciddID0gJ0NoYW1wIGNvbG9yw6kgc8OpY3VyaXPDqSZuYnNwOyc7CiRsYW5nWydwcm9tcHRfZW5jcnlwdCddID0gJ1N0b2NrZXIgY2VzIGRvbm7DqWVzIGRlIG1hbmnDqHJlIGNyeXB0w6llIGRhbnMgbGEgYmFzZSBkZSBkb25uw6llcyc7CiRsYW5nWydlcnJvcl9ub3RzdXBwb3J0ZWQnXSA9ICdMXCdvcHRpb24gY2hvaXNpZSBuXCdlc3QgcGFzIHN1cHBvcnTDqWUgYXZlYyBsYSBjb25maWd1cmF0aW9uIGFjdHVlbGxlJzsKJGxhbmdbJ2F1ZGl0X3VzZXJfY3JlYXRlZCddID0gJ1V0aWxpc2F0ZXVyIGNyw6nDqSBhdXRvbWF0aXF1ZW1lbnQnOwokbGFuZ1snaW5mb19hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnU2kgdW4gdXRpbGlzYXRldXIgZXN0IGF1dGhlbnRpZmnDqSBwYXIgdW4gbW9kdWxlIGV4dGVybmUgZFwnYXV0aGVudGlmaWNhdGlvbiwgbWFpcyBlc3QgaW5jb25udSBkYW5zIGxlIG1vZHVsZSBGcm9udEVuZFVzZXJzLCB1biBjb21wdGUgRkVVIGRvaXQtaWwgw6p0cmUgY3LDqcOpIGF1dG9tYXRpcXVlbWVudCA/JzsKJGxhbmdbJ3Byb21wdF9hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnQ3LDqWVyIGF1dG9tYXRpcXVlbWVudCBsZXMgdXRpbGlzYXRldXJzIGluY29ubnVzJm5ic3A7JzsKJGxhbmdbJ2Rpc3BsYXlfc2V0dGluZ3MnXSA9ICdBZmZpY2hlciBsZXMgcsOpZ2xhZ2VzJzsKJGxhbmdbJ2luZm9fc3RkX2F1dGhfc2V0dGluZ3MnXSA9ICdMZXMgcsOpZ2xhZ2VzIHN1aXZhbnRzIG5lIHNvbnQgYXBwbGljYWJsZXMgcXVcJ2F2ZWMgImxcJ0F1dGhlbnRpZmljYXRpb24gaW50w6lncsOpZSIuJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0dW4nXSA9ICdDaG9pc2lyIE5vbiBkw6lzYWN0aXZlIGxhIHBvc3NpYmlsaXTDqSBwb3VyIHVuIHV0aWxpc2F0ZXVyIGRcJ3V0aWxpc2VyIGxhIGZvbmN0aW9uIGRlIHLDqWN1cMOpcmF0aW9uIGRlcyBpZGVudGlmaWFudHMsIGluZMOpcGVuZGFtbWVudCBkZXMgYXV0cmVzIHLDqWdsYWdlcyc7CiRsYW5nWydpbmZvX3N1cHBvcnRfbG9zdHB3J10gPSAnQ2hvaXNpciBOb24gZMOpc2FjdGl2ZSBsYSBwb3NzaWJpbGl0w6kgcG91ciB1biB1dGlsaXNhdGV1ciBkZSByw6lpbml0aWFsaXNlciBzb24gbW90IGRlIHBhc3NlLCBpbmTDqXBlbmRhbW1lbnQgZGVzIGF1dHJlcyByw6lnbGFnZXMnOwokbGFuZ1sncHJvbXB0X3N1cHBvcnRfbG9zdHVuJ10gPSAnQXV0b3Jpc2VyIGxlcyB1dGlsaXNhdGV1cnMgw6AgZGVtYW5kZXIgbGV1ciBpZGVudGlmaWFudCZuYnNwOyc7CiRsYW5nWydwcm9tcHRfc3VwcG9ydF9sb3N0cHcnXSA9ICdBdXRvcmlzZXIgbGVzIHV0aWxpc2F0ZXVycyDDoCBkZW1hbmRlciB1biBjaGFuZ2VtZW50IGRlIG1vdCBkZSBwYXNzZSZuYnNwOyc7CiRsYW5nWydhdXRoX3NldHRpbmdzJ10gPSAnUGFyYW3DqXRyZXMgZFwnYXV0aGVudGlmaWNhdGlvbic7CiRsYW5nWydhdXRoZW50aWNhdGlvbiddID0gJ0F1dGhlbnRpZmljYXRpb24gaW50w6lncsOpZSc7CiRsYW5nWydhdXRoX2J1aWx0aW4nXSA9ICdBdXRoZW50aWZpY2F0aW9uIFN0YW5kYXJkIGRlIEZFVSc7CiRsYW5nWydhdXRoX21vZHVsZSddID0gJ01vZHVsZS9Nw6l0aG9kZSBkXCdhdXRoZW50aWZpY2F0aW9uJm5ic3A7JzsKJGxhbmdbJ2luZm9fYXV0aF9tb2R1bGUnXSA9ICdMZSBtb2R1bGUgRnJvbnRFbmRVc2VycyBzdXBwb3J0ZSBsXCd1dGlsaXNhdGlvbiBkZSBtw6l0aG9kZSBhbHRlcm5hdGl2ZXMgZFwnYXV0aGVudGlmaWNhdGlvbiwgYXZlYyBkZXMgY2FwYWNpdMOpcyB2YXJpYWJsZXMuIENlcnRhaW5lcyBmb25jdGlvbm5hbGl0w6lzIG5lIHZvbnQgcGFzIGZvbmN0aW9ubmVyIG91IHNlcm9udCBkw6lzYWN0aXbDqWVzIHNpIGxhIG3DqXRob2RlIGRcJ2F1dGhlbnRpZmljYXRpb24gaW50w6lncsOpZSBuXCdlc3QgcGFzIHV0aWxpc8OpZS4nOwokbGFuZ1snZXJyb3JfdXNlcl9ub251bmlxdWVfZmllbGRfdmFsdWUnXSA9ICdMYSB2YWxldXIgc3DDqWNpZmnDqWUgcG91ciAlIHMgZXN0IGTDqWrDoCB1dGlsaXPDqWUgcGFyIHVuIGF1dHJlIHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ3VuaXF1ZSddID0gJ1VuaXF1ZSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVfZmllbGRfdmFsdWUnXSA9ICdMYSB2YWxldXIgc3DDqWNpZmnDqWUgcG91ciAlIHMgKCUgcykgblwnZXN0IHBhcyB1bmlxdWUnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ0ZvcmNlciBsYSB2YWxldXIgZGUgY2V0dGUgcHJvcHJpw6l0w6kgcG91ciDDqnRyZSB1bmlxdWUgZGFucyB0b3VzIGxlcyBjb21wdGVzIHV0aWxpc2F0ZXVycyc7CiRsYW5nWydoZWxwX3JldHVybnRvJ10gPSAnVXRpbGlzw6kgYXZlYyBsZXMgZm9ybXVsYWlyZXMgZGUgY29ubmV4aW9uIGV0IGTDqWNvbm5leGlvbiwgY2UgcGFyYW3DqHRyZSBpbmRpcXVlIHVuZSBJRCBvdSB1biBhbGlhcyBkZSBwYWdlIGF1cXVlbCBsXCd1dGlsaXNhdGV1ciBzZXJhIHJlbnZvecOpIGFwcsOocyBsYSB2YWxpZGF0aW9uIGRlIGxcJ29ww6lyYXRpb24uIENlY2kgcmVtcGxhY2UgbGVzIHByw6lmw6lyZW5jZXMgZGUgInJldHVybmxhc3QiIGV0IGRlIHJlZGlyZWN0aW9uJzsKJGxhbmdbJ2hlbHBfcmV0dXJubGFzdCddID0gJ1V0aWxpc8OpIGF2ZWMgbGVzIGZvcm11bGFpcmVzIGxvZ2luIGV0IGxvZ291dCwgc2kgY2UgcGFyYW3DqHRyZSBlc3Qgc3DDqWNpZmnDqSwgaWwgaW5kaXF1ZXJhIHF1ZSBsXCd1dGlsaXNhdGV1ciBkb2l0IMOqdHJlIHJlbnZvecOpIHZlcnMgbGEgcGFnZSAocGFyIFVSTCkgcXVlIGxcJ3V0aWxpc2F0ZXVyIGF2YWl0IGFmZmljaMOpIGF2YW50IGxcJ2FjdGlvbi4gQ2UgcGFyYW3DqHRyZSByZW1wbGFjZSBsZXMgcHLDqWbDqXJlbmNlcyBkZSByZWRpcmVjdGlvbiwgZXQgbGUgcGFyYW3DqHRyZSAicmV0dXJudG8iJzsKJGxhbmdbJ3RpdGxlX3Jlc2V0X3Nlc3Npb24nXSA9ICdBdmVydGlzc2VtZW50IGRlIGZpbiBkZSBzZXNzaW9uJzsKJGxhbmdbJ21zZ19yZXNldF9zZXNzaW9uJ10gPSAnVm90cmUgc2Vzc2lvbiB2YSBiaWVudMO0dCBleHBpcmVyLCB2ZXVpbGxleiBjbGlxdWVyIHN1ciAiT0siIHBvdXIgcmVzdGVyIGNvbm5lY3TDqShlKS4nOwokbGFuZ1snb2snXSA9ICdPSyc7CiRsYW5nWydyZXNldHNlc3Npb25fdGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIHJlbWlzZSDDoCB6w6lybyBkZSBzZXNzaW9uJzsKJGxhbmdbJ2luZm9fbmFtZSddID0gJ0NlY2kgZXN0IGxlIG5vbSBkdSBjaGFtcCAodXRpbGlzw6kgYXZlYyBTbWFydHkpLiBJbCBkb2l0IGNvbXBvcnRlciB1bmlxdWVtZW50IGRlcyBjYXJhY3TDqHJlcyBhbHBoYW51bcOpcmlxdWVzIG91IGRlcyB1bmRlcnNjb3JlIChfKS4nOwokbGFuZ1sndmlzaXRvcnNfdGFiJ10gPSAnVmlzaXRldXJzJzsKJGxhbmdbJ2ZldV9ncm91cHNfcHJvbXB0J10gPSAnU8OpbGVjdGlvbm5leiB1biBvdSBwbHVzaWV1cnMgZ3JvdXBlcyBGRVUgcXVpIHNvbnQgYXV0b3Jpc8OpcyDDoCBhY2PDqWRlciDDoCBjZXR0ZSBwYWdlJzsKJGxhbmdbJ2Vycm9yX211c3RzZWxlY3RfZ3JvdXAnXSA9ICdVbiBncm91cGUgZG9pdCDDqnRyZSBzw6lsZWN0aW9ubsOpJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1PDqWxlY3Rpb25uZXIgdW4gZ3JvdXBlJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICdBbm7DqWUgZGUgZMOpYnV0JzsKJGxhbmdbJ2VuZF95ZWFyJ10gPSAnQW5uw6llIGRlIGZpbic7CiRsYW5nWydkYXRlJ10gPSAnRGF0ZSZuYnNwOyc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdUYWlsbGUgZGUgdmlnbmV0dGUmbmJzcDsnOwokbGFuZ1snT25VcGRhdGVHcm91cCddID0gJ0xvcnNxdVwndW4gZ3JvdXBlIGRcJ3V0aWxpc2F0ZXVycyBlc3QgbW9kaWZpw6knOwokbGFuZ1snZXJyb3JfdG9vbWFueXNlbGVjdGVkJ10gPSAnVXRpbGlzYXRldXJzIHPDqWxlY3Rpb25uw6lzIHRyb3Agbm9tYnJldXggcG91ciBsZXMgb3DDqXJhdGlvbnMuLi4gTWVyY2kgZGUgcsOpZHVpcmUgw6AgMjUwIG91IG1vaW5zJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnw4p0ZXMtdm91cyBzw7tyKGUpIGRlIHZvdWxvaXIgc3VwcHJpbWVyIGxlcyB1dGlsaXNhdGV1cnMgc8OpbGVjdGlvbm7DqXMgPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdTdXBwcmltZXIgbGEgc8OpbGVjdGlvbic7CiRsYW5nWydwcm9tcHRfcmFuZG9tdXNlcm5hbWUnXSA9ICdHw6luw6lyZXIgdW4gbm9tIGRcJ3V0aWxpc2F0ZXVyIGF1IGhhc2FyZCBsb3JzIGRlIGxcJ2Fqb3V0IGRlIG5vdXZlYXV4IHV0aWxpc2F0ZXVycyZuYnNwOyc7CiRsYW5nWydtb250aHMnXSA9ICdtb2lzJzsKJGxhbmdbJ3Byb21wdF9leHBpcmVhZ2UnXSA9ICdQw6lyaW9kZSBkXCdleHBpcmF0aW9uIHBhciBkw6lmYXV0IHBvdXIgbFwndXRpbGlzYXRldXImbmJzcDsnOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnUGFyYW3DqHRyZXMgZGUgbm90aWZpY2F0aW9uJm5ic3A7JzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnUGFyYW3DqHRyZXMgZGUgcHJvcHJpw6l0w6kmbmJzcDsnOwokbGFuZ1sncmVkaXJlY3Rpb25fc2V0dGluZ3MnXSA9ICdQYXJhbcOodHJlcyBkZSByZWRpcmVjdGlvbiZuYnNwOyc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnUGFyYW3DqHRyZXMgZ8OpbsOpcmF1eCZuYnNwOyc7CiRsYW5nWydzZXNzaW9uX3NldHRpbmdzJ10gPSAnUGFyYW3DqHRyZXMgZGUgU2Vzc2lvbiBldCBDb29raWUmbmJzcDsnOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdQYXJhbcOodHJlcyBkZXMgY2hhbXBzJm5ic3A7JzsKJGxhbmdbJ3Byb3BfdGV4dGFyZWFfd3lzaXd5ZyddID0gJ1Blcm1ldHRyZSBsXCd1dGlsaXNhdGlvbiBkZSBsXCfDqWRpdGV1ciB2aXN1ZWwgKFdZU0lXWUcpIHN1ciBjZXR0ZSB6b25lIGRlIHRleHRlJzsKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ0VkaXRpb24gZFwndXRpbGlzYXRldXImbmJzcDsnOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdOZSBwYXMgbWV0dHJlIGVuIGxpZ25lIGxlcyBmb3JtdWxhaXJlcyc7CiRsYW5nWydpbmZvX2xvc3R1biddID0gJ0NsaXF1ZXogaWNpIHNpIHZvdXMgbmUgdm91cyBzb3V2ZW5leiBwYXMgZGUgdm90cmUgaWRlbnRpZmlhbnQnOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ0NsaXF1ZXogaWNpIHNpIHZvdXMgbmUgdm91cyBzb3V2ZW5leiBwYXMgZGUgdm90cmUgbW90IGRlIHBhc3NlJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnQ2xpcXVleiBpY2kgcG91ciB2b3VzIGTDqWNvbm5lY3Rlcic7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnQ2xpcXVleiBpY2kgcG91ciBtb2RpZmllciB2b3RyZSBtb3QgZGUgcGFzc2UgZXQgZFwnYXV0cmVzIGluZm9ybWF0aW9ucyc7CiRsYW5nWyd2aWV3dXNlcl90ZW1wbGF0ZSddID0gJ1Z1ZSBnYWJhcml0IHV0aWxpc2F0ZXVyJm5ic3A7JzsKJGxhbmdbJ2V2ZW50J10gPSAnw4l2w6luZW1lbnQnOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ05vdGlmaWNhdGlvbiBkXCfDqXbDqW5lbWVudCBtb2R1bGUgRnJvbnRFbmRVc2VyJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJ0FkcmVzc2UgZW1haWwgcG91ciBsYSBub3RpZmljYXRpb24mbmJzcDsnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZFwnZW1haWwgcG91ciBsYSBub3RpZmljYXRpb24mbmJzcDsnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9zdWJqZWN0J10gPSAnU3VqZXQgZGUgbFwnZW1haWwgcG91ciBsYSBub3RpZmljYXRpb24mbmJzcDsnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdOb3RpZmljYXRpb25zIHBhciBlbWFpbCZuYnNwOyc7CiRsYW5nWydPbkxvZ2luJ10gPSAnw4AgbGEgY29ubmV4aW9uJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnw4AgbGEgZMOpY29ubmV4aW9uJzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ8OAIGxcJ2V4cGlyYXRpb24gZGUgbGEgc2Vzc2lvbic7CiRsYW5nWydPbkNyZWF0ZVVzZXInXSA9ICdMb3JzcXVcJ3VuIG5vdXZlbCB1dGlsaXNhdGV1ciBlc3QgY3LDqcOpJzsKJGxhbmdbJ09uRGVsZXRlVXNlciddID0gJ0xvcnNxdVwndW4gdXRpbGlzYXRldXIgZXN0IHN1cHByaW3DqSc7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdMb3JzIGRlIGNoYW5nZW1lbnQgZGUgcGFyYW3DqHRyZXMgdXRpbGlzYXRldXInOwokbGFuZ1snT25DcmVhdGVHcm91cCddID0gJ0xvcnNxdVwndW4gZ3JvdXBlIGRcJ3V0aWxpc2F0ZXVycyBlc3QgY3LDqcOpJzsKJGxhbmdbJ09uRGVsZXRlR3JvdXAnXSA9ICdMb3JzcXVcJ3VuIGdyb3VwZSBkXCd1dGlsaXNhdGV1cnMgZXN0IHN1cHByaW3DqSc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ0xhIGZvbmN0aW9uIGRlIHLDqWN1cMOpcmF0aW9uIGRlcyBkw6l0YWlscyBkZSBsb2dpbiBvdWJsacOpIGVzdCB0ZXJtaW7DqWUuIE5vdXMgYXZvbnMgdHJvdXbDqSB1biBpZGVudGlmaWFudCB1bmlxdWUgcXVpIGNvcnJlc3BvbmQgYXV4IGTDqXRhaWxzIHF1ZSB2b3VzIGF2ZXogZW50csOpcy4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ1ZvdHJlIGlkZW50aWZpYW50IGVzdCc7CiRsYW5nWydsb3N0dW5jb25maXJtX3Bvc3Rtc2cnXSA9ICdOb3VzIHZvdXMgcmVjb21tYW5kb25zIGRcJ2VucmVnaXN0cmVyIGNldHRlIGluZm9ybWF0aW9uIGRhbnMgdW4gZW5kcm9pdCBzw7tyLCBtYWlzIGZhY2lsZSDDoCByZXRyb3V2ZXIgcG91ciB2b3VzLic7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfY2hhbmdlX3NldHRpbmdzJ10gPSAnUGFnZUlEL0FsaWFzIG/DuSBzZSByZW5kcmUgYXByw6hzIGxhIG1vZGlmaWNhdGlvbiZuYnNwOyc7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfdmVyaWZ5X2NvZGUnXSA9ICdMXCdJRCBvdSBsXCdhbGlhcyBkZSBsYSBwYWdlIG/DuSBzZSByZW5kcmUgYXByw6hzIGxhIHbDqXJpZmljYXRpb24gZHUgY29kZSAqJm5ic3A7JzsKJGxhbmdbJ2xvc3R1bl9kZXRhaWxzX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBwb3VyIGxhIHLDqWN1cMOpcmF0aW9uIGRlcyBkw6l0YWlscyBkXCdpZGVudGlmaWFudCc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcG91ciBsYSBjb25maXJtYXRpb24gZGUgbGEgcsOpY3Vww6lyYXRpb24gZGVzIGTDqXRhaWxzIGRcJ2lkZW50aWZpYW50JzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZW1hdGNoJ10gPSAnRXJyZXVyJm5ic3A7OiBQbHVzIGRcJ3VuIHV0aWxpc2F0ZXVyIGNvcnJlc3BvbmQgYXV4IHByb3ByacOpdMOpcyBkw6lmaW5pZXMnOwokbGFuZ1snZXJyb3JfY2FudGZpbmR1c2VyJ10gPSAnRXJyZXVyJm5ic3A7OiBJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgdW4gdXRpbGlzYXRldXIgY29ycmVzcG9uZGFudCc7CiRsYW5nWydlcnJvcl9ncm91cG5vdGZvdW5kJ10gPSAnRXJyZXVyJm5ic3A7OiBJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgdW4gZ3JvdXBlIGRlIGNlIG5vbSc7CiRsYW5nWydyZWFkb25seSddID0gJ0xlY3R1cmUgc2V1bGUnOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ0NsYXNzZSBkZSBtYW5pcHVsYXRpb24gZGVzIGlkZW50aWZpYW50cyZuYnNwOyc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdEw6ljb25uZWN0w6kgcGFyIHVuIGFkbWluaXN0cmF0ZXVyJzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdBZmZpY2hlIHVuaXF1ZW1lbnQgbGVzIHV0aWxpc2F0ZXVycyBjb25uZWN0w6lzJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdEw6ljb25uZWN0ZXIgY2V0IHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ1Byb3ByacOpdMOpcyBkZSBsXCd1dGlsaXNhdGV1cic7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0hpc3RvcmlxdWUgZGVzIHV0aWxpc2F0ZXVycyc7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnRlcic7CiRsYW5nWydjbGVhciddID0gJ1ZpZGVyJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0V4cG9ydGVyIGVuIEFTQ0lJIGxcJ2hpc3RvcmlxdWUgdXRpbGlzYXRldXIgcXVpIGEgbW9pbnMgZGUmbmJzcDsnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdWaWRlciBsXCdoaXN0b3JpcXVlIHV0aWxpc2F0ZXVyIHF1aSBhIHBsdXMgZGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfbG9zdHVzZXJuYW1lJ10gPSAnQXZlei12b3VzIG91Ymxpw6kgdm90cmUgaWRlbnRpZmlhbnQgPyc7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdFeHBvcnRlciBsYSBkw6lmaW5pdGlvbiBkdSBncm91cGUgKGV0IHNlcyBwcm9wcmnDqXTDqXMpIGF1IGZvcm1hdCBYTUwnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZSddID0gJ01haW50ZW5hbmNlIGRlIGxcJ2hpc3RvcmlxdWUgdXRpbGlzYXRldXInOwokbGFuZ1sneWVzJ10gPSAnT3VpJzsKJGxhbmdbJ25vJ10gPSAnTm9uJzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ2RlJzsKJGxhbmdbJ2RhdGVfYWxscmVjb3JkcyddID0gJyoqIE5vbiBsaW1pdMOpICoqJzsKJGxhbmdbJ2RhdGVfb25laG91cm9sZCddID0gJzEgaGV1cmUnOwokbGFuZ1snZGF0ZV9zaXhob3Vyb2xkJ10gPSAnNiBoZXVyZXMnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnMTIgaGV1cmVzJzsKJGxhbmdbJ2RhdGVfb25lZGF5b2xkJ10gPSAnMSBqb3VyJzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJzEgc2VtYWluZSc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnMiBzZW1haW5lcyc7CiRsYW5nWydkYXRlX29uZW1vbnRob2xkJ10gPSAnMSBtb2lzJzsKJGxhbmdbJ2RhdGVfdGhyZWVtb250aHNvbGQnXSA9ICczIG1vaXMnOwokbGFuZ1snZGF0ZV9zaXhtb250aHNvbGQnXSA9ICc2IG1vaXMnOwokbGFuZ1snZGF0ZV9vbmV5ZWFyb2xkJ10gPSAnMSBhbic7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICdHcm91cGVyIGV0IHRyaWVyJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9yZWNvcmRzZm91bmQnXSA9ICdFbnJlZ2lzdHJlbWVudHMgcXVpIGNvcnJlc3BvbmRlbnQgYXV4IGNyaXTDqHJlcyc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfZGVzYyddID0gJ09yZHJlIGRlc2NlbmRhbnQgZGVzIG5vbXMgZFwndXRpbGlzYXRldXJzJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdPcmRyZSBhc2NlbmRhbnQgZGVzIG5vbXMgZFwndXRpbGlzYXRldXJzJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2Rlc2MnXSA9ICdPcmRyZSBkZXNjZW5kYW50IGRlIGxhIGRhdGUnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfYXNjJ10gPSAnT3JkcmUgYXNjZW5kYW50IGRlIGxhIGRhdGUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9kZXNjJ10gPSAnT3JkcmUgZGVzY2VuZGFudCBkdSB0eXBlIGRcJ8OpdsOpbmVtZW50JzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fYXNjJ10gPSAnT3JkcmUgYXNjZW5kYW50IGR1IHR5cGUgZFwnw6l2w6luZW1lbnQnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19kZXNjJ10gPSAnT3JkcmUgZGVzY2VuZGFudCBkZSBsXCdhZHJlc3NlIElQJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnT3JkcmUgYXNjZW5kYW50IGRlIGxcJ2FkcmVzc2UgSVAnOwokbGFuZ1snaW5mb19ub2hpc3RvcnlkZXRlY3RlZCddID0gJ0F1Y3VuIGhpc3RvcmlxdWUgZMOpdGVjdMOpJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUsOpaW5pdGlhbGlzZXInOwokbGFuZ1sncHJvbXB0X2dyb3VwX2lwJ10gPSAnR3JvdXBlciBwYXIgYWRyZXNzZSBJUCZuYnNwOyc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0ZpbHRyZSBkZSB0eXBlIGRcJ8OpdsOpbmVtZW50Jm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ0FmZmljaGUgdW5pcXVlbWVudCBsZXMgw6l2w6luZW1lbnRzIHF1aSBvbnQgbW9pbnMgZGUmbmJzcDsnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xpbWl0ZSBkZSBwYWdlJm5ic3A7JzsKJGxhbmdbJ2ZvciddID0gJ3BvdXInOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdSYXBwb3J0IGRcJ2hpc3RvcmlxdWUgZFwndXRpbGlzYXRldXInOwokbGFuZ1sndW5rbm93biddID0gJ0luY29ubnUnOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0FkcmVzc2UgSVAnOwokbGFuZ1sncHJvbXB0X2V2ZW50dHlwZSddID0gJ1R5cGUgZFwnw6l2w6luZW1lbnQnOwokbGFuZ1sncHJvbXB0X2RhdGUnXSA9ICdEYXRlJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdSZXRvdXInOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ09ww6lyYXRpb24gZFwnaW1wb3J0YXRpb24gdGVybWluw6llJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ0xpZ25lcyBlZmZlY3R1w6llcyc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRXJyZXVycyByZW5jb250csOpZXMnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ0VucmVnaXN0cmVtZW50cyBham91dMOpcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnSW1wb3NzaWJsZSBkZSB0cm91dmVyIGRlcyBwcm9wcmnDqXTDqXMgcG91ciBsZSBncm91cGUgJXMnOwokbGFuZ1snZXJyb3Jfbm9yZXNwb25zZWZyb21zZXJ2ZXInXSA9ICdBdWN1bmUgcsOpcG9uc2UgZHUgc2VydmV1ciBTTVRQJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ0ltcG9zc2libGUgZGUgdHJvdXZlciBsZSBmaWNoaWVyIHNww6ljaWZpw6kgKCVzKSc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZHZhbHVlJ10gPSAnVmFsZXVyIGludmFsaWRlIHBvdXIgbGUgY2hhbXAgbWVudSBkw6lyb3VsYW50IG91IG11bHRpIHPDqWxlY3Rpb24gJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdMZSBjaGFtcCAlcyBkw6lwYXNzZSBsYSBsb25ndWV1ciBtYXhpbWFsZSc7CiRsYW5nWydlcnJvcl9pbXBvcnRpbnNlcnR1c2VyJ10gPSAnVW4gcHJvYmzDqG1lIGVzdCBzdXJ2ZW51IGxvcnMgZGUgbGEgY3LDqWF0aW9uIGRlIGxcJ3V0aWxpc2F0ZXVyIDogJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXBkYXRldXNlciddID0gJ1VuIHByb2Jsw6htZSBlc3Qgc3VydmVudSBsb3JzIGRlIGxhIG1vZGlmaWNhdGlvbiBkZSBsXCd1dGlsaXNhdGV1ciA6ICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHVzZXJzJ10gPSAnRXJyZXVyIGRcJ2ltcG9ydGF0aW9uIChsaWduZSAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdSw6ljdXDDqXJhdGlvbiBkZXMgZMOpZmluaXRpb25zIGRlIHByb3ByacOpdMOpIGltcG9zc2libGUgKGVycmV1ciBpbnRlcm5lKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ2luZm8nXSA9ICdQcm9ibMOobWUgbG9ycyBkZSBsYSBkw6lmaW5pdGlvbiBkZXMgaW5mb3MgdXRpbGlzYXRldXInOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ0ltcG9zc2libGUgZGUgdHJvdXZlciB1bmUgY29sb25uZSBxdWkgY29ycmVzcG9uZCBhdSBjaGFtcCByZXF1aXMgJXMnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3BlcnRpZXMnXSA9ICdJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGVzIHByb3ByacOpdMOpcyBwb3VyIGxlIGdyb3VwZSBzcMOpY2lmacOpJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVmb3JtYXQnXSA9ICdMZSBmaWNoaWVyIHNww6ljaWZpw6kgcG91ciBsXCdpbXBvcnRhdGlvbiBuXCdlc3QgcGFzIGF1IGJvbiBmb3JtYXQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ091dmVydHVyZSBkZSBmaWNoaWVyIGltcG9zc2libGUnOwokbGFuZ1sncHJvbXB0X2ltcG9ydGRlc3Rncm91cCddID0gJ0ltcG9ydGVyIGxlcyB1dGlsaXNhdGV1cnMgZGFucyBjZSBncm91cGUmbmJzcDsnOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnRW50cmVyIHVuIGZpY2hpZXIgQ1NWJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR4bWxmaWxlJ10gPSAnRW50cmVyIHVuIGZpY2hpZXIgWE1MJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0V4cG9ydGVyIGRlcyB1dGlsaXNhdGV1cnMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0ZXIgZGVzIHV0aWxpc2F0ZXVycyc7CiRsYW5nWydwcm9tcHRfY2xlYXInXSA9ICdWaWRlcic7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ0NoZW1pbiBkZSBkZXN0aW5hdGlvbiBkZSBsXCdpbWFnZSZuYnNwOyc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3VwbG9hZCddID0gJ1VuIHByb2Jsw6htZSBlc3QgYXBwYXJ1IGF2ZWMgdW4gdMOpbMOpY2hhcmdlbWVudCBtYW5xdWFudCAobWFpcyByZXF1aXMpJzsKJGxhbmdbJ2Vycm9yX2JhZF94bWwnXSA9ICdJbXBvc3NpYmxlIGRcJ2FuYWx5c2VyIGxlIGZpY2hpZXIgWE1MIGZvdXJuaSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnSW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgdW4gZ3JvdXBlIHF1aSBjb250aWVudCBlbmNvcmUgZGVzIHV0aWxpc2F0ZXVycyc7CiRsYW5nWydlcnJvcl9ub3JlcGVhdGVkbG9naW5zJ10gPSAnQ2V0IHV0aWxpc2F0ZXVyIGVzdCBkw6lqw6AgY29ubmVjdMOpJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ0xlIHRleHRlIGRlIGNldHRlIGltYWdlIG5cJ2EgcGFzIMOpdMOpIGVudHLDqSBjb3JyZWN0ZW1lbnQnOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ0F1dG9yaXNlciBsZXMgdXRpbGlzYXRldXJzIMOgIMOqdHJlIGNvbm5lY3TDqXMgcGx1cyBkXCd1bmUgZm9pcyZuYnNwOyc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaW9ucyBkZXMgZmljaGllcnMgZFwnaW1hZ2VzIHF1ZSBsZXMgdXRpbGlzYXRldXJzIHNvbnQgYXV0b3Jpc8OpcyDDoCB0w6lsw6ljaGFyZ2VyJm5ic3A7JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25SZWZyZXNoVXNlciddID0gJzxoMz5PblJlZnJlc2hVc2VyPC9oMz4NCjxwPlVuIMOpdsOpbmVtZW50IGVzdCBnw6luw6lyw6kgcXVhbmQgbGEgc2Vzc2lvbiB1dGlsaXNhdGV1ciBlc3QgcmFmcmHDrmNoaWUuPC9wPg0KPGg0PlBhcmFtw6h0cmVzOjwvaDQ+DQo8dWw+DQogIDxsaT48ZW0+aWQ8L2VtPiAtIGxcJ2lkIGRlIGxcJ3V0aWxpc2F0ZXVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVVc2VyJ10gPSAnPGgzPk9uRGVsZXRlVXNlcjxoMz4NCjxwPlVuIMOpdsOpbmVtZW50IGVzdCBnw6luw6lyw6kgcXVhbmQgdW4gdXRpbGlzYXRldXIgZXN0IHN1cHByaW3DqTwvcD4NCjxoND5QYXJhbcOodHJlczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBsZSBub20gZGUgbFwndXRpbGlzYXRldXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gbFwnaWQgZGUgbFwndXRpbGlzYXRldXI8L2xpPg0KPGxpPjxlbT5wcm9wczwvZW0+IC0gVW4gaGFjaGFnZSByZW1wbGlzIGF2ZWMgbGVzIHByb3ByacOpdMOpcyBkZSBsXCd1dGlsaXNhdGV1cjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5VbiDDqXbDqW5lbWVudCBlc3QgZ8OpbsOpcsOpIHF1YW5kIHVuIHV0aWxpc2F0ZXVyIGVzdCBjcsOpw6k8L3A+DQo8aDQ+UGFyYW3DqHRyZXM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBsZSBub20gZGUgbFwndXRpbGlzYXRldXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gbFwnaWQgZGUgbFwndXRpbGlzYXRldXI8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PblVwZGF0ZVVzZXInXSA9ICc8aDM+T25VcGRhdGVVc2VyPGgzPg0KPHA+VW4gw6l2w6luZW1lbnQgZXN0IGfDqW7DqXLDqSBxdWFuZCB1biB1dGlsaXNhdGV1ciBlc3QgbWlzIMOgIGpvdXIgKHBhciBsdWktbcOqbWUgb3UgcGFyIHVuIGFkbWluKTwvcD4NCjxoND5QYXJhbcOodHJlczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIGxlIG5vbSBkZSBsXCd1dGlsaXNhdGV1cjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBsXCdpZCBkZSBsXCd1dGlsaXNhdGV1cjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlR3JvdXAnXSA9ICc8aDM+T25DcmVhdGVHcm91cDxoMz4NCjxwPlVuIMOpdsOpbmVtZW50IGVzdCBnw6luw6lyw6kgcXVhbmQgdW4gZ3JvdXBlIGVzdCBjcsOpw6k8L3A+DQo8aDQ+UGFyYW3DqHRyZXM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBsZSBub20gZHUgZ3JvdXBlPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIGxhIGRlc2NyaXB0aW9uIGR1IGdyb3VwZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBsXCdpZCBkdSBncm91cGU8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5VbiDDqXbDqW5lbWVudCBlc3QgZ8OpbsOpcsOpIHF1YW5kIHVuIGdyb3VwZSBlc3Qgc3VwcHJpbcOpPC9wPg0KPGg0PlBhcmFtw6h0cmVzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gbGUgbm9tIGR1IGdyb3VwZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBsXCdpZCBkdSBncm91cGU8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5VbiDDqXbDqW5lbWVudCBlc3QgZ8OpbsOpcsOpIHF1YW5kIHVuIHV0aWxpc2F0ZXVyIHNlIGNvbm5lY3RlPC9wPg0KPGg0PlBhcmFtw6h0cmVzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIGxlIG5vbSBkZSBsXCd1dGlsaXNhdGV1ciBjb25uZWN0w6k8L2xpPg0KPGxpPjxlbT5pcDwvZW0+IC0gbFwnYWRyZXNzZSBpcCBkdSBjbGllbnQ8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxoMz5PbkxvZ291dDxoMz4NCjxwPlVuIMOpdsOpbmVtZW50IGVzdCBnw6luw6lyw6kgcXVhbmQgdW4gdXRpbGlzYXRldXIgc2UgZMOpY29ubmVjdGU8L3A+DQo8aDQ+UGFyYW3DqHRyZXM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gbGUgbm9tIGRlIGxcJ3V0aWxpc2F0ZXVyIGTDqWNvbm5lY3TDqTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBsXCdpZCBkZSBsXCd1dGlsaXNhdGV1cjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRXhwaXJlVXNlciddID0gJzxoMz5PbkV4cGlyZVVzZXI8aDM+DQo8cD5VbiDDqXbDqW5lbWVudCBlc3QgZ8OpbsOpcsOpIHF1YW5kIHVuZSBzZXNzaW9uIGV4cGlyZTwvcD4NCjxoND5QYXJhbcOodHJlczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBsZSBub20gZGUgbFwndXRpbGlzYXRldXIgZG9udCBsYSBzZXNzaW9uIGEgZXhwaXLDqTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBsXCdpZCBkZSBsXCd1dGlsaXNhdGV1ciBkb250IGxhIHNlc3Npb24gYSBleHBpcsOpPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ1VuIMOpdsOpbmVtZW50IGVzdCBnw6luw6lyw6kgcXVhbmQgdW4gdXRpbGlzYXRldXIgc2UgY29ubmVjdGUnOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ1VuIMOpdsOpbmVtZW50IGVzdCBnw6luw6lyw6kgcXVhbmQgdW4gdXRpbGlzYXRldXIgc2UgZMOpY29ubmVjdGUnOwokbGFuZ1snZXZlbnRfaW5mb19PbkV4cGlyZVVzZXInXSA9ICdVbiDDqXbDqW5lbWVudCBlc3QgZ8OpbsOpcsOpIHF1YW5kIHVuZSBzZXNzaW9uIGV4cGlyZSc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlVXNlciddID0gJ1VuIMOpdsOpbmVtZW50IGVzdCBnw6luw6lyw6kgcXVhbmQgdW4gdXRpbGlzYXRldXIgZXN0IGNyw6nDqSc7CiRsYW5nWydldmVudF9pbmZvX09uUmVmcmVzaFVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiB0aGUgdXNlciBzZXNzaW9uIGlzIHJlZnJlc2hlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ1VuIMOpdsOpbmVtZW50IGVzdCBnw6luw6lyw6kgcXVhbmQgdW4gdXRpbGlzYXRldXIgZXN0IG1pcyDDoCBqb3VyIChwYXIgbHVpLW3Dqm1lIG91IHBhciB1biBhZG1pbiknOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdVbiDDqXbDqW5lbWVudCBlc3QgZ8OpbsOpcsOpIHF1YW5kIHVuIHV0aWxpc2F0ZXVyIGVzdCBzdXBwcmltw6knOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZUdyb3VwJ10gPSAnVW4gw6l2w6luZW1lbnQgZXN0IGfDqW7DqXLDqSBxdWFuZCB1biBncm91cGUgZXN0IGNyw6nDqSc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdVbiDDqXbDqW5lbWVudCBlc3QgZ8OpbsOpcsOpIHF1YW5kIHVuIGdyb3VwZSBlc3QgbWlzIMOgIGpvdXInOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZUdyb3VwJ10gPSAnVW4gw6l2w6luZW1lbnQgZXN0IGfDqW7DqXLDqSBxdWFuZCB1biBncm91cGUgZXN0IHN1cHByaW3DqSc7CiRsYW5nWydiYWNrZW5kX2dyb3VwJ10gPSAnR3JvdXBlJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJypMZXMgY2hhbXBzIHN1aXZhbnRzIHNvbnQgZ2FiYXJpdHMgU21hcnR5Ljxici8+QXZlYyBsZXMgdmFyaWFibGVzIGV4aXN0YW50ZXMgIHNtYXJ0eSBldCBsZXMgcGx1Z2lucywgIGxlcyBtYWNyb3Mgc3VpdmFudGVzIHBldXZlbnQgw6p0cmUgdXRpbGlzw6llcyBkYW5zIGNlcyBjaGFtcHMgOiB7JHVzZXJuYW1lfSx7JGdyb3VwfS4gTG9ycyBkZSBsXCd1dGlsaXNhdGlvbiBkZSBsYSBtYWNybyB7JGdyb3VwfSwgbGUgc3lzdMOobWUgcmVtcGxhY2UgbGUgbm9tIGR1IHByZW1pZXIgZ3JvdXBlIGF1cXVlbCBsXCd1dGlsaXNhdGV1ciBhcHBhcnRpZW50LCBldCB2YSBsZSByZWRpcmlnZXIgc3VyIGNldHRlIHBhZ2UuJzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICfDiWRpdGVyIGNlIGNoYW1wIHBvdXIgcsOpaW5pdGlhbGlzZXIgbGUgbW90IGRlIHBhc3NlIHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICfDiWRpdGVyIGNlIGNoYW1wIHBvdXIgcsOpaW5pdGlhbGlzZXIgbGUgbW90IGRlIHBhc3NlIHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1lX2V4aXN0cyddID0gJ1VuIHV0aWxpc2F0ZXVyIGF2ZWMgY2Ugbm9tIGV4aXN0ZSBkw6lqw6AuJzsKJGxhbmdbJ25vY3N2cmVzdWx0cyddID0gJ0F1Y3VuIHLDqXN1bHRhdCByZXRvdXJuw6kgZGUgbFwnZXhwb3J0IGNzdic7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdMb25ndWV1ciBkdSBjaGFtcCBub20gZFwndXRpbGlzYXRldXImbmJzcDsnOwokbGFuZ1sncHJvbXB0X3B3ZmxkbGVuJ10gPSAnTG9uZ3VldXIgZHUgY2hhbXAgbW90IGRlIHBhc3NlJm5ic3A7JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICdMb25ndWV1ciBtaW5pbWFsZS9tYXhpbWFsZSBpbnZhbGlkZSBwb3VyIGxlIG1vdCBkZSBwYXNzZSZuYnNwOyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWVsZW5ndGhzJ10gPSAnTG9uZ3VldXIgbWluaW1hbGUvbWF4aW1hbGUgaW52YWxpZGUgcG91ciBsZSBub20gZFwndXRpbGlzYXRldXImbmJzcDsnOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ0FkcmVzc2UgZW1haWwgaW52YWxpZGUnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdJbCBuXCd5IGEgcGFzIGRcJ2FkcmVzc2UgZW1haWwgZW5yZWdpc3Ryw6llIHBvdXIgY2UgY29tcHRlLic7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2VldHRpbmdpbmZvJ10gPSAnUHJvYmzDqG1lIGxvcnMgZGUgbFwnw6lkaXRpb24gZGVzIGluZm9zIHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ1Byb2Jsw6htZSBsb3JzIGRlIGxcJ8OpZGl0aW9uIGRlIGxhIHByb3ByacOpdMOpJzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdVdGlsaXNhdGV1ciBham91dMOpICVzID0gJXMnOwokbGFuZ1sndXNlcl9kZWxldGVkJ10gPSAnVXRpbGlzYXRldXIgc3VwcHJpbcOpIHVpZD0lcyc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ1Byb3ByacOpdMOpJzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWYWxldXIgKGV4cHJlc3Npb24gcsOpZ3VsacOocmUpJzsKJGxhbmdbJ3dhcm5pbmdfZWZmZWN0c2ZpZWxkbGVuZ3RoJ10gPSAnQXR0ZW50aW9uIDogY2VzIGNoYW1wcyBhZmZlY3RlbnQgbGEgdGFpbGxlIGRlIGNoYW1wcyBkXCdlbnRyw6llIGRhbnMgbGVzIGZvcm11bGFpcmVzLiAgRGltaW51ZXIgY2V0dGUgdmFsZXVyIHN1ciB1biBzaXRlIGV4aXN0YW50IG5cJ2VzdCBwYXMgcmVjb21tYW5kw6knOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ01vZGlmaWVyIGxlcyBwcsOpZsOpcmVuY2VzIGFkbWluaXN0cmF0ZXVyJm5ic3A7Pyc7CiRsYW5nWydlcnJvcl9lbWFpbGFscmVhZHl1c2VkJ10gPSAnQ2V0dGUgYWRyZXNzZSBlbWFpbCBlc3QgZMOpasOgIHV0aWxpc8OpZSc7CiRsYW5nWydwcm9tcHRfdXNlY29va2llc3RvcmVtZW1iZXInXSA9ICdVdGlsaXNlciBsZXMgY29va2llcyBwb3VyIG3DqW1vcmlzZXIgbGVzIGTDqXRhaWxzIGRcJ2lkZW50aWZpY2F0aW9uJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9jb29raWVuYW1lJ10gPSAnTGUgbm9tIGR1IGNvb2tpZSZuYnNwOyc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJ0F1dG9yaXNlciBsZXMgZG91YmxvbnMgZFwnZW1haWwmbmJzcDsnOwokbGFuZ1sncHJvbXB0X3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnTFwnYWRyZXNzZSBlbWFpbCBlc3QgbGUgbm9tIGRcJ3V0aWxpc2F0ZXVyJm5ic3A7JzsKJGxhbmdbJ2luZm9fY29va2llX2tlZXBhbGl2ZSddID0gJ1RlbnRlIGRlIGdhcmRlciBsZXMgY29ubmV4aW9ucyBhY3RpdmVzIHBhciBsXCd1dGlsaXNhdGlvbiBkZSBjb29raWVzIDxlbT5sZSBjb29raWUgZXN0IHLDqWluaXRpYWxpc8OpIHBhciBsXCdhY3Rpdml0w6kgc3VyIGxlIHNpdGU8L2VtPic7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcoQXV0b3Jpc2VyIHBsdXNpZXVycyB1dGlsaXNhdGV1cnMgcGFydGFnZWFudCBsYSBtw6ptZSBhZHJlc3NlIGVtYWlsKSc7CiRsYW5nWydpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnKExcJ2FkcmVzc2UgZW1haWwgZXN0IGxlIG5vbSBkZSBsXCd1dGlsaXNhdGV1ciAtLSBOZSBwYXMgY29jaGVyIHNpIHZvdXMgY2hvaXNpc3NleiAiQXV0b3Jpc2VyIGxlcyBkb3VibG9ucyBkXCdlbWFpbCIgISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdBdXRvcmlzZXIgZGVzIGRlbWFuZGVzIG11bHRpcGxlcyBkZSBtb3QgZGUgcGFzc2Ugb3VibGnDqSZuYnNwOyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoQXV0b3Jpc2VyIGxlcyB1dGlsaXNhdGV1cnMgw6AgcmVkZW1hbmRlciB1bmUgcsOpaW5pdGlhbGlzYXRpb24gZHUgbW90IGRlIHBhc3NlLCBtYWxncsOpIHF1XCdpbHMgblwnYWllbnQgcGFzIHV0aWxpc8OpIHVuZSBwcsOpY8OpZGVudGUgZGVtYW5kZSknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdVdGlsaXNlciBsZXMgcGVybWlzc2lvbnMgc3DDqWNpZmlxdWUgZGUgRkVVc2VycyA/Jm5ic3A7JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhOb3JtYWxlbWVudCwgbGVzIHBlcm1pc3Npb25zIGRlIEZFVXNlcnMgc29udCBpZGVudGlxdWVzIGF1eCBwZXJtaXNzaW9ucyBkdSBwYW5uZWF1IGRcJ2FkbWluaXN0cmF0aW9uIHRlbCBxdWUgQWpvdXRlciB1biB1dGlsaXNhdGV1ciwgQWpvdXRlciB1bmUgZ3JvdXBlLCBldGMuIFNpIHZvdXMgc8OpbGVjdGlvbm5leiBjZXR0ZSBvcHRpb24sIGlsIHkgYXVyYSBkZXMgcGVybWlzc2lvbnMgZGlmZsOpcmVudGVzIHBvdXIgRkVVc2Vycy4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbGUgZmljaGllciBjaGFyZ8OpIChlcnJldXIgaW50ZXJuZSknOwokbGFuZ1snZXJyb3JfcHJvYmxlbV91cGxvYWQnXSA9ICdJbCB5IGEgZXUgdW4gcHJvYmzDqG1lIGF2ZWMgbGUgZmljaGllciBjaGFyZ8OpLiBWZXVpbGxleiByw6llc3NheWVyLic7CiRsYW5nWydlcnJvcl9taXNzaW5ndXNlcm5hbWUnXSA9ICdWb3VzIG5cJ2F2ZXogcGFzIGVudHLDqSBkZSBub20gdXRpbGlzYXRldXInOwokbGFuZ1snZXJyb3JfbWlzc2luZ2VtYWlsJ10gPSAnVm91cyBuZSBkZXZleiBwYXMgZW50cmVyIHZvdHJlIGFkcmVzc2UgZW1haWwnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3Bhc3N3b3JkJ10gPSAnVm91cyBuXCdhdmV6IHBhcyBlbnRyw6kgZGUgbW90IGRlIHBhc3NlJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dvdXQnXSA9ICdEw6ljb25uZXhpb24gdXRpbGlzYXRldXInOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnQ29ubmV4aW9uIHV0aWxpc2F0ZXVyJzsKJGxhbmdbJ2VkaXRwcm9wX2luZm9tc2cnXSA9ICc8Zm9udCBjb2xvcj0icmVkIj48Yj5BVFRFTlRJT04gOjwvYj4gZW4gY2hhbmdlYW50IHVuZSBwcm9wcmnDqXTDqSBxdWkgYSDDqXTDqSBhc3NpZ27DqWUgw6AgZGVzIGdyb3VwZXMsIHZvdXMgcG91dmV6IHBvdGVudGllbGxlbWVudCBkw6l0cnVpcmUgb3UgYWLDrm1lciB1biBzaXRlIGV4aXN0YW50IDxpPihlbiBwYXJ0aWN1bGllciBzaSB2b3VzIHLDqWR1aXNleiBsZXMgbG9uZ3VldXJzIGRlIGNoYW1wcywgZXRjKTwvaT48L2ZvbnQ+JzsKJGxhbmdbJ2luZm9fc210cHZhbGlkYXRlJ10gPSAnQ2V0dGUgZm9uY3Rpb24gbmUgbWFyY2hlIHBhcyBzb3VzIFdpbmRvd3MnOwokbGFuZ1snbXNnX2RvbnRjcmVhdGV1c2VybmFtZSddID0gJ05lIGNyw6lleiBwYXMgZGUgcHJvcHJpw6l0w6kgcG91ciB1dGlsaXNhdGV1ciAobm9tIGRcJ3V0aWxpc2F0ZXVyIGV0IG1vdCBkZSBwYXNzZSksIGNhciBjZWNpIGVzdCBpbmNsdXMgZGFucyBsZSBtb2R1bGUgRnJvbnRFbmRVc2Vycyc7CiRsYW5nWydwcm9tcHRfZXhwb3J0Y3N2J10gPSAnRXhwb3J0ZXIgbGEgbGlzdGUgZGVzIHV0aWxpc2F0ZXVycyBhdSBmb3JtYXQgQ1NWJm5ic3A7JzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydGVyJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydGVyJzsKJGxhbmdbJ2FkbWluJ10gPSAnQWRtaW4nOwokbGFuZ1snZWRpdHByb3AnXSA9ICfDiWRpdGVyIGxhIHByb3ByacOpdMOpJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ0xvbmd1ZXVyIG1heGltYWxlJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdDcsOpw6knOwokbGFuZ1snc29ydGJ5J10gPSAnVHJpZXIgcGFyJm5ic3A7JzsKJGxhbmdbJ3NvcnQnXSA9ICdUcmkmbmJzcDsnOwokbGFuZ1sndXNlcnNpbmdyb3VwJ10gPSAnVXRpbGlzYXRldXJzIGRhbnMgbGUgZ3JvdXBlJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ0xpbWl0ZXIgbGVzIHLDqXN1bHRhdHMgw6AnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGZpZWxkJ10gPSAnQXVjdW4gZW1haWwgdHJvdXbDqSBwb3VyIGNldCB1dGlsaXNhdGV1ci4gVm91cyBkZXZleiDDqXZlbnR1ZWxsZW1lbnQgY29udGFjdGVyIGxcJ2FkbWluaXN0cmF0ZXVyLic7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyBkdSBmb3JtdWxhaXJlIG1vdCBkZSBwYXNzZSBvdWJsacOpJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGR1IGZvcm11bGFpcmUgZGUgY2hhbmdlbWVudCBkZSBwYXJhbcOodHJlcyZuYnNwOyc7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyBvw7kgcmVkaXJpZ2VyIGxcJ3V0aWxpc2F0ZXVyIGFwcsOocyBxdVwnaWwgc2Ugc29pdCBjb25uZWN0w6kmbmJzcDsnOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIG/DuSByZWRpcmlnZXIgbFwndXRpbGlzYXRldXIgYXByw6hzIHF1XCdpbCBzZSBzb2l0IGTDqWNvbm5lY3TDqSZuYnNwOyc7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdPcmRyZSBkZSB0cmknOwokbGFuZ1sncHJvbXB0X251bXJlc2V0cmVjb3JkJ10gPSAnVW4gbm9tYnJlIGRcJ3V0aWxpc2F0ZXVycyBlc3QgZW4gY291cnMgZGUgcsOpaW5pdGlhbGlzYXRpb24gZGUgbW90cyBkZSBwYXNzZS4gQ2Ugbm9tYnJlIGVzdCBhY3R1ZWxsZW1lbnQgZGUgOic7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ1N1cHByaW1lciB0b3V0ZXMgbGVzIGVudHLDqWVzIHZpZWlsbGVzIGRlIHBsdXMgZFwndW5lIHNlbWFpbmUnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnU3VwcHJpbWVyIHRvdXRlcyBsZXMgZW50csOpZXMgdmllaWxsZXMgZGUgcGx1cyBkXCd1biBtb2lzJzsKJGxhbmdbJ3JlbW92ZWFsbCddID0gJ1N1cHByaW1lciB0b3V0ZXMgbGVzIGVudHLDqWVzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICfDinRlcy12b3VzIHPDu3IoZSkmbmJzcDs/JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjb2RlJ10gPSAnVW4gY29kZSBpbnZhbGlkZSBhIMOpdMOpIGVudHLDqSwgdmV1aWxsZXogcsOpZXNzYXllcic7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnTGUgY29kZSB0ZW1wb3JhaXJlIHBvdXIgdm90cmUgaWQgdXRpbGlzYXRldXIgblwnYSBwYXMgcHUgw6p0cmUgdHJvdXbDqSBkYW5zIGxhIGJhc2UgZGUgZG9ubsOpZXMnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICdHYWJhcml0IHV0aWxpc8OpIHBvdXIgYWZmaWNoZXIgbGUgZm9ybXVsYWlyZSBkZSB2w6lyaWZpY2F0aW9uJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX2VtYWlsdGVtcGxhdGUnXSA9ICdHYWJhcml0IHV0aWxpc8OpIHBvdXIgbFwnZW1haWwgZW52b3nDqSBsb3JzIGRlIGxcJ291YmxpIGR1IG1vdCBkZSBwYXNzZSc7CiRsYW5nWydlcnJvcl9yZXNldGFscmVhZHlzZW50J10gPSAnVW5lIGRlbWFuZGUgZGUgcsOpaW5pdGlhbGlzYXRpb24gZGUgbW90IGRlIHBhc3NlIGEgw6l0w6kgc291bWlzZSBwb3VyIGNlIGNvbXB0ZSwgc29pdCBwYXIgdm91cy1tw6ptZSwgc29pdCBwYXIgcXVlbHF1XCd1biBkXCdhdXRyZS4gVsOpcmlmaWV6IHZvdHJlIGVtYWlsLCB2b3VzIHkgdHJvdXZlcmV6IGxlcyBpbnN0cnVjdGlvbnMgcG91ciBsYSByw6lpbml0aWFsaXNhdGlvbiBkZSB2b3RyZSBtb3QgZGUgcGFzc2UuJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdFcnJldXIgZGUgYmFzZSBkZSBkb25uw6llcyc7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICdWb3VzIHJlY2V2ZXogY2UgbWVzc2FnZSBjYXIgcXVlbHF1XCd1biAocGV1dC3DqnRyZSB2b3VzKSBhIGZhaXQgdW5lIGRlbWFuZGUgZGUgcsOpY3Vww6lyYXRpb24gZGUgbW90IGRlIHBhc3NlLiBTaSBjXCdlc3QgbGUgY2FzLCBsaXNleiBsZXMgaW5zdHJ1Y3Rpb25zIGNpLWRlc3NvdXMuIFNpIHZvdXMgbmUgc2F2ZXogcGFzIGRlIHF1b2kgaWwgc1wnYWdpdCBvdSBzaSBjZSBuXCdlc3QgcGFzIHZvdXMsIHZvdXMgcG91dmV6IHNpbXBsZW1lbnQgZWZmYWNlciBjZSBtZXNzYWdlIChjZWxhIG5cJ2F1cmEgYXVjdW5lIGNvbnPDqXF1ZW5jZSBzdXIgdm90cmUgY29tcHRlKS4gTm91cyB2b3VzIHJlbWVyY2lvbnMuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnQ29kZSc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdMZSBjb2RlIHN1aXZhbnQgYSDDqXTDqSBnw6luw6lyw6kgYXUgaGFzYXJkIHBvdXIgbGEgdsOpcmlmaWNhdGlvbiBkdSBjb21wdGUgdXRpbGlzYXRldXIuIExvcnNxdWUgdm91cyBjbGlxdWVyZXogc3VyIGxlIGxpZW4gY2ktZGVzc291cywgdm91cyB0cm91dmVyZXogdW4gY2hhbXAgZGFucyBsZXF1ZWwgZW50cmVyIGNlIGNvZGUuIE5vcm1hbGVtZW50LCBjZSBjaGFtcCBlc3QgcmVtcGxpIHBvdXIgdm91cywgbWFpcyBkYW5zIGxlIGNhcyBjb250cmFpcmUsIGxlIGNvZGUgZXN0IDonOwokbGFuZ1sncHJvbXB0X2xpbmsnXSA9ICdMZSBsaWVuIHN1aXZhbnQgdm91cyBhbcOobmUgYXUgc2l0ZSBvw7kgdm91cyBwb3VycmV6IGVudHJlciBsZSBjb2RlIGNpLWRlc3N1cywgZXQgcsOpaW5pdGlhbGlzZXIgdm90cmUgbW90IGRlIHBhc3NlIDonOwokbGFuZ1snbG9zdHBhc3N3b3JkX2VtYWlsc3ViamVjdCddID0gJ01vdCBkZSBwYXNzZSBvdWJsacOpJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnTGUgbW9kdWxlIENNU01haWxlciBuXCdhIHBhcyDDqXTDqSB0cm91dsOpJzsKJGxhbmdbJ2luZm9fZm9yZ290cHdtZXNzYWdlc2VudCddID0gJ1VuIGVtYWlsIGEgw6l0w6kgZW52b3nDqSDDoCAlcyBhdmVjIGxlcyBpbnN0cnVjdGlvbnMgcG91ciBsYSByw6lpbml0aWFsaXNhdGlvbiBkdSBtb3QgZGUgcGFzc2UuIE1lcmNpJzsKJGxhbmdbJ2xvc3Rwd19tZXNzYWdlJ10gPSAnU2kgdm91cyBhdmV6IG91Ymxpw6kgdm90cmUgbW90IGRlIHBhc3NlLCB2ZXVpbGxleiBlbnRyZXIgdm90cmUgaWRlbnRpZmlhbnQgaWNpLCBldCBzaSBub3VzIGxlIHRyb3V2b25zLCB2b3VzIHJlY2V2cmV6IHVuIGVtYWlsIGF2ZWMgbGVzIGluc3RydWN0aW9ucyBwb3VyIGxhIHLDqWluaXRpYWxpc2F0aW9uIGR1IG1vdCBkZSBwYXNzZS4nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdHYWJhcml0IHBvdXIgbFwnb3VibGkgZHUgbW90IGRlIHBhc3NlJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcG91ciBsYSByw6ljdXDDqXJhdGlvbiBkZSBsXCdpZGVudGlmaWFudCc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdMYSBwcm9wcmnDqXTDqSAlcyBuXCdhIHBhcyDDqXTDqSB0cm91dsOpZSc7CiRsYW5nWydwcm9wc2ZvdW5kJ10gPSAncHJvcHJpw6l0w6lzIHRyb3V2w6llcyc7CiRsYW5nWydhZGRwcm9wJ10gPSAnQWpvdXRlciB1bmUgcHJvcHJpw6l0w6knOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ1VuIGNoYW1wIHJlcXVpcyAoJXMpIGVzdCB2aWRlJzsKJGxhbmdbJ2luZm9fZW1wdHlwYXNzd29yZGZpZWxkJ10gPSAnVmV1aWxsZXogZW50cmVyIGljaSB1biBub3V2ZWF1IG1vdCBkZSBwYXNzZSc7CiRsYW5nWydlcnJvcl9ub3Rsb2dnZWRpbiddID0gJ1ZvdXMgbmUgc2VtYmxleiBwYXMgw6p0cmUgY29ubmVjdMOpJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdQYXJhbcOodHJlcyc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ0VucmVnaXN0cmVtZW50JzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnQ2UgY29tcHRlIGVzdCBww6lyaW3DqSc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnRm9ybWF0IGRcJ2FkcmVzc2UgZW1haWwgaW52YWxpZGUnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdEYXRlIGRcJ2V4cGlyYXRpb24gaW52YWxpZGUuIEVzc2F5ZXogYXZlYyBhbm7DqWUgYW50w6lyaWV1cmUnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdwcm9wZXJ0eSddID0gJ0lsIHkgYSBldSB1bmUgZXJyZXVyIGxvcnMgZGUgbGEgZMOpZmluaXRpb24gJXMgcG91ciBsXCd1dGlsaXNhdGV1ciAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ2lkIGRlIGdyb3VwZSAlcyBpbnZhbGlkZSc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ01hcnF1ZXVyIGRlIGNoYW1wIGNhY2jDqSZuYnNwOyc7CiRsYW5nWydoaWRkZW5maWVsZGNvbG9yJ10gPSAnQ291bGV1ciBkZSBjaGFtcCBjYWNow6kmbmJzcDsnOwokbGFuZ1snaGlkZGVuJ10gPSAnQ2FjaMOpJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZW5hbWUnXSA9ICdVbmUgcHJvcHJpw6l0w6kgZHUgbcOqbWUgbm9tIGVzdCBkw6lqw6AgZMOpZmluaWUnOwokbGFuZ1snZXJyb3Jfbm9wcm9wZXJ0aWVzJ10gPSAnQXVjdW5lIHByb3ByacOpdMOpIGTDqWZpbmllJzsKJGxhbmdbJ2Vycm9yX25vcmVsYXRpb25zJ10gPSAnQXVjdW4gcHJvcHJpw6l0w6kgblwnYSDDqXTDqSBzw6lsZWN0aW9ubsOpZSBwb3VyIGNlIGdyb3VwZSc7CiRsYW5nWydub2dyb3VwcyddID0gJ0F1Y3VuIGdyb3VwZSBkw6lmaW5pJzsKJGxhbmdbJ2dyb3Vwc2ZvdW5kJ10gPSAnR3JvdXBlcyB0cm91dsOpcyc7CiRsYW5nWydlcnJvcl9vbmVncm91cHJlcXVpcmVkJ10gPSAnTFwnYXBwYXJ0ZW5hbmNlIMOgIGF1IG1vaW5zIHVuIGdyb3VwZSBlc3QgcmVxdWlzZSc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJ10gPSAnUmVxdWllcnQgbFwnYXBwYXJ0ZW5hbmNlIMOgIGF1IG1vaW5zIHVuIGdyb3VwZSZuYnNwOyc7CiRsYW5nWydiYWNrJ10gPSAnUmV0b3VyJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfcmVxdWlyZWRfcGFyYW0nXSA9ICclcyBlc3QgdW4gY2hhbXAgcmVxdWlzJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRtYXJrZXInXSA9ICdNYXJxdWV1ciBkZSBjaGFtcHMgcmVxdWlzJm5ic3A7JzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ01pc2UgZW4gw6l2aWRlbmNlIGRlcyBjaGFtcHMgcmVxdWlzIGVuJm5ic3A7JzsKJGxhbmdbJ25leHQnXSA9ICdTdWl2YW50JzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnVW4gZ3JvdXBlIGR1IG3Dqm1lIG5vbSBleGlzdGUgZMOpasOgJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnQ2hhbXAgcmVxdWlzJzsKJGxhbmdbJ29wdGlvbmFsJ10gPSAnT3B0aW9ubmVsJzsKJGxhbmdbJ29mZiddID0gJ0TDqXNhY3RpdsOpJzsKJGxhbmdbJ3NpemUnXSA9ICdUYWlsbGUnOwokbGFuZ1snc2l6ZWNvbW1lbnQnXSA9ICc8YnIvPihUYWlsbGUgbWF4aW1hbGUgZFwndW5lIGRlcyBkaW1lbnNpb25zIGRlIGxcJ2ltYWdlIGVuIHBpeGVscyknOwokbGFuZ1snbGVuZ3RoJ10gPSAnTG9uZ3VldXInOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oY2FyYWN0w6hyZXMgZGFucyBsZSBjaGFtcCB0ZXh0ZSknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ09wdGlvbnMgbWVudSBkw6lyb3VsYW50LCBzw6lwYXLDqWVzIHBhciBkZXMgcmV0b3VycyDDoCBsYSBsaWduZS4gTGVzIHZhbGV1cnMgcGV1dmVudCDDqnRyZSBzw6lwYXLDqWVzIGR1IHRleHRlIHBhciBsZSBjYXJhY3TDqHJlID0uDQpFeCA6IEZlbW1lPWYnOwokbGFuZ1sncmFkaW9vcHRpb25zJ10gPSAnTGFiZWwgZGVzIGJvdXRvbnMgUmFkaW8gc8OpcGFyw6lzIHBhciBkZXMgc2F1dHMgZGUgbGlnbmUuIExlcyB2YWxldXJzIHBldXZlbnQgw6p0cmUgc8OpcGFyw6lzIGR1IHRleHRlIHBhciBsZSBjYXJhY3TDqHJlID0uDQpFeGVtcGxlIDogRmVtbWUgPSBmJzsKJGxhbmdbJ3Byb21wdCddID0gJ0ludml0ZSBkZSBzYWlzaWUnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ2ZpZWxkc3RhdHVzJ10gPSAnU3RhdHV0IGR1IGNoYW1wJzsKJGxhbmdbJ3VzZWRpbmxvc3R1biddID0gJ0RlbWFuZGUgbG9ycyBkZSBsYSByw6ljdXDDqXJhdGlvbiBkZTxici8+bFwnaWRlbnRpZmlhbnQnOwokbGFuZ1sndGV4dCddID0gJ1RleHRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2FzZSDDoCBjb2NoZXInOwokbGFuZ1snbXVsdGlzZWxlY3QnXSA9ICdMaXN0ZSBtdWx0aS1zw6lsZWN0aW9uJzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ0JvdXRvbnMgUmFkaW8nOwokbGFuZ1snaW1hZ2UnXSA9ICdJbWFnZcKgJzsKJGxhbmdbJ2VtYWlsJ10gPSAnQWRyZXNzZSBlbWFpbMKgJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnQ2hhbXAgZGUgdGV4dGUnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdNZW51IGTDqXJvdWxhbnQnOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICdCaWVudmVudWUnOwokbGFuZ1snbG9nb3V0J10gPSAnRMOpY29ubmV4aW9uJzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdVdGlsaXNlciBsZSBub20gZGUgY2UgZ3JvdXBlJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ0NoYW5nZW1lbnQgZGUgbWVzIHBhcmFtw6h0cmVzJzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnTGEgY29ubmV4aW9uIGEgw6ljaG91w6kgOiBpZGVudGlmaWFudCBvdSBtb3QgZGUgcGFzc2UgaW52YWxpZGUgPyc7CiRsYW5nWydsb2dpbiddID0gJ1NcJ2lkZW50aWZpZXInOwokbGFuZ1sncHJvbXB0X3NpZ25pbl9idXR0b24nXSA9ICdUZXh0ZSBkdSBib3V0b24gZGUgY29ubmV4aW9uJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ0lkZW50aWZpYW50JzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0FkcmVzc2UgZW1haWzCoCc7CiRsYW5nWydwcm9tcHRfcGFzc3dvcmQnXSA9ICdNb3QgZGUgcGFzc2XCoCc7CiRsYW5nWydwcm9tcHRfcmVtZW1iZXJtZSddID0gJ01lIG3DqW1vcmlzZXIgc3VyIGNldCBvcmRpbmF0ZXVyJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnU1wnZW5yZWdpc3RyZXInOwokbGFuZ1snZm9yZ290cHcnXSA9ICdNb3QgZGUgcGFzc2Ugb3VibGnDqSA/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ0TDqXRhaWxzIGRcJ2lkZW50aWZpY2F0aW9uIG91Ymxpw6lzID8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdQYXIgZMOpZmF1dCc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ0dhYmFyaXQnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ0NldCBpZGVudGlmaWFudCAoJXMpIGV4aXN0ZSBkw6lqw6AnOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ1V0aWxpc2VyIFNNVFAgcG91ciBsYSB2YWxpZGF0aW9uIGRlcyBhZHJlc3NlcyBlbWFpbCZuYnNwOz8nOwokbGFuZ1sncHJvbXB0X21pbnB3bGVuJ10gPSAnTG9uZ3VldXIgbWluaW1hbGUgZHUgbW90IGRlIHBhc3NlJm5ic3A7JzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ0xvbmd1ZXVyIG1heGltYWxlIGR1IG1vdCBkZSBwYXNzZSZuYnNwOyc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdMb25ndWV1ciBtaW5pbWFsZSBkZSBsXCdpZGVudGlmaWFudCZuYnNwOyc7CiRsYW5nWydwcm9tcHRfbWF4dW5sZW4nXSA9ICdMb25ndWV1ciBtYXhpbWFsZSBkZSBsXCdpZGVudGlmaWFudCZuYnNwOyc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdFeHBpcmF0aW9uIGRlIHNlc3Npb24gKHNlY29uZGVzKSZuYnNwOyc7CiRsYW5nWydwcm9tcHRfY29va2lla2VlcGFsaXZlJ10gPSAnVXRpbGlzZXIgbGVzIGNvb2tpZXMgcG91ciBnYXJkZXIgbGVzIGNvbm5leGlvbnMgYWN0aXZlcyZuYnNwOyc7CiRsYW5nWydwcm9tcHRfYWxsb3dlbWFpbHJlZyddID0gJ0F1dG9yaXNlIGxcJ2VucmVnaXN0cmVtZW50IHBhciBlbWFpbCc7CiRsYW5nWydwcm9tcHRfZGZsdGdyb3VwJ10gPSAnR3JvdXBlIHBhciBkw6lmYXV0IHBvdXIgbGVzIG5vdXZlYXV4IHV0aWxpc2F0ZXVycyZuYnNwOyc7CiRsYW5nWydjaGFuZ2VzZXR0aW5nc190ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcG91ciBsZSBjaGFuZ2VtZW50IGRlcyBwYXJhbcOodHJlcyc7CiRsYW5nWydlcnJvcl9wYXNzd29yZG1pc21hdGNoJ10gPSAnTGVzIG1vdHMgZGUgcGFzc2UgbmUgY29uY29yZGVudCBwYXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnSWRlbnRpZmlhbnQgbm9uIHZhbGlkZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdNb3QgZGUgcGFzc2Ugbm9uIHZhbGlkZSc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdJRCB1dGlsaXNhdGV1ciBub24gdHJvdXbDqSc7CiRsYW5nWydlZGl0dXNlciddID0gJ8OJZGl0ZXIgbFwndXRpbGlzYXRldXInOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZGUnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdJZGVudGlmaWFudCc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXQnOwokbGFuZ1snZXJyb3JfbWVtYmVyZ3JvdXBzJ10gPSAnQ2V0IHV0aWxpc2F0ZXVyIG5cJ2VzdCBtZW1icmUgZFwnYXVjdW4gZ3JvdXBlJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICdBdWN1bmUgcHJvcHJpw6l0w6knOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdUZW50ZSBkXCdpbXBvcnRlciBkZXMgcHJvcHJpw6l0w6lzIMOgIGRvdWJsZSc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbGV1cic7CiRsYW5nWydncm91cHMnXSA9ICdHcm91cGVzwqAnOwokbGFuZ1sncHJvcGVydGllcyddID0gJ1Byb3ByacOpdMOpcyc7CiRsYW5nWydwcm9wbmFtZSddID0gJ05vbSBkZSBwcm9wcmnDqXTDqSc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdWYWxldXIgZGUgbGEgcHJvcHJpw6l0w6knOwokbGFuZ1snYWRkJ10gPSAnQWpvdXRlcic7CiRsYW5nWydoaXN0b3J5J10gPSAnSGlzdG9yaXF1ZSc7CiRsYW5nWydlZGl0J10gPSAnw4lkaXRlcic7CiRsYW5nWydleHBpcmVzJ10gPSAnRXhwaXJlwqAnOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnU3DDqWNpZmlleiB1bmUgZGF0ZSc7CiRsYW5nWycxMmhycyddID0gJzEyIGhldXJlcyc7CiRsYW5nWycyNGhycyddID0gJzI0IGhldXJlcyc7CiRsYW5nWyc0OGhycyddID0gJzQ4IGhldXJlcyc7CiRsYW5nWycxd2VlayddID0gJzEgc2VtYWluZSc7CiRsYW5nWycyd2Vla3MnXSA9ICcyIHNlbWFpbmVzJzsKJGxhbmdbJzFtb250aCddID0gJzEgbW9pcyc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBtb2lzJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IG1vaXMnOwokbGFuZ1snMXllYXInXSA9ICcxIGFuJzsKJGxhbmdbJ25ldmVyJ10gPSAnSmFtYWlzJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ0xlIG1vZHVsZSBhIMOpdMOpIGluc3RhbGzDqSBhdmVjIHN1Y2PDqHMuPGJyLz5Bc3N1cmV6LXZvdXMgZGUgZMOpZmluaXIgbGEgcGVybWlzc2lvbiAiTW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIi4gRGUgcGx1cywgbm91cyB2b3VzIHJlY29tbWFuZG9ucyBkXCdpbnN0YWxsZXIgbGUgbW9kdWxlIENhcHRjaGEuIExvcnNxdWUgY2VsdWktY2kgZXN0IGluc3RhbGzDqSwgbGEgdmFsaWRhdGlvbiBkZSBsXCdpbWFnZSBjYXB0Y2hhIHNlcmEgcmVxdWlzZSBwb3VyIHNlIGNvbm5lY3RlciwgZW4gcGx1cyBkZSBsXCdpZGVudGlmaWFudCBldCBkdSBtb3QgZGUgcGFzc2UuIENlY2kgZXN0IGNvbnNlaWxsw6kgcG91ciDDqXZpdGVyIGxlcyBhdHRhcXVlcy4NCg0KPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBMZSBwYXJhbcOodHJlIFwnbm9jYXB0Y2hhXCcgcGV1dCDDqnRyZSB1dGlsaXPDqSBwb3VyIGTDqXNhY3RpdmVyIGNldHRlIGZvbmN0aW9uIG3Dqm1lIGxvcnNxdWUgbGUgbW9kdWxlIENhcHRjaGEgZXN0IGluc3RhbGzDqS4NCg0KTGUgbW9kdWxlIFNlbGZSZWdpc3RyYXRpb24gZG9pdCDDqnRyZSBpbnN0YWxsw6kgcG91ciBxdWUgbGVzIHZpc2l0ZXVycyBwdWlzc2VudCBzXCdpbnNjcmlyZSBzdXIgdm90cmUgc2l0ZS4gU2lub24sIHZvdXMgZGV2cmV6IGxlcyBlbnJlZ2lzdHJlciB2b3VzLW3Dqm1lLic7CiRsYW5nWydwYXNzd29yZCddID0gJ01vdCBkZSBwYXNzZcKgJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnUmUtdGFwZXogbGUgbW90IGRlIHBhc3NlwqAnOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ1VuIGdyb3VwZSBkdSBtw6ptZSBub20gZXhpc3RlIGTDqWrDoCc7CiRsYW5nWydlZGl0Z3JvdXAnXSA9ICfDiWRpdGVyIGxlIGdyb3VwZSc7CiRsYW5nWydzdWJtaXQnXSA9ICdWYWxpZGVyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXInOwokbGFuZ1snZGVsZXRlJ10gPSAnU3VwcHJpbWVyJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnw4p0ZXMtdm91cyBzw7tyKGUpIHF1ZSBjZXR0ZSBwcm9wcmnDqXTDqSBlc3QgY29ycmVjdGUgcG91ciBjZSBncm91cGUmbmJzcDs/XG5Ew6lzYWN0aXZlciB1bmUgcHJvcHJpw6l0w6kgblwnZWZmYWNlcmEgcGFzIGxlcyBlbnRyw6llcyBkYW5zIGxhIHRhYmxlIGRlcyBwcm9wcmnDqXTDqXMgcG91ciBjZSBncm91cGUvdXRpbGlzYXRldXIuIFRvdXQgYXUgcGx1cywgbGVzIHByb3ByacOpdMOpcyBuZSBzZXJvbnQgcGFzIGRpc3BvbmlibGVzLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnw4p0ZXMtdm91cyBzw7tyKGUpIGRlIHZvdWxvaXIgc3VwcHJpbWVyIGNlIGdyb3VwZSZuYnNwOz8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ8OKdGVzLXZvdXMgc8O7cihlKSBkZSB2b3Vsb2lyIGNvbXBsw6h0ZW1lbnQgc3VwcHJpbWVyIGNldHRlIHByb3ByacOpdMOpP1xuQ2VsYSBzdXBwcmltZXJhIHRvdXRlcyBsZXMgZW50csOpZXMgcG91ciBjZXR0ZSBwcm9wcmnDqXTDqSc7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdQYXJhbcOodHJlcyBpbnN1ZmZpc2FudHMnOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWyduYW1lJ10gPSAnTm9tJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRwcm9wJ10gPSAnUHJvYmzDqG1lIGxvcnMgZGUgbFwnYWpvdXQgZFwndW5lIHByb3ByacOpdMOpJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cHJlbG4nXSA9ICdQcm9ibMOobWUgbG9ycyBkZSBsXCdham91dCBkXCd1bmUgcmVsYXRpb24gZGUgZ3JvdXBlJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2Jsw6htZSBsb3JzIGRlIGxcJ2Fqb3V0IGRcJ3VuIGdyb3VwZSc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2Jsw6htZSBsb3JzIGRlIGxcJ2Fqb3V0IGRcJ3VuIHV0aWxpc2F0ZXVyIMOgIHVuIGdyb3VwZSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmzDqG1lIGxvcnMgZGUgbGEgc3VwcHJlc3Npb24gZFwndW5lIHByb3ByacOpdMOpJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnSW1wb3NzaWJsZSBkZSB0cm91dmVyIHVuZSBhZHJlc3NlIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdQYXMgZFwnYWNjw6hzIGVuIMOpY3JpdHVyZSBkYW5zIGxlIGRvc3NpZXIgZGUgZGVzdGluYXRpb24nOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ1BhcmFtw6h0cmVzIG5vbiB2YWxpZGVzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnQXVjdW4gZ3JvdXBlIHRyb3V2w6knOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdBcHBsaXF1ZXInOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHJlJm5ic3A7JzsKJGxhbmdbJ3VzZXJmaWx0ZXInXSA9ICdJZGVudGlmaWFudCAoZXhwcmVzc2lvbiByw6lndWxpw6hyZSkmbmJzcDsnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydncm91cG5hbWUnXSA9ICdOb20gZHUgZ3JvdXBlJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY8OocyByZWZ1c8OpJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyZXVyJzsKJGxhbmdbJ2FkZGdyb3VwJ10gPSAnQWpvdXRlciB1biBncm91cGUnOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnRlciBsZSBncm91cGUnOwokbGFuZ1snYWRkdXNlciddID0gJ0Fqb3V0ZXIgdW4gdXRpbGlzYXRldXInOwokbGFuZ1sndXNlcnNmb3VuZCddID0gJ1V0aWxpc2F0ZXVycyB0cm91dsOpcyc7CiRsYW5nWydncm91cCddID0gJ0dyb3VwZSc7CiRsYW5nWydzZWxlY3Rncm91cCddID0gJ1PDqWxlY3Rpb25uZXIgbGUgZ3JvdXBlJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZFwnZW5yZWdpc3RyZW1lbnQnOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSBkw6ljb25uZXhpb24nOwokbGFuZ1snbG9naW5fdGVtcGxhdGUnXSA9ICdHYWJhcml0IGRlIGNvbm5leGlvbic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1Byw6lmw6lyZW5jZXMnOwokbGFuZ1sndXNlcnMnXSA9ICdVdGlsaXNhdGV1cnMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnR2VzdGlvbiBkZXMgdXRpbGlzYXRldXJzIGR1IHNpdGUnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdHw6hyZSBsZXMgdXRpbGlzYXRldXJzIGR1IHNpdGUnOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gJ1BhZ2UgcGFyIGTDqWZhdXQnOwokbGFuZ1snbGFzdGFjY2Vzc2VkcGFnZSddID0gJ0Rlcm5pw6hyZSBwYWdlIGFjY8OpZMOpZSc7CiRsYW5nWydvdGhlcnBhZ2UnXSA9ICdBdXRyZSBwYWdlJm5ic3A7Oic7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnVmV1aWxsZXogZW50cmVyIGxlIHRleHRlIGRlIGxcJ2ltYWdlJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/hu_HU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3BhZ2V0eXBlX3VuYXV0aG9yaXplZCddID0gJ05lbSB2YWd5IGZlbGhhdGFsbWF6dmEsIGhvZ3kgZXp0IGEgdGFydGFsbWF0IG1lZ24mZWFjdXRlO3pkJzsKJGxhbmdbJ2luZm9fY29udGVudHBhZ2VfZ3JvdXBsaXN0J10gPSAnU3BlY2lmeSBhIGxpc3Qgb2YgRkVVIGdyb3VwcyB0aGF0IG1heSBoYXZlIGFjY2VzcyB0byB0aGlzIHBhZ2UuICBTZWxlY3Rpbmcgbm8gZ3JvdXBzIHdpbGwgYWxsb3cgYW55IHVzZXIgbG9nZ2VkIGluIHRvIEZFVSB0byB2aWV3IHRoZSBwYWdlJzsKJGxhbmdbJ3BhZ2V0eXBlX3NldHRpbmdzJ10gPSAnViZlYWN1dGU7ZGV0dCBvbGRhbCBiZSZhYWN1dGU7bGwmaWFjdXRlO3QmYWFjdXRlO3NhJzsKJGxhbmdbJ3BhZ2V0eXBlX2dyb3VwcyddID0gJ01lZ2VuZ2VkZXR0IGNzb3BvcnRvayc7CiRsYW5nWydpbmZvX3BhZ2V0eXBlX2dyb3VwcyddID0gJ1NlbGVjdCB0aGUgZ3JvdXBzIHRoYXQgYXJlIChieSBkZWZhdWx0KSBhbGxvd2VkIHRvIHZpZXcgcHJvdGVjdGVkIHBhZ2VzLiAgQW4gZWRpdG9yIHdpdGggdGhlICZxdW90O01hbmFnZSBBbGwgQ29udGVudCZxdW90OyBwZXJtaXNzaW9uIGNhbiBvdmVycmlkZSB0aGlzIGZvciBlYWNoIHBhZ2UnOwokbGFuZ1sncGFnZXR5cGVfYWN0aW9uJ10gPSAnQWN0aW9uIGZvciBpbnN1ZmZpY2llbnQgYWNjZXNzJzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYmVoYXZpb3IgZm9yIHBlb3BsZSBhY2Nlc3NpbmcgdGhpcyBwYWdlIHdpdGhvdXQgc3VmZmljaWVudCBwZXJtaXNzaW9uLiAgWW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdG8gYSBzcGVjaWZpZWQgcGFnZSwgb3IgZGlzcGxheSB0aGUgbG9naW4gZm9ybSc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAnQmVsJmVhY3V0ZTtwxZEgxbFybGFwIG11dGF0JmFhY3V0ZTtzYSc7CiRsYW5nWydyZWRpcmVjdCddID0gJ0F0aXImYWFjdXRlO255JmlhY3V0ZTt0JmFhY3V0ZTtzIGVneSBvbGRhbHJhJzsKJGxhbmdbJ3BhZ2V0eXBlX3JlZGlyZWN0dG8nXSA9ICcmQWFjdXRlO3RpciZhYWN1dGU7bnkmaWFjdXRlO3QmYWFjdXRlO3MgaWRlJzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfcmVkaXJlY3R0byddID0gJ1NwZWNpZnkgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdG8uICBJZiB5b3Ugc2VsZWN0IG5vbmUsIGFuZCB0aGUgYWN0aW9uIGlzIHNldCB0byAmcXVvdDtyZWRpcmVjdCZxdW90OyB0aGUgdXNlciB3aWxsIGJlIHByZXNlbnRlZCB3aXRoIGEgbWVzc2FnZSBpbmRpY2F0aW5nIHRoYXQgdGhleSBkbyBub3QgaGFjZSBhY2Nlc3MgdG8gdGhlIHBhZ2UnOwokbGFuZ1sncGVybWlzc2lvbnMnXSA9ICdFbmdlZCZlYWN1dGU7bHllayc7CiRsYW5nWydmZXVfcHJvdGVjdGVkX3BhZ2UnXSA9ICdWJmVhY3V0ZTtkZXR0IHRhcnRhbG9tJzsKJGxhbmdbJ3Byb21wdF92aWV3cHJvcHMnXSA9ICdTZWxlY3QgQWRkaXRpb25hbCBQcm9wZXJ0aWVzIHRvIFZpZXcnOwokbGFuZ1sndmlldyddID0gJ01lZ3Rla2ludCZlYWN1dGU7cyc7CiRsYW5nWydpbmZvX2lnbm9yZV91c2VyaWQnXSA9ICdJZiBjaGVja2VkIHRoZSBpbXBvcnQgcm91dGluZSB3aWxsIGF0dGVtcHQgdG8gYWRkIHVzZXJzIGluZGVwZW5kYW50IG9mIHRoZSB1c2VyaWQgY29sdW1uLiAgSWYgYSB1c2VyIHdpdGggdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZSBpbXBvcnQgZmlsZSBhbHJlYWR5IGV4aXN0cywgYW4gZXJyb3Igd2lsbCBiZSBnZW5lcmF0ZWQnOwokbGFuZ1snaWdub3JlX3VzZXJpZCddID0gJ0lnbm9yZSBVc2VySUQgQ29sdW1uIG9uIEltcG9ydCc7CiRsYW5nWydleHBvcnRfcGFzc2hhc2gnXSA9ICdFeHBvcnQgdGhlIHBhc3N3b3JkIGhhc2ggdG8gdGhlIGZpbGUnOwokbGFuZ1snaW5mb19leHBvcnRfcGFzc2hhc2gnXSA9ICdUaGUgcGFzc3dvcmQgaGFzaCBpcyBvbmx5IHVzZWZ1bCBpZiB0aGUgcGFzc3dvcmQgc2FsdCBvbiB0aGUgaW1wb3J0IGhvc3QgaXMgaWRlbnRpY2FsIHRvIHRoYXQgb2YgdGhlIGV4cG9ydCBob3N0JzsKJGxhbmdbJ2Vycm9yX2FkanVzdHNhbHQnXSA9ICdUaGUgcGFzc3dvcmQgc2FsdCBjYW5ub3QgYmUgYWRqdXN0ZWQnOwokbGFuZ1sncHJvbXB0X3B3c2FsdCddID0gJ1Bhc3N3b3JkIFNhbHQnOwokbGFuZ1snaW5mb19wd3NhbHQnXSA9ICdGcm9udEVuZFVzZXJzIHNhbHRzIGFsbCBwYXNzd29yZHMgd2l0aCB0aGlzIGtleSB3aGljaCBpcyBjcmVhdGVkIHVwb24gaW5zdGFsbC4gIE9uY2UgdXNlcnMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBkYXRhYmFzZSB0aGUgc2FsdCBjYW5ub3QgYmUgY2hhbmdlZC4gVGhlIHNhbHQgbWF5IGJlIGVtcHR5IGZvciBvbGRlciBpbnN0YWxscy4nOwokbGFuZ1snYWR2YW5jZWRfc2V0dGluZ3MnXSA9ICdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWydpbmZvX3Nlc3Npb250aW1lb3V0J10gPSAnU3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIGFuIGluYWN0aXZlIHVzZXIgaXMgYXV0b21hdGljYWxseSBsb2dnZWQgb3V0IG9mIHRoZSB3ZWJzaXRlJzsKJGxhbmdbJ3Byb21wdF9leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ1VzZXIgRXhwaXJ5IEludGVydmFsJzsKJGxhbmdbJ2luZm9fZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdTcGVjaWZ5IGEgdmFsdWUgKGluIHNlY29uZHMpIHRoYXQgaW5kaWNhdGVzIGhvdyBvZnRlbiB0aGUgc3lzdGVtIHNob3VsZCBmb3JjZSB1c2VycyB3aG9zIHNlc3Npb24gaGFzIGV4cGlyZWQgdG8gYmUgbG9nZ2VkIG91dC4gIFQmcXVvdDtoaXMgaXMgYW4gb3B0aW1pemF0aW9uIHRvIHNhdmUgZGF0YWJhc2UgcXVlcmllcy4gIElmIGxlZnQgZW1wdHkgb3Igc2V0IHRvIDAgZXhwaXJ5IHdpbGwgYmUgcGVyZm9ybWVkIG9uIGV2ZXJ5IHJlcXVlc3QuJzsKJGxhbmdbJ21zZ19zZXR0aW5nc2NoYW5nZWQnXSA9ICdZb3VyIHNldHRpbmdzIHdlcmUgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQnOwokbGFuZ1snZm9yY2VkbG9nb3V0dGFza19kZXNjJ10gPSAnRm9yY2UgdXNlcnMgdG8gbG9nb3V0IGF0IHJlZ3VsYXIgaW50ZXJ2YWxzJzsKJGxhbmdbJ3Byb21wdF9mb3JjZWxvZ291dF90aW1lcyddID0gJ1RpbWVzIGZvciBmb3JjZWQgbG9nb3V0JzsKJGxhbmdbJ2luZm9fZm9yY2Vsb2dvdXRfdGltZXMnXSA9ICdTcGVjaWZ5IGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgdGltZXMgbGlrZSBISDpNTSxISDpNTSB3aGVyZSB1c2VycyB3aWxsIGJlIGZvcmNpYmx5IGxvZ2dlZCBvdXQuIE5vdGUsIHRoaXMgdXNlcyB0aGUgcHN1ZWRvY3JvbiBtZWNoYW5pc20gc28geW91IG11c3QgYmUgc3VyZSB0aGF0IHRoZSB0aW1lcyBlbnRlcmVkIGhlcmUgd2lsbCBjb2luY2lkZSByZWFzb25hYmx5IHdpdGggeW91ciAmcXVvdDtwc2V1ZG9jcm9uIGdyYW51bGFyaXR5JnF1b3Q7IGFuZCB0aGF0IHN1ZmZpY2llbnQgcmVxdWVzdHMgd2lsbCBvY2N1ciB0byB5b3VyIHdlYnNpdGUgdG8gZW5zdXJlIHRoYXQgcHNldWRvY3JvbiBpcyBleGVjdXRlZC4nOwokbGFuZ1sncHJvbXB0X2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnXSA9ICdFeGNsdWRlIHVzZXJzIHRoYXQgaGF2ZSBiZWVuIGFjdGl2ZSBpbiA8ZW0+KG1pbnV0ZXMpPC9lbT4nOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF9zZXNzaW9uYWdlJ10gPSAnSWYgc3BlY2lmaWVkLCBhbnkgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYWN0aXZlIGluIHRoaXMgbnVtYmVyIG9mIHNlY29uZHMgd2lsbCBub3QgYmUgZm9yY2libHkgbG9nZ2VkIG91dCc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZSddID0gJ0JpenRvcyB0Jm91bWw7ciZvdW1sO2xuaSBha2Fyb2QgJXMgZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlO3Q/JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlZXh0ZW5zaW9uJ10gPSAnVGhlIHVwbG9hZGVkIGZpbGUgZG9lcyBub3QgbWF0Y2ggdGhlIGxpc3Qgb2YgYWxsb3dlZCBmaWxlIHR5cGVzJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdBbGwgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlIGhhcyBiZWVuIGRlbGV0ZWQnOwokbGFuZ1snaW5mb19lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnSWYgZW5hYmxlZCwgdGhpcyBtb2R1bGUgd2lsbCBsaXN0ZW4gdG8gZXZlbnRzIGZyb20gdGhlIEVjb21tZXJjZSBzdWl0ZS4gIFRoZSBmb2xsb3dpbmcgc2V0dGluZ3Mgb25seSBoYXZlIGVmZmVjdCBpZiB0aGlzIHNldHRpbmcgaXMgZW5hYmxlZC4nOwokbGFuZ1sncHJvbXB0X2Vjb21tX3BhaWRyZWdpc3RyYXRpb24nXSA9ICdMaXN0ZW4gdG8gT3JkZXIgRXZlbnRzJzsKJGxhbmdbJ2luZm9fcGFpZHJlZ19zZXR0aW5ncyddID0gJ1RoZSBmb2xsb3dpbmcgc2V0dGluZ3Mgb25seSBhcHBseSBpZiB1c2luZyBzZWxmIHJlZ2lzdHJhdGlvbiBhbmQgYWxsb3dpbmcgZm9yIHBhaWQgcmVnaXN0cmF0aW9uJzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ2RlbGV0ZV91c2VyJ10gPSAnRmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlOyB0Jm91bWw7cmwmZWFjdXRlO3NlJzsKJGxhbmdbJ2V4cGlyZV91c2VyJ10gPSAnRXhwaXJlIFVzZXInOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmNhbmNlbGxlZCddID0gJ0FjdGlvbiB0byBwZXJmb3JtIHdoZW4gYSBzdWJzY3JpcHRpb24gb3JkZXIgaXMgY2FuY2VsbGVkJzsKJGxhbmdbJ3Byb21wdF9hY3Rpb25fb3JkZXJkZWxldGVkJ10gPSAnQWN0aW9uIHRvIHBlcmZvcm0gd2hlbiBhIHN1YnNjcmlwdGlvbiBvcmRlciBpcyBkZWxldGVkJzsKJGxhbmdbJ2Vjb21tZXJjZV9zZXR0aW5ncyddID0gJ0Uta2VyZXNrZWRlbGVtIGJlJmFhY3V0ZTtsbCZpYWN1dGU7dCZhYWN1dGU7c29rJzsKJGxhbmdbJ3NlY3VyZWZpZWxkbWFya2VyJ10gPSAnQml6dG9ucyZhYWN1dGU7Z29zIG1lesWRIGplbHrFkSc7CiRsYW5nWydzZWN1cmVmaWVsZGNvbG9yJ10gPSAnQml6dG9ucyZhYWN1dGU7Z29zIG1lesWRIHN6JmlhY3V0ZTtuJzsKJGxhbmdbJ3Byb21wdF9lbmNyeXB0J10gPSAnVCZhYWN1dGU7cm9sZCBlenQgYXogYWRhdG90IHRpdGtvcyZpYWN1dGU7dHZhIGF6IGFkYXRiJmFhY3V0ZTt6aXNiYW4nOwokbGFuZ1snZXJyb3Jfbm90c3VwcG9ydGVkJ10gPSAnVGhlIGNob3NlbiBvcHRpb24gaXMgbm90IHN1cHBvcnRlZCBnaXZlbiB5b3VyIGN1cnJlbnQgY29uZmlndXJhdGlvbic7CiRsYW5nWydhdWRpdF91c2VyX2NyZWF0ZWQnXSA9ICdGZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7IGF1dG9tYXRpa3VzYW5sJmVhY3V0ZTt0cmVob3p2YSc7CiRsYW5nWydpbmZvX2F1dG9fY3JlYXRlX3Vua25vd24nXSA9ICdJZiBhIHVzZXIgaXMgYXV0aGVudGljYXRlZCBieSBhbiBleHRlcm5hbCBhdXRoZW50aWNhdGlvbiBtb2R1bGUgYnV0IGlzIG5vdCBrbm93biBpbiB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUgc2hvdWxkIGFuIEZFVSBhY2NvdW50IGJlIGNyZWF0ZWQgYXV0b21hdGljYWxseT8nOwokbGFuZ1sncHJvbXB0X2F1dG9fY3JlYXRlX3Vua25vd24nXSA9ICdBdXRvbWF0aWNhbGx5IENyZWF0ZSBVbmtub3duIFVzZXJzJzsKJGxhbmdbJ2Rpc3BsYXlfc2V0dGluZ3MnXSA9ICdLaWplbHomZWFjdXRlO3NpIGJlJmFhY3V0ZTtsbCZpYWN1dGU7dCZhYWN1dGU7c29rJzsKJGxhbmdbJ2luZm9fc3RkX2F1dGhfc2V0dGluZ3MnXSA9ICdBIGsmb3VtbDt2ZXRrZXrFkSBiJmFhY3V0ZTtsbCZpYWN1dGU7dCZhYWN1dGU7c29rIGNzYWsgYWtrb3IgJmVhY3V0ZTtydiZlYWN1dGU7bnllc2VrIGhhIGEgJmFtcDtxdW90O0JlJmVhY3V0ZTtwJmlhY3V0ZTt0ZXR0IGF6b25vcyZpYWN1dGU7dCZhYWN1dGU7cyZhbXA7cXVvdDstdCBoYXN6biZhYWN1dGU7bGp1ay4nOwokbGFuZ1snaW5mb19zdXBwb3J0X2xvc3R1biddID0gJ1NlbGVjdGluZyBObyB3aWxsIGRpc2FibGUgdGhlIGFiaWxpdHkgZm9yIGEgdXNlciB0byByZXF1ZXN0IGxvc3QgbG9naW4gaW5mb3JtYXRpb24sIGlycmVzcGVjdGl2ZSBvZiBvdGhlciBzZXR0aW5ncyc7CiRsYW5nWydpbmZvX3N1cHBvcnRfbG9zdHB3J10gPSAnU2VsZWN0aW5nIE5vIHdpbGwgZGlzYWJsZSB0aGUgYWJpbGl0eSBmb3IgYSB1c2VyIHRvIGEgcGFzc3dvcmQgcmVzZXQsIGlycmVzcGVjdGl2ZSBvZiBvdGhlciBzZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfc3VwcG9ydF9sb3N0dW4nXSA9ICdFbmdlZGQgbWVnIGEgZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlO2tuYWssIGhvZ3kgayZlYWN1dGU7cmomZWFjdXRlO2sgYSBmZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7bmV2JnV1bWw7a2V0JzsKJGxhbmdbJ3Byb21wdF9zdXBwb3J0X2xvc3RwdyddID0gJ0VuZ2VkZCBtZWcgYSBmZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7a25haywgaG9neSBqZWxzeiZvYWN1dGU7Y3NyJmVhY3V0ZTt0IGsmZWFjdXRlO3JqZW5layc7CiRsYW5nWydhdXRoX3NldHRpbmdzJ10gPSAnQXpvbm9zJmlhY3V0ZTt0JmFhY3V0ZTtzaSBiZSZhYWN1dGU7bGwmaWFjdXRlO3QmYWFjdXRlO3Nvayc7CiRsYW5nWydhdXRoZW50aWNhdGlvbiddID0gJ0JlJmVhY3V0ZTtwJmlhY3V0ZTt0ZXR0IGF6b25vcyZpYWN1dGU7dCZhYWN1dGU7cyc7CiRsYW5nWydhdXRoX2J1aWx0aW4nXSA9ICdGRVUgYWxhcHZldMWRIGF6b25vcyZpYWN1dGU7dCZhYWN1dGU7cyc7CiRsYW5nWydhdXRoX21vZHVsZSddID0gJ0F6b25vcyZpYWN1dGU7dCZhYWN1dGU7c2kgbW9kdWwvbSZvYWN1dGU7ZHN6ZXInOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ0EgRnJvbnRlbmRVc2VycyBtb2R1bCBrJnV1bWw7bCZvdW1sO25ib3rFkSBhem9ub3MmaWFjdXRlO3QmYWFjdXRlO3NpIG0mb2FjdXRlO2RzemVyZWtldCBpcyB0JmFhY3V0ZTttb2dhdCwgdiZhYWN1dGU7bHRveiZvYWN1dGU7IGsmZWFjdXRlO3Blc3MmZWFjdXRlO2dla2tlbC4gIEJpem9ueW9zIGZ1bmtjaW9uYWxpdCZhYWN1dGU7cyBuZW0gZm9nIG3FsWsmb3VtbDtkbmkgdmFneSBraSBsZXN6IGthcGNzb2x2YSBtaWtvciBuZW0gYSBiZSZlYWN1dGU7cCZpYWN1dGU7dGV0dCBhem9ub3MmaWFjdXRlO3QmYWFjdXRlO3N0IGhhc3puJmFhY3V0ZTtsb2QuJzsKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnQSAlcy1uYWsobmVrKSBtZWdhZG90dCAmZWFjdXRlO3J0JmVhY3V0ZTtrIG0mYWFjdXRlO3IgaGFzem4mYWFjdXRlO2xhdGJhbiB2YW4gZWd5IG0mYWFjdXRlO3NpayBmZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7ICZhYWN1dGU7bHRhbCc7CiRsYW5nWyd1bmlxdWUnXSA9ICdFZ3llZGknOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnQSAlcy1uYWsobmVrKSAoJXMpIG1lZ2Fkb3R0ICZlYWN1dGU7cnQmZWFjdXRlO2sgbmVtIGVneWVkaSc7CiRsYW5nWydwcm9tcHRfZm9yY2VfdW5pcXVlJ10gPSAnRm9yY2UgdmFsdWVzIG9mIHRoaXMgcHJvcGVydHkgdG8gYmUgdW5pcXVlIGFjcm9zcyBhbGwgdXNlciBhY2NvdW50cyc7CiRsYW5nWydoZWxwX3JldHVybmxhc3QnXSA9ICdVc2VkIHdpdGggdGhlIGxvZ2luIGFuZCBsb2dvdXQgZm9ybXMsIHRoaXMgcGFyYW1ldGVyIGlmIHNwZWNpZmllZCB3aWxsIGluZGljYXRlIHRoYXQgdGhlIHVzZXIgc2hvdWxkIGJlIHJldHVybmVkIHRvIHRoZSBwYWdlIChieSB1cmwpIHRoYXQgdGhlIHVzZXIgd2FzIHZpZXdpbmcgYmVmb3JlIHRoZSBhY3Rpb24gb2NjdXJyZWQuICBUaGlzIHBhcmFtZXRlciB3aWxsIG92ZXJyaWRlIHRoZSByZWRpcmVjdCBwcmVmZXJlbmNlcywgYW5kIHRoZSByZXR1cm50byBwYXJhbWV0ZXIuJzsKJGxhbmdbJ2hlbHBfbm9pbmxpbmUnXSA9ICdVc2VkIHdpdGggb25lIG9mIHRoZSBmb3JtcywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIGZvcm1zIHNob3VsZCBub3QgYmUgcGxhY2VkIGlubGluZSwgaW5zdGVhZCB0aGUgcmVzdWx0aW5nIG91dHB1dCBhZnRlciBmb3JtIHN1Ym1pc3Npb24gd2lsbCByZXBsYWNlIHRoZSBkZWZhdWx0IGNvbnRlbnQgYmxvY2snOwokbGFuZ1sndGl0bGVfcmVzZXRfc2Vzc2lvbiddID0gJ0xvZ2luIFNlc3Npb24gVGltZW91dCBXYXJuaW5nJzsKJGxhbmdbJ21zZ19yZXNldF9zZXNzaW9uJ10gPSAnWW91ciBsb2dpbiBzZXNzaW9uIGlzIGFib3V0IHRvIGV4cGlyZSwgcGxlYXNlIGNsaWNrICZxdW90OyZxdW90O09rJnF1b3Q7IHRvIGNvbmZpcm0geW91ciBhY3Rpdml0eSBvbiB0aGlzIHdlYnNpdGUuJzsKJGxhbmdbJ29rJ10gPSAnUmVuZGJlbic7CiRsYW5nWydyZXNldHNlc3Npb25fdGVtcGxhdGUnXSA9ICdSZXNldCBTZXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fbmFtZSddID0gJ1RoaXMgaXMgdGhlIGZpZWxkIG5hbWUsIHRvIGJlIHVzZWQgZm9yIGFkZHJlc3NpbmcgaW4gc21hcnR5LiAgSXQgbXVzdCBjb25zaXN0IG9mIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIHVuZGVyc2NvcmVzLic7CiRsYW5nWyd2aXNpdG9yc190YWInXSA9ICdMJmFhY3V0ZTt0b2dhdCZvYWN1dGU7ayc7CiRsYW5nWydmZXVfZ3JvdXBzX3Byb21wdCddID0gJ1YmYWFjdXRlO2xhc3N6IGVneSB2YWd5IHQmb3VtbDtiYiBGRVUgY3NvcG9ydG90IGFtZWx5IGwmYWFjdXRlO3RoYXRqYSBlenQgYXogb2xkYWx0JzsKJGxhbmdbJ2Vycm9yX211c3RzZWxlY3RfZ3JvdXAnXSA9ICdFZ3kgY3NvcG9ydG90IGtpIGtlbGwgdiZhYWN1dGU7bGFzenRhbmknOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnViZhYWN1dGU7bGFzc3ogZWd5ZXQnOwokbGFuZ1snc3RhcnRfeWVhciddID0gJ0tlemQmZWFjdXRlO3NpICZlYWN1dGU7dic7CiRsYW5nWydlbmRfeWVhciddID0gJ0JlZmVqZXrFkWQmZWFjdXRlO3MgJmVhY3V0ZTt2JzsKJGxhbmdbJ2RhdGUnXSA9ICdEJmFhY3V0ZTt0dW0nOwokbGFuZ1sncHJvbXB0X3RodW1ibmFpbF9zaXplJ10gPSAnQiZlYWN1dGU7bHllZ2smZWFjdXRlO3AgbSZlYWN1dGU7cmV0ZSc7CiRsYW5nWydPblVwZGF0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBNb2RpZmllZCc7CiRsYW5nWydlcnJvcl90b29tYW55c2VsZWN0ZWQnXSA9ICdUb28gbWFueSB1c2VycyBhcmUgc2VsZWN0ZWQgZm9yIGJ1bGsgb3BlcmF0aW9ucy4uLi4gUGxlYXNlIHRyaW0gaXQgdG8gMjUwIG9yIGxlc3MnOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdCaXp0b3NhbiB0Jm91bWw7ciZvdW1sO2xuaSBha2Fyb2QgYSBraXYmYWFjdXRlO2xhc3p0b3R0IGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtrYXQ/JzsKJGxhbmdbJ2RlbGV0ZV9zZWxlY3RlZCddID0gJ0tpdiZhYWN1dGU7bGFzenRvdHRhayB0Jm91bWw7cmwmZWFjdXRlO3NlJzsKJGxhbmdbJ3Byb21wdF9yYW5kb211c2VybmFtZSddID0gJ0dlbmVyYXRlIHJhbmRvbSB1c2VybmFtZSB3aGVuIGFkZGluZyBuZXcgdXNlcnMnOwokbGFuZ1snbW9udGhzJ10gPSAnaCZvYWN1dGU7bmFwJzsKJGxhbmdbJ3Byb21wdF9leHBpcmVhZ2UnXSA9ICdEZWZhdWx0IHVzZXIgZXhwaXJ5IHBlcmlvZCc7CiRsYW5nWydub3RpZmljYXRpb25fc2V0dGluZ3MnXSA9ICcmRWFjdXRlO3J0ZXMmaWFjdXRlO3QmZWFjdXRlO3NpIGJlJmFhY3V0ZTtsbCZpYWN1dGU7dCZhYWN1dGU7c29rJzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnVHVsYWpkb25zJmFhY3V0ZTtnIGJlJmFhY3V0ZTtsbCZpYWN1dGU7dCZhYWN1dGU7c29rJzsKJGxhbmdbJ3JlZGlyZWN0aW9uX3NldHRpbmdzJ10gPSAnJkFhY3V0ZTt0aXImYWFjdXRlO255JmlhY3V0ZTt0JmFhY3V0ZTtzaSBiZSZhYWN1dGU7bGwmaWFjdXRlO3QmYWFjdXRlO3Nvayc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnJkFhY3V0ZTtsdGFsJmFhY3V0ZTtub3MgYmUmYWFjdXRlO2xsJmlhY3V0ZTt0JmFhY3V0ZTtzb2snOwokbGFuZ1snc2Vzc2lvbl9zZXR0aW5ncyddID0gJ1Nlc3Npb24gYW5kIENvb2tpZSBTZXR0aW5ncyc7CiRsYW5nWydmaWVsZF9zZXR0aW5ncyddID0gJ01lesWRIGJlJmFhY3V0ZTtsbCZpYWN1dGU7dCZhYWN1dGU7c29rJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub25yZXF1aXJlZCddID0gJ1RoZSBsb3N0dXNlcm5hbWUgZmxhZyBjYW4gb25seSBiZSB1c2VkIG9uIHJlcXVpcmVkIGZpZWxkcyc7CiRsYW5nWydwcm9wX3RleHRhcmVhX3d5c2l3eWcnXSA9ICdXWVNJV1lHIGhhc3puJmFhY3V0ZTtsYXQmYWFjdXRlO25hayBlbmdlZCZlYWN1dGU7bHlleiZlYWN1dGU7c2UgZXplbiBhIHN6Jm91bWw7dmVnZXMgbWV6xZFuJzsKJGxhbmdbJ2luZm9fY29va2llc3RvcmVtZW1iZXInXSA9ICc8c3Ryb25nPk1lZ2plZ3l6JmVhY3V0ZTtzOiA8L3N0cm9uZz4gRXogYXogbWNyeXB0IGZ1bmtjaSZvYWN1dGU7dCBoYXN6biZhYWN1dGU7bGphIHRpdGtvcyZpYWN1dGU7dCZhYWN1dGU7c2kgYyZlYWN1dGU7bG9rcmEgZXMgZXp0IG5lbSB0YWwmYWFjdXRlO2x0dWsgYSB0ZWxlcCZpYWN1dGU7dCZlYWN1dGU7c2tvci4gSyZlYWN1dGU7cmomdXVtbDtrIGwmZWFjdXRlO3BqIGthcGNzb2xhdGJhIGEgc3plcnZlciByZW5kc3plcmdhemQmYWFjdXRlO2omYWFjdXRlO3ZhbC4nOwokbGFuZ1snZWRpdGluZ191c2VyJ10gPSAnTSZvYWN1dGU7ZG9zJmlhY3V0ZTt0b3R0IGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTsnOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdEbyBub3QgaW5saW5lIGZvcm1zJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnS2F0dGludHMgaWRlIGhhIG5lbSBlbWwmZWFjdXRlO2tzemVsIGEgYmVsJmVhY3V0ZTtwJmVhY3V0ZTtzaSBpbmZvcm0mYWFjdXRlO2NpJm9hY3V0ZTtkcmEnOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ0thdHRpbnRzIGlkZSBoYSBuZW0gZW1sJmVhY3V0ZTtrc3plbCBhIGplbHN6YXZhZHJhJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnS2F0dGludHMgaWRlLCBob2d5IGtpamVsZW50a2V6eic7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnS2F0dGludHMgaWRlLCBob2d5IGJlJmFhY3V0ZTtsbCZpYWN1dGU7dHNkIGEgamVsc3phdmFkICZlYWN1dGU7cyBtJmFhY3V0ZTtzIGluZm9ybSZhYWN1dGU7Y2kmb2FjdXRlO2lkJzsKJGxhbmdbJ3ZpZXd1c2VyX3RlbXBsYXRlJ10gPSAnRmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlOyBzYWJsb24gbWVndGVraW50JmVhY3V0ZTtzZSc7CiRsYW5nWydldmVudCddID0gJ0VzZW0mZWFjdXRlO255JzsKJGxhbmdbJ2ZldV9ldmVudF9ub3RpZmljYXRpb24nXSA9ICdGRVUgZXNlbSZlYWN1dGU7bnkgJmVhY3V0ZTtydGVzJmlhY3V0ZTt0JmVhY3V0ZTtzJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJyZFYWN1dGU7cnRlcyZpYWN1dGU7dCZlYWN1dGU7c2kgZW1haWwgYyZpYWN1dGU7bSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnJkVhY3V0ZTtydGVzJmlhY3V0ZTt0JmVhY3V0ZTtzaSBlbWFpbCBzYWJsb24nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9zdWJqZWN0J10gPSAnJkVhY3V0ZTtydGVzJmlhY3V0ZTt0JmVhY3V0ZTtzaSBlbWFpbCB0JmFhY3V0ZTtyZ3lhJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25zJ10gPSAnRW1haWwgJmVhY3V0ZTtydGVzJmlhY3V0ZTt0JmVhY3V0ZTtzZWsnOwokbGFuZ1snT25Mb2dpbiddID0gJ0JlamVsZW50a2V6JmVhY3V0ZTtza29yJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnS2lqZWxlbnRrZXomZWFjdXRlO3Nrb3InOwokbGFuZ1snT25FeHBpcmVVc2VyJ10gPSAnT24gU2Vzc2lvbiBFeHBpcnknOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnJlVhY3V0ZTtqIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTsgbCZlYWN1dGU7dHJlaG96JmFhY3V0ZTtzYWtvcic7CiRsYW5nWydPbkRlbGV0ZVVzZXInXSA9ICdGZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7IHQmb3VtbDtybCZlYWN1dGU7c2Vrb3InOwokbGFuZ1snT25VcGRhdGVVc2VyJ10gPSAnRmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlOyBiZSZhYWN1dGU7bGwmaWFjdXRlO3QmYWFjdXRlO3NhaSBtJm9hY3V0ZTtkb3MmaWFjdXRlO3QmYWFjdXRlO3Nha29yJzsKJGxhbmdbJ09uQ3JlYXRlR3JvdXAnXSA9ICdGZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7Y3NvcG9ydCBsJmVhY3V0ZTt0cmVob3omYWFjdXRlO3Nha29yJzsKJGxhbmdbJ09uRGVsZXRlR3JvdXAnXSA9ICdGZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7Y3NvcG9ydCB0Jm91bWw7cmwmZWFjdXRlO3Nla29yJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcHJlbXNnJ10gPSAnQXogZWxmZWxlanRldHQgYmVsJmVhY3V0ZTtwJmVhY3V0ZTtzaSBpbmZvcm0mYWFjdXRlO2NpJm9hY3V0ZTsgZnVua2Npb25hbGl0JmFhY3V0ZTtzIGJlZmVqZXrFkWQmb3VtbDt0dC4gVGFsJmFhY3V0ZTtsdHVuayBlZ3kgZWd5ZWRpIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtuZXZldCBhbWkgbWVnZmVsZWwgYXogJmFhY3V0ZTtsdGFsYWQgYmUmaWFjdXRlO3J0IHImZWFjdXRlO3N6bGV0ZWtuZWsnOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ0EgZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlO25ldmVkJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcG9zdG1zZyddID0gJ1dlIHJlY29tbWVuZCB5b3UgcmVjb3JkIHRoaXMgaW5mb3JtYXRpb24gaW4gYSBzZWN1cmUsIGJ1dCByZXRyaWV2YWJsZSBsb2NhdGlvbi4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX2NoYW5nZV9zZXR0aW5ncyddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGNoYW5nZSBzZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfdmVyaWZ5X2NvZGUnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBjb2RlIHZlcmlmaWNhdGlvbiAqJzsKJGxhbmdbJ2xvc3R1bl9kZXRhaWxzX3RlbXBsYXRlJ10gPSAnTG9zdCBVc2VybmFtZSBEZXRhaWxzIFRlbXBsYXRlJzsKJGxhbmdbJ2xvc3R1bl9jb25maXJtX3RlbXBsYXRlJ10gPSAnTG9zdCBVc2VybmFtZSBDb25maXJtIFRlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZW1hdGNoJ10gPSAnSGliYTogVCZvdW1sO2JiLCBtaW50IGVneSBmZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7aSBmaSZvYWN1dGU7a290IHRhbCZhYWN1dGU7bHR1bmsgYW1pIG1lZ2VneWV6aWsgYSBtZWdhZG90dCB0dWxhamRvbnMmYWFjdXRlO2duYWsnOwokbGFuZ1snZXJyb3JfY2FudGZpbmR1c2VyJ10gPSAnSGliYTogTmVtIHRhbCZhYWN1dGU7bHRhbSBtZWdmZWxlbMWRIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTt0JzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdIaWJhOiBOZW0gdGFsJmFhY3V0ZTtsdGFtIGlseWVuIG5ldsWxIGNzb3BvcnRvdCc7CiRsYW5nWydyZWFkb25seSddID0gJ0NzYWsgb2x2YXNoYXQmb2FjdXRlOyc7CiRsYW5nWydwcm9tcHRfdXNlcm1hbmlwdWxhdG9yJ10gPSAnVXNlciBNYW5pcHVsYXRvciBDbGFzcyc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdMb2dnZWQgb3V0IGJ5IGFkbWluaXN0cmF0b3InOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ0NzYWsgYmVqZWxlbnRrZXpldHQgZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlO2sgbXV0YXQmYWFjdXRlO3NhJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdGZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7IGtpbCZlYWN1dGU7cHRldCZlYWN1dGU7c2UnOwokbGFuZ1sndXNlcl9wcm9wZXJ0aWVzJ10gPSAnRmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlOyB0dWxhamRvbnMmYWFjdXRlO2dhaSc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ1VzZXIgSGlzdG9yeSc7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnQnOwokbGFuZ1snY2xlYXInXSA9ICdDbGVhcic7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknXSA9ICdFeHBvcnQgVXNlciBIaXN0b3J5IFRvIEFTQ0lJIHRoYXQgaXMgYXQgbGVhc3QnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdDbGVhciBVc2VyIEhpc3RvcnkgcmVjb3JkcyB0aGF0IGlzIGF0IGxlYXN0JzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJ0VsZmVsZWp0ZXR0ZWQgYSBiZWwmZWFjdXRlO3AmZWFjdXRlO3NpIGluZm9ybSZhYWN1dGU7Y2kmb2FjdXRlO2lkPyc7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdFeHBvcnQgZ3JvdXAgZGVmaW5pdGlvbiAoYW5kIHByb3BlcnRpZXMpIHRvIFhNTCc7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeW1haW50ZW5hbmNlJ10gPSAnVXNlciBIaXN0b3J5IE1haW50ZW5hbmNlJzsKJGxhbmdbJ3llcyddID0gJ0lnZW4nOwokbGFuZ1snbm8nXSA9ICdOZW0nOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnT2YnOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogS29ybCZhYWN1dGU7dCBuJmVhY3V0ZTtsayZ1dW1sO2wgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAnRWd5ICZvYWN1dGU7ciZhYWN1dGU7cyc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICdIYXQgJm9hY3V0ZTtyJmFhY3V0ZTtzJzsKJGxhbmdbJ2RhdGVfdHdlbHZlaG91cm9sZCddID0gJ1RpemVuayZlYWN1dGU7dCAmb2FjdXRlO3ImYWFjdXRlO3MnOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICdFZ3kgbmFwb3MnOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnRWd5IGhldGVzJzsKJGxhbmdbJ2RhdGVfdHdvd2Vla3NvbGQnXSA9ICdLJmVhY3V0ZTt0IGhldGVzJzsKJGxhbmdbJ2RhdGVfb25lbW9udGhvbGQnXSA9ICdFZ3kgaCZvYWN1dGU7bmFwb3MnOwokbGFuZ1snZGF0ZV90aHJlZW1vbnRoc29sZCddID0gJ0gmYWFjdXRlO3JvbSBIJm9hY3V0ZTtuYXBvcyc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ0hhdCBoJm9hY3V0ZTtuYXBvcyc7CiRsYW5nWydkYXRlX29uZXllYXJvbGQnXSA9ICdFZ3kgJmVhY3V0ZTt2ZXMnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnQ3NvcG9ydG9zJmlhY3V0ZTt0JmFhY3V0ZTtzICZlYWN1dGU7cyByZW5kZXomZWFjdXRlO3MnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ0Ega3JpdCZlYWN1dGU7cml1bW5hayBtZWdmZWxlbMWRIGJlamVneXomZWFjdXRlO3Nlayc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfZGVzYyddID0gJ0NzJm91bWw7a2tlbsWRIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtuJmVhY3V0ZTt2JzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdOb3Zla3bFkSBmZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7biZlYWN1dGU7dic7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnQ3Mmb3VtbDtra2VuxZEgZCZhYWN1dGU7dHVtJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2FzYyddID0gJ04mb3VtbDt2ZWt2xZEgZCZhYWN1dGU7dHVtJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ0Rlc2NlbmRpbmcgRXZlbnQgVHlwZSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2FzYyddID0gJ0FzY2VuZGluZyBFdmVudCBUeXBlJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfZGVzYyddID0gJ0Rlc2NlbmRpbmcgSXAgQWRkcmVzcyc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2FzYyddID0gJ0FzY2VuZGluZyBJcCBBZGRyZXNzJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdObyBIaXN0b3J5IERldGVjdGVkJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXQnOwokbGFuZ1sncHJvbXB0X2dyb3VwX2lwJ10gPSAnR3JvdXAgQnkgSVAgQWRkcmVzcyc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0V2ZW50IFR5cGUgRmlsdGVyJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ0Rpc3BsYXkgb25seSBldmVudHMgdGhhdCBhcmUgbGVzcyB0aGFuOic7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnUGFnZSBMaW1pdCc7CiRsYW5nWydmb3InXSA9ICdmb3InOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdVc2VyIEhpc3RvcnkgUmVwb3J0JzsKJGxhbmdbJ3Vua25vd24nXSA9ICdVbmtub3duJzsKJGxhbmdbJ3Byb21wdF9pcGFkZHJlc3MnXSA9ICdJUCBjJmlhY3V0ZTttJzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICdFdmVudCBUeXBlJzsKJGxhbmdbJ3Byb21wdF9kYXRlJ10gPSAnRCZhYWN1dGU7dHVtJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdWaXNzemEnOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ0ltcG9ydCBPcGVyYXRpb24gQ29tcGxldGUnOwokbGFuZ1sncHJvbXB0X2xpbmVzcHJvY2Vzc2VkJ10gPSAnTGluZXMgUHJvY2Vzc2VkJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdFcnJvcnMgRW5jb3VudGVyZWQnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ0JlamVneXomZWFjdXRlO3MgaG96eiZhYWN1dGU7YWR2YSc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnQ291bGQgbm90IGZpbmQgcHJvcGVydGllcyBmb3IgZ3JvdXAgJXMnOwokbGFuZ1snZXJyb3Jfbm9yZXNwb25zZWZyb21zZXJ2ZXInXSA9ICdDb3VsZCBub3QgZ2V0IGEgcmVzcG9uc2UgZnJvbSB0aGUgU01UUCBzZXJ2ZXInOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnRmlsZSBzcGVjaWZpZWQgKCVzKSBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ0ludmFsaWQgdmFsdWUgZm9yIGRyb3Bkb3duIG9yIG11bHRpc2VsZWN0IGZpZWxkICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkbGVuZ3RoJ10gPSAnRmllbGQgJXMgZXhjZWVkcyBtYXhpbXVtIGxlbmd0aCc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ0ltcG9ydCBFcnJvciAobGluZSAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdDb3VsZCBub3QgZ2V0IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9ucyAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgY29sdW1uIHRvIG1hdGNoIHRoZSByZXF1aXJlZCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ0NvdWxkIG5vdCBmaW5kIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ1RoZSBmaWxlIHNwZWNpZmllZCBmb3IgaW1wb3J0IGlzIG5vdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ05lbSB0dWR0YW0gbWVnbnlpdG5pIGEgZiZhYWN1dGU7amx0JzsKJGxhbmdbJ2luZm9faW1wb3J0dXNlcnNmaWxlZm9ybWF0J10gPSAnPGg0PkZpbGUgRm9ybWF0IEluZm9ybWF0aW9uPC9oND4NCjxwPlRoZSBpbnB1dCBmaWxlIG11c3QgYmUgaW4gQVNDSUkgZm9ybWF0IHVzaW5nIGNvbW1hIHNlcGFyYXRlZCB2YWx1ZXMuICBFYWNoIGxpbmUgaW4gdGhpcyBpbnB1dCBmaWxlICh3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIGhlYWRlciBsaW5lLCBkaXNjdXNzZWQgYmVsb3cpIHJlcHJlc2VudHMgb25lIHVzZXIgcmVjb3JkLiAgVGhlIG9yZGVyIG9mIHRoZSBmaWVsZHMgaW4gZWFjaCBsaW5lIG11c3QgYmUgaWRlbnRpY2FsLjwvcD4NCjxoNT5IZWFkZXIgbGluZTwvaDU+DQo8dWw+DQo8bGk+VGhlIGZpcnN0IGxpbmUgb2YgdGhlIGZpbGUgbXVzdCBiZWdpbiB3aXRoIHR3byBwb3VuZCAoXCMpIGNoYXJhY3RlcnMsIGFuZCBuYW1lcyBlYWNoIG9mIHRoZSBmaWVsZHMgaW4gdGhlIGZpbGUuICBUaGUgbmFtZXMgb2YgdGhlc2UgZmllbGRzIGlzIHNpZ25pZmljYW50LiAgVGhlcmUgYXJlIHNvbWUgcmVxdWlyZWQgZmllbGQgbmFtZXMgKHNlZSBiZWxvdyksIGFuZCBvdGhlciBmaWVsZCBuYW1lcyBtdXN0IG1hdGNoIHRoZSBwcm9wZXJ0eSBuYW1lcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwIHVzZXJzIGFyZSBnb2luZyB0byBiZSBhZGRlZCBpbnRvLjwvbGk+DQo8bGk+VGhlIGltcG9ydCBwcm9jZXNzIHdpbGwgZmFpbCBpZiB0aGUgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIGRvZXMgbm90IG1hdGNoIGFsbCBvZiB0aGUgcmVxdWlyZWQgcHJvcGVydGllcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwIHRoYXQgdXNlcnMgYXJlIGJlaW5nIGFkZGVkIGludG88L2xpPg0KPGxpPlRoZSBpbnB1dCBmaWxlIG1heSBjb250YWluIGZpZWxkcyByZXByZXNlbnRpbmcgc29tZSBvZiB0aGUgb3B0aW9uYWwgcHJvcGVydGllcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLjwvbGk+DQo8bGk+VGhlIGltcG9ydCBwcm9jZXNzIHdpbGwgaWdub3JlIGFueSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgdGhhdCBhcmUgZWl0aGVyIG5vdCBrbm93biwgb3IgbWFwIHRvIHByb3BlcnRpZXMgdGhhdCBhcmUgPGVtPm9mZjwvZW0+IGluIHRoZSBzcGVjaWZpZWQgdXNlciBncm91cC48L2xpPg0KPC91bD48YnIvPg0KPGg2PjxzdHJvbmc+Q29sdW1uYXIgRGF0YTwvc3Ryb25nPjwvaDU+DQo8dWw+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcmlkPC9zdHJvbmc+IEZpZWxkIC0gVGhlIHVzZXJpZCBmb3IgdGhlIHVzZXIuIEEgdmFsdWUgaW4gdGhpcyBmaWVsZCB3aWxsIGluZGljYXRlIHlvdSBhcmUgZG9pbmcgYW4gdXBkYXRlLiAgVGhlcmUgaXMgYSBjaGVja2JveCBkdXJpbmcgdGhlIGltcG9ydCBwcm9jZXNzIHRvIHNwZWNpZnkgdGhhdCB0dWUgdXNlcmlkIGZpZWxkIGNhbiBiZSBpZ25vcmVkIGZvciB0aGUgcHVycG9zZXMgb2YgbWlncmF0aW5nIHVzZXJzIGZyb20gb25lIHNlcnZlciB0byBhbm90aGVyLjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gRmllbGQgLSBUaGUgZGVzaXJlZCB1c2VybmFtZS4NCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNoIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBUaGUgcmVjb3JkIHdpbGwgZmFpbCBpZiBhIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZS48L3A+PC9saT4NCjxsaT5UaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBGaWVsZCAtIFRoZSBwYXNzd29yZCB0byBzZXQgZm9yIHRoZSB1c2VyLiAgT3B0aW9uYWxseSwgYSA8c3Ryb25nPnBhc3N3b3JkaGFzaDwvc3Ryb25nPiBmaWVsZCBtYXkgYmUgaW5jbHVkZWQgdGhhdCBzcGVjaWZpZXMgdGhlZSA8ZW0+c2FsdGVkPC9lbT4gTUQ1IGhhc2ggb2YgdGhlIHVzZXJzIHBhc3N3b3JkLiAgSWYgdGhlIHBhc3N3b3JkIGZpZWxkIGlzIGVtcHR5IHdoZW4gY3JlYXRpbmcgbmV3IHVzZXJzIHRoZSBwYXNzd29yZCAmcXVvdDtjaGFuZ2VtZSZxdW90OyBpcyBoYXJkY29kZWQuPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5jcmVhdGVkYXRlPC9zdHJvbmc+IEZpZWxkIC0gdG9kbzwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+ZXhwaXJlczwvc3Ryb25nPiBGaWVsZCAtIHRvZG88L2xpPg0KPGxpPlRoZSA8c3Ryb25nPmdyb3VwbmFtZTwvc3Ryb25nPiBGaWVsZCAtIFRoZSBncm91cHMgdGhhdCB5b3Ugd2FudCB0byBoYXZlIHRoZSB1c2VyIGJlIGEgbWVtYmVyIG9mLiBJZiBhbGwgcmVxdWlyZWQgZmllbGRzIGFyZSBub3QgZmlsbGVkIGluIHRoZSBpbnNlcnQvdXBkYXRlIG9mIHRoZSByZWNvcmQgd2lsbCBmYWlsLiBTZWUgTXVsdGlzZWxlY3QgRmllbGRzIGJlbG93IGZvciBzeW50YXguPC9saT4NCjxsaT5Ecm9wZG93bi9SYWRpbyBGaWVsZHMNCiAgICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QgRmllbGRzDQogICAgPHA+TXVsdGlzZWxlY3QgZmllbGRzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBBU0NJSSBmaWxlIGFzIGEgOiBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzLCB3aGVyZSBlYWNoIHN0cmluZyByZXByZXNlbnRzIHRoZSB0ZXh0IHNob3duIGluIHRoZSBtdWx0aXNlbGVjdCBsaXN0PC9wPg0KPC9saT4NCjxsaT5EYXRlIEZpZWxkcw0KICAgIDxwPk11c3QgYmUgaW4gdGhlIGZvcm1hdCBvZiBNTS1ERC1ZWVlZPC9wPg0KPC9saT4NCjxsaT5JbWFnZSBGaWVsZHMNCiAgICA8cD5JbWFnZSBhcmUgZmllbGRzIHdobyYjMDM5O3MgY29sdW1uIG5hbWUgbWF0Y2hlcyBhIHByb3BlcnR5IG9mIHR5cGUgSW1hZ2UuICBJZiB0aGlzIGZpZWxkIGlzIGEgcmVxdWlyZWQgcGFydCBvZiB0aGUgZGVzdGluYXRpb24gZ3JvdXAsIHRoZW4gdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiB0aGUgdXBsb2FkcyBkaXNyZWN0b3J5IG9mIHRoZSBDTVMgaW5zdGFsbGF0aW9uLiAgSWYgdGhlIGltYWdlIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvcD48L2xpPg0KPC91bD4NCjxoNT5Ob3RlczwvaDU+DQo8cD5UaGUgaW1wb3J0IHByb2Nlc3MgaXMgc3ViamVjdCB0byB0aGUgbGltaXRhdGlvbnMgaW1wb3NlZCBieSB0aGUgaG9zdCBwcm92aWRlciwgc3VjaCBhcyBtZW1vcnkgbGltaXRhdGlvbnMsIHByb2Nlc3NpbmcgdGltZSwgZmlsZSBzaXplIHVwbG9hZCwgYW5kIHNhZmUgbW9kZSByZXN0cmljdGlvbnMuICBBbnkgb25lIG9mIHRoZXNlIGxpbWl0YXRpb25zIG1heSBjYXVzZSB0aGUgaW1wb3J0IHRvIGZhaWwuIFRoZXJlZm9yZSBpdCBpcyBhZHZpc2FibGUgdG8gZW5zdXJlIHRoYXQgaW1wb3J0IGZpbGVzIGFyZSBzbWFsbGVyIGluIHNpemUsIGFuZCBzaW1wbGVyIGluIG5hdHVyZS48L3A+DQo8cD5UaG91Z2ggZXZlcnkgZWZmb3J0IGhhcyBiZWVuIG1hZGUgdG8gZW5zdXJlIHRoYXQgZGF0YWJhc2UgY29ycnVwdGlvbiB3aWxsIG5vdCBvY2N1ciwgaXQgaXMgYWR2aXNhYmxlIHRvIHBlcmZvcm0gYSBkYXRhYmFzZSBiYWNrdXAgYmVmb3JlIGRvaW5nIGEgdXNlciBpbXBvcnQuPC9wPg0KPHA+VGhlIEV4cG9ydCBkYXRhIGlzIGluIHRoZSBzYW1lIGZvcm1hdCBhcyBuZWVkZWQgZm9yIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0IFVzZXJzIEludG8gVGhpcyBHcm91cCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdJbnB1dCBDU1YgRmlsZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0eG1sZmlsZSddID0gJ0lucHV0IFhNTCBGaWxlJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0V4cG9ydCBVc2Vycyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnQgVXNlcnMnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnQ2xlYXInOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdJbWFnZSBEZXN0aW5hdGlvbiBQYXRoJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIHdpdGggYSBtaXNzaW5nIChidXQgcmVxdWlyZWQpIHVwbG9hZCc7CiRsYW5nWydlcnJvcl9iYWRfeG1sJ10gPSAnQ291bGQgbm90IHBhcnNlIHRoZSBwcm92aWRlZCBYTUwgZmlsZSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnQ2Fubm90IGRlbGV0ZSBhIGdyb3VwIHRoYXQgc3RpbGwgaGFzIHVzZXJzJzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdUaGlzIHVzZXIgaXMgYWxyZWFkeSBsb2dnZWQgaW4nOwokbGFuZ1snZXJyb3JfY2FwdGNoYW1pc21hdGNoJ10gPSAnVGhlIHRleHQgZnJvbSB0aGUgaW1hZ2Ugd2FzIG5vdCBlbnRlcmVkIGNvcnJlY3RseSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnQWxsb3cgdXNlcnMgdG8gbG9naW4gbW9yZSB0aGFuIG9uY2UnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0ltYWdlIEZpbGUgRXh0ZW5zaW9ucyB0aGF0IFVzZXJzIGFsbG93ZWQgdG8gdXBsb2FkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25SZWZyZXNoVXNlciddID0gJzxoMz5PblJlZnJlc2hVc2VyPC9oMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIHRoZSB1c2VyIHNlc3Npb24gaXMgcmVmcmVzaGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBVc2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjxsaT48ZW0+cHJvcHM8L2VtPiAtIEEgaGFzaCBmaWxsZWQgd2l0aCB0aGUgcHJvcGVydGllcyBvZiB0aGUgdXNlcjwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgdXBkYXRlZCAoZWl0aGVyIGJ5IHVzZXIgdGhlbXNlbGYgb3IgYWRtaW4pPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgZ3JvdXAgZGVzY3JpcHRpb248L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVHcm91cCddID0gJzxoMz5PbkRlbGV0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBpZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+aXA8L2VtPiAtIFRoZSBpcCBhZGRyZXNzIG9mIHRoZSBjbGllbnQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0PC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uRXhwaXJlVXNlciddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGV4cGlyZXM8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9pbmZvX09uTG9naW4nXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbiB0byB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBvdXQgb2YgdGhlIHN5c3RlbSc7CiRsYW5nWydldmVudF9pbmZvX09uRXhwaXJlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGlzIGV4cGlyZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIG5ldyB1c2VyIGlzIGNyZWF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PblJlZnJlc2hVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gdGhlIHVzZXIgc2Vzc2lvbiBpcyByZWZyZXNoZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaW5mbyBpcyB1cGRhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGFjY291bnQgaXMgZGVsZXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgdXBkYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgZGVsZXRlZCc7CiRsYW5nWydiYWNrZW5kX2dyb3VwJ10gPSAnQmFja2VuZCBHcm91cCc7CiRsYW5nWydpbmZvX3N0YXInXSA9ICcqIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSBmdWxsIHNtYXJ0eSB0ZW1wbGF0ZXMuPGJyLz5BbG9uZyB3aXRoIG90aGVyIHByZS1leGlzdGluZyBzbWFydHkgdmFyaWFibGVzIGFuZCBwbHVnaW5zLCB0aGUgeyR1c2VybmFtZX0gYW5kIHskZ3JvdXB9IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmllLiAgPGVtPihUaGUgeyRncm91cH0gdmFyaWFibGUgbWF0Y2hlcyB0aGUgZmlyc3QgZ3JvdXAgdG8gd2hpY2ggdGhlIHVzZXIgYmVsb25ncy4pPC9lbT4uJzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdFZGl0IHRoaXMgZmllbGQgdG8gcmVzZXQgdGhlIHVzZXJzIHBhc3N3b3JkJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdFZGl0IHRoaXMgZmllbGQgdG8gcmVzZXQgdGhlIHVzZXJzIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1lX2V4aXN0cyddID0gJ0EgdXNlciB3aXRoIHRoYXQgdXNlcm5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnTm8gcmVzdWx0cyByZXR1cm5lZCBmcm9tIGNzdiBleHBvcnQnOwokbGFuZ1sncHJvbXB0X3VuZmxkbGVuJ10gPSAnTGVuZ3RoIG9mIHVzZXJuYW1lIGZpZWxkJzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ0xlbmd0aCBvZiBwYXNzd29yZCBmaWVsZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmRsZW5ndGhzJ10gPSAnTWluL01heCBwYXNzd29yZCBsZW5ndGhzIGFyZSBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZWxlbmd0aHMnXSA9ICdNaW4vTWF4IHVzZXJuYW1lIGxlbmd0aHMgYXJlIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ0ludmFsaWQgRW1haWwgYWRkcmVzcyc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ1dlIGNvdWxkIG5vdCBmaW5kIGFuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgYWNjb3VudCc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2VldHRpbmdpbmZvJ10gPSAnUHJvYmxlbSBzZXR0aW5nIHVzZXIgaW5mbyc7CiRsYW5nWydlcnJvcl9zZXR0aW5ncHJvcGVydHknXSA9ICdQcm9ibGVtIHNldHRpbmcgcHJvcGVydHknOwokbGFuZ1sndXNlcl9hZGRlZCddID0gJ1VzZXIgQWRkZWQgJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdVc2VyIERlbGV0ZWQgdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnVHVsYWpkb25zJmFhY3V0ZTtnJzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWYWx1ZSAocmVndWxhciBleHByZXNzaW9uKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ1dhcm5pbmc6IFRoZXNlIGZpZWxkcyBhZmZlY3QgdGhlIHNpemUgb2YgaW5wdXQgZmllbGRzIGZvciBmb3Jtcy4gIERlY3JlYXNpbmcgdGhpcyBudW1iZXIgb24gYW4gZXhpc3Rpbmcgc2l0ZSBtYXkgbm90IGJlIGFkdmlzYWJsZSc7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFkanVzdCB0aGUgbW9kdWxlIHByZWZlcmVuY2VzPyc7CiRsYW5nWydlcnJvcl9lbWFpbGFscmVhZHl1c2VkJ10gPSAnTSZhYWN1dGU7ciBoYXN6biZhYWN1dGU7bGF0YmFuIGxldsWRIGVtYWlsIGMmaWFjdXRlO20nOwokbGFuZ1sncHJvbXB0X3VzZWNvb2tpZXN0b3JlbWVtYmVyJ10gPSAnUyZ1dW1sO3RpayBoYXN6biZhYWN1dGU7bGF0YSBhIGJlamVsZW50a2V6JmVhY3V0ZTtzaSBpbmZvcm0mYWFjdXRlO2NpJm9hY3V0ZTsgJmVhY3V0ZTtzemJlbiB0YXJ0JmFhY3V0ZTtzJmFhY3V0ZTtyYSc7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ1MmdXVtbDt0aSBuZXZlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnSXNtJmVhY3V0ZTt0bMWRZMWRIGVtYWlsIGMmaWFjdXRlO20gaGFzem4mYWFjdXRlO2xhdCZhYWN1dGU7bmFrIGVuZ2VkJmVhY3V0ZTtseWV6JmVhY3V0ZTtzZSc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdFbWFpbCBjJmlhY3V0ZTttIGEgZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlO24mZWFjdXRlO3YnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnQXR0ZW1wdCB0byBrZWVwIGxvZ2lucyBhbGl2ZSBieSB0aGUgdXNlIG9mIGEgY29va2llIDxlbT4odGhlIGNvb2tpZSBpcyByZXNldCBvbiBhY3Rpdml0eSBpbiB0aGUgd2Vic2l0ZSk8L2VtPic7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcoVCZvdW1sO2JiIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTsgaXMgaGFzem4mYWFjdXRlO2xoYXRqYSB1Z3lhbmF6dCBheiBlbWFpbCBjJmlhY3V0ZTttZXQpJzsKJGxhbmdbJ2luZm9fdXNlcm5hbWVfaXNfZW1haWwnXSA9ICcoQSBmZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7IGVtYWlsIGMmaWFjdXRlO20mZWFjdXRlO3QgaGFzem4mYWFjdXRlO2xqYSBmZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7biZlYWN1dGU7dmsmZWFjdXRlO250IC0tIE5lIGhhc3puJmFhY3V0ZTtsZCBlenQgYXogaXNtJmVhY3V0ZTt0bMWRZMWRIGVtYWlsIGMmaWFjdXRlO20gaGFzem4mYWFjdXRlO2xhdCZhYWN1dGU7bmFrIGVuZ2VkJmVhY3V0ZTtseWV6JmVhY3V0ZTtzJmVhY3V0ZTt2ZWwhKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJ0FsbG93IGR1cGxpY2F0ZSAmcXVvdDtmb3Jnb3QgcGFzc3dvcmQmcXVvdDsgcmVtaW5kZXJzPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoQWxsb3cgYSB1c2VycyB0byByZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQsIGV2ZW4gaWYgdGhleSBoYXZlbiYjMDM5O3QgYWN0ZWQgb24gYSBwcmV2aW91cyBvbmUpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnVXNlIEZyb250LWVuZCBVc2VyIHNwZWNpZmljIHBlcm1pc3Npb25zPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFsbHksIEZFVVNlcnMgcGVybWlzc2lvbnMgYXJlIHRoZSBzYW1lIGFzIHRoZSBlcXVpdmFsZW50IEFkbWluIEFyZWEgcGVybWlzc2lvbnMgbGlrZSBBZGQgVXNlciwgQWRkIEdyb3VwLCBldGMuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZXJlIHdpbGwgYmUgc2VwYXJhdGUgcGVybWlzc2lvbnMgZm9yIEZFVXNlcnMuKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZGVkIGZpbGUgKGludGVybmFsIGVycm9yKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtX3VwbG9hZCddID0gJ1RoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB5b3VyIHVwbG9hZGVkIGZpbGUuICBQbGVhc2UgdHJ5IGFnYWluJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1c2VybmFtZSddID0gJ05lbSAmaWFjdXRlO3J0JmFhY3V0ZTtsIGJlIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtuZXZldCc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdOZW0gJmlhY3V0ZTtydGFkIGJlIGF6IGVtYWlsIGMmaWFjdXRlO21lZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdOZW0gYWR0JmFhY3V0ZTtsIG1lZyBqZWxzeiZvYWN1dGU7dCc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nb3V0J10gPSAnRnJvbnRlbmRVc2VyIGtpamVsZW50a2V6JmVhY3V0ZTtzJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0Zyb250ZW5kVXNlciBiZWplbGVudGtleiZlYWN1dGU7cyc7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPlVTRSBDQVVUSU9OPC9iPiB3aGVuIGNoYW5naW5nIGV4aXN0aW5nIHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gZ3JvdXBzLCB5b3UgbWF5IHBvdGVudGlhbGx5IGNhdXNlIGRhbWFnZSBhbmQgYnJlYWsgYW4gZXhpc3Rpbmcgc2l0ZSA8aT4oZXNwZWNpYWxseSBpZiB5b3UgcmVkdWNlIGZpZWxkIGxlbmd0aHMsIGV0Yyk8L2k+PC9mb250Pic7CiRsYW5nWydpbmZvX3NtdHB2YWxpZGF0ZSddID0gJ0V6IGEgZnVua2NpJm9hY3V0ZTsgbmVtIG3FsWsmb3VtbDtkaWsgV2luZG93c29uJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdEbyBub3QgY3JlYXRlIGEgcHJvcGVydHkgZm9yIHVzZXJuYW1lLCBvciBwYXNzd29yZCBhcyB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBidWlsdGluIHRvIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfZXhwb3J0Y3N2J10gPSAnRXhwb3J0IFVzZXJzIHRvIENTVic7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnQnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0JzsKJGxhbmdbJ2FkbWluJ10gPSAnQWRtaW4nOwokbGFuZ1snZWRpdHByb3AnXSA9ICdFZGl0IFByb3BlcnR5OiA8ZW0+JXM8L2VtPic7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbXVtIEhvc3N6JzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdMJmVhY3V0ZTt0cmVob3p2YSc7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0IEJ5JzsKJGxhbmdbJ3NvcnQnXSA9ICdTb3J0aW5nJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ1VzZXJzIGluIHRoZSBzZWxlY3RlZCBncm91cChzKSc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdIYXQmYWFjdXRlO3JvbGQgYXogZXJlZG0mZWFjdXRlO255ZWtldCBlbm55aXJlJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGFuIGVtYWlsIGZpZWxkIGZvciB0aGlzIHVzZXIuICBZb3UgbWF5IG5lZWQgdG8gY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3InOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgZm9yIEZvcmdvdCBQYXNzd29yZCBmb3JtJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGZvciBDaGFuZ2UgU2V0dGluZ3MgZm9ybSc7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGxvZ2luIConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgbG9nb3V0IConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydwcm9tcHRfbnVtcmVzZXRyZWNvcmQnXSA9ICdBIG51bWJlciBvZiB1c2VycyBhcmUgaW4gdGhlIG1pZGRsZSBvZiByZXNldHRpbmcgbG9zdCBwYXNzd29yZHMuICBDdXJyZW50bHkgdGhpcyBjb3VudCBpcyBhdDonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgd2VlayBvbGQnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnUmVtb3ZlIGFsbCBlbnRyaWVzIG1vcmUgdGhhbiBhIG1vbnRoIG9sZCc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdNaW5kZW4gYmVqZWd5eiZlYWN1dGU7cyBlbHQmYWFjdXRlO3ZvbCZpYWN1dGU7dCZhYWN1dGU7c2EnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0JpenRvcyB2YWd5IGJlbm5lPyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ0EgbWVnYWRvdHQgayZvYWN1dGU7ZCBoaWImYWFjdXRlO3MsIGsmZWFjdXRlO3JsZWsgcHImb2FjdXRlO2ImYWFjdXRlO2xkICZ1YWN1dGU7anJhJzsKJGxhbmdbJ2Vycm9yX3RlbXBjb2Rlbm90Zm91bmQnXSA9ICdBIHRlbXBvcmFyeSBjb2RlIGZvciB5b3VyIHVzZXIgaWQgY291bGQgbm90IGJlIGZvdW5kIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB2ZXJpZmljYXRpb24gZm9ybSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdXNlZCBmb3IgZm9yZ290dGVuIHBhc3N3b3JkIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX3Jlc2V0YWxyZWFkeXNlbnQnXSA9ICdFaXRoZXIgeW91cnNlbGYgb3Igc29tZW9uZSBlbHNlIGhhcyBhbHJlYWR5IHRyaWdnZXJlZCBhIHBhc3N3b3JkIHJlc2V0IG9wZXJhdGlvbiBmb3IgdGhpcyBhY2NvdW50LiAgQ2hlY2sgeW91ciBlbWFpbCwgeW91IG1heSBoYXZlIGZ1cnRoZXIgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byByZXNldCB5b3VyIHBhc3N3b3JkIGluIHlvdXIgaW5ib3gnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0FkYXRiJmFhY3V0ZTt6aXMgaGliYSc7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICdZb3UgYXJlIHJlY2VpdmluZyB0aGlzIG1lc3NhZ2UgYmVjYXVzZSBzb21lYm9keSB0b2xkIG91ciBzaXRlIHRoYXQgeW91IGhhZCBsb3N0IHlvdXIgcGFzc3dvcmQuICBJZiB0aGlzIGlzIHRoZSBjYXNlLCByZWFkIHRoZSBpbnN0cnVjdGlvbnMgYmVsb3cuICBJZiB5b3UgZG9uJiMwMzk7dCBoYXZlIGEgY2x1ZSB3aGF0IHRoaXMgaXMsIHRoZW4geW91IGFyZSBzYWZlIHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UsIGFuZCB3ZSB0aGFuayB5b3UgZm9yIHlvdXIgdGltZS4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdLJm9hY3V0ZTtkJzsKJGxhbmdbJ21lc3NhZ2VfY29kZSddID0gJ1RoZSBmb2xsb3dpbmcgY29kZSBoYXMgYmVlbiByYW5kb21seSBnZW5lcmF0ZWQgaW4gb3JkZXIgdG8gdmVyaWZ5IHRoZSB1c2VyIGFjY291bnQuICB3aGVuIHlvdSBjbGljayBvbiB0aGUgbGluayBiZWxvdyB5b3Ugd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIGZpZWxkIHRvIGVudGVyIHRoaXMgY29kZS4gIE5vcm1hbGx5IHRoZSBmaWVsZCBpcyBwcmUtY29tcGxldGVkIGZvciB5b3UsIGJ1dCBpbmNhc2UgaXQgaXNuJiMwMzk7dCB0aGUgY29kZSBpczonOwokbGFuZ1sncHJvbXB0X2xpbmsnXSA9ICdDbGlja2luZyBvbiB0aGUgZm9sbG93aW5nIGxpbmsgd2lsbCB0YWtlIHlvdSB0byB0aGUgd2Vic2l0ZSB3aGVyZSB5b3UgY2FuIGVudGVyIHRoZSBhYm92ZSBjb2RlLCBhbmQgcmVzZXQgeW91ciBwYXNzd29yZDonOwokbGFuZ1snbG9zdHBhc3N3b3JkX2VtYWlsc3ViamVjdCddID0gJ0VsZmVsZWp0ZXR0IGplbHN6Jm9hY3V0ZTsnOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdOZW0gdGFsJmFhY3V0ZTtsb20gYSBDTVNNYWlsZXIgbW9kdWx0JzsKJGxhbmdbJ2luZm9fZm9yZ290cHdtZXNzYWdlc2VudCddID0gJ0FuIGVtYWlsIGhhcyBiZWVuIHNlbnQgdG8gJXMgd2l0aCBpbnN0cnVjdGlvbnMgYXMgdG8gaG93IHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQuICBUaGFuayB5b3UnOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdTbyB5b3UgZm9yZ290IG9yIGxvc3QgeW91ciBwYXNzd29yZC4gV2VsbCwgdHlwZSB5b3VyIHVzZXJuYW1lIGluIGhlcmUsIGFuZCBpZiB3ZSBjYW4gZmluZCB5b3Ugd2Ugd2lsbCBzZW5kIHlvdSBhbiBlbWFpbCB3aXRoIGluc3RydWN0aW9ucyBvbiBob3cgdG8gcmVzZXQgaXQnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdGb3Jnb3QgUGFzc3dvcmQgVGVtcGxhdGVzJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgVGVtcGxhdGUnOwokbGFuZ1snZXJyb3JfcHJvcG5vdGZvdW5kJ10gPSAnUHJvcGVydHkgJXMgbm90IGZvdW5kJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdQcm9wZXJ0aWVzIGZvdW5kJzsKJGxhbmdbJ2FkZHByb3AnXSA9ICdBZGQgUHJvcGVydHknOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ0EgcmVxdWlyZWQgZmllbGQgKCVzKSB3YXMgZW1wdHknOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdFbnRlciBhIG5ldyBwYXNzd29yZCBoZXJlIHRvIGNoYW5nZSB5b3VyIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnWW91IGRvIG5vdCBhcHBlYXIgdG8gYmUgbG9nZ2VkIGluJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdCZSZhYWN1dGU7bGwmaWFjdXRlO3QmYWFjdXRlO3Nvayc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzenRyJmFhY3V0ZTtjaSZvYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnRXogYSBmaSZvYWN1dGU7ayBsZWomYWFjdXRlO3J0JzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdJbXByb3BlciBlbWFpbCBhZGRyZXNzIGZvcm1hdHRpbmcnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdJbnZhbGlkIGV4cGlyeSBkYXRlLiAgVGhpcyBtYXkgYmUgc3lzdGVtIHJlbGF0ZWQuICBUcnkgc2V0dGluZyBhbiBlYXJsaWVyIHllYXIuJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdFcnJvciBzZXR0aW5nIHByb3BlcnR5ICVzIGZvciB1c2VyICRzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRncm91cGlkJ10gPSAnSW52YWxpZCBncm91cCBpZCAlcyc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ0hpZGRlbiBmaWVsZCBtYXJrZXInOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0hpZGRlbiBmaWVsZCBjb2xvcic7CiRsYW5nWydoaWRkZW4nXSA9ICdIaWRkZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlbmFtZSddID0gJ0EgcHJvcGVydHkgd2l0aCB0aGF0IG5hbWUgaXMgYWxyZWFkeSBkZWZpbmVkJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ05vIHByb3BlcnRpZXMgZGVmaW5lZCc7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ05vIHByb3BlcnRpZXMgd2VyZSBzZWxlY3RlZCBmb3IgdGhpcyBncm91cC4gIEEgZ3JvdXAgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSBzZWxlY3RlZCAoUmVxdWlyZWQsT3B0aW9uYWwsIG9yIEhpZGRlbiknOwokbGFuZ1snbm9ncm91cHMnXSA9ICdObyBHcm91cHMgYXJlIGRlZmluZWQnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdHcm91cHMgRm91bmQnOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ01lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdSZXF1aXJlIG1lbWJlcnNoaXAgaW4gYXRsZWFzdCBvbmUgZ3JvdXAnOwokbGFuZ1snYmFjayddID0gJ1Zpc3N6YSc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnJXMgZWd5IGsmb3VtbDt0ZWxlesWRIG1lesWRJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRtYXJrZXInXSA9ICdNYXJrIHJlcXVpcmVkIGZpZWxkcyB3aXRoJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ0hpbGl0ZSByZXF1aXJlZCBmaWVsZHMgaW4nOwokbGFuZ1snbmV4dCddID0gJ1RvdiZhYWN1dGU7YmInOwokbGFuZ1snZXJyb3JfZ3JvdXBleGlzdHMnXSA9ICdBIEdyb3VwIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnSyZvdW1sO3RlbGV6xZEnOwokbGFuZ1snb3B0aW9uYWwnXSA9ICdPcHRpb25hbCc7CiRsYW5nWydvZmYnXSA9ICdPZmYnOwokbGFuZ1snc2l6ZSddID0gJ00mZWFjdXRlO3JldCc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1heGltdW0gc2l6ZSBvZiBhbnkgb25lIGRpbWVuc2lvbiBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzKSc7CiRsYW5nWydsZW5ndGgnXSA9ICdIb3Nzeic7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyPihjaGFycyBpbiB0aGUgdGV4dCBpbnB1dCknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ0Ryb3Bkb3duIG9wdGlvbnMsIHNlcGFyYXRlZCBieSBsaW5lIGJyZWFrcy4gIFZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIGZyb20gdGV4dCB3aXRoIGEgPSBjaGFyYWN0ZXIuIGkuZTogRmVtYWxlPWYnOwokbGFuZ1sncmFkaW9vcHRpb25zJ10gPSAnUmFkaW9idXR0b24gbGFiZWxzLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuIFZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIGZyb20gdGV4dCB3aXRoIGEgPSBjaGFyYWN0ZXIuIGkuZTogRmVtYWxlPWYnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ3Byb21wdF90eXBlJ10gPSAnVCZpYWN1dGU7cHVzJzsKJGxhbmdbJ3R5cGUnXSA9ICdUJmlhY3V0ZTtwdXMnOwokbGFuZ1snZmllbGRzdGF0dXMnXSA9ICdNZXrFkSAmYWFjdXRlO2xsYXBvdCc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdBc2sgaW4gTG9zdDxici8+VXNlcm5hbWUnOwokbGFuZ1sndGV4dCddID0gJ1N6Jm91bWw7dmVnJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnSmVsJm91bWw7bMWRbWV6xZEnOwokbGFuZ1snbXVsdGlzZWxlY3QnXSA9ICdNdWx0aSBTZWxlY3QgTGlzdCc7CiRsYW5nWydyYWRpb2J1dHRvbnMnXSA9ICdSJmFhY3V0ZTtkaSZvYWN1dGU7IGdvbWInOwokbGFuZ1snaW1hZ2UnXSA9ICdLJmVhY3V0ZTtwJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRW1haWwgYyZpYWN1dGU7bSc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1N6b3ZlZ2VzIG1lesWRJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTGVnJm91bWw7cmQmdXVtbDtsxZEgbGlzdGEnOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICcmVXVtbDtkdiZvdW1sO3psJnV1bWw7bmsnOwokbGFuZ1snbG9nb3V0J10gPSAnS2lqZWxlbnRrZXomZWFjdXRlO3MnOwokbGFuZ1sncHJvbXB0X25ld2dyb3VwbmFtZSddID0gJ0hhc3puJmFhY3V0ZTtsZCBlenQgYSBjc29wb3J0bmV2ZXQnOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzJ10gPSAnQmUmYWFjdXRlO2xsJmlhY3V0ZTt0JmFhY3V0ZTtzYWltIG0mb2FjdXRlO2RvcyZpYWN1dGU7dCZhYWN1dGU7c2EnOwokbGFuZ1snZXJyb3JfbG9naW5mYWlsZWQnXSA9ICdCZWplbGVudGtleiZlYWN1dGU7cyBzaWtlcnRlbGVuIC0gSGliJmFhY3V0ZTtzIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtuJmVhY3V0ZTt2IHZhZ3kgamVsc3omb2FjdXRlOz8nOwokbGFuZ1snbG9naW4nXSA9ICdCZWplbGVudGtleiZlYWN1dGU7cyc7CiRsYW5nWydwcm9tcHRfc2lnbmluX2J1dHRvbiddID0gJ0JlamVsZW50a2V6JmVhY3V0ZTtzIGdvbWIgYyZpYWN1dGU7bWtlJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ0ZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtuJmVhY3V0ZTt2JzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0VtYWlsIGMmaWFjdXRlO20nOwokbGFuZ1sncHJvbXB0X3Bhc3N3b3JkJ10gPSAnSmVsc3omb2FjdXRlOyc7CiRsYW5nWydwcm9tcHRfcmVtZW1iZXJtZSddID0gJ0VtbCZlYWN1dGU7a2V6eiByJmFhY3V0ZTttIGV6ZW4gYSBnJmVhY3V0ZTtwZW4nOwokbGFuZ1sncmVnaXN0ZXInXSA9ICdSZWdpc3p0ciZhYWN1dGU7Y2kmb2FjdXRlOyc7CiRsYW5nWydmb3Jnb3RwdyddID0gJ0VsZmVsZWp0ZXR0ZWQgYSBqZWxzemF2YWQ/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ0VsZmVsZWp0ZXR0ZWQgYSBiZWwmZWFjdXRlO3AmZWFjdXRlO3NpIGluZm9ybSZhYWN1dGU7Y2kmb2FjdXRlO2RhdD8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdBbGFwJmVhY3V0ZTtydGVsbWV6ZXR0ICZlYWN1dGU7cnQmZWFjdXRlO2tlayc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1NhYmxvbic7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdOZW0gdGFsJmFhY3V0ZTtsdGFtIGluZm9ybSZhYWN1dGU7Y2kmb2FjdXRlO3QgZXJyxZFsIGEgZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlO3Imb2FjdXRlO2wnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ0V6IGEgZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlO24mZWFjdXRlO3YgKCVzKSBtJmFhY3V0ZTtyIGZvZ2xhbHQnOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ0hhc3puJmFhY3V0ZTtsaiBTTVRQLXQsIGhvZ3kgJmVhY3V0ZTtydiZlYWN1dGU7bnllcyZpYWN1dGU7dHNkIGF6IGVtYWlsIGMmaWFjdXRlO21la2V0JzsKJGxhbmdbJ3Byb21wdF9taW5wd2xlbiddID0gJ01pbmltdW0gamVsc3omb2FjdXRlOyBob3Nzeic7CiRsYW5nWydwcm9tcHRfbWF4cHdsZW4nXSA9ICdNYXhpbXVtIGplbHN6Jm9hY3V0ZTsgaG9zc3onOwokbGFuZ1sncHJvbXB0X21pbnVubGVuJ10gPSAnTWluaW11bSBmZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7biZlYWN1dGU7diBob3Nzeic7CiRsYW5nWydwcm9tcHRfbWF4dW5sZW4nXSA9ICdNYXhpbXVtIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtuJmVhY3V0ZTt2IGhvc3N6JzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1Nlc3Npb24gVGltZW91dCAoc2Vjb25kcyknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ1VzZSBjb29raWVzIHRvIGtlZXAgbG9naW5zIGFsaXZlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnQWxsb3cgRW1haWwgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ3Byb21wdF9kZmx0Z3JvdXAnXSA9ICdBbGFwJmVhY3V0ZTtydGVsbWV6ZXR0IGNzb3BvcnQgYXogJnVhY3V0ZTtqIGZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtrbmFrJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnQmUmYWFjdXRlO2xsJmlhY3V0ZTt0JmFhY3V0ZTtzb2sgbSZvYWN1dGU7ZG9zJmlhY3V0ZTt0JmFhY3V0ZTtzYSBzYWJsb24nOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ0plbHN6YXZhayBuZW0gdGFsJmFhY3V0ZTtsbmFrJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJyZFYWN1dGU7cnYmZWFjdXRlO255dGVsZW4gZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlO24mZWFjdXRlO3YnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkJ10gPSAnJkVhY3V0ZTtydiZlYWN1dGU7bnl0ZWxlbiBqZWxzeiZvYWN1dGU7JzsKJGxhbmdbJ2VkaXR1c2VyJ10gPSAnRmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlOyBtJm9hY3V0ZTtkb3MmaWFjdXRlO3QmYWFjdXRlO3NhJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnJkVhY3V0ZTtydiZlYWN1dGU7bnllcyc7CiRsYW5nWyd1c2VybmFtZSddID0gJ0ZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtuJmVhY3V0ZTt2JzsKJGxhbmdbJ3N0YXR1cyddID0gJyZBYWN1dGU7bGxhcG90JzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJ0V6IGEgZmVsaGFzem4mYWFjdXRlO2wmb2FjdXRlOyBuZW0gdGFnamEgZWd5IGNzb3BvcnRuYWsgc2VtJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICdObyBQcm9wZXJ0aWVzJzsKJGxhbmdbJ2Vycm9yX2R1cF9wcm9wZXJ0aWVzJ10gPSAnQXR0ZW1wdCB0byBpbXBvcnQgZHVwbGljYXRlIHByb3BlcnRpZXMnOwokbGFuZ1sndmFsdWUnXSA9ICcmRWFjdXRlO3J0JmVhY3V0ZTtrJzsKJGxhbmdbJ2dyb3VwcyddID0gJ0Nzb3BvcnRvayc7CiRsYW5nWydwcm9wZXJ0aWVzJ10gPSAnVHVsYWpkb25zJmFhY3V0ZTtnb2snOwokbGFuZ1sncHJvcG5hbWUnXSA9ICdUdWxhamRvbnMmYWFjdXRlO2cgbmV2ZSc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdUdWxhamRvbnMmYWFjdXRlO2cgJmVhY3V0ZTtydCZlYWN1dGU7a2UnOwokbGFuZ1snYWRkJ10gPSAnSG96eiZhYWN1dGU7YWQmYWFjdXRlO3MnOwokbGFuZ1snaGlzdG9yeSddID0gJ0hpc3RvcnknOwokbGFuZ1snZWRpdCddID0gJ1N6ZXJrZXN6dCZlYWN1dGU7cyc7CiRsYW5nWydleHBpcmVzJ10gPSAnTGVqJmFhY3V0ZTtyJzsKJGxhbmdbJ3NwZWNpZnlfZGF0ZSddID0gJ0hhdCZhYWN1dGU7cm96ZCBtZWcgYSBkJmFhY3V0ZTt0dW1vdCc7CiRsYW5nWycxMmhycyddID0gJzEyICZPYWN1dGU7cmEnOwokbGFuZ1snMjRocnMnXSA9ICcyNCAmT2FjdXRlO3JhJzsKJGxhbmdbJzQ4aHJzJ10gPSAnNDggJk9hY3V0ZTtyYSc7CiRsYW5nWycxd2VlayddID0gJzEgaCZlYWN1dGU7dCc7CiRsYW5nWycyd2Vla3MnXSA9ICcyIGgmZWFjdXRlO3QnOwokbGFuZ1snMW1vbnRoJ10gPSAnMSBoJm9hY3V0ZTtuYXAnOwokbGFuZ1snM21vbnRocyddID0gJzMgaCZvYWN1dGU7bmFwJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IGgmb2FjdXRlO25hcCc7CiRsYW5nWycxeWVhciddID0gJzEgJmVhY3V0ZTt2JzsKJGxhbmdbJ25ldmVyJ10gPSAnU29oYSc7CiRsYW5nWydwb3N0aW5zdGFsbG1lc3NhZ2UnXSA9ICdNb2R1bGUgaW5zdGFsbGVkIHN1Y2Vzc2Z1bGx5Ljxici8+QmUgc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGcm9udEVuZFVzZXIgUHJvcGVydGllcyBwZXJtaXNzaW9uLiAgQWRkaXRpb25hbGx5LCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuICBJZiBpbnN0YWxsZWQsIHZhbGlkYXRpb24gb2YgYSBjYXB0Y2hhIGltYWdlIHdpbGwgYmUgcmVxdWlyZWQgaW4gYWRkaXRpb24gdG8gdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBsb2dpbi4gIFRoaXMgaXMgaW50ZW5kZWQgdG8gcHJldmVudCBicnV0ZSBmb3JjZSBhdHRhY2tzLiAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgbm9jYXB0Y2hhIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBkaXNhYmxlIHRoaXMgZnVuY3Rpb25hbGl0eSBldmVuIGlmIHRoZSBDYXB0Y2hhIG1vZHVsZSBpcyBpbnN0YWxsZWQuJnF1b3Q7JzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAnSmVsc3omb2FjdXRlOyc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJyZVYWN1dGU7anJhJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdJbHllbiBuZXbFsSBjc29wb3J0IG0mYWFjdXRlO3IgbCZlYWN1dGU7dGV6aWsnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnQ3NvcG9ydCBzemVya2VzenQmZWFjdXRlO3NlJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0smdXVtbDtsZCZlYWN1dGU7cyc7CiRsYW5nWydjYW5jZWwnXSA9ICdNJmVhY3V0ZTtnc2UnOwokbGFuZ1snZGVsZXRlJ10gPSAnVCZvdW1sO3JsJmVhY3V0ZTtzJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnQXJlIHlvdSBzdXJlIHRoaXMgaXMgdGhlIHByb3BlciBzZXR0aW5ncyBmb3IgdGhpcyBncm91cD9cblR1cm5pbmcgYSBwcm9wZXJ0eSBvZmYgd2lsbCBub3QgZGVsZXRlIGFueSBlbnRyaWVzIGluIHRoZSBwcm9wZXJ0aWVzIHRhYmxlIGZvciB0aGlzIGdyb3VwL3VzZXIuICBUaGV5IHdpbGwgbWVyZWx5IGJlIHVuYXZhaWxhYmxlLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnQml6dG9zYW4gdCZvdW1sO3Imb3VtbDtsbmkgYWthcm9kIGV6dCBhIGNzb3BvcnRvdD8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb21wbGV0ZWx5IGRlbGV0ZSB0aGlzIHByb3BlcnR5P1xuRG9pbmcgc28gd2lsbCBhbHNvIGVyYXNlIGFueSB1c2VyIGVudHJpZXMgZm9yIHRoaXMgcHJvcGVydHkuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0VsJmVhY3V0ZTtndGVsZW4gcGFyYW0mZWFjdXRlO3Rlcic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ25hbWUnXSA9ICdOJmVhY3V0ZTt2JzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRwcm9wJ10gPSAnUHJvYmxlbSBhZGRpbmcgcHJvcGVydHknOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwcmVsbiddID0gJ1Byb2JsZW0gYWRkaW5nIGdyb3VwIHJlbGF0aW9uJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZW0gYWRkaW5nIGdyb3VwJzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnUHJvYmxlbSBhZGRpbmcgYSB1c2VyIHRvIGEgZ3JvdXAnOwokbGFuZ1snZXJyb3JfY291bGRub3RkZWxldGVwcm9wZXJ0eSddID0gJ1Byb2JsZW0gZGVsZXRpbmcgYSBwcm9wZXJ0eSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGZpbmRlbWFpbCddID0gJ05lbSB0YWwmYWFjdXRlO2x0YW0gZW1haWwgYyZpYWN1dGU7bWV0JzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdObyB3cml0ZSBwZXJtaXNzaW9uIHRvIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnSW52YWxpZCBQYXJhbWV0ZXJzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnTmVtIHRhbCZhYWN1dGU7bHRhbSBjc29wb3J0b3QnOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdBbGthbG1heic7CiRsYW5nWydmaWx0ZXInXSA9ICdTesWxcsWRJzsKJGxhbmdbJ3VzZXJmaWx0ZXInXSA9ICdVc2VybmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdMZSZpYWN1dGU7ciZhYWN1dGU7cyc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdDc29wb3J0IG5ldmUnOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnSG96eiZhYWN1dGU7ZiZlYWN1dGU7ciZlYWN1dGU7cyBtZWd0aWx0dmEnOwokbGFuZ1snZXJyb3InXSA9ICdIaWJhJzsKJGxhbmdbJ2FkZGdyb3VwJ10gPSAnQ3NvcG9ydCBob3p6JmFhY3V0ZTthZCZhYWN1dGU7c2EnOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdDc29wb3J0IGltcG9ydCZhYWN1dGU7bCZhYWN1dGU7c2EnOwokbGFuZ1snYWRkdXNlciddID0gJ0ZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTsgaG96eiZhYWN1dGU7YWQmYWFjdXRlO3NhJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdGZWxoYXN6biZhYWN1dGU7bCZvYWN1dGU7aywgYWtpayBtZWdmZWxlbG5layBhIGtyaXQmZWFjdXRlO3JpdW1va25hayc7CiRsYW5nWydncm91cCddID0gJ0Nzb3BvcnQnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdDc29wb3J0IGtpdiZhYWN1dGU7bGFzenQmYWFjdXRlO3NhJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1JlZ2lzenRyJmFhY3V0ZTtjaSZvYWN1dGU7cyBzYWJsb24nOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnS2lqZWxlbnRrZXomZWFjdXRlO3Mgc2FibG9uJzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnQmVqZWxlbnRrZXomZWFjdXRlO3Mgc2FibG9uJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jaSZhYWN1dGU7ayc7CiRsYW5nWyd1c2VycyddID0gJ0ZlbGhhc3puJmFhY3V0ZTtsJm9hY3V0ZTtrJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zyb250ZW5kIFVzZXIgTWFuYWdlbWVudCc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0FsbG93IHVzZXJzIHRvIGxvZyBpbiB0byB0aGUgZnJvbnRlbmQgb2YgeW91ciBzaXRlJzsKJGxhbmdbJ2RlZmF1bHRmcm9udHBhZ2UnXSA9ICdFbGFwJmVhY3V0ZTtydGVsbWV6ZXR0IGbFkW9sZGFsJzsKJGxhbmdbJ2xhc3RhY2Nlc3NlZHBhZ2UnXSA9ICdVdG9scyZvYWN1dGU7IG1lZ2wmYWFjdXRlO3RvZ2F0b3R0IG9sZGFsJzsKJGxhbmdbJ290aGVycGFnZSddID0gJ00mYWFjdXRlO3Mgb2xkYWw6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnJklhY3V0ZTtyZCBiZSBhIHN6Jm91bWw7dmVnZXQgYSBrJmVhY3V0ZTtwcsWRbCc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2luZm9fZmlsdGVyX3NvcnRieSddID0gJzxzdHJvbmc+Tm90YTo8L3N0cm9uZz4gSWwgcmlvcmRpbm8gZGVsbGUgY29sb25uZSBmb3JuaXImYWdyYXZlOyB1biBvcmRpbmFtZW50byB1bHRlcmlvcmUgc3VnbGkgZWxlbWVudGkgY29ycmlzcG9uZGVudGknOwokbGFuZ1snYW55J10gPSAnUXVhbHNpYXNpJzsKJGxhbmdbJ3NvcnRieV91c2VybmFtZV9hc2MnXSA9ICdOb21lIHV0ZW50ZSAoY3Jlc2NlbnRlKSc7CiRsYW5nWydzb3J0YnlfdXNlcm5hbWVfZGVzYyddID0gJ05vbWUgdXRlbnRlIChkZWNyZXNjZW50ZSknOwokbGFuZ1snc29ydGJ5X2NyZWF0ZV9hc2MnXSA9ICdEYXRhIGRpIGNyZWF6aW9uZSAoY3Jlc2NlbnRlKSc7CiRsYW5nWydzb3J0YnlfY3JlYXRlX2Rlc2MnXSA9ICdEYXRhIGRpIGNyZWF6aW9uZSAoZGVjcmVzY2VudGUpJzsKJGxhbmdbJ3NvcnRieV9leHBpcmVzX2FzYyddID0gJ0RhdGEgZGkgc2NhZGVuemEgKGNyZXNjZW50ZSknOwokbGFuZ1snc29ydGJ5X2V4cGlyZXNfZGVzYyddID0gJ0RhdGEgZGkgc2NhZGVuemEgKGRlY3Jlc2NlbnRlKSc7CiRsYW5nWydpbmZvX2VuY3J5cHRlZCddID0gJ0xlIHByb3ByaWV0JmFncmF2ZTsgY3JpcHRhdGUgcG9zc29ubyBlc3NlcmUgdmlzdWFsaXp6YXRlIGUgbW9kaWZpY2F0ZSBlc2NsdXNpdmFtZW50ZSBkYWxsJiMwMzk7dXRlbnRlLiBOZW1tZW5vIGwmIzAzOTthbW1pbmlzdHJhdG9yZSBwdSZvZ3JhdmU7IHZlZGVyZSBvIGdlc3RpcmUgcXVlc3RlIGluZm9ybWF6aW9uaSc7CiRsYW5nWydlbmNyeXB0ZWQnXSA9ICdDcmlwdGF0byc7CiRsYW5nWydpbmZvX2Nvb2tpZW5hbWUnXSA9ICdTZSBpbXBvc3RhdG8sIHZlcnImYWdyYXZlOyBhYmlsaXRhdGEgbGEgZnVuemlvbmFsaXQmYWdyYXZlOyAmcXVvdDtyaWNvcmRhbWkmcXVvdDsuICBFJiMwMzk7IHNpbWlsZSBhbGxhIGZ1bnppb25hbGl0JmFncmF2ZTsgJnF1b3Q7a2VlcGFsaXZlJnF1b3Q7IHBlciBpIGNvb2tpZSwgbWEgZHVyYSBmaW5vIGEgc2VpIGdpb3JuaS4nOwokbGFuZ1snbXNnX3VzZXJuYW1lX3JlYWRvbmx5J10gPSAnTm9uICZlZ3JhdmU7IHBlcm1lc3NhIGxhIG1vZGlmaWNhIGRlbCBub21lIHV0ZW50ZSBwZXIgcXVlc3RvIGFjY291bnQnOwokbGFuZ1snbXNnX3Bhc3N3b3JkX3JlYWRvbmx5J10gPSAnTm9uICZlZ3JhdmU7IHBlcm1lc3NhIGxhIG1vZGlmaWNhIGRlbGxhIHBhc3N3b3JkIHBlciBxdWVzdG8gYWNjb3VudCc7CiRsYW5nWydwcm9tcHRfbm9ybWFsbG9naW4nXSA9ICdBY2Nlc3NvIERpcmV0dG8nOwokbGFuZ1snbW92ZV91cCddID0gJ1Nwb3N0YSBTdSc7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdTcG9zdGEgR2kmdWdyYXZlOyc7CiRsYW5nWyd0aXRsZV9wcm9wbW9kdWxlJ10gPSAnUXVlc3RhIHByb3ByaWV0JmFncmF2ZTsgJmVncmF2ZTsgZ2VuZXJhdGEgZGEgdW4gbW9kdWxvIGUgbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIG1vZGlmaWNhdGFUaGlzIHByb3BlcnR5IGlzIGNyZWF0ZWQgYnkgYSBtb2R1bGUsIGFuZCBjYW5ub3QgYmUgZWRpdGVkJzsKJGxhbmdbJ25vdF9hdmFpbGFibGUnXSA9ICdOb24gZGlzcG9uaWJpbGUnOwokbGFuZ1sncHJvbXB0X2RmbHRfY2hlY2tlZCddID0gJ1F1ZXN0byBjYW1wbyBkb3ZyZWJiZSBlc3NlcmUgYXR0aXZvIGluIG1vZG8gcHJlZGVmaW5pdG8nOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlZCddID0gJ09wZXJhemlvbmUgQ29tcGxldGEnOwokbGFuZ1snbWVtYmVycyddID0gJ01lbWJyaSc7CiRsYW5nWyd2aWV3X2ZpbHRlciddID0gJ1ZlZGkgRmlsdHJvJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRpJzsKJGxhbmdbJ2FwcGxpZWQnXSA9ICdBcHBsaWNhdG8nOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdpbmEnOwokbGFuZ1sncHJvbXB0X2FsbG93X2NoYW5nZXVzZXJuYW1lJ10gPSAnUGVybWV0dGkgQ2FtYmlvIE5vbWUgVXRlbnRlJzsKJGxhbmdbJ2luZm9fYWxsb3dfY2hhbmdldXNlcm5hbWUnXSA9ICdTZSBhYmlsaXRhdG8sIGFnbGkgdXRlbnRpIHNhciZhZ3JhdmU7IHBlcm1lc3NvIG1vZGlmaWNhcmUgaWwgcHJvcHJpbyBub21lIHV0ZW50ZSBhc3NpZW1lIGFkIGFsdHJlIGltcG9zdGF6aW9uaSc7CiRsYW5nWyd0ZW1wbGF0ZV9zYXZlZCddID0gJ01vZGVsbG8gc2FsdmF0byc7CiRsYW5nWyd0ZW1wbGF0ZV9yZXNldGRlZmF1bHRzJ10gPSAnTW9kZWxsbyByaXBvcnRhdG8gYWkgdmFsb3JpIHByZWRlZmluaXRpJzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ0ltcG9zdGF6aW9uaSc7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnTW9kZWxsaSc7CiRsYW5nWydlbmFibGVfY2FwdGNoYSddID0gJ0FiaWxpdGEgQ2FwdGNoYSBzdWwgbW9kdWxvIGRpIGxvZ2luJzsKJGxhbmdbJ2luZm9fZW5hYmxlX2NhcHRjaGEnXSA9ICdTZSBsJiMwMzk7dXRlbnRlIG5vbiBoYSBlc2VndWl0byBsJiMwMzk7YWNjZXNzbyBlIGxlIHByZWZlcmVuemUgZGVsIG1vZHVsbyBpbmRpY2FubyBkaSB2aXN1YWxpenphcmUgaWwgbW9kdWxvIGRpIGxvZ2luLCBxdWVzdCYjMDM5O29wemlvbmUgY29udHJvbGxhIHNlIGRlYmJhIGVzc2VyZSB2aXN1YWxpenphdGEgdW4mIzAzOTthdXRlbnRpY2F6aW9uZSBjYXB0Y2hhLCBzZSBpbCBtb2R1bG8gY2FwdGNoYSAmZWdyYXZlOyBkaXNwb25pYmlsZSc7CiRsYW5nWydwYWdldHlwZV91bmF1dGhvcml6ZWQnXSA9ICdOb24gc2lldGUgYXV0b3JpenphdGkgYSB2ZWRlcmUgcXVlc3RvIGNvbnRlbnV0byc7CiRsYW5nWydpbmZvX2NvbnRlbnRwYWdlX2dyb3VwbGlzdCddID0gJ1NwZWNpZmljYSB1bmEgbGlzdGEgZGkgZ3J1cHBpIGRpIEZFVSBjaGUgcG9zc29ubyBhY2NlZGVyZSBhIHF1ZXN0YSBwYWdpbmEuIE5vbiBzZWxlemlvbmFuZG8gYWxjdW4gZ3J1cHBvIHZlcnImYWdyYXZlOyBwZXJtZXNzYSBsYSB2aXNpb25lIGRlbGxhIHBhZ2luYSBhIHR1dHRpIGdsaSB1dGVudGkgZGkgRkVVJzsKJGxhbmdbJ3BhZ2V0eXBlX3NldHRpbmdzJ10gPSAnaW1wb3N0YXppb25pIFBhZ2luZSBQcm90ZXR0ZSc7CiRsYW5nWydwYWdldHlwZV9ncm91cHMnXSA9ICdHcnVwcGkgQXV0b3JpenphdGknOwokbGFuZ1snaW5mb19wYWdldHlwZV9ncm91cHMnXSA9ICdTZWxlemlvbmF0ZSBpIGdydXBwaSBjaGUgc29ubyBhdXRvcml6emF0aSAoaW4gbW9kbyBwcmVkZWZpbml0bykgYSB2aXN1YWxpenphcmUgcGFnaW5lIHByb3RldHRlLiBVbiB1dGVudGUgZWRpdG9yIGNvbiBwZXJtZXNzaSAmcXVvdDtHZXN0aXNjaSB0dXR0byBpbCBjb250ZW51dG8mcXVvdDsgcHUmb2dyYXZlOyBzb3ZyYXNjcml2ZXJlIHF1ZXN0YSBvcHppb25lIHBlciBvZ25pIHBhZ2luYSc7CiRsYW5nWydwYWdldHlwZV9hY3Rpb24nXSA9ICdBemlvbmUgcGVyIGFjY2Vzc28gbm9uIHN1ZmZpY2llbnRlJzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfYWN0aW9uJ10gPSAnU3BlY2lmaWNhIGlsIGNvbXBvcnRhbWVudG8gZGEgc2VndWlyZSBwZXIgY2hpIGFjY2VkZSBhIHF1ZXN0YSBwYWdpbmEgc2VuemEgYXZlcmUgcGVybWVzc2kgc3VmZmljaWVudGkuIFBvdGV0ZSByZWluZGlyaXp6YXJlIHZlcnNvIHVuYSBwYWdpbmEgc3BlY2lmaWNhLCBvcHB1cmUgdmlzdWFsaXp6YXJlIGlsIG1vZHVsbyBkaSBhY2Nlc3NvJzsKJGxhbmdbJ3Nob3dsb2dpbmZvcm0nXSA9ICdWaXN1YWxpenphIG1vZHVsbyBkaSBhY2Nlc3NvJzsKJGxhbmdbJ3JlZGlyZWN0J10gPSAnUmVpbmRpcml6emFyZSB2ZXJzbyB1bmEgUGFnaW5hJzsKJGxhbmdbJ3BhZ2V0eXBlX3JlZGlyZWN0dG8nXSA9ICdSZWluZGlyaXp6YXJlIGEnOwokbGFuZ1snaW5mb19wYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnU3BlY2lmaWNhIGxhIHBhZ2luYSBhIGN1aSByZWluZGlyaXp6YXJlLiBTZSBub24gbmUgc2NlZ2xpZXJldGUgbmVzc3VuYSBlIGwmIzAzOTthemlvbmUgaW1wb3N0YXRhICZlZ3JhdmU7ICZxdW90O3JlaW5kaXJpenphcmUmcXVvdDssIHZlcnImYWdyYXZlOyB2aXN1YWxpenphdG8gdW4gbWVzc2FnZ2lvIGNoZSAgaW5kaWNhIGNoZSBsJiMwMzk7dXRlbnRlIG5vbiBoYSBhY2Nlc3NvIGFsbGEgcGFnaW5hJzsKJGxhbmdbJ3Blcm1pc3Npb25zJ10gPSAnUGVybWVzc2knOwokbGFuZ1snZmV1X3Byb3RlY3RlZF9wYWdlJ10gPSAnQ29udGVudXRvIFByb3RldHRvJzsKJGxhbmdbJ3Byb21wdF92aWV3cHJvcHMnXSA9ICdTZWxlemlvbmF0ZSBQcm9wcmlldCZhZ3JhdmU7IGFnZ2l1bnRpdmUgZGEgdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaXN1YWxpenphJzsKJGxhbmdbJ2luZm9faWdub3JlX3VzZXJpZCddID0gJ1NlIHNlbGV6aW9uYXRvLCBsYSBwcm9jZWR1cmEgZGkgaW1wb3J0YXppb25lIHRlbnRlciZhZ3JhdmU7IGRpIGFnZ2l1bmdlcmUgdXRlbnRpIGluZGlwZW5kZW50ZW1lbnRlIGRhbGxhIGNvbG9ubmEgdXNlcmlkLiAgU2UgdW4gdXRlbnRlIGNvbiBpbCBub21lIHNwZWNpZmljYXRvIG5lbCBmaWxlIGltcG9ydGF0byBlc2lzdGUgZ2kmYWdyYXZlOywgdmVyciZhZ3JhdmU7IGdlbmVyYXRvIHVuIGVycm9yZSc7CiRsYW5nWydpZ25vcmVfdXNlcmlkJ10gPSAnSWdub3JhIENvbG9ubmEgVXNlcklEIGR1cmFudGUgbCYjMDM5O2ltcG9ydGF6aW9uZSZpZ3JhdmU7JzsKJGxhbmdbJ2V4cG9ydF9wYXNzaGFzaCddID0gJ0VzcG9ydGEgbCYjMDM5O2hhc2ggZGVsbGEgcGFzc3dvcmQgbmVsIGZpbGUnOwokbGFuZ1snaW5mb19leHBvcnRfcGFzc2hhc2gnXSA9ICdMJiMwMzk7aGFzaCBkZWxsYSBwYXNzd29yZCAmZWdyYXZlOyB1dGlsZSBzb2xvIHNlIGxhIGNvZGlmaWNhIGRlbGxhIHBhc3N3b3JkIHN1bGwmIzAzOTtob3N0IGRpIGltcG9ydGF6aW9uZSAmZWdyYXZlOyBpZGVudGljYSBhIHF1ZWxsYSBkZWxsJiMwMzk7aG9zdCBkaSBlc3BvcnRhemlvbmUnOwokbGFuZ1snZXJyb3JfYWRqdXN0c2FsdCddID0gJ0xhIGNvZGlmaWNhIGRlbGxhIHBhc3N3b3JkIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBtb2RpZmljYXRhJzsKJGxhbmdbJ3Byb21wdF9wd3NhbHQnXSA9ICdDb2RpZmljYSBQYXNzd29yZCc7CiRsYW5nWydpbmZvX3B3c2FsdCddID0gJ0lsIG1vZHVsbyBGcm9udEVuZFVzZXJzIGNvZGlmaWNhIHR1dHRlIGxlIHBhc3N3b3JkIGNvbiBxdWVzdGEgY2hpYXZlLCBjcmVhdGEgaW4gZmFzZSBkaSBpbnN0YWxsYXppb25lLiAgRG9wbyBjaGUgZ2xpIHV0ZW50aSB2ZW5nb25vIGFnZ2l1bnRpIGFsIGRhdGFiYXNlLCBsYSBjb2RpZmljYSBub24gcHUmb2dyYXZlOyBlc3NlcmUgbW9kaWZpY2F0YS4gTGEgY2hpYXZlIGRpIGNvZGlmaWNhIHBvdHJlYmJlIGVzc2VyZSB2dW90YSBwZXIgaW5zdGFsbGF6aW9uaSBwaSZ1Z3JhdmU7IGRhdGF0ZS4nOwokbGFuZ1snYWR2YW5jZWRfc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmkgQXZhbnphdGUnOwokbGFuZ1snaW5mb19zZXNzaW9udGltZW91dCddID0gJ1NwZWNpZmljYXRlIGlsIG51bWVybyBkaSBzZWNvbmRpIHByaW1hIGNoZSB1biB1dGVudGUgaW5hdHRpdm8gdmVuZ2EgZGlzY29ubmVzc28gZGFsIHNpdG8gYXV0b21hdGljYW1lbnRlJzsKJGxhbmdbJ3Byb21wdF9leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ0ludGVydmFsbG8gU2NhZGVuemEgVXRlbnRlJzsKJGxhbmdbJ2luZm9fZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdTcGVjaWZpY2F0ZSB1biB2YWxvcmUgKGluIHNlY29uZGkpIGNoZSBpbmRpY2EgbGEgZnJlcXVlbnphIGNvbiBjdWkgaWwgc2lzdGVtYSBmb3J6aSBsYSBkaXNjb25uZXNzaW9uZSBkaSB1dGVudGkgY29uIHNlc3Npb25pIHNjYWR1dGUuIEUmIzAzOTsgdW4mIzAzOTtvdHRpbWl6emF6aW9uZSBwZXIgcmlkdXJyZSBsZSBxdWVzcnkgdmVyc28gaWwgZGF0YWJhc2UuIFNlIGxhc2NpYXRvIHZ1b3RvIG8gaW1wb3N0YXRvIGEgMCwgbGEgc2NhZGVuemEgdmVyciZhZ3JhdmU7IGF0dHVhdGEgYWQgb2duaSByaWNoaWVzdGEuJzsKJGxhbmdbJ21zZ19zZXR0aW5nc2NoYW5nZWQnXSA9ICdJbXBvc3RhemlvbmkgYWdnaW9ybmF0ZSBjb3JyZXR0YW1lbnRlJzsKJGxhbmdbJ2ZvcmNlZGxvZ291dHRhc2tfZGVzYyddID0gJ0ZvcnphIGxhIGRpc2Nvbm5lc3Npb25pIGRlZ2xpIHV0ZW50aSBhZCBpbnRlcnZhbGxpIHJlZ29sYXJpJzsKJGxhbmdbJ3Byb21wdF9mb3JjZWxvZ291dF90aW1lcyddID0gJ1RlbXBpIHBlciBkaXNjb25uZXNzaW9uZSBmb3J6YXRhJzsKJGxhbmdbJ2luZm9fZm9yY2Vsb2dvdXRfdGltZXMnXSA9ICdFbGVuY2F0ZSB1bmEgbGlzdGEgZGkgdGVtcGksIHNlcGFyYXRpIGRhIHZpcmdvbGEsIG5lbGxhIGZvcm1hICZxdW90O0hIOk1NLEhIOk1NLC4uLiZxdW90OyBpbiBjdWkgZ2xpIHV0ZW50aSB2ZXJyYW5ubyBmb3J6YXRpIGFsbGEgZGlzY29ubmVzc2lvbmUuIE5vdGE6IHF1ZXN0YSBwcm9jZWR1cmEgdXRpbGl6emEgaWwgbWVjY2FuaXNtbyBwc2V1ZG9jcm9uLCBwZXJ0YW50byB2ZXJpZmljYXRlIGNoZSBpIHRlbXBpIGluc2VyaXRpIGNvaW5jaWRhbm8gcmFnaW9uZXZvbG1lbnRlIGNvbiBsYSB2b3N0cmEgJnF1b3Q7Z3JhbnVsYXJpdCZhZ3JhdmU7IHBzZXVkb2Nyb24mcXVvdDsgZSBjaGUgY2kgc2lhbm8gcmljaGllc3RlIHN1ZmZpY2llbnRpIHBlcmNoJmVncmF2ZTsgaWwgcHNldWRvY3JvbiB2ZW5nYSBlc2VndWl0by4nOwokbGFuZ1sncHJvbXB0X2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnXSA9ICdFc2NsdWRpIHV0ZW50aSBhdHRpdmkgbmVnbGkgdWx0aW1pIDxlbT4obWludXRpKTwvZW0+JzsKJGxhbmdbJ2luZm9fZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSddID0gJ1NlIHNwZWNpZmljYXRvLCB0dXR0aSBnbGkgdXRlbnRpIGNoZSBzb25vIHN0YXRpIGF0dGl2aSBpbiBxdWVzdG8gbnVtZXJvIGRpIG1pbnV0aSBub24gdmVycmFubm8gZm9yemF0aSBhbGxhIGRpc2Nvbm5lc3Npb25lJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlJ10gPSAnU2lldGUgY2VydGkgZGkgdm9sZXJlIGVsaW1pbmFyZSBsJiMwMzk7dXRlbnRlICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlZXh0ZW5zaW9uJ10gPSAnSWwgZmlsZSBjYXJpY2F0byBub24gY29ycmlzcG9uZGUgY29uIGkgdGlwaSBkaSBmaWxlIGNvbnNlbnRpdGknOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1R1dHRpIGkgZGF0aSBhc3NvY2lhdGkgY29uIGlsIG1vZHVsbyBGcm9udEVuZFVzZXJzIHNhcmFubm8gY2FuY2VsbGF0aSc7CiRsYW5nWydpbmZvX2Vjb21tX3BhaWRyZWdpc3RyYXRpb24nXSA9ICdTZSBhYmlsaXRhdG8sIHF1ZXN0byBtb2R1bG8gYXNwZXR0YSBwZXIgZXZlbnRpIGRhbGxhIHN1aXRlIEVjb21tZXJjZS4gIExhIHNlZ3VlbnRlIGNvbmZpZ3VyYXppb25lIGhhIGVmZmV0dG8gc29sbyBzZSBxdWVzdG8gJmVncmF2ZTsgYWJpbGl0YXRvLic7CiRsYW5nWydwcm9tcHRfZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbiddID0gJ1Byb250byBwZXIgZXZlbnRpIGRpIE9yZGVyJzsKJGxhbmdbJ2luZm9fcGFpZHJlZ19zZXR0aW5ncyddID0gJ0xhIGNvbmZpZ3VyYXppb25lIHNlZ3VlbnRlIHNpIGFwcGxpY2Egc29sbyBjb24gbCYjMDM5O3VzbyBkaSBTZWxmIFJlZ2lzdHJhdGlvbiBlIHBlcm1ldHRlbmRvIGxhIHJlZ2lzdHJhemlvbmUgYSBwYWdhbWVudG8nOwokbGFuZ1snbm9uZSddID0gJ05lc3N1bm8nOwokbGFuZ1snZGVsZXRlX3VzZXInXSA9ICdVdGVudGUgY2FuY2VsbGF0byc7CiRsYW5nWydleHBpcmVfdXNlciddID0gJ1V0ZW50ZSBzY2FkdXRvJzsKJGxhbmdbJ3Byb21wdF9hY3Rpb25fb3JkZXJjYW5jZWxsZWQnXSA9ICdBemlvbmUgZGEgZXNlZ3VpcmUgcXVhbmRvIHVuYSBzb3R0b3Njcml6aW9uZSAmZWdyYXZlOyBhbm51bGxhdGEnOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmRlbGV0ZWQnXSA9ICdBemlvbmUgZGEgZXNlZ3VpcmUgcXVhbmRvIHVuYSBzb3R0b3Njcml6aW9uZSAmZWdyYXZlOyBjYW5jZWxsYXRhJzsKJGxhbmdbJ2Vjb21tZXJjZV9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYXppb25pIEVjb21tZXJjZSc7CiRsYW5nWydzZWN1cmVmaWVsZG1hcmtlciddID0gJ01hcmNhdG9yZSBkZWwgU2VjdXJlIEZpZWxkJzsKJGxhbmdbJ3NlY3VyZWZpZWxkY29sb3InXSA9ICdDb2xvcmUgZGVsIFNlY3VyZSBGaWVsZCc7CiRsYW5nWydwcm9tcHRfZW5jcnlwdCddID0gJ0ltbWFnYXp6aW5hIHF1ZXN0byBkYXRvIGNyaXB0YXRvIG5lbCBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9ub3RzdXBwb3J0ZWQnXSA9ICdMYSBvcHppb25lIHNjZWx0YSBub24gJmVncmF2ZTsgc3VwcG9ydGF0YSBkYWxsJiMwMzk7YXR0dWFsZSBjb25maWd1cmF6aW9uZSc7CiRsYW5nWydhdWRpdF91c2VyX2NyZWF0ZWQnXSA9ICdVdGVudGUgYXV0b21hdGljYW1lbnRlIGNyZWF0byc7CiRsYW5nWydpbmZvX2F1dG9fY3JlYXRlX3Vua25vd24nXSA9ICdTZSB1biB1dGVudGUgJmVncmF2ZTsgYXV0aGVudGljYXRvIGRhIHVuIG1vZHVsbyBlc3Rlcm5vIG1hIHNjb25vc2NpdXRvIGFsIG1vZHVsbyBGcm9udEVuZFVzZXJzIGRvdnJlYmJlIGVzc2VyZSBjcmVhdG8gYXV0b210aWNhbWVudGUgdW4gYWNjb3VudCBGRVU/JzsKJGxhbmdbJ3Byb21wdF9hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnQXV0b21hdGljYW1lbnRlIGNyZWEgdXRlbnRpIFNjb25vc2NpdXRpJzsKJGxhbmdbJ2Rpc3BsYXlfc2V0dGluZ3MnXSA9ICdDb25maWd1cmF6aW9uaSBkaSB2aXN1YWxpenphemlvbmUnOwokbGFuZ1snaW5mb19zdGRfYXV0aF9zZXR0aW5ncyddID0gJ0xlIHNlZ3VlbnRpIGNvbmZpZ3VyYXppb25pIHNvbm8gc29sbyBhcHBsaWNhYmlsaSBjb24gbCYjMDM5O3VzbyBkaSAmcXVvdDtBdXRlbnRpY2F6aW9uaSBpbnRlcm5lJnF1b3Q7Lic7CiRsYW5nWydpbmZvX3N1cHBvcnRfbG9zdHVuJ10gPSAnU2VsZXppb25hbmRvIE5vIGRpc2FiaWxpdGVyJmFncmF2ZTsgbCYjMDM5O2FiaWxpdCZhZ3JhdmU7IHBlciB1bm8gdXNlciBkaSByaWNoaWVkZXJlIGxlIGluZm9ybWF6aW9uaSBwZXIgbGEgcGVyZGl0YSBkZWwgbG9naW4sIGEgcHJlc2NpbmRlcmUgZGEgYWx0cmUgaW1wb3N0YXppb25pJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0cHcnXSA9ICdTZWxlemlvbmFuZG8gTm8gZGlzYWJpbGl0ZXImYWdyYXZlOyBsJiMwMzk7YWJpbGl0JmFncmF2ZTsgcGVyIHVubyB1c2VyIGRpIHJlaW1wb3N0YXJlIGxhIHBhc3N3b3JkLCBhIHByZXNjaW5kZXJlIGRhIGFsdHJlIGltcG9zdGF6aW9uaSc7CiRsYW5nWydwcm9tcHRfc3VwcG9ydF9sb3N0dW4nXSA9ICdQZXJtZXR0ZSBhZ2xpIHV0ZW50aSBkaSByaWNoaWVkZXJlIGlsIGxvcm8gdXNlcm5hbWUnOwokbGFuZ1sncHJvbXB0X3N1cHBvcnRfbG9zdHB3J10gPSAnUGVybWV0dGUgYWdsaSB1dGVudGkgZGkgcmljaGllZGVyZSB1biBjYW1iaWFtZW50byBkaSBwYXNzd29yZCc7CiRsYW5nWydhdXRoX3NldHRpbmdzJ10gPSAnQ29uZmlndXJhemlvbmkgZGkgYXV0ZW50aWNhemlvbmUnOwokbGFuZ1snYXV0aGVudGljYXRpb24nXSA9ICdBdXRlbnRpY2F6aW9uaSBpbnRlcm5lJzsKJGxhbmdbJ2F1dGhfYnVpbHRpbiddID0gJ0F1dGVudGljYXppb25lIHN0YW5kYXJkIEZFVSc7CiRsYW5nWydhdXRoX21vZHVsZSddID0gJ0F1dGVudGljYXppb25lIE1vZHVsby9NZXRvZG8nOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ0lsIG1vZHVsbyBGcm9udGVuZFVzZXJzIHN1cHBvcnRhIGwmIzAzOTt1dGlsaXp6byBkaSBtZXRvZGkgZGkgYXV0ZW50aWNhemlvbmUgYWx0ZXJuYXRpdmksIGNvbiBwb3NzaWJpbGl0JmFncmF2ZTsgZGl2ZXJzZS4gIEFsY3VuZSBmdW56aW9uYWxpdCZhZ3JhdmU7IG5vbiByaXNwb25kZXJhbm5vIG8gc2FyYW5ubyBkaXNhYmlsaXRhdGUgbmVsIGNhc28gbm9uIHNpIHV0aWxpenppIGlsIHNpc3RlbWEgZGkgYXV0ZW50aWNhemlvbmUgaW50ZWdyYXRvJzsKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnSWwgdmFsb3JlIHNwZWNpZmljYXRvIHBlciAlcyAmZWdyYXZlOyBnaSZhZ3JhdmU7IGluIHVzbyBkYSBhbHRybyB1dGVudGUnOwokbGFuZ1sndW5pcXVlJ10gPSAnVW5pY28nOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnSWwgdmFsb3JlIHNwZWNpZmljYXRvIHBlciAlcyAoJXMpIG5vbiAmZWdyYXZlOyB1bmljbyc7CiRsYW5nWydwcm9tcHRfZm9yY2VfdW5pcXVlJ10gPSAnRm9yemEgaSB2YWxvcmkgZGkgcXVlc3RhIHByb3ByaWV0JmFncmF2ZTsgZGkgZXNzZXJlIHVuaWNhIGF0dHJhdmVyc28gdHV0dGkgZ2xpIHV0ZW50aSc7CiRsYW5nWydoZWxwX3JldHVybmxhc3QnXSA9ICdVdGlsaXp6YXRvIGNvbiBpIG1vZHVsaSBkaSBsb2dpbiBlIGxvZ291dCwgcXVlc3RvIHBhcmFtZXRybyAoc2Ugc3BlY2lmaWNhdG8pIGluZGljaGVyJmFncmF2ZTsgY2hlIGwmIzAzOTt1dGVudGUgZGViYmEgZXNzZXJlIHJlaW5kaXJpenphdG8gdmVyc28gbGEgcGFnaW5hICh1cmwpIGNoZSBzdGF2YSB2aXN1YWxpenphbmRvIHByaW1hIGRlbGwmIzAzOTtlc2VjdXppb25lIGRlbGwmIzAzOTthemlvbmUuICBJbCBwYXJhbWV0cm8gc292cmFzY3JpdmVyJmFncmF2ZTsgbGUgaW1wb3N0YXppb25pIGRpIHJlaW5kaXJpenphbWVudG8gZSBpbCBwYXJhbWV0cm8gcmV0dXJudG8uJzsKJGxhbmdbJ2hlbHBfbm9pbmxpbmUnXSA9ICdVdGlsaXp6YXRvY29uIHVubyBkZWkgbW9kdWxpLCBxdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBjaGUgaSBtb2R1bGkgbm9uIGRlYmJhbm8gZXNzZXJlIHBvc2l6aW9uYXRpIGluIGxpbmVhLCBtYSBjaGUgbCYjMDM5O291dHB1dCByaXN1bHRhbnRlIGRvcG8gbCYjMDM5O2ludmlvIGRlbCBtb2R1bG8gc29zdGl0dWlzY2EgaWwgYmxvY2NvIGRpIGNvbnRlbnV0byBwcmVkZWZpbml0byc7CiRsYW5nWyd0aXRsZV9yZXNldF9zZXNzaW9uJ10gPSAnQXZ2aXNvIHBlciBzZXNzaW9uZSBkaSBsb2dpbiBzY2FkdXRhJzsKJGxhbmdbJ21zZ19yZXNldF9zZXNzaW9uJ10gPSAnWW91ciBsb2dpbiBzZXNzaW9uIGlzIGFib3V0IHRvIGV4cGlyZSwgcGxlYXNlIGNsaWNrICZxdW90OyZxdW90O09rJnF1b3Q7IHRvIGNvbmZpcm0geW91ciBhY3Rpdml0eSBvbiB0aGlzIHdlYnNpdGUuJzsKJGxhbmdbJ29rJ10gPSAnT0snOwokbGFuZ1sncmVzZXRzZXNzaW9uX3RlbXBsYXRlJ10gPSAnUmVpbXBvc3RhIE1vZGVsbG8gU2Vzc2lvbmUnOwokbGFuZ1snaW5mb19uYW1lJ10gPSAnUXVlc3RvICZlZ3JhdmU7IGlsIG5vbWUgZGVsIGNhbXBvIHV0aWxpenphdG8gcGVyIGwmIzAzOTtpbmRpcml6emFtZW50byBpbiBzbWFydHkuICBEZXYmIzAzOTtlc3NlcmUgY29tcG9zdG8gc29sbyBkYSBjYXJhdHRlcmkgYWxmYW51bWVyaWNpIGUgdW5kZXJzY29yZSAoJnF1b3Q7XyZxdW90OykuJzsKJGxhbmdbJ3Zpc2l0b3JzX3RhYiddID0gJ1Zpc2l0YXRvcmknOwokbGFuZ1snZmV1X2dyb3Vwc19wcm9tcHQnXSA9ICdTZWxlemlvbmEgdW5vIG8gcGkmdWdyYXZlOyBncnVwcGkgRkVVIGEgY3VpICZlZ3JhdmU7IHBlcm1lc3NvIHZpc3VhbGl6emFyZSBxdWVzdGEgcGFnaW5hJzsKJGxhbmdbJ2Vycm9yX211c3RzZWxlY3RfZ3JvdXAnXSA9ICdTZWxlemlvbmFyZSBhbG1lbm8gdW4gZ3J1cHBvJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGV6aW9uYSB1bm8nOwokbGFuZ1snc3RhcnRfeWVhciddID0gJ0Fubm8gZGkgcGFydGVuemEnOwokbGFuZ1snZW5kX3llYXInXSA9ICdBbm5vIGZpbmFsZSc7CiRsYW5nWydkYXRlJ10gPSAnRGF0YSc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdEaW1lbnNpb25lIG1pbmlhdHVyYSc7CiRsYW5nWydPblVwZGF0ZUdyb3VwJ10gPSAnQWxsYSBtb2RpZmljYSBkZWkgR3J1cHBpIFV0ZW50ZSc7CiRsYW5nWydlcnJvcl90b29tYW55c2VsZWN0ZWQnXSA9ICdTb25vIHNlbGV6aW9uYXRpIHRyb3BwaSB1dGVudGkgcGVyIG9wZXJhemlvbmkgZGkgbWFzc2EuLi4gUmlkdWNldGVsaSBhIDI1MCBvIG1lbm8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXJlIGVsaW1pbmFyZSBnbGkgdXRlbnRpIHNlbGV6aW9uYXRpPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdFbGltaW5hIFNlbGV6aW9uYXRpJzsKJGxhbmdbJ3Byb21wdF9yYW5kb211c2VybmFtZSddID0gJ0dlbmVyYSBub21lIHV0ZW50ZSBjYXN1YWxlIHF1YW5kbyBzaSBhZ2dpdW5nb25vIG51b3ZpIHV0ZW50aSc7CiRsYW5nWydtb250aHMnXSA9ICdtZXNpJzsKJGxhbmdbJ3Byb21wdF9leHBpcmVhZ2UnXSA9ICdQZXJpb2RvIGRpIHZhbGlkaXQmYWdyYXZlOyB1dGVudGUgcHJlZGVmaW5pdG8nOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnSW1wb3N0YXppb25pIGRpIG5vdGlmaWNhJzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnSW1wb3N0YXppb25pIGRpIHByb3ByaWV0JmFncmF2ZTsnOwokbGFuZ1sncmVkaXJlY3Rpb25fc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmkgZGkgcmVkaXJlemlvbmFtZW50byc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnSW1wb3N0YXppb25pIEdlbmVyYWxpJzsKJGxhbmdbJ3Nlc3Npb25fc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmkgZGkgU2Vzc2lvbmUgZSBDb29raWUnOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmkgQ2FtcGknOwokbGFuZ1snZXJyb3JfbG9zdHVuX25vbnJlcXVpcmVkJ10gPSAnSWwgZmxhZyBsb3N0dXNlcm5hbWUgcHUmb2dyYXZlOyBlc3NlcmUgdXRpbGl6emF0byBzb2xvIHN1IGNhbXBpIG9iYmxpZ2F0b3JpJzsKJGxhbmdbJ3Byb3BfdGV4dGFyZWFfd3lzaXd5ZyddID0gJ1Blcm1ldHRpIGwmIzAzOTt1c28gZGkgdW4gZWRpdG9yIHd5c2l3eWcgcGVyIHF1ZXN0JiMwMzk7YXJlYSBkaSB0ZXN0byc7CiRsYW5nWydlZGl0aW5nX3VzZXInXSA9ICdNb2RpZmljYSBVdGVudGUnOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdOb24gYWxsaW5lYXJlIE1vZHVsaSc7CiRsYW5nWydpbmZvX2xvc3R1biddID0gJ0NsaWNjYXRlIHF1aSBzZSBub24gcmljb3JkYXRlIGkgZGV0dGFnbGkgZGVsIHZvc3RybyBsb2dpbic7CiRsYW5nWydpbmZvX2ZvcmdvdHB3J10gPSAnQ2xpY2NhdGUgcXVpIHNlIG5vbiByaWNvcmRhdGUgbGEgdm9zdHJhIHBhc3N3b3JkJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnQ2xpY2NhdGUgcXVpIHBlciBkaXNjb25uZXR0ZXJ2aSc7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnQ2xpY2NhdGUgcXVpIHBlciBtb2RpZmljYXJlIGxhIHZvc3RyYSBwYXNzd29yZCBvIGFsdHJlIGluZm9ybWF6aW9uaSc7CiRsYW5nWyd2aWV3dXNlcl90ZW1wbGF0ZSddID0gJ1Zpc3VhbGl6emEgaWwgTW9kZWxsbyBVdGVudGUnOwokbGFuZ1snZXZlbnQnXSA9ICdFdmVudG8nOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ05vdGlmaWNhIEV2ZW50byBGRVUnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnSW5kaXJpenpvIEVtYWlsIHBlciBOb3RpZmljaGUnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ01vZGVsbG8gRW1haWwgZGkgTm90aWZpY2EnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9zdWJqZWN0J10gPSAnT2dnZXR0byBkZWxsYSBFbWFpbCBkaSBub3RpZmljYSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9ucyddID0gJ05vdGlmaWNoZSB2aWEgRW1haWwnOwokbGFuZ1snT25Mb2dpbiddID0gJ0FsIExvZ2luJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnQWwgTG9nb3V0JzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ0FsbGEgU2NhZGVuemEgU2Vzc2lvbmUnOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnQWxsYSBDcmVhemlvbmUgTnVvdm8gVXRlbnRlJzsKJGxhbmdbJ09uRGVsZXRlVXNlciddID0gJ0FsbGEgQ2FuY2VsbGF6aW9uZSBVdGVudGUnOwokbGFuZ1snT25VcGRhdGVVc2VyJ10gPSAnQWxsYSBNb2RpZmljYSBJbXBvc3RhemlvbmkgVXRlbnRlJzsKJGxhbmdbJ09uQ3JlYXRlR3JvdXAnXSA9ICdBbGxhIENyZWF6aW9uZSBHcnVwcGkgVXRlbnRlJzsKJGxhbmdbJ09uRGVsZXRlR3JvdXAnXSA9ICdBbGxhIENhbmNlbGxhemlvbmUgR3J1cHBpIFV0ZW50ZSc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ0xhIGZ1bnppb25hbGl0JmFncmF2ZTsgZGV0dGFnbGkgZGkgbG9naW4gcGVyc2kgJmVncmF2ZTsgc3RhdGEgY29tcGxldGF0YSBjb3JyZXR0YW1lbnRlLiBBYmJpYW1vIHRyb3ZhdG8gdW4gbm9tZSB1dGVudGUgdW5pdm9jbyBjaGUgY29ycmlzcG9uZGUgY29uIGxlIGluZm9ybWF6aW9uaSBjaGUgYXZldGUgaW5zZXJpdG8uJzsKJGxhbmdbJ3lvdXJfdXNlcm5hbWVfaXMnXSA9ICdJbCB2b3N0cm8gbm9tZSB1dGVudGUgJmVncmF2ZTsnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAnVmkgcmFjY29tYW5kaWFtbyBkaSByZWdpc3RyYXJlIHF1ZXN0YSBpbmZvcm1hemlvbmUgaW4gdW4gcG9zdG8gc2ljdXJvIG1hIHJlY3VwZXJhYmlsZS4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX2NoYW5nZV9zZXR0aW5ncyddID0gJ0lEL0FsaWFzIGRpIHBhZ2luYSBhIGN1aSBhbmRhcmUgZG9wbyBpbCBjYW1iaW8gZGVsbGUgaW1wb3N0YXppb25pJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl92ZXJpZnlfY29kZSddID0gJ0lEL0FsaWFzIGRpIHBhZ2luYSBhIGN1aSBhbmRhcmUgZG9wbyBsYSB2ZXJpZmljYSBkZWwgY29kaWNlIConOwokbGFuZ1snbG9zdHVuX2RldGFpbHNfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIERldHRhZ2xpIE5vbWUgVXRlbnRlIFBlcnNvJzsKJGxhbmdbJ2xvc3R1bl9jb25maXJtX3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBDb25mZXJtYSBOb21lIFV0ZW50ZSBQZXJzbyc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0Vycm9yZTogUGkmdWdyYXZlOyBkaSB1biBhY2NvdW50IHV0ZW50ZSBjb2luY2lkZSBjb24gbGUgcHJvcHJpZXQmYWdyYXZlOyBzcGVjaWZpY2F0ZSc7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdFcnJvcmU6IE5vbiB0cm92byBuZXNzdW4gdXRlbnRlIGNvcnJpc3BvbmRlbnRlJzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdFcnJvcmU6IE5vbiB0cm92byB1biBncnVwcG8gY29uIHF1ZWwgbm9tZSc7CiRsYW5nWydyZWFkb25seSddID0gJ1NvbGEgbGV0dHVyYSc7CiRsYW5nWydwcm9tcHRfdXNlcm1hbmlwdWxhdG9yJ10gPSAnQ2xhc3NlIHBlciBsYSBtYW5pcG9sYXppb25lIHV0ZW50aSc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdEaXNjb25uZXNzbyBkYWxsJiMwMzk7YW1taW5pc3RyYXRvcmUnOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ01vc3RyYSBzb2xvIHV0ZW50aSBjb25uZXNzaSc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnRGlzY29ubmV0dGkgcXVlc3RvIHV0ZW50ZSc7CiRsYW5nWyd1c2VyX3Byb3BlcnRpZXMnXSA9ICdQcm9wcmlldCZhZ3JhdmU7IHV0ZW50ZSc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0Nyb25vbG9naWEgdXRlbnRlJzsKJGxhbmdbJ2V4cG9ydCddID0gJ0VzcG9ydGEnOwokbGFuZ1snY2xlYXInXSA9ICdQdWxpc2NpJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0VzcG9ydGEgbGEgQ3Jvbm9sb2dpYSBVdGVudGUgaW4gQVNDSUkgY2hlICZlZ3JhdmU7IGFsbWVubyc7CiRsYW5nWydwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeSddID0gJ1B1bGlzY2kgaSB2YWxvcmkgZGVsbGEgQ3Jvbm9sb2dpYSBVdGVudGUgY2hlIHNvbm8gYWxtZW5vJzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJ1ZhbG9yaSBkaSBMb2dpbiBEaW1lbnRpY2F0aT8nOwokbGFuZ1sndGl0bGVfcnNzZXhwb3J0J10gPSAnRXNwb3J0YSBkZWZpbml6aW9uaSBkZWwgZ3J1cHBvIChlIHByb3ByaWV0JmFncmF2ZTspIGluIFhNTCc7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeW1haW50ZW5hbmNlJ10gPSAnR2VzdGlvbmUgY3Jvbm9sb2dpYSB1dGVudGUnOwokbGFuZ1sneWVzJ10gPSAnUyZpZ3JhdmU7JzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnZGknOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogTmVzc3VuIGxpbWl0ZSAqKic7CiRsYW5nWydkYXRlX29uZWhvdXJvbGQnXSA9ICdWZWNjaGlvIGRpIHVuIG9yYSc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICdWZWNjaGlvIGRpIHNlaSBvcmUnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnVmVjY2hpbyBkaSBkb2RpY2kgb3JlJzsKJGxhbmdbJ2RhdGVfb25lZGF5b2xkJ10gPSAnVmVjY2hpbyBkaSB1biBnaW9ybm8nOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnVmVjY2hpbyBkaSB1bmEgc2V0dGltYW5hJzsKJGxhbmdbJ2RhdGVfdHdvd2Vla3NvbGQnXSA9ICdWZWNjaGlvIGRpIGR1ZSBzZXR0aW1hbmUnOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJ1ZlY2NoaW8gZGkgdW4gbWVzZSc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnVmVjY2hpbyBkaSB0cmUgbWVzaSc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ1ZlY2NoaW8gZGkgc2VpIG1lc2knOwokbGFuZ1snZGF0ZV9vbmV5ZWFyb2xkJ10gPSAnVmVjY2hpbyBkaSB1biBhbm5vJzsKJGxhbmdbJ3RpdGxlX2dyb3Vwc29ydCddID0gJ1JhZ2dydXBwYW1lbnRvIGUgb3JkaW5hbWVudG8nOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ1ZhbG9yaSBjaGUgY29ycmlzcG9uZG9ubyBhbCBjcml0ZXJpbyc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfZGVzYyddID0gJ05vbWkgVXRlbnRlIGRpc2NlbmRlbnRpJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdOb21pIFV0ZW50ZSBhc2NlbmRlbnRpJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2Rlc2MnXSA9ICdEYXRhIGRpc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2FzYyddID0gJ0RhdGEgYXNjZW5kZW50ZSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdUaXBvIGV2ZW50byBkaXNjZW5kZW50ZSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2FzYyddID0gJ1RpcG8gZXZlbnRvIGFzY2VuZGVudGUnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19kZXNjJ10gPSAnSW5kaXJpenppIElwIGRpc2NlbmRlbnRpJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnSW5kaXJpenppIElwIGFzY2VuZGVudGknOwokbGFuZ1snaW5mb19ub2hpc3RvcnlkZXRlY3RlZCddID0gJ05lc3N1bmEgY3Jvbm9sb2dpYSB0cm92YXRhJzsKJGxhbmdbJ3Jlc2V0J10gPSAnQXp6ZXJhJzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ1JhZ2dydXBwYSBwZXIgaW5kaXJpenpvIElQJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZXZlbnR0eXBlJ10gPSAnRmlsdHJhIHBlciB0aXBvIGRpIGV2ZW50byc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdWaXN1YWxpenphIHNvbG8gZ2xpIGV2ZW50aSBjaGUgc29ubyBtZW5vIGRpOic7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnTGltaXRlIHBhZ2luYSc7CiRsYW5nWydmb3InXSA9ICdwZXInOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdSZXBvcnQgY3Jvbm9sb2dpYSB1dGVudGUnOwokbGFuZ1sndW5rbm93biddID0gJ1Njb25vc2NpdXRvJzsKJGxhbmdbJ3Byb21wdF9pcGFkZHJlc3MnXSA9ICdJbmRpcml6em8gSVAnOwokbGFuZ1sncHJvbXB0X2V2ZW50dHlwZSddID0gJ1RpcG8gZXZlbnRvJzsKJGxhbmdbJ3Byb21wdF9kYXRlJ10gPSAnRGF0YSc7CiRsYW5nWydwcm9tcHRfcmV0dXJuJ10gPSAnUml0b3JuYSc7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnT3BlcmF6aW9uZSBkaSBpbXBvcnRhemlvbmUgY29tcGxldGF0YSc7CiRsYW5nWydwcm9tcHRfbGluZXNwcm9jZXNzZWQnXSA9ICdMaW5lZSBwcm9jZXNzYXRlJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdFcnJvcmkgaW5jb250cmF0aSc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnUmVjb3JkIGFnZ2l1bnRpJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnXSA9ICdOb24gdHJvdm8gcHJvcHJpZXQmYWdyYXZlOyBwZXIgaWwgZ3J1cHBvICVzJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnTm9uIGhvIG90dGVudXRvIHJpc3Bvc3RlIGRhbCBzZXJ2ZXIgU01UUCc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlbm90Zm91bmQnXSA9ICdJbCBmaWxlIHNwZWNpZmljYXRvICglcykgbm9uICZlZ3JhdmU7IHN0YXRvIHRyb3ZhdG8nOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ1ZhbG9yZSBub24gdmFsaWRpIHBlciBjYW1waSB0ZW5kaW5hIG8gbXVsdGlzZWxlemlvbmUgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdJbCBjYW1wbyAlcyBlY2NlZGUgbGEgbHVuZ2hlenphIG1hc3NpbWEnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICdFcnJvcmUgZGkgaW1wb3J0YXppb25lIChsaW5lYSAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdOb24gcmllc2NvIGFkIG90dGVuZXJlIGxlIGRlZmluaXppb25pIGRlbGxhIHByb3ByaWV0JmFncmF2ZTsgKGVycm9yZSBpbnRlcm5vKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ2luZm8nXSA9ICdQcm9ibGVtYSBuZWxsJiMwMzk7aW1wb3N0YXJlIGxlIGluZm9ybWF6aW9uaSB1dGVudGUnOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ05vbiB0cm92byB1bmEgY29sb25uYSBjaGUgY29pbmNpZGEgY29uIGlsIGNhbXBvIHJpY2hpZXN0byAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ05vbiB0cm92byBwcm9wcmlldCZhZ3JhdmU7IHBlciBpbCBncnVwcG8gc3BlY2lmaWNhdG8nOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ0lsIGZpbGUgc3BlY2lmaWNhdG8gcGVyIGwmIzAzOTtpbXBvcnRhemlvbmUgbm9uICZlZ3JhdmU7IG5lbCBmb3JtYXRvIGNvcnJldHRvJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90b3BlbmZpbGUnXSA9ICdOb24gcG9zc28gYXByaXJlIGlsIGZpbGUnOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcIykgY2hhcmFjdGVycywgYW5kIG5hbWVzIGVhY2ggb2YgdGhlIGZpZWxkcyBpbiB0aGUgZmlsZS4gIFRoZSBuYW1lcyBvZiB0aGVzZSBmaWVsZHMgaXMgc2lnbmlmaWNhbnQuICBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZCBuYW1lcyAoc2VlIGJlbG93KSwgYW5kIG90aGVyIGZpZWxkIG5hbWVzIG11c3QgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdXNlcnMgYXJlIGdvaW5nIHRvIGJlIGFkZGVkIGludG8uPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBmYWlsIGlmIHRoZSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgZG9lcyBub3QgbWF0Y2ggYWxsIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdGhhdCB1c2VycyBhcmUgYmVpbmcgYWRkZWQgaW50bzwvbGk+DQo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBpZ25vcmUgYW55IGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSB0aGF0IGFyZSBlaXRoZXIgbm90IGtub3duLCBvciBtYXAgdG8gcHJvcGVydGllcyB0aGF0IGFyZSA8ZW0+b2ZmPC9lbT4gaW4gdGhlIHNwZWNpZmllZCB1c2VyIGdyb3VwLjwvbGk+DQo8L3VsPg0KPGg1PkNvbHVtbmFyIERhdGE8L2g1Pg0KPHVsPg0KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuDQogICAgPHA+VGhpcyBmaWVsZCBtdXN0IGV4aXN0IGluIHRoZSBoZWFkZXJsaW5lLCBhbmQgaW4gZWFjbiBhbmQgZXZlcnkgbGluZSBvZiB0aGUgaW5wdXQgZmlsZS4gVGhlIHJlY29yZCB3aWxsIGZhaWwgaWYgYSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UuPC9wPjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5leHBpcmVzPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+RHJvcGRvd24gRmllbGRzDQogICAgPHA+VGhlIHZhbHVlIG9mIGRyb3Bkb3duIHByb3BlcnRpZXMgaW4gYW4gaW1wb3J0IGZpbGUgaXMgcmVwcmVzZW50ZWQgYXMgdGhlIHN0cmluZyB0aGF0IGlzIHNob3duIGluIHRoZSBkcm9wZG93biBjb250cm9sIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPk11bHRpc2VsZWN0IEZpZWxkcw0KICAgIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4NCjwvbGk+DQo8bGk+SW1hZ2UgRmllbGRzDQogICAgPHA+SW1hZ2UgYXJlIGZpZWxkcyB3aG8mIzAzOTtzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydGRlc3Rncm91cCddID0gJ0ltcG9ydGEgVXRlbnRpIGluIHF1ZXN0byBHcnVwcG8nOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnRmlsZSBDU1YgZGkgSW5wdXQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdGaWxlIFhNTCBkaSBJbnB1dCc7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcnMnXSA9ICdFc3BvcnRhIFV0ZW50aSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnRhIFV0ZW50aSc7CiRsYW5nWydwcm9tcHRfY2xlYXInXSA9ICdQdWxpc2NpJzsKJGxhbmdbJ3Byb21wdF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRoJ10gPSAnUGVyY29yc28gRGVzdGluYXppb25lIEltbWFnaW5lJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnUHJvYmxlbWEgb2Njb3JzbyBjb24gdW4gZmlsZSBjYXJpY2F0byBtYW5jYW50ZSAobWEgbmVjZXNzYXJpbyknOwokbGFuZ1snZXJyb3JfYmFkX3htbCddID0gJ05vbiByaWVzY28gYWQgaW50ZXJwcmV0YXJlIGlsIGZpbGUgWE1MIGZvcm5pdG8nOwokbGFuZ1snZXJyb3Jfbm90ZW1wdHlncm91cCddID0gJ05vbiBwb3NzbyBlbGltaW5hcmUgdW4gZ3J1cHBvIGNoZSBjb250aWVuZSBhbmNvcmEgdXRlbnRpJzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdRdWVzdG8gdXRlbnRlICZlZ3JhdmU7IGdpJmFncmF2ZTsgY29sbGVnYXRvJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ0lsIHRlc3RvIGRhbGwmIzAzOTtpbW1hZ2luZSBub24gJmVncmF2ZTsgc3RhdG8gaW5zZXJpdG8gY29ycmV0dGFtZW50ZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnUGVybWV0dGUgYWdsaSB1dGVudGkgZGkgY29ubmV0dGVyc2kgcGkmdWdyYXZlOyB2b2x0ZSBjb250ZW1wb3JhbmVhbWVudGUnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0VzdGVuc2lvbmkgZGVsIGZpbGUgaW1tYWdpbmUgZGkgdXBsb2FkIHBlcm1lc3NpIGFsbCYjMDM5O3V0ZW50ZSc7CiRsYW5nWydldmVudF9oZWxwX09uUmVmcmVzaFVzZXInXSA9ICc8aDM+T25SZWZyZXNoVXNlcjwvaDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiB0aGUgdXNlciBzZXNzaW9uIGlzIHJlZnJlc2hlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczo8L2g0Pg0KPHVsPg0KICA8bGk+PGVtPmlkPC9lbT4gLSBUaGUgVXNlciBpZDwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlVXNlciddID0gJzxoMz5PbkRlbGV0ZVVzZXI8aDM+DQo8cD5VbiBldmVudG8gZ2VuZXJhdG8gcXVhbmRvIHVuIHV0ZW50ZSB2aWVuZSBjYW5jZWxsYXRvPC9wPg0KPGg0PlBhcmFtZXRyaTwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBJbCBub21lIHV0ZW50ZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBMJiMwMzk7SUQgdXRlbnRlPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPlVuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdmllbmUgY3JlYXRvIHVuIHV0ZW50ZTwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBJbCBub21lIHV0ZW50ZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBMJiMwMzk7SUQgdXRlbnRlPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPlVuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdW4gdXRlbnRlICZlZ3JhdmU7IGFnZ2lvcm5hdG8gKG8gZGFsbG8gc3Rlc3NvIHVzZXIgbyBkYSBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gSWwgbm9tZSB1dGVudGU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gTCYjMDM5O0lEIHV0ZW50ZTwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlR3JvdXAnXSA9ICc8aDM+T25DcmVhdGVHcm91cDxoMz4NCjxwPlVuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdmllbmUgY3JlYXRvIHVuIGdydXBwbzwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBJbCBub21lIGRlbCBncnVwcG88L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gTGEgZGVzY3JpemlvbmUgZGVsIGdydXBwbzwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBMJiMwMzk7SUQgZGVsIGdydXBwbzwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlR3JvdXAnXSA9ICc8aDM+T25EZWxldGVHcm91cDxoMz4NCjxwPlVuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdmllbmUgY2FuY2VsbGF0byB1biBncnVwcG88L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gSWwgbm9tZSBkZWwgZ3J1cHBvPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIEwmIzAzOTtJRCBkZWwgZ3J1cHBvPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dpbiddID0gJzxoMz5PbkxvZ2luPGgzPg0KPHA+VW4gZXZlbnRvIGdlbmVyYXRvIHF1YW5kbyB1biB1dGVudGUgZWZmZXR0dWEgbCYjMDM5O2FjY2Vzc288L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIElsIG5vbWUgZGVsbCYjMDM5O3V0ZW50ZSBjaGUgaGEgZWZmZXR0dWF0byBsJiMwMzk7YWNjZXNzbzwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBMJiMwMzk7aW5kaXJpenpvIElQIGRlbCBjbGllbnQ8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxwPlVuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdW4gdXRlbnRlIHNpIGRpc2Nvbm5ldHRlPC9wPg0KPGg0PlBhcmFtZXRyaTwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBJbCBub21lIGRlbGwmIzAzOTt1dGVudGUgZGlzY29ubmVzc288L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gTCYjMDM5O0lEIHV0ZW50ZTwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uRXhwaXJlVXNlciddID0gJzxwPlVuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gc2NhZGUgdW5hIHNlc3Npb25lIHV0ZW50ZTwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gSWwgbm9tZSBkZWxsJiMwMzk7dXRlbnRlIHNjYWR1dG88L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gTCYjMDM5O0lEIGRlbGwmIzAzOTt1dGVudGUgc2NhZHV0bzwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9pbmZvX09uTG9naW4nXSA9ICdVbiBldmVudG8gZ2VuZXJhdG8gcXVhbmRvIHVuIHV0ZW50ZSBzaSBjb25uZXR0ZSBhbCBzaXN0ZW1hJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdVbiBldmVudG8gZ2VuZXJhdG8gcXVhbmRvIHVuIHV0ZW50ZSBzaSBkaXNjb25uZXR0ZSBkYWwgc2lzdGVtYSc7CiRsYW5nWydldmVudF9pbmZvX09uRXhwaXJlVXNlciddID0gJ1VuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gbGEgc2Vzc2lvbmUgdXRlbnRlIHNjYWRlJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVVc2VyJ10gPSAnVW4gZXZlbnRvIGdlbmVyYXRvIHF1YW5kbyB2aWVuZSBjcmVhdG8gdW4gbnVvdm8gdXRlbnRlJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25SZWZyZXNoVXNlciddID0gJ1VuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdmllbmUgYWdnaW9ybmF0YSBsYSBzZXNzaW9uZSB1dGVudGUnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdVbiBldmVudG8gZ2VuZXJhdG8gcXVhbmRvIGxlIGluZm9ybWF6aW9uaSB1dGVudGUgc29ubyBhZ2dpb3JuYXRlJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnVW4gZXZlbnRvIGdlbmVyYXRvIHF1YW5kbyB2aWVuZSBjYW5jZWxsYXRvIHVuIGFjY291bnQgdXRlbnRlJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ1VuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdmllbmUgY3JlYXRvIHVuIG51b3ZvIGdydXBwbyc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdVbiBldmVudG8gZ2VuZXJhdG8gcXVhbmRvIHVuIGdydXBwbyAmZWdyYXZlOyBhZ2dpb3JuYXRvJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ1VuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdmllbmUgY2FuY2VsbGF0byB1biBncnVwcG8nOwokbGFuZ1snYmFja2VuZF9ncm91cCddID0gJ0dydXBwbyBkaSBCYWNrZW5kJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogTGUgc2VndWVudGkgbWFjcm8gcG9zc29ubyBlc3NlcmUgdXNhdGUgaW4gcXVlc3RvIGNhbXBpOiB7JHVzZXJuYW1lfSx7JGdyb3VwfS4gUXVhbmRvIHVzYXRlIGxhIG1hY3JvIHskZ3JvdXB9LCBpbCBzaXN0ZW1hIHNvc3RpdHVpciZhZ3JhdmU7IGlsIG5vbWUgZGVsIHByaW1vIGdydXBwbyB1dGVudGkgYSBjdWkgYXBwYXJ0aWVuZSBsJiMwMzk7dXRlbnRlIGUgcmVkaXJlemlvbmVyJmFncmF2ZTsgYSBxdWVsbGEgcGFnaW5hLic7CiRsYW5nWydpbmZvX2FkbWluX3Bhc3N3b3JkJ10gPSAnTW9kaWZpY2EgcXVlc3RvIGNhbXBvIHBlciByZXNldHRhcmUgbGUgcGFzc3dvcmQgdXRlbnRpJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdNb2RpZmljYSBxdWVzdG8gY2FtcG8gcGVyIHJlc2V0dGFyZSBsZSBwYXNzd29yZCB1dGVudGknOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnRXNpc3RlIGdpJmFncmF2ZTsgdW4gdXRlbnRlIGNvbiBxdWVzdG8gdXNlcm5hbWUnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnTmVzc3VuIHJpc3VsdGF0byByaWNldnV0byBkYWxsJiMwMzk7ZXNwb3J0YXppb25lIGNzdic7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdMdW5naGV6emEgZGVsIGNhbXBvIG5vbWUgdXRlbnRlJzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ0x1bmdoZXp6YSBkZWwgY2FtcG8gcGFzc3dvcmQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ0x1bmdoZXp6YSBNaW4vTWF4IGRlbGxhIHBhc3N3b3JkIG5vbiB2YWxpZGEnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ0x1bmdoZXp6YSBNaW4vTWF4IGRlbCBub21lIHV0ZW50ZSBub24gdmFsaWRhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdJbmRpcml6em8gRW1haWwgbm9uIHZhbGlkbyc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ05vbiB0cm92byB1biBpbmRpcml6em8gZW1haWwgcGVyIHF1ZXN0byBhY2NvdW50JzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdQcm9ibGVtYSBuZWxsJiMwMzk7aW1wb3N0YXppb25lIGRlbGxlIGluZm9ybWF6aW9uaSB1dGVudGUnOwokbGFuZ1snZXJyb3Jfc2V0dGluZ3Byb3BlcnR5J10gPSAnUHJvYmxlbWEgbmVsbCYjMDM5O2ltcG9zdGF6aW9uZSBkZWxsZSBwcm9wcmlldCZhZ3JhdmU7JzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdVdGVudGUgYWdnaXVudG8gJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdVdGVudGUgY2FuY2VsbGF0byB1aWQ9JXMnOwokbGFuZ1sncHJvcGVydHlmaWx0ZXInXSA9ICdQcm9wcmlldCZhZ3JhdmU7JzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWYWxvcmUgKGVzcHJlc3Npb25lIHJlZ29sYXJlKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ0F0dGVuemlvbmU6IFF1ZXN0aSBjYW1waSBpbmZsdWlzY29ubyBzdWxsYSBkaW1lbnNpb25lIGRlaSBjYW1waSBkaSBpbnB1dCBkZWkgZm9ybS4gUG90cmViYmUgbm9uIGVzc2VyZSBjb25zaWdsaWFiaWxlIGRpbWludWlyZSBxdWVzdG8gbnVtZXJvIHN1IHVuIHNpdG8gZXNpc3RlbnRlJzsKJGxhbmdbJ2NvbmZpcm1fc3VibWl0cHJlZnMnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXJlIG1vZGlmaWNhcmUgbGUgcHJlZmVyZW56ZSBkZWwgbW9kdWxvPyc7CiRsYW5nWydlcnJvcl9lbWFpbGFscmVhZHl1c2VkJ10gPSAnSW5kaXJpenpvIGVtYWlsIGdpJmFncmF2ZTsgdXNhdG8nOwokbGFuZ1sncHJvbXB0X3VzZWNvb2tpZXN0b3JlbWVtYmVyJ10gPSAnVXNhIGNvb2tpZXMgcGVyIHJpY29yZGFyZSBpIGRldHRhZ2xpIGRlbCBsb2dpbic7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ05vbWUgZGVsIGNvb2tpZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJ1Blcm1ldHRpIGVtYWlsIGR1cGxpY2F0ZSc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdMJiMwMzk7aW5kaXJpenpvIEVtYWlsIGRpdmVudGEgbG8gdXNlcm5hbWUnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnU2kgY2VyY2EgZGkgdGVuZXJlIGF0dGl2YSBsYSBzZXNzaW9uZSBjb24gbCYjMDM5O3VzbyBkaSB1biBjb29raWUgPGVtPihpbCBjb29raWUgJmVncmF2ZTsgY29udGludWFtZW50ZSByZXNldHRhdG8gY29uIGwmIzAzOTthdHRpdml0JmFncmF2ZTsgc3VsIHNpdG8pPC9lbT4nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKHBlcm1ldHRpIHBpJnVncmF2ZTsgdXRlbnRpIGNvbiBsbyBzdGVzc28gaW5kaXJpenpvIGVtYWlsKSc7CiRsYW5nWydpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnKGluZGlyaXp6byBlbWFpbCBkZWxsJiMwMzk7dXRlbnRlICZlZ3JhdmU7IGlsIHN1byBub21lIHV0ZW50ZSAtLSBub24gdXRpbGl6emFyZSBxdWVzdGEgaW1wb3N0YXppb25lIGNvbiAmcXVvdDtwZXJtZXR0aSBpbmRpcml6emkgZW1haWwgZHVwbGljYXRpJnF1b3Q7ISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdQZXJtZXR0aSByaWNoaWVzdGUgbXVsdGlwbGUgcGVyIHBhc3N3b3JkIGRpbWVudGljYXRlPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcocGVybWV0dGUgYWQgdW4gdXRlbnRlIGRpIHJpY2hpZWRlcmUgbCYjMDM5O2F6emVyYW1lbnRvIGRlbGxhIHBhc3N3b3JkIGFuY2hlIHNlIG5vbiBoYSBwb3J0YXRvIGEgdGVybWluZSB1bmEgcmljaGllc3RhIHByZWNlZGVudGUpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnVXNhIGkgcGVybWVzc2kgc3BlY2lmaWNpIGRlbCBtb2R1bG8gRnJvbnRFbmRVc2VyPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFsbWVudGUgaSBwZXJtZXNzaSBwZXIgRkVVc2VycyBzb25vIGdsaSBzdGVzc2kgZGVnbGkgZXF1aXZhbGVudGkgcGVybWVzc2kgbmVsbCYjMDM5O2FyZWEgQW1taW5pc3RyYXppb25lIGNvbWUgQWdnaXVuZ2kgVXRlbnRlLCBBZ2dpdW5naSBHcnVwcG8sIGV0Yy4gU2Ugc2VsZXppb25hdGUgcXVlc3RhIG9wemlvbmUgY2kgc2FyYW5ubyBwZXJtZXNzaSBzZXBhcmF0aSBwZXIgRkVVc2Vycy4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdOb24gdHJvdm8gaWwgZmlsZSBkaSB1cGxvYWQgKGVycm9yZSBpbnRlcm5vKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtX3VwbG9hZCddID0gJ1NpICZlZ3JhdmU7IHZlcmlmaWNhdG8gdW4gcHJvYmxlbWEgbmVsIGZpbGUgc3BlZGl0by4gU2kgcHJlZ2EgZGkgcmlwcm92YXJlJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1c2VybmFtZSddID0gJ05vbiBhdmV0ZSBpbnNlcml0byB1biBub21lIHV0ZW50ZSc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdOb24gYXZldGUgaW5zZXJpdG8gbGEgVm9zdHJhIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ05vbiBhdmV0ZSBpbnNlcml0byB1bmEgcGFzc3dvcmQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0xvZ291dCBVdGVudGUgRnJvbnRFbmQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnTG9naW4gVXRlbnRlJzsKJGxhbmdbJ2VkaXRwcm9wX2luZm9tc2cnXSA9ICc8c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjpyZWQmcXVvdDs+PGI+VVNBUkUgQ09OIENBVVRFTEE8L2I+IHF1YW5kbyBtb2RpZmljYXRlIHByb3ByaWV0JmFncmF2ZTsgZXNpc3RlbnRpIGNoZSBzb25vIGFzc2VnbmF0ZSBhIGdydXBwaSwgcG90ZXRlIHBvdGVuemlhbG1lbnRlIGNhdXNhcmUgZGFubmkgZSBibG9jY2FyZSB1biBzaXRvIGVzaXN0ZW50ZSA8aT4oc3BlY2lhbG1lbnRlIHNlIHJpZHVjZXRlIGxhIGx1bmdoZXp6YSBkZWkgY2FtcGksIGV0Yyk8L2k+PC9zcGFuPic7CiRsYW5nWydpbmZvX3NtdHB2YWxpZGF0ZSddID0gJ1F1ZXN0YSBmdW56aW9uZSBub24gZnVuemlvbmEgc3Ugd2luZG93cyc7CiRsYW5nWydtc2dfZG9udGNyZWF0ZXVzZXJuYW1lJ10gPSAnTm9uIGNyZWF0ZSB1bmEgcHJvcHJpZXQmYWdyYXZlOyBwZXIgdXNlcm5hbWUgbyBwYXNzd29yZCwgcG9pY2gmZWdyYXZlOyBxdWVzdGUgcHJvcHJpZXQmYWdyYXZlOyBzb25vIGdpJmFncmF2ZTsgaW5zZXJpdGUgbmVsIG1vZHVsbyBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ3Byb21wdF9leHBvcnRjc3YnXSA9ICdFc3BvcnRhIGdsaSB1dGVudGkgaW4gQ1NWJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0VzcG9ydGEnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0YSc7CiRsYW5nWydhZG1pbiddID0gJ0FtbWluaXN0cmF6aW9uZSc7CiRsYW5nWydlZGl0cHJvcCddID0gJ01vZGlmaWNhIHByb3ByaWV0JmFncmF2ZTsnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWFzc2ltYSBsdW5naGV6emEnOwokbGFuZ1snY3JlYXRlZCddID0gJ0NyZWF0byc7CiRsYW5nWydzb3J0YnknXSA9ICdPcmRpbmF0byBwZXInOwokbGFuZ1snc29ydCddID0gJ09yZGluYW1lbnRvJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ1V0ZW50aSBuZWwgZ3J1cHBvL2kgc2VsZXppb25hdG8vaSc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdMaW1pdGEgcmlzdWx0YXRpIGEnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGZpZWxkJ10gPSAnTm9uIHJpZXNjbyBhIHRyb3ZhcmUgdW4gY2FtcG8gZW1haWwgcGVyIHF1ZXN0byB1dGVudGUuIENvbnRhdHRhcmUgbCYjMDM5O2FtbWluaXN0cmF0b3JlIGRlbCBzaXN0ZW1hJzsKJGxhbmdbJ3Byb21wdF9mb3Jnb3Rwd19wYWdlJ10gPSAnSUQvQWxpYXMgZGVsbGEgcGFnaW5hIHBlciBpbCBtb2R1bG8gZGkgUGFzc3dvcmQgZGltZW50aWNhdGEnOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzX3BhZ2UnXSA9ICdJRC9BbGlhcyBkZWxsYSBwYWdpbmEgcGVyIGlsIG1vZHVsbyBkaSBNb2RpZmljYSBjb25maWd1cmF6aW9uaSc7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ0lEL0FsaWFzIGRlbGxhIHBhZ2luYSBhIGN1aSBhbmRhcmUgZG9wbyBpbCBsb2dpbiAqJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXRfcGFnZSddID0gJ0lEL0FsaWFzIGRlbGxhIHBhZ2luYSBhIGN1aSBhbmRhcmUgZG9wbyBpbCBsb2dvdXQgKic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdPcmRpbmEnOwokbGFuZ1sncHJvbXB0X251bXJlc2V0cmVjb3JkJ10gPSAnVW4gbnVtZXJvIGRpIHV0ZW50aSBzb25vIG5lbCBtZXp6byBkZWxsJiMwMzk7YXp6ZXJhbWVudG8gZGVsbGEgbG9ybyBwYXNzd29yZCBkaW1lbnRpY2F0ZS4gSW4gcXVlc3RvIG1vbWVudG8gc29ubzonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdSaW11b3ZpIHR1dHRlIGxlIGVudGl0JmFncmF2ZTsgcGkmdWdyYXZlOyB2ZWNjaGllIGRpIHVuYSBzZXR0aW1hbmEnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnUmltdW92aSB0dXR0ZSBsZSBlbnRpdCZhZ3JhdmU7IHBpJnVncmF2ZTsgdmVjY2hpZSBkaSB1biBtZXNlJzsKJGxhbmdbJ3JlbW92ZWFsbCddID0gJ1JpbXVvdmkgdHV0dGUgbGUgZW50aXQmYWdyYXZlOyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU2lldGUgc2ljdXJpPyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ0UmIzAzOTsgc3RhdG8gaW4gc2VyaXRvIHVuIGNvZGljZSBub24gdmFsaWRvLCBwcm92YXRlIGRpIG51b3ZvJzsKJGxhbmdbJ2Vycm9yX3RlbXBjb2Rlbm90Zm91bmQnXSA9ICdOb24gJmVncmF2ZTsgcG9zc2liaWxlIHRyb3ZhcmUgdW4gY29kaWNlIHRlbXBvcmFuZW8gcGVyIGlsIHZvc3RybyBJRCB1dGVudGUgbmVsIGRhdGFiYXNlJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3ZlcmlmeXRlbXBsYXRlJ10gPSAnTW9kZWxsbyB1c2F0byBwZXIgdmlzdWFsaXp6YXJlIGlsIG1vZHVsbyBkaSB2ZXJpZmljYSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnTW9kZWxsbyB1c2F0byBwZXIgbGEgZW1haWwgcGVyIHBhc3N3b3JkIGRpbWVudGljYXRhJzsKJGxhbmdbJ2Vycm9yX3Jlc2V0YWxyZWFkeXNlbnQnXSA9ICdWb2kgbyBxdWFsY3VuJiMwMzk7YWx0cm8gaGEgZ2kmYWdyYXZlOyByaWNoaWVzdG8gZGkgYXp6ZXJhcmUgbGEgcGFzc3dvcmQgcGVyIHF1ZXN0byBhY2NvdW50LiBDb250cm9sbGF0ZSBsYSB2b3N0cmEgZW1haWwsIGRvdnJlc3RlIGF2ZXJlIHJpY2V2dXRvIGxlIGlzdHJ1emlvbmkgc3UgY29tZSBhenplcmFyZSBsYSB2b3N0cmEgcGFzc3dvcmQnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0Vycm9yZSBkZWwgZGF0YWJhc2UnOwokbGFuZ1snbWVzc2FnZV9mb3Jnb3Rwd2VtYWlsJ10gPSAnQXZldGUgcmljZXZ1dG8gcXVlc3RvIG1lc3NhZ2dpbyBwZXJjaCZlZ3JhdmU7IHF1YWxjdW5vIGhhIHNlZ25hbGF0byBzdWwgbm9zdHJvIHNpdG8gY2hlIGF2ZXRlIHBlcnNvIGxhIFZvc3RyYSBwYXNzd29yZC4gU2UgJmVncmF2ZTsgY29ycmV0dG8sIGxlZ2dldGUgbGUgaXN0cnV6aW9uaSBzb3R0b3N0YW50aS4gU2Ugbm9uIHNhcGV0ZSBkaSBjb3NhIHNpIHRyYXR0aSwgcG90ZXRlIHRyYW5xdWlsbGFtZW50ZSBjYW5jZWxsYXJlIHF1ZXN0byBtZXNzYWdnaW8sIGdyYXppZSBwZXIgaWwgdGVtcG8gZGVkaWNhdG9jaS4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdDb2RpY2UnOwokbGFuZ1snbWVzc2FnZV9jb2RlJ10gPSAnSWwgc2VndWVudGUgY29kaWNlICZlZ3JhdmU7IHN0YXRvIGdlbmVyYXRvIGluIG1hbmllcmEgY2FzdWFsZSBwZXIgdmVyaWZpY2FyZSBsJiMwMzk7YWNjb3VudCB1dGVudGUuIFF1YW5kbyBmYXRlIGNsaWNrIHN1bCBsaW5rIHNvdHRvc3RhbnRlIHZlcnImYWdyYXZlOyB2aXN1YWxpenphdG8gdW4gY2FtcG8gaW4gY3VpIGluc2VyaXJlIHF1ZXN0byBjb2RpY2UuIE5vcm1hbG1lbnRlIGlsIGNhbXBvICZlZ3JhdmU7IHByZS1jb21waWxhdG8gcGVyIFZvaSwgbWEgc2UgY29zJmlncmF2ZTsgbm9uIGZvc3NlIGlsIGNvZGljZSAmZWdyYXZlOzonOwokbGFuZ1sncHJvbXB0X2xpbmsnXSA9ICdTZWd1ZW5kbyBpbCBsaW5rIHNlZ3VlbnRlIHZlcnJldGUgcG9ydGF0aSBhbCBzaXRvIHdlYiBkb3ZlIGluc2VyaXJlIGlsIGNvZGljZSByaXBvcnRhdG8gc29wcmEgcGVyIGF6emVyYXJlIGxhIHZvc3RyYSBwYXNzd29yZDonOwokbGFuZ1snbG9zdHBhc3N3b3JkX2VtYWlsc3ViamVjdCddID0gJ1Bhc3N3b3JkIHBlcnNhJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnTm9uIHRyb3ZvIGlsIG1vZHVsbyBDTVNNYWlsZXInOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnVW5hIGVtYWlsICZlZ3JhdmU7IHN0YXRhIHNwZWRpdGEgYWxsJiMwMzk7aW5kaXJpenpvICVzIGNvbiBsZSBpc3RydXppb25pIHN1IGNvbWUgYXp6ZXJhcmUgbGEgdm9zdHJhIHBhc3N3b3JkLiBHcmF6aWUnOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdBdmV0ZSBxdWluZGkgZGltZW50aWNhdG8gbyBwZXJzbyBsYSB2b3N0cmEgcGFzc3dvcmQuIERpZ2l0YXRlIGlsIHZvc3RybyBub21lIHV0ZW50ZSBlIHNlIHZlcnImYWdyYXZlOyB0cm92YXRvIHNwZWRpcmVtbyB1bmEgZW1haWwgY29uIGxlIGlzdHJ1emlvbmkgc3UgY29tZSBhenplcmFybGEnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIHBlciBQYXNzd29yZCBkaW1lbnRpY2F0YSc7CiRsYW5nWydsb3N0dXNlcm5hbWVfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIFBlcmRpdGEgVXNlcm5hbWUnOwokbGFuZ1snZXJyb3JfcHJvcG5vdGZvdW5kJ10gPSAnUHJvcHJpZXQmYWdyYXZlOyAlcyBub24gdHJvdmF0YSc7CiRsYW5nWydwcm9wc2ZvdW5kJ10gPSAnUHJvcHJpZXQmYWdyYXZlOyB0cm92YXRhJzsKJGxhbmdbJ2FkZHByb3AnXSA9ICdBZ2dpdW5naSBQcm9wcmlldCZhZ3JhdmU7JzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICdVbiBjYW1wbyByaWNoaWVzdG8gKCVzKSBlcmEgdnVvdG8nOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdJbnNlcmlyZSBzb2xvIHBlciBtb2RpZmljYXJlIHF1ZWxsYSBwcmVjZWRlbnRlJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnU2VtYnJhIGNoZSBub24gYWJiaWF0ZSBlZmZldHR1YXRvIGwmIzAzOTthY2Nlc3NvJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdJbXBvc3RhemlvbmknOwokbGFuZ1sndXNlcl9yZWdpc3RyYXRpb24nXSA9ICdSZWdpc3RyYXppb25lJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnUXVlc3RvIGFjY291bnQgJmVncmF2ZTsgc2NhZHV0byc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnRm9ybWF0dGF6aW9uZSBkZWxsJiMwMzk7aW5kaXJpenpvIGRpIGVtYWlsIG5vbiB2YWxpZGEnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdEYXRhIGRpIHNjYWRlbnphIG5vbiB2YWxpZGEnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdwcm9wZXJ0eSddID0gJ0Vycm9yZSBuZWxsJiMwMzk7aW1wb3N0YXppb25lIGRlbGxhIHByb3ByaWV0JmFncmF2ZTsgJXMgcGVyIGwmIzAzOTt1dGVudGUgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGdyb3VwaWQnXSA9ICdJRCBkaSBncnVwcG8gJXMgbm9uIHZhbGlkbyc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ01hcmNhdG9yZSBkZWwgY2FtcG8gbmFzY29zdG8nOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0NvbG9yZSBkZWwgY2FtcG8gbmFzY29zdG8nOwokbGFuZ1snaGlkZGVuJ10gPSAnTmFzY29zdG8nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlbmFtZSddID0gJ1VuYSBwcm9wcmlldCZhZ3JhdmU7IGNvbiBxdWVsIG5vbWUgJmVncmF2ZTsgZ2kmYWdyYXZlOyBkZWZpbml0YSc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdOZXNzdW5hIHByb3ByaWV0JmFncmF2ZTsgZGVmaW5pdGEnOwokbGFuZ1snZXJyb3Jfbm9yZWxhdGlvbnMnXSA9ICdOZXNzdW5hIHByb3ByaWV0JmFncmF2ZTsgc2VsZXppb25hdGEgcGVyIHF1ZXN0byBncnVwcG8nOwokbGFuZ1snbm9ncm91cHMnXSA9ICdOZXNzdW4gZ3J1cHBvIGRlZmluaXRvJzsKJGxhbmdbJ2dyb3Vwc2ZvdW5kJ10gPSAnR3J1cHBpIHRyb3ZhdGknOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ0UmIzAzOTsgbmVjZXNzYXJpbyBlc3NlcmUgbWVtYnJvIGRpIGFsbWVubyB1biBncnVwcG8nOwokbGFuZ1sncHJvbXB0X3JlcXVpcmVvbmVncm91cCddID0gJ1JpY2hpZWRlIGVzc2VyZSBtZW1icm8gZGkgYWxtZW5vIHVuIGdydXBwbyc7CiRsYW5nWydiYWNrJ10gPSAnSW5kaWV0cm8nOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzICZlZ3JhdmU7IHVuIGNhbXBvIG9iYmxpZ2F0b3Jpbyc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnTWFyY2EgaSBjYW1waSByaWNoaWVzdGkgY29uJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ0V2aWRlbnppYXJlIGkgY2FtcGkgcmljaGllc3RpIGluJzsKJGxhbmdbJ25leHQnXSA9ICdQcm9zc2ltbyc7CiRsYW5nWydlcnJvcl9ncm91cGV4aXN0cyddID0gJ1VuIGdydXBwbyBjb24gcXVlbCBub21lICZlZ3JhdmU7IGdpJmFncmF2ZTsgcHJlc2VudGUnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdDYW1wbyBvYmJsaWdhdG9yaW8nOwokbGFuZ1snb3B0aW9uYWwnXSA9ICdGYWNvbHRhdGl2byc7CiRsYW5nWydvZmYnXSA9ICdPZmYnOwokbGFuZ1snc2l6ZSddID0gJ0RpbWVuc2lvbmUnOwokbGFuZ1snc2l6ZWNvbW1lbnQnXSA9ICc8YnIgLz4oTWFzc2ltbyBsYXRvIGRpIHVuYSBpbW1hZ2luZSBpbiBwaXhlbHMpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ0x1bmdoZXp6YSc7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyIC8+KGNhcmF0dGVyaSBuZWwgY2FtcG8gZGkgdGVzdG8pJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdPcHppb25pIGRlbGxhIHRlbmRpbmEsIHNlcGFyYXRpIGRhIGZpbmUgbGluZWEuIFZhbG9yaSBwb3Nzb25vIGVzc2VyZSBzZXBhcmF0aSBkYWwgdGVzdG8gY29uIHVuID0sIHBlciBlc2VtcGlvIEZlbW1pbmE9Zic7CiRsYW5nWydyYWRpb29wdGlvbnMnXSA9ICdFdGljaGV0dGUgUmFkaW9idXR0b24sIHNlcGFyYXRpIGRhIGZpbmUgbGluZWEuIFZhbG9yaSBwb3Nzb25vIGVzc2VyZSBzZXBhcmF0aSBkYWwgdGVzdG8gY29uIHVuID0sIHBlciBlc2VtcGlvIEZlbW1pbmE9Zic7CiRsYW5nWydwcm9tcHQnXSA9ICdTdWdnZXJpbWVudG8nOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUaXBvJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXBvJzsKJGxhbmdbJ2ZpZWxkc3RhdHVzJ10gPSAnQ2FtcG8gU3RhdG8nOwokbGFuZ1sndXNlZGlubG9zdHVuJ10gPSAnQ2hpZWRpIGluIFBlcmRpdGE8YnIvPlVzZXJuYW1lJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXN0byc7CiRsYW5nWydjaGVja2JveCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ211bHRpc2VsZWN0J10gPSAnTGlzdGEgTXVsdGkgU2VsZWN0JzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ1JhZGlvIEJ1dHRvbnMnOwokbGFuZ1snaW1hZ2UnXSA9ICdJbW1hZ2luZSc7CiRsYW5nWydlbWFpbCddID0gJ0luZGlyaXp6byBlbWFpbCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ0FyZWEgZGkgdGVzdG8nOwokbGFuZ1snZHJvcGRvd24nXSA9ICdUZW5kaW5hJzsKJGxhbmdbJ21zZ19jdXJyZW50bHlsb2dnZWRpbmFzJ10gPSAnQmVudmVudXRvJzsKJGxhbmdbJ2xvZ291dCddID0gJ1VzY2l0YSc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAnVXNhIHF1ZXN0byBub21lIGRpIGdydXBwbyc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdNb2RpZmljYSBsZSBtaWUgaW1wb3N0YXppb25pJzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnTG9naW4gZmFsbGl0byAtIG5vbWUgdXRlbnRlIG8gcGFzc3dvcmQgc2JhZ2xpYXRpPyc7CiRsYW5nWydsb2dpbiddID0gJ0FjY2VkaSc7CiRsYW5nWydwcm9tcHRfc2lnbmluX2J1dHRvbiddID0gJ0V0aWNoZXR0YSBkZWwgcHVsc2FudGUgZGkgQWNjZXNzbyc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdOb21lIHV0ZW50ZSc7CiRsYW5nWydwcm9tcHRfZW1haWwnXSA9ICdJbmRpcml6em8gRW1haWwnOwokbGFuZ1sncHJvbXB0X3Bhc3N3b3JkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICdSaWNvcmRhbWkgc3UgcXVlc3RvIGNvbXB1dGVyJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnUmVnaXN0cmF0aSc7CiRsYW5nWydmb3Jnb3RwdyddID0gJ1Bhc3N3b3JkIGRpbWVudGljYXRhPyc7CiRsYW5nWydsb3N0dXNlcm5hbWUnXSA9ICdEaW1lbnRpY2F0byBpbCBWb3N0cm8gbG9naW4/JzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAnVmFsb3JpIHByZWRlZmluaXRpJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnTW9kZWxsbyc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdJRCB1dGVudGUgbm9uIHRyb3ZhdG8nOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ1F1ZXN0byB1c2VybmFtZSAoJXMpICZlZ3JhdmU7IGdpJmFncmF2ZTsgaW4gdXNvJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdVc2FyZSBTTVRQIHBlciB2YWxpZGFyZSBpbmRpcml6emkgZW1haWw/JzsKJGxhbmdbJ3Byb21wdF9taW5wd2xlbiddID0gJ0x1bmdoZXp6YSBtaW5pbWEgZGVsbGEgcGFzc3dvcmQnOwokbGFuZ1sncHJvbXB0X21heHB3bGVuJ10gPSAnTHVuZ2hlenphIG1hc3NpbWEgZGVsbGEgcGFzc3dvcmQnOwokbGFuZ1sncHJvbXB0X21pbnVubGVuJ10gPSAnTHVuZ2hlenphIG1pbmltYSBkZWwgbm9tZSB1dGVudGUnOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnTHVuZ2hlenphIG1hc3NpbWEgZGVsIG5vbWUgdXRlbnRlJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1RpbWVvdXQgZGVsbGEgc2Vzc2lvbmUgKHNlY29uZGkpJzsKJGxhbmdbJ3Byb21wdF9jb29raWVrZWVwYWxpdmUnXSA9ICdVc28gY29va2llcyBwZXIgdGVuZXIgdml2byBpbCBsb2dpbic7CiRsYW5nWydwcm9tcHRfYWxsb3dlbWFpbHJlZyddID0gJ1Blcm1ldHRpIHJlZ2lzdHJhemlvbmUgRW1haWwnOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ0dydXBwbyBwcmVkZWZpbml0byBwZXIgbnVvdmkgdXRlbnRpJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnQ2FtYmlhIGlsIE1vZGVsbG8gZGVsbGUgY29uZmlndXJhemlvbmknOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ0xlIHBhc3N3b3JkIG5vbiBjb2luY2lkb25vJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ05vbWUgdXRlbnRlIG5vbiB2YWxpZG8nOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkJ10gPSAnUGFzc3dvcmQgbm9uIHZhbGlkYSc7CiRsYW5nWydlZGl0dXNlciddID0gJ01vZGlmaWNhIFV0ZW50ZSc7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkbyc7CiRsYW5nWyd1c2VybmFtZSddID0gJ05vbWUgdXRlbnRlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXRvJzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJ1F1ZXN0byB1dGVudGUgbm9uICZlZ3JhdmU7IG1lbWJybyBkaSBuZXNzdW4gZ3J1cHBvJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICdOZXNzdW5hIFByb3ByaWV0JmFncmF2ZTsnOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdUZW50YXRpdm8gZGkgaW1wb3J0YXJlIHByb3ByaWV0JmFncmF2ZTsgZHVwbGljYXRlJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVmFsb3JlJzsKJGxhbmdbJ2dyb3VwcyddID0gJ0dydXBwaSc7CiRsYW5nWydwcm9wZXJ0aWVzJ10gPSAnUHJvcHJpZXQmYWdyYXZlOyc7CiRsYW5nWydwcm9wbmFtZSddID0gJ05vbWUgZGVsbGEgcHJvcHJpZXQmYWdyYXZlOyc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdWYWxvcmUgZGVsbGEgcHJvcHJpZXQmYWdyYXZlOyc7CiRsYW5nWydhZGQnXSA9ICdBZ2dpdW5nZXJlJzsKJGxhbmdbJ2hpc3RvcnknXSA9ICdDcm9ub2xvZ2lhJzsKJGxhbmdbJ2VkaXQnXSA9ICdNb2RpZmljYSc7CiRsYW5nWydleHBpcmVzJ10gPSAnU2NhZGVuemUnOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnU3BlY2lmaWNhcmUgdW5hIGRhdGEnOwokbGFuZ1snMTJocnMnXSA9ICcxMiBPcmUnOwokbGFuZ1snMjRocnMnXSA9ICcyNCBPcmUnOwokbGFuZ1snNDhocnMnXSA9ICc0OCBPcmUnOwokbGFuZ1snMXdlZWsnXSA9ICcxIFNldHRpbWFuYSc7CiRsYW5nWycyd2Vla3MnXSA9ICcyIFNldHRpbWFuZSc7CiRsYW5nWycxbW9udGgnXSA9ICcxIE1lc2UnOwokbGFuZ1snM21vbnRocyddID0gJzMgTWVzaSc7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiBNZXNpJzsKJGxhbmdbJzF5ZWFyJ10gPSAnMSBBbm5vJzsKJGxhbmdbJ25ldmVyJ10gPSAnTWFpJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ01vZHVsbyBpbnN0YWxsYXRvLjxiciAvPkFjY2VydGFyc2kgZGkgY29uZmlndXJhcmUgaSBwZXJtZXNzaSBwZXIgJnF1b3Q7TW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24mcXVvdDsuIENvbnNpZ2xpYW1vIGlub2x0cmUgZGkgaW5zdGFsbGFyZSBpbCBtb2R1bG8gQ2FwdGNoYSBwb2ljaCZlZ3JhdmU7IHB1Jm9ncmF2ZTsgZXNzZXJlIHJpY2hpZXN0byBsYSB2YWxpZGF6aW9uZSBkaSB1bmEgaW1tYWdpbmUuIFF1ZXN0byAmZWdyYXZlOyBpbnRlc28gcGVyIHByZXZlbmlyZSBhdHRhY2NoaSBicnV0ZSBmb3JjZS4gIDxzdHJvbmc+Tm90YTo8L3N0cm9uZz4gaWwgcGFyYW1ldHJvIG5vY2FwdGNoYSBwdSZvZ3JhdmU7IGVzc2VyZSB1c2F0byBwZXIgZGlzYWJpbGl0YXJlIHF1ZXN0YSBmdW56aW9uYWxpdCZhZ3JhdmU7IGFuY2hlIHNlIGlsIG1vZHVsbyAmZWdyYXZlOyBpbnN0YWxsYXRvLic7CiRsYW5nWydwYXNzd29yZCddID0gJ1Bhc3N3b3JkJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnZGkgbnVvdm8nOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ1VuIGdydXBwbyBjb24gcXVlbCBub21lICZlZ3JhdmU7IGdpJmFncmF2ZTsgcHJlc2VudGUnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnTW9kaWZpY2EgR3J1cHBvJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0ludmlhJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsbGEnOwokbGFuZ1snZGVsZXRlJ10gPSAnQ2FuY2VsbGEnOwokbGFuZ1snY29uZmlybV9lZGl0Z3JvdXAnXSA9ICdTaWV0ZSBzaWN1cmkgY2hlIHF1ZXN0ZSBzaWFubyBsZSBpbXBvc3RhemlvbmkgY29ycmV0dGUgcGVyIHF1ZXN0byBncnVwcG8/XG5EaXNhdHRpdmFuZG8gdW5hIHByb3ByaWV0JmFncmF2ZTsgbm9uIHNpIGNhbmNlbGxhbm8gaSBkYXRpIG5lbGxhIHRhYmVsbGEgcHJvcHJpZXQmYWdyYXZlOyBwZXIgcXVlbCBncnVwcG8vdXRlbnRlLiBTYXJhbm5vIHNvbG8gbm9uIGRpc3BvbmliaWxpLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnU2lldGUgc2ljdXJpIGRpIHZvbGVyZSBjYW5jZWxsYXJlIHF1ZXN0byBncnVwcG8/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3Byb3AnXSA9ICdTaWV0ZSBzaWN1cm8gZGkgdm9sZXJlIGNhbmNlbGxhcmUgY29tcGxldGFtZW50ZSBxdWVzdGEgcHJvcHJpZXQmYWdyYXZlOz9cbkZhY2VuZG9sbyBzYXJhbm5vIGNhbmNlbGxhdGkgdHV0dGkgaSBkYXRpIGRlZ2xpIHV0ZW50aSBwZXIgcXVlc3RhIHByb3ByaWV0JmFncmF2ZTsuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1BhcmFtZXRyaSBpbnN1ZmZpY2llbnRpJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snbmFtZSddID0gJ05vbWUnOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdQcm9ibGVtYSBuZWxsJiMwMzk7YWdnaXVuZ2VyZSBwcm9wcmlldCZhZ3JhdmU7JzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cHJlbG4nXSA9ICdQcm9ibGVtYSBuZWxsJiMwMzk7YWdnaXVuZ2VyZSByZWxhemlvbmUgZGkgZ3J1cHBvJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZW1hIG5lbGwmIzAzOTthZ2dpdW5nZXJlIGlsIGdydXBwbyc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2JsZW1hIG5lbGwmIzAzOTthZ2dpdW5nZXJlIHVuIHV0ZW50ZSBhbCBncnVwcG8nOwokbGFuZ1snZXJyb3JfY291bGRub3RkZWxldGVwcm9wZXJ0eSddID0gJ1Byb2JsZW1hIG5lbGxhIGNhbmNlbGxhemlvbmUgZGkgdW5hIHByb3ByaWV0JmFncmF2ZTsnOwokbGFuZ1snZXJyb3JfY291bGRub3RmaW5kZW1haWwnXSA9ICdOb24gdHJvdm8gdW4gaW5kaXJpenpvIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdOZXNzdW4gcGVybWVzc28gZGkgc2NyaXR0dXJhIG5lbGxhIGNhcnRlbGxhIGRpIGRlc3RpbmF6aW9uZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnUGFyYW1ldHJpIG5vbiB2YWxpZGknOwokbGFuZ1snZXJyb3Jfbm9ncm91cHMnXSA9ICdOb24gdHJvdm8gZ3J1cHBpJzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnQXBwbGljYSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0cm8nOwokbGFuZ1sndXNlcmZpbHRlciddID0gJ0VzcHJlc3Npb25lIHJlZ29sYXJlIGRpIFVzZXJuYW1lJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpemlvbmUnOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnTm9tZSBncnVwcG8nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzbyBuZWdhdG8nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvcmUnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdBZ2dpdW5nZXJlIGdydXBwbyc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ0ltcG9ydGEgR3J1cHBvJzsKJGxhbmdbJ2FkZHVzZXInXSA9ICdBZ2dpdW5nZXJlIHV0ZW50ZSc7CiRsYW5nWyd1c2Vyc2ZvdW5kJ10gPSAnVHJvdmF0aSB1dGVudGkgY2hlIHNvZGRpc2Zhbm8gaWwgY3JpdGVyaW8nOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwcG8nOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdTZWxlemlvbmEgR3J1cHBvJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ01vZGVsbG8gZGkgcmVnaXN0cmF6aW9uZSc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIGRpIGxvZ291dCc7CiRsYW5nWydsb2dpbl90ZW1wbGF0ZSddID0gJ01vZGVsbG8gZGkgbG9naW4nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbnplJzsKJGxhbmdbJ3VzZXJzJ10gPSAnVXRlbnRpJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0dlc3Rpb25lIHV0ZW50aSBkaSBGcm9udGVuZCc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1Blcm1ldHRpIGFnbGkgdXRlbnRpIGRpIGVmZmV0dHVhcmUgbCYjMDM5O2FjY2Vzc28gZGFsbCYjMDM5O2ludGVyZmFjY2lhIGRlbCBzaXRvJzsKJGxhbmdbJ2RlZmF1bHRmcm9udHBhZ2UnXSA9ICdQYWdpbmEgZGkgYWNjZXNzbyBwcmVkZWZpbml0YSc7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAnVWx0aW1hIHBhZ2luYSBhY2NlZHV0YSc7CiRsYW5nWydvdGhlcnBhZ2UnXSA9ICdBbHRyYSBwYWdpbmE6JzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdJbnNlcml0ZSBpbCB0ZXN0byB2aXN1YWxpenphdG8gbmVsbCYjMDM5O2ltbWFnaW5lJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuODM4ODExMzc5LjEzODUxMjkxNDMuMTM4OTE5ODg3Mi4xMzg5NzA3MTI0LjQnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzg5MTk4ODcyLjMuMy51dG1jc3I9c29sZ2VhLm5ldHx1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9jbXNtcy9hZG1pbi9pbmRleC5waHAnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2VuYWJsZV9jYXB0Y2hhJ10gPSAnRW5hYmxlIGNhcHRjaGEgb24gdGhlIGxvZ2luIGZvcm0nOwokbGFuZ1snaW5mb19lbmFibGVfY2FwdGNoYSddID0gJ0lmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4sIGFuZCB0aGUgbW9kdWxlIHByZWZlcmVuY2Ugc3RhdGVzIHRvIGRpc3BsYXkgdGhlIGxvZ2luIGZvcm0sIHRoaXMgb3B0aW9uIGNvbnRyb2xzIHdldGhlciBhIGNhcHRjaGEgd2lsbCBiZSBkaXNwbGF5ZWQgb24gdGhlIGxvZ2luIHNjcmVlbi4gIElmIGNhcHRjaGEgaXMgYXZhaWxhYmxlJzsKJGxhbmdbJ3BhZ2V0eXBlX3VuYXV0aG9yaXplZCddID0gJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gdmlldyB0aGlzIGNvbnRlbnQnOwokbGFuZ1snaW5mb19jb250ZW50cGFnZV9ncm91cGxpc3QnXSA9ICdTcGVjaWZ5IGEgbGlzdCBvZiBGRVUgZ3JvdXBzIHRoYXQgbWF5IGhhdmUgYWNjZXNzIHRvIHRoaXMgcGFnZS4gIFNlbGVjdGluZyBubyBncm91cHMgd2lsbCBhbGxvdyBhbnkgdXNlciBsb2dnZWQgaW4gdG8gRkVVIHRvIHZpZXcgdGhlIHBhZ2UnOwokbGFuZ1sncGFnZXR5cGVfc2V0dGluZ3MnXSA9ICdBcHNhdWdvdG8gcHVzbGFwaW8gbnVzdGF0eW1haSc7CiRsYW5nWydwYWdldHlwZV9ncm91cHMnXSA9ICdMZWlkxb5pYW1vcyBncnVwxJdzJzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfZ3JvdXBzJ10gPSAnU2VsZWN0IHRoZSBncm91cHMgdGhhdCBhcmUgKGJ5IGRlZmF1bHQpIGFsbG93ZWQgdG8gdmlldyBwcm90ZWN0ZWQgcGFnZXMuICBBbiBlZGl0b3Igd2l0aCB0aGUgJnF1b3Q7TWFuYWdlIEFsbCBDb250ZW50JnF1b3Q7IHBlcm1pc3Npb24gY2FuIG92ZXJyaWRlIHRoaXMgZm9yIGVhY2ggcGFnZSc7CiRsYW5nWydwYWdldHlwZV9hY3Rpb24nXSA9ICdBY3Rpb24gZm9yIGluc3VmZmljaWVudCBhY2Nlc3MnOwokbGFuZ1snaW5mb19wYWdldHlwZV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvciBmb3IgcGVvcGxlIGFjY2Vzc2luZyB0aGlzIHBhZ2Ugd2l0aG91dCBzdWZmaWNpZW50IHBlcm1pc3Npb24uICBZb3UgY2FuIGVpdGhlciByZWRpcmVjdCB0byBhIHNwZWNpZmllZCBwYWdlLCBvciBkaXNwbGF5IHRoZSBsb2dpbiBmb3JtJzsKJGxhbmdbJ3Nob3dsb2dpbmZvcm0nXSA9ICdSb2R5dGkgcHJpc2lqdW5naW1vIGZvcm3EhSc7CiRsYW5nWydyZWRpcmVjdCddID0gJ1JlZGlyZWN0IHRvIGEgUGFnZSc7CiRsYW5nWydwYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnUmVkaXJlY3QgVG8nOwokbGFuZ1snaW5mb19wYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnU3BlY2lmeSB0aGUgcGFnZSB0byByZWRpcmVjdCB0by4gIElmIHlvdSBzZWxlY3Qgbm9uZSwgYW5kIHRoZSBhY3Rpb24gaXMgc2V0IHRvICZxdW90O3JlZGlyZWN0JnF1b3Q7IHRoZSB1c2VyIHdpbGwgYmUgcHJlc2VudGVkIHdpdGggYSBtZXNzYWdlIGluZGljYXRpbmcgdGhhdCB0aGV5IGRvIG5vdCBoYWNlIGFjY2VzcyB0byB0aGUgcGFnZSc7CiRsYW5nWydwZXJtaXNzaW9ucyddID0gJ1Blcm1pc3Npb25zJzsKJGxhbmdbJ2ZldV9wcm90ZWN0ZWRfcGFnZSddID0gJ1Byb3RlY3RlZCBDb250ZW50JzsKJGxhbmdbJ3Byb21wdF92aWV3cHJvcHMnXSA9ICdTZWxlY3QgQWRkaXRpb25hbCBQcm9wZXJ0aWVzIHRvIFZpZXcnOwokbGFuZ1sndmlldyddID0gJ8W9acWrcsSXdGknOwokbGFuZ1snaW5mb19pZ25vcmVfdXNlcmlkJ10gPSAnSWYgY2hlY2tlZCB0aGUgaW1wb3J0IHJvdXRpbmUgd2lsbCBhdHRlbXB0IHRvIGFkZCB1c2VycyBpbmRlcGVuZGFudCBvZiB0aGUgdXNlcmlkIGNvbHVtbi4gIElmIGEgdXNlciB3aXRoIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGUgaW1wb3J0IGZpbGUgYWxyZWFkeSBleGlzdHMsIGFuIGVycm9yIHdpbGwgYmUgZ2VuZXJhdGVkJzsKJGxhbmdbJ2lnbm9yZV91c2VyaWQnXSA9ICdJZ25vcmUgVXNlcklEIENvbHVtbiBvbiBJbXBvcnQnOwokbGFuZ1snZXhwb3J0X3Bhc3NoYXNoJ10gPSAnRXhwb3J0IHRoZSBwYXNzd29yZCBoYXNoIHRvIHRoZSBmaWxlJzsKJGxhbmdbJ2luZm9fZXhwb3J0X3Bhc3NoYXNoJ10gPSAnVGhlIHBhc3N3b3JkIGhhc2ggaXMgb25seSB1c2VmdWwgaWYgdGhlIHBhc3N3b3JkIHNhbHQgb24gdGhlIGltcG9ydCBob3N0IGlzIGlkZW50aWNhbCB0byB0aGF0IG9mIHRoZSBleHBvcnQgaG9zdCc7CiRsYW5nWydlcnJvcl9hZGp1c3RzYWx0J10gPSAnVGhlIHBhc3N3b3JkIHNhbHQgY2Fubm90IGJlIGFkanVzdGVkJzsKJGxhbmdbJ3Byb21wdF9wd3NhbHQnXSA9ICdQYXNzd29yZCBTYWx0JzsKJGxhbmdbJ2luZm9fcHdzYWx0J10gPSAnRnJvbnRFbmRVc2VycyBzYWx0cyBhbGwgcGFzc3dvcmRzIHdpdGggdGhpcyBrZXkgd2hpY2ggaXMgY3JlYXRlZCB1cG9uIGluc3RhbGwuICBPbmNlIHVzZXJzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgZGF0YWJhc2UgdGhlIHNhbHQgY2Fubm90IGJlIGNoYW5nZWQuIFRoZSBzYWx0IG1heSBiZSBlbXB0eSBmb3Igb2xkZXIgaW5zdGFsbHMuJzsKJGxhbmdbJ2FkdmFuY2VkX3NldHRpbmdzJ10gPSAnSSZzY2Fyb247cGzEl3N0aW5pYWkgbnVzdGF0eW1haSc7CiRsYW5nWydpbmZvX3Nlc3Npb250aW1lb3V0J10gPSAnU3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIGFuIGluYWN0aXZlIHVzZXIgaXMgYXV0b21hdGljYWxseSBsb2dnZWQgb3V0IG9mIHRoZSB3ZWJzaXRlJzsKJGxhbmdbJ3Byb21wdF9leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ1VzZXIgRXhwaXJ5IEludGVydmFsJzsKJGxhbmdbJ2luZm9fZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdTcGVjaWZ5IGEgdmFsdWUgKGluIHNlY29uZHMpIHRoYXQgaW5kaWNhdGVzIGhvdyBvZnRlbiB0aGUgc3lzdGVtIHNob3VsZCBmb3JjZSB1c2VycyB3aG9zIHNlc3Npb24gaGFzIGV4cGlyZWQgdG8gYmUgbG9nZ2VkIG91dC4gIFQmcXVvdDtoaXMgaXMgYW4gb3B0aW1pemF0aW9uIHRvIHNhdmUgZGF0YWJhc2UgcXVlcmllcy4gIElmIGxlZnQgZW1wdHkgb3Igc2V0IHRvIDAgZXhwaXJ5IHdpbGwgYmUgcGVyZm9ybWVkIG9uIGV2ZXJ5IHJlcXVlc3QuJzsKJGxhbmdbJ21zZ19zZXR0aW5nc2NoYW5nZWQnXSA9ICdKxatzxbMgbnVzdGF0eW1haSBidXZvIHPEl2ttaW5nYWkgYXRuYXVqaW50aSc7CiRsYW5nWydmb3JjZWRsb2dvdXR0YXNrX2Rlc2MnXSA9ICdGb3JjZSB1c2VycyB0byBsb2dvdXQgYXQgcmVndWxhciBpbnRlcnZhbHMnOwokbGFuZ1sncHJvbXB0X2ZvcmNlbG9nb3V0X3RpbWVzJ10gPSAnVGltZXMgZm9yIGZvcmNlZCBsb2dvdXQnOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF90aW1lcyddID0gJ1NwZWNpZnkgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB0aW1lcyBsaWtlIEhIOk1NLEhIOk1NIHdoZXJlIHVzZXJzIHdpbGwgYmUgZm9yY2libHkgbG9nZ2VkIG91dC4gTm90ZSwgdGhpcyB1c2VzIHRoZSBwc3VlZG9jcm9uIG1lY2hhbmlzbSBzbyB5b3UgbXVzdCBiZSBzdXJlIHRoYXQgdGhlIHRpbWVzIGVudGVyZWQgaGVyZSB3aWxsIGNvaW5jaWRlIHJlYXNvbmFibHkgd2l0aCB5b3VyICZxdW90O3BzZXVkb2Nyb24gZ3JhbnVsYXJpdHkmcXVvdDsgYW5kIHRoYXQgc3VmZmljaWVudCByZXF1ZXN0cyB3aWxsIG9jY3VyIHRvIHlvdXIgd2Vic2l0ZSB0byBlbnN1cmUgdGhhdCBwc2V1ZG9jcm9uIGlzIGV4ZWN1dGVkLic7CiRsYW5nWydwcm9tcHRfZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSddID0gJ0V4Y2x1ZGUgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYWN0aXZlIGluIDxlbT4obWludXRlcyk8L2VtPic7CiRsYW5nWydpbmZvX2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnXSA9ICdJZiBzcGVjaWZpZWQsIGFueSB1c2VycyB0aGF0IGhhdmUgYmVlbiBhY3RpdmUgaW4gdGhpcyBudW1iZXIgb2Ygc2Vjb25kcyB3aWxsIG5vdCBiZSBmb3JjaWJseSBsb2dnZWQgb3V0JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlJ10gPSAnQXIgdGlrcmFpIG5vcml0ZSBpJnNjYXJvbjt0cmludGkgJXMgbmF1ZG90b2rEhT8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGVleHRlbnNpb24nXSA9ICdUaGUgdXBsb2FkZWQgZmlsZSBkb2VzIG5vdCBtYXRjaCB0aGUgbGlzdCBvZiBhbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUgaGFzIGJlZW4gZGVsZXRlZCc7CiRsYW5nWydpbmZvX2Vjb21tX3BhaWRyZWdpc3RyYXRpb24nXSA9ICdJZiBlbmFibGVkLCB0aGlzIG1vZHVsZSB3aWxsIGxpc3RlbiB0byBldmVudHMgZnJvbSB0aGUgRWNvbW1lcmNlIHN1aXRlLiAgVGhlIGZvbGxvd2luZyBzZXR0aW5ncyBvbmx5IGhhdmUgZWZmZWN0IGlmIHRoaXMgc2V0dGluZyBpcyBlbmFibGVkLic7CiRsYW5nWydwcm9tcHRfZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbiddID0gJ0xpc3RlbiB0byBPcmRlciBFdmVudHMnOwokbGFuZ1snaW5mb19wYWlkcmVnX3NldHRpbmdzJ10gPSAnVGhlIGZvbGxvd2luZyBzZXR0aW5ncyBvbmx5IGFwcGx5IGlmIHVzaW5nIHNlbGYgcmVnaXN0cmF0aW9uIGFuZCBhbGxvd2luZyBmb3IgcGFpZCByZWdpc3RyYXRpb24nOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snZGVsZXRlX3VzZXInXSA9ICdJJnNjYXJvbjt0cmludGkgbmF1ZG90b2rEhSc7CiRsYW5nWydleHBpcmVfdXNlciddID0gJ0V4cGlyZSBVc2VyJzsKJGxhbmdbJ3Byb21wdF9hY3Rpb25fb3JkZXJjYW5jZWxsZWQnXSA9ICdBY3Rpb24gdG8gcGVyZm9ybSB3aGVuIGEgc3Vic2NyaXB0aW9uIG9yZGVyIGlzIGNhbmNlbGxlZCc7CiRsYW5nWydwcm9tcHRfYWN0aW9uX29yZGVyZGVsZXRlZCddID0gJ0FjdGlvbiB0byBwZXJmb3JtIHdoZW4gYSBzdWJzY3JpcHRpb24gb3JkZXIgaXMgZGVsZXRlZCc7CiRsYW5nWydlY29tbWVyY2Vfc2V0dGluZ3MnXSA9ICdFLWtvbWVucmNpam9zIG51c3RhdHltYWknOwokbGFuZ1snc2VjdXJlZmllbGRtYXJrZXInXSA9ICdTZWN1cmUgRmllbGQgTWFya2VyJzsKJGxhbmdbJ3NlY3VyZWZpZWxkY29sb3InXSA9ICdTZWN1cmUgRmllbGQgQ29sb3InOwokbGFuZ1sncHJvbXB0X2VuY3J5cHQnXSA9ICdTdG9yZSB0aGlzIGRhdGEgZW5jcnlwdGVkIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9ub3RzdXBwb3J0ZWQnXSA9ICdUaGUgY2hvc2VuIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGdpdmVuIHlvdXIgY3VycmVudCBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ2F1ZGl0X3VzZXJfY3JlYXRlZCddID0gJ1VzZXIgYXV0b21hdGljYWxseSBjcmVhdGVkJzsKJGxhbmdbJ2luZm9fYXV0b19jcmVhdGVfdW5rbm93biddID0gJ0lmIGEgdXNlciBpcyBhdXRoZW50aWNhdGVkIGJ5IGFuIGV4dGVybmFsIGF1dGhlbnRpY2F0aW9uIG1vZHVsZSBidXQgaXMgbm90IGtub3duIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSBzaG91bGQgYW4gRkVVIGFjY291bnQgYmUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5Pyc7CiRsYW5nWydwcm9tcHRfYXV0b19jcmVhdGVfdW5rbm93biddID0gJ0F1dG9tYXRpY2FsbHkgQ3JlYXRlIFVua25vd24gVXNlcnMnOwokbGFuZ1snZGlzcGxheV9zZXR0aW5ncyddID0gJ1JvZHltbyBudXN0YXR5bWFpJzsKJGxhbmdbJ2luZm9fc3RkX2F1dGhfc2V0dGluZ3MnXSA9ICdUaGUgZm9sbG93aW5nIHNldHRpbmdzIGFyZSBvbmx5IGFwcGxpY2FibGUgaWYgdXNpbmcgdGhlICZxdW90O0J1aWx0aW4gQXV0aGVudGljYXRpb24mcXVvdDsuJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0dW4nXSA9ICdTZWxlY3RpbmcgTm8gd2lsbCBkaXNhYmxlIHRoZSBhYmlsaXR5IGZvciBhIHVzZXIgdG8gcmVxdWVzdCBsb3N0IGxvZ2luIGluZm9ybWF0aW9uLCBpcnJlc3BlY3RpdmUgb2Ygb3RoZXIgc2V0dGluZ3MnOwokbGFuZ1snaW5mb19zdXBwb3J0X2xvc3RwdyddID0gJ1NlbGVjdGluZyBObyB3aWxsIGRpc2FibGUgdGhlIGFiaWxpdHkgZm9yIGEgdXNlciB0byBhIHBhc3N3b3JkIHJlc2V0LCBpcnJlc3BlY3RpdmUgb2Ygb3RoZXIgc2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X3N1cHBvcnRfbG9zdHVuJ10gPSAnQWxsb3cgdXNlcnMgdG8gcmVxdWVzdCB0aGVpciB1c2VybmFtZSc7CiRsYW5nWydwcm9tcHRfc3VwcG9ydF9sb3N0cHcnXSA9ICdBbGxvdyB1c2VycyB0byByZXF1ZXN0IGEgcGFzc3dvcmQgY2hhbmdlJzsKJGxhbmdbJ2F1dGhfc2V0dGluZ3MnXSA9ICdBdXRlbnRpZmlrYWNpam9zIG51c3RhdHltYWknOwokbGFuZ1snYXV0aGVudGljYXRpb24nXSA9ICdCdWlsdGluIEF1dGhlbnRpY2F0aW9uJzsKJGxhbmdbJ2F1dGhfYnVpbHRpbiddID0gJ0ZFVSBTdGFuZGFyZCBBdXRoZW50aWNhdGlvbic7CiRsYW5nWydhdXRoX21vZHVsZSddID0gJ0F1dGhlbnRpY2F0aW9uIE1vZHVsZS9NZXRob2QnOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ1RoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSBzdXBwb3J0cyB1c2luZyBhbHRlcm5hdGUgYXV0aGVudGljYXRpb24gbWV0aG9kcywgd2l0aCB2YXJ5aW5nIGNhcGFiaWxpdGllcy4gIFNvbWUgZnVuY3Rpb25hbGl0eSB3aWxsIG5vdCBmdW5jdGlvbiBvciBiZSBkaXNhYmxlZCB3aGVuIG5vdCB1c2luZyB0aGUgYnVpbHQgaW4gYXV0aGVudGljYXRpb24gbWV0aG9kJzsKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciB1c2VyJzsKJGxhbmdbJ3VuaXF1ZSddID0gJ1VuaXF1ZSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVfZmllbGRfdmFsdWUnXSA9ICdUaGUgdmFsdWUgc3BlY2lmaWVkIGZvciAlcyAoJXMpIGlzIG5vdCB1bmlxdWUnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ0ZvcmNlIHZhbHVlcyBvZiB0aGlzIHByb3BlcnR5IHRvIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHVzZXIgYWNjb3VudHMnOwokbGFuZ1snaGVscF9yZXR1cm5sYXN0J10gPSAnVXNlZCB3aXRoIHRoZSBsb2dpbiBhbmQgbG9nb3V0IGZvcm1zLCB0aGlzIHBhcmFtZXRlciBpZiBzcGVjaWZpZWQgd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSB1c2VyIHNob3VsZCBiZSByZXR1cm5lZCB0byB0aGUgcGFnZSAoYnkgdXJsKSB0aGF0IHRoZSB1c2VyIHdhcyB2aWV3aW5nIGJlZm9yZSB0aGUgYWN0aW9uIG9jY3VycmVkLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBvdmVycmlkZSB0aGUgcmVkaXJlY3QgcHJlZmVyZW5jZXMsIGFuZCB0aGUgcmV0dXJudG8gcGFyYW1ldGVyLic7CiRsYW5nWydoZWxwX25vaW5saW5lJ10gPSAnVXNlZCB3aXRoIG9uZSBvZiB0aGUgZm9ybXMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IHRoZSBmb3JtcyBzaG91bGQgbm90IGJlIHBsYWNlZCBpbmxpbmUsIGluc3RlYWQgdGhlIHJlc3VsdGluZyBvdXRwdXQgYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uIHdpbGwgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrJzsKJGxhbmdbJ3RpdGxlX3Jlc2V0X3Nlc3Npb24nXSA9ICfErnNwxJdqaW1hcyBhcGllIHByaXNpanVuZ2ltbyBzZXNpam9zIHBhYmFpZ8SFJzsKJGxhbmdbJ21zZ19yZXNldF9zZXNzaW9uJ10gPSAnSsWrc8WzIHByaXNpanVuZ2ltbyBzZXNpam9zIGdhbGlvamltYXMgYXJ0xJdqYSBwcmllIHBhYmFpZ29zLiBQcmEmc2Nhcm9uO29tIHBhc3BhdXNraXRlICZxdW90O1ByYXTEmXN0aSZxdW90OyBteWd0dWvEhSwgamVpIG5vcml0ZSBwcmF0xJlzdGkgcHJpc2lqdW5naW1vIHNlc2lqb3MgZ2FsaW9qaW3EhSc7CiRsYW5nWydvayddID0gJ1ByYXTEmXN0aSc7CiRsYW5nWydyZXNldHNlc3Npb25fdGVtcGxhdGUnXSA9ICdTZXNpam9zIGF0bmF1amluaW1vICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydpbmZvX25hbWUnXSA9ICdUaGlzIGlzIHRoZSBmaWVsZCBuYW1lLCB0byBiZSB1c2VkIGZvciBhZGRyZXNzaW5nIGluIHNtYXJ0eS4gIEl0IG11c3QgY29uc2lzdCBvZiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCB1bmRlcnNjb3Jlcy4nOwokbGFuZ1sndmlzaXRvcnNfdGFiJ10gPSAnTGFua3l0b2phaSc7CiRsYW5nWydmZXVfZ3JvdXBzX3Byb21wdCddID0gJ1Bhc2lyaW5raXRlIHZpZW7EhSBhciBkYXVnaWF1IEZFVSBncnVwacWzLCBrdXJpb21zIGJ1cyBsZWlzdGEgbWF0eXRpICZzY2Fyb247xK8gcHVzbGFwxK8nOwokbGFuZ1snZXJyb3JfbXVzdHNlbGVjdF9ncm91cCddID0gJ1R1cmkgYsWrdGkgcGFzaXJpbmt0YSBncnVwxJcnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnUGFzaXJpbmtpdGUgdmllbsSFJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICdQcmFkxb5pb3MgbWV0YWknOwokbGFuZ1snZW5kX3llYXInXSA9ICdQYWJhaWdvcyBtZXRhaSc7CiRsYW5nWydkYXRlJ10gPSAnRGF0YSc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdNaW5pYXRpxatyb3MgZHlkaXMnOwokbGFuZ1snT25VcGRhdGVHcm91cCddID0gJ09uIFVzZXIgR3JvdXAgTW9kaWZpZWQnOwokbGFuZ1snZXJyb3JfdG9vbWFueXNlbGVjdGVkJ10gPSAnVG9vIG1hbnkgdXNlcnMgYXJlIHNlbGVjdGVkIGZvciBidWxrIG9wZXJhdGlvbnMuLi4uIFBsZWFzZSB0cmltIGl0IHRvIDI1MCBvciBsZXNzJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnQXIgdGlrcmFpIG5vcml0ZSBpJnNjYXJvbjt0cmludGkgJnNjYXJvbjvEryBuYXVkb3RvasSFPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdJJnNjYXJvbjt0cmludGkgcGFzaXJpbmt0dXMnOwokbGFuZ1sncHJvbXB0X3JhbmRvbXVzZXJuYW1lJ10gPSAnUHJpZGVkYW50IG5hdWp1cyBuYXVkb3RvanVzIGdlbmVydW90aSBhdHNpdGlrdGluxK8gbmF1ZG90b2pvIHZhcmTEhSc7CiRsYW5nWydtb250aHMnXSA9ICdtxJduZXNpYWknOwokbGFuZ1sncHJvbXB0X2V4cGlyZWFnZSddID0gJ051bWF0eXRhc2lzIG5hdWRvdG9qbyBnYWxpb2ppbW8gdGVybWluYXMnOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnUHJhbmUmc2Nhcm9uO2ltbyBudXN0YXR5bWFpJzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnU2F2eWJpxbMgbnVzdGF0eW1haSc7CiRsYW5nWydyZWRpcmVjdGlvbl9zZXR0aW5ncyddID0gJ1BlcmFkcmVzYXZpbW8gbnVzdGF0eW1haSc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnUGFncmluZGluaWFpIG51c3RhdHltYWknOwokbGFuZ1snc2Vzc2lvbl9zZXR0aW5ncyddID0gJ1Nlc2lqb3MgaXIgc2xhcHVrxbMgbnVzdGF0eW1haSc7CiRsYW5nWydmaWVsZF9zZXR0aW5ncyddID0gJ0xhdWtvIG51c3RhdHltYWknOwokbGFuZ1snZXJyb3JfbG9zdHVuX25vbnJlcXVpcmVkJ10gPSAnVGhlIGxvc3R1c2VybmFtZSBmbGFnIGNhbiBvbmx5IGJlIHVzZWQgb24gcmVxdWlyZWQgZmllbGRzJzsKJGxhbmdbJ3Byb3BfdGV4dGFyZWFfd3lzaXd5ZyddID0gJ0FsbG93IHVzZSBvZiB3eXNpd3lnIG9uIHRoaXMgdGV4dCBhcmVhJzsKJGxhbmdbJ2luZm9fY29va2llc3RvcmVtZW1iZXInXSA9ICc8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBUaGlzIHVzZXMgdGhlIG1jcnlwdCBmdW5jdGlvbnMgZm9yIGVuY3J5cHRpb24gcHVycG9zZXMsIGFuZCB0aGV5IGNvdWxkIG5vdCBiZSBkZXRlY3RlZCBvbiB5b3VyIGluc3RhbGwuICAgUGxlYXNlIGNvbnRhY3QgeW91ciBzZXJ2ZXIgYWRtaW5pc3RyYXRvci4nOwokbGFuZ1snZWRpdGluZ191c2VyJ10gPSAnUmVkYWd1b3RpIG5hdWRvdG9qxIUnOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdEbyBub3QgaW5saW5lIGZvcm1zJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnU3BhdXNraXRlIMSNaWEsIGplaSBuZWF0c2ltZW5hdGUgc2F2byBwcmlzaWp1bmdpbW8gZGV0YWxpxbMnOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ1NwYXVza2l0ZSDEjWlhLCBqZWkgbmVhdHNpbWVuYXRlIHNhdm8gc2xhcHRhxb5vZMW+aW8nOwokbGFuZ1snaW5mb19sb2dvdXQnXSA9ICdOb3LEl2RhbWkgYXRzaWp1bmd0aSBzcGF1c2tpdGUgxI1pYSc7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnUGFzcGF1c2tpdGUgxI1pYSBzbGFwdGHFvm9kxb5pbyBhciBraXRvcyBpbmZvcm1hY2lqb3Mga2VpdGltdWknOwokbGFuZ1sndmlld3VzZXJfdGVtcGxhdGUnXSA9ICdOYXVkb3Rvam8gcGVyxb5pxatyxJdqaW1vICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydldmVudCddID0gJ8SudnlraXMnOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ0ZFVSBFdmVudCBOb3RpZmljYXRpb24nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnRS4gcGEmc2Nhcm9uO3RvIGFkcmVzYXMgcHJhbmUmc2Nhcm9uO2ltYW1zJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fdGVtcGxhdGUnXSA9ICdQcmFuZSZzY2Fyb247aW1vIGUuIHBhJnNjYXJvbjt0dSAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9zdWJqZWN0J10gPSAnUHJhbmUmc2Nhcm9uO2ltbyBlLiBwYSZzY2Fyb247dHUgdGVtYSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9ucyddID0gJ1ByYW5lJnNjYXJvbjtpbWFpIGUuIHBhJnNjYXJvbjt0dSc7CiRsYW5nWydPbkxvZ2luJ10gPSAnUHJpc2lqdW5ndXMnOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdBdHNpanVuZ3VzJzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ1Bhc2liYWlndXMgc2VzaWphaSc7CiRsYW5nWydPbkNyZWF0ZVVzZXInXSA9ICdTdWvFq3J1cyBuYXVqxIUgbmF1ZG90b2rEhSc7CiRsYW5nWydPbkRlbGV0ZVVzZXInXSA9ICdJJnNjYXJvbjt0cnludXMgbmF1ZG90b2rEhSc7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdLYWkgbmF1ZG90b2rFsyBudXN0YXR5bWFpIHBha2Vpc3RpJzsKJGxhbmdbJ09uQ3JlYXRlR3JvdXAnXSA9ICdLYWkgbmF1ZG90b2rFsyBncnVwxJcgc3VrdXJ0YSc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnS2FpIG5hdWRvdG9qxbMgZ3J1cMSXIGkmc2Nhcm9uO3RyaW50YSc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ1RoZSBsb3N0IGxvZ2luIGRldGFpbHMgZnVuY3Rpb25hbGl0eSBoYXMgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZC4gIFdlIGhhdmUgZm91bmQgYSB1bmlxdWUgdXNlcm5hbWUgdGhhdCBtYXRjaGVzIHRoZSBkZXRhaWxzIHlvdSBlbnRlcmVkLic7CiRsYW5nWyd5b3VyX3VzZXJuYW1lX2lzJ10gPSAnSsWrc8WzIG5hdWRvdG9qbyB2YXJkYXMgeXJhJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcG9zdG1zZyddID0gJ1dlIHJlY29tbWVuZCB5b3UgcmVjb3JkIHRoaXMgaW5mb3JtYXRpb24gaW4gYSBzZWN1cmUsIGJ1dCByZXRyaWV2YWJsZSBsb2NhdGlvbi4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX2NoYW5nZV9zZXR0aW5ncyddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGNoYW5nZSBzZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfdmVyaWZ5X2NvZGUnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBjb2RlIHZlcmlmaWNhdGlvbiAqJzsKJGxhbmdbJ2xvc3R1bl9kZXRhaWxzX3RlbXBsYXRlJ10gPSAnUHJhcmFzdG8gbmF1ZG90b2pvIHZhcmRvIGRldGFsacWzICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJ05hdWRvdG9qbyBwYW1pciZzY2Fyb247dG8gdmFyZG8gJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZW1hdGNoJ10gPSAnRXJyb3I6IE1vcmUgdGhhbiBvbmUgdXNlciBhY2NvdW50IG1hdGNoZWQgdGhlIHByb3BlcnRpZXMgc3BlY2lmaWVkJzsKJGxhbmdbJ2Vycm9yX2NhbnRmaW5kdXNlciddID0gJ0Vycm9yOiBDb3VsZCBub3QgZmluZCBhIG1hdGNoaW5nIHVzZXInOwokbGFuZ1snZXJyb3JfZ3JvdXBub3Rmb3VuZCddID0gJ0tsYWlkYSAtIGdydXDElyB0b2tpdSB2YXJkdSBuZXJhc3RhJzsKJGxhbmdbJ3JlYWRvbmx5J10gPSAnVGlrIHNrYWl0eW11aSc7CiRsYW5nWydwcm9tcHRfdXNlcm1hbmlwdWxhdG9yJ10gPSAnTmF1ZG90b2rFsyBtYW5pcHVsaWF0b3JpYXVzIGtsYXPElyc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdBdGp1bmd0YXMgYWRtaW5pc3RyYXRvcmlhdXMnOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ1JvZHl0aSB0aWsgcHJpc2lqdW5ndXNpdXMgbmF1ZG90b2p1cyc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnQXRqdW5ndGkgJnNjYXJvbjvEryBuYXVkb3RvasSFJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ05hdWRvdG9qbyBzxIV2eWLEl3MnOwokbGFuZ1sndXNlcmhpc3RvcnknXSA9ICdOYXVkb3Rvam8gaXN0b3JpamEnOwokbGFuZ1snZXhwb3J0J10gPSAnRWtzcG9ydHVvdGknOwokbGFuZ1snY2xlYXInXSA9ICdWYWx5dGknOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJoaXN0b3J5J10gPSAnRXhwb3J0IFVzZXIgSGlzdG9yeSBUbyBBU0NJSSB0aGF0IGlzIGF0IGxlYXN0JzsKJGxhbmdbJ3Byb21wdF9jbGVhcnVzZXJoaXN0b3J5J10gPSAnQ2xlYXIgVXNlciBIaXN0b3J5IHJlY29yZHMgdGhhdCBpcyBhdCBsZWFzdCc7CiRsYW5nWyd0aXRsZV9sb3N0dXNlcm5hbWUnXSA9ICdVxb5taXImc2Nhcm9uO290ZSBwcmlzaWp1bmdpbW8gZGV0YWxlcz8/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0V4cG9ydCBncm91cCBkZWZpbml0aW9uIChhbmQgcHJvcGVydGllcykgdG8gWE1MJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5bWFpbnRlbmFuY2UnXSA9ICdVc2VyIEhpc3RvcnkgTWFpbnRlbmFuY2UnOwokbGFuZ1sneWVzJ10gPSAnVGFpcCc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ2kmc2Nhcm9uOyc7CiRsYW5nWydkYXRlX2FsbHJlY29yZHMnXSA9ICcqKkJlIHJpYsWzICoqJzsKJGxhbmdbJ2RhdGVfb25laG91cm9sZCddID0gJ1ZpZW5vcyB2YWxhbmRvcyBzZW51bW8nOwokbGFuZ1snZGF0ZV9zaXhob3Vyb2xkJ10gPSAnJlNjYXJvbjtlJnNjYXJvbjtpxbMgdmFsYW5kxbMgc2VudW1vJzsKJGxhbmdbJ2RhdGVfdHdlbHZlaG91cm9sZCddID0gJ0R2eWxpa29zIHZhbGFuZMWzIHNlbnVtbyc7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ1ZpZW5vcyBkaWVub3Mgc2VudW1vJzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJ1ZpZW5vcyBzYXZhaXTEl3Mgc2VudW1vJzsKJGxhbmdbJ2RhdGVfdHdvd2Vla3NvbGQnXSA9ICdEdmllasWzIG3El25lc2nFsyBzZW51bW8nOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJ1ZpZW5vIG3El25lc2lvIHNlbnVtbyc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnVHJpasWzIG3El25lc2nFsyBzZW51bW8nOwokbGFuZ1snZGF0ZV9zaXhtb250aHNvbGQnXSA9ICcmU2Nhcm9uO2Umc2Nhcm9uO2nFsyBtxJduZXNpxbMgc2VudW1vJzsKJGxhbmdbJ2RhdGVfb25leWVhcm9sZCddID0gJ1ZpZW5lcmnFsyBtZXTFsyBzZW51bW8nOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnR3J1cGF2aW1hcyBpciByxasmc2Nhcm9uO2lhdmltYXMnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ1JlY29yZHMgbWF0Y2hpbmcgdGhlIGNyaXRlcmlhJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnTmF1ZG90b2pvIHZhcmRhcyBtYcW+xJdqaW7EjWlhaSc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfYXNjJ10gPSAnTmF1ZG90b2pvIHZhcmRhcyBkaWTEl2phbsSNaWFpJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2Rlc2MnXSA9ICdEYXRhIHwgbWHFvsSXamFuxI1pYWknOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfYXNjJ10gPSAnRGF0YSB8IGRpZMSXamFuxI1pYWknOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9kZXNjJ10gPSAnxK52eWtpbyB0aXBhcyB8IG1hxb7El2phbsSNaWFpJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fYXNjJ10gPSAnxK52eWtpbyB0aXBhcyB8IGRpZMSXamFuxI1pYWknOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19kZXNjJ10gPSAnRGVzY2VuZGluZyBJcCBBZGRyZXNzJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnQXNjZW5kaW5nIElwIEFkZHJlc3MnOwokbGFuZ1snaW5mb19ub2hpc3RvcnlkZXRlY3RlZCddID0gJ05lYXB0aWt0YSBpc3Rvcmlqb3MnOwokbGFuZ1sncmVzZXQnXSA9ICdSZXNldCc7CiRsYW5nWydwcm9tcHRfZ3JvdXBfaXAnXSA9ICdHcm91cCBCeSBJUCBBZGRyZXNzJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZXZlbnR0eXBlJ10gPSAnRXZlbnQgVHlwZSBGaWx0ZXInOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9kYXRlJ10gPSAnRGlzcGxheSBvbmx5IGV2ZW50cyB0aGF0IGFyZSBsZXNzIHRoYW46JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdQYWdlIExpbWl0JzsKJGxhbmdbJ2ZvciddID0gJ2Zvcic7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeSddID0gJ05hdWRvdG9qbyBpc3Rvcmlqb3MgYXRhc2thaXRhJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdOZcW+aW5vbWFzJzsKJGxhbmdbJ3Byb21wdF9pcGFkZHJlc3MnXSA9ICdJUCBhZHJlc2FzJzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICfErnZ5a2lvIHRpcGFzJzsKJGxhbmdbJ3Byb21wdF9kYXRlJ10gPSAnRGF0YSc7CiRsYW5nWydwcm9tcHRfcmV0dXJuJ10gPSAnR3LEr8W+dGknOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ0ltcG9ydCBPcGVyYXRpb24gQ29tcGxldGUnOwokbGFuZ1sncHJvbXB0X2xpbmVzcHJvY2Vzc2VkJ10gPSAnTGluZXMgUHJvY2Vzc2VkJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICfErnZ5a28ga2xhaWTFsyc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnxK5yYSZzY2Fyb247YWkgcHJpZMSXdGknOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3ByZWxucyddID0gJ0NvdWxkIG5vdCBmaW5kIHByb3BlcnRpZXMgZm9yIGdyb3VwICVzJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnQ291bGQgbm90IGdldCBhIHJlc3BvbnNlIGZyb20gdGhlIFNNVFAgc2VydmVyJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgc3BlY2lmaWVkICglcykgY291bGQgbm90IGJlIGZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICdJbnZhbGlkIHZhbHVlIGZvciBkcm9wZG93biBvciBtdWx0aXNlbGVjdCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZGxlbmd0aCddID0gJ0xhdWthcyAlcyB2aXImc2Nhcm9uO2lqbyBtYWtzaW1hbMWzIGlsZ8SvJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0YXZpbW8ga2xhaWRhIChlaWx1dMSXICVzKTogJXMnOwokbGFuZ1snZXJyb3JfcHJvcGVydHlkZWZucyddID0gJ0NvdWxkIG5vdCBnZXQgdGhlIHByb3BlcnR5IGRlZmluaXRpb25zIChpbnRlcm5hbCBlcnJvciknOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdpbmZvJ10gPSAnUHJvYmxlbSBzZXR0aW5nIHVzZXIgaW5mbyc7CiRsYW5nWydlcnJvcl9pbXBvcnRyZXF1aXJlZGZpZWxkJ10gPSAnQ291bGQgbm90IGZpbmQgYSBjb2x1bW4gdG8gbWF0Y2ggdGhlIHJlcXVpcmVkIGZpZWxkICVzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wZXJ0aWVzJ10gPSAnQ291bGQgbm90IGZpbmQgcHJvcGVydGllcyBmb3IgdGhlIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnVGhlIGZpbGUgc3BlY2lmaWVkIGZvciBpbXBvcnQgaXMgbm90IGluIHRoZSBjb3JyZWN0IGZvcm1hdCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdG9wZW5maWxlJ10gPSAnQ291bGQgbm90IG9wZW4gZmlsZSc7CiRsYW5nWydpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdCddID0gJzxoND5GaWxlIEZvcm1hdCBJbmZvcm1hdGlvbjwvaDQ+DQo8cD5UaGUgaW5wdXQgZmlsZSBtdXN0IGJlIGluIEFTQ0lJIGZvcm1hdCB1c2luZyBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzLiAgRWFjaCBsaW5lIGluIHRoaXMgaW5wdXQgZmlsZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBoZWFkZXIgbGluZSwgZGlzY3Vzc2VkIGJlbG93KSByZXByZXNlbnRzIG9uZSB1c2VyIHJlY29yZC4gIEVhY2ggbGluZSBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgbnVtYmVyIG9mIGZpZWxkcywgYW5kIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzIGluIGVhY2ggbGluZSBtdXN0IGJlIGlkZW50aWNhbC48L3A+DQo8aDU+SGVhZGVyIGxpbmU8L2g1Pg0KPHVsPg0KPGxpPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIG11c3QgYmVnaW4gd2l0aCB0d28gcG91bmQgKFwjKSBjaGFyYWN0ZXJzLCBhbmQgbmFtZXMgZWFjaCBvZiB0aGUgZmllbGRzIGluIHRoZSBmaWxlLiAgVGhlIG5hbWVzIG9mIHRoZXNlIGZpZWxkcyBpcyBzaWduaWZpY2FudC4gIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkIG5hbWVzIChzZWUgYmVsb3cpLCBhbmQgb3RoZXIgZmllbGQgbmFtZXMgbXVzdCBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB1c2VycyBhcmUgZ29pbmcgdG8gYmUgYWRkZWQgaW50by48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGZhaWwgaWYgdGhlIGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSBkb2VzIG5vdCBtYXRjaCBhbGwgb2YgdGhlIHJlcXVpcmVkIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB0aGF0IHVzZXJzIGFyZSBiZWluZyBhZGRlZCBpbnRvPC9saT4NCjxsaT5UaGUgaW5wdXQgZmlsZSBtYXkgY29udGFpbiBmaWVsZHMgcmVwcmVzZW50aW5nIHNvbWUgb2YgdGhlIG9wdGlvbmFsIHByb3BlcnRpZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGlnbm9yZSBhbnkgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIHRoYXQgYXJlIGVpdGhlciBub3Qga25vd24sIG9yIG1hcCB0byBwcm9wZXJ0aWVzIHRoYXQgYXJlIDxlbT5vZmY8L2VtPiBpbiB0aGUgc3BlY2lmaWVkIHVzZXIgZ3JvdXAuPC9saT4NCjwvdWw+DQo8aDU+Q29sdW1uYXIgRGF0YTwvaDU+DQo8dWw+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gRmllbGQgLSBUaGUgZGVzaXJlZCB1c2VybmFtZS4NCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNoIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBUaGUgcmVjb3JkIHdpbGwgZmFpbCBpZiBhIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZS48L3A+PC9saT4NCjxsaT5UaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBGaWVsZCAtIFRvZG88L2xpPg0KPGxpPlRoZSA8c3Ryb25nPmV4cGlyZXM8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5Ecm9wZG93biBGaWVsZHMNCiAgICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QgRmllbGRzDQogICAgPHA+TXVsdGlzZWxlY3QgZmllbGRzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBBU0NJSSBmaWxlIGFzIGEgOiBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzLCB3aGVyZSBlYWNoIHN0cmluZyByZXByZXNlbnRzIHRoZSB0ZXh0IHNob3duIGluIHRoZSBtdWx0aXNlbGVjdCBsaXN0PC9wPg0KPC9saT4NCjxsaT5JbWFnZSBGaWVsZHMNCiAgICA8cD5JbWFnZSBhcmUgZmllbGRzIHdobyYjMDM5O3MgY29sdW1uIG5hbWUgbWF0Y2hlcyBhIHByb3BlcnR5IG9mIHR5cGUgSW1hZ2UuICBJZiB0aGlzIGZpZWxkIGlzIGEgcmVxdWlyZWQgcGFydCBvZiB0aGUgZGVzdGluYXRpb24gZ3JvdXAsIHRoZW4gdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiB0aGUgdXBsb2FkcyBkaXNyZWN0b3J5IG9mIHRoZSBDTVMgaW5zdGFsbGF0aW9uLiAgSWYgdGhlIGltYWdlIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvcD4NCjwvdWw+DQo8aDU+Tm90ZXM8L2g1Pg0KPHA+VGhlIGltcG9ydCBwcm9jZXNzIGlzIHN1YmplY3QgdG8gdGhlIGxpbWl0YXRpb25zIGltcG9zZWQgYnkgdGhlIGhvc3QgcHJvdmlkZXIsIHN1Y2ggYXMgbWVtb3J5IGxpbWl0YXRpb25zLCBwcm9jZXNzaW5nIHRpbWUsIGZpbGUgc2l6ZSB1cGxvYWQsIGFuZCBzYWZlIG1vZGUgcmVzdHJpY3Rpb25zLiAgQW55IG9uZSBvZiB0aGVzZSBsaW1pdGF0aW9ucyBtYXkgY2F1c2UgdGhlIGltcG9ydCB0byBmYWlsLiBUaGVyZWZvcmUgaXQgaXMgYWR2aXNhYmxlIHRvIGVuc3VyZSB0aGF0IGltcG9ydCBmaWxlcyBhcmUgc21hbGxlciBpbiBzaXplLCBhbmQgc2ltcGxlciBpbiBuYXR1cmUuPC9wPg0KPHA+VGhvdWdoIGV2ZXJ5IGVmZm9ydCBoYXMgYmVlbiBtYWRlIHRvIGVuc3VyZSB0aGF0IGRhdGFiYXNlIGNvcnJ1cHRpb24gd2lsbCBub3Qgb2NjdXIsIGl0IGlzIGFkdmlzYWJsZSB0byBwZXJmb3JtIGEgZGF0YWJhc2UgYmFja3VwIGJlZm9yZSBkb2luZyBhIHVzZXIgaW1wb3J0LjwvcD4NCjxoNT5FeGFtcGxlPC9oNT4NCjxwcmU+DQojI3VzZXJuYW1lLGZpcnN0X25hbWUsbGFzdF9uYW1lLGVtYWlsLGNpdHksc3RhdGUsY291bnRyeSx6aXANCnVzZXIxLHRlc3QsdXNlcix1c2VyMUBzb21lZG9tYWluLmNvbSxzb21ld2hlcmUsVFgsVVMsMTIzNDUNCjwvcHJlPg0KJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRkZXN0Z3JvdXAnXSA9ICdJbXBvcnR1b3RpIG5hdWRvdG9qdXMgxK8gJnNjYXJvbjtpxIUgZ3J1cMSZJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRmaWxlbmFtZSddID0gJ0lucHV0IENTViBGaWxlJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR4bWxmaWxlJ10gPSAnSW5wdXQgWE1MIEZpbGUnOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJzJ10gPSAnRWtzcG9ydHVvdGkgbmF1ZG90b2p1cyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnR1b3RpIG5hdWRvdG9qdXMnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnVmFseXRpJzsKJGxhbmdbJ3Byb21wdF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRoJ10gPSAnSW1hZ2UgRGVzdGluYXRpb24gUGF0aCc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3VwbG9hZCddID0gJ0EgcHJvYmxlbSBvY2N1cnJlZCB3aXRoIGEgbWlzc2luZyAoYnV0IHJlcXVpcmVkKSB1cGxvYWQnOwokbGFuZ1snZXJyb3JfYmFkX3htbCddID0gJ0NvdWxkIG5vdCBwYXJzZSB0aGUgcHJvdmlkZWQgWE1MIGZpbGUnOwokbGFuZ1snZXJyb3Jfbm90ZW1wdHlncm91cCddID0gJ0dydXDElywga3VyaW9qZSB5cmEgbmF1ZG90b2rFsywgbmVnYWxpIGLFq3RpIGkmc2Nhcm9uO3RyaW50YSc7CiRsYW5nWydlcnJvcl9ub3JlcGVhdGVkbG9naW5zJ10gPSAnJlNjYXJvbjtpcyBuYXVkb3RvamFzIGphdSB5cmEgcHJpc2lqdW5nxJlzJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ05ldGVpc2luZ2FpIMSvdmVzdGFzIHRla3N0YXMgaSZzY2Fyb247IHBhdmVpa3NsaXVrbyc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnTGVpc3RpIG5hdWRvdG9qdWkgcHJpc2lqdW5ndGkgZGF1Z2lhdSBuZWd1IHZpZW7EhSBrYXJ0xIUnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0ltYWdlIEZpbGUgRXh0ZW5zaW9ucyB0aGF0IFVzZXJzIGFsbG93ZWQgdG8gdXBsb2FkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25SZWZyZXNoVXNlciddID0gJzxoMz5PblJlZnJlc2hVc2VyPC9oMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIHRoZSB1c2VyIHNlc3Npb24gaXMgcmVmcmVzaGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBVc2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyB1cGRhdGVkIChlaXRoZXIgYnkgdXNlciB0aGVtc2VsZiBvciBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZUdyb3VwJ10gPSAnPGgzPk9uQ3JlYXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBncm91cCBkZXNjcmlwdGlvbjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9naW4nXSA9ICc8aDM+T25Mb2dpbjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGlkIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPg0KPGxpPjxlbT5pcDwvZW0+IC0gVGhlIGlwIGFkZHJlc3Mgb2YgdGhlIGNsaWVudDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dvdXQnXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBvdXQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2Vkb3V0IHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uRXhwaXJlVXNlciddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGV4cGlyZXM8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9pbmZvX09uTG9naW4nXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbiB0byB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBvdXQgb2YgdGhlIHN5c3RlbSc7CiRsYW5nWydldmVudF9pbmZvX09uRXhwaXJlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGlzIGV4cGlyZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIG5ldyB1c2VyIGlzIGNyZWF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PblJlZnJlc2hVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gdGhlIHVzZXIgc2Vzc2lvbiBpcyByZWZyZXNoZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaW5mbyBpcyB1cGRhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGFjY291bnQgaXMgZGVsZXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgdXBkYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgZGVsZXRlZCc7CiRsYW5nWydiYWNrZW5kX2dyb3VwJ10gPSAnQmFja2VuZCBHcm91cCc7CiRsYW5nWydpbmZvX3N0YXInXSA9ICcqIFRoZSBmb2xsb3dpbmcgbWFjcm9zIGNhbiBiZSB1c2VkIGluIHRoZXNlIGZpZWxkczogeyR1c2VybmFtZX0seyRncm91cH0uIFdoZW4gdXNpbmcgdGhlIHskZ3JvdXB9IG1hY3JvLCB0aGUgc3lzdGVtIHdpbGwgc3Vic2l0dXRlIHRoZSBuYW1lIG9mIHRoZSBmaXJzdCBtZW1iZXIgZ3JvdXAgdGhhdCB0aGUgdXNlciBiZWxvbmdzIHRvLCBhbmQgd2lsbCByZWRpcmVjdCB0byB0aGF0IHBhZ2UuJzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdFZGl0IHRoaXMgZmllbGQgdG8gcmVzZXQgdGhlIHVzZXJzIHBhc3N3b3JkJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdFZGl0IHRoaXMgZmllbGQgdG8gcmVzZXQgdGhlIHVzZXJzIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1lX2V4aXN0cyddID0gJ05hdWRvdG9qYXMgdG9raXUgdmFyZHUgamF1IGVnemlzdHVvamEnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnTm8gcmVzdWx0cyByZXR1cm5lZCBmcm9tIGNzdiBleHBvcnQnOwokbGFuZ1sncHJvbXB0X3VuZmxkbGVuJ10gPSAnTmF1ZG90b2pvIHZhcmRvIGxhdWtvIGlsZ2lzJzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ1NsYXB0YcW+b2TFvmlvIGxhdWtvIGlsZ2lzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICdNaW5pbWFsdXMvbWFrc2ltYWx1cyBzbGFwdGHFvm9kxb5pbyBpbGdpcyB5cmEgbmV0ZWlzaW5nYXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ05ldGVpc2luZ2FzIG5hdWRvdG9qbyB2YXJkbyBpbGdpcyAocGVyIHRydW1wYXMgYXJiYSBwZXIgaWxnYXMpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdOZXRlaXNpbmdhcyBlLiBwYSZzY2Fyb247dG8gYWRyZXNhcyc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ0UuIHBhJnNjYXJvbjt0byBhZHJlc2FzICZzY2Fyb247aWFpIHPEhXNrYWl0YWkgbmVyYXN0YXMnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNlZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3Jfc2V0dGluZ3Byb3BlcnR5J10gPSAnUHJvYmxlbSBzZXR0aW5nIHByb3BlcnR5JzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdOYXVkb3RvamFzIHByaWTEl3RhcyAlcyA9ICVzJzsKJGxhbmdbJ3VzZXJfZGVsZXRlZCddID0gJ05hdWRvdG9qYXMgaSZzY2Fyb247dHJpbnRhcyB1aWQ9JXMnOwokbGFuZ1sncHJvcGVydHlmaWx0ZXInXSA9ICdTYXZ5YsSXJzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWYWx1ZSAocmVndWxhciBleHByZXNzaW9uKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ1dhcm5pbmc6IFRoZXNlIGZpZWxkcyBhZmZlY3QgdGhlIHNpemUgb2YgaW5wdXQgZmllbGRzIGZvciBmb3Jtcy4gIERlY3JlYXNpbmcgdGhpcyBudW1iZXIgb24gYW4gZXhpc3Rpbmcgc2l0ZSBtYXkgbm90IGJlIGFkdmlzYWJsZSc7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFkanVzdCB0aGUgbW9kdWxlIHByZWZlcmVuY2VzPyc7CiRsYW5nWydlcnJvcl9lbWFpbGFscmVhZHl1c2VkJ10gPSAnRS4gcGEmc2Nhcm9uO3RvIGFkcmVzYXMgamF1IHlyYSBuYXVkb2phbWFzJzsKJGxhbmdbJ3Byb21wdF91c2Vjb29raWVzdG9yZW1lbWJlciddID0gJ1VzZSBjb29raWVzIHRvIHJlbWVtYmVyIGxvZ2luIGRldGFpbHMnOwokbGFuZ1sncHJvbXB0X2Nvb2tpZW5hbWUnXSA9ICdUaGUgbmFtZSBvZiB0aGUgY29va2llJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnTGVpc3RpIHTEhSBwYXTEryBlLiBwYSZzY2Fyb247dG8gYWRyZXPEhSBrZWxpZW1zIG5hdWRvdG9qYW1zJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCddID0gJ05hdWRvdG9qbyB2YXJkYXMgeXJhIG5hdWRvdG9qbyBlLiBwYSZzY2Fyb247dG8gYWRyZXNhcyc7CiRsYW5nWydpbmZvX2Nvb2tpZV9rZWVwYWxpdmUnXSA9ICdBdHRlbXB0IHRvIGtlZXAgbG9naW5zIGFsaXZlIGJ5IHRoZSB1c2Ugb2YgYSBjb29raWUgPGVtPih0aGUgY29va2llIGlzIHJlc2V0IG9uIGFjdGl2aXR5IGluIHRoZSB3ZWJzaXRlKTwvZW0+JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJyhhbGxvdyBtdWx0aXBsZSB1c2VycyB3aXRoIHRoZSBzYW1lIGVtYWlsIGFkZHJlc3MpJzsKJGxhbmdbJ2luZm9fdXNlcm5hbWVfaXNfZW1haWwnXSA9ICcodXNlciYjMDM5O3MgZW1haWwgYWRkcmVzcyBpcyB0aGVpciB1c2VybmFtZSAtLSBkb24mIzAzOTt0IHNldCB0aGlzIHdpdGggJnF1b3Q7YWxsb3cgZHVwbGljYXRlIGVtYWlsIGFkZHJlc3NlcyZxdW90OyEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnQWxsb3cgZHVwbGljYXRlICZxdW90O2ZvcmdvdCBwYXNzd29yZCZxdW90OyByZW1pbmRlcnM/JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJyhhbGxvdyBhIHVzZXJzIHRvIHJlcXVlc3QgYSBwYXNzd29yZCByZXNldCwgZXZlbiBpZiB0aGV5IGhhdmVuJiMwMzk7dCBhY3RlZCBvbiBhIHByZXZpb3VzIG9uZSknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdVc2UgRnJvbnQtZW5kIFVzZXIgc3BlY2lmaWMgcGVybWlzc2lvbnM/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhOb3JtYWxseSwgRkVVU2VycyBwZXJtaXNzaW9ucyBhcmUgdGhlIHNhbWUgYXMgdGhlIGVxdWl2YWxlbnQgQWRtaW4gQXJlYSBwZXJtaXNzaW9ucyBsaWtlIEFkZCBVc2VyLCBBZGQgR3JvdXAsIGV0Yy4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlcmUgd2lsbCBiZSBzZXBhcmF0ZSBwZXJtaXNzaW9ucyBmb3IgRkVVc2Vycy4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkZWQgZmlsZSAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJ10gPSAnVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHlvdXIgdXBsb2FkZWQgZmlsZS4gIFBsZWFzZSB0cnkgYWdhaW4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnSsWrcyBuZcSvdmVkxJd0ZSBuYXVkb3Rvam8gdmFyZG8nOwokbGFuZ1snZXJyb3JfbWlzc2luZ2VtYWlsJ10gPSAnSsWrcyBuZcSvdmVkxJd0ZSBzYXZvIGUuIHBhJnNjYXJvbjt0byBhZHJlc28nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3Bhc3N3b3JkJ10gPSAnSsWrcyBuZcSvdmVkxJd0ZSBzbGFwdGHFvm9kxb5pbyc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nb3V0J10gPSAnRnJvbnRlbmQgVXNlciBMb2dvdXQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnRnJvbnRlbmQgVXNlciBMb2dpbic7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPlVTRSBDQVVUSU9OPC9iPiB3aGVuIGNoYW5naW5nIGV4aXN0aW5nIHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gZ3JvdXBzLCB5b3UgbWF5IHBvdGVudGlhbGx5IGNhdXNlIGRhbWFnZSBhbmQgYnJlYWsgYW4gZXhpc3Rpbmcgc2l0ZSA8aT4oZXNwZWNpYWxseSBpZiB5b3UgcmVkdWNlIGZpZWxkIGxlbmd0aHMsIGV0Yyk8L2k+PC9mb250Pic7CiRsYW5nWydpbmZvX3NtdHB2YWxpZGF0ZSddID0gJ1RoaXMgZnVuY3Rpb24gZG9lcyBub3Qgd29yayBvbiB3aW5kb3dzJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdEbyBub3QgY3JlYXRlIGEgcHJvcGVydHkgZm9yIHVzZXJuYW1lLCBvciBwYXNzd29yZCBhcyB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBidWlsdGluIHRvIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfZXhwb3J0Y3N2J10gPSAnRWtzcG9ydHVvdGkgbmF1ZG90b2p1cyDEryBDU1YnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRWtzcG9ydHVvdGknOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0dW90aSc7CiRsYW5nWydhZG1pbiddID0gJ0FkbWluaXN0cmF2aW1hcyc7CiRsYW5nWydlZGl0cHJvcCddID0gJ0tlaXN0aSBzxIV2eWLEmTogPGVtPiVzPC9lbT4nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWFrc2ltYWx1cyBpbGdpcyc7CiRsYW5nWydjcmVhdGVkJ10gPSAnU3VrdXJ0YXMnOwokbGFuZ1snc29ydGJ5J10gPSAnUsWrJnNjYXJvbjtpdW90aSBwYWdhbCc7CiRsYW5nWydzb3J0J10gPSAnUsWrJnNjYXJvbjtpdW9qYW1hJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ05hdWRvdG9qYWkgcGFzaXJpbmt0b3NlIGdydXDEl3NlJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ0Fwcmlib3RpIHJlenVsdGF0dXMgaWtpJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJyZTY2Fyb247aW8gbmF1ZG90b2pvIGUuIHBhJnNjYXJvbjt0byBhZHJlc2FzIG5lcmFuZGFtYXMuIEtyZWlwa2l0xJdzIMSvIHNpc3RlbW9zIGFkbWluaXN0cmF0b3JpxbMuJzsKJGxhbmdbJ3Byb21wdF9mb3Jnb3Rwd19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGZvciBGb3Jnb3QgUGFzc3dvcmQgZm9ybSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyBmb3IgQ2hhbmdlIFNldHRpbmdzIGZvcm0nOwokbGFuZ1sncHJvbXB0X2xvZ2luX3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBsb2dpbiAqJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXRfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGxvZ291dCAqJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ1LFqyZzY2Fyb247aWF2aW1vIHR2YXJrYSc7CiRsYW5nWydwcm9tcHRfbnVtcmVzZXRyZWNvcmQnXSA9ICdBIG51bWJlciBvZiB1c2VycyBhcmUgaW4gdGhlIG1pZGRsZSBvZiByZXNldHRpbmcgbG9zdCBwYXNzd29yZHMuICBDdXJyZW50bHkgdGhpcyBjb3VudCBpcyBhdDonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdQYSZzY2Fyb247YWxpbnRpIHZpc3VzIGRhdWdpYXUgbmVndSBzYXZhaXTEl3Mgc2VudW1vIMSvcmEmc2Nhcm9uO3VzJzsKJGxhbmdbJ3JlbW92ZTFtb250aCddID0gJ1BhJnNjYXJvbjthbGludGkgdmlzdXMgZGF1Z2lhdSBuZWd1IG3El25lc2lvIHNlbnVtbyDEr3JhJnNjYXJvbjt1cyc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdQYSZzY2Fyb247YWxpbnRpIHZpc3VzIMSvcmEmc2Nhcm9uO3VzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBciBqxatzIMSvc2l0aWtpbsSZcz8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICdOZXRlaXNpbmdhcyBrb2RhcyBidXZvIMSvdmVzdGFzLiBCYW5keWtpdGUgZGFyIGthcnTEhSc7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnQSB0ZW1wb3JhcnkgY29kZSBmb3IgeW91ciB1c2VyIGlkIGNvdWxkIG5vdCBiZSBmb3VuZCBpbiB0aGUgZGF0YWJhc2UnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB1c2VkIHRvIGRpc3BsYXkgdmVyaWZpY2F0aW9uIGZvcm0nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfZW1haWx0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzZWQgZm9yIGZvcmdvdHRlbiBwYXNzd29yZCBlbWFpbCc7CiRsYW5nWydlcnJvcl9yZXNldGFscmVhZHlzZW50J10gPSAnSsWrcyBhcmJhIGthcyBub3JzIGtpdGFzIGphdSBwcmEmc2Nhcm9uO8SXdGUgc2xhcHRhxb5vZMW+aW8ga2VpdGltby4gUGF0aWtyaW5raXQgc2F2byBlLiBwYSZzY2Fyb247dMSFIC0gdHVyxJd0dW3El3RlIHJhc3RpIGUuIGxhaSZzY2Fyb247a8SFIHN1IGluc3RydWtjaWpvbWlzLCBrYWlwIHBha2Vpc3RpIHNsYXB0YcW+b2TEry4nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0R1b21lbsWzIGJhesSXcyBrbGFpZGEnOwokbGFuZ1snbWVzc2FnZV9mb3Jnb3Rwd2VtYWlsJ10gPSAnSsWrcyBnYXZvdGUgJnNjYXJvbjvEryBsYWkmc2Nhcm9uO2vEhSwgbmVzIGrFq3MgYXJiYSBrYcW+a2FzIGtpdGFzIG3Fq3PFsyBzdmV0YWluxJdqZSBudXJvZMSXLCBrYWQgcHJhcmFkb3RlIHNhdm8gcHJpc2lqdW5naW1vIHNsYXB0YcW+b2TEry4gSmVpIGp1bXMgbmVyZWlraWEga2Vpc3RpIHNhdm8gc2xhcHRhxb5vZMW+aW8sIHRpZXNpb2cgaWdub3J1b2tpdGUgJnNjYXJvbjvEryBsYWkmc2Nhcm9uO2vEhS4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdLb2Rhcyc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdOb3LEl2RhbWkgcGFrZWlzdGkgc2F2byBzbGFwdGHFvm9kxK8gc2VraXRlIMW+ZW1pYXUgcGF0ZWlrdMSFIG51b3JvZMSFLiBOb3JpbnQgcGFrZWlzdGkgc2xhcHRhxb5vZMSvLCByZWlraWEgxK92ZXN0aSBpciBrb2TEhS4gxK5wcmFzdGFpIGtvZG8gbGF1a2VsaXMgYsWrbmEgaSZzY2Fyb247IGFua3N0byB1xb5waWxkeXRhcywgdGHEjWlhdSBqZWkgbmUsIHRhaSBrb2RhcyB5cmE6JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnU2VraXRlICZzY2Fyb247acSFIG51b3JvZMSFLCBqZWkgbm9yaXRlIHBha2Vpc3RpIHNhdm8gc2xhcHRhxb5vZMSvOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnUHJhcmFzdGFzIHNsYXB0YcW+b2Rpcyc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ25lcmFuZGFtYXMgQ01TTWFpbGVyIG1vZHVsaXMnOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnRS4gbGFpJnNjYXJvbjtrYXMgc3UgaW5zdHJ1a2Npam9taXMsIGthaXAgcGFrZWlzdGkgc2xhcHRhxb5vZMSvLCBpJnNjYXJvbjtzacWzc3RhcyBhZHJlc3UgJXMuIEHEjWnFqyEnOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICfErnZlc2tpdGUgbmF1ZG90b2pvIHZhcmTEhSBpciBqZWlndSB0b2tzIHZhcmRhcyBlZ3ppc3R1b2phLCBlLiBsYWkmc2Nhcm9uO2thcyBzdSBpbnN0cnVrY2lqb21pcywga2FpcCBwYWtlaXN0aSBzbGFwdGHFvm9kxK8sIGJ1cyBqdW1zIGkmc2Nhcm9uO3NpxbNzdGFzLiAnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdVxb5taXImc2Nhcm9uO3RvIHNsYXB0YcW+b2TFvmlvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydsb3N0dXNlcm5hbWVfdGVtcGxhdGUnXSA9ICdOYXVkb3Rvam8gdmFyZG8gcHJpbWluaW1vICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdTxIV2eWLElyAlcyBuZXJhc3RhJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdSYXN0b3Mgc8SFdnlixJdzJzsKJGxhbmdbJ2FkZHByb3AnXSA9ICdQcmlkxJd0aSBzxIV2eWLEmSc7CiRsYW5nWydlcnJvcl9yZXF1aXJlZGZpZWxkJ10gPSAnUHJpdmFsb21hcyBsYXVrYXMgKCVzKSBidXZvIHR1JnNjYXJvbjvEjWlhcyc7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ8SudmVza2l0ZSBuYXVqxIUgc2xhcHRhxb5vZMSvLCBqZWkgbm9yaXRlIHBha2Vpc3RpIGRhYmFydGluxK8nOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdKxatzIG5lcHJpc2lqdW5nxJlzJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdOdXN0YXR5bWFpJzsKJGxhbmdbJ3VzZXJfcmVnaXN0cmF0aW9uJ10gPSAnUmVnaXN0cmFjaWphJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnJlNjYXJvbjtpIHBhc2t5cmEgbmViZWdhbGlvamEnOwokbGFuZ1snZXJyb3JfaW1wcm9wZXJlbWFpbGZvcm1hdCddID0gJ05ldGVpc2luZ2FzIGUuIHBhJnNjYXJvbjt0byBhZHJlc28gZm9ybWF0YXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdOZXRlaXNpbmdhIHBhc2t5cm9zIGdhbGlvamltbyBwYWJhaWdvcyBkYXRhLiBUYWkgZ2FsaSBixat0aSBzdXNpZXRhIHN1IHNpc3RlbW9zIG51c3RhdHltYWlzLiBCYW5keWtpdGUgbnVzdGF0eXRpIGFua3N0ZXNuaXVzIG1ldHVzLic7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ3Byb3BlcnR5J10gPSAnRXJyb3Igc2V0dGluZyBwcm9wZXJ0eSAlcyBmb3IgdXNlciAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ05ldGVpc2luZ2FzICVzIGdydXDEl3MgSUQnOwokbGFuZ1snaGlkZGVuZmllbGRtYXJrZXInXSA9ICdIaWRkZW4gZmllbGQgbWFya2VyJzsKJGxhbmdbJ2hpZGRlbmZpZWxkY29sb3InXSA9ICdIaWRkZW4gZmllbGQgY29sb3InOwokbGFuZ1snaGlkZGVuJ10gPSAnUGFzbMSXcHRhJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZW5hbWUnXSA9ICdBIHByb3BlcnR5IHdpdGggdGhhdCBuYW1lIGlzIGFscmVhZHkgZGVmaW5lZCc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdObyBwcm9wZXJ0aWVzIGRlZmluZWQnOwokbGFuZ1snZXJyb3Jfbm9yZWxhdGlvbnMnXSA9ICdObyBwcm9wZXJ0aWVzIHdlcmUgc2VsZWN0ZWQgZm9yIHRoaXMgZ3JvdXAnOwokbGFuZ1snbm9ncm91cHMnXSA9ICdObyBHcm91cHMgYXJlIGRlZmluZWQnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdSYXN0b3MgZ3J1cMSXcyc7CiRsYW5nWydlcnJvcl9vbmVncm91cHJlcXVpcmVkJ10gPSAnTWVtYmVyc2hpcCBpbiBhdCBsZWFzdCBvbmUgZ3JvdXAgaXMgcmVxdWlyZWQnOwokbGFuZ1sncHJvbXB0X3JlcXVpcmVvbmVncm91cCddID0gJ1JlcXVpcmUgbWVtYmVyc2hpcCBpbiBhdGxlYXN0IG9uZSBncm91cCc7CiRsYW5nWydiYWNrJ10gPSAnQXRnYWwnOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJ2xhdWthcyAlcyB5cmEgcHJpdmFsb21hcyc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnTWFyayByZXF1aXJlZCBmaWVsZHMgd2l0aCc7CiRsYW5nWydyZXF1aXJlZGZpZWxkY29sb3InXSA9ICdIaWxpdGUgcmVxdWlyZWQgZmllbGRzIGluJzsKJGxhbmdbJ25leHQnXSA9ICdLaXRhcyc7CiRsYW5nWydlcnJvcl9ncm91cGV4aXN0cyddID0gJ0dydXDElyB0b2tpdSBwYXZhZGluaW11IGphdSB5cmEnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdCxat0aW5hcyc7CiRsYW5nWydvcHRpb25hbCddID0gJ0xhaXN2YWkgcGFzaXJlbmthbWFzJzsKJGxhbmdbJ29mZiddID0gJ0kmc2Nhcm9uO2p1bmd0YSc7CiRsYW5nWydzaXplJ10gPSAnRHlkaXMnOwokbGFuZ1snc2l6ZWNvbW1lbnQnXSA9ICc8YnIvPihNYXhpbXVtIHNpemUgb2YgYW55IG9uZSBkaW1lbnNpb24gb2YgdGhlIGltYWdlIGluIHBpeGVscyknOwokbGFuZ1snbGVuZ3RoJ10gPSAnSWxnaXMnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oY2hhcnMgaW4gdGhlIHRleHQgaW5wdXQpJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdEcm9wZG93biBvcHRpb25zLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuICBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3JhZGlvb3B0aW9ucyddID0gJ1JhZGlvYnV0dG9uIGxhYmVscywgc2VwYXJhdGVkIGJ5IGxpbmUgYnJlYWtzLiBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfdHlwZSddID0gJ1RpcGFzJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXBhcyc7CiRsYW5nWydmaWVsZHN0YXR1cyddID0gJ0xhdWtlbGlvIHN0YXR1c2FzJzsKJGxhbmdbJ3VzZWRpbmxvc3R1biddID0gJ0FzayBpbiBMb3N0PGJyLz5Vc2VybmFtZSc7CiRsYW5nWyd0ZXh0J10gPSAnVGVrc3Rhcyc7CiRsYW5nWydjaGVja2JveCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ211bHRpc2VsZWN0J10gPSAnTXVsdGkgU2VsZWN0IExpc3QnOwokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW8gQnV0dG9ucyc7CiRsYW5nWydpbWFnZSddID0gJ1BhdmVpa3NsaXVrYXMnOwokbGFuZ1snZW1haWwnXSA9ICdFLiBwYSZzY2Fyb247dG8gYWRyZXNhcyc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHRhcmVhJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICdTdmVpa2knOwokbGFuZ1snbG9nb3V0J10gPSAnQXRzaWp1bmd0aSc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAnTmF1ZG90aSAmc2Nhcm9uO2lvcyBncnVwxJdzIHZhcmTEhSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdQYWtlaXN0aSBtYW5vIG51c3RhdHltdXMnOwokbGFuZ1snZXJyb3JfbG9naW5mYWlsZWQnXSA9ICdOZXBhdnlrbyBwcmlzaWp1bmd0aTogbmV0ZWlzaW5naSBuYXVkb3Rvam8gdmFyZGFzIGFyYmEgc2xhcHRvxb5vZGlzJzsKJGxhbmdbJ2xvZ2luJ10gPSAnUHJpc2lqdW5ndGknOwokbGFuZ1sncHJvbXB0X3NpZ25pbl9idXR0b24nXSA9ICdQcmlzaWp1bmdpbW8gbXlndHVrbyBldGlrZXTElyc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdOYXVkb3Rvam8gdmFyZGFzJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0UuIHBhJnNjYXJvbjt0byBhZHJlc2FzJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ1NsYXB0YcW+b2Rpcyc7CiRsYW5nWydwcm9tcHRfcmVtZW1iZXJtZSddID0gJ1ByaXNpbWluayBtYW5lJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnUmVnaXN0cnVvdGlzJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnVcW+bWlyJnNjYXJvbjtvdGUgc2xhcHRhxb5vZMSvPyc7CiRsYW5nWydsb3N0dXNlcm5hbWUnXSA9ICdVxb5taXImc2Nhcm9uO290ZSBwcmlzaWp1bmdpbW8gZGV0YWxlcz8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdOdW1hdHl0aSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsb25hcyc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdJbmZvcm1hY2lqYSBhcGllICZzY2Fyb247xK8gbmF1ZG90b2rEhSBuZXJhc3RhJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1ldGFrZW4nXSA9ICdOYXVkb3Rvam8gdmFyZGFzICglcykgamF1IHlyYSBuYXVkb2phbWFzJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdVc2UgU01UUCB0byB2YWxpZGF0ZSBlbWFpbCBhZGRyZXNzZXM/JzsKJGxhbmdbJ3Byb21wdF9taW5wd2xlbiddID0gJ01pbmltdW0gUGFzc3dvcmQgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ01heGltdW0gUGFzc3dvcmQgTGVuZ3RoJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ01pbmltYWx1cyBuYXVkb3Rvam8gdmFyZG8gaWxnaXMnOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnTWF4aW11bSBVc2VybmFtZSBMZW5ndGgnOwokbGFuZ1sncHJvbXB0X3Nlc3Npb250aW1lb3V0J10gPSAnU2Vzc2lvbiBUaW1lb3V0IChzZWNvbmRzKSc7CiRsYW5nWydwcm9tcHRfY29va2lla2VlcGFsaXZlJ10gPSAnVXNlIGNvb2tpZXMgdG8ga2VlcCBsb2dpbnMgYWxpdmUnOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdBbGxvdyBFbWFpbCBSZWdpc3RyYXRpb24nOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ051bWF0eXRhIGdydXDElyBuYXVqYW0gbmF1ZG90b2p1aSc7CiRsYW5nWydjaGFuZ2VzZXR0aW5nc190ZW1wbGF0ZSddID0gJ051c3RhdHltxbMga2VpdGltbyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ1NsYXB0YcW+b2TFvmlhaSBuZXN1dGFtcGEnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnTmV0ZWlzaW5nYXMgbmF1ZG90b2pvIHZhcmRhcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdOZXRlaXNpbmdhcyBzbGFwdGHFvm9kaXMnOwokbGFuZ1snZWRpdHVzZXInXSA9ICdSZWRhZ3VvdGkgbmF1ZG90b2phJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnR2FsaW9qYW50aXMnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdOYXVkb3Rvam8gdmFyZGFzJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1c2FzJzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJyZTY2Fyb247aXMgbmF1ZG90b2phcyBuZXByaWtsYXVzbyBqb2tpYWkgZ3J1cGVpJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICdOxJdyYSBzxIV2eWJpxbMnOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdBdHRlbXB0IHRvIGltcG9ydCBkdXBsaWNhdGUgcHJvcGVydGllcyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZlcnTElyc7CiRsYW5nWydncm91cHMnXSA9ICdHcnVwxJdzJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdTYXZ5YsSXcyc7CiRsYW5nWydwcm9wbmFtZSddID0gJ1NhdnlixJdzIHZhcmRhcyc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdTYXZ5YsSXcyB2ZXJ0xJcnOwokbGFuZ1snYWRkJ10gPSAnUHJpZMSXdGknOwokbGFuZ1snaGlzdG9yeSddID0gJ0lzdG9yaWphJzsKJGxhbmdbJ2VkaXQnXSA9ICdLZWlzdGknOwokbGFuZ1snZXhwaXJlcyddID0gJ051c3RvamEgZ2FsaW90aSc7CiRsYW5nWydzcGVjaWZ5X2RhdGUnXSA9ICdTcGVjaWZ5IERhdGUnOwokbGFuZ1snMTJocnMnXSA9ICcxMiBIb3Vycyc7CiRsYW5nWycyNGhycyddID0gJzI0IEhvdXJzJzsKJGxhbmdbJzQ4aHJzJ10gPSAnNDggSG91cnMnOwokbGFuZ1snMXdlZWsnXSA9ICcxIFdlZWsnOwokbGFuZ1snMndlZWtzJ10gPSAnMiBXZWVrcyc7CiRsYW5nWycxbW9udGgnXSA9ICcxIE1vbnRoJzsKJGxhbmdbJzNtb250aHMnXSA9ICczIE1vbnRocyc7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiBNb250aHMnOwokbGFuZ1snMXllYXInXSA9ICcxIFllYXInOwokbGFuZ1snbmV2ZXInXSA9ICdOaWVrYWRhJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ01vZHVsaXMgaW5zdGFsaXVvdGFzIHPEl2ttaW5nYWkuPGJyLz5CZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24uICBBZGRpdGlvbmFsbHksIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gIElmIGluc3RhbGxlZCwgdmFsaWRhdGlvbiBvZiBhIGNhcHRjaGEgaW1hZ2Ugd2lsbCBiZSByZXF1aXJlZCBpbiBhZGRpdGlvbiB0byB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ2luLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGJydXRlIGZvcmNlIGF0dGFja3MuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBub2NhcHRjaGEgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGV2ZW4gaWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZC4mcXVvdDsnOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdTbGFwdGHFvm9kaXMnOwokbGFuZ1sncmVwZWF0cGFzc3dvcmQnXSA9ICdTbGFwdGHFvm9kaXMsIGRhciBrYXJ0xIUnOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ0dydXDElyB0b2tpdSBwYXZhZGluaW11IGphdSB5cmEnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnUmVkYWd1b3RpIGdydXDEmSc7CiRsYW5nWydzdWJtaXQnXSA9ICdQYXRlaWt0aSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBdCZzY2Fyb247YXVrdGknOwokbGFuZ1snZGVsZXRlJ10gPSAnVHJpbnRpJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnQXJlIHlvdSBzdXJlIHRoaXMgaXMgdGhlIHByb3BlciBzZXR0aW5ncyBmb3IgdGhpcyBncm91cD9cblR1cm5pbmcgYSBwcm9wZXJ0eSBvZmYgd2lsbCBub3QgZGVsZXRlIGFueSBlbnRyaWVzIGluIHRoZSBwcm9wZXJ0aWVzIHRhYmxlIGZvciB0aGlzIGdyb3VwL3VzZXIuICBUaGV5IHdpbGwgbWVyZWx5IGJlIHVuYXZhaWxhYmxlLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnQXIgasWrcyDEr3NpdGlraW7EmXMsIGthZCBub3JpdGUgaSZzY2Fyb247dHJpbnRpICZzY2Fyb247acSFIGdydXDEmT8/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3Byb3AnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29tcGxldGVseSBkZWxldGUgdGhpcyBwcm9wZXJ0eT9cbkRvaW5nIHNvIHdpbGwgYWxzbyBlcmFzZSBhbnkgdXNlciBlbnRyaWVzIGZvciB0aGlzIHByb3BlcnR5Lic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdJbnN1ZmZpY2llbnQgUGFyYW1ldGVycyc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ25hbWUnXSA9ICdWYXJkYXMnOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdQcm9ibGVtIGFkZGluZyBwcm9wZXJ0eSc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXByZWxuJ10gPSAnUHJvYmxlbSBhZGRpbmcgZ3JvdXAgcmVsYXRpb24nOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwJ10gPSAnUHJvYmxlbSBhZGRpbmcgZ3JvdXAnOwokbGFuZ1snZXJyb3JfY2FudGFzc2lnbnVzZXInXSA9ICdQcm9ibGVtIGFkZGluZyBhIHVzZXIgdG8gYSBncm91cCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmxlbSBkZWxldGluZyBhIHByb3BlcnR5JzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnRS4gcGEmc2Nhcm9uO3RvIGFkcmVzYXMgbmVyYXN0YXMnOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ05vIHdyaXRlIHBlcm1pc3Npb24gdG8gZGVzdGluYXRpb24gZGlyZWN0b3J5JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbXMnXSA9ICdOZXRlaXNpbmdpIHBhcmFtZXRyYWknOwokbGFuZ1snZXJyb3Jfbm9ncm91cHMnXSA9ICdKb2tpYSBncnVwxJcgbmVyYXN0YSc7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ1ByaXRhaWt5dGknOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHJhcyc7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAnVXNlcm5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQXByYSZzY2Fyb247eW1hcyc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdHcnVwxJdzIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ1ByaXNpanVuZ2ltYXMgYXRtZXN0YXMnOwokbGFuZ1snZXJyb3InXSA9ICdLbGFpZGEnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdQcmlkxJd0aSBncnVwxJknOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnR1b3RpIGdydXDEmSc7CiRsYW5nWydhZGR1c2VyJ10gPSAnUHJpZMSXdGkgbmF1ZG90b2rEhSc7CiRsYW5nWyd1c2Vyc2ZvdW5kJ10gPSAnVXNlcnMgZm91bmQgdGhhdCBtYXRjaCB0aGUgY3JpdGVyaWEnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwxJcnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdQYXNpcmlua3RpIGdydXDEmSc7CiRsYW5nWydyZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdSZWdpc3RyYWNpam9zICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdBdHNpanVuZ2ltbyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snbG9naW5fdGVtcGxhdGUnXSA9ICdQcmlzaWp1bmdpbW8gJnNjYXJvbjthYmxvbmFzJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnTnVzdGF0eW1haSc7CiRsYW5nWyd1c2VycyddID0gJ05hdWRvdG9qYWknOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRnJvbnRlbmQgbmF1ZG90b2rFsyB0dmFya3ltYXMnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBbGxvdyB1c2VycyB0byBsb2cgaW4gdG8gdGhlIGZyb250ZW5kIG9mIHlvdXIgc2l0ZSc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnTnVtYXR5dGFzaXMgcHJpZSZzY2Fyb247YWtpbmlzIHB1c2xhcGlzJzsKJGxhbmdbJ2xhc3RhY2Nlc3NlZHBhZ2UnXSA9ICdMYXN0IGFjY2Vzc2VkIHBhZ2UnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnS2l0YXMgcHVzbGFwaXM6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnxK52ZXNraXRlIHRla3N0xIUgcGF2ZWlrc2xpdWt1aSc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3RpdGxlX2ZvcmdvdHB3J10gPSAnR2xlbXQgcGFzc29yZCc7CiRsYW5nWydpbXBvcnRfZGVsZXRlZHVzZXInXSA9ICdTbGV0dGV0IGJydWtlciAlcyc7CiRsYW5nWydlbmNyeXB0ZWQnXSA9ICdLcnlwdGVydCc7CiRsYW5nWydpbmZvX2Nvb2tpZW5hbWUnXSA9ICdPbSBzYXR0LCAiaHVzayBtZWciIGZ1bmtzam9uYWxpdGV0ZW4gdmlsbCBibGkgYWt0aXZlcnQuIERldHRlIGVyIHRpbHN2YXJlciBjb29raWUgaG9sZCBpIGxpdmUgZnVua3Nqb25lbiwgbWVuIHZhcmVyIG9wcCB0aWwgZXR0IMOlci4nOwokbGFuZ1snbXNnX3VzZXJuYW1lX3JlYWRvbmx5J10gPSAnQXV0ZW50aXNlcmluZ3MgZm9yYnJ1a2VyZW4gdGlsbGF0ZXIgaWtrZSBlbmRyaW5nIGF2IGJydWtlcm5hdm5ldCBmb3IgZGVubmUga29udG9lbic7CiRsYW5nWydtc2dfcGFzc3dvcmRfcmVhZG9ubHknXSA9ICdBdXRlbnRpc2VyaW5ncyBmb3JicnVrZXJlbiB0aWxsYXRlciBpa2tlIGVuZHJpbmcgYXYgcGFzc29yZGV0IGZvciBkZW5uZSBrb250b2VuJzsKJGxhbmdbJ3Byb21wdF9ub3JtYWxsb2dpbiddID0gJ0RpcmVrdGUgaW5ubG9nZ2luZyc7CiRsYW5nWydtb3ZlX3VwJ10gPSAnZmx5dHQgb3BwJzsKJGxhbmdbJ21vdmVfZG93biddID0gJ2ZseXR0IG5lZCc7CiRsYW5nWyd0aXRsZV9wcm9wbW9kdWxlJ10gPSAnRGVubmUgZWdlbnNrYXBlbiBlciBvcHByZXR0ZXQgYXYgZW4gbW9kdWwsIG9nIGthbiBpa2tlIHJlZGlnZXJlcyc7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnSWtrZSB0aWxnamVuZ2VsaWcnOwokbGFuZ1sncHJvbXB0X2RmbHRfY2hlY2tlZCddID0gJ1NvbSBzdGFuZGFyZCwgYsO4ciBkZXR0ZSBmZWx0ZXQgdsOmcmUgYXZrcnlzc2V0JzsKJGxhbmdbJ29wZXJhdGlvbl9jb21wbGV0ZWQnXSA9ICdIYW5kbGluZyBmdWxsZsO4cnQnOwokbGFuZ1snbWVtYmVycyddID0gJ01lZGxlbW1lcic7CiRsYW5nWyd2aWV3X2ZpbHRlciddID0gJ1ZpcyBmaWx0ZXInOwokbGFuZ1snZGF0YSddID0gJ0RhdGEnOwokbGFuZ1snYXBwbGllZCddID0gJ0JydWt0JzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfY2hhbmdldXNlcm5hbWUnXSA9ICdUaWxsYXQgw6UgZW5kcmUgYnJ1a2VybmF2bic7CiRsYW5nWydpbmZvX2FsbG93X2NoYW5nZXVzZXJuYW1lJ10gPSAnT20gYWt0aXZlcnQsIHPDpSB2aWwgYnJ1a2VyZSB0aWxsYXRlcyDDpSBlbmRyZSBzaXR0IGJydWtlcm5hdm4gb2cgYW5kcmUgaW5uc3RpbGxpbmdlcic7CiRsYW5nWyd0ZW1wbGF0ZV9zYXZlZCddID0gJ01hbCBsYWdyZXQnOwokbGFuZ1sndGVtcGxhdGVfcmVzZXRkZWZhdWx0cyddID0gJ01hbCB0aWxiYWtlc3RpbHQgdGlsIHN0YW5kYXJkJzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ0lubnN0aWxsaW5nZXInOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ01hbGVyJzsKJGxhbmdbJ2VuYWJsZV9jYXB0Y2hhJ10gPSAnQWt0aXZlciBjYXB0Y2hhIHDDpSBpbm5sb2dnaW5nc2tqZW1hZXQnOwokbGFuZ1snaW5mb19lbmFibGVfY2FwdGNoYSddID0gJ0h2aXMgYnJ1a2VyZW4gaWtrZSBlciBsb2dnZXQgaW5uLCBvZyBtb2R1bGVucyBwcmVmZXJhbnNlciBlciBzYXR0IHRpbCDDpSB2aXNlIGlubmxvZ2dpbmdza2plbWEsIHN0eXJlciBkZXR0ZSBhbHRlcm5hdGl2ZXQgb20gZW4gY2FwdGNoYSB2aXNlcyBww6UgaW5ubG9nZ2luZ3NramVtYWV0LiAgICAgSHZpcyBjYXB0Y2hhIGVyIHRpbGdqZW5nZWxpZyc7CiRsYW5nWydwYWdldHlwZV91bmF1dGhvcml6ZWQnXSA9ICdEdSBlciBpa2tlIGF1dG9yaXNlcnQgdGlsIMOlIHNlIGRldHRlIGlubmhvbGRldCc7CiRsYW5nWydpbmZvX2NvbnRlbnRwYWdlX2dyb3VwbGlzdCddID0gJ0FuZ2kgZW4gbGlzdGUgb3ZlciBGRVUtZ3J1cHBlciBzb20ga2FuIGhhIHRpbGdhbmcgdGlsIGRlbm5lIHNpZGVuLiBWZWQgw6UgaWtrZSB2ZWxnZSBub2VuIGdydXBwZXIgc8OlIHZpbCBlbmh2ZXIgYnJ1a2VyIHNvbSBlciBsb2dnZXQgaW5uIG1lZCBGRVUgZsOlIHRpbGxhdGVsc2UgdGlsIMOlIHNlIHNpZGVuJzsKJGxhbmdbJ3BhZ2V0eXBlX3NldHRpbmdzJ10gPSAnSW5uc3RpbGxpbmdlciBmb3IgQmVza3l0dGVkZSBzaWRlcic7CiRsYW5nWydwYWdldHlwZV9ncm91cHMnXSA9ICdUaWxsYXR0ZSBncnVwcGVyJzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfZ3JvdXBzJ10gPSAnVmVsZyBncnVwcGVyIHNvbSBoYXIgKHNvbSBzdGFuZGFyZCkgbG92IHRpbCDDpSB2aXNlIGJlc2t5dHRlZGUgc2lkZXIuIEVuIHJlZGFrdMO4ciBtZWQgIkJlaGFuZGxlIGFsdCBJbm5ob2xkIi10aWxsYXRlbHNlIGthbiBvdmVyc3R5cmUgZGV0dGUgZm9yIGh2ZXIgc2lkZSc7CiRsYW5nWydwYWdldHlwZV9hY3Rpb24nXSA9ICdIYW5kbGluZyBmb3IgdXRpbHN0cmVra2VsaWcgdGlsZ2FuZyc7CiRsYW5nWydpbmZvX3BhZ2V0eXBlX2FjdGlvbiddID0gJ0FuZ2kgYXRmZXJkIGZvciBwZXJzb25lciBzb20gw6VwbmVyIGRlbm5lIHNpZGVuIHV0ZW4gdGlsc3RyZWtrZWxpZyB0aWxsYXRlbHNlLiBEdSBrYW4gZW50ZW4gb21kaXJpZ2VyZSB0aWwgZW4gYmVzdGVtdCBzaWRlLCBlbGxlciB2aXNlIGlubmxvZ2dpbmdza2plbWFldCc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAnVmlzIGlubmxvZ2dpbmdza2plbWEnOwokbGFuZ1sncmVkaXJlY3QnXSA9ICdPbWRpcmlnZXIgdGlsIGVuIHNpZGUnOwokbGFuZ1sncGFnZXR5cGVfcmVkaXJlY3R0byddID0gJ09tZGlyaWdlciB0aWwnOwokbGFuZ1snaW5mb19wYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnQW5naSBzaWRlbiDDpSBvbWRpcmlnZXJlIHRpbC4gSHZpcyBkdSB2ZWxnZXIgSW5nZW4sIG9nIGhhbmRsaW5nZW4gZXIgc2F0dCB0aWwgIm9tZGlyaWdlcmUgdGlsIGVuIHNpZGUiIHPDpSB2aWwgYnJ1a2VyZW4gYmxpIHByZXNlbnRlcnQgbWVkIGVuIG1lbGRpbmcgc29tIGluZGlrZXJlciBhdCBkZSBpa2tlIGhhciB0aWxnYW5nIHRpbCBzaWRlbic7CiRsYW5nWydwZXJtaXNzaW9ucyddID0gJ1RpbGxhdGVsc2VyJzsKJGxhbmdbJ2ZldV9wcm90ZWN0ZWRfcGFnZSddID0gJ0Jlc2t5dHRldCBpbm5ob2xkJzsKJGxhbmdbJ3Byb21wdF92aWV3cHJvcHMnXSA9ICdWZWxnIGVrc3RyYSBlZ2Vuc2thcGVyIHNvbSBza2FsIHZpc2VzJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaXMnOwokbGFuZ1snaW5mb19pZ25vcmVfdXNlcmlkJ10gPSAnT20gdmFsZ3Qgc8OlIHZpbCBpbXBvcnRydXRpbmVuIGZvcnPDuGtlIMOlIGxlZ2dlIHRpbCBicnVrZXJlIHVhdmhlbmdpZyBhdiBicnVrZXJpZCBrb2xvbm5lbi4gSHZpcyBlbiBicnVrZXIgZWtzaXN0ZXJlciBhbGxlcmVkZSBtZWQgbmF2bmV0IHNvbSBlciBhbmdpdHQgaSBpbXBvcnRmaWxlbiwgdmlsIGVuIGZlaWxtZWxkaW5nIGJsaSBnZW5lcmVydCc7CiRsYW5nWydpZ25vcmVfdXNlcmlkJ10gPSAnSWdub3JlciBVc2VySUQga29sb25uZW4gdmVkIGltcG9ydCc7CiRsYW5nWydleHBvcnRfcGFzc2hhc2gnXSA9ICdFa3Nwb3J0ZXIgcGFzc29yZCBoYXNoIHRpbCBmaWxlbic7CiRsYW5nWydpbmZvX2V4cG9ydF9wYXNzaGFzaCddID0gJ1Bhc3NvcmRldCBoYXNoIGVyIGJhcmUgbnl0dGlnIGh2aXMgcGFzc29yZCBzYWx0IHDDpSBpbXBvcnQtdmVydGVuIGVyIGlkZW50aXNrIG1lZCBla3Nwb3J0LXZlcnRlbic7CiRsYW5nWydlcnJvcl9hZGp1c3RzYWx0J10gPSAnUGFzc29yZCBzYWx0IGthbiBpa2tlIGVuZHJlcyc7CiRsYW5nWydwcm9tcHRfcHdzYWx0J10gPSAnUGFzc29yZCBzYWx0JzsKJGxhbmdbJ2luZm9fcHdzYWx0J10gPSAnRnJvbnRFbmRVc2VycyBzYWx0ZXIgYWxsZSBwYXNzb3JkIG1lZCBkZW5uZSBuw7hra2VsZW4gc29tIGVyIG9wcHJldHRldCB2ZWQgaW5zdGFsbGFzam9uLiBOw6VyIGJydWtlcm5lIGhhciBibGl0dCBsYWd0IHRpbCBkYXRhYmFzZW4gc8OlIGthbiBzYWx0IGlra2UgZW5kcmVzLiBTYWx0ZXQga2FuIHbDpnJlIHRvbXQgZm9yIGVsZHJlIGluc3RhbGxhc2pvbmVyLic7CiRsYW5nWydhZHZhbmNlZF9zZXR0aW5ncyddID0gJ0F2YW5zZXJ0ZSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2luZm9fc2Vzc2lvbnRpbWVvdXQnXSA9ICdBbmdpIGFudGFsbCBzZWt1bmRlciBmw7hyIGVuIGluYWt0aXYgYnJ1a2VyIGF1dG9tYXRpc2sgYmxpciBsb2dnZXQgdXQgYXYgbmV0dHN0ZWRldCc7CiRsYW5nWydwcm9tcHRfZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdCcnVrZXIgdXRsw7hwcyBpbnRlcnZhbGwnOwokbGFuZ1snaW5mb19leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ0FuZ2kgZW4gdmVyZGkgKGkgc2VrdW5kZXIpIHNvbSB2aXNlciBodm9yIG9mdGUgc3lzdGVtZXQgc2thbCB0dmluZ2UgYnJ1a2VyZSBodm9yIHNlc2pvbmVuIGhhciB1dGzDuHB0IMOlIGJsaSBsb2dnZXQgdXQuIERldHRlIGVyIGVuIG9wdGltYWxpc2VyaW5nIGZvciDDpSBsYWdyZSBkYXRhYmFzZXNww7hycmluZ2VyLiBEZXJzb20gc2F0dCB0b210IGVsbGVyIHNhdHQgdGlsIDAgLSB1dGzDuHAgdmlsIGJsaSB1dGbDuHJ0IHDDpSBodmVyIGZvcmVzcMO4cnNlbC4nOwokbGFuZ1snbXNnX3NldHRpbmdzY2hhbmdlZCddID0gJ0RpbmUgaW5uc3RpbGxpbmdlciBibGUgdmVsbHlra2V0IGxhZ3JldCc7CiRsYW5nWydmb3JjZWRsb2dvdXR0YXNrX2Rlc2MnXSA9ICdUdmluZyBicnVrZXJlIHRpbCDDpSBsb2dnZSB1dCBww6UgZ2l0dGUgaW50ZXJ2YWxsZXInOwokbGFuZ1sncHJvbXB0X2ZvcmNlbG9nb3V0X3RpbWVzJ10gPSAnVGlkZXIgZm9yIHR2dW5nZXQgdXRsb2dnaW5nJzsKJGxhbmdbJ2luZm9fZm9yY2Vsb2dvdXRfdGltZXMnXSA9ICdBbmdpIGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgbWVkIHRpZGVyIHNvbSBISDpNTSxISDpNTSBodm9yIGJydWtlcm5lIHZpbCBibGkgdHZhbmdzIHV0bG9nZ2V0LiBNZXJrLCBicnVrZXIgZGV0dGUgcHN1ZWRvY3JvbiBtZWthbmlzbWVuIHPDpSBkdSBtw6UgdsOmcmUgc2lra2VyIHDDpSBhdCBkZSB0aWRlbmUgb3BwZ2l0dCBoZXIgdmlsIGZhbGxlIHJpbWVsaWcgc2FtbWVuIG1lZCAicHNldWRvY3JvbiBncmFudWxhcml0ZXQiIG9nIGF0IG5vayBmb3Jlc3DDuHJzbGVyIHZpbCBvcHBzdMOlIHRpbCBkaXR0IG5ldHRzdGVkIGZvciDDpSBzaWtyZSBhdCBwc2V1ZG9jcm9uIHV0ZsO4cmVzLic7CiRsYW5nWydwcm9tcHRfZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSddID0gJ0Vrc2tsdWRlcmUgYnJ1a2VyZSBzb20gaGFyIHbDpnJ0IGFrdGl2ZSBpIDxlbT4obWludXR0ZXIpPC9lbT4nOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF9zZXNzaW9uYWdlJ10gPSAnSHZpcyBzcGVzaWZpc2VydCwgdmlsIGFsbGUgYnJ1a2VyZSBzb20gaGFyIHbDpnJ0IGFrdGl2ZSBpIGRldHRlIGFudGFsbGV0IHNla3VuZGVyIGlra2UgYmxpIHR2YW5ncyB1dGxvZ2dldCc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZSddID0gJ0VyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBicnVrZXJlbiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZWV4dGVuc2lvbiddID0gJ0RlbiBvcHBsYXN0ZWRlIGZpbGVuIHBhc3NlciBpa2tlIHRpbCBsaXN0ZW4gbWVkIHRpbGxhdHRlIGZpbHR5cGVyJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdBbGxlIGRhdGEgYXNzb3NpZXJ0IG1lZCBGcm9udEVuZFVzZXJzIG1vZHVsZW4gaGFyIGJsaXR0IHNsZXR0ZXQnOwokbGFuZ1snaW5mb19lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnT20gc2zDpXR0IHDDpSwgc8OlIHZpbCBkZW5uZSBtb2R1bGVuIGx5dHRlIHDDpSBoYW5kbGluZ2VyIGZyYSBFY29tbWVyY2Ugc3VpdGVuLiBEZSBmw7hsZ2VuZGUgaW5uc3RpbGxpbmdlbmUgaGFyIGt1biBlZmZla3Qgb20gZGVubmUgaW5uc3RpbGxpbmdlbiBlciBww6VzbMOldHQuJzsKJGxhbmdbJ3Byb21wdF9lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnTHl0dCBww6UgT3JkZXIgaGFuZGxpbmdlcic7CiRsYW5nWydpbmZvX3BhaWRyZWdfc2V0dGluZ3MnXSA9ICdEZSBmw7hsZ2VuZGUgaW5uc3RpbGxpbmdlbmUgZ2plbGRlciBiYXJlIGh2aXMgZHUgYnJ1a2VyIFNlbHZyZWdpc3RyZXJpbmcoU2VsZiBSZWdpc3RyYXRpb24pIG9nIHRpbGxhdGVyIEJldGFsdCBww6VtZWxkaW5nJzsKJGxhbmdbJ25vbmUnXSA9ICdJbmdlbic7CiRsYW5nWydkZWxldGVfdXNlciddID0gJ1NsZXR0IGJydWtlcic7CiRsYW5nWydleHBpcmVfdXNlciddID0gJ1RpZHN1dGzDuHAgYnJ1a2VyJzsKJGxhbmdbJ3Byb21wdF9hY3Rpb25fb3JkZXJjYW5jZWxsZWQnXSA9ICdIYW5kbGluZyDDpSB1dGbDuHJlIG7DpXIgZW4gYWJvbm5lbWVudGJlc3RpbGxpbmcgZXIga2Fuc2VsbGVydCc7CiRsYW5nWydwcm9tcHRfYWN0aW9uX29yZGVyZGVsZXRlZCddID0gJ0hhbmRsaW5nIMOlIHV0ZsO4cmUgbsOlciBlbiBhYm9ubmVtZW50b3JkcmUgZXIgc2xldHRldCc7CiRsYW5nWydlY29tbWVyY2Vfc2V0dGluZ3MnXSA9ICdFY29tbWVyY2UgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydzZWN1cmVmaWVsZG1hcmtlciddID0gJ1Npa2tlcnQgZmVsdCBtYXJrw7hyJzsKJGxhbmdbJ3NlY3VyZWZpZWxkY29sb3InXSA9ICdTaWtrZXJ0IGZlbHQgZmFyZ2UnOwokbGFuZ1sncHJvbXB0X2VuY3J5cHQnXSA9ICdMYWdyZSBkaXNzZSBkYXRhIGtyeXB0ZXJ0IGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2Vycm9yX25vdHN1cHBvcnRlZCddID0gJ0RlbiB2YWxndGUgb3Bzam9uZW4gZXIgaWtrZSBzdMO4dHRldCBtZWQgZGluIG7DpXbDpnJlbmRlIGtvbmZpZ3VyYXNqb24nOwokbGFuZ1snYXVkaXRfdXNlcl9jcmVhdGVkJ10gPSAnQnJ1a2VyIGF1dG9tYXRpc2sgb3BwcmV0dGV0JzsKJGxhbmdbJ2luZm9fYXV0b19jcmVhdGVfdW5rbm93biddID0gJ09tIGVuIGJydWtlciBlciBpZGVudGlmaXNlcnQgYXYgZW4gZWtzdGVybiBpZGVudGlmaWthc2pvbnNtb2R1bCwgbWVuIGlra2UgZXIga2plbnQgaSBGcm9udEVuZFVzZXJzIG1vZHVsZW4gLSBza2FsIGRhIGVuIEZFVS1rb250byBvcHByZXR0ZXMgYXV0b21hdGlzaz8nOwokbGFuZ1sncHJvbXB0X2F1dG9fY3JlYXRlX3Vua25vd24nXSA9ICdPcHByZXR0IGF1dG9tYXRpc2sgdWtqZW50ZSBicnVrZXJlJzsKJGxhbmdbJ2Rpc3BsYXlfc2V0dGluZ3MnXSA9ICdWaXNuaW5nc2lubnN0aWxsaW5nZXInOwokbGFuZ1snaW5mb19zdGRfYXV0aF9zZXR0aW5ncyddID0gJ0RlbiBmw7hsZ2VuZGUgaW5uc3RpbGxpbmdlbiBlciBrdW4gZ3lsZGlnIG9tICJJbm5lYnlnZCBpZGVudGlmaWthc2pvbiIgZXIgYmVueXR0ZXQuJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0dW4nXSA9ICfDhSB2ZWxnZSBOZWkgdmkgc2zDpSBhdiBtdWxpZ2hldGVuIGZvciBlbiBicnVrZXIgdGlsIMOlIGJlIG9tIGdsZW10IGlubmxvZ2dpbmdzaW5mb3JtYXNqb24sIHVhdmhlbmdpZyBhdiBhbmRyZSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0cHcnXSA9ICfDhSB2ZWxnZSBOZWkgdmlsIHNsw6UgYXYgbXVsaWdoZXRlbiBmb3IgZW4gYnJ1a2VyIHRpbCDDpSBiZSBvbSB0aWxiYWtlc3RpbGxpbmcgYXYgcGFzc29yZCwgdWF2aGVuZ2lnIGF2IGFuZHJlIGlubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvbXB0X3N1cHBvcnRfbG9zdHVuJ10gPSAnVGlsbGF0IGJydWtlcmUgw6UgYmUgb20gc2l0dCBicnVrZXJuYXZuJzsKJGxhbmdbJ3Byb21wdF9zdXBwb3J0X2xvc3RwdyddID0gJ1RpbGxhdCBicnVrZXJlIMOlIGJlIG9tIHBhc3NvcmRlbmRyaW5nJzsKJGxhbmdbJ2F1dGhfc2V0dGluZ3MnXSA9ICdJZGVudGlmaWthc2pvbnNpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2F1dGhlbnRpY2F0aW9uJ10gPSAnSW5uZWJ5Z2QgaWRlbnRpZmlrYXNqb24nOwokbGFuZ1snYXV0aF9idWlsdGluJ10gPSAnRkVVIFN0YW5kYXJkIGlkZW50aWZpa2Fzam9uJzsKJGxhbmdbJ2F1dGhfbW9kdWxlJ10gPSAnSWRlbnRpZmlrYXNqb25zbW9kdWwvbWV0b2RlJzsKJGxhbmdbJ2luZm9fYXV0aF9tb2R1bGUnXSA9ICdGcm9udGVuZFVzZXJzIG1vZHVsZW4gc3TDuHR0ZXIgc3TDuHR0ZXIgYnJ1ayBhbHRlcm5hdGl2ZSBtZXRvZGVyIGZvciBpZGVudGlmaWthc2pvbiwgbWVkIHZhcmllcmVuZGUgZnVua3Nqb25lci4gTm9lIGZ1bmtzam9uYWxpdGV0IHZpbCBpa2tlIGZ1bmdlcmUgZWxsZXIgdmlsIHbDpnJlIGRlYWt0aXZlcnQgbsOlciBpa2tlIGRlbiBpbm5lYnlnZGUgaWRlbnRpZmlrYXNqb25zbWV0b2RlIGVyIGkgYnJ1ayc7CiRsYW5nWydlcnJvcl91c2VyX25vbnVuaXF1ZV9maWVsZF92YWx1ZSddID0gJ1ZlcmRpZW4gb3BwZ2l0dCBmb3IgJXMgZXIgYWxsZXJlZGUgaSBicnVrIGF2IGVuIGFubmVuIGJydWtlcic7CiRsYW5nWyd1bmlxdWUnXSA9ICdVbmlrJzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZV9maWVsZF92YWx1ZSddID0gJ1ZlcmRpZW4gc29tIGVyIG9wcGdpdHQgZm9yICVzICglcykgZXIgaWtrZSB1bmlrJzsKJGxhbmdbJ3Byb21wdF9mb3JjZV91bmlxdWUnXSA9ICdUdmluZyB2ZXJkaWVyIGZvciBkZW5uZSBlZ2Vuc2thcGVuIHRpbCDDpSB1bmlrIHDDpSB0dmVycyBhdiBhbGxlIGtvbnRvZXInOwokbGFuZ1snaGVscF9yZXR1cm5sYXN0J10gPSAnT20gYmVueXR0ZXQgbWVkIGlubmxvZ2dpbmctIG9nIHV0bG9nZ2luZy1za2plbWFlbmUgdmlsIGRlbm5lIHBhcmFtZXRlciwgb20gZGVuIGVyIHNwZXNpZmlzZXJ0LCBpbmRpa2VyZSBhdCBicnVrZXJlbiBza2FsIHNlbmRlcyB0aWxiYWtlIHRpbCBzaWRlbiAoZXR0ZXIgdXJsKSBzb20gYnJ1a2VyZW4gdmFyIHDDpSBmw7hyIGhhbmRsaW5nZW4gaGVuZHRlLiBEZW5uZSBwYXJhbWV0ZXIgdmlsIG92ZXJzdHlyZSBvbWRpcmlnZXJpbmcgcHJlZmVyYW5zZW5lLCBvZyByZXR1cm50byBwYXJhbWV0ZXJlbi4nOwokbGFuZ1sndGl0bGVfcmVzZXRfc2Vzc2lvbiddID0gJ0lubmxvZ2dpbmdzIHNlc3Npb25zdGlkc3V0bMO4cHNhZHZhcnNlbCc7CiRsYW5nWydtc2dfcmVzZXRfc2Vzc2lvbiddID0gJ0RpbiBpbm5sb2dnaW5nc2Vzc2lvbiBlciBpIGZlcmQgbWVkIMOlIHV0bMO4cGUsIHZlbm5saWdzdCBrbGlrayAgT0sgIGZvciDDpSBiZWtyZWZ0ZSBkaW4gdGlsc3RlZGV2w6ZyZWxzZSBww6UgZGV0dGUgbmV0dHN0ZWRldC4nOwokbGFuZ1snb2snXSA9ICdPSyc7CiRsYW5nWydyZXNldHNlc3Npb25fdGVtcGxhdGUnXSA9ICdUaWxiYWtlc3RpbGwgc2Vzc2lvbnNtYWxlbic7CiRsYW5nWydpbmZvX25hbWUnXSA9ICdEZXR0ZSBlciBmZWx0bmF2bmV0LCBzb20gc2thbCBiZW55dHRlcyBmb3IgYWRyZXNzZXJpbmcgaSBzbWFydHkuIERldCBtw6UgYmVzdMOlIGF2IGt1biBhbGZhbnVtbWVyaXNrZSBib2tzdGF2ZXIgb2cgdW5kZXJzdHJla2VyLic7CiRsYW5nWyd2aXNpdG9yc190YWInXSA9ICdCZXPDuGtlcmUnOwokbGFuZ1snZmV1X2dyb3Vwc19wcm9tcHQnXSA9ICdWZWxnIGVuIGVsbGVyIGZsZXJlIEZFVS1ncnVwcGVyIHNvbSBlciB0aWxsYXR0IMOlIHNlIGRlbm5lIHNpZGVuJzsKJGxhbmdbJ2Vycm9yX211c3RzZWxlY3RfZ3JvdXAnXSA9ICdFbiBncnVwcGUgbcOlIHZlbGdlcyc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdWZWxnIGVuJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICdTdGFydMOlcic7CiRsYW5nWydlbmRfeWVhciddID0gJ1NsdXR0w6VyJzsKJGxhbmdbJ2RhdGUnXSA9ICdEYXRvJzsKJGxhbmdbJ3Byb21wdF90aHVtYm5haWxfc2l6ZSddID0gJ01pbmlhdHlyYmlsZGVzdMO4cnJlbHNlJzsKJGxhbmdbJ09uVXBkYXRlR3JvdXAnXSA9ICdWZWQgZW5kcmluZyBhdiBCcnVrZXJncnVwcGUoVXNlciBHcm91cCknOwokbGFuZ1snZXJyb3JfdG9vbWFueXNlbGVjdGVkJ10gPSAnRm9yIG1hbmdlIGJydWtlcmUgYmxlIHZhbGd0IGZvciBtYXNzZS1oYW5kbGluZ2VyLi4uLiBWZW5ubGlnc3QgcmVkdXNlciBuZWQgdGlsIDI1MCBlbGxlciBtaW5kcmUnOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBzbGV0dGUgZGUgdmFsZ3RlIGJydWtlcm5lPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdTbGV0dGluZyB2YWxndCc7CiRsYW5nWydwcm9tcHRfcmFuZG9tdXNlcm5hbWUnXSA9ICdHZW5lcmVyIGV0IHRpbGZlbGRpZyBicnVrZW5hdm4gdmVkIG9wcHJldHRlbHNlIGF2IG55ZSBicnVrZXJlJzsKJGxhbmdbJ21vbnRocyddID0gJ23DpW5lZGVyJzsKJGxhbmdbJ3Byb21wdF9leHBpcmVhZ2UnXSA9ICdTdGFuZGFyZCBicnVrZXIgdXRsw7hwc3RpZCc7CiRsYW5nWydub3RpZmljYXRpb25fc2V0dGluZ3MnXSA9ICdWYXJzbGluZyBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnRWdlbnNrYXAgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydyZWRpcmVjdGlvbl9zZXR0aW5ncyddID0gJ09tZGlyaWdlcmluZyBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmVsbGUgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydzZXNzaW9uX3NldHRpbmdzJ10gPSAnU2Vzc2lvbiBvZyBjb29raWUgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydmaWVsZF9zZXR0aW5ncyddID0gJ0ZlbHQgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydwcm9wX3RleHRhcmVhX3d5c2l3eWcnXSA9ICdUaWxsYXQgYnJ1ayBhdiB3eXNpd3lnIHDDpSBkZXR0ZSB0ZWtzdG9tcsOlZGV0JzsKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ1JlZGlnZXIgYnJ1a2VyJzsKJGxhbmdbJ25vaW5saW5lJ10gPSAnSWtrZSBicnVrIHNramVtYSBzb20gaW5saW5lJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnS2xpa2sgaGVyIG9tIGR1IGlra2Uga2FuIGh1c2tlIGRpbmUgaW5ubG9nZ2luZ3NkZXRhbGplcic7CiRsYW5nWydpbmZvX2ZvcmdvdHB3J10gPSAnS2xpa2sgaGVyIG9tIGR1IGlra2Uga2FuIGh1c2tlIGRpdHQgcGFzc29yZCc7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJ0tsaWtrIGhlciBmb3Igw6UgbG9nZ2UgdXQnOwokbGFuZ1snaW5mb19jaGFuZ2VzZXR0aW5ncyddID0gJ0tsaWtrIGhlciBmb3Igw6UgZW5kcmUgZGl0dCBwYXNzb3JkIGVsbGVyIGFubmVuIGluZm9ybWFzam9uJzsKJGxhbmdbJ3ZpZXd1c2VyX3RlbXBsYXRlJ10gPSAnVmlzIGJydWtlciBtYWwnOwokbGFuZ1snZXZlbnQnXSA9ICdIZW5kZWxzZSc7CiRsYW5nWydmZXVfZXZlbnRfbm90aWZpY2F0aW9uJ10gPSAnRkVVIEhlbmRlbHNlIHZhcnNlbCc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX2FkZHJlc3MnXSA9ICdWYXJzZWwgZS1wb3N0YWRyZXNzZSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnVmFyc2xpbmcgRS1wb3N0bWFsJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fc3ViamVjdCddID0gJ1ZhcnNsaW5nIEUtcG9zdGVtbmUnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdFLXBvc3R2YXJzbGluZyc7CiRsYW5nWydPbkxvZ2luJ10gPSAnVmVkIGlubmxvZ2dpbmcnOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdWZWQgdXRsb2dnaW5nJzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ1ZlZCB1dGzDuHAgYXYgc2Vzc2lvbic7CiRsYW5nWydPbkNyZWF0ZVVzZXInXSA9ICdWZWQgQnJ1a2VyIG9wcHJldHRldCc7CiRsYW5nWydPbkRlbGV0ZVVzZXInXSA9ICdWZWQgQnJ1a2VyIHNsZXR0ZXQnOwokbGFuZ1snT25VcGRhdGVVc2VyJ10gPSAnVmVkIGVuZHJpbmcgYXYgYnJ1a2VyaW5uc3RpbGxpbmdlcic7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnVmVkIG9wcHJldHRlbHNlIGF2IGJydWtlcmdydXBwZSc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnVmVkIHNsZXR0aW5nIGF2IGJydWtlcmdydXBwZSc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ0Z1bmtzam9uZW4gZm9yIG1pc3RldCBpbm5sb2dnaW5nc2RldGFsamVyIGVyIGZ1bGxmw7hydC4gVmkgaGFyIGZ1bm5ldCBldCB1bmlrdCBicnVrZXJuYXZuIHNvbSBwYXNzZXIgdGlsIGRlIGRldGFsamVuZSBkdSBoYXIgb3BwZ2l0dC4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ0RpdHQgYnJ1a2VybmF2biBlcic7CiRsYW5nWydsb3N0dW5jb25maXJtX3Bvc3Rtc2cnXSA9ICdWaSBhbmJlZmFsZXIgYXQgZHUgdGFyIHZhcmUgcMOlIGRlbm5lIGluZm9ybWFzam9uZW4gcMOlIGVuIHNpa2tlciwgbWVuIHRpbGdqZW5nZWxpZyBwbGFzcy4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX2NoYW5nZV9zZXR0aW5ncyddID0gJ1BhZ2VJRC9BbGlhcyDDpSBob3BwZSB0aWwgZXR0ZXIgZW5kcmluZyBhdiBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl92ZXJpZnlfY29kZSddID0gJ1BhZ2VJRC9BbGlhcyDDpSBob3BwZSB0aWwgZXR0ZXIga29kZSBiZWtyZWZ0ZWxzZSAqJzsKJGxhbmdbJ2xvc3R1bl9kZXRhaWxzX3RlbXBsYXRlJ10gPSAnR2xlbXQgQnJ1a2VybmF2biBkZXRhbGptYWwnOwokbGFuZ1snbG9zdHVuX2NvbmZpcm1fdGVtcGxhdGUnXSA9ICdHbGVtdCBCcnVrZXJuYXZuIGJla3JlZnRlbHNlc21hbCc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0ZlaWw6IE1lcmUgZW5uIGVuIGJydWtlcmtvbnRvIHBhc3NlciBtZWQgZGUgc3Blc2lmaXNlcnRlIGVnZW5za2FwZXInOwokbGFuZ1snZXJyb3JfY2FudGZpbmR1c2VyJ10gPSAnRmVpbDogS3VubmUgaWtrZSBmaW5uZSBlbiBicnVrZXIgc29tIHBhc3Nlcic7CiRsYW5nWydlcnJvcl9ncm91cG5vdGZvdW5kJ10gPSAnRmVpbDogS3VubmUgaWtrZSBmaW5uZSBlbiBncnVwcGUgbWVkIGRldCBuYXZuZXQnOwokbGFuZ1sncmVhZG9ubHknXSA9ICdTa3JpdmViZXNreXR0ZXQnOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ0JydWtlciBNYW5pcHVsYXRvciBLbGFzc2UnOwokbGFuZ1snYWRtaW5fbG9nb3V0J10gPSAnTG9nZ2V0IHV0IGF2IGFkbWluaXN0cmF0b3InOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ1ZpcyBrdW4gZGUgc29tIGVyIGlubmxvZ2dldCc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnTG9nZyB1dCBkZW5uZSBicnVrZXJlbic7CiRsYW5nWyd1c2VyX3Byb3BlcnRpZXMnXSA9ICdCcnVrZXIgZWdlbnNrYXBlcic7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0JydWtlciBoaXN0b3JpZSc7CiRsYW5nWydleHBvcnQnXSA9ICdFa3Nwb3J0ZXInOwokbGFuZ1snY2xlYXInXSA9ICdUw7htJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0Vrc3BvcnRlciBCcnVrZXJoaXN0b3JpZSB0aWwgQVNDSUkgZmlsIHNvbSBlciBtaW5zdCc7CiRsYW5nWydwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeSddID0gJ1TDuG0gQnJ1a2VyaGlzdG9yaWUgb3BwZsO4cmluZ2VyIHNvbSBlciBtaW5zdCc7CiRsYW5nWyd0aXRsZV9sb3N0dXNlcm5hbWUnXSA9ICdHbGVtdCBkaW5lIGlubmxvZ2dpbmdzZGV0YWxqZXI/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0Vrc3BvcnRlciBncnVwcGVkZWZpbmlzam9uIChvZyBlZ2Vuc2thcGVyKSB0aWwgWE1MJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5bWFpbnRlbmFuY2UnXSA9ICdCZWhhbmRsZSBCcnVrZXJoaXN0b3JpZSc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laSc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICdhdic7CiRsYW5nWydkYXRlX2FsbHJlY29yZHMnXSA9ICcqKiBJbmdlbiBncmVuc2UgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAnRW4gdGltZSBnYW1sZSc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICdTZWtzIHRpbWVyIGdhbWxlJzsKJGxhbmdbJ2RhdGVfdHdlbHZlaG91cm9sZCddID0gJ1RvbHYgdGltZXIgZ2FtbGUnOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICdFbiBkYWcgZ2FtbGUnOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnRW4gdWtlIGdhbWxlJzsKJGxhbmdbJ2RhdGVfdHdvd2Vla3NvbGQnXSA9ICdUbyB1a2VyIGdhbWxlJzsKJGxhbmdbJ2RhdGVfb25lbW9udGhvbGQnXSA9ICdFbiBtw6VuZWQgZ2FtbGUnOwokbGFuZ1snZGF0ZV90aHJlZW1vbnRoc29sZCddID0gJ1RyZSBtw6VuZWRlciBnYW1sZSc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ1Nla3MgbcOlbmVkZXIgZ2FtbGUnOwokbGFuZ1snZGF0ZV9vbmV5ZWFyb2xkJ10gPSAnRXR0IMOlciBnYW1sZSc7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICdHcnVwcGVyaW5nIG9nIFNvcnRlcmluZyc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2ZvdW5kJ10gPSAnT3BwZsO4cmluZ2VyIHNvbSBwYXNzZXIga3JpdGVyaWV0JzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnU3lua2VuZGUgYnJ1a2VybmF2bic7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfYXNjJ10gPSAnU3RpZ2VuZGUgYnJ1a2VybmF2bic7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnU3lua2VuZGUgRGF0byc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdTdGlnZW5kZSBEYXRvJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ1N5bmtlbmRlIEhlbmRlbHNlc3R5cGUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdTdGlnZW5kZSBIZW5kZWxzZXN0eXBlJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfZGVzYyddID0gJ1N5bmtlbmRlIElQLWFkcmVzc2UnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19hc2MnXSA9ICdTdGlnZW5kZSBJUC1hZHJlc3NlJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdJa2tlIG5vZSBoaXN0b3Jpc2sgZnVubmV0JzsKJGxhbmdbJ3Jlc2V0J10gPSAnVGlsYmFrZXN0aWxsJzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0dydXBwZXIgZXR0ZXIgSVAtYWRyZXNzZSc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0hlbmRlbHNlc3R5cGUgRmlsdGVyJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ1ZpcyBrdW4gaGVuZGVsc2VyIHNvbSBlciBtaW5kcmUgZW5uOic7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnU2lkZWdyZW5zZSc7CiRsYW5nWydmb3InXSA9ICdmb3InOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdCcnVrZXJoaXN0b3JpZSByYXBwb3J0JzsKJGxhbmdbJ3Vua25vd24nXSA9ICdVa2plbnQnOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0lQLWFkcmVzc2UnOwokbGFuZ1sncHJvbXB0X2V2ZW50dHlwZSddID0gJ0hlbmRlbHNlc3R5cGUnOwokbGFuZ1sncHJvbXB0X2RhdGUnXSA9ICdEYXRvJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdUaWxiYWtlJzsKJGxhbmdbJ2ltcG9ydF9jb21wbGV0ZV9tc2cnXSA9ICdJbXBvcnQgb3BwZ2F2ZW4gZXIgZmVyZGlnJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ0xpbmplciBwcm9zZXNzZXJ0JzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdEZXQgb3Bwc3RvZCBmZWlsJzsKJGxhbmdbJ3Byb21wdF9yZWNvcmRzYWRkZWQnXSA9ICdQb3N0ZXIgbGFndCB0aWwnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3ByZWxucyddID0gJ0t1bm5lIGlra2UgZmlubmUgZWdlbnNrYXBlciBmb3IgZ3J1cHBlICVzJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnRmlrayBpbmdlbiByZXNwb25zIGZyYSBTTVRQIHNlcnZlcmVuJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ1NwZXNpZmlzZXJ0ZSBmaWxlciAoJXMpIGJsZSBpa2tlIGZ1bm5ldCc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZHZhbHVlJ10gPSAnVWd5bGRpZyB2ZXJkaSBmb3IgbmVkdHJla2sgZWxsZXIgZmxlcnZhbGdzZmVsdCAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZGxlbmd0aCddID0gJ0ZlbHQgJXMgb3ZlcnNrcmlkZXIgbWFrc2ltdW0gbGVuZ2RlJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0IEZlaWwgKGxpbmplICVzKTogJXMnOwokbGFuZ1snZXJyb3JfcHJvcGVydHlkZWZucyddID0gJ0t1bm5lIGlra2UgZsOlIHRhayBpIGVnZW5za2FwIGRlZmluaXNqb25lbmUgKGludGVybiBmZWlsKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ2luZm8nXSA9ICdQcm9ibGVtIG1lZCDDpSBzZXR0ZSBicnVrZXJpbmZvJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHJlcXVpcmVkZmllbGQnXSA9ICdLdW5uZSBpa2tlIGZpbm5lIGVuIGtvbG9ubmUgc29tIHNhbXN2YXJ0ZSBtZWQgZGV0IHDDpWtyZXZkZSBmZWx0ZXQgJWVzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wZXJ0aWVzJ10gPSAnS3VubmUgaWtrZSBmaW5uZSBlZ2Vuc2thcGVyIGZvciBkZW4gc3Blc2lmaXNlcnRlIGdydXBwZW4nOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ0ZpbGVuIG9wcGdpdHQgZm9yIGltcG9ydCBlciBpa2tlIGkga29ycmVrdCBmb3JtYXQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ0t1bm5lIGlra2Ugw6VwbmUgZmlsZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydGRlc3Rncm91cCddID0gJ0ltcG9ydGVyIEJydWtlcmUgdGlsIGRlbm5lIGdydXBwZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnSW5uZGF0YSBDU1YgZmlsJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR4bWxmaWxlJ10gPSAnSW5uZGF0YSBYTUwgZmlsJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0Vrc3BvcnRlciBCcnVrZXJlJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR1c2VycyddID0gJ0ltcG9ydGVyIEJydWtlcmUnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnVMO4bSc7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ0JpbGRlIG3DpWxzdGknOwokbGFuZ1snZXJyb3JfbWlzc2luZ191cGxvYWQnXSA9ICdFdCBwcm9ibGVtIGhhciBvcHBzdMOldHQgbWVkIGVuIG1hbmdsZW5kZSAobWVuIG7DuGR2ZW5kaWcpIG9wcGxhc3RpbmcnOwokbGFuZ1snZXJyb3JfYmFkX3htbCddID0gJ0t1bm5lIGlra2UgYmVoYW5kbGUgZGVuIHRpbGJ1ZHRlIFhNTCBmaWxlbic7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnS2FuIGlra2Ugc2xldHRlIGVuIGdydXBwZSBzb20gZm9ydHNhdHQgaGFyIGJydWtlcmUnOwokbGFuZ1snZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucyddID0gJ0Rlbm5lIGJydWtlcmVuIGVyIGFsbGVyZWRlIGlubmxvZ2dldCc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdUZWtzdGVuIGZyYSBiaWxkZXQgYmxlIGlra2Ugc2tyZXZldCByaWt0aWcnOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ1RpbGxhdGVyIGJydWtlcmUgw6UgbG9nZ2UgaW5uIG1lciBlbiBlbiBnYW5nJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdCaWxkZSBmaWxlbmRlbHNlciBzb20gYnJ1a2VyZSBmw6VyIGxvdiDDpSBsYXN0ZSBvcHAnOwokbGFuZ1snZXZlbnRfaGVscF9PblJlZnJlc2hVc2VyJ10gPSAnPGgzPk9uUmVmcmVzaFVzZXI8L2gzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gdGhlIHVzZXIgc2Vzc2lvbiBpcyByZWZyZXNoZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCiAgPGxpPjxlbT5pZDwvZW0+IC0gVGhlIFVzZXIgaWQ8L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+RW4gaGVuZGVsc2UvZXZlbnQgZ2VuZXJlcnQgbsOlciBlbiBicnVrZXIgc2xldHRlczwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIEJydWtlcm5hdm5ldDwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBCcnVrZXIgSURlbjwvbGk+DQo8bGk+PGVtPnByb3BzPC9lbT4gLSBFbiBoYXNoIGZ5bHQgbWVkIGVnZW5za2FwZW5lIHRpbCBicnVrZXJlbjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5FbiBoZW5kZWxzZS9ldmVudCBnZW5lcmVydCBuw6VyIGVuIGJydWtlciBvcHByZXR0ZXM8L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIEJydWtlcm5hdm5ldDwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBCcnVrZXIgSURlbjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5FbiBoZW5kZWxzZSBnZW5lcmVydCBuw6VyIGVuIGJydWtlciBlciBvcHBkYXRlcnQgKGVudGVuIGF2IGJydWtlcmVuIHNlbHYgZWxsZXIgYXYgYWRtaW4pPC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBCcnVrZXJuYXZuZXQ8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gQnJ1a2VySURcJ2VuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+RW4gaGVuZGVsc2UvZXZlbnQgZ2VuZXJlcnQgbsOlciBlbiBncnVwcGUgZXIgb3BwcmV0dGV0PC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBHcnVwcGVuYXZuZXQ8L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gR3J1cHBlYmVza3JpdmVsc2VuPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIEdydXBwZSBJRGVuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVHcm91cCddID0gJzxoMz5PbkRlbGV0ZUdyb3VwPGgzPg0KPHA+RW4gaGVuZGVsc2UvZXZlbnQgZ2VuZXJlcnQgbsOlciBlbiBncnVwcGUgZXIgc2xldHRldDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gR3J1cHBlbmF2bmV0PC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIEdydXBwZSBJRGVuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dpbiddID0gJzxoMz5PbkxvZ2luPGgzPg0KPHA+RW4gaGVuZGVsc2UvZXZlbnQgZ2VuZXJlcnQgbsOlciBlbiBicnVrZXIgbG9nZ2VyIHNlZyBpbm48L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmlkPC9lbT4gLSBpZFwnZW4gZm9yIGRlbiBpbm5sb2dnZWRlIGJydWtlcjwvbGk+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBOYXZuZXQgcMOlIGJydWtlcmVuIHNvbSBlciBsb2dnZXQgaW5uPC9saT4NCjxsaT48ZW0+aXA8L2VtPiAtIFdlYmtsaWVudGVucyBJUCBhZHJlc3NlIDwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnPHA+RW4gaGVuZGVsc2UvZXZlbnQgZ2VuZXJlcnQgbsOlciBlbiBicnVrZXIgbG9nZ2VyIHV0PC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPjxlbT5pZDwvZW0+IC0gQnJ1a2VyIElEZW48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRfaGVscF9PbkV4cGlyZVVzZXInXSA9ICc8cD5FbiBoZW5kZWxzZS9ldmVudCBnZW5lcmVydCBuw6VyIGVuIGJydWtlcnNlc3Npb24gdXRsw7hwZXI8L3A+DQo8aDQ+UGFyYW1ldGVyZWg0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gTmF2bmV0IHDDpSBicnVrZXJlbiBzb20gdXRsw7hwPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIEJydWtlciBJRGVuIHRpbCBicnVrZXJlbiBzb20gdXRsw7hwPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ0VuIGhlbmRlbHNlIHNvbSBnZW5lcmVyZXMgbsOlciBlbiBicnVrZXIgbG9nZ2VyIHNlZyBpbm4gaSBzeXN0ZW1ldCc7CiRsYW5nWydldmVudF9pbmZvX09uTG9nb3V0J10gPSAnRW4gaGVuZGVsc2Ugc29tIGdlbmVyZXJlcyBuw6VyIGVuIGJydWtlciBsb2dnZXIgc2VnIHV0IGF2IHN5c3RlbWV0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnRW4gaGVuZGVsc2Ugc29tIGdlbmVyZXJlcyBuw6VyIGVuIGJydWtlci1zZXNzaW9uIGhhciB1dGzDuHB0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVVc2VyJ10gPSAnRW4gaGVuZGVsc2UgZ2VuZXJlcnQgbsOlciBlbiBicnVrZXIgZXIgb3BwcmV0dGV0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25SZWZyZXNoVXNlciddID0gJ0VuIGhlbmRlbHNlIHNvbSBnZW5lcmVyZXMgbsOlciBlbiBicnVrZXItc2Vzc2lvbiBlciBvcHBmcmlza2V0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVVc2VyJ10gPSAnRW4gaGVuZGVsc2UgZ2VuZXJlcnQgbsOlciBlbiBicnVrZXJzIGluZm8gZXIgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnRW4gaGVuZGVsc2UgZ2VuZXJlcnQgbsOlciBlbiBicnVrZXJrb250byBlciBzbGV0dGV0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ0VuIGhlbmRlbHNlIGdlbmVyZXJ0IG7DpXIgZW4gYnJ1a2VyZ3J1cHBlIGVyIG9wcHJldHRldCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdFbiBoZW5kZWxzZSBnZW5lcmVydCBuw6VyIGVuIGJydWtlcmdydXBwZSBlciBvcHBkYXRlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZUdyb3VwJ10gPSAnRW4gaGVuZGVsc2UgZ2VuZXJlcnQgbsOlciBlbiBicnVrZXJncnVwcGUgZXIgc2xldHRldCc7CiRsYW5nWydiYWNrZW5kX2dyb3VwJ10gPSAnQmFja2VuZCBncnVwcGUnOwokbGFuZ1snaW5mb19zdGFyJ10gPSAnKiBGw7hsZ2VuZGUgZmVsdCBlciBmdWxsc3RlbmRpZ2UgU21hcnR5bWFsZXIuPGJyLz5TYW1tZW4gbWVkIGFuZHJlIHRpZGxpZ2VyZSBla3Npc3RlcmVuZGUgc21hcnR5IHZhcmlhYmxlciBvZyBwbHVnaW5zLCBzw6UgZXIgKCR1c2VybmFtZSkgb2cgKCQgZ3J1cHBlKSB2YXJpYWJsZW5lIHRpbGdqZW5nZWxpZ2UuIDxlbT4gKCgkZ3JvdXApLXZhcmlhYmxlbiBrb2JsZXIgZGVuIGbDuHJzdGUgZ3J1cHBlbiB0aWwgZGVuIHNvbSBicnVrZXJlbiB0aWxow7hyZXIuKTwvIGVtPi4nOwokbGFuZ1snaW5mb19hZG1pbl9wYXNzd29yZCddID0gJ1JlZGlnZXIgZGV0dGUgZmVsdGV0IGZvciDDpSBlbmRyZSBicnVrZXJlbnMgcGFzc29yZCc7CiRsYW5nWydpbmZvX2FkbWluX3JlcGVhdHBhc3N3b3JkJ10gPSAnUmVkaWdlciBkZXR0ZSBmZWx0ZXQgZm9yIMOlIGVuZHJlIGJydWtlcmVucyBwYXNzb3JkJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1lX2V4aXN0cyddID0gJ0VuIGJydWtlciBtZWQgc2FtbWUgYnJ1a2VybmF2biBmaW5uZXMgYWxsZXJlZGUnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnSW5nZW4gcmVzdWx0YXRlciBmcmEgY3N2IGVrc3BvcnRlbic7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdMZW5nZGVuIHDDpSBicnVrZXJuYXZuZmVsdGV0JzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ0xlbmdkZW4gcMOlIHBhc3NvcmRmZWx0ZXQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ01pbi9NYWtzIGxlbmdkZSBww6UgcGFzc29yZGV0IGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ01pbi9NYWtzIGxlbmdkZSBww6UgYnJ1a2VybmF2biBlciB1Z3lsZGlnJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdVZ3lsZGlnIGUtcG9zdGFkcmVzc2UnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdWaSBrdW5uZSBpa2tlIGZpbm5lIGVuIGUtcG9zdGFkcmVzc2UgZm9yIGRlbm5lIGtvbnRvZW4nOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNlZXR0aW5naW5mbyddID0gJ0thbiBpa2tlIGxhZ3JlIGJydWtlcmluZm9ybWFzam9uZW4nOwokbGFuZ1snZXJyb3Jfc2V0dGluZ3Byb3BlcnR5J10gPSAnS2FuIGlra2UgbGFncmUgZWdlbnNrYXBlbic7CiRsYW5nWyd1c2VyX2FkZGVkJ10gPSAnQnJ1a2VyIGxhZ3QgdGlsICVzID0gJXMnOwokbGFuZ1sndXNlcl9kZWxldGVkJ10gPSAnQnJ1a2VyIHNsZXR0ZXQgdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnRWdlbnNrYXBlcic7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnVmVyZGkgKHJlZ3VsYXIgZXhwcmVzc2lvbiknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdBZHZhcnNlbDogRGlzc2UgZmVsdGVuZSBww6V2aXJrZXIgc3TDuHJyZWxzZW4gcMOlIGlubmRhdGFmZWx0ZW5lIGkgc2tqZW1hZXIuIMOFIG1pbnNrZSBkaXNzZSB2ZXJkaWVuZSBww6UgZXQgZWtzaXN0ZXJlbmRlIG5ldHRzdGVkIGVyIGlra2Ugw6UgYW5iZWZhbGUnOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ0VyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIGVuZHJlIGRlbm5lIG1vZHVsZW5zIGlubnN0aWxsaW5nZXI/JzsKJGxhbmdbJ2Vycm9yX2VtYWlsYWxyZWFkeXVzZWQnXSA9ICdFLXBvc3RhZHJlc3NlbiBlciBhbGxlcmVkZSBpIGJydWsnOwokbGFuZ1sncHJvbXB0X3VzZWNvb2tpZXN0b3JlbWVtYmVyJ10gPSAnQnJ1ayBpbmZvcm1hc2pvbnNrYXBzbGVyKGNvb2tpZXMpIGZvciDDpSBodXNrZSBpbm5sb2dnaW5nc2RldGFsamVyJzsKJGxhbmdbJ3Byb21wdF9jb29raWVuYW1lJ10gPSAnTmF2bmV0IHDDpSBpbmZvcm1hc2pvbnNrYXBzZWxlbihjb29raWUpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnVGlsbGF0IGlkZW50aXNrZSBlLXBvc3RhZHJlc3Nlcic7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdFLXBvc3RhZHJlc3NlIGVyIGJydWtlcm5hdm4nOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnRm9yc8O4ayDDpSBob2xkZSBpbm5sb2dnaW5nZW4gdmVkIGxpdmUgdmVkIMOlIGJlbnl0dGUgZW4gaW5mb3JtYXNqb25za2Fwc2VsIDxlbT5pbmZvcm1hc2pvbnNrYXBzZWxlbiB2aWwgYmxpIHRpbGJha2VzYXR0IG7DpXIgZHUgZXIgYWt0aXYgcMOlIG5ldHRzdGVkZXQpPC9lbT4nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKHRpbGxhdCBmbGVyZSBicnVrZXJlIG1lZCBzYW1tZSBlLXBvc3RhZHJlc3NlKSc7CiRsYW5nWydpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnKGJydWtlcnMgZS1wb3N0YWRyZXNzZSBlciBkZXJlcyBicnVrZXJuYXZuIC0tIGlra2Ugc2V0dCBkZXR0ZSBzYW1tZW4gbWVkICJUaWxsYXQgaWRlbnRpc2tlIGUtcG9zdGFkcmVzc2VyIiEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnVGlsbGF0IGZsZXJlICJnbGVtdCBwYXNzb3JkIiBww6VtaW5uZWxzZXI/JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJyh0aWxsYXQgYXQgZW4gYnJ1a2VyIGJlciBvbSBudWxsc3RpbGxpbmcgYXYgcGFzc29yZGV0LCBzZWx2IG9tIGRlIGlra2UgaGFyIGJlbnl0dGV0IGRldCBmb3JyaWdlKSc7CiRsYW5nWydwcm9tcHRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJ0Jlbnl0dCBGcm9udC1lbmQgVXNlciBzcGVzaWZpa2UgdGlsbGF0ZWxzZXI/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhOb3JtYWx0IGVyLCBGRVVzZXIgdGlsbGF0ZWxzZXIgZGUgc2FtbWUgc29tIHRpbHN2YXJlbmRlIEFkbWluLW9tcsOlZGUgdGlsbGF0ZWxzZXIgLSBMZWdnIHRpbCBicnVrZXIsIExlZ2cgdGlsIGdydXBwZSwgb3N2LiBPbSBkdSBoYWtlciBhdiBoZXIsIHZpbCBkZXQgdsOmcmUgYWRza2lsdGUvZWduZSB0aWxsYXRlbHNlciBmb3IgRkVVc2Vycy4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdLbGFydGUgaWtrZSDDpSBmaW5uZSBkZW4gb3BwbGFzdGVkZSBmaWxhIChpbnRlcm4gZmVpbCknOwokbGFuZ1snZXJyb3JfcHJvYmxlbV91cGxvYWQnXSA9ICdEZXQgZXIgZXQgcHJvYmxlbSBtZWQgZGluIG9wcGxhc3RlZGUgZmlsLiBWZW5ubGlnc3QgZm9yc8O4ayBww6Ugbnl0dCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXNlcm5hbWUnXSA9ICdEdSBvcHBnYSBpa2tlIGJydWtlcm5hdm4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ2VtYWlsJ10gPSAnRHUgb3BwZ2EgaWtrZSBlbiBlLXBvc3RhZHJlc3NlJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ0R1IG9wcGdhIGlra2UgcGFzc29yZCc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nb3V0J10gPSAnRnJvbnRlbmQgYnJ1a2VyIHV0bG9nZ2luZyc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nZ2VkaW4nXSA9ICdGcm9udGVuZCBicnVrZXIgaW5ubG9nZ2luZyc7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9InJlZCI+PGI+VsOGUiBWQVJTT008L2I+IG7DpXIgZWtzaXN0ZXJlbmRlIGVnZW5za2FwZXIgc29tIGVyIHRpbGVnbmV0IGdydXBwZXIgZm9yYW5kcmVzLCBkdSBrYW4ga29tbWUgaSBza2FkZSBmb3Igw6Ugw7hkZWxlZ2dlIG5vZSBvZyBkZXJtZWQgbmV0dHN0ZWRldCA8aT4oc3Blc2llbHQgaHZpcyBkdSBtaW5za2VyIGZlbHRsZW5nZGVyLCBldGMpPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdEZW5uZSBmdW5rc2pvbmVuIHZpcmtlciBpa2tlIGkgV2luZG93cyc7CiRsYW5nWydtc2dfZG9udGNyZWF0ZXVzZXJuYW1lJ10gPSAnSWtrZSBvcHByZXR0IGVnZW5za2FwZXIgZm9yIGJydWtlcm5hdm4gZWxsZXIgcGFzc29yZCBkYSBkaXNzZSBlZ2Vuc2thcGVuZSBlciBpbm5lYnlnZ2V0IGkgc2VsdmUgRnJvbnRFbmRVc2VyIG1vZHVsZW4uJzsKJGxhbmdbJ3Byb21wdF9leHBvcnRjc3YnXSA9ICdFa3Nwb3J0ZXIgYnJ1a2VyZSB0aWwgQ1NWJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0Vrc3BvcnRlcic7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnRlcic7CiRsYW5nWydhZG1pbiddID0gJ0FkbWluJzsKJGxhbmdbJ2VkaXRwcm9wJ10gPSAnUmVkaWdlciBlZ2Vuc2thcCc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYWtzIGxlbmdkZSc7CiRsYW5nWydjcmVhdGVkJ10gPSAnT3BwcmV0dGV0JzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRlciBldHRlcic7CiRsYW5nWydzb3J0J10gPSAnU29ydGVyZXInOwokbGFuZ1sndXNlcnNpbmdyb3VwJ10gPSAnQnJ1a2VyZSBpIHZhbGd0KGUpIGdydXBwZShyKSc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdCZWdyZW5zIHJlc3VsdGF0ZW5lIHRpbCc7CiRsYW5nWydlcnJvcl9ub2VtYWlsZmllbGQnXSA9ICdLdW5uZSBpa2tlIGZpbm5lIGV0IGUtcG9zdGZlbHQgZm9yIGRlbm5lIGJydWtlcmVuLiBEdSBtw6Uga2Fuc2tqZSBrb250YWt0ZSBzeXN0ZW1hZG1pbmlzdHJhdG9yZW4nOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICdTaWRlSUQvQWxpYXMgZm9yIHNramVtYWV0IEdsZW10IHBhc3NvcmQnOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzX3BhZ2UnXSA9ICdTaWRlSUQvQWxpYXMgZm9yIHNramVtYWV0IEVuZHJlIGlubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvbXB0X2xvZ2luX3BhZ2UnXSA9ICdTaWRlSUQvQWxpYXMgZGV0IHNrYWwgaG9wcGVzIHRpbCBldHRlciBpbm5sb2dnaW5nIConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnU2lkZUlEL0FsaWFzIGRldCBza2FsIGhvcHBlcyB0aWwgZXR0ZXIgdXRsb2dnaW5nIConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydGVyaW5nc3Jla2tlZsO4bGdlJzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ05vZW4gYnJ1a2VyZSBob2xkZXIgcMOlIMOlIHRpbGJha2VzdGlsbGUgc2luZSB0YXB0ZSBwYXNzb3JkLiBOw6UgZXIgZGV0dGUgYW50YWxsZXQ6JzsKJGxhbmdbJ3JlbW92ZTF3ZWVrJ10gPSAnRmplcm4gYWxsZSBpbm5sZWdnIHNvbSBlciBtZXIgZW5uIGVuIHVrZSBnYW1sZSc7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdGamVybiBhbGxlIGlubmxlZ2cgc29tIGVyIG1lciBlbm4gZW4gbcOlbmVkIGdhbWxlJzsKJGxhbmdbJ3JlbW92ZWFsbCddID0gJ0ZqZXJuIGFsbGUgaW5ubGVnZyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyPyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ0VuIHVneWxkaWcga29kZSBlciBsYWd0IGlubiwgdmVubmxpZ3N0IHByw7h2IGlnamVuLic7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnRW4gbWlkbGVydGlkaWcga29kZSBmb3IgZGluIGJydWtlcklEIGJsZSBpa2tlIGZ1bm5ldCBpIGRhdGFiYXNlbic7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJ01hbCBzb20gYmVueXR0ZXMgZm9yIMOlIHZpc2UgdmVyaWZpa2Fzam9uc3NramVtYWV0JzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX2VtYWlsdGVtcGxhdGUnXSA9ICdNYWwgc29tIGJlbnl0dGVzIHDDpSBnbGVtdCBwYXNzb3JkIGVwc290ZW4nOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ0VuZHJpbmcgYXYgcGFzc29yZCBmb3IgZGVubmUga29udG9lbiBlciBhbGxlcmVkZSBzYXR0IGkgZ2FuZyBhdiBkZWcgZWxsZXIgbm9lbiBhbm5lbi4gU2pla2sgZS1wb3N0ZW4gZGluLCBkdSBrYW4gaGEgbW90dGF0dCB2aWRlcmUgaW5zdHJ1a3Nqb25lciBvbSBodm9yZGFuIGRldHRlIHNrYWwgZ2plbm5vbWbDuHJlcy4nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGFiYXNlIGZlaWwnOwokbGFuZ1snbWVzc2FnZV9mb3Jnb3Rwd2VtYWlsJ10gPSAnRHUgZsOlciBkZW5uZSBtZWxkaW5nZW4gZm9yZGkgbm9lbiBoYXIgZm9ydGFsdCB2w6VyIG5ldHRzaWRlIGF0IGR1IGhhciBtaXN0ZXQgZGl0dCBwYXNzb3JkLiAgT20gZGV0dGUgZXIga29ycmVrdCwgbGVzIGluc3RydWtzam9uZW5lIG5lZGVuZm9yLiAgT20gZHUgaWtrZSBza2rDuG5uZXIgaHZhIGRldHRlIGthbiB2w6ZyZSwgc8OlIGthbiBkdSB0cnlndCBzbGV0dGUgZGVubmUgbWVsZGluZ2VuLCBvZyB2aSB0YWtrZXIgZm9yIGRpbiBvcHBtZXJrc29taGV0Lic7CiRsYW5nWydwcm9tcHRfY29kZSddID0gJ0tvZGUnOwokbGFuZ1snbWVzc2FnZV9jb2RlJ10gPSAnRGVuIGbDuGxnZW5kZSBrb2RlIGhhciBibGl0dCBnZW5lcmVydCB0aWxmZWxkaWcgZm9yIMOlIGdqZW5ramVubmUgYnJ1a2Vya29udG9lbi4gIG7DpXIgZHUga2xpa2tlciBsaW5rZW4gbmVkZW5mb3IgdmlsIGR1IGbDpSBvcHAgZXQgZmVsdCBmb3Igw6Ugc2tyaXZlIGlubiBkZW5uZSBrb2Rlbi4gIE5vcm1hbCBlciBmZWx0ZXQgZm9yaMOlbmRzdXRmeWx0IGZvciBkZWcsIG1lbiBpIHRpbGZlbGxlIGRldCBpa2tlIGVyIC0gc8OlIGVyIGtvZGVuOic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0h2aXMgZHUga2xpa2tlciBww6UgbGlua2VuIHNvbSBmw7hsZ2VyIHZpbCBkdSBibGkgZsO4cnQgdGlsIGVuIG5ldHRzaWRlIGh2b3IgZHUga2FuIGxlZ2dlIGlubiB2ZWRsYWd0ZSBrb2RlIG9nIGxlZ2dlIGlubiBueXR0IHBhc3NvcmQuJzsKJGxhbmdbJ2xvc3RwYXNzd29yZF9lbWFpbHN1YmplY3QnXSA9ICdHbGVtdCBwYXNzb3JkJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnS3VubmUgaWtrZSBmaW5uZSBDTVNNYWlsZXIgbW9kdWxlbic7CiRsYW5nWydpbmZvX2ZvcmdvdHB3bWVzc2FnZXNlbnQnXSA9ICdFbiBlLXBvc3QgZXIgYmxpdHQgc2VuZHQgdGlsICVzIG1lZCBpbnN0cnVrc2pvbmVyIG9tIGh2b3JkYW4gcGFzc29yZGV0IGthbiBsZWdnZXMgaW5uIHDDpSBueS4gVGFray4nOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdIYXIgZHUgZ2xlbXQgZWxsZXIgbWlzdGV0IHBhc3NvcmRldCBkaXR0PyBGeWxsIGlubiBicnVrZXJuYXZuZXQgZGl0dCBoZXIgc8OlIHZpbCB2aSBzZW5kZSBkZWcgZW4gZS1wb3N0IG9tIGh2b3JkYW4gZHUga2FuIHRpbGJha2VzdGlsbGUgZGV0Lic7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF90ZW1wbGF0ZSddID0gJ01hbCBmb3IgZ2xlbXQgcGFzc29yZCc7CiRsYW5nWydsb3N0dXNlcm5hbWVfdGVtcGxhdGUnXSA9ICdcJ01pc3RldCBicnVrZXJuYXZuXCcgbWFsJzsKJGxhbmdbJ2Vycm9yX3Byb3Bub3Rmb3VuZCddID0gJ0VnZW5za2FwICVzIGlra2UgZnVubmV0JzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdFZ2Vuc2thcCBmdW5uZXQnOwokbGFuZ1snYWRkcHJvcCddID0gJ0xlZ2cgdGlsIGVnZW5za2FwJzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICdFdCBvYmxpZ2F0b3Jpc2sgZmVsdCAoJXMpIHZhciB0b210JzsKJGxhbmdbJ2luZm9fZW1wdHlwYXNzd29yZGZpZWxkJ10gPSAnRXZ0LiBueXR0IHBhc3NvcmQgaGVyIGZvciDDpSBlbmRyZSBkZXQgZWtzaXN0ZXJlbmRlJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnRGV0IHNlciBpa2tlIHV0IHRpbCBhdCBkdSBlciBpbm5sb2dnZXQnOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ0lubnN0aWxsaW5nZXInOwokbGFuZ1sndXNlcl9yZWdpc3RyYXRpb24nXSA9ICdSZWdpc3RyZXJpbmcnOwokbGFuZ1snZXJyb3JfYWNjb3VudGV4cGlyZWQnXSA9ICdLb250b2VuIGhhciB1dGzDuHB0JzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdGZWlsIHDDpSBlLXBvc3RhZHJlc3NlbnMgZm9ybWF0ZXJpbmcnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdVZ3lsZGlnIHV0bMO4cHNkYXRvLiBEZXR0ZSBrYW4gdsOmcmUgc3lzdGVtcmVsYXRlcnQuIEZvcnPDuGsgbWVkIMOlIHNldHRlIGV0IHRpZGxpZ2VyZSDDpXIuJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdGZWlsIHZlZCBzZXR0aW5nIGF2IGVnZW5za2FwICVzIGZvciBicnVrZXIgJHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGdyb3VwaWQnXSA9ICdVZ3lsZGlnIGdydXBwZUlEICVzJzsKJGxhbmdbJ2hpZGRlbmZpZWxkbWFya2VyJ10gPSAnTWVya2UgZm9yIHNranVsdCBmZWx0JzsKJGxhbmdbJ2hpZGRlbmZpZWxkY29sb3InXSA9ICdGYXJnZSBmb3Igc2tqdWx0IGZlbHQnOwokbGFuZ1snaGlkZGVuJ10gPSAnU2tqdWx0JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZW5hbWUnXSA9ICdFbiBlZ2Vuc2thcCBtZWQgZGV0IG5hdm5ldCBlciBhbGxlcmVkZSBkZWZpbmVydCc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdJbmdlbiBlZ2Vuc2thcCBkZWZpbmVydCc7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ0luZ2VuIGVnZW5za2FwZXIgYmxlIHZhbGd0IGZvciBkZW5uZSBncnVwcGVuJzsKJGxhbmdbJ25vZ3JvdXBzJ10gPSAnSW5nZW4gZ3J1cHBlciBlciBkZWZpbmVydCc7CiRsYW5nWydncm91cHNmb3VuZCddID0gJ0dydXBwZXIgZnVubmV0JzsKJGxhbmdbJ2Vycm9yX29uZWdyb3VwcmVxdWlyZWQnXSA9ICdEZXQgbcOlIHRpbGRlbGVzIG1lZGxlbXNrYXAgZm9yIG1pbnN0IGVuIGdydXBwZSc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJ10gPSAnS3JldiBtZWRsZW1za2FwIGZvciBtaW5zdCBlbiBncnVwcGUnOwokbGFuZ1snYmFjayddID0gJ1RpbGJha2UnOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzIGZlbHRldCBtw6UgZnlsbGVzIHV0JzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRtYXJrZXInXSA9ICdNZXJrIG9ibGlnYXRvcmlza2UgZmVsdCBtZWQnOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnVXRoZXYgb2JsaWdhdG9yaXNrZSBmZWx0IG1lZCc7CiRsYW5nWyduZXh0J10gPSAnTmVzdGUnOwokbGFuZ1snZXJyb3JfZ3JvdXBleGlzdHMnXSA9ICdFbiBncnVwcGUgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydyZXF1aXJlZCddID0gJ09ibGlnYXRvcmlzayc7CiRsYW5nWydvcHRpb25hbCddID0gJ1ZhbGdmcml0dCc7CiRsYW5nWydvZmYnXSA9ICdBdic7CiRsYW5nWydzaXplJ10gPSAnU3TDuHJyZWxzZSc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1ha3Mgc3TDuHJyZWxzZSBpIHBpeGxlciBmb3IgZW5odmVyIGRpbWVuc2pvbiBww6UgYmlsZGV0KSc7CiRsYW5nWydsZW5ndGgnXSA9ICdMZW5nZGUnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oYm9rc3RhdmVyIGkgdGVrc3Rpbm5za3JpdmluZ2VuKSc7CiRsYW5nWydzZWxvcHRpb25zJ10gPSAnTmVkdHJla2tzdmFsZywgc2VwYXJlcnQgbWVkIGxpbmplc2tpZnQuIFZlcmRpZXIga2FuIHNlcGFyZXJlcyBmcmEgdGVrc3QgbWVkIGV0ID0gdGVnbi4gRi5la3MuIEh1bm5rasO4bm49Zic7CiRsYW5nWydyYWRpb29wdGlvbnMnXSA9ICdSYWRpb2tuYXBwIGV0aWtldHRlciwgc2VwYXJlcnQgbWVkIGxpbmplc2tpZnQuIFZlcmRpZXIga2FuIHNlcGFyZXJlcyBmcmEgdGVrc3QgbWVkIGV0ID0gdGVnbi4gRi5la3M6IEh1bm5rasO4bm49ayc7CiRsYW5nWydwcm9tcHQnXSA9ICdTcMO4cic7CiRsYW5nWydwcm9tcHRfdHlwZSddID0gJ1R5cGUnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwokbGFuZ1snZmllbGRzdGF0dXMnXSA9ICdGZWx0IFN0YXR1cyc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdTcMO4ciBpIE1pc3RldDxici8+YnJ1a2VybmF2bic7CiRsYW5nWyd0ZXh0J10gPSAnVGVrc3QnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdBdmtyeXNzbmluZ3Nib2tzJzsKJGxhbmdbJ211bHRpc2VsZWN0J10gPSAnRmxlcnZhbGdzbGlzdGUnOwokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW9rbmFwcGVyJzsKJGxhbmdbJ2ltYWdlJ10gPSAnQmlsZGUnOwokbGFuZ1snZW1haWwnXSA9ICdFLXBvc3RhZHJlc3NlJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3RvbXLDpWRlJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTmVkdHJla2tzbWVueSc7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ1ZlbGtvbW1lbic7CiRsYW5nWydsb2dvdXQnXSA9ICdMb2dnIHV0JzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdCZW55dHQgZGV0dGUgZ3J1cHBlbmF2bmV0JzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ0ZvcmFuZHJlIG1pbmUgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ0lubmxvZ2dpbmcgbWlzc2x5a2tldCAtIHVneWxkaWcgYnJ1a2VybmF2biBlbGxlciBwYXNzb3JkPyc7CiRsYW5nWydsb2dpbiddID0gJ0xvZ2cgaW5uJzsKJGxhbmdbJ3Byb21wdF9zaWduaW5fYnV0dG9uJ10gPSAnTG9nZyBpbm4ga25hcHAgZXRpa2V0dCc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdCcnVrZXJuYXZuJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0UtcG9zdGFkcmVzc2UnOwokbGFuZ1sncHJvbXB0X3Bhc3N3b3JkJ10gPSAnUGFzc29yZCc7CiRsYW5nWydwcm9tcHRfcmVtZW1iZXJtZSddID0gJ0h1c2sgbWVnIHDDpSBkZW5uZSBkYXRhbWFza2luZW4nOwokbGFuZ1sncmVnaXN0ZXInXSA9ICdSZWdpc3RyZXInOwokbGFuZ1snZm9yZ290cHcnXSA9ICdHbGVtdCBwYXNzb3JkZXQ/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ0hhciBkdSBnbGVtdCBpbm5sb2dnaW5nc2RldGFsamVuZT8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdUaWxiYWtlc3RpbGwgdGlsIHN0YW5kYXJkJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnTWFsJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1ldGFrZW4nXSA9ICdEZXQgYnJ1a2VybmF2bmV0ICglcykgZXIgYWxsZXJlZGUgaSBicnVrJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdCcnVrIFNNVFAgZm9yIMOlIGtvbnRyb2xsZXJlIGUtcG9zdGFkcmVzc2VyPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdNaW5pbXVtIGxlbmdkZSBww6UgcGFzc29yZCc7CiRsYW5nWydwcm9tcHRfbWF4cHdsZW4nXSA9ICdNYWtzaW11bSBsZW5nZGUgcMOlIHBhc3NvcmQnOwokbGFuZ1sncHJvbXB0X21pbnVubGVuJ10gPSAnTWluaW11bSBMZW5nZGUgcMOlIGJydWtlcm5hdm4nOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnTWFrc2ltdW0gbGVuZ2RlIHDDpSBicnVrZXJuYXZuJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1Nlc3Npb24gVGltZW91dCAoc2VrdW5kZXIpJzsKJGxhbmdbJ3Byb21wdF9jb29raWVrZWVwYWxpdmUnXSA9ICdCcnVrIGNvb2tpZXMgZm9yIMOlIGhvbGRlIGlubmxvZ2dpbmdlbiB2ZWQgbGl2JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnVGlsbGF0IGUtcG9zdCByZWdpc3RyZXJpbmcnOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ1N0YW5kYXJkZ3J1cHBlIGZvciBueWUgYnJ1a2VyZSc7CiRsYW5nWydjaGFuZ2VzZXR0aW5nc190ZW1wbGF0ZSddID0gJ01hbCBmb3IgZm9yYW5kcmUgYnJ1a2VyZGF0YSc7CiRsYW5nWydlcnJvcl9wYXNzd29yZG1pc21hdGNoJ10gPSAnUGFzc29yZGVuZSBlciBpa2tlIGxpa2UnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnVWd5bGRpZyBicnVrZXJuYXZuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZCddID0gJ1VneWxkaWcgcGFzc29yZCc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdLdW5uZSBpa2tlIGZpbm5lIGluZm9ybWFzam9uIG9tIGRlbm5lIGJydWtlcmVuJzsKJGxhbmdbJ2VkaXR1c2VyJ10gPSAnUmVkaWdlciBicnVrZXInOwokbGFuZ1sndmFsaWQnXSA9ICdHeWxkaWcnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdCcnVrZXJuYXZuJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICdEZW5uZSBicnVrZXJlbiBlciBpa2tlIG1lZGxlbSBhdiBub2VuIGdydXBwZSc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnSW5nZW4gZWdlbnNrYXBlcic7CiRsYW5nWydlcnJvcl9kdXBfcHJvcGVydGllcyddID0gJ0ZvcnPDuGsgw6UgaW1wb3J0ZXJlIGR1cGxpa2F0ZSBlZ2Vuc2thcGVyJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVmVyZGknOwokbGFuZ1snZ3JvdXBzJ10gPSAnR3J1cHBlcic7CiRsYW5nWydwcm9wZXJ0aWVzJ10gPSAnRWdlbnNrYXBlcic7CiRsYW5nWydwcm9wbmFtZSddID0gJ0VnZW5za2FwZW5zIE5hdm4nOwokbGFuZ1sncHJvcHZhbHVlJ10gPSAnRWdlbnNrYXBlbnMgdmVyZGknOwokbGFuZ1snYWRkJ10gPSAnTGVnZyB0aWwnOwokbGFuZ1snaGlzdG9yeSddID0gJ0hpc3RvcmllJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdVdGzDuHBlcic7CiRsYW5nWydzcGVjaWZ5X2RhdGUnXSA9ICdTcGVzaWZpc2VyIGRhdG8nOwokbGFuZ1snMTJocnMnXSA9ICcxMiB0aW1lcic7CiRsYW5nWycyNGhycyddID0gJzI0IHRpbWVyJzsKJGxhbmdbJzQ4aHJzJ10gPSAnNDggdGltZXInOwokbGFuZ1snMXdlZWsnXSA9ICcxIHVrZSc7CiRsYW5nWycyd2Vla3MnXSA9ICcyIFVrZXInOwokbGFuZ1snMW1vbnRoJ10gPSAnMSBNw6VuZWQnOwokbGFuZ1snM21vbnRocyddID0gJzMgTcOlbmVkZXInOwokbGFuZ1snNm1vbnRocyddID0gJzYgTcOlbmVkZXInOwokbGFuZ1snMXllYXInXSA9ICcxIMOFcic7CiRsYW5nWyduZXZlciddID0gJ0FsZHJpJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ1ZlbGx5a2tldCBpbnN0YWxsYXNqb24gYXYgbW9kdWxlbi48YnIvPkh1c2sgw6UgYWt0aXZpc2VyZSAgIk1vZGlmeSBGcm9udEVuZFVzZXIgUHJvcGVydGllcyBwZXJtaXNzaW9uLiINCkkgdGlsbGVnZywgYW5iZWZhbGVyIHZpIGRlZyDDpSBpbnN0YWxsZXJlIENhcHRjaGEgbW9kdWxlbi4gIE9tIGRlbm5lIGVyIGluc3RhbGxlcnQsIGVuIGd5bGRpZ2hldHN0ZXN0IGF2IGV0IGNhcHRjaGFiaWxkZSB2aWwga3JldmVzIGkgdGlsbGVnZyB0aWwgYnJ1a2VybmF2biBvZyBwYXNzb3JkIGZvciDDpSBsb2dnZSBpbm4uIE1lbmluZ2VuIG1lZCBkZXR0ZSBlciDDpSBoaW5kcmUgYnJ1dGUgZm9yY2UgYW5ncmVwLiAgPHN0cm9uZz5NZXJrOjwvc3Ryb25nPiBQYXJhbWV0ZXJlbiBub2NhcHRjaGEga2FuIGJlbnl0dGVzIGZvciDDpSBzbMOlIGF2IGRlbm5lIGZ1bmtzam9uZW4gc2VsdiBvbSBDYXB0Y2hhIG1vZHVsZW4gZXIgaW5zdGFsbGVydC4iJzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAnTnl0dCBwYXNzb3JkJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnR2plbnRhJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdFbiBncnVwcGUgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydlZGl0Z3JvdXAnXSA9ICdSZWRpZ2VyIGdydXBwZSc7CiRsYW5nWydzdWJtaXQnXSA9ICdTZW5kJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0dCc7CiRsYW5nWydjb25maXJtX2VkaXRncm91cCddID0gJ0VyIGR1IHNpa2tlciBww6UgYXQgZGV0dGUgZXIga29ycmVrdGUgdmFsZyBmb3IgZGVubmUgZ3J1cHBlbj9cbsOFIHNsw6UgZW4gZWdlbnNrYXAgYXYvb2ZmIHZpbCBpa2tlIHNsZXR0ZSBub2VuIGlubmxlZ2cgaSBlZ2Vuc2thcC10YWJlbGxlbiBmb3IgZGVubmUgZ3J1cHBlbi9icnVrZXJlbi4gIEVnZW5za2FwZW4gdmlsIGkgc3RlZGV0IGJsaSB1dGlsZ2plbmdlbGlnLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSB2aWwgc2xldHRlIGRlbm5lIGdydXBwZW4/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3Byb3AnXSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBzbGV0dGUgZGVubmUgZWdlbnNrYXBlbiBoZWx0P1xuw4UgZ2rDuHJlIGRldHRlIHZpbCBvZ3PDpSBzbGV0dGUgZW5odmVyIGJydWtlcnMgaW5ubGVnZyBpIGRlbm5lIGVnZW5za2FwZW4uJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1VmdWxsc3RlbmRpZ2UgcGFyYW1ldHJlJzsKJGxhbmdbJ2lkJ10gPSAnSWQnOwokbGFuZ1snbmFtZSddID0gJ05hdm4nOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdQcm9ibGVtIG1lZCDDpSBsZWdnZSB0aWwgZWdlbnNrYXAnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwcmVsbiddID0gJ1Byb2JsZW0gbWVkIMOlIGxlZ2dlIHRpbCBncnVwcGVlZ2Vuc2thcCc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXAnXSA9ICdQcm9ibGVtIG1lZCDDpSBsZWdnZSB0aWwgZ3J1cHBlJzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnUHJvYmxlbSBtZWQgw6UgbGVnZ2UgZW4gYnJ1a2VyIHRpbCBncnVwcGVuJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZGVsZXRlcHJvcGVydHknXSA9ICdQcm9ibGVtIG1lZCDDpSBzbGV0dGUgZW4gZWdlbnNrYXAnOwokbGFuZ1snZXJyb3JfY291bGRub3RmaW5kZW1haWwnXSA9ICdLdW5uZSBpa2tlIGZpbm5lIGVuIGUtcG9zdGFkcmVzc2UnOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ0luZ2VuIHNrcml2ZXJldHRpZ2hldCBpIG3DpWxtYXBwZW4nOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ1VneWxkaWdlIHBhcmFtZXRlcmUnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHMnXSA9ICdLdW5uZSBpa2tlIGZpbm5lIG5vZW4gZ3J1cHBlcic7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ0JydWsnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHJlcic7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAnQnJ1a2VybmF2biB2YW5saWcgdXR0cnlrayc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2tyaXZlbHNlJzsKJGxhbmdbJ2dyb3VwbmFtZSddID0gJ0dydXBwZW5hdm4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWRnYW5nIG5la3RldCc7CiRsYW5nWydlcnJvciddID0gJ0ZlaWwnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdMZWdnIHRpbCBncnVwcGUnOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnRlciBHcnVwcGUnOwokbGFuZ1snYWRkdXNlciddID0gJ0xlZ2cgdGlsIGJydWtlcic7CiRsYW5nWyd1c2Vyc2ZvdW5kJ10gPSAnQnJ1a2VyZSBzb20gcGFzc2VyIG1lZCBrcml0ZXJpZW5lJzsKJGxhbmdbJ2dyb3VwJ10gPSAnR3J1cHBlJzsKJGxhbmdbJ3NlbGVjdGdyb3VwJ10gPSAnVmVsZyBncnVwcGUnOwokbGFuZ1sncmVnaXN0cmF0aW9uX3RlbXBsYXRlJ10gPSAnTWFsIGZvciByZWdpc3RyZXJpbmcnOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnTWFsIGZvciB1dGxvZ2dpbmcnOwokbGFuZ1snbG9naW5fdGVtcGxhdGUnXSA9ICdNYWwgZm9yIGlubmxvZ2dpbmcnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJhbnNlcic7CiRsYW5nWyd1c2VycyddID0gJ0JydWtlcmUnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRnJvbnRlbmQgYnJ1a2VyZSc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0FkbWluaXN0cmVyIEZyb250ZW5kIGJydWtlcmUnOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gJ1N0YW5kYXJkIGZvcnNpZGUnOwokbGFuZ1snbGFzdGFjY2Vzc2VkcGFnZSddID0gJ1Npc3RlIHZpc3RlIHNpZGUnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnQW5uZW4gc2lkZTonOwokbGFuZ1snY2FwdGNoYV90aXRsZSddID0gJ09wcGdpIHRla3N0ZW4gZnJhIGJpbGRldCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3RwbHR5cGVfbG9naW5fZm9ybSddID0gJ0lubG9nIEZvcm11bGllcic7CiRsYW5nWyd0cGx0eXBlX2xvZ291dF9mb3JtJ10gPSAnVWl0bG9nIEZvcm11bGllcic7CiRsYW5nWydwcm9tcHRfZm9yJ10gPSAnVm9vcic7CiRsYW5nWydlcnJvcl9sb3N0dW5fYmFkcGFzc3dvcmQnXSA9ICdTb3JyeSwgbWFhciBoZXQgaW5nZXZvZXJkZSB3YWNodHdvb3JkIGlzIHZlcmtlZXJkJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl91c2Vybm90Zm91bmQnXSA9ICdTb3JyeSwgZGUgaW5mb3JtYXRpZSBkaWUgdSBpbmdldm9lcmQgaGVlZnQgcGFzdCBuaWV0IGJpaiBlZW4gYmVzdGFhbmQgZ2VicnVpa2Vyc2FjY291bnQnOwokbGFuZ1snZXJyb3JfeW91YXJlYWJvdCddID0gJ0h1bW0sIGhldCBsaWprdCBlciBvcCBkYXQgamlqIGVlbiBCT1QgYmVudCBvZiByYXJlIGRpbmdlbiBhYW4gaGV0IGRvZW4gYmVudC4uLic7CiRsYW5nWydlcnJvcl9kZWxldGVwcm9wJ10gPSAnRXIgaXMgZWVuIGZvdXQgb3BnZXRyZWRlbiBiaWogaGV0IHZlcndpamRlcmVuIHZhbiBkZXplIEVpZ2Vuc2NoYXAnOwokbGFuZ1snZXJyb3JfYWN0aW9uX25vdGNvbmZpcm1lZCddID0gJ09lcHMsIGhldCBsaWprdCBlciBvcCBkYXQgdSB2ZXJnZXRlbiBiZW50IGVlbiBiZWxhbmdyaWprZSBiZXdlcmtpbmcgdGUgYWNjb3JkZXJlbic7CiRsYW5nWydwcm9tcHRfY29uZmlybV9kZWxldGVwcm9wJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlemUgRWlnZW5zY2hhcCB3aWx0IHZlcndpamRlcmVuPyc7CiRsYW5nWydoZHJfZGVsZXRlcHJvcCddID0gJ0VpZ2Vuc2NoYXAgdmVyd2lqZGVyZW4nOwokbGFuZ1snbXNnX2NhbmNlbGxlZCddID0gJ0Jld2Vya2luZyBnZWFubnVsZWVyZCc7CiRsYW5nWyd0aXRsZV9hZGRfdXNlciddID0gJ05pZXV3IGdlYnJ1aWtlcnNhY2NvdW50IGFhbm1ha2VuJzsKJGxhbmdbJ21zZ19mb3JjZV9uZXdwdyddID0gJ1dlbGtvbS4gT20gdmVpbGlnaGVpZHNyZWRlbmVuIG1vZXQgdSBlZW4gbmlldXcgd2FjaHR3b29yZCBvcGdldmVuLic7CiRsYW5nWydsYmxfdGVtcGxhdGUnXSA9ICdTamFibG9vbic7CiRsYW5nWydmb3JjZV9uZXdwd190ZW1wbGF0ZSddID0gJ0ZvcmNlZXIgbmlldXcgd2FjaHR3b29yZCBzamFibG9vbic7CiRsYW5nWydwcm9tcHRfZm9yY2VfbmV3cHcnXSA9ICdGb3JjZWVyIGRlemUgZ2VicnVpa2VyIG9tIHppam4gd2FjaHR3b29yZCBvcG5pZXV3IGluIHRlIHN0ZWxsZW4gYmlqIGRlIHZvbGdlbmRlIGxvZ2luLic7CiRsYW5nWydwcm9tcHRfZGlzYWJsZWQnXSA9ICdJcyBkaXQgYWNjb3VudCB1aXRnZXNjaGFrZWxkPyc7CiRsYW5nWydlbmFibGVfdXNlciddID0gJ0dlYnJ1aWtlcnNhY2NvdW50IGluc2NoYWtlbGVuJzsKJGxhbmdbJ3RpdGxlX2ZvcmdvdHB3J10gPSAnVmVyZ2V0ZW4gd2FjaHR3b29yZCc7CiRsYW5nWyd2ZXJpZnlfaWRlbnRpdHknXSA9ICdWZXJpZmllZXIgdXcgaWRlbnRpdGVpdCc7CiRsYW5nWyc0MDNlcnJvciddID0gJ0dlbmVyZWVyIGVlbiA0MDMgZXJyb3InOwokbGFuZ1sncHJvbXB0X2VuaGFuY2VkcHcnXSA9ICdWZXJlaXMgZWVuIHN0ZXJrIHdhY2h0d29vcmQnOwokbGFuZ1sncHJvbXB0X3B3cmVxdWlyZWRjaGFycyddID0gJ1ZlcmVpcyBlZW4gdmFuIGRlemUga2FyYWt0ZXJzIGluIGhldCB3YWNodHdvb3JkJzsKJGxhbmdbJ2ltcG9ydF9kZWxldGVkdXNlciddID0gJ1ZlcndpamRlciBnZWJydWlrZXIgJXMnOwokbGFuZ1snZXJyb3JfZXhwb3J0X25vdXNlcnMnXSA9ICdHZWVuIEdlYnJ1aWtlcnNhY2NvdW50cyBnZXZvbmRlbiBvbSB0ZSBleHBvcnRlcmVuJzsKJGxhbmdbJ3Byb21wdF9leHBvcnRfdXNlcnMnXSA9ICdFeHBvcnRlZXIgR2VicnVpa2Vyc2FjY291bnRzJzsKJGxhbmdbJ3RpdGxlX2V4cG9ydF91c2VycyddID0gJ0V4cG9ydGVlciBkZSBnZWJydWlrZXJzIG5hYXIgZWVuIEFTQ0lJIGJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ1NjaGVpZGluZ3N0ZWtlbic7CiRsYW5nWydzb3J0YnlfdXNlcm5hbWVfYXNjJ10gPSAnR2VicnVpa2Vyc25hYW0gKG9wbG9wZW5kKSc7CiRsYW5nWydzb3J0YnlfdXNlcm5hbWVfZGVzYyddID0gJ0dlYnJ1aWtlcnNuYWFtIChhZmxvcGVuZCknOwokbGFuZ1snc29ydGJ5X2NyZWF0ZV9hc2MnXSA9ICdBYW5tYWFrZGF0dW0gKG9wbG9wZW5kKSc7CiRsYW5nWydzb3J0YnlfY3JlYXRlX2Rlc2MnXSA9ICdBYW5tYWFrZGF0dW0gKGFmbG9wZW5kKSc7CiRsYW5nWydzb3J0YnlfZXhwaXJlc19hc2MnXSA9ICdWZXJsb29wZGF0dW0gKG9wbG9wZW5kKSc7CiRsYW5nWydzb3J0YnlfZXhwaXJlc19kZXNjJ10gPSAnVmVybG9vcGRhdHVtIChhZmxvcGVuZCknOwokbGFuZ1snZW5jcnlwdGVkJ10gPSAnVmVyc2xldXRlbGQnOwokbGFuZ1snaW5mb19jb29raWVuYW1lJ10gPSAnU2NoYWtlbHQgZGUgInJlbWVtYmVyIG1lIiBmdW5jdGllIGluLiBEaXQgaXMgZ2VsaWprIGFhbiBkZSBjb29raWUga2VlcGFsaXZlIGZ1bmN0aWUsIG1hYXIgZGFuIHZvb3IgNjAgZGFnZW4uJzsKJGxhbmdbJ21zZ191c2VybmFtZV9yZWFkb25seSddID0gJ0hldCBpcyBuaWV0IHRvZWdlc3RhYW4gb20gZGUgZ2VicnVpa2Vyc25hYW0gdm9vciBkaXQgYWNjb3VudCBhYW4gdGUgcGFzc2VuJzsKJGxhbmdbJ21zZ19wYXNzd29yZF9yZWFkb25seSddID0gJ0hldCBpcyBuaWV0IHRvZWdlc3RhYW4gb20gaGV0IHdhY2h0d29vcmQgdm9vciBkaXQgYWNjb3VudCBhYW4gdGUgcGFzc2VuJzsKJGxhbmdbJ3Byb21wdF9ub3JtYWxsb2dpbiddID0gJ0RpcmVjdGUgTG9naW4nOwokbGFuZ1snbW92ZV91cCddID0gJ09taG9vZyc7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdPbWxhYWcnOwokbGFuZ1sndGl0bGVfcHJvcG1vZHVsZSddID0gJ0RlemUgcHJvcGVydHkgaXMgZ2VtYWFrdCBkb29yIGVlbiBtb2R1bGUgZW4ga2FuIG5pZXQgd29yZGVuIGFhbmdlcGFzdCc7CiRsYW5nWydub3RfYXZhaWxhYmxlJ10gPSAnTmlldCBiZXNjaGlrYmFhcic7CiRsYW5nWydwcm9tcHRfZGZsdF9jaGVja2VkJ10gPSAnU3RhbmRhYXJkIGhvb3J0IGRpdCB2ZWxkIGFhbmdldmlua3QgdGUgemlqbic7CiRsYW5nWydvcGVyYXRpb25fY29tcGxldGVkJ10gPSAnQWt0aWUgY29tcGxlZXQnOwokbGFuZ1snbWVtYmVycyddID0gJ0xlZGVuJzsKJGxhbmdbJ3ZpZXdfZmlsdGVyJ10gPSAnQmVraWprIEZpbHRlcic7CiRsYW5nWydkYXRhJ10gPSAnRGF0YSc7CiRsYW5nWydhcHBsaWVkJ10gPSAnVmVyd2Vya3QnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdpbmEnOwokbGFuZ1sncHJvbXB0X2FsbG93X2NoYW5nZXVzZXJuYW1lJ10gPSAnR2VicnVpa2Vyc25hYW0gd2lqemlnZW4gdG9lc3RhYW4nOwokbGFuZ1snaW5mb19hbGxvd19jaGFuZ2V1c2VybmFtZSddID0gJ0luZGllbiBpbmdlc2NoYWtlbGQgaXMgaGV0IGdlYnJ1aWtlcnMgdG9lZ2VzdGFhbiBvbSBkZSBlaWdlbiBnZWJydWlrZXJzbmFhbSBlbiBhbmRlcmUgaW5zdGVsbGluZ2VuIHRlIHdpanppZ2VuLic7CiRsYW5nWyd0ZW1wbGF0ZV9zYXZlZCddID0gJ1NqYWJsb29uIG9wZ2VzbGFnZW4nOwokbGFuZ1sndGVtcGxhdGVfcmVzZXRkZWZhdWx0cyddID0gJ1NqYWJsb29uIG5hYXIgc3RhbmRhYXJkIHRlcnVnemV0dGVuJzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ0luc3RlbGxpbmdlbic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnU2phYmxvbmVuJzsKJGxhbmdbJ2VuYWJsZV9jYXB0Y2hhJ10gPSAnU2NoYWtlbCBjYXB0Y2hhIGluIHZvb3IgaGV0IGxvZ2luZm9ybXVsaWVyJzsKJGxhbmdbJ2luZm9fZW5hYmxlX2NhcHRjaGEnXSA9ICdBbHMgZGUgZ2VicnVpa2VyIG5pZXQgaXMgYWFuZ2VtZWxkIGVuIGRlIG1vZHVsZXZvb3JrZXVyZW4gc3RhYW4gem8gaW5nZXN0ZWxkIGRhdCBlciBkYW4gZWVuIGxvZ2luZm9ybXVsaWVyIHdvcmR0IHdlZXJnZXZlbiwgZGFuIGt1bnQgdSBtZXQgZGV6ZSBvcHRpZSBhYW5nZXZlbiBvZiB1IHdpbHQgZGF0IGVyIGVlbiBjYXB0Y2hhIHdvcmR0IHdlZXJnZWdldmVuLiBBbGxlZW4gaW5kaWVuIGNhcHRjaGEgYmVzY2hpa2JhYXIgaXMuJzsKJGxhbmdbJ3BhZ2V0eXBlX3VuYXV0aG9yaXplZCddID0gJ1UgYmVudCBuaWV0IGJldm9lZ2Qgb20gZGUgaW5ob3VkIHZhbiBkZXplIHBhZ2luYSB0ZSB6aWVuJzsKJGxhbmdbJ2luZm9fY29udGVudHBhZ2VfZ3JvdXBsaXN0J10gPSAnTWFhayBlZW4gc2VsZWN0aWUgdmFuIEZFVSBncm9lcGVuIGRpZSB0b2VnYW5nIG1vZ2VuIGhlYmJlbiB0b3QgZGV6ZSBwYWdpbmEuIEFscyBlciBnZWVuIGdyb2VwZW4gZ2VzZWxlY3RlZXJkIHppam4sIGlzIGVsa2UgbWV0IEZFVSBpbmdlbG9nZGUgZ2VicnVpa2VyIGdlcmVjaHRpZ2Qgb20gZGV6ZSBwYWdpbmEgdGUgemllbi4nOwokbGFuZ1sncGFnZXR5cGVfc2V0dGluZ3MnXSA9ICdCZXZlaWxpZ2RlIHBhZ2luYSBpbnN0ZWxsaW5nZW4nOwokbGFuZ1sncGFnZXR5cGVfZ3JvdXBzJ10gPSAnVG9lZ2VzdGFuZSBncm9lcGVuJzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfZ3JvdXBzJ10gPSAnU2VsZWN0ZWVyIGRlIGdyb2VwKGVuKSBkaWUgc3RhbmRhYXJkIGRlIGFmZ2VzY2hlcm1kZSBwYWdpbmFcJ3MgbW9nZW4gemllbi4gRWVuIGVkaXRvciBtZXQgZGUgImJlaGVlciBhbGxlIGluaG91ZCAobWFuYWdlIGFsbCBjb250ZW50KSIgcmVjaHRlbiBrYW4gZGl0IHZvb3IgZWxrZSBwYWdpbmEgb3BoZWZmZW4uJzsKJGxhbmdbJ3BhZ2V0eXBlX2FjdGlvbiddID0gJ0Jld2Vya2luZyB2b29yIG5pZXQgdm9sZG9lbmRlIHJlY2h0ZW4nOwokbGFuZ1snaW5mb19wYWdldHlwZV9hY3Rpb24nXSA9ICdHZWVmIGRlIGFjdGllcyBhYW4gdm9vciBwZXJzb25lbiBkaWUgZGV6ZSBwYWdpbmEgYmVuYWRlcmVuIHpvbmRlciBkYXQgemUgdm9sZG9lbmRlIHJlY2h0ZW4gaGViYmVuLiBVIGt1bnQgb2Z3ZWwgbGF0ZW4gZG9vcnN0dXJlbiBuYWFyIGVlbiBiZXBhYWxkZSBwYWdpbmEgb2YgaGV0IGxvZ2luIGZvcm11bGllciB0b25lbi4nOwokbGFuZ1snc2hvd2xvZ2luZm9ybSddID0gJ1Rvb24gaGV0IExvZ2luIGZvcm11bGllcic7CiRsYW5nWydyZWRpcmVjdCddID0gJ0Rvb3J2ZXJ3aWp6ZW4gbmFhciBlZW4gcGFnaW5hJzsKJGxhbmdbJ3BhZ2V0eXBlX3JlZGlyZWN0dG8nXSA9ICdEb29ydmVyd2lqemVuIG5hYXInOwokbGFuZ1snaW5mb19wYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnR2VlZiBhYW4gbmFhciB3ZWxrZSBwYWdpbmEgZG9vcmdlc3R1dXJkIHdvcmR0LiBBbHMgdSBoaWVyIGdlZW4gcGFnaW5hIHNlbGVjdGVlcnQgZW4gZGUgYWN0aWUgc3RhYXQgaW5nZXN0ZWxkIG9wICJkb29yc3R1cmVuIiB6YWwgZGUgZ2VicnVpa2VyIGVlbiBiZXJpY2h0IGdldG9vbmQgd29yZGVuIGRhdCBoaWogZ2VlbiB0b2VnYW5nIGhlZWZ0IHRvdCBkZSBwYWdpbmEuJzsKJGxhbmdbJ3Blcm1pc3Npb25zJ10gPSAnUmVjaHRlbic7CiRsYW5nWydmZXVfcHJvdGVjdGVkX3BhZ2UnXSA9ICdCZXZlaWxpZ2RlIGluaG91ZCc7CiRsYW5nWydwcm9tcHRfdmlld3Byb3BzJ10gPSAnU2VsZWN0ZWVyIGV4dHJhIGVpZ2Vuc2NoYXBwZW4gb20gd2VlciB0ZSBnZXZlbic7CiRsYW5nWyd2aWV3J10gPSAnV2VlcmdldmVuJzsKJGxhbmdbJ2luZm9faWdub3JlX3VzZXJpZCddID0gJ1dhbm5lZXIgYWFuZ2V2aW5rdCB6YWwgZGUgaW1wb3J0IHJvdXRpbmUgcHJvYmVyZW4gZ2VicnVpa2VycyBvbmFmaGFua2VsaWprIHZhbiBkZSBVc2VySUQga29sb20gdG9lIHRlIHZvZWdlbi4gV2FubmVlciBlZW4gZ2VicnVpa2VyIGJlc3RhYXQgbWV0IGRlemVsZmRlIG5hYW0sIHphbCBlZW4gZm91dG1lbGRpbmcgd29yZGVuIHdlZXJnZWdldmVuLic7CiRsYW5nWydpZ25vcmVfdXNlcmlkJ10gPSAnU2xhIFVzZXJJRCBrb2xvbSBvdmVyIGJpaiBpbXBvcnRlcmVuJzsKJGxhbmdbJ2V4cG9ydF9wYXNzaGFzaCddID0gJ0V4cG9ydGVlciBkZSB3YWNodHdvb3JkIGhhc2ggbmFhciBoZXQgYmVzdGFuZCc7CiRsYW5nWydpbmZvX2V4cG9ydF9wYXNzaGFzaCddID0gJ0RlIHdhY2h0d29vcmQgaGFzaCBpcyBlbmtlbCBudXR0aWcgYWxzIGRlIHdhY2h0d29vcmR2ZXJzbGV1dGVsaW5nc2NvZGUgb3AgZGUgaW1wb3J0ZXJlbmRlIGhvc3RzIGlkZW50aWVrIGlzIGFhbiBkZWdlbmUgb3AgZGUgZXhwb3J0ZXJlbmRlIGhvc3QnOwokbGFuZ1snZXJyb3JfYWRqdXN0c2FsdCddID0gJ0RlIHdhY2h0d29vcmR2ZXJzbGV1dGVsaW5nc2NvZGUga2FuIG5pZXQgd29yZGVuIGFhbmdlcGFzdCc7CiRsYW5nWydwcm9tcHRfcHdzYWx0J10gPSAnV2FjaHR3b29yZHZlcnNsZXV0ZWxpbmcnOwokbGFuZ1snaW5mb19wd3NhbHQnXSA9ICdGcm9udEVuZFVzZXJzIHZvZWd0IHZlcnNsZXV0ZWxpbmcgdG9lIGFhbiB3YWNodHdvb3JkZW4uIERlIHNsZXV0ZWwgd29yZHQgZ2VnZWdlbmVlcmQgdGlqZGVucyBkZSBpbnN0YWxsYXRpZS4gRGV6ZSBzbGV1dGVsIGthbiBuaWV0IHdvcmRlbiBnZXdpanppZ2QuIERlIHZlcnNsZXV0ZWxpbmdzY29kZSBrYW4gbGVlZyB6aWpuIGJpaiBvdWRlIGluc3RhbGxhdGllcy4nOwokbGFuZ1snYWR2YW5jZWRfc2V0dGluZ3MnXSA9ICdVaXRnZWJyZWlkZSBpbnN0ZWxsaW5nZW4nOwokbGFuZ1snaW5mb19zZXNzaW9udGltZW91dCddID0gJ0dlZWYgaGV0IGFhbnRhbCBzZWNvbmRlbiBvcCB2b29yZGF0IGVlbiBpbmFjdGlldmUgZ2VicnVpa2VyIGF1dG9tYXRpc2NoIG1vZXQgd29yZGVuIGFmZ2VtZWxkIHZhbiBkZSB3ZWJzaXRlJzsKJGxhbmdbJ3Byb21wdF9leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ0ludGVydmFsIGdlYnJ1aWtlcnN2ZXJsb29wJzsKJGxhbmdbJ2luZm9fZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdHZWVmIGVlbiB3YWFyZGUgb3AgKGluIHNlY29uZGVuKSBkaWUgYWFuZ2VlZnQgaG9lIHZhYWsgaGV0IHN5c3RlZW0gbW9ldCBjb250cm9sZXJlbiB3ZWxrZSBnZWJydWlrZXJzc2Vzc2llIHppam4gdmVybG9wZW4gZW4gYWZnZW1lbGQgbW9ldGVuIHdvcmRlbi4gRGl0IGlzIGVlbiBvcHRpbWFsaXNhdGVpIG9tIGRhdGFiYXNlcXVlcnlcJ3MgdGUgYmVzcGFyZW4uIEFscyB1IGRpdCB2ZWxkIGxlZWcgbGFhdCBvZiAwIGludm9lcnQgZGFuIHphbCBoZXQgd29yZGVuIHVpdGdldm9lcmQgYmlqIGllZGVyZSBhYW52cmFhZy4nOwokbGFuZ1snbXNnX3NldHRpbmdzY2hhbmdlZCddID0gJ1V3IGluc3RlbGxpbmdlbiB6aWpuIHN1Y2Nlc3ZvbCBiaWpnZXdlcmt0JzsKJGxhbmdbJ2ZvcmNlZGxvZ291dHRhc2tfZGVzYyddID0gJ1ZlcnBsaWNodCBnZWJydWlrZXJzIG9tIGFmIHRlIG1lbGRlbiBvcCByZWdlbG1hdGlnZSBpbnRlcnZhbGxlbic7CiRsYW5nWydwcm9tcHRfZm9yY2Vsb2dvdXRfdGltZXMnXSA9ICdUaWpkIHZvb3IgZ2Vkd29uZ2VuIGFmbWVsZGVuJzsKJGxhbmdbJ2luZm9fZm9yY2Vsb2dvdXRfdGltZXMnXSA9ICdHZWVmIGVlbiBsaWpzdCBtZXQga29tbWFnZXNjaGVpZGVuIHdhYXJkZW4gdmFuIHRpamRlbiBvcCAoYmlqdm9vcmJlZWxkOiBISDpNTSxISDpNTSkgd2Fhcm9wIGdlYnJ1aWtlciBnZWZvcmNlZXJkIGFmZ2VtZWxkIHdvcmRlbi4gT3BtZXJraW5nOiBkaXQgZ2VicnVpa3QgaGV0IHBzZXVkb2Nyb24gbWVjaGFuaXNtZSBlbiB1IG1vZXQgemVrZXIgemlqbiBkYXQgZGUgaW5nZXZvZXJkZSB0aWpkZW4genVsbGVuIHNhbWVudmFsbGVuIG1ldCB1dyBcJ3BzZXVkb2Nyb24gZ3JhbnVsYXJpdHlcJyBlbiBkYXQgZGVyZ2VsaWprZSBhYW52cmFnZW4genVsbGVuIHdvcmRlbiB1aXRnZXZvZXJkIG9wIHV3IHdlYnNpdGUgb20gdGUgY29udHJvbGVyZW4gb2YgZGUgcHNldWRvY3JvbiBpcyB1aXRnZXZvZXJkLic7CiRsYW5nWydwcm9tcHRfZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSddID0gJ1NsdWl0IGdlYnJ1aWtlcnMgdWl0IGRpZSBhY3RpZWYgemlqbiBnZXdlZXN0IGluIGRlIGxhYXRzdGUgPGVtPihtaW51dGVuKTwvZW0+JzsKJGxhbmdbJ2luZm9fZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSddID0gJ0FscyBkaXQgaXMgb3BnZWdldmVuLCB6dWxsZW4gZ2VicnVpa2VycyBkaWUgYWN0aWVmIHdhcmVuIGluIGRpdCBhYW50YWwgbW9ldGVuIG5pZXQgd29yZGVuIGdlZHdvbmdlbiBvbSBhZiB0ZSBtZWxkZW4nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGUnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBnZWJydWlrZXIgd2lsdCB2ZXJ3aWpkZXJlbiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZWV4dGVuc2lvbiddID0gJ0hldCBnZcO8cGxvYWRlIGJlc3RhbmQgaXMgZWVuIG5pZXQgdG9lZ2VzdGFhbiBiZXN0YW5kc3R5cGUnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbGUgYmlqYmVob3JlbmRlIGRhdGEgdmFuIGRlIEZyb250RW5kVXNlcnMgbW9kdWxlIGlzIHZlcndpamRlcmQnOwokbGFuZ1snaW5mb19lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnSW5kaWVuIGluZ2VzY2hha2VsZCB6YWwgZGV6ZSBtb2R1bGUgc2FtZW53ZXJrZW4gbWV0IGRlIEUtY29tbWVyY2Ugc3VpdGUuIERlIHZvbGdlbmRlIGluc3RlbGxpbmdlbiB3ZXJrZW4gYWxsZWVuIHdhbm5lZXIgZGV6ZSBpbnN0ZWxsaW5nIGlzIGluZ2VzY2hha2VsZC4nOwokbGFuZ1sncHJvbXB0X2Vjb21tX3BhaWRyZWdpc3RyYXRpb24nXSA9ICdWb2xnb3JkZSB2b29yIHNvcnRlcmVuIHZhbiBnZWJldXJ0ZW5pc3Nlbic7CiRsYW5nWydpbmZvX3BhaWRyZWdfc2V0dGluZ3MnXSA9ICdEZSB2b2xnZW5kZSBpbnN0ZWxsaW5nZW4gemlqbiBhbGxlZW4gYWN0aWVmIGluZGllbiBlciBnZWJydWlrIHdvcmR0IGdlbWFha3QgdmFuIHplbGZyZWdpc3RyYXRpZSBlbiBlciBiZXRhYWxkIHdvcmR0IHZvb3IgcmVnaXN0cmF0aWUnOwokbGFuZ1snbm9uZSddID0gJ0dlZW4nOwokbGFuZ1snZGVsZXRlX3VzZXInXSA9ICdWZXJ3aWpkZXIgZ2VicnVpa2VyJzsKJGxhbmdbJ2V4cGlyZV91c2VyJ10gPSAnVmVybG9vcCBnZWJydWlrZXInOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmNhbmNlbGxlZCddID0gJ0Jld2Vya2luZyBvbSB1aXQgdGUgdm9lcmVuIGluZGllbiBhYW5tZWxkaW5nc3ZlcnpvZWsgaXMgZ2Vhbm51bGVlcmQnOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmRlbGV0ZWQnXSA9ICdCZXdlcmtpbmcgb20gdWl0IHRlIHZvZXJlbiBpbmRpZW4gYWFubWVsZGluZ3N2ZXJ6b2VrIGlzIHZlcndpamRlcmQnOwokbGFuZ1snZWNvbW1lcmNlX3NldHRpbmdzJ10gPSAnRS1jb21tZXJjZSBpbnN0ZWxsaW5nZW4nOwokbGFuZ1snc2VjdXJlZmllbGRtYXJrZXInXSA9ICdCZXZlaWxpZ2QgdmVsZCBtYXJrZXInOwokbGFuZ1snc2VjdXJlZmllbGRjb2xvciddID0gJ0JldmVpbGlnZCB2ZWxkIGtsZXVyJzsKJGxhbmdbJ3Byb21wdF9lbmNyeXB0J10gPSAnU2xhIGRlemUgZGF0YSBiZXZlaWxpZ2Qgb3AgaW4gZGUgZGF0YWJhc2UnOwokbGFuZ1snZXJyb3Jfbm90c3VwcG9ydGVkJ10gPSAnRGV6ZSBvcHRpZSB3b3JkdCBuaWV0IG9uZGVyc3RldW5kIGluIHV3IGh1aWRpZ2UgY29uZmlndXJhdGllJzsKJGxhbmdbJ2F1ZGl0X3VzZXJfY3JlYXRlZCddID0gJ0dlYnJ1aWtlciBhdXRvbWF0aXNjaCBnZWNyZcOrZXJkJzsKJGxhbmdbJ2luZm9fYXV0b19jcmVhdGVfdW5rbm93biddID0gJ0luZGllbiBkZSBnZWJydWlrZXIgd29yZHQgZ2Vjb250cm9sZWVyZCBkb29yIGVlbiBleHRlcm5lIGF1dGhlbmNhdGllbW9kdWxlIGRpZSBuaWV0IGJla2VuZCBpcyBpbiBGcm9udEVuZFVzZXJzIG1vZHVsZSBtb2V0IGVyIGRhbiBhdXRvbWF0aXNjaCBlZW4gRkVVIGFjY291bnQgd29yZGVuIGFhbmdlbWFha3Q/JzsKJGxhbmdbJ3Byb21wdF9hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnQXV0b21hdGlzY2ggb25iZWtlbmRlIGdlYnJ1aWtlcnMgYWFubWFrZW4nOwokbGFuZ1snZGlzcGxheV9zZXR0aW5ncyddID0gJ1dlZXJnYXZlIGluc3RlbGxpbmdlbic7CiRsYW5nWydpbmZvX3N0ZF9hdXRoX3NldHRpbmdzJ10gPSAnRGUgdm9sZ2VuZGUgaW5zdGVsbGluZ2VuIHdvcmRlbiBhbGxlZW4gdG9lZ2VwYXN0IGluZGllbiBlciBnZWJydWlrIHdvcmR0IGdlbWFha3QgdmFuIGRlIFwnSW5nZWJvdXdkZSBhdXRoZW50aWNhdGllXCcuJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0dW4nXSA9ICdBbHMgdSBOZWUgc2VsZWN0ZWVydCB6YWwgZGUgb3B0aWUgdm9vciBkZSBnZWJydWlrZXIgb20gdmVybG9yZW4gbG9naW4gaW5mb3JtYXRpZSB1aXRnZXNjaGFrZWxkIHdvcmRlbiwgb25nZWFjaHQgYW5kZXJlIGluc3RlbGxpbmdlbic7CiRsYW5nWydpbmZvX3N1cHBvcnRfbG9zdHB3J10gPSAnQWxzIHUgTmVlIHNlbGVjdGVlcnQgemFsIGRlIG9wdGllIHZvb3IgZGUgZ2VicnVpa2VyIG9tIGhldCB3YWNodHdvb3JkIG9wbmlldXcgaW4gdGUgc3RlbGxlbiwgdWl0Z2VzY2hha2VsZCB3b3JkZW4uIERpdCBvbmdlYWNodCBhbmRlcmUgaW5zdGVsbGluZ2VuLic7CiRsYW5nWydwcm9tcHRfc3VwcG9ydF9sb3N0dW4nXSA9ICdTdGEgZ2VicnVpa2VycyB0b2UgaHVuIGdlYnJ1aWtlcnNuYWFtIG9wIHRlIHZyYWdlbic7CiRsYW5nWydwcm9tcHRfc3VwcG9ydF9sb3N0cHcnXSA9ICdTdGEgZ2VicnVpa2VycyB0b2UgZWVuIG5pZXV3IHdhY2h0d29vcmQgYWFuIHRlIHZyYWdlbic7CiRsYW5nWydhdXRoX3NldHRpbmdzJ10gPSAnQXV0aGVuY2F0aWUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ2F1dGhlbnRpY2F0aW9uJ10gPSAnSW5nZWJvdXdkZSBhdXRoZW5jYXRpZSc7CiRsYW5nWydhdXRoX2J1aWx0aW4nXSA9ICdTdGFuZGFhcmQgRkVVIEF1dGhlbmNhdGllJzsKJGxhbmdbJ2F1dGhfbW9kdWxlJ10gPSAnQXV0aGVuY2F0aWUgTW9kdWxlL01ldGhvZGUnOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ0RlIEZyb250ZW5kVXNlcnMgbW9kdWxlIG9uZGVyc3RldW5kIGFsdGVybmF0aWV2ZSBhdXRoZW50aWNhdGllIG1ldGhvZGVzIG1ldCB2ZXJzY2hpbGxlbmRlIG1vZ2VsaWpraGVkZW4uIFNvbW1pZ2UgZnVuY3Rpb25hbGl0ZWl0IHphbCBuaWV0IHdlcmtlbiBhbHMgdSBnZWVuIGdlYnJ1aWsgbWFha3QgdmFuIGRlIGluZ2Vib3V3ZGUgYXV0aGVudGljYXRpZSBtZXRob2RlLic7CiRsYW5nWydlcnJvcl91c2VyX25vbnVuaXF1ZV9maWVsZF92YWx1ZSddID0gJ0RlIHdhYXJkZSBpbmdldnVsZCB2b29yICVzIGlzIGFsIGluIGdlYnJ1aWsgYmlqIGVlbiBhbmRlcmUgZ2VicnVpa2VyJzsKJGxhbmdbJ3VuaXF1ZSddID0gJ1VuaWVrJzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZV9maWVsZF92YWx1ZSddID0gJ0RlIHdhYXJkZSBpbmdlc3RlbGQgdm9vciAlcyAoJXMpIGlzIG5pZXQgdW5pZWsnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ0RlemUgZWlnZW5zY2hhcCBtb2V0IHVuaWVrIHppam4gdGVuIG9wIHppY2h0ZSB2YW4gYWxsZSBnZWJydWlrZXJzJzsKJGxhbmdbJ3RpdGxlX3Jlc2V0X3Nlc3Npb24nXSA9ICdMb2dpbnNlc3NpZSB0aW1lb3V0IHdhYXJzY2h1d2luZyc7CiRsYW5nWydtc2dfcmVzZXRfc2Vzc2lvbiddID0gJ1V3IGxvZ2luIHNlc3NpZSBpcyBiaWpuYSB2ZXJsb3Blbi4gS2xpayBvcCBPSyBvbSB1dyBhY3Rpdml0ZWl0IG9wIGRlIHdlYnNpdGUgdGUgYmV2ZXN0aWdlbi4nOwokbGFuZ1snb2snXSA9ICdPSyc7CiRsYW5nWydyZXNldHNlc3Npb25fdGVtcGxhdGUnXSA9ICdIZXJzdGVsIFNlc3NpZSBTamFibG9vbic7CiRsYW5nWydpbmZvX25hbWUnXSA9ICdEaXQgaXMgZGUgdmVsZG5hYW0sIGRlemUga2FuIGFhbmdlcm9lcGVuIHdvcmRlbiBpbiBlZW4gc21hcnR5LiBIZXQgbWFnIGFsbGVlbiBiZXN0YWFuIHVpdCBhbGZhbnVtZXJpZWtlIHRla2VucyBlbiB1bmRlcnNjb3Jlcy4nOwokbGFuZ1sndmlzaXRvcnNfdGFiJ10gPSAnQmV6b2VrZXJzJzsKJGxhbmdbJ2ZldV9ncm91cHNfcHJvbXB0J10gPSAnU2VsZWN0ZWVyIGVlbiBvZiBtZWVyIEZFVS1ncm9lcGVuIGRpZSBkZXplIHBhZ2luYSBtb2dlbiB6aWVuJzsKJGxhbmdbJ2Vycm9yX211c3RzZWxlY3RfZ3JvdXAnXSA9ICdFciBtb2V0IGVlbiBncm9lcCB6aWpuIGdlc2VsZWN0ZWVyZCc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdTZWxlY3RlZXIgw6nDqW4nOwokbGFuZ1snc3RhcnRfeWVhciddID0gJ1N0YXJ0IGphYXInOwokbGFuZ1snZW5kX3llYXInXSA9ICdFaW5kIGphYXInOwokbGFuZ1snZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ3Byb21wdF90aHVtYm5haWxfc2l6ZSddID0gJ01pbmlhdHV1cmFmbWV0aW5nJzsKJGxhbmdbJ09uVXBkYXRlR3JvdXAnXSA9ICdHZWJydWlrZXJzZ3JvZXAgZ2V3aWp6aWdkJzsKJGxhbmdbJ2Vycm9yX3Rvb21hbnlzZWxlY3RlZCddID0gJ1RlIHZlZWwgZ2VicnVpa2VycyBnZXNlbGVjdGVlcmQgdm9vciBlZW4gYnVsayBvcGVyYXRpZS4uLiBWZXJsYWFnIGhldCBhYW50YWwgdG90IDI1MCBvZiBtaW5kZXIuJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGRlIGdlc2VsZWN0ZWVyZGUgZ2VicnVpa2VycyB3aWx0IHZlcndpamRlcmVuPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdWZXJ3aWpkZXIgZ2VzZWxlY3RlZXJkZW4nOwokbGFuZ1sncHJvbXB0X3JhbmRvbXVzZXJuYW1lJ10gPSAnR2VuZXJlZXIgd2lsbGVrZXVyaWdlIGdlYnJ1aWtlcnNuYW1lbiB3YW5uZWVyIGVyIG5pZXV3ZSBnZWJydWlrZXJzIHdvcmRlbiBhYW5nZW1hYWt0JzsKJGxhbmdbJ21vbnRocyddID0gJ21hYW5kZW4nOwokbGFuZ1sncHJvbXB0X2V4cGlyZWFnZSddID0gJ1N0YW5kYWFyZCBnZWJydWlrZXIgdmVybG9vcHBlcmlvZGUnOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnTm90aWZpY2F0aWUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnRWlnZW5zY2hhcCBpbnN0ZWxsaW5nZW4nOwokbGFuZ1sncmVkaXJlY3Rpb25fc2V0dGluZ3MnXSA9ICdWZXJ3aWp6aW5nc2luc3RlbGxpbmdlbic7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnQWxnZW1lbmUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3Nlc3Npb25fc2V0dGluZ3MnXSA9ICdTZXNzaWUgZW4gY29va2llIGluc3RlbGxpbmdlbic7CiRsYW5nWydmaWVsZF9zZXR0aW5ncyddID0gJ1ZlbGRpbnN0ZWxsaW5nZW4nOwokbGFuZ1sncHJvcF90ZXh0YXJlYV93eXNpd3lnJ10gPSAnU3RhIGhldCBnZWJydWlrIHZhbiBXWVNJV1lHIHRvZSB2b29yIGRpdCB0ZWtzdHZlbGQnOwokbGFuZ1snZWRpdGluZ191c2VyJ10gPSAnQWFucGFzc2VuIGdlYnJ1aWtlcic7CiRsYW5nWydub2lubGluZSddID0gJ0dlYnJ1aWsgZ2VlbiBpbmxpbmUgZm9ybXVsaWVyZW4nOwokbGFuZ1snaW5mb19sb3N0dW4nXSA9ICdLbGlrIGhpZXIgYWxzIHUgdXcgaW5sb2dnZWdldmVucyBiZW50IHZlcmdldGVuJzsKJGxhbmdbJ2luZm9fZm9yZ290cHcnXSA9ICdLbGlrIGhpZXIgYWxzIHUgdXcgd2FjaHR3b29yZCBiZW50IHZlcmdldGVuJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnS2xpayBoaWVyIG9tIGFmIHRlIG1lbGRlbic7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnS2xpayBoaWVyIG9tIHV3IHdhY2h0d29vcmQgZW4gYW5kZXJlIGluZm9ybWF0aWUgaW4gdGUgc3RlbGxlbic7CiRsYW5nWyd2aWV3dXNlcl90ZW1wbGF0ZSddID0gJ0dlZWYgZ2VicnVpa2Vyc3RlbXBsYXRlIHdlZXInOwokbGFuZ1snZXZlbnQnXSA9ICdHZWJldXJ0ZW5pcyc7CiRsYW5nWydmZXVfZXZlbnRfbm90aWZpY2F0aW9uJ10gPSAnRkVVIEdlYmV1cnRlbmlzc2Vubm90aWZpY2F0aWUnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnTm90aWZpY2F0aWUgZS1tYWlsYWRyZXMnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ05vdGlmaWNhdGllIGUtbWFpbCB0ZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICdOb3RpZmljYXRpZSBlLW1haWxvbmRlcndlcnAnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdFLW1haWwgbm90aWZpY2F0aWVzJzsKJGxhbmdbJ09uTG9naW4nXSA9ICdCaWogYWFubWVsZGVuJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnQmlqIGFmbWVsZGVuJzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ0JpaiB2ZXJsb29wIHZhbiBzZXNzaWUnOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnQmlqIGhldCBhYW5tYWtlbiB2YW4gbmlldXdlIGdlYnJ1aWtlcic7CiRsYW5nWydPbkRlbGV0ZVVzZXInXSA9ICdCaWogaGV0IHZlcndpamRlcmVuIHZhbiBlZW4gZ2VicnVpa2VyJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ1dhbm5lZXIgZ2VicnVpa2Vyc2luc3RlbGxpbmdlbiB3b3JkZW4gZ2V3aWp6aWdkJzsKJGxhbmdbJ09uQ3JlYXRlR3JvdXAnXSA9ICdXYW5uZWVyIGVlbiBnZWJydWlrZXJzZ3JvZXAgd29yZHQgYWFuZ2VtYWFrdCc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnV2FubmVlciBlZW4gZ2VicnVpa2Vyc2dyb2VwIHdvcmR0IHZlcndpamRlcmQnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wcmVtc2cnXSA9ICdEZSB2ZXJsb3JlbiBsb2dpbi1nZWdldmVucyBmdW5jdGlvbmFsaXRlaXQgaXMgc3VjY2Vzdm9sIGFmZ2Vyb25kLiBXZSBoZWJiZW4gZWVuIHVuaWVrZSBnZWJydWlrZXJzbmFhbSBnZXZvbmRlbiBkaWUgb3ZlcmVlbmtvbXQgbWV0IGRlIGdlZ2V2ZW5zIGRpZSB1IGhlYnQgb3BnZWdldmVuLic7CiRsYW5nWyd5b3VyX3VzZXJuYW1lX2lzJ10gPSAnVXcgZ2VicnVpa2Vyc25hYW0gaXMnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAnV2UgYmV2ZWxlbiB1IGFhbiBvbSBkZXplIGluZm9ybWF0aWUgb3AgZWVuIHZlaWxpZ2UgbWFhciB3ZWwgdG9lZ2Fua2VsaWprZSBwbGFhdHMgb3AgdGUgc2xhYW4uJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdQYWdpbmEgSUQvQWxpYXMgb20gbmFhciBkb29yIHRlIHZlcndpanplbiBuYSBoZXQgd2lqemlnZW4gdmFuIGluc3RlbGxpbmdlbic7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfdmVyaWZ5X2NvZGUnXSA9ICdQYWdpbmEgSUQvQWxpYXMgb20gbmFhciBkb29yIHRlIHZlcndpanplbiBuYSBkZSBjb2RldmVyaWZpY2F0aWUgKic7CiRsYW5nWydsb3N0dW5fZGV0YWlsc190ZW1wbGF0ZSddID0gJ1ZlcmdldGVuIGdlYnJ1aWtlcnNuYWFtIGRldGFpbHMgc2phYmxvb24nOwokbGFuZ1snbG9zdHVuX2NvbmZpcm1fdGVtcGxhdGUnXSA9ICdWZXJnZXRlbiBnZWJydWlrZXJzbmFhbSBiZXZlc3RpZ2luZ3Mgc2phYmxvb24nOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlbWF0Y2gnXSA9ICdGb3V0OiBNZWVyIGRhbiBlZW4gZ2VicnVpa2Vyc2FjY291bnQga29tdCBvdmVyZWVuIG1ldCBkZSBvcGdlZ2V2ZW4gZWlnZW5zY2hhcHBlbic7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdGb3V0OiBLYW4gZ2VlbiBvdmVyZWVua29tc3RpZ2UgZ2VicnVpa2VyIHZpbmRlbic7CiRsYW5nWydlcnJvcl9ncm91cG5vdGZvdW5kJ10gPSAnRm91dDogS2FuIGdlZW4gZ3JvZXAgdmluZGVuIG1ldCBkZSBvcGdlZ2V2ZW4gbmFhbSc7CiRsYW5nWydyZWFkb25seSddID0gJ0FsbGVlbiBsZXplbic7CiRsYW5nWydwcm9tcHRfdXNlcm1hbmlwdWxhdG9yJ10gPSAnR2VicnVpa2VyIG1hbmlwdWxhdG9yIGtsYXNzZSc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdBZmdlbWVsZCBkb29yIGFkbWluaXN0cmF0b3InOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ0xhYXQgYWxsZWVuIGluZ2Vsb2dkZSBnZWJydWlrZXJzIHppZW4nOwokbGFuZ1sncHJvbXB0X2xvZ291dCddID0gJ01lbGQgZGV6ZSBnZWJydWlrZXIgYWYnOwokbGFuZ1sndXNlcl9wcm9wZXJ0aWVzJ10gPSAnR2VicnVpa2VyZWlnZW5zY2hhcHBlbic7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0dlYnJ1aWtlcnNnZXNjaGllZGVuaXMnOwokbGFuZ1snZXhwb3J0J10gPSAnRXhwb3J0ZXJlbic7CiRsYW5nWydjbGVhciddID0gJ0hlcnN0ZWxsZW4nOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJoaXN0b3J5J10gPSAnRXhwb3J0ZWVyIGdlYnJ1aWtlcnNnZXNjaGllZGVuaXMgbmFhciBBU0NJSSB2YW4gbWluc3RlbnMnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdWZXJ3aWpkZXIgZ2VicnVpa2Vyc2dlc2NoaWVkZW5pcyB2YW4gcmVjb3JkcyBkaWUgbWluc3RlbnMnOwokbGFuZ1sndGl0bGVfbG9zdHVzZXJuYW1lJ10gPSAnQWNjb3VudGdlZ2V2ZW5zIHZlcmdldGVuPyc7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdFeHBvcnRlZXIgZ3JvZXBzZGVmZW5pdGllIChlbiBlaWdlbnNjaGFwcGVuKSBuYWFyIFhNTCc7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeW1haW50ZW5hbmNlJ10gPSAnT25kZXJob3VkIGdlYnJ1aWtlcnNnZXNjaGllZGVuaXMnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnVmFuJzsKJGxhbmdbJ2RhdGVfYWxscmVjb3JkcyddID0gJyoqIEdlZW4gbGltaWV0ICoqJzsKJGxhbmdbJ2RhdGVfb25laG91cm9sZCddID0gJ0VlbiB1dXIgb3VkJzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJ1plcyB1dXIgb3VkJzsKJGxhbmdbJ2RhdGVfdHdlbHZlaG91cm9sZCddID0gJ1R3YWFsZiB1dXIgb3VkJzsKJGxhbmdbJ2RhdGVfb25lZGF5b2xkJ10gPSAnRWVuIGRhZyBvdWQnOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnRWVuIHdlZWsgb3VkJzsKJGxhbmdbJ2RhdGVfdHdvd2Vla3NvbGQnXSA9ICdUd2VlIHdla2VuIG91ZCc7CiRsYW5nWydkYXRlX29uZW1vbnRob2xkJ10gPSAnRWVuIG1hYW5kIG91ZCc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnRHJpZSBtYWFuZGVuIG91ZCc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ1plcyBtYWFuZGVuIG91ZCc7CiRsYW5nWydkYXRlX29uZXllYXJvbGQnXSA9ICdFZW4gamFhciBvdWQnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnR3JvZXBlcmVuIGVuIHNvcnRlcmVuJzsKJGxhbmdbJ3Byb21wdF9yZWNvcmRzZm91bmQnXSA9ICdSZWNvcmRzIGRpZSBvdmVyZWVua29tZW4gbWV0IGhldCB2b2xnZW5kZSBjcml0ZXJpdW0nOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2Rlc2MnXSA9ICdBZmxvcGVuZCBvcCBnZWJydWlrZXJzbmFhbSc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfYXNjJ10gPSAnT3Bsb3BlbmQgb3AgZ2VicnVpa2Vyc25hYW0nOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfZGVzYyddID0gJ0FmbG9wZW5kIG9wIGRhdHVtJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2FzYyddID0gJ09wbG9wZW5kIG9wIGRhdHVtJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ0FmbG9wZW5kIG9wIGdlYmV1cnRlbmlzdHlwZSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2FzYyddID0gJ09wbG9wZW5kIG9wIGdlYmV1cnRlbmlzdHlwZSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdBZmxvcGVuZCBvcCBJUCBBZHJlcyc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2FzYyddID0gJ09wbG9wZW5kIG9wIElQIEFkcmVzJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdHZWVuIGdlc2NoaWVkZW5pcyBnZXZvbmRlbic7CiRsYW5nWydyZXNldCddID0gJ0hlcnN0ZWxsZW4nOwokbGFuZ1sncHJvbXB0X2dyb3VwX2lwJ10gPSAnU29ydGVyZW4gb3AgSVAgYWRyZXMnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnXSA9ICdHZWJldXJ0ZW5pc3R5cGUgZmlsdGVyJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ0FsbGVlbiBnZWJldXJ0ZW5pc3NlbiB3ZWVyZ2V2ZW4gZGllIG1pbmRlciB6aWpuIGRhbic7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnUGFnaW5hbGltaWV0JzsKJGxhbmdbJ2ZvciddID0gJ3Zvb3InOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdHZWJydWlrZXJzZ2VzY2hpZWRlbmlzcmFwcG9ydCc7CiRsYW5nWyd1bmtub3duJ10gPSAnT25iZWtlbmQnOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0lQIEFkcmVzJzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICdHZWJldXJ0ZW5pc3R5cGUnOwokbGFuZ1sncHJvbXB0X2RhdGUnXSA9ICdEYXR1bSc7CiRsYW5nWydwcm9tcHRfcmV0dXJuJ10gPSAnVGVydWcnOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ0ltcG9ydCB2b2x0b29pZCc7CiRsYW5nWydwcm9tcHRfbGluZXNwcm9jZXNzZWQnXSA9ICdSZWdlbHMgdWl0Z2V2b2VyZCc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnUHJvYmxlbWVuIG9wZ2V0cmVkZW4nOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ1JlY29yZHMgdG9lZ2V2b2VnZCc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnS2FuIGdlZW4gZWlnZW5zY2hhcHBlbiB2aW5kZW4gdm9vciBkZSBncm9lcCAlcyc7CiRsYW5nWydlcnJvcl9ub3Jlc3BvbnNlZnJvbXNlcnZlciddID0gJ0tyaWpndCBnZWVuIHJlYWN0aWUgdmFuIGRlIFNNVFAtc2VydmVyJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ0hldCBiZXN0YW5kICglcykga2FuIG5pZXQgZ2V2b25kZW4gd29yZGVuJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICdPbmdlbGRpZ2Ugd2FhcmRlIHZvb3IgZHJvcGRvd24gb2YgbWVlcmtldXplIHZlbGQgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdIZXQgdmVsZCAlcyBvdmVyc2NocmlqZHQgZGUgbWF4aW11bSBsZW5ndGUnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnQgZm91dCAocmVnZWwgJXMpOiAlcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0eWRlZm5zJ10gPSAnS2FuIGRlIGVpZ2Vuc2NoYXAgZGVmZW5pdGllcyBuaWV0IHZpbmRlbiAoaW50ZXJuZSBmb3V0KSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ2luZm8nXSA9ICdQcm9ibGVlbSBtZXQgaGV0IHZlcmtyaWpnZW4gdmFuIGdlYnJ1aWtlcnNpbmZvcm1hdGllJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHJlcXVpcmVkZmllbGQnXSA9ICdLYW4gZ2VlbiBrb2xvbSB2aW5kZW4gZGllIG92ZXJlZW5rb210IG1ldCBoZXQgdmVyZWlzdGUgdmVsZCAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ0thbiBnZWVuIGVpZ2Vuc2NoYXBwZW4gdmluZGVuIHZvb3IgZGUgZ2VzcGVjaWZpY2VlcmRlIGdyb2VwJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVmb3JtYXQnXSA9ICdIZXQgYmVzdGFuZCBhYW5nZWdldmVuIHZvb3IgZGUgaW1wb3J0IGlzIG5pZXQgaW4gaGV0IGp1aXN0ZSBmb3JtYWF0JzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90b3BlbmZpbGUnXSA9ICdLYW4gYmVzdGFuZCBuaWV0IG9wZW5lbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0ZWVyIGdlYnJ1aWtlcnMgaW4gZGV6ZSBncm9lcCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdJbnZvZXIgQ1NWLWJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdJbnZvZXIgWE1MLWJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJzJ10gPSAnRXhwb3J0ZWVyIGdlYnJ1aWtlcnMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0ZWVyIGdlYnJ1aWtlcnMnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnSGVyc3RlbCc7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ0RvZWxtYXAgdm9vciBhZmJlZWxkaW5nZW4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ191cGxvYWQnXSA9ICdFciBpcyBlZW4gcHJvYmxlZW0gb3BnZXRyZWRlbiBtZXQgZWVuIG1pc3NlbmRlIChtYWFyIHdlbCB2ZXJlaXN0ZSkgdXBsb2FkJzsKJGxhbmdbJ2Vycm9yX2JhZF94bWwnXSA9ICdQcm9ibGVlbSBtZXQgaGV0IHBhcnNlbiB2YW4gaGV0IGdldnJhYWdkZSBYTUwtYmVzdGFuZCc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnRWVuIGdyb2VwIG1ldCBnZWJydWlrZXJzIGthbiBuaWV0IHdvcmRlbiB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdEZXplIGdlYnJ1aWtlciBpcyByZWVkcyBpbmdlbG9nZCc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdEZSB0ZWtzdCB2YW4gZGUgYWZiZWVsZGluZyBpcyBuaWV0IGNvcnJlY3QgaW5nZXZvZXJkJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19yZXBlYXRlZF9sb2dpbnMnXSA9ICdTdGEgZ2VicnVpa2VycyB0b2UgbWVlciBkYW4gZWVuIGtlZXIgYWFuIHRlIG1lbGRlbic7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnQmVzdGFuZHN0eXBlbiBkaWUgZ2VicnVpa2VycyBtb2dlbiB1cGxvYWRlbic7CiRsYW5nWydldmVudF9pbmZvX09uTG9naW4nXSA9ICdFciBpcyBlZW4gZ2ViZXVydGVuaXMgZ2VnZW5lcmVlcmQgdG9lbiBlZW4gZ2VicnVpa2VyIGFhbm1lbGRkZSBvcCBoZXQgc3lzdGVlbSc7CiRsYW5nWydldmVudF9pbmZvX09uTG9nb3V0J10gPSAnRXIgaXMgZWVuIGdlYmV1cnRlbmlzIGdlZ2VuZXJlZXJkIHRvZW4gZWVuIGdlYnJ1aWtlciB6aWNoIGFmbWVsZGUgb3AgaGV0IHN5c3RlZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkV4cGlyZVVzZXInXSA9ICdFciBpcyBlZW4gZ2ViZXVydGVuaXMgZ2VnZW5lcmVlcmQgdG9lbiBlZW4gZ2VicnVpa2Vyc3Nlc3NpZSB2ZXJsaWVwJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVVc2VyJ10gPSAnRXIgaXMgZWVuIGdlYmV1cnRlbmlzIGdlZ2VuZXJlZXJkIHRvZW4gZWVuIG5pZXV3ZSBnZWJydWlrZXIgaXMgYWFuZ2VtYWFrdCc7CiRsYW5nWydldmVudF9pbmZvX09uUmVmcmVzaFVzZXInXSA9ICdFciBpcyBlZW4gZ2ViZXVydGVuaXMgZ2VnZW5lcmVlcmQgdG9lbiBkZSBzZXNzaWUgdmFuIGRlIGdlYnJ1aWtlciB3ZXJkIHZlcm5pZXV3ZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ0VyIGlzIGVlbiBnZWJldXJ0ZW5pcyBnZWdlbmVyZWVyZCB0b2VuIGRlIGdlYnJ1aWtlcnNpbmZvcm1hdGllIGlzIGJpamdld2Vya3QnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdFciBpcyBlZW4gZ2ViZXVydGVuaXMgZ2VnZW5lcmVlcmQgdG9lbiBlZW4gZ2VicnVpa2Vyc2FjY291bnQgaXMgdmVyd2lqZGVyZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlR3JvdXAnXSA9ICdFciBpcyBlZW4gZ2ViZXVydGVuaXMgZ2VnZW5lcmVlcmQgdG9lbiBlZW4gZ2VicnVpa2VyZ3JvZXAgd2VyZCBhYW5nZW1hYWt0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVHcm91cCddID0gJ0VyIGlzIGVlbiBnZWJldXJ0ZW5pcyBnZWdlbmVyZWVyZCB0b2VuIGVlbiBnZWJydWlrZXJzZ3JvZXAgaXMgYmlqZ2V3ZXJrdCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlR3JvdXAnXSA9ICdFciBpcyBlZW4gZ2ViZXVydGVuaXMgZ2VnZW5lcmVlcmQgdG9lbiBlZW4gZ2VicnVpa2VyZ3JvZXAgaXMgdmVyd2lqZGVyZCc7CiRsYW5nWydiYWNrZW5kX2dyb3VwJ10gPSAnQmFja2VuZCBncm9lcCc7CiRsYW5nWydpbmZvX3N0YXInXSA9ICcqIERlIHZvbGdlbmRlIHZlbGRlbiB6aWpuIHZvbGxlZGlnZSBzbWFydHkgdGVtcGxhdGVzLjxici8+RXZlbmFscyByZWVkcyBiZXN0YWFuZGUgc21hcnR5IHZhcmlhYmVsZW4gZW4gcGx1Z2lucywgZGUgeyR1c2VybmFtZX0gZW4geyRncm91cH0gdmFyaWFiZWxlbiB6aWpuIGJlc2NoaWtiYWFyLiAgPGVtPihEZSB7JGdyb3VwfSBrb210IG92ZXJlZW4gbWV0IGRlIGVlcnN0ZSBnZWJydWlrZXJzZ3JvZXAgd2FhciBkZSBnZWJydWlrZXIgYWFuIHRvZWJlaG9vcmQuKTwvZW0+Lic7CiRsYW5nWydpbmZvX2FkbWluX3Bhc3N3b3JkJ10gPSAnV2lqemlnIGRpdCB2ZWxkIG9tIGhldCB3YWNodHdvb3JkIHZhbiBkZSBnZWJydWlrZXIgb3BuaWV1dyBpbiB0ZSBzdGVsbGVuJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdXaWp6aWcgZGl0IHZlbGQgb20gaGV0IHdhY2h0d29vcmQgdmFuIGRlIGdlYnJ1aWtlciBvcG5pZXV3IGluIHRlIHN0ZWxsZW4nOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gZ2VicnVpa2VyIG1ldCBkZXplIG5hYW0nOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnR2VlbiByZXN1bHRhdGVuIHRlcnVnIHZhbiBkZSBjc3YgZXhwb3J0JzsKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ0xlbmd0ZSB2YW4gZ2VicnVpa2Vyc25hYW12ZWxkJzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ0xlbmd0ZSB2YW4gd2FjaHR3b29yZHZlbGQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ01pbi9NYXggd2FjaHR3b29yZGxlbmd0ZSBpcyBvbmdlbGRpZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWVsZW5ndGhzJ10gPSAnTWluL01heCBsZW5ndGUgdmFuIGdlYnJ1aWtlcnNuYWFtIGlzIG9uZ2VsZGlnJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdPbmdlbGRpZyBlLW1haWxhZHJlcyc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ1dlIGt1bm5lbiBnZWVuIGUtbWFpbGFkcmVzIHZpbmRlbiB2b29yIGRpdCBhY2NvdW50JzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdGb3V0IHRpamRlbnMgaGV0IG9wc2xhYW4gdmFuIGRlIGdlYnJ1aWtlcnNpbmZvcm1hdGllJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ0ZvdXQgdGlqZGVucyBoZXQgb3BzbGFhbiB2YW4gZGUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdHZWJydWlrZXIgdG9lZ2V2b2VnZCAlcyA9ICVzJzsKJGxhbmdbJ3VzZXJfZGVsZXRlZCddID0gJ0dlYnJ1aWtlciB2ZXJ3aWpkZXJkIHVpZD0lcyc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ0VpZ2Vuc2NoYXAnOwokbGFuZ1sndmFsdWVyZWdleCddID0gJ1dhYXJkZSAocmVndWxpZXJlIGV4cHJlc3NpZSknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdMZXQgb3A6IERlemUgdmVsZGVuIGhlYmJlbiBpbnZsb2VkIG9wIGRlIGdyb290dGUgdmFuIGRlIGludm9lcnZlbGRlbiB2b29yIGZvcm11bGllcmVuLiBWZXJsYWdlbiB2YW4gZGl0IGdldGFsIG9wIGVlbiBiZXN0YWFuZGUgd2Vic2l0ZSB3b3JkdCBuaWV0IGFhbmdlcmFkZW4nOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIG1vZHVsZSBpbnN0ZWxsaW5nZW4gd2lsdCBhYW5wYXNzZW4/JzsKJGxhbmdbJ2Vycm9yX2VtYWlsYWxyZWFkeXVzZWQnXSA9ICdFLW1haWxhZHJlcyBpcyBhbCBpbmdlYnJ1aWt0JzsKJGxhbmdbJ3Byb21wdF91c2Vjb29raWVzdG9yZW1lbWJlciddID0gJ0dlYnJ1aWsgY29va2llcyBvbSBkZSBsb2dpbmdlZ2V2ZW5zIHRlIG9udGhvdWRlbic7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ05hYW0gdmFuIGRlIGNvb2tpZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJ1N0YSB0d2VlIGtlZXIgaGV0emVsZmRlIGUtbWFpbGFkcmVzIHRvZSc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdIZXQgZS1tYWlsYWRyZXMgaXMgZGUgZ2VicnVpa2Vyc25hYW0nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKFN0YSBtZWVyZGVyZSBnZWJydWlrZXJzIG1ldCBoZXQgemVsZmRlIGUtbWFpbGFkcmVzIHRvZSknOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyhnZWJydWlrZXJzIGUtbWFpbGFkcmVzIGlzIGRlIGdlYnJ1aWtlcnNuYWFtIC0tIGdlYnJ1aWsgZGl0IG5pZXQgaW4gY29tYmluYXRpZSBtZXQgZGUgb3B0aWUgIlN0YSB0d2VlIGtlZXIgaGV0emVsZmRlIGUtbWFpbGFkcmVzIHRvZSIhKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJ1N0YSBkdWJiZWxlIFwnd2FjaHR3b29yZCB2ZXJnZXRlblwnLW1lbGRpbmdlbiB0b2U/JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJyhTdGEgdG9lIGdlYnJ1aWtlcnMgZWVuIHdhY2h0d29vcmQgcmVzZXQgYWFuIHRlIHZyYWdlbiwgb29rIGFscyB6ZSBkZSB2b3JpZ2UgbmlldCBoZWJiZW4gYmVudXQpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnR2VicnVpayBGcm9udEVuZFVzZXIgc3BlY2lmaWVrZSByZWNodGVuPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFhbCB6aWpuIGRlIEZFVS1yZWNodGVuIGhldHplbGZkZSBhbHMgZGUgcmVjaHRlbiBpbiBoZXQgYWRtaW5pc3RyYXRvciBnZWRlZWx0ZSB6b2FscyBHZWJydWlrZXIgdG9ldm9lZ2VuLCBHcm9lcCB0b2V2b2VnZW4sIGV0Yy4gQWxzIHUgZGV6ZSBvcHRpZSBzZWxlY3RlZXJ0IGtvbWVuIGVyIGFwYXJ0ZSByZWNodGVuIHZvb3IgaGV0IGJlaGVlciB2YW4gRkVVLWdlYnJ1aWtlcnMuKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnS2FuIGhldCBnZcO8cGxvYWRlIGJlc3RhbmQgbmlldCB2aW5kZW4gKGludGVybmUgZm91dCknOwokbGFuZ1snZXJyb3JfcHJvYmxlbV91cGxvYWQnXSA9ICdFciB3YXMgZWVuIHByb2JsZWVtIG1ldCBoZXQgZ2XDvHBsb2FkZSBiZXN0YW5kLiBQcm9iZWVyIGhldCBub2cgZWVuIGtlZXInOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnVSBoZWJ0IGdlZW4gZ2VicnVpa2Vyc25hYW0gaW5nZXZvZXJkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdlbWFpbCddID0gJ1UgaGVidCB1dyBlLW1haWxhZHJlcyBuaWV0IGluZ2V2b2VyZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdVIGhlYnQgZ2VlbiB3YWNodHdvb3JkIGluZ2V2b2VyZCc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nb3V0J10gPSAnRnJvbnRlbmRnZWJydWlrZXIgYWZnZW1lbGQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnRnJvbnRlbmRnZWJydWlrZXIgYWFuZ2VtZWxkJzsKJGxhbmdbJ2VkaXRwcm9wX2luZm9tc2cnXSA9ICc8Zm9udCBjb2xvcj0icmVkIj48Yj5XRUVTIFZPT1JaSUNIVEc8L2I+IFdhbm5lZXIgdSBlaWdlbnNjaGFwcGVuIHZhbiBlZW4gdmVsZCBkaWUgaW4gZ2VicnVpayBpcyB3aWp6aWd0IGRhbiBrYW4gdSBkZXplIHdlYnNpdGUgc2NoYWRlIHRvZWJyZW5nZW4hIDxpPihtZXQgbmFtZSBhbHMgdSB2ZWxkYWZtZXRpbmdlbiBrbGVpbmVyIG1hYWt0KTwvaT48L2ZvbnQ+JzsKJGxhbmdbJ2luZm9fc210cHZhbGlkYXRlJ10gPSAnRGV6ZSBmdW5jdGlvbmFsaXRlaXQgd2Vya3QgbmlldCBvcCBXaW5kb3dzJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdNYWFrIGdlZW4gdmVsZCBhYW4gdm9vciBkZSBlaWdlbnNjaGFwIGdlYnJ1aWtlcnNuYWFtIG9mIHdhY2h0d29vcmQuIERlemUgZWlnZW5zY2hhcHBlbiB6aWpuIGFsIHJlZWRzIGluZ2Vib3V3ZCBpbiBkZSBGcm9udEVuZFVzZXJzIG1vZHVsZS4nOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0V4cG9ydGVlciBnZWJydWlrZXJzIG5hYXIgQ1NWJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydGVlcic7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnRlZXInOwokbGFuZ1snYWRtaW4nXSA9ICdCZWhlZXInOwokbGFuZ1snZWRpdHByb3AnXSA9ICdXaWp6aWcgZWlnZW5zY2hhcDogPGVtPiVzPC9lbT4nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGUnOwokbGFuZ1snY3JlYXRlZCddID0gJ0FhbmdlbWFha3QnOwokbGFuZ1snc29ydGJ5J10gPSAnU29ydGVyZW4gb3AnOwokbGFuZ1snc29ydCddID0gJ1NvcnRlcmluZyc7CiRsYW5nWyd1c2Vyc2luZ3JvdXAnXSA9ICdHZWJydWlrZXJzIGluIGRlIGdlc2VsZWN0ZWVyZGUgZ3JvZXAoZW4pJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ0xpbWl0ZWVyIHJlc3VsYXRlbiBuYWFyJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ0thbiBnZWVuIEUtbWFpbCB2ZWxkIHZpbmRlbiB2b29yIGRlemUgZ2VicnVpa2VyLiBOZWVtIGNvbnRhY3Qgb3AgbWV0IHV3IHN5c3RlZW1iZWhlZXJkZXIuJzsKJGxhbmdbJ3Byb21wdF9mb3Jnb3Rwd19wYWdlJ10gPSAnUGFnaW5hIElEL0FsaWFzIHZvb3IgV2FjaHR3b29yZCBWZXJnZXRlbi1mb3JtdWxpZXInOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzX3BhZ2UnXSA9ICdQYWdpbmEgSUQvQWxpYXMgdm9vciBXaWp6aWcgSW5zdGVsbGluZ2VuLWZvcm11bGllcic7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ1BhZ2luYSBJRC9BbGlhcyBvbSBuYWFyIHRlIHZlcndpanplbiBuYSBhYW5tZWxkZW4gKic7CiRsYW5nWydwcm9tcHRfbG9nb3V0X3BhZ2UnXSA9ICdQYWdpbmEgSUQvQWxpYXMgb20gbmFhciB0ZSB2ZXJ3aWp6ZW4gbmEgYWZtZWxkZW4gKic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0ZWVyIHZvbGdvcmRlJzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ0VlbiBhYW50YWwgZ2VicnVpa2VycyB6aXR0ZW4gaW4gaGV0IHByb2NlcyB2YW4gaGV0IGhlcnN0ZWxsZW4gdmFuIHZlcmdldGVuIHdhY2h0d29vcmRlbi4gT3AgZGl0IG1vbWVudCBpcyBkaXQgYWFudGFsOic7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ1ZlcndpamRlciBhbGxlIGl0ZW1zIHZhbiBtZWVyIGRhbiBlZW4gd2VlayBvdWQnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnVmVyd2lqZGVyIGFsbGUgaXRlbXMgdmFuIG1lZXIgZGFuIGVlbiBtYWFuZCBvdWQnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnVmVyd2lqZGVyZSBhbGxlIHJlY29yZHMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1dlZXQgdSBoZXQgemVrZXI/JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjb2RlJ10gPSAnRXIgaXMgZWVuIG9uZ2VsZGlnZSBjb2RlIGluZ2V2b2VyZCwgcHJvYmVlciBoZXQgb3BuaWV1dyc7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnRWVuIHRpamRlbGlqa2UgY29kZSB2b29yIHV3IGdlYnJ1aWtlcnNpZCBrb24gbmlldCB3b3JkZW4gZ2V2b25kZW4gaW4gZGUgZGF0YWJhc2UnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICdTamFibG9vbiBnZWJydWlrdCBmb29yIGhldCB3ZWVyZ2V2ZW4gdmFuIGNvbnRyb2xlZm9ybXVsaWVyJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX2VtYWlsdGVtcGxhdGUnXSA9ICdTamFibG9vbiBnZWJydWlrdCB2b29yIGRlIHdhY2h0d29vcmQgdmVyZ2V0ZW4gZS1tYWlsJzsKJGxhbmdbJ2Vycm9yX3Jlc2V0YWxyZWFkeXNlbnQnXSA9ICdVIG9mIGllbWFuZCBhbmRlcnMgaGVlZnQgYWwgZWVyZGVyIGdlcHJvYmVlcmQgb20gZWVuIHdhY2h0d29vcmQgaGVyc3RlbCBhYW4gdGUgdnJhZ2VuIHZvb3IgZGl0IGFjY291bnQuIENvbnRyb2xlZXIgdXcgZS1tYWlsLCB3ZWxsaWNodCBoZWVmdCB1IGRlIGUtbWFpbCBtZXQgaW5zdHJ1Y3RpZXMgYWwgcmVlZHMgb250dmFuZ2VuIG92ZXIgaG9lIHUgdXcgd2FjaHR3b29yZGVuIG9wbmlldXcga3VudCBpbnN0ZWxsZW4uJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZSBmb3V0JzsKJGxhbmdbJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCddID0gJ1Ugb250dmFuZ3QgZGl0IGJlcmljaHQgb21kYXQgaWVtYW5kIG9wIG9uemUgc2l0ZSBoZWVmdCBhYW5nZWdldmVuIGRhdCB1IHV3IHdhY2h0d29vcmQgYmVuIHZlcmdldGVuLiBBbHMgZGl0IGhldCBnZXZhbCBpcywgbGVlcyBkYW4gZGUgb25kZXJzdGFhbmRlIGluc3RydWN0aWVzLiBBbHMgdSBnZWVuIGlkZWUgaGVlZnQgd2Fhcm9tIHUgZGl0IGJlcmljaHQgb250dmFuZ3QsIGRhbiBrdW50IHUgZGl0IGJlcmljaHQgem9uZGVyIHByb2JsZW1lbiB2ZXJ3aWpkZXJlbiBlbiBiZWRhbmtlbiB3ZSB1IHZvb3IgdXcgdGlqZC4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdDb2RlJzsKJGxhbmdbJ21lc3NhZ2VfY29kZSddID0gJ0RlIHZvbGdlbmRlIGNvZGUgaXMgd2lsbGVrZXVyaWcgYWFuZ2VtYWFrdCBvbSB0ZSBjb250cm9sZXJlbiBvZiBoZXQgZWNodCBvbSB1dyBnZWJydWlrZXJzYWNjb3VudCBnYWF0LiBBbHMgdSBvcCBkZSBvbmRlcnN0YWFuZGUgbGluayBrbGlrdCBkYW4ga29tdCB1IG9wIGRlIHdlYnBhZ2luYSB3YWFyIGRlemUgY29kZSBhbCByZWVkcyB2b29yIHUgaXMgaW5nZXZvZXJkLiBNb2NodCBkYXQgbmlldCBoZXQgZ2V2YWwgemlqbiwgZGFuIGlzIHV3IGNvZGU6JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnQWxzIHUgb3AgZGUgdm9sZ2VuZGUgbGluayBrbGlrdCBrb210IHUgb3AgZGUgd2VicGFnaW5hIHdhYXIgdSBkZSBib3ZlbnN0YWFuZGUgY29kZSBrdW50IGludm9lcmVuIGVuIHUgdmVydm9sZ2VucyB1dyB3YWNodHdvb3JkIG9wbmlldXcga3VudCBpbnN0ZWxsZW46JzsKJGxhbmdbJ2xvc3RwYXNzd29yZF9lbWFpbHN1YmplY3QnXSA9ICdXYWNodHdvb3JkIHZlcmdldGVuJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnS2FuIGRlIENNU01haWxlciBtb2R1bGUgbmlldCB2aW5kZW4nOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnRXIgaXMgZWVuIEUtbWFpbCB2ZXJ6b25kZW4gbWV0IGluc3RydWN0aWVzIG5hYXIgJXMgb3ZlciBoZXQgb3BuaWV1dyBpbnN0ZWxsZW4gdmFuIHV3IHdhY2h0d29vcmQuIEJlZGFua3QnOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdVIGJlbnQgdXcgd2FjaHR3b29yZCBrd2lqdCBvZiB2ZXJnZXRlbi4gVHlwZSBoaWVyIHV3IGdlYnJ1aWtlcnNuYWFtIGVuIGFscyB3ZSBkZXplIGt1bm5lbiB2aW5kZW4genVsbGVuIHdlIGVlbiBFLW1haWwgbmFhciB1IHZlcnplbmRlbiBtZXQgaW5zdHJ1Y3RpZXMgb3ZlciBob2UgdSB1dyB3YWNodHdvb3JkIG9wbmlldXcga3VudCBpbnN0ZWxsZW4nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdWZXJnZXRlbiB3YWNodHdvb3JkIHNqYWJsb29uJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ1ZlcmdldGVuIGdlYnJ1aWtlcnNuYWFtIHNqYWJsb29uJzsKJGxhbmdbJ2Vycm9yX3Byb3Bub3Rmb3VuZCddID0gJ0VpZ2Vuc2NoYXAgJXMgbmlldCBnZXZvbmRlbic7CiRsYW5nWydwcm9wc2ZvdW5kJ10gPSAnRWlnZW5zY2hhcHBlbiBnZXZvbmRlbic7CiRsYW5nWydhZGRwcm9wJ10gPSAnRWlnZW5zY2hhcCB0b2V2b2VnZW4nOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ0VlbiB2ZXJwbGljaHQgdmVsZCAoJXMpIGlzIGxlZWcnOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdWb2VyIGVlbiBuaWV1dyB3YWNodHdvb3JkIGluIG9tIHV3IHdhY2h0d29vcmQgdGUgdmVyYW5kZXJlbic7CiRsYW5nWydlcnJvcl9ub3Rsb2dnZWRpbiddID0gJ0hldCB6aWV0IGVyIG5pZXQgbmFhciB1aXQgZGF0IHUgYmVudCBhYW5nZW1lbGQnOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ0luc3RlbGxpbmdlbic7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdHJhdGllJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnRGl0IGFjY291bnQgaXMgdmVybG9wZW4nOwokbGFuZ1snZXJyb3JfaW1wcm9wZXJlbWFpbGZvcm1hdCddID0gJ1ZlcmtlZXJkZSBFLW1haWwgYWRyZXMgb3Bib3V3JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRleHBpcnlkYXRlJ10gPSAnT25nZWxkaWdlIHZlcmxvb3BkYXR1bS4gRGl0IGthbiBzeXN0ZWVtZ2VyZWxhdGVlcmQgemlqbi4gUHJvYmVlciBlZW4gamFhciBlZXJkZXIuJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdGb3V0IGJpaiBpbnN0ZWxsZW4gdmFuIGVpZ2Vuc2NoYXAgJXMgdm9vciBnZWJydWlrZXIgJHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGdyb3VwaWQnXSA9ICdPbmdlbGRpZ2UgZ3JvZXAgSUQgJXMnOwokbGFuZ1snaGlkZGVuZmllbGRtYXJrZXInXSA9ICdWZXJib3JnZW4gdmVsZCBtYXJrZXJpbmcnOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ1ZlcmJvcmdlbiB2ZWxkIGtsZXVyJzsKJGxhbmdbJ2hpZGRlbiddID0gJ1ZlcmJvcmdlbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnRWVuIGVpZ2Vuc2NoYXAgbWV0IGRlemUgbmFhbSBiZXN0YWF0IGFsIHJlZWRzJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ0dlZW4gZWlnZW5zY2hhcHBlbiBpbmdlc3RlbGQnOwokbGFuZ1snZXJyb3Jfbm9yZWxhdGlvbnMnXSA9ICdFciB6aWpuIGdlZW4gZWlnZW5zY2hhcHBlbiBnZXNlbGVjdGVlcmQgdm9vciBkZXplIGdyb2VwLiBFZW4gZ3JvZXAgbW9ldCB0ZW4gbWluc3RlIMOpw6luIGVpZ2Vuc2NoYXAgaGViYmVuLic7CiRsYW5nWydub2dyb3VwcyddID0gJ0dlZW4gZ3JvZXBlbiBhYW5nZW1hYWt0JzsKJGxhbmdbJ2dyb3Vwc2ZvdW5kJ10gPSAnR3JvZXBlbiBnZXZvbmRlbic7CiRsYW5nWydlcnJvcl9vbmVncm91cHJlcXVpcmVkJ10gPSAnTGlkbWFhdHNjaGFwIHZhbiBtaW5zdGVucyBlZW4gZ3JvZXAgaXMgdmVyZWlzdCc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJ10gPSAnVmVyZWlzIGxpZG1hYXRzY2hhcCB2YW4gbWluc3RlbnMgZWVuIGdyb2VwJzsKJGxhbmdbJ2JhY2snXSA9ICdUZXJ1Zyc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnJXMgaXMgZWVuIHZlcmVpc3QgdmVsZCc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnTWFya2VlciB2ZXJlaXN0ZSB2ZWxkZW4gbWV0JzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ0hpbGl0ZSB2ZXJlaXN0ZSB2ZWxkZW4gaW4nOwokbGFuZ1snbmV4dCddID0gJ1ZvbGdlbmRlJzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnRWVuIGdyb2VwIG1ldCBlZW4gbmFhbSBkaWUgcmVlZHMgYmVzdGFhdCc7CiRsYW5nWydyZXF1aXJlZCddID0gJ1ZlcmVpc3QnOwokbGFuZ1snb3B0aW9uYWwnXSA9ICdPcHRpb25lZWwnOwokbGFuZ1snb2ZmJ10gPSAnVWl0JzsKJGxhbmdbJ3NpemUnXSA9ICdHcm9vdHRlJzsKJGxhbmdbJ3NpemVjb21tZW50J10gPSAnPGJyIC8+KE1heGltdW0gZ3Jvb3R0ZSB2YW4gZWxrZSBkZW1lbnRpZSB2YW4gZGUgYWZiZWVsZGluZyBpbiBwaXhlbHMpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ0xlbmd0ZSc7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyIC8+KHRla2VucyBpbiBkZSB0ZWtzdGludm9lciknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ0Ryb3Bkb3duIG1vZ2VsaWpraGVkZW4sIGdlc2NoZWlkZW4gZG9vciByZWdlbGVpbmRlbi4gV2FhcmRlbiBrdW5uZW4gbG9zIHZhbiBkZSB0ZWtzdCBtZXQgYSA9IHRla2VuLiBCaWp2b29yYmVlbGQ6IFZyb3V3PXYnOwokbGFuZ1sncmFkaW9vcHRpb25zJ10gPSAnUmFkaW8gYnV0dG9uIGxhYmVscywgZ2VzY2hlaWRlbiBkb29yIHJlZ2VsZWluZGVuLiBXYWFyZGVuIGt1bm5lbiBsb3MgdmFuIGRlIHRla3N0IG1ldCBhID0gdGVrZW4uIEJpanZvb3JiZWVsZDogVnJvdXc9dic7CiRsYW5nWydwcm9tcHQnXSA9ICdQcm9tcHQnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ2ZpZWxkc3RhdHVzJ10gPSAnVmVsZHN0YXR1cyc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdWcmFhZyBpbiBWZXJnZXRlbjxiciAvPkdlYnJ1aWtlcnNuYWFtJzsKJGxhbmdbJ3RleHQnXSA9ICdUZWtzdCc7CiRsYW5nWydjaGVja2JveCddID0gJ1Zpbmt2YWtqZSc7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ011bHRpLXNlbGVjdGllbGlqc3QnOwokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW8gS25vcHBlbic7CiRsYW5nWydpbWFnZSddID0gJ0FmYmVlbGRpbmcnOwokbGFuZ1snZW1haWwnXSA9ICdFLW1haWwgYWRyZXMnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdGdlYmllZCc7CiRsYW5nWydkcm9wZG93biddID0gJ0Ryb3Bkb3duJzsKJGxhbmdbJ21zZ19jdXJyZW50bHlsb2dnZWRpbmFzJ10gPSAnV2Vsa29tJzsKJGxhbmdbJ2xvZ291dCddID0gJ0FmbWVsZGVuJzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdHZWJydWlrIGRlemUgZ3JvZXBzbmFhbSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdXaWp6aWcgbWlqbiBpbnN0ZWxsaW5nZW4nOwokbGFuZ1snZXJyb3JfbG9naW5mYWlsZWQnXSA9ICdBYW5tZWxkaW5nIG1pc2x1a3QgLSBPbmdlbGRpZ2UgZ2VicnVpa2Vyc25hYW0gb2Ygd2FjaHR3b29yZD8nOwokbGFuZ1snbG9naW4nXSA9ICdBYW5tZWxkZW4nOwokbGFuZ1sncHJvbXB0X3NpZ25pbl9idXR0b24nXSA9ICdBYW5tZWxkYnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ0dlYnJ1aWtlcnNuYWFtJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0UtbWFpbCBhZHJlcyc7CiRsYW5nWydwcm9tcHRfcGFzc3dvcmQnXSA9ICdXYWNodHdvb3JkJzsKJGxhbmdbJ3Byb21wdF9yZW1lbWJlcm1lJ10gPSAnT250aG91ZCBtaWogb3AgZGV6ZSBjb21wdXRlcic7CiRsYW5nWydyZWdpc3RlciddID0gJ1JlZ2lzdHJlcmVuJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnV2FjaHR3b29yZCB2ZXJnZXRlbj8nOwokbGFuZ1snbG9zdHVzZXJuYW1lJ10gPSAnR2VicnVpa2Vyc25hYW0gdmVyZ2V0ZW4/JzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAnU3RhbmRhYXJkIHdhYXJkZW4nOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdTamFibG9vbic7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnRGUgZ2VicnVpa2Vyc25hYW0gKCVzKSBpcyBhbCByZWVkcyBpbiBnZWJydWlrJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdHZWJydWlrIFNNVFAgb20gaGV0IGUtbWFpbGFkcmVzIHRlIGNvbnRyb2xlcmVuPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdNaW5pbXVtIHdhY2h0d29vcmRsZW5ndGUnOwokbGFuZ1sncHJvbXB0X21heHB3bGVuJ10gPSAnTWF4aW11bSB3YWNodHdvb3JkbGVuZ3RlJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ01pbmltdW0gZ2VicnVpa2Vyc25hYW1sZW5ndGUnOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnTWF4aW11bSBnZWJydWlrZXJzbmFhbWxlbmd0ZSc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdTZXNzaWUgdGltZS1vdXQgKHNlY29uZGVuKSc7CiRsYW5nWydwcm9tcHRfY29va2lla2VlcGFsaXZlJ10gPSAnR2VicnVpayBjb29raWVzIG9tIGxvZ2luc2Vzc2llIGFjdGllZiB0ZSBob3VkZW4nOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdTdGEgRS1tYWlscmVnaXN0cmF0aWUgdG9lJzsKJGxhbmdbJ3Byb21wdF9kZmx0Z3JvdXAnXSA9ICdTdGFuZGFhcmQgZ3JvZXAgdm9vciBuaWV1d2UgZ2VidWlrZXJzJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnV2lqemlnIGluc3RlbGxpbmdlbiBzamFibG9vbic7CiRsYW5nWydlcnJvcl9wYXNzd29yZG1pc21hdGNoJ10gPSAnV2FjaHR3b29yZGVuIGtvbWVuIG5pZXQgb3ZlcmVlbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWUnXSA9ICdPbmdlbGRpZ2UgZ2VidWlrZXJzbmFhbSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdPbmdlbGRpZyB3YWNodHdvb3JkJzsKJGxhbmdbJ2Vycm9yX3VzZXJub3Rmb3VuZCddID0gJ0thbiBnZWVuIGluZm9ybWF0aWUgdmluZGVuIHZvb3IgZGV6ZSBnZWJydWlrZXInOwokbGFuZ1snZWRpdHVzZXInXSA9ICdXaWp6aWcgZ2VicnVpa2VyJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnR2VsZGlnJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnR2VicnVpa2Vyc25hYW0nOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJ0RlemUgZ2VicnVpa2VyIGlzIHZhbiBnZWVuIGVua2VsZSBncm9lcCBsaWQnOwokbGFuZ1snZXJyb3JfcHJvcGVydGllcyddID0gJ0dlZW4gZWlnZW5zY2hhcHBlbic7CiRsYW5nWydlcnJvcl9kdXBfcHJvcGVydGllcyddID0gJ1BvZ2luZyB0b3QgaGV0IGltcG9ydGVyZW4gdmFuIGR1YmJlbGUgZWlnZW5zY2hhcHBlbic7CiRsYW5nWyd2YWx1ZSddID0gJ1dhYXJkZSc7CiRsYW5nWydncm91cHMnXSA9ICdHcm9lcGVuJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdFaWdlbnNjaGFwcGVuJzsKJGxhbmdbJ3Byb3BuYW1lJ10gPSAnTmFhbSBlaWdlbnNjaGFwJzsKJGxhbmdbJ3Byb3B2YWx1ZSddID0gJ1dhYXJkZSBlaWdlbnNjaGFwJzsKJGxhbmdbJ2FkZCddID0gJ1RvZXZvZWdlbic7CiRsYW5nWydoaXN0b3J5J10gPSAnR2VzY2hpZWRlbmlzJzsKJGxhbmdbJ2VkaXQnXSA9ICdBYW5wYXNzZW4nOwokbGFuZ1snZXhwaXJlcyddID0gJ1Zlcmxvb3B0JzsKJGxhbmdbJ3NwZWNpZnlfZGF0ZSddID0gJ1NwZWNpZmljZWVyIGRhdHVtJzsKJGxhbmdbJzEyaHJzJ10gPSAnMTIgdXVyJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQgdXVyJzsKJGxhbmdbJzQ4aHJzJ10gPSAnNDggdXVyJzsKJGxhbmdbJzF3ZWVrJ10gPSAnMSB3ZWVrJzsKJGxhbmdbJzJ3ZWVrcyddID0gJzIgd2VrZW4nOwokbGFuZ1snMW1vbnRoJ10gPSAnMSBtYWFuZCc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBtYWFuZGVuJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IG1hYW5kZW4nOwokbGFuZ1snMXllYXInXSA9ICcxIGphYXInOwokbGFuZ1snbmV2ZXInXSA9ICdOb29pdCc7CiRsYW5nWydwb3N0aW5zdGFsbG1lc3NhZ2UnXSA9ICdNb2R1bGUgaW5zdGFsbGVkIHN1Y2Vzc2Z1bGx5Ljxici8+QmUgc3VyZSB0byBzZXQgdGhlICJNb2RpZnkgRnJvbnRFbmRVc2VyIFByb3BlcnRpZXMgcGVybWlzc2lvbi4gIEFkZGl0aW9uYWxseSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiAgSWYgaW5zdGFsbGVkLCB2YWxpZGF0aW9uIG9mIGEgY2FwdGNoYSBpbWFnZSB3aWxsIGJlIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgdG8gbG9naW4uICBUaGlzIGlzIGludGVuZGVkIHRvIHByZXZlbnQgYnJ1dGUgZm9yY2UgYXR0YWNrcy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIG5vY2FwdGNoYSBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZXZlbiBpZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLiInOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdXYWNodHdvb3JkJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnT3BuaWV1dyc7CiRsYW5nWydlcnJvcl9ncm91cG5hbWVfZXhpc3RzJ10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gZ3JvZXAgbWV0IGRlemUgbmFhbSc7CiRsYW5nWydlZGl0Z3JvdXAnXSA9ICdXaWp6aWcgZ3JvZXAnOwokbGFuZ1snc3VibWl0J10gPSAnT3BzbGFhbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snY29uZmlybV9lZGl0Z3JvdXAnXSA9ICdXZWV0IHUgemVrZXIgZGF0IGRpdCBkZSBqdWlzdGUgaW5zdGVsbGluZ2VuIHppam4gdm9vciBkZXplIGdyb2VwP1xcbkhldCB1aXRzY2hha2VsZW4gdmFuIGVlbiBlaWdlbnNjaGFwIHphbCBnZWVuIGVua2VsZSB2ZXJtZWxkaW5nIHZhbiBkZSBlaWdlbnNjaGFwcGVudGFiZWwgdmVyd2lqZGVyZW4gdmFuIGRlemUgZ3JvZXAvZ2VicnVpa2VyLiBaZSB6dWxsZW4gYWxsZWVuIG5pZXQgYmVzY2hpa2JhYXIgemlqbi4nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVncm91cCddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZXplIGdyb2VwIHdpbHQgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3Byb3AnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSBlaWdlbnNjaGFwIHZvbGxlZGlnIHdpbHQgdmVyd2lqZGVyZW4/XFxuQWxzIHUgZGF0IGRvZXQgZGFuIHp1bGxlbiB0ZXZlbnMgYWxsZSBnZWJydWlrZXJzZ2VnZXZlbnMgdmFuIGRlemUgZWlnZW5zY2hhcCBvb2sgdmVyd2lqZGVyZCB3b3JkZW4uJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ09uZ2VsZGlnZSBwYXJhbWV0ZXJzJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snbmFtZSddID0gJ05hYW0nOwokbGFuZ1snZXJyb3JfY2FudGFkZHByb3AnXSA9ICdQcm9ibGVlbSBiaWogaGV0IHRvZXZvZWdlbiB2YW4gZWlnZW5zY2hhcCc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXByZWxuJ10gPSAnUHJvYmxlZW0gYmlqIGhldCB0b2V2b2VnZW4gdmFuIGdyb2Vwc3JlbGF0aWUnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwJ10gPSAnUHJvYmxlZW0gYmlqIGhldCB0b2V2b2VnZW4gdmFuIGdyb2VwJzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnUHJvYmxlZW0gYmlqIGhldCB0b2V3aWp6ZW4gdmFuIGdyb2VwIGFhbiBnZWJydWlrZXInOwokbGFuZ1snZXJyb3JfY291bGRub3RkZWxldGVwcm9wZXJ0eSddID0gJ1Byb2JsZWVtIGJpaiBoZXQgdmVyd2lqZGVyZW4gdmFuIGVlbiBlaWdlbnNjaGFwJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnS2FuIGdlZW4gRS1tYWlsIGFkcmVzIHZpbmRlbic7CiRsYW5nWydlcnJvcl9kZXN0aW5hdGlvbm5vdHdyaXRhYmxlJ10gPSAnR2VlbiBzY2hyaWpmcmVjaHRlbiBpbiBkZSBkb2VsbWFwJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbXMnXSA9ICdPbmdlbGRpZ2UgcGFyYW1ldGVycyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcyddID0gJ0thbiBnZWVuIGVua2VsZSBncm9lcCB2aW5kZW4nOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdUb2VwYXNzZW4nOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ3VzZXJmaWx0ZXInXSA9ICdHZWJydWlrZXJzbmFhbSByZWd1bGllcmUgZXhwcmVzc2llJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVzY2hyaWp2aW5nJzsKJGxhbmdbJ2dyb3VwbmFtZSddID0gJ0dyb2Vwc3NuYWFtJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0dlZW4gdG9lZ2FuZyc7CiRsYW5nWydlcnJvciddID0gJ0ZvdXQnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdWb2VnIGdyb2VwIHRvZSc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ0ltcG9ydGVlciBncm9lcCc7CiRsYW5nWydhZGR1c2VyJ10gPSAnVm9lZyBnZWJydWlrZXIgdG9lJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdHZWJydWlrZXJzIGdldm9uZGVuIGRpZSB2b2xkb2VuIGFhbiBoZXQgY3JpdGVyaXVtJzsKJGxhbmdbJ2dyb3VwJ10gPSAnR3JvZXAnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdTZWxlY3RlZXIgZ3JvZXAnOwokbGFuZ1sncmVnaXN0cmF0aW9uX3RlbXBsYXRlJ10gPSAnUmVnaXN0cmF0aWUgc2phYmxvb24nOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnQWZtZWxkIHNqYWJsb29uJzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnQWFubWVsZCBzamFibG9vbic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1Zvb3JrZXVyZW4nOwokbGFuZ1sndXNlcnMnXSA9ICdHZWJydWlrZXJzJzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zyb250ZW5kIFVzZXIgQmVoZWVyJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnU3RhIGdlYnJ1aWtlcnMgdG9lIGluIHRlIGxvZ2dlbiBvcCBkZSBmcm9udGVuZCB2YW4gdXcgc2l0ZSc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnU3RhbmRhYXJkIHZvb3JwYWdpbmEnOwokbGFuZ1snbGFzdGFjY2Vzc2VkcGFnZSddID0gJ0xhYXRzdCBiZXpvY2h0ZSBwYWdpbmEnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnQW5kZXJlIHBhZ2luYTonOwokbGFuZ1snY2FwdGNoYV90aXRsZSddID0gJ1ZvZXIgZGUgdGVrc3QgdmFuIGRlIGFmYmVlbGRpbmcgaW4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ0VkeXRvd2FuaWUgdcW8eXRrb3duaWthJzsKJGxhbmdbJ25vaW5saW5lJ10gPSAnTmllIHdzdGF3aWFqIGZvcm11bGFyenkgaW5saW5lICh3IHRyZcWbY2kpJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnS2xpa25paiB0dXRhaiwgZ2R5IG5pZSBwYW1pxJl0YXN6IHN3b2ljaCBkYW55Y2ggZG8gemFsb2dvd2FuaWEnOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ0tsaWtuaWogdHV0YWosIGplxZtsaSBuaWUgcGFtacSZdGFzeiBzd29qZWdvIGhhc8WCYSc7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJ0tsaWtuaWogdHV0YWosIGJ5IHNpxJkgd3lsb2dvd2HEhyc7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnS2xpa25paiB0dXRhaiBieSB6bWllbmnEhyBzd29qZSBoYXPFgm8gbHViIGlubmUgZGFuZSc7CiRsYW5nWyd2aWV3dXNlcl90ZW1wbGF0ZSddID0gJ1N6YWJsb24gcG9kZ2zEhWR1IHXFvHl0a293bmlrYSc7CiRsYW5nWydldmVudCddID0gJ1pkYXJ6ZW5pZSc7CiRsYW5nWydmZXVfZXZlbnRfbm90aWZpY2F0aW9uJ10gPSAnWmF3aWFkb21pZW5pZSBvIHpkYXJ6ZW5pdSBGRVUnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnQWRyZXMgZW1haWwgZG8gemF3aWFkb21pZW5pYSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnU3phYmxvbiBtYWlsYSBwb3dpYWRhbWlhasSFY2Vnbyc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICdUeXR1xYIgbWFpbGEgcG93aWFkYW1pYWrEhWNlZ28nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdQb3dpYWRvbWllbmllIGVtYWlsJzsKJGxhbmdbJ09uTG9naW4nXSA9ICdHZHkgemFsb2dvd2FuaWUnOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdHZHkgd3lsb2dvd2FuaWUnOwokbGFuZ1snT25FeHBpcmVVc2VyJ10gPSAnR2R5IHd5Z2FzYSBzZXNqYSc7CiRsYW5nWydPbkNyZWF0ZVVzZXInXSA9ICdHZHkgc3R3b3J6b255IG5vd3kgdcW8eXRrb3duaWsnOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnR2R5IHXFvHl0a293bmlrIHNrYXNvd2FueSc7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdHZHkgem1pZW5pb25lIHVzdGF3aWVuaWEgdcW8eXRrb3duaWthJzsKJGxhbmdbJ09uQ3JlYXRlR3JvdXAnXSA9ICdHZHkgc3R3b3J6b25hIGdydXDEmSB1xbx5dGtvd25payZvYWN1dGU7dyc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnR2R5IHNrYXNvd2FubyBncnVwxJknOwokbGFuZ1snbG9zdHVuY29uZmlybV9wcmVtc2cnXSA9ICdGdW5rY2pvbmFsbm/Fm8SHIHphZ3ViaW9ueWNoIGRhbnljaCBsb2dvd2FuaWEgdXJ1Y2hvbWlvbmEuIFpuYWxlemlvbm8gdW5pa2FsbnkgbG9naW4sIGt0Jm9hY3V0ZTtyeSBwYXN1amUgZG8gVHdvaWNoIGRhbnljaC4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ1R3b2phIG5hendhIHXFvHl0a293bmlrYSB0bzonOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAnUG9sZWNhbXksIMW8ZWJ5IHRhIGluZm9ybWFjamEgem9zdGHFgmEgemFub3Rvd2FuYSB3IGJlenBpZWN6bnltLCBhbGUgem5hbnltIENpIG1pZWpzY3UhJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdJRCBzdHJvbi9BbGlhcyBkbyBwcnplc2tvY3plbmlhIHBvIHptaWFuaWUgdXN0YXdpZcWEJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl92ZXJpZnlfY29kZSddID0gJ0lkLXN0cm9ueS9BbGlhcy1zdHJvbnkgZG8gcHJ6ZXNrb2N6ZW5pYSBwbyB3ZXJ5ZmlrYWNqaSBrb2R1IConOwokbGFuZ1snbG9zdHVuX2RldGFpbHNfdGVtcGxhdGUnXSA9ICdTemFibG9uIHpndWJpb25lZ28gbG9naW51JzsKJGxhbmdbJ2xvc3R1bl9jb25maXJtX3RlbXBsYXRlJ10gPSAnU3phYmxvbiBwb3R3aWVyZHplbmlhIHBvIHpndWJpb255bSBsb2dpbmllJzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZW1hdGNoJ10gPSAnQsWCxIVkOiB3acSZY2VqIG5pxbwgamVkbm8ga29udG8gc3BlxYJuaWEgd2FydW5raSB3cHJvd2Fkem9uZSBkbyBzeXN0ZW11JzsKJGxhbmdbJ2Vycm9yX2NhbnRmaW5kdXNlciddID0gJ0LFgsSFZDogbmllIG1vZ8SZIHpuYWxlxbrEhyBwYXN1asSFY2VnbyB1xbx5dGtvd25pa2EnOwokbGFuZ1snZXJyb3JfZ3JvdXBub3Rmb3VuZCddID0gJ0LFgsSFZDogbmllIG1vZ8SZIHpuYWxlxbrEhyB0YWtpZWogZ3J1cHknOwokbGFuZ1sncmVhZG9ubHknXSA9ICdUeWxrbyBkbyBvZGN6eXR1JzsKJGxhbmdbJ3Byb21wdF91c2VybWFuaXB1bGF0b3InXSA9ICdLbGFzYSBvcGVyYWNqaSB1xbx5dGtvd25pa2EgKFVzZXIgTWFuaXB1bGF0b3IgQ2xhc3MpJzsKJGxhbmdbJ2FkbWluX2xvZ291dCddID0gJ1d5bG9nb3dhbnkgcHJ6ZXogYWRtaW5pc3RyYXRvcmEnOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ1Bva2F6dWogdHlsa28gemFsb2dvd2FueWNoIHXFvHl0a293bmlrJm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdXeWxvZ3VqIHRlZ28gdcW8eXRrb3duaWthJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ0NlY2h5IGtvbnQnOwokbGFuZ1sndXNlcmhpc3RvcnknXSA9ICdIaXN0b3JpYSc7CiRsYW5nWydleHBvcnQnXSA9ICdFa3Nwb3J0JzsKJGxhbmdbJ2NsZWFyJ10gPSAnV3ljennFm8SHJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ1phcGlzeiBoaXN0b3JpxJkgdyB0cnliaWUgQVNDSUkgeiBwcnplZHppYcWCdSBjemFzdSc7CiRsYW5nWydwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeSddID0gJ1d5Y3p5xZvEhyBoaXN0b3JpxJkgeiBvc3RhdG5pZWdvIG9rcmVzdSc7CiRsYW5nWyd0aXRsZV9sb3N0dXNlcm5hbWUnXSA9ICdaYXBvbW5pYW55IGxvZ2luPyc7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdFa3Nwb3J0dWogZGVmaW5pY2plIGdydXB5IChpIGNlY2h5KSBkbyBmb3JtYXR1IFhNTCc7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeW1haW50ZW5hbmNlJ10gPSAnWmFyesSFZHphbmllIGhpc3RvcmnEhSc7CiRsYW5nWyd5ZXMnXSA9ICdUYWsnOwokbGFuZ1snbm8nXSA9ICdOaWUnOwokbGFuZ1sncHJvbXB0X29mJ10gPSAneic7CiRsYW5nWydkYXRlX2FsbHJlY29yZHMnXSA9ICcqKiBCZXogbGltaXR1ICoqJzsKJGxhbmdbJ2RhdGVfb25laG91cm9sZCddID0gJzEgZ29kemlueSc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICc2IGdvZHppbic7CiRsYW5nWydkYXRlX3R3ZWx2ZWhvdXJvbGQnXSA9ICcxMiBnb2R6aW4nOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICcxIGRuaWEnOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnMSB0eWdvZG5pYSc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnMiB0eWdvZG5pJzsKJGxhbmdbJ2RhdGVfb25lbW9udGhvbGQnXSA9ICcxIG1pZXNpxIVjYSc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnMyBtaWVzacSZY3knOwokbGFuZ1snZGF0ZV9zaXhtb250aHNvbGQnXSA9ICc2IG1pZXNpxJljeSc7CiRsYW5nWydkYXRlX29uZXllYXJvbGQnXSA9ICcxIHJva3UnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnR3J1cG93YW5pZSBpIHNvcnRvd2FuaWUnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ1Jla29yZHksIGt0Jm9hY3V0ZTtyZSBzcGXFgmFuaWFqxIUga3J5dGVyaWEnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2Rlc2MnXSA9ICdOYXp3YSB1xbx5dGtvd25pa2EgLSBtYWxlasSFY28nOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2FzYyddID0gJ05hendhIHXFvHl0a293bmlrYSAtIHJvc27EhWNvJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2Rlc2MnXSA9ICdEYXRhIC0gbWFsZWrEhWNvJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2FzYyddID0gJ0RhdGEgLSByb3NuxIVjbyc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdUeXAgemRhcnplbmlhIC0gbWFsZWrEhWNvJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fYXNjJ10gPSAnVHlwIHpkYXJ6ZW5pYSAtIHJvc27EhWNvJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfZGVzYyddID0gJ0FkcmVzIElQIC0gbWFsZWrEhWNvJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnQWRyZXMgSVAgLSByb3NuxIVjbyc7CiRsYW5nWydpbmZvX25vaGlzdG9yeWRldGVjdGVkJ10gPSAnTmllIG9kbm90b3dhbm8gxbxhZG55Y2ggemRhcnplxYQnOwokbGFuZ1sncmVzZXQnXSA9ICdXeWN6ecWbxIcnOwokbGFuZ1sncHJvbXB0X2dyb3VwX2lwJ10gPSAnR3J1cHVqIHBvZCBhZHJlc2llIElQJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZXZlbnR0eXBlJ10gPSAnRmlsdHIgdHlwJm9hY3V0ZTt3IHpkYXJ6ZcWEJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ1d5xZt3aWV0bCB0eWxrbyB6ZGFyemVuaWEgeiBvc3RhdG5pZWdvIG9rcmVzdSc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnTGltaXQgcmVrb3JkJm9hY3V0ZTt3IG5hIHN0cm9uaWUnOwokbGFuZ1snZm9yJ10gPSAnZGxhJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAnUmFwb3J0IGhpc3RvcmlpJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdOaWV6bmFuZSc7CiRsYW5nWydwcm9tcHRfaXBhZGRyZXNzJ10gPSAnQWRyZXMgSVAnOwokbGFuZ1sncHJvbXB0X2V2ZW50dHlwZSddID0gJ1R5cCB6ZGFyemVuaWEnOwokbGFuZ1sncHJvbXB0X2RhdGUnXSA9ICdEYXRhJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdQb3dyJm9hY3V0ZTt0JzsKJGxhbmdbJ2ltcG9ydF9jb21wbGV0ZV9tc2cnXSA9ICdPcGVyYWNqYSBpbXBvcnR1IHpha2/FhGN6ecWCYSBzacSZIHN1a2Nlc2VtJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ3ByemV0d29yem9uZSBsaW5pZSc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnT2Rrcnl0ZSBixYLEmWR5JzsKJGxhbmdbJ3Byb21wdF9yZWNvcmRzYWRkZWQnXSA9ICdEb2RhbmUgcmVrb3JkeSc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnTmllIG1vZ8SZIHpuYWxlxbrEhyBjZWNoeSBncnVweSAlcyc7CiRsYW5nWydlcnJvcl9ub3Jlc3BvbnNlZnJvbXNlcnZlciddID0gJ05pZSBtb2fEmSB1enlza2HEhyBvZHBvd2llZHppIHogc2Vyd2VyYSBTTVRQJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ1BsaWsgbyBuYXp3aWUgKCVzKSBuaWUgem9zdGHFgiBvZG5hbGV6aW9ueSc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZHZhbHVlJ10gPSAnTmllcHJhd2lkxYJvd2Egd2FydG/Fm8SHIGRsYSB3YXJ0b8WbY2kgbHViIGxpc3R5ICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkbGVuZ3RoJ10gPSAnUG9sZSAlcyBwcnpla3JhY3phIG1ha3N5bWFsbsSFIGTFgnVnb8WbxIcnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICdCxYLEhWQgcHJ6eSBpbXBvcmNpZSAobGluaWEgJXMpOiAlcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0eWRlZm5zJ10gPSAnTmllIG1vxbxuYSBwb2JyYcSHIGNlY2ggKGLFgsSFZCB3ZXduxJl0cnpueSBtb2R1xYJ1KSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ2luZm8nXSA9ICdQcm9ibGVtIHByenkgdXN0YXdpYW5pdSBpbmZvcm1hY2ppIG8gdcW8eXRrb3duaWt1JzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHJlcXVpcmVkZmllbGQnXSA9ICdOaWUgb2RuYWxlemlvbm8gxbxhZG5laiBrb2x1bW55LCBrdCZvYWN1dGU7cmEgc3BlxYJuaWEgd2FydW5raSAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ05pZSBvZG5hbGV6aW9ubyBjZWNoIGRsYSB3c2themFuZWogZ3J1cHknOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ1BsaWsgd3NrYXphbnkgZG8gaW1wb3J0dSBuaWUgemFjaG93dWplIHd5bWFnYW5lZ28gZm9ybWF0dSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdG9wZW5maWxlJ10gPSAnTmllIG1vxbxuYSBvdHdvcnp5xIcgcGxpa3UnOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcIykgY2hhcmFjdGVycywgYW5kIG5hbWVzIGVhY2ggb2YgdGhlIGZpZWxkcyBpbiB0aGUgZmlsZS4gIFRoZSBuYW1lcyBvZiB0aGVzZSBmaWVsZHMgaXMgc2lnbmlmaWNhbnQuICBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZCBuYW1lcyAoc2VlIGJlbG93KSwgYW5kIG90aGVyIGZpZWxkIG5hbWVzIG11c3QgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdXNlcnMgYXJlIGdvaW5nIHRvIGJlIGFkZGVkIGludG8uPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBmYWlsIGlmIHRoZSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgZG9lcyBub3QgbWF0Y2ggYWxsIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdGhhdCB1c2VycyBhcmUgYmVpbmcgYWRkZWQgaW50bzwvbGk+DQo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBpZ25vcmUgYW55IGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSB0aGF0IGFyZSBlaXRoZXIgbm90IGtub3duLCBvciBtYXAgdG8gcHJvcGVydGllcyB0aGF0IGFyZSA8ZW0+b2ZmPC9lbT4gaW4gdGhlIHNwZWNpZmllZCB1c2VyIGdyb3VwLjwvbGk+DQo8L3VsPg0KPGg1PkNvbHVtbmFyIERhdGE8L2g1Pg0KPHVsPg0KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuDQogICAgPHA+VGhpcyBmaWVsZCBtdXN0IGV4aXN0IGluIHRoZSBoZWFkZXJsaW5lLCBhbmQgaW4gZWFjbiBhbmQgZXZlcnkgbGluZSBvZiB0aGUgaW5wdXQgZmlsZS4gVGhlIHJlY29yZCB3aWxsIGZhaWwgaWYgYSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UuPC9wPjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5leHBpcmVzPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+RHJvcGRvd24gRmllbGRzDQogICAgPHA+VGhlIHZhbHVlIG9mIGRyb3Bkb3duIHByb3BlcnRpZXMgaW4gYW4gaW1wb3J0IGZpbGUgaXMgcmVwcmVzZW50ZWQgYXMgdGhlIHN0cmluZyB0aGF0IGlzIHNob3duIGluIHRoZSBkcm9wZG93biBjb250cm9sIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPk11bHRpc2VsZWN0IEZpZWxkcw0KICAgIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4NCjwvbGk+DQo8bGk+SW1hZ2UgRmllbGRzDQogICAgPHA+SW1hZ2UgYXJlIGZpZWxkcyB3aG8mIzAzOTtzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0dWogdcW8eXRrb3duaWsmb2FjdXRlO3cgZG8gZ3J1cHknOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnxblyJm9hY3V0ZTtkxYJvd3kgcGxpayBDU1YnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdQbGlrIFhNTCBkbyBvZGN6eXR1JzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0Vrc3BvcnR1aiB1xbx5dGtvd25payZvYWN1dGU7dyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnR1aiB1xbx5dGtvd25pa293JzsKJGxhbmdbJ3Byb21wdF9jbGVhciddID0gJ1d5Y3p5xZvEhyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ0RvY2Vsb3dhIMWbY2llxbxrYSBwbGlrJm9hY3V0ZTt3IHogb2JyYXprYW1pJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnUG9qYXdpxYIgc2nEmSBwcm9ibGVtIHogYnJha3VqxIVjeW0gKGFsZSB3eW1hZ2FueW0pIHdncnl3YW5pZW0gcGxpayZvYWN1dGU7dyc7CiRsYW5nWydlcnJvcl9iYWRfeG1sJ10gPSAnTmllIG1vZ8SZIHByemV0d29yennEhyB3c2themFuZWdvIHBsaWt1IFhNTCAoesWCeSBmb3JtYXQ/KSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnTmllIG1vxbxuYSBza2Fzb3dhxIcgZ3J1cHksIGt0Jm9hY3V0ZTtyYSBtYSBwcnp5cGlzYW55Y2ggdcW8eXRrb3duaWsmb2FjdXRlO3cnOwokbGFuZ1snZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucyddID0gJ1RlbiB1xbx5dGtvd25payBqdcW8IGplc3QgemFsb2dvd2FueSc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdUZWtzdCB6IG9icmF6a2EgbmllIHpvc3RhxYIgcHJ6ZXBpc2FueSBwb3ByYXduaWUnOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ1Bvencmb2FjdXRlO2wgdcW8eXRrb3duaWtvbSBsb2dvd2HEhyBzacSZIHdpxJljZWogbmnFvCByYXonOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ1JvenN6ZXJ6ZW5pZSBwbGlrJm9hY3V0ZTt3IHogb2JyYXprYW1pLCBrdCZvYWN1dGU7cmUgdcW8eXRrb3duaWN5IG1vZ8SFIHdncnl3YcSHJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVVc2VyJ10gPSAnPGgzPk9uRGVsZXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgdXBkYXRlZCAoZWl0aGVyIGJ5IHVzZXIgdGhlbXNlbGYgb3IgYWRtaW4pPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgZ3JvdXAgZGVzY3JpcHRpb248L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVHcm91cCddID0gJzxoMz5PbkRlbGV0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBUaGUgaXAgYWRkcmVzcyBvZiB0aGUgY2xpZW50PC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWRvdXQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25FeHBpcmVVc2VyJ10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gZXhwaXJlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluIHRvIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dCBvZiB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gaXMgZXhwaXJlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgbmV3IHVzZXIgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpbmZvIGlzIHVwZGF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgYWNjb3VudCBpcyBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBkZWxldGVkJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdHcnVwYSBzeXN0ZW11IENNUyc7CiRsYW5nWydpbmZvX3N0YXInXSA9ICcqIE5hc3TEmXB1asSFY2Ugem5hY3puaWtpIG1vZ8SFIHpvc3RhxIcgd3lrb3J6eXN0YW5lIHcgdHljaCBwb2xhY2g6IHskdXNlcm5hbWV9LCB7JGdyb3VwfS4gVcW8eXdhasSFYyB6bmFjem5pa2EgeyRncm91cH0sIHN5c3RlbSBwb2RtaWVuaSBuYXp3xJkgcGllcndzemVnbyBjesWCb25rYSBncnVweSwgZG8ga3Qmb2FjdXRlO3JlaiB1xbx5dGtvd25payBuYWxlxbx5IC0gaSBwcnpla2llcnVqZSBkbyB0ZWogc3Ryb255Lic7CiRsYW5nWydpbmZvX2FkbWluX3Bhc3N3b3JkJ10gPSAnRWR5dHVqIHRvIHBvbGUgYnkgd3lrYXNvd2HEhyBoYXPFgm8gdcW8eXRrb3duaWthJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdFZHl0dWogdG8gcG9sZSBieSB3eWthc293YcSHIGhhc8WCbyB1xbx5dGtvd25pa2EnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnVcW8eXRrb3duaWsgbyB0ZWogbmF6d2llIGp1xbwgaXN0bmllamUnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnRWtzcG9ydCBkbyBDU1YgbmllIHphcGlzYcWCIMW8YWRueWNoIHd5bmlrJm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ0TFgnVnb8WbxIcgcG9sYSBuYXp3eSB1xbx5dGtvd25pa2EnOwokbGFuZ1sncHJvbXB0X3B3ZmxkbGVuJ10gPSAnRMWCdWdvxZvEhyBwb2xhIGhhc8WCYSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmRsZW5ndGhzJ10gPSAnTWluL01heCBkxYJ1Z2/Fm2NpIGhhc8WCYSBzxIUgbmllcHJhd2lkxYJvd2UnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ01pbi9NYXggZMWCdWdvxZtjaSBuYXp3eSB1xbx5dGtvd25pa2Egc8SFIG5pZXByYXdpZMWCb3dlJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdOaWVwcmF3aWTFgm93eSBhZHJlcyBlbWFpbCc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ05pZSB6bmFsZXppb25vIGFkcmVzdSBlbWFpbCBwcnp5cGlzYW5lZ28gZG8gdGVnbyBrb250YSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2VldHRpbmdpbmZvJ10gPSAnUHJvYmxlbSB6IHVzdGFsZW5pZW0gaW5mb3JtYWNqaSBvIHXFvHl0a293bmlrdSc7CiRsYW5nWydlcnJvcl9zZXR0aW5ncHJvcGVydHknXSA9ICdQcm9ibGVtIHogdXN0YWxlbmllbSBjZWNoJzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdVxbx5dGtvd25payBkb2RhbnkgJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdVxbx5dGtvd25payB1c3VuacSZdHkgdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnQ2VjaGEnOwokbGFuZ1sndmFsdWVyZWdleCddID0gJ1dhcnRvxZvEhyAod3lyYcW8ZW5pZSByZWd1bGFybmUpJzsKJGxhbmdbJ3dhcm5pbmdfZWZmZWN0c2ZpZWxkbGVuZ3RoJ10gPSAnVXdhZ2E6IHRlIHBvbGEgbWFqxIUgd3DFgnl3IG5hIHdpZWxrb8WbxIcgcCZvYWN1dGU7bCB3ecWbd2lldGxhbmVnbyBmb3JtdWxhcnphLiBabWllbmlhbmllIHRlaiBsaWN6YnkgbmEgaXN0bmllasSFY2VqIHN0cm9uaWUgbW/FvGUgbmllIGJ5xIcgbmFqbGVwc3p5bSBwb215c8WCZW0hJzsKJGxhbmdbJ2NvbmZpcm1fc3VibWl0cHJlZnMnXSA9ICdabWllbmnEhyBwcmVmZXJlbmNqZSBhZG1pbmlzdHJhdG9yYT8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ1RlbiBlbWFpbCBqdcW8IGplc3QgdcW8eXdhbnkgdyBzeXN0ZW1pZSc7CiRsYW5nWydwcm9tcHRfdXNlY29va2llc3RvcmVtZW1iZXInXSA9ICdVxbx5d2FqIGNpYXN0ZWN6ZWsgYnkgemFwYW1pxJl0YcSHIHN6Y3plZyZvYWN1dGU7xYJ5IGxvZ293YW5pYSc7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ05hendhIGNpYXN0ZWN6a2EgKGNvb2tpZSknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICdQb3p3Jm9hY3V0ZTtsIG5hIHdpZWxva3JvdG5lIGVtYWlsZSc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdBZHJlcyBlbWFpbCBqZXN0IHImb2FjdXRlO3duaWXFvCBuYXp3xIUgdcW8eXRrb3duaWthJzsKJGxhbmdbJ2luZm9fY29va2llX2tlZXBhbGl2ZSddID0gJ1ByJm9hY3V0ZTtiYSB1dHJ6eW1hbmlhIHphbG9nb3dhbmlhIHByemV6IHXFvHljaWUgY2lhc3RlY3prYSAoY29va2llKSA8ZW0+KGNpYXN0ZWN6a28gamVzdCB1c3Rhd2lhbmUgcHJ6ZXogYWt0eXdub8WbxIcgbmEgc3Ryb25pZSk8L2VtPic7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcocG96dyZvYWN1dGU7bCB3aWVsdSB1xbx5dGtvd25pa29tIHXFvHl3YcSHIHRlZ28gc2FtZWdvIGVtYWlsYSknOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyhlbWFpbCB3cGlzYW55IHByemV6IHXFvHl0a293bmlrYSBqZXN0IHXFvHl0eSBqYWtvIG5hendhIHRlZ28gdcW8eXRrb3duaWthIChqZWdvIGxvZ2luKSAtIHR5bGtvIG5pZSB6ZXN0YXdpYWogdGVnbyB6IG9wY2rEhSAmcXVvdDtwb3p3Jm9hY3V0ZTtsIG5hIHdpZWxva3JvdG5lIGVtYWlsZSZxdW90OyEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnUG96dyZvYWN1dGU7bCBuYSB3aWVsb2tyb3RuZSAmcXVvdDtwcnp5cG9taW5hY3plIGhhc2XFgiZxdW90Oz8nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnKHBvencmb2FjdXRlO2wgdcW8eXRrb3duaWtvbSB3eXPFgmHEhyDFvMSFZGFuaWUga2Fzb3dhbmlhIGhhc8WCYSBuYXdldCBnZHkgbmllIHXFvHl3YWxpIHBvcHJ6ZWRuaWVnbyknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdVxbx5d2HEhyB1cHJhd25pZcWEIGRlZHlrb3dhbnljaCBkbGEgVcW8eXRrb3duaWsmb2FjdXRlO3cgRkVVPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoWmF6d3ljemFqLCB1xbx5dGtvd25pY3kgRkVVIG1hasSFIHRha2llIHNhbWUgdXByYXduaWVuaWEgamFrIHVwcmF3bmllbmlhIGFkbWluaXN0cmFjeWpuZSBDTVMtYSwgdGFraWUgamFrICZxdW90O2RvZGF3YW5pYSB1xbx5dGtvd25payZvYWN1dGU7dyZxdW90OywgJnF1b3Q7ZG9kYXdhbmllIGdydXAmcXVvdDsgaXRwLiBKYWsgemF6bmFjenlzeiB0xJkgb3BjasSZIC0gdXByYXduaWVuaWEgQ01TLWEgaSB1xbx5dGtvd25payZvYWN1dGU7dyBGRVUgem9zdGFuxIUgcm96ZHppZWxvbmUpJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdOaWUgem5hbGV6aW9ubyB3Z3JhbmVnbyBwbGlrdSAoYsWCxIVkIHdld27EmXRyem55IHN5c3RlbXUpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJ10gPSAnQnnFgiBwcm9ibGVtIHogdHdvaW0gcGxpa2llbSBkbyB3Z3J5d2FuaWEuIFNwciZvYWN1dGU7YnVqIHBvbm93bmllLic7CiRsYW5nWydlcnJvcl9taXNzaW5ndXNlcm5hbWUnXSA9ICdOaWUgd3Byb3dhZHpvbm8gbmF6d3kgdcW8eXRrb3duaWthJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdlbWFpbCddID0gJ05pZSB3cGlzYW5vIGVtYWlsYSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdOaWUgd3Byb3dhZHpvbm8gaGFzxYJhJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dvdXQnXSA9ICdXeWxvZ3VqIHXFvHl0a293bmlrYSBGRVUnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnWmFsb2d1aiB1xbx5dGtvd25pa2EgRkVVJzsKJGxhbmdbJ2VkaXRwcm9wX2luZm9tc2cnXSA9ICc8Zm9udCBjb2xvcj0mYW1wO2FtcDthbXA7YW1wO3F1b3Q7cmVkJmFtcDthbXA7YW1wO2FtcDtxdW90Oz48Yj5VxbtZV0FKIE9TVFJPxbtOSUU8L2I+IGdkeSB6bWllbmlhc3ogaXN0bmllasSFY2UgY2VjaHksIGt0Jm9hY3V0ZTtyZSBzxIUganXFvCBwcnp5cGlzYW5lIGRvIGdydXAsIG1vxbxlc3ogY2/FmyB1c3prb2R6acSHLCBzdHJhY2nEhyBkYW5lIGx1YiBzcG93b2Rvd2HEhywgxbxlIHN0cm9uYSBixJlkemllIHNpxJkgaW5hY3plaiB3ecWbd2lldGxhxYJhISA8aT4obnAuIGdkeSB6bW5pZWpzemFzeiBkxYJ1Z2/Fm2NpIHAmb2FjdXRlO2wpPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdUYSBmdW5rY2phIG5pZSBkemlhxYJhIG5hIHN5c3RlbWllIFdpbmRvd3MnOwokbGFuZ1snbXNnX2RvbnRjcmVhdGV1c2VybmFtZSddID0gJ05pZSB0dyZvYWN1dGU7cnogY2VjaHkgZGxhIG5hend5IHXFvHl0a293bmlrYSBhbmkgaGFzxYJhIC0gc8SFIG9uZSBqdcW8IHdidWRvd2FuZSBzdGFuZGFyZG93byB3IG1vZHXFgiB1xbx5dGtvd25payZvYWN1dGU7dyBGRVUnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0Vrc3BvcnQgdcW8eXRrb3duaWsmb2FjdXRlO3cgZG8gZm9ybWF0dSBDU1YnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRWtzcG9ydCc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnQnOwokbGFuZ1snYWRtaW4nXSA9ICdBZG1pbic7CiRsYW5nWydlZGl0cHJvcCddID0gJ0VkeWNqYSBjZWNoJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01ha3N5bWFsbmEgZMWCdWdvxZvEhyc7CiRsYW5nWydjcmVhdGVkJ10gPSAnU3R3b3J6b25vJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnR1aiBwbyc7CiRsYW5nWydzb3J0J10gPSAnU29ydHVqZSc7CiRsYW5nWyd1c2Vyc2luZ3JvdXAnXSA9ICdVxbx5dGtvd25payZvYWN1dGU7dyB6IHphem5hY3pvbmVqIGdydXB5IChncnVwKSc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdPZ3JhbmljeiB3eW5pa2kgZG8nOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGZpZWxkJ10gPSAnTmllIHpuYWxlemlvbm8gcG9sYSBlbWFpbCBkbGEgdGVnbyB1xbx5dGtvd25pa2EuIEJ5xIcgbW/FvGUga29uaWVjem55IGLEmWR6aWUga29udGFrdCB6IGFkbWluaXN0cmF0b3JlbSBzeXN0ZW11JzsKJGxhbmdbJ3Byb21wdF9mb3Jnb3Rwd19wYWdlJ10gPSAnSURTdHJvbnkvQWxpYXMgZGxhIGZvcm11bGFyemEgemFwb21uaWFuZWdvIGhhc8WCYSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ0lEU3Ryb255L0FsaWFzIGRsYSBmb3JtdWxhcnphIHptaWFueSB1c3Rhd2llxYQnOwokbGFuZ1sncHJvbXB0X2xvZ2luX3BhZ2UnXSA9ICdJRFN0cm9ueS9BbGlhcyBkbyBwcnplc2tvY3plbmlhIHBvIHphbG9nb3dhbml1IConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnSURTdHJvbnkvQWxpYXMgZG8gcHJ6ZXNrb2N6ZW5pYSBwbyB3eWxvZ293YW5pdSAqJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ1BvcnrEhWRlayBzb3J0b3dhbmlhJzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ0N6xJnFm8SHIHXFvHl0a293bmlrJm9hY3V0ZTt3IHfFgmHFm25pZSBqZXN0IHcgdHJha2NpZSByZXNldG93YW5pYSB6YWd1YmlvbmVnbyBoYXPFgmEuIE9iZWNuaWUgdHljaCB1xbx5dGtvd25payZvYWN1dGU7dyBqZXN0Oic7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ1VzdcWEIHdzenlzdGtpZSB3cGlzeSBzdGFyc3plIG5pxbwgdHlkemllxYQnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnVXN1xYQgd3N6eXN0a2llIHdwaXN5IHN0YXJzemUgbmnFvCBtaWVzacSFYyc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdVc3XFhCB3c3p5c3RraWUgd3Bpc3knOwokbGFuZ1snYXJleW91c3VyZSddID0gJ05hIHBld25vPyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ05pZXByYXdpZMWCb3d5IGtvZCB6b3N0YcWCIHdwcm93YWR6b255LCBzcHImb2FjdXRlO2J1aiBwb25vd25pZSc7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnVHltY3phc293eSBrb2QgZGxhIGlkIHXFvHl0a293bmlrYSBuaWUgem9zdGHFgiB6bmFsZXppb255IHcgYmF6aWUgZGFueWNoJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3ZlcmlmeXRlbXBsYXRlJ10gPSAnU3phYmxvbiB1xbx5d2FueSBkbyB3ecWbd2lldGxhbmlhIGZvcm11bGFyeiB3ZXJ5ZmlrdWrEhWNlZ28nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfZW1haWx0ZW1wbGF0ZSddID0gJ1N6YWJsb24gdcW8eXdhbnkgZG8gemFwb21uaWFueWNoIGhhc2XFgiBkbGEga29udCBlbWFpbCc7CiRsYW5nWydlcnJvcl9yZXNldGFscmVhZHlzZW50J10gPSAnQWxibyBrdG/FmyBqdcW8IHVydWNob21pxYIgb3BlcmFjasSZIG9wZXJhY2rEmSByZXNldG93YW5pYSBoYXPFgmEgZGxhIHRlZ28ga29udGEsIGFsYm8gc2FtIGp1xbwgdG8genJvYmnFgmXFmy4gU3ByYXdkxbogc3dvasSFIHBvY3p0xJkgZW1haWwsIGJ5xIcgbW/FvGUganXFvCBvdHJ6eW1hxYJlxZsgZGFsc3plIGluc3RydWtjamUsIGphayB6cmV6ZXRvd2HEhyBzd29qZSBoYXPFgm8uJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdCxYLEhWQgYmF6eSBkYW55Y2gnOwokbGFuZ1snbWVzc2FnZV9mb3Jnb3Rwd2VtYWlsJ10gPSAnT3RyenltYcWCYcWbL8WCZcWbLCBnZHnFvCBrdG/FmyB6Z8WCb3NpxYIgbmFtLCBpxbwgemd1YmnFgmHFmy/FgmXFmyBzd29qZSBoYXPFgm8uIFcgdHltIHByenlwYWRrdSBwcnplY3p5dGFqIHBvbmnFvHN6ZSBpbnN0cnVrY2plLiBKZcW8ZWxpIG5pZSBtYXN6IHBvasSZY2lhIGNvIHRvIGplc3QsIG1vxbxlc3ogYmV6cGllY3puaWUgdXN1bsSFxIcgdMSFIHdpYWRvbW/Fm8SHOyBkemnEmWt1amVteSB6YSBwb8Wbd2nEmWNvbnkgY3phcy4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdLb2QnOwokbGFuZ1snbWVzc2FnZV9jb2RlJ10gPSAnUG9uacW8c3p5IGtvZCB6b3N0YcWCIHd5Z2VuZXJvd2FueSBhdXRvbWF0eWN6bmllIHcgY2VsdSB3ZXJ5ZmlrYWNqaSBrb250YSB1xbx5dGtvd25pa2EuIEdkeSBrbGlrbmllc3ogcG9uacW8c3p5IGxpbmssIHd5xZt3aWV0bGkgc2nEmSBwb2xlLCB3IGt0Jm9hY3V0ZTtyeW0gbmFsZcW8eSB3cGlzYcSHIHRlbiBrb2QuIFphend5Y3phaiB0byBwb2xlIGplc3QganXFvCB3eXBlxYJuaW9uZSwgamXFvGVsaSBqZWRuYWsgbmllIGplc3QsIHRvIGtvZCBqZXN0IG5hc3TEmXB1asSFY3k6JzsKJGxhbmdbJ3Byb21wdF9saW5rJ10gPSAnS2xpa2FqxIVjIG5hIHRlbiBvZG5vxZtuaWsgcHJ6ZW5pZXNpZXN6IHNpxJkgZG8gc3Ryb255LCBnZHppZSBwbyB3cHJvd2FkemVuaXUgcG93ecW8c3plZ28ga29kdSBixJlkemllIG1vxbxsaXdlIHd5a2Fzb3dhbmllIHR3b2plZ28gaGFzxYJhOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnWmFndWJpb25lIGhhc8WCbyc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ05pZSBtb8W8bmEgb2RuYWxlxbrEhyBtb2R1xYJ1IENNUyBNYWlsZXInOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnV2lhZG9tb8WbxIcgZW1haWwgem9zdGHFgmEgd3lzxYJhbmEgZG8gJXMgeiBpbnN0cnVrY2phbWkgZG90eWN6xIVjeW1pIHptaWFueSBoYXPFgmEuIER6acSZa3VqZW15Lic7CiRsYW5nWydsb3N0cHdfbWVzc2FnZSddID0gJ1pndWJpb25lIGx1YiB6YXBvbW5pYW5lIGhhc8WCbz8gV3Byb3dhZMW6IHN3b2rEhSBuYXp3xJkgdcW8eXRrb3duaWthIC0gamXFm2xpIG5hc3ogc3lzdGVtIHpuYWpkemllIHByenl3acSFemFueSBkbyB0ZWdvIHXFvHl0a293bmlrYSBhZHJlcyBlbWFpbCwgd3nFm2xlbXkgaW5zdHJ1a2NqZSBkb3R5Y3rEhWNlIHVzdGF3aWVuaWEgbm93ZWdvIGhhc8WCYS4nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdTemFibG9uIHN0cm9ueSB6YXBvbW5pYW5lZ28gaGFzxYJhJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ1N6YWJsb24gemd1YmlvbmVqIG5hend5IHXFvHl0a293bmlrYSc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdDZWNoYSAlcyBuaWUgem9zdGHFgmEgem5hbGV6aW9uYSc7CiRsYW5nWydwcm9wc2ZvdW5kJ10gPSAnem5hbGV6aW9ueWNoIGNlY2gnOwokbGFuZ1snYWRkcHJvcCddID0gJ0RvZGFqIGNlY2jEmSc7CiRsYW5nWydlcnJvcl9yZXF1aXJlZGZpZWxkJ10gPSAnV3ltYWdhbmUgcG9sZSAoJXMpIGplc3QgcHVzdGUnOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdXcHJvd2FkxbogdHV0YWogbm93ZSBoYXPFgm8gYnkgem1pZW5pxIcgc3RhcmUnOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdXeWRhamUgc2nEmSwgxbxlIG5pZSBqZXN0ZcWbIHphbG9nb3dhbmEoeSknOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEnOwokbGFuZ1sndXNlcl9yZWdpc3RyYXRpb24nXSA9ICdSZWplc3RyYWNqYSc7CiRsYW5nWydlcnJvcl9hY2NvdW50ZXhwaXJlZCddID0gJ1RvIGtvbnRvIHd5Z2FzxYJvJzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdOaWV3xYJhxZtjaXd5IGZvcm1hdCBhZHJlc3UgZW1haWwnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdOaWVwcmF3aWTFgm93YSBkYXRhIHd5Z2HFm25pxJljaWEnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdwcm9wZXJ0eSddID0gJ0LFgsSFZCBwcnp5IHVzdGF3aWFuaXUgY2VjaHkgJXMgZGxhIHXFvHl0a293bmlrYSAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ05pZXByYXdpZMWCb3dlIElEIGdydXB5ICVzJzsKJGxhbmdbJ2hpZGRlbmZpZWxkbWFya2VyJ10gPSAnWm5hY3puaWsgdWtyeXRlZ28gcG9sYSc7CiRsYW5nWydoaWRkZW5maWVsZGNvbG9yJ10gPSAnS29sb3IgdWtyeXRlZ28gcG9sYSc7CiRsYW5nWydoaWRkZW4nXSA9ICdVa3J5dGUnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlbmFtZSddID0gJ0NlY2hhIG8gdGVqIG5hendpZSBqdcW8IGplc3QgemRlZmluaW93YW5hJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ0JyYWsgemRlZmluaW93YW55Y2ggY2VjaCc7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ05pZSB6YXpuYWN6b25vIGNlY2ggZGxhIHRlaiBncnVweSc7CiRsYW5nWydub2dyb3VwcyddID0gJ05pZSB6ZGVmaW5pb3dhbnkgxbxhZG5laiBncnVweSc7CiRsYW5nWydncm91cHNmb3VuZCddID0gJ2dydXAgem5hbGV6aW9ubyc7CiRsYW5nWydlcnJvcl9vbmVncm91cHJlcXVpcmVkJ10gPSAnQ3rFgm9ua29zdHdvIHcgY28gbmFqbW5pZWogamVkbmVqIGdydXBpZSBqZXN0IHd5bWFnYW5lJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdXeW1hZ2FqIGN6xYJvbmtvc3R3YSB3IGNvIG5ham1uaWVqIGplZG5laiBncnVwaWUnOwokbGFuZ1snYmFjayddID0gJ1dyJm9hY3V0ZTvEhyc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnJXMgdG8gd3ltYWdhbmUgcG9sZSc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnWmF6bmFjeiB3eW1hZ2FuZSBwb2xhIHXFvHl3YWrEhWMnOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnUG9kxZt3aWV0bCB3eW1hZ2FuZSBwb2xhIHcnOwokbGFuZ1snbmV4dCddID0gJ0RhbGVqJzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnR3J1cGEgbyB0ZWogbmF6d2llIGp1xbwgaXN0bmllamUnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdXeW1hZ2FuZSBwb2xlJzsKJGxhbmdbJ29wdGlvbmFsJ10gPSAnT3Bjam9uYWxuaWUnOwokbGFuZ1snb2ZmJ10gPSAnV3nFgsSFY3pvbmUnOwokbGFuZ1snc2l6ZSddID0gJ1Jvem1pYXInOwokbGFuZ1snc2l6ZWNvbW1lbnQnXSA9ICc8YnIvPihNYWtzeW1hbG55IHJvem1pYXIgbmFqd2nEmWtzemVnbyBib2t1IG9icmF6a2EgLSB3IHBpa3NlbGFjaCknOwokbGFuZ1snbGVuZ3RoJ10gPSAnRMWCdWdvxZvEhyc7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyIC8+KHpuYWsmb2FjdXRlO3cgdyBwb2x1IHdwcm93YWR6ZW5pYSB0ZWtzdHUpJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdPcGNqZSBsaXN0IHJvendpamFueWNoLCBvZGR6aWVsb25lIG5vd3ltaSBsaW5pYW1pJzsKJGxhbmdbJ3Byb21wdCddID0gJ1phY2jEmXRhJzsKJGxhbmdbJ3Byb21wdF90eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1snZmllbGRzdGF0dXMnXSA9ICdTdGF0dXMgcG9sYSc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdaYXB5dGFqIHcgWmd1YmlvbmVqPGJyIC8+bmF6d2llIHXFvHl0a293bmlrYSc7CiRsYW5nWyd0ZXh0J10gPSAnVGVrc3QnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ0xpc3RhIHdpZWxva3JvdG5lZ28gd3lib3J1JzsKJGxhbmdbJ2ltYWdlJ10gPSAnT2JyYXplayc7CiRsYW5nWydlbWFpbCddID0gJ0FkcmVzIGVtYWlsJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnUG9sZSB0ZWtzdG93ZSc7CiRsYW5nWydkcm9wZG93biddID0gJ0xpc3RhIHJvendpamFuYSc7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ1dpdGFteSc7CiRsYW5nWydsb2dvdXQnXSA9ICdXeWxvZ3VqJzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdVxbx5d2FqIHRlbiBuYXp3eSBncnVweSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdabWllxYQgbW9qZSB1c3Rhd2llbmlhJzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnTG9nb3dhbmllIG5pZSBwb3dpb2TFgm8gc2nEmSAtIHrFgnkgdcW8eXRrb3duaWsgbHViIGhhc8WCbz8nOwokbGFuZ1snbG9naW4nXSA9ICdaYWxvZ3VqJzsKJGxhbmdbJ3Byb21wdF9zaWduaW5fYnV0dG9uJ10gPSAnRXR5a2lldGEgZ3V6aWthIFphcGlzeiBzacSZJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ1XFvHl0a293bmlrJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0FkcmVzIGVtYWlsJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ0hhc8WCbyc7CiRsYW5nWydwcm9tcHRfcmVtZW1iZXJtZSddID0gJ1BhbWnEmXRhaiBtbmllIG5hIHR5bSBrb21wdXRlcnplJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnUmVqZXN0cmFjamEnOwokbGFuZ1snZm9yZ290cHcnXSA9ICdaYXBvbW5pYW5lIGhhc8WCbz8nOwokbGFuZ1snbG9zdHVzZXJuYW1lJ10gPSAnWmd1YmlvbnkgbG9naW4/JzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAnV2FydG/Fm2NpIGRvbXnFm2xuZSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1N6YWJsb24nOwokbGFuZ1snZXJyb3JfdXNlcm5vdGZvdW5kJ10gPSAnTmllIHpuYWxlemlvbm8gSUQgdcW8eXRrb3duaWthJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1ldGFrZW4nXSA9ICdUYSBuYXp3YSB1xbx5dGtvd25pa2EgKCVzKSBqZXN0IGp1xbwgdcW8eXdhbmEnOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ1XFvHl3YWogU01UUCBieSBzcHJhd2R6YcSHIGFkcmVzIGVtYWlsPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdNaW5pbWFsbmEgZMWCdWdvxZvEhyBoYXPFgmEnOwokbGFuZ1sncHJvbXB0X21heHB3bGVuJ10gPSAnTWFrc3ltYWxuZSBkxYJ1Z2/Fm8SHIGhhc8WCYSc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdNaW5pbWFsbmEgZMWCdWdvxZvEhyBuYXp3eSB1xbx5dGtvd25pa2EnOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnTWFrc3ltYWxuYSBkxYJ1Z2/Fm8SHIG5hend5IHXFvHl0a293bmlrYSc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdUaW1lb3V0IHNlc2ppICh3IHNla3VuZGFjaCknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ1XFvHl3YWogY2lhc3RlY3playwgYnkgbG9nb3dhbmllIGJ5xYJvIHphcGFtacSZdHl3YW5lIGkgdXRyenlteXdhbmUnOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdQb3p3Jm9hY3V0ZTtsIG5hIHJlamVzdHJhY2rEmSBlbWFpbG93xIUnOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ0RvbXnFm2xuYSBncnVwYSBkbGEgbm93eWNoIHXFvHl0a293bmlrJm9hY3V0ZTt3JzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnU3phYmxvbiB6bWlhbnkgdXN0YXdpZcWEJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3JkbWlzbWF0Y2gnXSA9ICdIYXPFgmEgbmllIHpnYWR6YWrEhSBzacSZJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ05pZXByYXdpZMWCb3dhIG5hendhIHXFvHl0a293bmlrYSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdOaWVwcmF3aWTFgm93ZSBoYXPFgm8nOwokbGFuZ1snZWRpdHVzZXInXSA9ICdFZHl0dWogdcW8eXRrb3duaWthJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnUG9wcmF3bmllJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnTmF6d2EgdcW8eXRrb3duaWthJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICdUZW4gdcW8eXRrb3duaWsgbmllIGplc3QgY3rFgm9ua2llbSDFvGFkbmVqIGdydXB5JzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICdCcmFrIGNlY2gnOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdQciZvYWN1dGU7YnVqIHphaW1wb3J0b3dhxIcgemR1cGxpa293YW5lIGNlY2h5JzsKJGxhbmdbJ3ZhbHVlJ10gPSAnV2FydG/Fm8SHJzsKJGxhbmdbJ2dyb3VwcyddID0gJ0dydXB5JzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdDZWNoeSc7CiRsYW5nWydwcm9wbmFtZSddID0gJ05hendhIGNlY2h5JzsKJGxhbmdbJ3Byb3B2YWx1ZSddID0gJ1dhcnRvxZvEhyBjZWNoeSc7CiRsYW5nWydhZGQnXSA9ICdEb2Rhaic7CiRsYW5nWydoaXN0b3J5J10gPSAnSGlzdG9yaWEnOwokbGFuZ1snZWRpdCddID0gJ0VkeXR1aic7CiRsYW5nWydleHBpcmVzJ10gPSAnV3lnYXNhJzsKJGxhbmdbJ3NwZWNpZnlfZGF0ZSddID0gJ1BvZGFqIGRhdMSZJzsKJGxhbmdbJzEyaHJzJ10gPSAnMTIgZ29kemluJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQgZ29kemlueSc7CiRsYW5nWyc0OGhycyddID0gJzQ4IGdvZHppbnknOwokbGFuZ1snMXdlZWsnXSA9ICcxIHR5ZHppZcWEJzsKJGxhbmdbJzJ3ZWVrcyddID0gJzIgdHlnb2RuaWUnOwokbGFuZ1snMW1vbnRoJ10gPSAnMSBtaWVzacSFYyc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBtaWVzacSFY2UnOwokbGFuZ1snNm1vbnRocyddID0gJzYgbWllc2nEhWNlJzsKJGxhbmdbJzF5ZWFyJ10gPSAnMSByb2snOwokbGFuZ1snbmV2ZXInXSA9ICdOaWdkeSc7CiRsYW5nWydwb3N0aW5zdGFsbG1lc3NhZ2UnXSA9ICdNb2R1xYIgem9zdGHFgiB6YWluc3RhbG93YW55IHBvcHJhd25pZS4gPGJyLz5VcGV3bmlqIHNpxJksIMW8ZSB1c3Rhd2lzeiB1cHJhd25pZW5pYSBkbyAmcXVvdDtabWlhbiB3xYJhxZtjaXdvxZtjaSBtb2R1xYJ1IHXFvHl0a293bmlrJm9hY3V0ZTt3IEZFVS4mcXVvdDs8YnIgLz48YnIgLz4NCkRvZGF0a293byAtIHBvbGVjYW15IHphaW5zdGFsb3dhbmllIG1vZHXFgnUgQ2FwdGNoYS4gUG8gemFpbnN0YWxvd2FuaXUgLSBvZGN6eXRhbmllIHdhcnRvxZtjaSB6IG9icmF6a2EgYsSZZHppZSBrb25pZWN6bmUsIMW8ZWJ5IHd5cGXFgm5pxIcgZm9ybXVsYXJ6LiBUbyB0YWtpIHRyaWNrLCDFvGVieSB6cmVkdWtvd2HEhyBsaWN6YsSZIHNwYW11IGkgYXV0b21hdHljem55Y2ggcm9ib3Qmb2FjdXRlO3csIGt0Jm9hY3V0ZTtyZSB1dHJ1ZG5pYWrEhSDFvHljaWUgdyBzaWVjaS4NCg0KPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgbm9jYXB0Y2hhIHBhcmFtZXRlciBjYW4gYmUgdXNlZCB0byBkaXNhYmxlIHRoaXMgZnVuY3Rpb25hbGl0eSBldmVuIGlmIHRoZSBDYXB0Y2hhIG1vZHVsZSBpcyBpbnN0YWxsZWQuJnF1b3Q7JzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAnSGFzxYJvJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnUG9ub3duaWUnOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ0dydXBhIG8gdGFraWVqIG5hendpZSBqdcW8IGlzdG5pZWplJzsKJGxhbmdbJ2VkaXRncm91cCddID0gJ0VkeXR1aiBncnVwxJknOwokbGFuZ1snc3VibWl0J10gPSAnV3nFm2xpaic7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsdWonOwokbGFuZ1snZGVsZXRlJ10gPSAnS2FzdWonOwokbGFuZ1snY29uZmlybV9lZGl0Z3JvdXAnXSA9ICdDenkgbmEgcGV3bm8gc8SFIHRvIHfFgmHFm2Npd2UgdXN0YXdpZW5pYSBkbGEgdGVqIGdydXB5P1xuIFd5xYLEhWN6ZW5pZSB0ZWogY2VjaHkgbmllIHVzdW5pZSDFvGFkbnljaCB3cGlzJm9hY3V0ZTt3IHogdGFiZWxpIGNlY2ggZGxhIHRlaiBncnVweS91xbx5dGtvd25pa2EuIFBvIHByb3N0dSBixJlkxIUgb25lIG5pZWRvc3TEmXBuZSc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnTmEgcGV3bm8gdXN1bsSFxIcgdMSZIGdydXDEmT8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ05hIHBld25vIHVzdW7EhcSHIHTEmSBjZWNoxJk/IFxuIHBvIHRlaiBha2NqaSBza2Fzb3dhbmUgem9zdGFuxIUgdGXFvCBkYW5lIHXFvHl0a293bmlrJm9hY3V0ZTt3IGRvIG5pZWogcHJ6eXBpc2FueWNoLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdaYSBtYcWCbyBwYXJhbWV0ciZvYWN1dGU7dyc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ25hbWUnXSA9ICdOYXp3YSc7CiRsYW5nWydlcnJvcl9jYW50YWRkcHJvcCddID0gJ1Byb2JsZW0geiBkb2RhbmllbSBjZWNoeSc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXByZWxuJ10gPSAnUHJvYmxlbSB6IGRvZGFuaWVtIHJlbGFjamkgZ3J1cHknOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwJ10gPSAnUHJvYmxlbSB6IGRvZGFuaWVtIGdydXB5JzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnUHJvYmxlbSB6IGRvZGFuaWVtIHXFvHl0a293bmlrYSBkbyBncnVweSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmxlbSB6ZSBza2Fzb3dhbmllbSBjZWNoeSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGZpbmRlbWFpbCddID0gJ05pZSBtb2fEmSBvZG5hbGXFusSHIGFkcmVzdSBlbWFpbCc7CiRsYW5nWydlcnJvcl9kZXN0aW5hdGlvbm5vdHdyaXRhYmxlJ10gPSAnQnJhayB1cHJhd25pZcWEIGRvIHphcGlzdSB3IGthdGFsb2d1IGRvY2Vsb3d5bSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnTmllcHJhd2lkxYJvd2UgcGFyYW1ldHJ5JzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnTmllIG1vZ8SZIG9kbmFsZcW6xIcgxbxhZG55Y2ggZ3J1cCc7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ1phc3Rvc3VqJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRydWonOwokbGFuZ1sndXNlcmZpbHRlciddID0gJ05hendhIHXFvHl0a293bmlrYSAtIHd5cmHFvGVuaWUgcmVndWxhcm5lJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnT3Bpcyc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdOYXp3YSBncnVweSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdEb3N0xJlwIHphYnJvbmlvbnknOwokbGFuZ1snZXJyb3InXSA9ICdCxYLEhWQnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdEb2RhaiBncnVwxJknOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnR1aiBncnVwxJknOwokbGFuZ1snYWRkdXNlciddID0gJ0RvZGFqIHXFvHl0a293bmlrYSc7CiRsYW5nWyd1c2Vyc2ZvdW5kJ10gPSAnVcW8eXRrb3duaWsmb2FjdXRlO3cgem5hbGV6aW9ubyBzcGXFgm5pYWrEhWN5Y2gga3J5dGVyaWEnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwYSc7CiRsYW5nWydzZWxlY3Rncm91cCddID0gJ1d5YmllcnogZ3J1cMSZJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1N6YWJsb24gcmVqZXN0cmFjamknOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnU3phYmxvbiB3eWxvZ293YW5pYSBzacSZJzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnU3phYmxvbiB6YWxvZ293YW5pYSBzacSZJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnVXN0YXdpZW5pYSc7CiRsYW5nWyd1c2VycyddID0gJ1XFvHl0a293bmljeSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdaYXJ6xIVkemFuaWUgdcW8eXRrb3duaWthbWkgRkVVJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnUG96dyZvYWN1dGU7bCB1xbx5dGtvd25pa29tIGxvZ293YcSHIHNpxJkgbmEgc3Ryb25pZSc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnRG9tecWbbG5hIHN0cm9uYSBnxYImb2FjdXRlO3duYSc7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAnT3N0YXRuaW8gb3R3aWVyYW5hIHN0cm9uYSc7CiRsYW5nWydvdGhlcnBhZ2UnXSA9ICdJbm5hIHN0cm9uYTonOwokbGFuZ1snY2FwdGNoYV90aXRsZSddID0gJ1dwcm93YWTFuiB0ZWtzdCB6IG9icmF6a2EnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_BR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2luZm9fY29va2llc3RvcmVtZW1iZXInXSA9ICc8c3Ryb25nPk5vdGE6IDwvc3Ryb25nPiBFc3RlIG0mb2FjdXRlO2R1bG8gdXNhIG8gbWNyeXB0IHBhcmEgY3JpcHRvZ3JhZmlhLCBvIG1jcnlwdCBuJmF0aWxkZTtvIGZvaSBlbmNvbnRyYWRvIGVtIHN1YSBpbnN0YWxhJmNjZWRpbDsmYXRpbGRlO28uIFBvciBmYXZvciBjb250YXRlIG8gYWRtaW5pc3RyYWRvciBkbyBzZXUgc2Vydmlkb3IuJzsKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ0VkaXRhbmRvIFVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ25vaW5saW5lJ10gPSAnRG8gbm90IGlubGluZSBmb3Jtcyc7CiRsYW5nWydpbmZvX2xvc3R1biddID0gJ0NsaXF1ZSBhcXVpIHNlIHZvYyZlY2lyYzsgbiZhdGlsZGU7byBzZSBsZW1icmEgZGFzIGluZm9ybWEmY2NlZGlsOyZvdGlsZGU7ZXMgZGUgbG9naW4nOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ0NsaXF1ZSBhcXVpIHNlIHZvYyZlY2lyYzsgZXNxdWVjZXUgc3VhIHNlbmhhJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnQ2xpcXVlIGFxdWkgcGFyYSBmYXplciBsb2dvZmYnOwokbGFuZ1snaW5mb19jaGFuZ2VzZXR0aW5ncyddID0gJ0NsaXF1ZSBhcXVpIHBhcmEgYXR1YWxpemFyIHN1YSBzZW5oYSBvdSBvdXRyYXMgaW5mb3JtYSZjY2VkaWw7Jm90aWxkZTtlcyc7CiRsYW5nWyd2aWV3dXNlcl90ZW1wbGF0ZSddID0gJ1ZlciBtb2RlbG8gZG8gdXN1JmFhY3V0ZTtyaW8nOwokbGFuZ1snZXZlbnQnXSA9ICdFdmVudG8nOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ05vdGlmaWNhJmNjZWRpbDsmYXRpbGRlO28gZGUgRXZlbnRvIGRvIEZFVSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX2FkZHJlc3MnXSA9ICdFbmRlcmUmY2NlZGlsO28gZG8gZW1haWwgZGUgbm90aWZpY2EmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnTW9kZWxvIGRvIGVtYWlsIGRlIG5vdGlmaWNhJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9zdWJqZWN0J10gPSAnQXNzdW50byBkbyBlbWFpbCBkZSBub3RpZmljYSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25zJ10gPSAnTm90aWZpY2EmY2NlZGlsOyZvdGlsZGU7ZXMgZGUgZW1haWwnOwokbGFuZ1snT25Mb2dpbiddID0gJ0FvIGxvZ2FyJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnQW8gZGVzbG9nYXInOwokbGFuZ1snT25FeHBpcmVVc2VyJ10gPSAnQW8gZXhwaXJhciBhIHNlc3MmYXRpbGRlO28nOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnQW8gY3JpYXIgbm92byB1c3UmYWFjdXRlO3Jpbyc7CiRsYW5nWydPbkRlbGV0ZVVzZXInXSA9ICdBbyBkZWxldGFyIHVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ0FvIGFsdGVyYXIgY29uZmlndXJhJmNjZWRpbDsmb3RpbGRlO2VzIGRvIHVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ09uQ3JlYXRlR3JvdXAnXSA9ICdBbyBjcmlhciBncnVwbyBkZSB1c3UmYWFjdXRlO3Jpb3MnOwokbGFuZ1snT25EZWxldGVHcm91cCddID0gJ0FvIGRlbGV0YXIgZ3J1cG8gZGUgdXN1JmFhY3V0ZTtyaW9zJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcHJlbXNnJ10gPSAnQXMgaW5mb3JtYSZjY2VkaWw7Jm90aWxkZTtlcyBkZSBsb2dpbiBmb3ImYXRpbGRlO28gdmVyaWZpY2FkYXMgZSBhY2hhbW9zIHVtIHVzdSZhYWN1dGU7cmlvIHF1ZSBjb3JyZXNwb25kZSBhb3MgZGV0YWxoZXMgcXVlIHZvYyZlY2lyYzsgZGlnaXRvdS4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ1NldSBub21lIGRlIHVzdSZhYWN1dGU7cmlvICZlYWN1dGU7JzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcG9zdG1zZyddID0gJ04mb2FjdXRlO3MgcmVjb21lbmRhZG9zIHF1ZSB2b2MmZWNpcmM7IGd1YXJkZSBlc3NhcyBpbmZvcm1hJmNjZWRpbDsmb3RpbGRlO2VzIG51bSBsdWdhciBzZWd1cm8gbWFzIHF1ZSB2b2MmZWNpcmM7IHBvc3NhIGFjZXNzYXIuJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdJRC9hcGVsaWRvIGRhIHAmYWFjdXRlO2dpbmEgZGVzdGlubyBhcCZvYWN1dGU7cyBhbHRlcmFyIGNvbmZpZ3VyYSZjY2VkaWw7Jm90aWxkZTtlcyc7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfdmVyaWZ5X2NvZGUnXSA9ICdJRC9hcGVsaWRvIGRhIHAmYWFjdXRlO2dpbmEgZGVzdGlubyBhcCZvYWN1dGU7cyBjZXJpZmljYSZjY2VkaWw7JmF0aWxkZTtvIGRlIGMmb2FjdXRlO2RpZ28gKic7CiRsYW5nWydsb3N0dW5fZGV0YWlsc190ZW1wbGF0ZSddID0gJ0RldGFsaGVzIGRvIGVtYWlsIGRlIG5vbWUgZGUgdXN1JmFhY3V0ZTtyaW8gcGVyZGlkbyc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJ01vZGVsbyBkZSBjb25maXJtYSZjY2VkaWw7JmF0aWxkZTtvIGRlIG5vbWUgZGUgdXN1JmFhY3V0ZTtyaW8gcGVyZGlkbyc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0Vycm86IE1haXMgZGUgdW1hIGNvbnRhIGRlIHVzdSZhYWN1dGU7cmlvIGNvcnJlc3BvbmRlIGFzIGluZm9ybWEmY2NlZGlsOyZvdGlsZGU7ZXMgZGlnaXRhZGFzLic7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdFcnJvOiBOJmF0aWxkZTtvIGZvaSBwb3NzJmlhY3V0ZTt2ZWwgYWNoYXIgdW0gdXN1JmFhY3V0ZTtyaW8gY29ycmVzcG9uZGVudGUuJzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdFcnJvOiBOJmF0aWxkZTtvIGZvaSBwb3NzJmlhY3V0ZTt2ZWwgZW5jb250cmFyIHVtIGdydXBvIGNvbSBlc3NlIG5vbWUnOwokbGFuZ1sncmVhZG9ubHknXSA9ICdBcGVuYXMgTGVpdHVyYSc7CiRsYW5nWydwcm9tcHRfdXNlcm1hbmlwdWxhdG9yJ10gPSAnQ2xhc3NlIGRlIG1hbmlwdWxhJmNjZWRpbDsmYXRpbGRlO28gZGUgdXN1JmFhY3V0ZTtyaW9zJzsKJGxhbmdbJ2FkbWluX2xvZ291dCddID0gJ0Rlc2xvZ2FkbyBwZWxvIGFkbWluaXN0cmFkb3InOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ01vc3RyYXIgYXBlbmFzIHVzdSZhYWN1dGU7cmlvcyBsb2dhZG9zJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdEZXNsb2dhciBlc3RlIHVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ1Byb3ByaWVkYWRlcyBkbyB1c3UmYWFjdXRlO3Jpbyc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0hpc3Qmb2FjdXRlO3JpY28gZG8gdXN1JmFhY3V0ZTtyaW8nOwokbGFuZ1snZXhwb3J0J10gPSAnRXhwb3J0YXInOwokbGFuZ1snY2xlYXInXSA9ICdMaW1wYXInOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJoaXN0b3J5J10gPSAnRXhwb3J0YXIgaGlzdCZvYWN1dGU7cmljbyBkbyB1c3UmYWFjdXRlO3JpbyBxdWUgdGVuaGFtIGFvIG1lbm9zIHBhcmEgQVNDSUknOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdMaW1wYXIgaGlzdCZvYWN1dGU7cmljbyBkbyB1c3UmYWFjdXRlO3JpbyBxdWUgdGVuaGFtIGFvIG1lbm9zJzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJ0VzcXVlY2V1IHNldXMgZGV0YWxoZXMgZGUgbG9naW4/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0V4cG9ydGFyIGFzIGRlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyAoZSBwcm9wcmllZGFkZXMpIGRlIGdydXBvIHBhcmEgWE1MJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5bWFpbnRlbmFuY2UnXSA9ICdNYW51dGVuJmNjZWRpbDsmYXRpbGRlO28gZG8gaGlzdCZvYWN1dGU7cmljbyBkZSB1c3UmYWFjdXRlO3Jpb3MnOwokbGFuZ1sneWVzJ10gPSAnU2ltJzsKJGxhbmdbJ25vJ10gPSAnTiZhdGlsZGU7byc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICdkZSc7CiRsYW5nWydkYXRlX2FsbHJlY29yZHMnXSA9ICcqKiBTZW0gTGltaXRlICoqJzsKJGxhbmdbJ2RhdGVfb25laG91cm9sZCddID0gJ1VtYSBob3JhIGF0ciZhYWN1dGU7cyc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICdTZWlzIGhvcmFzIGF0ciZhYWN1dGU7cyc7CiRsYW5nWydkYXRlX3R3ZWx2ZWhvdXJvbGQnXSA9ICdEb3plIGhvcmFzIGF0ciZhYWN1dGU7cyc7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ1VtIGRpYSBhdHImYWFjdXRlO3MnOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnVW1hIHNlbWFuYSBhdHImYWFjdXRlO3MnOwokbGFuZ1snZGF0ZV90d293ZWVrc29sZCddID0gJ0R1YXMgc2VtYW5hcyBhdHImYWFjdXRlO3MnOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJ1VtIG0mZWNpcmM7cyBhdHImYWFjdXRlO3MnOwokbGFuZ1snZGF0ZV90aHJlZW1vbnRoc29sZCddID0gJ1RyJmVjaXJjO3MgbWVzZXMgYXRyJmFhY3V0ZTtzJzsKJGxhbmdbJ2RhdGVfc2l4bW9udGhzb2xkJ10gPSAnU2VpcyBtZXNlcyBhdHImYWFjdXRlO3MnOwokbGFuZ1snZGF0ZV9vbmV5ZWFyb2xkJ10gPSAnVW0gYW5vIGF0ciZhYWN1dGU7cyc7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICdBZ3J1cGFuZG8gZSBBcnJ1bWFucm8nOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ1JlZ2lzdHJvcyBkZSBhY29yZG8gY29tIG8gY3JpdCZlYWN1dGU7cmlvJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnTm9tZSBkZSB1c3UmYWFjdXRlO3JpbyAtIGRlc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdOb21lIGRlIHVzdSZhYWN1dGU7cmlvIC0gYXNjZW5kZW50ZSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnRGF0YSAtIGRlc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl9kYXRlX2FzYyddID0gJ0RhdGEgLSBhc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ1RpcG8gZGUgZXZlbnRvIC0gZGVzY2VuZGVudGUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdUaXBvIGRlIGV2ZW50byAtIGFzY2VuZGVudGUnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19kZXNjJ10gPSAnRW5kZXJlJmNjZWRpbDtvIElQIC0gZGVzY2VuZGVudGUnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19hc2MnXSA9ICdFbmRlcmUmY2NlZGlsO28gSVAgLSBhc2NlbmRlbnRlJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdOZW5odW0gaGlzdCZvYWN1dGU7cmljbyBkZXRlY3RhZG8nOwokbGFuZ1sncmVzZXQnXSA9ICdMaW1wYXInOwokbGFuZ1sncHJvbXB0X2dyb3VwX2lwJ10gPSAnQWdydXBhciBwb3IgZW5kZXJlJmNjZWRpbDtvIElQJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZXZlbnR0eXBlJ10gPSAnRmlsdHJvIHBvciB0aXBvIGRlIGV2ZW50byc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdNb3N0cmFyIGFwZW5hcyBldmVudG9zIHF1ZSBzZWphbSBtZW5vcyBxdWUnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xpbWl0ZSBkYSBQJmFhY3V0ZTtnaW5hJzsKJGxhbmdbJ2ZvciddID0gJ3BhcmEnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdSZWxhdCZvYWN1dGU7cmlvIGRvIGhpc3Qmb2FjdXRlO3JpY28gZGUgdXN1JmFhY3V0ZTtyaW8nOwokbGFuZ1sndW5rbm93biddID0gJ0Rlc2NvbmhlY2lkbyc7CiRsYW5nWydwcm9tcHRfaXBhZGRyZXNzJ10gPSAnRW5kZXJlJmNjZWRpbDtvIElQJzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICdUaXBvIGRlIGV2ZW50byc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ0RhdGEnOwokbGFuZ1sncHJvbXB0X3JldHVybiddID0gJ1ZvbHRhcic7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnSW1wb3J0YSZjY2VkaWw7JmF0aWxkZTtvIENvbXBsZXRhJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ0xpbmhhcyBwcm9jZXNzYWRhcyc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRXJyb3MgZW5jb250cmFkb3MnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ1JlZ2lzdHJvcyBhZGljaW9uYWRvcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnTiZhdGlsZGU7byBmb2kgcG9zcyZpYWN1dGU7dmVsIGxvY2FsaXphciBwcm9wcmllZGFkZXMgcGFyYSBvIGdydXBvICVzJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnTiZhdGlsZGU7byBmb2kgcG9zcyZpYWN1dGU7dmVsIG9idGVyIHJlc3Bvc3RhIGRvIHNlcnZpZG9yIFNNVFAnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnTyBhcnF1aXZvIGVzcGVjaWZpY2FkbyAoJXMpIG4mYXRpbGRlO28gcG9kZSBzciBsb2NhbGl6YWRvJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICdWYWxvciBpbnZhbGlkbyBwYXJhIGRyb3Bkb3duIG91IG11bHRpc2VsZWN0IC0gY2FtcG8gJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdPIGNhbXBvICVzIGV4Y2VkZSBvIHRhbW5haG8gbSZhYWN1dGU7eGltbyc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ0Vycm8gZGUgaW1wb3J0YSZjY2VkaWw7JmF0aWxkZTtvIChsaWhhICVzKTogJXMnOwokbGFuZ1snZXJyb3JfcHJvcGVydHlkZWZucyddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBvYnRlciBhcyBkZWZpbmkmY2NlZGlsOyZvdGlsZGU7ZXMgZGEgcHJvcHJpZWRhZGUgKGVycm8gaW50ZXJubyknOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdpbmZvJ10gPSAnUHJvYmxlbWEgYXBsaWNhbmRvIGFzIGluZm9ybWEmY2NlZGlsOyZvdGlsZGU7ZXMgZG8gdXN1JmFhY3V0ZTtyaW8nOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBhY2hhciB1bWEgY29sdW5hIHBhcmEgbyBjYW1wbyAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBsb2NhbGl6YXIgYXMgcHJvcHJpZWRhZGVzIGRvIGdydXBvIGVzcGVjaWZpY2Fkbyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnTyBhcnF1aXZvIGVzcGVjaWZpY2FkbyBwYXJhIHNlciBpbXBvcnRhZG8gbiZhdGlsZGU7byBlc3QmYWFjdXRlOyBubyBmb3JtYXRvIGNvcnJldG8nOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBhYnJpciBvIGFycXVpdm8nOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcIykgY2hhcmFjdGVycywgYW5kIG5hbWVzIGVhY2ggb2YgdGhlIGZpZWxkcyBpbiB0aGUgZmlsZS4gIFRoZSBuYW1lcyBvZiB0aGVzZSBmaWVsZHMgaXMgc2lnbmlmaWNhbnQuICBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZCBuYW1lcyAoc2VlIGJlbG93KSwgYW5kIG90aGVyIGZpZWxkIG5hbWVzIG11c3QgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdXNlcnMgYXJlIGdvaW5nIHRvIGJlIGFkZGVkIGludG8uPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBmYWlsIGlmIHRoZSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgZG9lcyBub3QgbWF0Y2ggYWxsIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdGhhdCB1c2VycyBhcmUgYmVpbmcgYWRkZWQgaW50bzwvbGk+DQo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBpZ25vcmUgYW55IGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSB0aGF0IGFyZSBlaXRoZXIgbm90IGtub3duLCBvciBtYXAgdG8gcHJvcGVydGllcyB0aGF0IGFyZSA8ZW0+b2ZmPC9lbT4gaW4gdGhlIHNwZWNpZmllZCB1c2VyIGdyb3VwLjwvbGk+DQo8L3VsPg0KPGg1PkNvbHVtbmFyIERhdGE8L2g1Pg0KPHVsPg0KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuDQogICAgPHA+VGhpcyBmaWVsZCBtdXN0IGV4aXN0IGluIHRoZSBoZWFkZXJsaW5lLCBhbmQgaW4gZWFjaCBhbmQgZXZlcnkgbGluZSBvZiB0aGUgaW5wdXQgZmlsZS4gVGhlIHJlY29yZCB3aWxsIGZhaWwgaWYgYSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UuPC9wPjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5leHBpcmVzPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+RHJvcGRvd24gRmllbGRzDQogICAgPHA+VGhlIHZhbHVlIG9mIGRyb3Bkb3duIHByb3BlcnRpZXMgaW4gYW4gaW1wb3J0IGZpbGUgaXMgcmVwcmVzZW50ZWQgYXMgdGhlIHN0cmluZyB0aGF0IGlzIHNob3duIGluIHRoZSBkcm9wZG93biBjb250cm9sIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPk11bHRpc2VsZWN0IEZpZWxkcw0KICAgIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4NCjwvbGk+DQo8bGk+SW1hZ2UgRmllbGRzDQogICAgPHA+SW1hZ2UgYXJlIGZpZWxkcyB3aG8mIzAzOTtzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0YXIgdXN1JmFhY3V0ZTtyaW9zIHBhcmEgZXN0ZSBncnVwbyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdJbnNlcmlyIGFycXVpdm8gQ1NWJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR4bWxmaWxlJ10gPSAnSW5zZXJpciBhcnF1aXZvIFhNTCc7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcnMnXSA9ICdFeHBvcnRhciB1c3UmYWFjdXRlO3Jpb3MnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0YXIgVXN1JmFhY3V0ZTtyaW9zJzsKJGxhbmdbJ3Byb21wdF9jbGVhciddID0gJ0xpbXBhcic7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ0NhbWluaG8gZGVzdGlubyBkYSBpbWFnZW0nOwokbGFuZ1snZXJyb3JfbWlzc2luZ191cGxvYWQnXSA9ICdVbSBwcm9ibGVtYSBvY29ycmV1IGNvbSB1bSBhcnF1aXZvIHJlcXVlcmlkbyBuJmF0aWxkZTtvIGVuY29udHJhZG8nOwokbGFuZ1snZXJyb3JfYmFkX3htbCddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBzZXBhcmFyIG8gYXJxdWl2byBYTUwgZXNwZWNpZmljYWRvJzsKJGxhbmdbJ2Vycm9yX25vdGVtcHR5Z3JvdXAnXSA9ICdOJmF0aWxkZTtvICZlYWN1dGU7IHBvc3MmaWFjdXRlO3ZlbCBkZWxldGFyIHVtIGdydXBvIHF1ZSBhaW5kYSBwb3NzdWkgdXN1JmFhY3V0ZTtyaW9zJzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdFc3NlIHVzdSZhYWN1dGU7cmlvIGomYWFjdXRlOyBlc3QmYWFjdXRlOyBsb2dhZG8uJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ08gdGV4dG8gZGEgaW1hZ2VtIG4mYXRpbGRlO28gZm9pIGluc2VyaWRvIGNvcnJldGFtZW50ZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnUGVybWl0aXIgdXN1JmFhY3V0ZTtyaW9zIGxvZ2FyIG1haXMgZGUgdW1hIHZleic7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnRXh0ZW5zJm90aWxkZTtlcyBkZSBhcnF1aXZvcyBkZSBpbWFnZW5zIHF1ZSBvcyB1c3UmYWFjdXRlO3Jpb3MgcG9kZW0gZW52aWFyJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVVc2VyJ10gPSAnPGgzPk9uRGVsZXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgdXBkYXRlZCAoZWl0aGVyIGJ5IHVzZXIgdGhlbXNlbGYgb3IgYWRtaW4pPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgZ3JvdXAgZGVzY3JpcHRpb248L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVHcm91cCddID0gJzxoMz5PbkRlbGV0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBpZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+aXA8L2VtPiAtIFRoZSBpcCBhZGRyZXNzIG9mIHRoZSBjbGllbnQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0PC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZG91dCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkV4cGlyZVVzZXInXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgc2Vzc2lvbiBleHBpcmVzPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZCBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ2luJ10gPSAnVW0gZXZlbnRvIGdlcmFkbyBxdWFuZG8gdW0gdXN1JmFhY3V0ZTtyaW8gbG9nYSBubyBzaXN0ZW1hJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdVbSBldmVudG8gZ2VyYWRvIHF1YW5kbyB1bSB1c3UmYWFjdXRlO3JpbyBkZXNsb2dhIGRvIHNpc3RlbWEnOwokbGFuZ1snZXZlbnRfaW5mb19PbkV4cGlyZVVzZXInXSA9ICdVbSBldmVudG8gZ2VyYWRvIHF1YW5kbyBhIHNlc3MmYXRpbGRlO28gZGUgdW0gdXN1JmFhY3V0ZTtyaW8gZXhwaXJhJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVVc2VyJ10gPSAnVW0gZXZlbnRvIGdlcmFkbyBxdWFuZG8gdW0gbm92byB1c3UmYWFjdXRlO3JpbyAmZWFjdXRlOyBjcmlhZG8nOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdVbSBldmVudG8gZ2VyYWRvIHF1YW5kbyBhcyBpbmZvcm1hJmNjZWRpbDsmb3RpbGRlO2VzIGRlIHVtIHVzdSZhYWN1dGU7cmlvIHMmYXRpbGRlO28gYXR1YWxpemFkYXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdVbSBldmVudG8gZ2VyYWRvIHF1YW5kbyBhIGNvbnRhIGRlIHVtIHVzdSZhYWN1dGU7cmlvICZlYWN1dGU7IGRlbGV0YWRhJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ1VtIGV2ZW50byBnZXJhZG8gcXVhbmRvIHVtIGdydXBvIGRlIHVzdSZhYWN1dGU7cmlvcyAmZWFjdXRlOyBjcmlhZG8nOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZUdyb3VwJ10gPSAnVW0gZXZlbnRvIGdlcmFkbyBxdWFuZG8gdW0gZ3J1cG8gZGUgdXN1JmFhY3V0ZTtyaW9zICZlYWN1dGU7IGRlbGV0YWRvJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdHcnVwbyBCYWNrZW5kJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogQXMgc2VndWludGVzIG1hY3JvcyBwb2RlbSBzZXIgdXNhZGFzIG5lc3RlcyBjYW1wb3M6IHskdXNlcm5hbWV9LHskZ3JvdXB9LiBRdWFuZG8gdXNhbmRvIGEgbWFjcm8geyRncm91cH0sIE8gc2lzdGVtYSBpciZhYWN1dGU7IHN1YnN0aXR1aXIgbyBub21lIGRvIHByaW1laXJvIG1lbWJybyBkbyBncnVwbyBxdWUgbyB1c3UmYWFjdXRlO3JpbyBwZXJ0ZW5jZSBlIGVudCZhdGlsZGU7byBkaXJlY2lvbmFyIHBhcmEgYXF1ZWxhIHAmYWFjdXRlO2dpbmEnOwokbGFuZ1snaW5mb19hZG1pbl9wYXNzd29yZCddID0gJ0VkaXRlIGVzdGUgY2FtcG8gcGFyYSByZXNldGFyIGFzIHNlbmhhcyBkZSB1c3UmYWFjdXRlO3Jpbyc7CiRsYW5nWydpbmZvX2FkbWluX3JlcGVhdHBhc3N3b3JkJ10gPSAnRWRpdGUgZXN0ZSBjYW1wbyBwYXJhIHJlc2V0YXIgYXMgc2VuaGFzIGRlIHVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1lX2V4aXN0cyddID0gJ0Vzc2Ugbm9tZSBkZSB1c3UmYWFjdXRlO3JpbyBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ25vY3N2cmVzdWx0cyddID0gJ05lbmh1bSByZXN1bHRhZG9wIG9idGlkbyBkYSBleHBvcnRhJmNjZWRpbDsmYXRpbGRlO28gY3N2JzsKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ1RhbWFuaG8gZG8gY2FtcG8gbm9tZSBkZSB1c3UmYWFjdXRlO3Jpbyc7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdUYW1hbmhvIGRvIGNhbXBvIHNlbmhhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICd0YW1hbmhvcyBtJmlhY3V0ZTtuaW1vIGUgbSZhYWN1dGU7eGltbyBwYXJhIHNlbmhhcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWVsZW5ndGhzJ10gPSAndGFtYW5ob3MgbSZpYWN1dGU7bmltbyBlIG0mYWFjdXRlO3hpbW8gcGFyYSBub21lcyBkZSB1c3UmYWFjdXRlO3Jpb3MnOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ0VuZGVyZSZjY2VkaWw7byBkZSBlbWFpbCBpbnYmYWFjdXRlO2xpZG8nOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdOJmF0aWxkZTtvIGZvaSBwb3NzJmlhY3V0ZTt2ZWwgbG9jYWxpemFyIHVtIGVuZGVyZSZjY2VkaWw7byBkZSBlbWFpbCBwYXJhIGVzdGEgY29udGEnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNlZXR0aW5naW5mbyddID0gJ1Byb2JsZW1hIGFsdGVyYW5kbyBpbmZvcm1hJmNjZWRpbDsmb3RpbGRlO2VzIGRvIHVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ1Byb2JsZW1hIGFvIGNvbmZpZ3VyYXIgcHJvcHJpZWRhZGUnOwokbGFuZ1sndXNlcl9hZGRlZCddID0gJ1VzdSZhYWN1dGU7cmlvIGFkaWNpb25hZG8gJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdVc3UmYWFjdXRlO3JpbyByZW1vdmlkbyB1aWQ9JXMnOwokbGFuZ1sncHJvcGVydHlmaWx0ZXInXSA9ICdQcm9wcmllZGFkZSc7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnVmFsb3IgKGV4cHJlc3MmYXRpbGRlO28gcmVndWxhciknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdBdGVuJmNjZWRpbDsmYXRpbGRlO286IEVzdGVzIGNhbXBvcyBhZmV0YW0gbyB0YW1hbmhvIGRvcyBjYW1wb3MgZSBmb3JtdWwmYWFjdXRlO3Jpb3MgZGUgZW50cmFkYS4gRGV2ZS1zZSB0b21hciBjdWlkYWRvIGFvIGRpbWludWlyIGVzc2VzIGNhbXBvcyBlbSB1bSBzaXRlIGV4aXN0ZW50ZS4nOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ1ZvYyZlY2lyYzsgdGVtIGNlcnRlemEgcXVlIGRlc2VqYSBhbHRlcmFyIGFzIHByZWZlciZlY2lyYztuY2lhcyBkbyBtJm9hY3V0ZTtkdWxvJzsKJGxhbmdbJ2Vycm9yX2VtYWlsYWxyZWFkeXVzZWQnXSA9ICdFbmRlcmUmY2NlZGlsO28gZGUgZW1haWwgaiZhYWN1dGU7IHV0aWxpemFkbyc7CiRsYW5nWydwcm9tcHRfdXNlY29va2llc3RvcmVtZW1iZXInXSA9ICdVc2FyIGNvb2tpZXMgcGFyYSBsZW1icmFyIG8gbG9naW4nOwokbGFuZ1sncHJvbXB0X2Nvb2tpZW5hbWUnXSA9ICdOb21lIGRvIGNvb2tpZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJ1Blcm1pdGlyIGVtYWlscyBkdXBsaWNhZG9zJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCddID0gJ08gZW5kZXJlJmNjZWRpbDtvIGRlIGVtYWlsICZlYWN1dGU7IG8gbm9tZSBkZSB1c3UmYWFjdXRlO3Jpbyc7CiRsYW5nWydpbmZvX2Nvb2tpZV9rZWVwYWxpdmUnXSA9ICdUZW50YXIgbWFudGVyIG9zIGxvZ2lucyBhdGl2b3MgY29tIG8gdXNvIGRlIGNvb2tpZXMgPGVtPihPIGNvb2tpZSAmZWFjdXRlOyByZWluaWNpYWRvIGNvbSBhdGl2aWRhZGUgbm8gc2l0ZSk8L2VtPic7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcocGVybWl0aXIgcXVlIG0mdWFjdXRlO2x0aXBsb3MgdXN1JmFhY3V0ZTtyaW9zIHRlbmhhbSBvIG1lc21vIGVuZGVyZSZjY2VkaWw7byBkZSBlbWFpbCknOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyh1c2VyJiMwMzk7cyBlbWFpbCBhZGRyZXNzIGlzIHRoZWlyIHVzZXJuYW1lIC0tIGRvbiYjMDM5O3Qgc2V0IHRoaXMgd2l0aCAmcXVvdDthbGxvdyBkdXBsaWNhdGUgZW1haWwgYWRkcmVzc2VzJnF1b3Q7ISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgJnF1b3Q7Zm9yZ290IHBhc3N3b3JkJnF1b3Q7IHJlbWluZGVycz8nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnKGFsbG93IGEgdXNlcnMgdG8gcmVxdWVzdCBhIHBhc3N3b3JkIHJlc2V0LCBldmVuIGlmIHRoZXkgaGF2ZW4mIzAzOTt0IGFjdGVkIG9uIGEgcHJldmlvdXMgb25lKSc7CiRsYW5nWydwcm9tcHRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJ1VzYXIgcGVybWlzcyZvdGlsZGU7ZXMgZXNwZWMmaWFjdXRlO2ZpY2FzIGRvIEZyb250IEVuZCBVc2Vycz8nOwokbGFuZ1snaW5mb19mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnKE5vcm1hbG1lbnRlIGFzIHBlcm1pc3Mmb3RpbGRlO2VzIGRvcyBGRVVzZXJzIHMmYXRpbGRlO28gYXMgbWVzbWFzIHF1ZSBhcyBwZXJtaXNzJm90aWxkZTtlcyBkZSAmYWFjdXRlO3JlYSBkb3MgYWRtaW5zLCBjb21vIGFkaWNpb25hciB1c3UmYWFjdXRlO3JpbywgYWRpY2lvbmFyIGdydXBvLCBldGMuIENhc28gdm9jJmVjaXJjOyBzZWxlY2lvbmUgZXN0YSBvcCZjY2VkaWw7JmF0aWxkZTtvIGFzIHBlcm1pc3Mmb3RpbGRlO2VzIHBhcmEgb3VzIEZFVXNlcnMgc2VyJmF0aWxkZTtvIHNlcGFyYWRhcyknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VwbG9hZCddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBhY2hhciBvIGFycXVpdm8gZW52aWFkbyAoZXJybyBpbnRlcm5vKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtX3VwbG9hZCddID0gJ0hvdXZlIHVtIHByb2JsZW1hIGNvbSBvIGFycXVpdm8gZW52aWFkby4gUG9yIGZhdm9yIHRlbnRlIG5vdmFtZW50ZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXNlcm5hbWUnXSA9ICdWb2MmZWNpcmM7IG4mYXRpbGRlO28gZGlnaXRvdSB1bSBub21lIGRlIHVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdlbWFpbCddID0gJ1ZvYyZlY2lyYzsgbiZhdGlsZGU7byBkaWdpdG91IHNldSBlbmRlcmUmY2NlZGlsO28gZGUgZW1haWwnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3Bhc3N3b3JkJ10gPSAnVm9jJmVjaXJjOyBuJmF0aWxkZTtvIGRpZ2l0b3UgdW1hIHNlbmhhJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dvdXQnXSA9ICdTYWlyIGRvIEZyb250ZW5kIFVzZXInOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ2dlZGluJ10gPSAnTG9naW4gZG8gRnJvbnRlbmQgVXNlcic7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPkN1aWRhZG88L2I+Vm9jJmVjaXJjOyBwb2RlIGNhdXNhciBkYW5vcyBwZXJtYW5lbnRlcyBhbyBzaXRlIGFvIGFsdGVyYXIgcHJvcHJpZWRhZGVzIGV4aXN0ZW50ZXMgZW0gdW0gZ3J1cG8gYXRpdm8gbm8gc2l0ZSA8aT4ocHJpbmNpcGFsbWVudGUgY2FzbyByZWR1emEgbyB0YW1hbmhvIGRlIGNhbXBvcywgZXRjKTwvaT48L2ZvbnQ+JzsKJGxhbmdbJ2luZm9fc210cHZhbGlkYXRlJ10gPSAnRXN0YSBmdW4mY2NlZGlsOyZhdGlsZGU7byBuJmF0aWxkZTtvIGVzdCZhYWN1dGU7IGRpc3BvbiZpYWN1dGU7dmVsIG5vIHdpbmRvd3MnOwokbGFuZ1snbXNnX2RvbnRjcmVhdGV1c2VybmFtZSddID0gJ04mYXRpbGRlO28gY3JpZSB1bWEgcHJvcHJpZWRhZGUgcGFyYSBub21lIGRlIHVzdSZhYWN1dGU7cmlvIG91IHNlbmhhLCBpc3RvIHBvcnF1ZSBlc3NhcyBwcm9wcmllZGFkZXMgcyZhdGlsZGU7byBpbmNsdXNhcyBubyBtJm9hY3V0ZTtkdWxvIEZyb250RW5kVXNlcnMuJzsKJGxhbmdbJ3Byb21wdF9leHBvcnRjc3YnXSA9ICdFeHBvcnRhciB1c3UmYWFjdXRlO3Jpb3MgcGFyYSBDU1YnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0YXInOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0YXInOwokbGFuZ1snYWRtaW4nXSA9ICdBZG1pbmlzdHJhZG9yJzsKJGxhbmdbJ2VkaXRwcm9wJ10gPSAnRWRpdGFyIFByb3ByaWVkYWRlJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ0NvbXByaW1lbnRvIG0mYWFjdXRlO3hpbW8nOwokbGFuZ1snY3JlYXRlZCddID0gJ0NyaWFkbyc7CiRsYW5nWydzb3J0YnknXSA9ICdPcmRlbmFyIHBvcic7CiRsYW5nWydzb3J0J10gPSAnT3JkZW5hbmRvJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ1VzdSZhYWN1dGU7cmlvcyBub3MgZ3J1cG9zIHNlbGVjaW9uYWRvcyc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdMaW1pdGFyIHJlc3VsdGFkb3MgZW0gJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBsb2NhbGl6YXIgdW0gY2FtcG8gZGUgZW1haWwgcGFyYSBlc3RlIHVzdSZhYWN1dGU7cmlvLiBWb2MmZWNpcmM7IHBvZGUgcHJlY2lzYXIgZW50cmFyIGVtIGNvbnRhdG8gY29tIG8gYWRtaW5pc3RyYWRvciBkbyBzaXN0ZW1hLic7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ0lEIGRhIHAmYWFjdXRlO2dpbmEvQXBlbGlkbyBwYXJhIGZvcm11bCZhYWN1dGU7cmlvIGRlIHNlbmhhIGVzcXVlY2lkYSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ0lEIGRhIHAmYWFjdXRlO2dpbmEvQXBlbGlkbyBwYXJhIGZvcm11bCZhYWN1dGU7cmlvIGRlIGFsdGVyYXIgY29uZmlndXJhJmNjZWRpbDsmb3RpbGRlO2VzJzsKJGxhbmdbJ3Byb21wdF9sb2dpbl9wYWdlJ10gPSAnSUQgZGEgcCZhYWN1dGU7Z2luYS9BcGVsaWRvIHBhcmEgaXIgYXAmb2FjdXRlO3MgbyBsb2dpbiAqJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXRfcGFnZSddID0gJ0lEIGRhIHAmYWFjdXRlO2dpbmEvQXBlbGlkbyBwYXJhIGlyIGFwJm9hY3V0ZTtzIHNhaXIgKic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdPcmRlbmFyJzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ1VtIG4mdWFjdXRlO21lcm8gZGUgdXN1JmFhY3V0ZTtyaW9zIGVzdCZhdGlsZGU7byBhdHVhbG1lbnRlIG1vZGlmaWNhbmRvIHN1YXMgc2VuaGFzLiBBdHVhbG1lbnRlIGVzdGUgbiZ1YWN1dGU7bWVybyBlc3QmYWFjdXRlOyBlbTonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdBcGFnYXIgdG9kYXMgYXMgZW50cmFkYXMgbWFpcyB2ZWxoYXMgcXVlIHVtYSBzZW1hbmEnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnQXBhZ2FyIHRvZGFzIGFzIGVudHJhZGFzIG1haXMgdmVsaGFzIHF1ZSB1bSBtJmVjaXJjO3MnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnQXBhZ2FyIHRvZGFzIGFzIGVudHJhZGFzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdUZW0gY2VydGV6YT8nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNvZGUnXSA9ICdDJm9hY3V0ZTtkaWdvIGludiZhYWN1dGU7bGlkbywgcG9yIGZhdm9yIHRlbnRlIG5vdmFtZW50ZSc7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAndW0gYyZvYWN1dGU7ZGlnbyB0ZW1wb3ImYWFjdXRlO3JpbyBwYXJhIHNldSBJRCBuJmF0aWxkZTtvIGZvaSBsb2NhbGl6YWRvIG5hIGJhc2UgZGUgZGFkb3MnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICdNb2RlbG8gdXNhZG8gcGFyYSBleGliaXIgZm9ybXVsJmFhY3V0ZTtyaW8gZGUgdmVyaWZpY2EmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnTW9kZWxvIHVzYWRvIHBhcmEgbyBlbWFpbCBkZSBzZW5oYSc7CiRsYW5nWydlcnJvcl9yZXNldGFscmVhZHlzZW50J10gPSAnT3Ugdm9jJmVjaXJjOyBvdSBvIGFkbWluaXN0cmFkb3IgaiZhYWN1dGU7IGFjaW9ub3UgYSBvcGVyYSZjY2VkaWw7JmF0aWxkZTtvIHBhcmEgcmVzZXRhciBhIHNlbmhhIGRlc3RhIGNvbnRhLiBWZXJpZmlxdWUgc2V1IGVtYWlsIHBhcmEgb2J0ZXIgbWFpb3JlcyBpbmZvcm1hJmNjZWRpbDsmb3RpbGRlO2VzIGVtIGNvbW8gcmVzZXRhciBzdWEgc2VuaGEuJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdFcnJvIGRlIGJhbmNvIGRlIGRhZG9zJzsKJGxhbmdbJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCddID0gJ1ZvYyZlY2lyYzsgZXN0JmFhY3V0ZTsgcmVjZWJlbmRvIGVzdGEgbWVuc2FnZW0gcG9ycXVlIGFsZ3UmZWFjdXRlO20gY29tdW5pY291IG8gc2l0ZSBxdWUgc3VhIHNlbmhhIGZvaSBwZXJkaWRhLiBTZSBmb3IgZXN0ZSBvIGNhc28gbGVpYSBhcyBpbnN0cnUmY2NlZGlsOyZvdGlsZGU7ZXMgYWJhaXhvLiBTZSB2b2MmZWNpcmM7IG4mYXRpbGRlO28gdGVtIGlkJmVhY3V0ZTtpYSBkbyBxdWUgc2VqYSBlc3RhIG1lbnNhZ2VtIGVudCZhdGlsZGU7byB2b2MmZWNpcmM7IHBvZGUgZGVsZXRhciBlc3RhIG1lbnNhZ2VtIHNlbSBwcm9ibGVtYXMuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnQyZvYWN1dGU7ZGlnbyc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdPIGMmb2FjdXRlO2RpZ28gc2VndWludGUgZm9pIGdlcmFkbyBhdXRvbWF0aWNhbWVudGUgcGFyYSBwb2RlciB2ZXJpZmljYXIgYSBjb250YSBkZSB1c3UmYWFjdXRlO3Jpby4gQW8gY2xpY2FyIG5vIGxpbmsgYWJhaXhvIHNlciZhYWN1dGU7IGFwcmVzZW50YWRvIHVtIGNhbXBvIHBhcmEgYSBlbnRyYWRhIGRlc3RlIGMmb2FjdXRlO2RpZ28sIG5vcm1hbG1lbnRlIG8gY2FtcG8gaiZhYWN1dGU7IHZlbSBwcmVlbmNoaWRvLCBtYXMgY2FzbyBuJmF0aWxkZTtvIHZlbmhhIG8gYyZvYWN1dGU7ZGlnbyAmZWFjdXRlOzonOwokbGFuZ1sncHJvbXB0X2xpbmsnXSA9ICdDbGljYXIgbm8gbGluYmsgc2VndWludGUgaXImYWFjdXRlOyBlbmNhbWluaCZhYWN1dGU7LWxvIGFvIHNpdGUsIGFvbmRlIHBvZGVyJmFhY3V0ZTsgZW50cmFyIG8gYyZvYWN1dGU7ZGlnbyBhY2ltYSBlIHJlaW5pY2lhciBzdWEgc2VuaGEuJzsKJGxhbmdbJ2xvc3RwYXNzd29yZF9lbWFpbHN1YmplY3QnXSA9ICdTZW5oYSBQZXJkaWRhJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnTiZhdGlsZGU7byBmb2kgcG9zcyZpYWN1dGU7dmVsIGxvY2FsaXphciBvIG0mb2FjdXRlO2R1bG8gQ01TTWFpbGVyJzsKJGxhbmdbJ2luZm9fZm9yZ290cHdtZXNzYWdlc2VudCddID0gJ1VtIGVtYWlsIGZvaSBlbnZpYWRvIHBhcmEgJXMgY29tIGFzIGluc3RydSZjY2VkaWw7Jm90aWxkZTtlcyBkbyBjb21vIHJlc2V0YXIgc3VhIHNlbmhhLiBPYnJpZ2Fkby4nOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdFbnQmYXRpbGRlO28gdm9jJmVjaXJjOyBlc3F1ZWNldSBzdWEgc2VuaGEuIEVudCZhdGlsZGU7bywgZXNjcmV2YSBzZXUgbm9tZSBkZSB1c3UmYWFjdXRlO3JpbyBhcXVpLCBjYXNvIHBvc3NhbW9zIGxvY2FsaXphciB2b2MmZWNpcmM7IG4mb2FjdXRlO3MgZW52aWFyZW1vcyB1bSBlbWFpbCBjb20gYXMgaW5zdHJ1JmNjZWRpbDsmb3RpbGRlO2VzIGRlIGNvbW8gcmVzZXRhciBzdWEgc2VuaGEuJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3RlbXBsYXRlJ10gPSAnTW9kZWxvcyBkZSBzZW5oYSBlc3F1ZWNpZGEnOwokbGFuZ1snbG9zdHVzZXJuYW1lX3RlbXBsYXRlJ10gPSAnTW9kZWxvIGRlIG5vbWUgZGUgdXN1JmFhY3V0ZTtyaW8gcGVyZGlkbyc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdQcm9wcmllZGFkZSAgJXMgbiZhdGlsZGU7byBlbmNvbnRyYWRhJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdQcm9wcmllZGFkZXMgZW5jb250cmFkYXMnOwokbGFuZ1snYWRkcHJvcCddID0gJ0FkaWNpb25hciBQcm9wcmllZGFkZSc7CiRsYW5nWydlcnJvcl9yZXF1aXJlZGZpZWxkJ10gPSAnTyBjYW1wbyByZXF1ZXJpZG8gICglcykgZXN0YXZhIHZhemlvJzsKJGxhbmdbJ2luZm9fZW1wdHlwYXNzd29yZGZpZWxkJ10gPSAnRW50cmUgY29tIHVtYSBub3ZhIHNlbmhhIGFxdWkgcGFyYSBhbHRlcmFyIGEgc2VuaGEgZXhpc3RlbnRlJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnVm9jJmVjaXJjOyBuJmF0aWxkZTtvIHBhcmVjZSBlc3RhciBsb2dhZG8nOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYSZjY2VkaWw7Jm90aWxkZTtlcyc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdHJhcic7CiRsYW5nWydlcnJvcl9hY2NvdW50ZXhwaXJlZCddID0gJ0Vzc2EgY29udGEgZXhwaXJvdSc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnRm9ybWF0byBlcnJhZG8gZGUgZW1haWwnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdJbnZhbGlkIGV4cGlyeSBkYXRlJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdFcnJvIGFsdGVyYW5kbyBwcm9wcmllZGFkZSAlcyBwYXJhIHVzdSZhYWN1dGU7cmlvICRzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRncm91cGlkJ10gPSAnSWQgZGUgZ3J1cG8gaW52JmFhY3V0ZTtsaWRhICVzJzsKJGxhbmdbJ2hpZGRlbmZpZWxkbWFya2VyJ10gPSAnTWFyY2Fkb3Igb2N1bHRvIGRlIGNhbXBvJzsKJGxhbmdbJ2hpZGRlbmZpZWxkY29sb3InXSA9ICdDb3Igb2N1bHRhIGRlIGNhbXBvJzsKJGxhbmdbJ2hpZGRlbiddID0gJ09jdWx0byhhKSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnVW1hIHByb3ByaWVkYWRlIGNvbSBlc3RlIG5vbWUgaiZhYWN1dGU7IGV4aXN0ZSc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdOZW5odW1hIHByb3ByaWVkYWRlIGRlZmluaWRhJzsKJGxhbmdbJ2Vycm9yX25vcmVsYXRpb25zJ10gPSAnTmVuaHVtYSBwcm9wcmllZGFkZSBmb2kgc2VsZWNpb25hZGEgcGFyYSBlc3RlIGdydXBvJzsKJGxhbmdbJ25vZ3JvdXBzJ10gPSAnTmVuaHVtIGdydXBvIGRlZmluaWRvJzsKJGxhbmdbJ2dyb3Vwc2ZvdW5kJ10gPSAnR3J1cG9zIGVuY29udHJhZG9zJzsKJGxhbmdbJ2Vycm9yX29uZWdyb3VwcmVxdWlyZWQnXSA9ICdTZXIgbWVtYnJvIGRlIGFvIG1lbm9zIHVtIGdydXBvICZlYWN1dGU7IHJlcXVlcmlkbyc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJ10gPSAnUmVxdWVyZXIgc2VyIG1lbWJybyBkZSBhbyBtZW5vcyB1bSBncnVwbyc7CiRsYW5nWydiYWNrJ10gPSAnVm9sdGFyJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfcmVxdWlyZWRfcGFyYW0nXSA9ICclcyAmZWFjdXRlOyB1bSBjYW1wbyBvYnJpZ2F0Jm9hY3V0ZTtyaW8nOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ01hcmNhciBjYW1wb3Mgb2JyaWdhdCZvYWN1dGU7cmlvcyBjb20nOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnSGlsaXRlIGNhbXBvcyByZXF1ZXJpZG9zIGVtJzsKJGxhbmdbJ25leHQnXSA9ICdQciZvYWN1dGU7eGltbyc7CiRsYW5nWydlcnJvcl9ncm91cGV4aXN0cyddID0gJ1VtIGdydXBvIGNvbSBvIG1lc21vIG5vbWUgaiZhYWN1dGU7IGV4aXN0ZSc7CiRsYW5nWydyZXF1aXJlZCddID0gJ1JlcXVlcmlkbyc7CiRsYW5nWydvcHRpb25hbCddID0gJ09wY2lvbmFsJzsKJGxhbmdbJ29mZiddID0gJ0Rlc2xpZ2Fkbyc7CiRsYW5nWydzaXplJ10gPSAnVGFtYW5obyc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KFRhbWFuaG8gbSZhYWN1dGU7eGltbyBlbSBxdWFscXVlciBlaXhvIGRhIGltYWdlbSBlbSBwaXhlbHMpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ1RhbWFuaG8nOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oY2FyYWN0ZXJlcyBuYSBlbnRyYWRhIGRlIHRleHRvKSc7CiRsYW5nWydzZWxvcHRpb25zJ10gPSAnT3AmY2NlZGlsOyZvdGlsZGU7ZXMgZGUgZHJvcGRvd24sIHNlcGFyYWRvcyBwb3F1ZWJyYXMgZGUgbGluaGFzLiAgT3MgdmFsb3JlcyBwb2RlbSBzZXIgc2VwYXJhZG9zIGRvIHRleHRvIGNvbSBvIGNhcmFjdGVyZT0gY2FyYWN0ZXIuIGkuZTogRmVtaW5pbm89Zic7CiRsYW5nWydwcm9tcHQnXSA9ICdJbmljaWFyJzsKJGxhbmdbJ3Byb21wdF90eXBlJ10gPSAnVGlwbyc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwbyc7CiRsYW5nWydmaWVsZHN0YXR1cyddID0gJ1N0YXR1cyBkbyBjYW1wbyc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdQZXJndWludGFyIGFvIGVzcXVlY2VyPGJyLz5Ob21lIGRlIFVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0byc7CiRsYW5nWydjaGVja2JveCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ211bHRpc2VsZWN0J10gPSAnTGlzdGEgbXVsdGlzZWxlY3QnOwokbGFuZ1snaW1hZ2UnXSA9ICdJbWFnZW0gJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRW5kZXJlJmNjZWRpbDtvIGRlIGVtYWlsJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnJmFncmF2ZTtyZWEgZGUgVGV4dG8nOwokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ0JlbSB2aW5kbyc7CiRsYW5nWydsb2dvdXQnXSA9ICdTYWlyJzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdVc2UgZXN0ZSBub21lIGRlIGdydXBvJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ0FsdGVyYXIgbWluaGFzIGNvbmZpZ3VyYSZjY2VkaWw7Jm90aWxkZTtlcyc7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ08gbG9naW4gZmFsaG91IC0gTm9tZSBkZSB1c3UmYWFjdXRlO3JpbyBvdSBzZW5oYSBpbnYmYWFjdXRlO2xpZG9zID8nOwokbGFuZ1snbG9naW4nXSA9ICdMb2dpbic7CiRsYW5nWydwcm9tcHRfc2lnbmluX2J1dHRvbiddID0gJ0xvZ2luJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ1VzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0VtYWlsJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ1NlbmhhJzsKJGxhbmdbJ3Byb21wdF9yZW1lbWJlcm1lJ10gPSAnTGVtYnJhciBuZXN0ZSBjb21wdXRhZG9yJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnQ2FkYXN0cmEtc2UnOwokbGFuZ1snZm9yZ290cHcnXSA9ICdFc3F1ZWNldSBzdWEgc2VuaGE/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ0VzcXVlY2V1IHNldSBMb2dpbj8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdQYWRyJm90aWxkZTtlcyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ01vZGVsbyc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdOJmF0aWxkZTtvIGZvaSBwb3NzJmlhY3V0ZTt2ZWwgbG9jYWxpemFyIGluZm9ybWEmY2NlZGlsOyZvdGlsZGU7ZXMgc29icmUgZXN0ZSB1c3UmYWFjdXRlO3Jpbyc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnTyBub21lIGRlIHVzdSZhYWN1dGU7cmlvICglcykgaiZhYWN1dGU7IGVzdCZhYWN1dGU7IGVtIHVzbyc7CiRsYW5nWydwcm9tcHRfc210cHZhbGlkYXRlJ10gPSAnVXNhciBTTVRQIHBhcmEgdmFsaWRhciBlbmRlcmUmY2NlZGlsO29zIGRlIGVtYWlsPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdUYW1hbmhvIG0maWFjdXRlO25pbW8gZGEgc2VuaGEnOwokbGFuZ1sncHJvbXB0X21heHB3bGVuJ10gPSAnVGFtYW5obyBtJmFhY3V0ZTt4aW1vIGRhIHNlbmhhJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ1RhbWFuaG8gbSZpYWN1dGU7bmltbyBkbyBub21lIGRlIHVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ3Byb21wdF9tYXh1bmxlbiddID0gJ1RhbWFuaG8gbSZhYWN1dGU7eGltbyBkbyBub21lIGRlIHVzdSZhYWN1dGU7cmlvJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1RlbXBvIGRlIFNlc3MmYXRpbGRlO28gZXhwaXJhZG8gKHNlZ3VuZG9zKSc7CiRsYW5nWydwcm9tcHRfY29va2lla2VlcGFsaXZlJ10gPSAnVXNhciBjb29raWVzIHBhcmEgbWFudGVyIG9zIGxvZ2lucyBhdGl2b3MnOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdQZXJtaXRpciByZWdpc3RybyBwb3IgZW1haWwnOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ0dydXBvIHBhZHImYXRpbGRlO28gcGFyYSBub3ZvcyB1c3UmYWFjdXRlO3Jpb3MnOwokbGFuZ1snY2hhbmdlc2V0dGluZ3NfdGVtcGxhdGUnXSA9ICdBbHRlcmFyIGFzIGNvbmZpZ3VyYSZjY2VkaWw7Jm90aWxkZTtlcyBkbyBtb2RlbG8nOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ0FzIHNlbmhhcyBzJmF0aWxkZTtvIGRpZmVyZW50ZXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnTm9tZSBkZSB1cyZhYWN1dGU7cmlvIGludiZhYWN1dGU7bGlkbyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdTZW5oYSBpbnYmYWFjdXRlO2xpZGEnOwokbGFuZ1snZWRpdHVzZXInXSA9ICdFZGl0YXIgdXN1JmFhY3V0ZTtyaW8nOwokbGFuZ1sndmFsaWQnXSA9ICdWJmFhY3V0ZTtsaWRvJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnTm9tZSBkZSBVc3UmYWFjdXRlO3Jpbyc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snZXJyb3JfbWVtYmVyZ3JvdXBzJ10gPSAnRXN0ZSB1c3UmYWFjdXRlO3JpbyBuJmF0aWxkZTtvICZlYWN1dGU7IG1lbWJybyBkZSBuZW5odW0gZ3J1cG8nOwokbGFuZ1snZXJyb3JfcHJvcGVydGllcyddID0gJ1NlbSBwcm9wcmllZGFkZXMnOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdUZW50YXIgaW1wb3J0YXIgcHJvcHJpZWRhZGVzIGR1cGxpY2FkYXMnOwokbGFuZ1sndmFsdWUnXSA9ICdWYWxvcic7CiRsYW5nWydncm91cHMnXSA9ICdHcnVwb3MnOwokbGFuZ1sncHJvcGVydGllcyddID0gJ1Byb3ByaWVkYWRlcyc7CiRsYW5nWydwcm9wbmFtZSddID0gJ05vbWUgZGEgcHJvcHJpZWRhZGUnOwokbGFuZ1sncHJvcHZhbHVlJ10gPSAnVmFsb3IgZGEgcHJvcnByaWVkYWRlJzsKJGxhbmdbJ2FkZCddID0gJ0FkaWNpb25hcic7CiRsYW5nWydoaXN0b3J5J10gPSAnSGlzdCZvYWN1dGU7cmljbyc7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyJzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdFeHBpcmEnOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnRXNwZWNpZmljYXIgZGF0YSc7CiRsYW5nWycxMmhycyddID0gJzEyIEhvcmFzJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQgSG9yYXMnOwokbGFuZ1snNDhocnMnXSA9ICc0OCBIb3Jhcyc7CiRsYW5nWycxd2VlayddID0gJzEgU2VtYW5hJzsKJGxhbmdbJzJ3ZWVrcyddID0gJzIgU2VtYW5hcyc7CiRsYW5nWycxbW9udGgnXSA9ICcxIE0mZWNpcmM7cyc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBNZXNlcyc7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiBNZXNlcyc7CiRsYW5nWycxeWVhciddID0gJzEgQW5vJzsKJGxhbmdbJ25ldmVyJ10gPSAnTnVuY2EnOwokbGFuZ1sncG9zdGluc3RhbGxtZXNzYWdlJ10gPSAnTW9kdWxlIGluc3RhbGxlZCBzdWNlc3NmdWxseS48YnIvPkJlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRnJvbnRFbmRVc2VyIFByb3BlcnRpZXMgcGVybWlzc2lvbi4gIEFkZGl0aW9uYWxseSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiAgSWYgaW5zdGFsbGVkLCB2YWxpZGF0aW9uIG9mIGEgY2FwdGNoYSBpbWFnZSB3aWxsIGJlIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgdG8gbG9naW4uICBUaGlzIGlzIGludGVuZGVkIHRvIHByZXZlbnQgYnJ1dGUgZm9yY2UgYXR0YWNrcy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIG5vY2FwdGNoYSBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZXZlbiBpZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLiZxdW90Oyc7CiRsYW5nWydwYXNzd29yZCddID0gJ1NlbmhhJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnU2VuaGEgTm92YW1lbnRlJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdKJmFhY3V0ZTsgZXhpc3RlIHVtIGdydXBvIGNvbSBlc3RlIG5vbWUnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnRWRpdGFyIGdydXBvJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Vudmlhcic7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxhcic7CiRsYW5nWydkZWxldGUnXSA9ICdFeGNsdWlyJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnVm9jJmVjaXJjOyB0ZW0gY2VydGV6YSBxdWUgZXN0YXMgcyZhdGlsZGU7byBhcyBjb25maWd1cmEmY2NlZGlsOyZvdGlsZGU7ZXMgY29ycmV0YXMgcGFyYSBlc3RlIGdydXBvP1xuRGVzYXRpdmFyIHVtIHByb3ByaWVkYWRlIG4mYXRpbGRlO28gaXImYWFjdXRlOyBkZWxldGFyIG5lbmh1bWEgZW50cmFkYSBuYSB0YWJlbGEgcGFyYSBlc3RlIGdydXBvL3VzdSZhYWN1dGU7cmlvLiBBcGVuYXMgdG9ybmFyJmFhY3V0ZTsgYSBwcm9wcmllZGFkZSBpbmRpc3BvbiZpYWN1dGU7dmVsLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnVGVtIGNlcnRlemEgcXVlIHF1ZXIgZGVsZXRhciBlc3RlIGdydXBvPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9wcm9wJ10gPSAnUmVhbG1lbnRlIHF1ZXIgZGVsZXRhciBlc3RhIHByb3ByaWVkYWRlP1xuRmF6ZXIgaXNzbyB0YW1iJmVhY3V0ZTttIGlyJmFhY3V0ZTsgZGVsZXRhciBhcyBlbnRyYWRhcyBwYXJhIGVzdGEgcHJvcHJpZWRhZGUuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1BhciZhY2lyYzttZXRyb3MgaW5zdWZpY2llbnRlcyc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ25hbWUnXSA9ICdOb21lJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRwcm9wJ10gPSAnUHJvYmxlbWEgYW8gYWRpY2lvbmFyIHByb3ByaWVkYWRlJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cHJlbG4nXSA9ICdQcm9ibGVtYSBhbyBhZGljaW9uYXIgcmVsYWNpb25hbWVudG8gZW50cmUgZ3J1cG9zJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZW1hIGFvIGFkaWNpb25hciBncnVwbyc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2JsZW1hIGFvIGFkaWNpb25hciB1c3UmYWFjdXRlO3JpbyBhbyBncnVwbyc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmxlbWEgYW8gZGVsZXRhciBwcm9wcmllZGFkZSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGZpbmRlbWFpbCddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBsb2NhbGl6YXIgdW0gZW5kZXJlJmNjZWRpbDtvIGRlIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdTZW0gcGVybWlzcyZhdGlsZGU7byBkZSBlc2NyaXRhIG5vIGRpcmV0Jm9hY3V0ZTtyaW8gZGUgZGVzdGlubyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnUGFyJmFjaXJjO21ldHJvcyBpbnYmYWFjdXRlO2xpZG9zJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnTiZhdGlsZGU7byBmb2kgcG9zcyZpYWN1dGU7dmVsIGxvY2FsaXphciBuZW5odW0gZ3J1cG8nOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdBcGxpY2FyJzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRyYXInOwokbGFuZ1sndXNlcmZpbHRlciddID0gJ0V4cHJlc3MmYXRpbGRlO28gcmVndWxhciBwYXJhIG5vbWUgZGUgdXN1JmFhY3V0ZTtyaW8nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmkmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdOb21lIGRvIEdydXBvJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjZXNzbyBOZWdhZG8nOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvJzsKJGxhbmdbJ2FkZGdyb3VwJ10gPSAnQWRpY2lvbmFyIEdydXBvJzsKJGxhbmdbJ2ltcG9ydGdyb3VwJ10gPSAnSW1wb3J0YXIgR3J1cG8nOwokbGFuZ1snYWRkdXNlciddID0gJ0FkaWNpb25hciBVc3UmYWFjdXRlO3Jpbyc7CiRsYW5nWyd1c2Vyc2ZvdW5kJ10gPSAnVXN1JmFhY3V0ZTtyaW8gZW5jb250cmFkb3MgZW0gY29uZm9ybWlkYWRlIGNvbSBvIGNyaXQmZWFjdXRlO3Jpbyc7CiRsYW5nWydncm91cCddID0gJ0dydXBvJzsKJGxhbmdbJ3NlbGVjdGdyb3VwJ10gPSAnU2VsZWNpb25lIEdydXBvJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ01vZGVsbyBkZSBSZWdpc3Rybyc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdNb2RlbG8gZGUgc2EmaWFjdXRlO2RhJzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnTW9kZWxvIGRlIExvZ2luJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyJmFjaXJjO25jaWFzJzsKJGxhbmdbJ3VzZXJzJ10gPSAnVXN1JmFhY3V0ZTtyaW8nOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnR2VyZW5jaWFtZW50byBkbyBGcm9udGVuZCBVc2VyJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnUGVybWl0aXIgcXVlIHVzdSZhYWN1dGU7cmlvcyBsb2d1ZW0gbm8gZnJvbnRlbmQgZG8gc2l0ZSc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBkZSBmcmVudGUgcGFkci9hbyc7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAnJlVhY3V0ZTtsdGltYSBwJmFhY3V0ZTtnaW5hIGFjZXNzYWRhJzsKJGxhbmdbJ290aGVycGFnZSddID0gJ091dHJhIHAmYWFjdXRlO2dpbmE6JzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdFbnRyZSBjb20gbyB0ZXh0byBkYSBpbWFnZW0nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ0VkaXRhbmRvIFV0aWxpemFkb3InOwokbGFuZ1snbm9pbmxpbmUnXSA9ICdOJmF0aWxkZTtvIGFsaW5oYXIgZm9ybXVsJmFhY3V0ZTtyaW9zJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnQ2xpcXVlIGFxdWkgY2FzbyBuJmF0aWxkZTtvIGNvbnNpZ2EgbGVtYnJhci1zZSBkb3Mgc2V1cyBkZXRhbGhlcyBkZSB1dGlsaXphZG9yJzsKJGxhbmdbJ2luZm9fZm9yZ290cHcnXSA9ICdDbGlxdWUgYXF1aSBjYXNvIG4mYXRpbGRlO28gY29uc2lnYSBsZW1icmFyLXNlIGRhIHN1YSBwYWxhdnJhIGNoYXZlJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnQ2xpcXVlIGFxdWkgcGFyYSBsb2dvdXQnOwokbGFuZ1snaW5mb19jaGFuZ2VzZXR0aW5ncyddID0gJ0NsaXF1ZSBhcXVpIHBhcmEgYWp1c3RhciBhIHN1YSBwYWxhdnJhIGNoYXZlIG91IG91dHJhcyBpbmZvcm1hJmNjZWRpbDsmb3RpbGRlO2VzJzsKJGxhbmdbJ3ZpZXd1c2VyX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgVmlzdWFsaXphciBVdGlsaXphZG9yJzsKJGxhbmdbJ2V2ZW50J10gPSAnRXZlbnRvJzsKJGxhbmdbJ2ZldV9ldmVudF9ub3RpZmljYXRpb24nXSA9ICdGRVUgTm90aWZpY2EmY2NlZGlsOyZhdGlsZGU7byBFdmVudG8nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnRW5kZXJlJmNjZWRpbDtvIEVtYWlsIHBhcmEgTm90aWZpY2EmY2NlZGlsOyZvdGlsZGU7ZXMnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGRvIEVtYWlsIGRlIE5vdGlmaWNhJmNjZWRpbDsmb3RpbGRlO2VzJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fc3ViamVjdCddID0gJ0Fzc3VudG8gZG8gRW1haWwgZGUgTm90aWZpY2EmY2NlZGlsOyZvdGlsZGU7ZXMnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdFbWFpbCBOb3RpZmljYSZjY2VkaWw7Jm90aWxkZTtlcyc7CiRsYW5nWydPbkxvZ2luJ10gPSAnTm8gTG9naW4nOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdObyBMb2dvdXQnOwokbGFuZ1snT25FeHBpcmVVc2VyJ10gPSAnTmEgRXhwcmlyYSZjY2VkaWw7JmF0aWxkZTtvIGRhIFNlc3MmYXRpbGRlO28nOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnTmEgQ3JpYSZjY2VkaWw7JmF0aWxkZTtvIGRlIHVtIE5vdm8gVXRpbGl6YWRvcic7CiRsYW5nWydPbkRlbGV0ZVVzZXInXSA9ICdOYSBSZW1vJmNjZWRpbDsmYXRpbGRlO28gZGUgdW0gVXRpbGl6YWRvcic7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdOYSBBbHRlcmEmY2NlZGlsOyZhdGlsZGU7byBkb3MgRGV0YWxoZXMgZGUgVXRpbGl6YWRvcic7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnTmEgQ3JpYSZjY2VkaWw7JmF0aWxkZTtvIGRlIHVtIEdydXBvIGRlIFV0aWxpemFkb3Jlcyc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnTmEgUmVtbyZjY2VkaWw7JmF0aWxkZTtvIGRlIHVtIEdydXBvIGRlIFV0aWxpemFkb3Jlcyc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ0EgcGVzcXVpc2EgcGVsb3Mgc2V1cyBkYWRvcyBkZSB1dGlsaXphZG9yIHRlcm1pbm91LiBGb2kgZW5jb250cmFkbyB1bSBub21lIGRlIHV0aWxpemFkb3IgY29tIGRldGFsaGVzIGlndWFpcyBhb3MgcXVlIGludHJvZHV6aXUuJzsKJGxhbmdbJ3lvdXJfdXNlcm5hbWVfaXMnXSA9ICdPIHNldSBub21lIGRlIHV0aWxpemFkb3IgJmVhY3V0ZTsnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAnUmVjb21lbmRhbW9zIHF1ZSBndWFyZGUgZXN0YSBpbmZvcm1hJmNjZWRpbDsmYXRpbGRlO28gbnVtIGxvY2FsIHNlZ3VybywgbWFzIGFjZXNzJmlhY3V0ZTt2ZWwuJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBjaGFuZ2Ugc2V0dGluZ3MnOwokbGFuZ1sncHJvbXB0X2FmdGVyX3ZlcmlmeV9jb2RlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgY29kZSB2ZXJpZmljYXRpb24gKic7CiRsYW5nWydsb3N0dW5fZGV0YWlsc190ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgRGV0YWlscyBUZW1wbGF0ZSc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgQ29uZmlybSBUZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0Vycm86IE1haXMgZG8gcXVlIHVtIHV0aWxpemFkb3IgZm9pIGVuY29udHJhZG8gY29tIG9zIGRhZG9zIHF1ZSBmb3JuZWNldSc7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdFcnJvOiBOJmF0aWxkZTtvIGZvaSBlbmNvbnRyYWRvIG5lbmh1bSB1dGlsaXphZG9yIGNvbSBlc3NlIG5vbWUnOwokbGFuZ1snZXJyb3JfZ3JvdXBub3Rmb3VuZCddID0gJ0Vycm86IE4mYXRpbGRlO28gZm9pIGVuY29udHJhZG8gbmVuaHVtIGdydXBvIGNvbSBlc3NlIG5vbWUnOwokbGFuZ1sncmVhZG9ubHknXSA9ICdTJm9hY3V0ZTsgTGVpdHVyYSc7CiRsYW5nWydwcm9tcHRfdXNlcm1hbmlwdWxhdG9yJ10gPSAnVXNlciBNYW5pcHVsYXRvciBDbGFzcyc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdMb2dnZWQgb3V0IHBlbG8gYWRtaW5pc3RyYWRvcic7CiRsYW5nWydwcm9tcHRfbG9nZ2VkaW5vbmx5J10gPSAnTW9zdHJhciBBcGVuYXMgVXRpbGl6YWRvcmVzIEF1dGVudGljYWRvcyc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnTG9nb3V0IHV0aWxpemFkb3InOwokbGFuZ1sndXNlcl9wcm9wZXJ0aWVzJ10gPSAnUHJvcHJpZWRhZGVzIGRvIFV0aWxpemFkb3InOwokbGFuZ1sndXNlcmhpc3RvcnknXSA9ICdIaXN0b3JpYWwgZG8gVXRpbGl6YWRvcic7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnRhcic7CiRsYW5nWydjbGVhciddID0gJ0xpbXBhcic7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknXSA9ICdFeHBvcnRhciBIaXN0b3JpYWwgZGUgVXRpbGl6YWRvciBQYXJhIEFTQ0lJIHF1ZSAmZWFjdXRlOyBwZWxvIG1lbm9zJzsKJGxhbmdbJ3Byb21wdF9jbGVhcnVzZXJoaXN0b3J5J10gPSAnTGltcGFyIEhpc3RvcmlhbCBkZSBVdGlsaXphZG9yIHF1ZSAmZWFjdXRlOyBwZWxvIG1lbm9zJzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJ0VzcXVlY2V1LXNlIGRvcyBzZXVzIGRldGFsaGVzIGRlIHV0aWxpemFkb3I/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0V4cG9ydGFyIGRlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkZSBncnVwbyAoZSBwcm9wcmllZGFkZXMpIHBhcmEgWE1MJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5bWFpbnRlbmFuY2UnXSA9ICdVc2VyIEhpc3RvcnkgTWFpbnRlbmFuY2UnOwokbGFuZ1sneWVzJ10gPSAnU2ltJzsKJGxhbmdbJ25vJ10gPSAnTiZhdGlsZGU7byc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICdEZSc7CiRsYW5nWydkYXRlX2FsbHJlY29yZHMnXSA9ICcqKiBTZW0gTGltaXRlICoqJzsKJGxhbmdbJ2RhdGVfb25laG91cm9sZCddID0gJ1VtYSBIb3JhIGRlIElkYWRlJzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJ1NlaXMgSG9yYXMgZGUgSWRhZGUnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnRG96ZSBIb3JhcyBkZSBJZGFkZSc7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ1VtIERpYSBkZSBJZGFkZSc7CiRsYW5nWydkYXRlX29uZXdlZWtvbGQnXSA9ICdVbWEgU2VtYW5hIGRlIElkYWRlJzsKJGxhbmdbJ2RhdGVfdHdvd2Vla3NvbGQnXSA9ICdEdWFzIFNlbWFuYXMgZGUgSWRhZGUnOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJ1VtIE0mZWNpcmM7cyBkZSBJZGFkZSc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnVHImZWNpcmM7cyBNZXNzZXMgZGUgSWRhZGUnOwokbGFuZ1snZGF0ZV9zaXhtb250aHNvbGQnXSA9ICdTZWlzIE1lc3NlcyBkZSBJZGFkZSc7CiRsYW5nWydkYXRlX29uZXllYXJvbGQnXSA9ICdVbSBBbm8gZGUgSWRhZGUnOwokbGFuZ1sndGl0bGVfZ3JvdXBzb3J0J10gPSAnQWdydXBhbWVudG8gZSBPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2ZvdW5kJ10gPSAnUmVnaXN0b3MgcXVlIGNvbmRpemVtIGNvbSBvcyBjcml0JmVhY3V0ZTtyaW9zJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnTm9tZSBkZSBVdGlsaXphZG9yIERlc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdOb21lIGRlIFV0aWxpemFkb3IgQXNjZW5kZW50ZSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnRGF0YSBEZXNjZW5kZW50ZSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdEYXRhIEFzY2VuZGVudGUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9kZXNjJ10gPSAnVGlwbyBkZSBFdmVudG8gRGVzY2VuZGVudGUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdUaXBvIGRlIEV2ZW50byBBc2NlbmRlbnRlJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfZGVzYyddID0gJ0VuZGVyZSZjY2VkaWw7byBkZSBJUCBEZXNjZW5kZW50ZSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2FzYyddID0gJ0VuZGVyZSZjY2VkaWw7byBkZSBJUCBBc2NlbmRlbnRlJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdOJmF0aWxkZTtvIGZvaSBEZXRlY3RhZG8gbmVuaHVtIEhpc3RvcmlhbCc7CiRsYW5nWydyZXNldCddID0gJ1JlcG9yJzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0FncnVwYXIgcG9yIEVuZGVyZSZjY2VkaWw7byBJUCc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0ZpbHRybyBkZSBUaXBvIGRlIEV2ZW50byc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdNb3N0cmFyIGFwZW5hcyBldmVudG9zIGNvbSBtZW5vcyBkZTonOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xpbWl0ZSBkZSBQJmFhY3V0ZTtnaW5hJzsKJGxhbmdbJ2ZvciddID0gJ3BhcmEnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdSZWxhdCZvYWN1dGU7cmlvIGRvIEhpc3RvcmlhbCBkbyBVdGlsaXphZG9yJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdEZXNjb25oZWNpZG8nOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0VuZGVyZSZjY2VkaWw7byBJUCc7CiRsYW5nWydwcm9tcHRfZXZlbnR0eXBlJ10gPSAnVGlwbyBkZSBFdmVudG8nOwokbGFuZ1sncHJvbXB0X2RhdGUnXSA9ICdEYXRhJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdWb2x0YXInOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ09wZXJhJmNjZWRpbDsmYXRpbGRlO28gZGUgSW1wb3J0YSZjY2VkaWw7JmF0aWxkZTtvIENvbXBsZXRhZGEnOwokbGFuZ1sncHJvbXB0X2xpbmVzcHJvY2Vzc2VkJ10gPSAnTGluaGFzIFByb2Nlc3NhZGFzJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdFcnJvcyBFbmNvbnRyYWRvcyc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnUmVnaXN0b3MgQWRpY2lvbmFkb3MnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3ByZWxucyddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBlbmNvbnRyYXIgYXMgcHJvcHJpZWRhZGVzIGRvIGdydXBvICVzJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnTiZhdGlsZGU7byBmb2kgcG9zcyZpYWN1dGU7dmVsIG9idGVyIHVtYSByZXNwb3N0YSBkbyBzZXJ2aWRvciBTTVRQJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ08gZmljaGVpcm8gKCVzKSBuJmF0aWxkZTtvIGZvaSBlbmNvbnRyYWRvJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICdJbnZhbGlkIHZhbHVlIGZvciBkcm9wZG93biBvciBtdWx0aXNlbGVjdCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZGxlbmd0aCddID0gJ08gY2FtcG8gJXMgZXhjZWRldSBvIHRhbWFuaG8gbSZhYWN1dGU7eGltbyc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ0Vycm8gZGUgSW1wb3J0YSZjY2VkaWw7JmF0aWxkZTtvIChsaW5oYSAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdDb3VsZCBub3QgZ2V0IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9ucyAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgY29sdW1uIHRvIG1hdGNoIHRoZSByZXF1aXJlZCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ0NvdWxkIG5vdCBmaW5kIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ1RoZSBmaWxlIHNwZWNpZmllZCBmb3IgaW1wb3J0IGlzIG5vdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ04mYXRpbGRlO28gZm9pIHBvc3MmaWFjdXRlO3ZlbCBhYnJpciBvIGZpY2hlaXJvJzsKJGxhbmdbJ2luZm9faW1wb3J0dXNlcnNmaWxlZm9ybWF0J10gPSAnPGg0PkZpbGUgRm9ybWF0IEluZm9ybWF0aW9uPC9oND4NCjxwPlRoZSBpbnB1dCBmaWxlIG11c3QgYmUgaW4gQVNDSUkgZm9ybWF0IHVzaW5nIGNvbW1hIHNlcGFyYXRlZCB2YWx1ZXMuICBFYWNoIGxpbmUgaW4gdGhpcyBpbnB1dCBmaWxlICh3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIGhlYWRlciBsaW5lLCBkaXNjdXNzZWQgYmVsb3cpIHJlcHJlc2VudHMgb25lIHVzZXIgcmVjb3JkLiAgRWFjaCBsaW5lIG11c3QgY29udGFpbiB0aGUgc2FtZSBudW1iZXIgb2YgZmllbGRzLCBhbmQgdGhlIG9yZGVyIG9mIHRoZSBmaWVsZHMgaW4gZWFjaCBsaW5lIG11c3QgYmUgaWRlbnRpY2FsLjwvcD4NCjxoNT5IZWFkZXIgbGluZTwvaDU+DQo8dWw+DQo8bGk+VGhlIGZpcnN0IGxpbmUgb2YgdGhlIGZpbGUgbXVzdCBiZWdpbiB3aXRoIHR3byBwb3VuZCAoXCMpIGNoYXJhY3RlcnMsIGFuZCBuYW1lcyBlYWNoIG9mIHRoZSBmaWVsZHMgaW4gdGhlIGZpbGUuICBUaGUgbmFtZXMgb2YgdGhlc2UgZmllbGRzIGlzIHNpZ25pZmljYW50LiAgVGhlcmUgYXJlIHNvbWUgcmVxdWlyZWQgZmllbGQgbmFtZXMgKHNlZSBiZWxvdyksIGFuZCBvdGhlciBmaWVsZCBuYW1lcyBtdXN0IG1hdGNoIHRoZSBwcm9wZXJ0eSBuYW1lcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwIHVzZXJzIGFyZSBnb2luZyB0byBiZSBhZGRlZCBpbnRvLjwvbGk+DQo8bGk+VGhlIGltcG9ydCBwcm9jZXNzIHdpbGwgZmFpbCBpZiB0aGUgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIGRvZXMgbm90IG1hdGNoIGFsbCBvZiB0aGUgcmVxdWlyZWQgcHJvcGVydGllcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwIHRoYXQgdXNlcnMgYXJlIGJlaW5nIGFkZGVkIGludG88L2xpPg0KPGxpPlRoZSBpbnB1dCBmaWxlIG1heSBjb250YWluIGZpZWxkcyByZXByZXNlbnRpbmcgc29tZSBvZiB0aGUgb3B0aW9uYWwgcHJvcGVydGllcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLjwvbGk+DQo8bGk+VGhlIGltcG9ydCBwcm9jZXNzIHdpbGwgaWdub3JlIGFueSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgdGhhdCBhcmUgZWl0aGVyIG5vdCBrbm93biwgb3IgbWFwIHRvIHByb3BlcnRpZXMgdGhhdCBhcmUgPGVtPm9mZjwvZW0+IGluIHRoZSBzcGVjaWZpZWQgdXNlciBncm91cC48L2xpPg0KPC91bD4NCjxoNT5Db2x1bW5hciBEYXRhPC9oNT4NCjx1bD4NCjxsaT5UaGUgPHN0cm9uZz51c2VybmFtZTwvc3Ryb25nPiBGaWVsZCAtIFRoZSBkZXNpcmVkIHVzZXJuYW1lLg0KICAgIDxwPlRoaXMgZmllbGQgbXVzdCBleGlzdCBpbiB0aGUgaGVhZGVybGluZSwgYW5kIGluIGVhY2ggYW5kIGV2ZXJ5IGxpbmUgb2YgdGhlIGlucHV0IGZpbGUuIFRoZSByZWNvcmQgd2lsbCBmYWlsIGlmIGEgdXNlciB3aXRoIHRoYXQgdXNlcm5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGRhdGFiYXNlLjwvcD48L2xpPg0KPGxpPlRoZSA8c3Ryb25nPnBhc3N3b3JkPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+ZXhwaXJlczwvc3Ryb25nPiBGaWVsZCAtIFRvZG88L2xpPg0KPGxpPkRyb3Bkb3duIEZpZWxkcw0KICAgIDxwPlRoZSB2YWx1ZSBvZiBkcm9wZG93biBwcm9wZXJ0aWVzIGluIGFuIGltcG9ydCBmaWxlIGlzIHJlcHJlc2VudGVkIGFzIHRoZSBzdHJpbmcgdGhhdCBpcyBzaG93biBpbiB0aGUgZHJvcGRvd24gY29udHJvbCBpbiB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUuPC9wPg0KPC9saT4NCjxsaT5NdWx0aXNlbGVjdCBGaWVsZHMNCiAgICA8cD5NdWx0aXNlbGVjdCBmaWVsZHMgYXJlIGNvbnRhaW5lZCB3aXRoaW4gdGhlIEFTQ0lJIGZpbGUgYXMgYSA6IHNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZ3MsIHdoZXJlIGVhY2ggc3RyaW5nIHJlcHJlc2VudHMgdGhlIHRleHQgc2hvd24gaW4gdGhlIG11bHRpc2VsZWN0IGxpc3Q8L3A+DQo8L2xpPg0KPGxpPkltYWdlIEZpZWxkcw0KICAgIDxwPkltYWdlIGFyZSBmaWVsZHMgd2hvJiMwMzk7cyBjb2x1bW4gbmFtZSBtYXRjaGVzIGEgcHJvcGVydHkgb2YgdHlwZSBJbWFnZS4gIElmIHRoaXMgZmllbGQgaXMgYSByZXF1aXJlZCBwYXJ0IG9mIHRoZSBkZXN0aW5hdGlvbiBncm91cCwgdGhlbiB0aGUgbmFtZSBzcGVjaWZpZWQgaW4gdGhlc2UgY29sdW1ucyBtdXN0IGV4aXN0IGluIHRoZSB1cGxvYWRzIGRpc3JlY3Rvcnkgb2YgdGhlIENNUyBpbnN0YWxsYXRpb24uICBJZiB0aGUgaW1hZ2UgZG9lcyBub3QgZXhpc3QsIGFuZCB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIHRoZW4gdGhlIHJlY29yZCB3aWxsIGZhaWwuPC9wPg0KPC91bD4NCjxoNT5Ob3RlczwvaDU+DQo8cD5UaGUgaW1wb3J0IHByb2Nlc3MgaXMgc3ViamVjdCB0byB0aGUgbGltaXRhdGlvbnMgaW1wb3NlZCBieSB0aGUgaG9zdCBwcm92aWRlciwgc3VjaCBhcyBtZW1vcnkgbGltaXRhdGlvbnMsIHByb2Nlc3NpbmcgdGltZSwgZmlsZSBzaXplIHVwbG9hZCwgYW5kIHNhZmUgbW9kZSByZXN0cmljdGlvbnMuICBBbnkgb25lIG9mIHRoZXNlIGxpbWl0YXRpb25zIG1heSBjYXVzZSB0aGUgaW1wb3J0IHRvIGZhaWwuIFRoZXJlZm9yZSBpdCBpcyBhZHZpc2FibGUgdG8gZW5zdXJlIHRoYXQgaW1wb3J0IGZpbGVzIGFyZSBzbWFsbGVyIGluIHNpemUsIGFuZCBzaW1wbGVyIGluIG5hdHVyZS48L3A+DQo8cD5UaG91Z2ggZXZlcnkgZWZmb3J0IGhhcyBiZWVuIG1hZGUgdG8gZW5zdXJlIHRoYXQgZGF0YWJhc2UgY29ycnVwdGlvbiB3aWxsIG5vdCBvY2N1ciwgaXQgaXMgYWR2aXNhYmxlIHRvIHBlcmZvcm0gYSBkYXRhYmFzZSBiYWNrdXAgYmVmb3JlIGRvaW5nIGEgdXNlciBpbXBvcnQuPC9wPg0KPGg1PkV4YW1wbGU8L2g1Pg0KPHByZT4NCiMjdXNlcm5hbWUsZmlyc3RfbmFtZSxsYXN0X25hbWUsZW1haWwsY2l0eSxzdGF0ZSxjb3VudHJ5LHppcA0KdXNlcjEsdGVzdCx1c2VyLHVzZXIxQHNvbWVkb21haW4uY29tLHNvbWV3aGVyZSxUWCxVUywxMjM0NQ0KPC9wcmU+DQonOwokbGFuZ1sncHJvbXB0X2ltcG9ydGRlc3Rncm91cCddID0gJ0ltcG9ydGFyIFV0aWxpemFkb3JlcyBwYXJhIEluY2x1cyZhdGlsZGU7byBubyBHcnVwbyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdGaWNoZWlybyBDU1YgZGUgSW5wdXQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdGaWNoZWlybyBYTUwgZGUgSW5wdXQnOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJzJ10gPSAnRXhwb3J0YXIgVXRpbGl6YWRvcmVzJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR1c2VycyddID0gJ0ltcG9ydGFyIFV0aWxpemFkb3Jlcyc7CiRsYW5nWydwcm9tcHRfY2xlYXInXSA9ICdMaW1wYXInOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdDYW1pbmhvIGRlIERlc3Rpbm8gZGEgSW1hZ2VtJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIHdpdGggYSBtaXNzaW5nIChidXQgcmVxdWlyZWQpIHVwbG9hZCc7CiRsYW5nWydlcnJvcl9iYWRfeG1sJ10gPSAnQ291bGQgbm90IHBhcnNlIHRoZSBwcm92aWRlZCBYTUwgZmlsZSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnTiZhdGlsZGU7byAmZWFjdXRlOyBwb3NzJmlhY3V0ZTt2ZWwgcmVtb3ZlciB1bSBncnVwbyBxdWUgYWluZGEgY29udGVtIHV0aWxpemFkb3Jlcyc7CiRsYW5nWydlcnJvcl9ub3JlcGVhdGVkbG9naW5zJ10gPSAnRXN0ZSB1dGlsaXphZG9yIGomYWFjdXRlOyBzZSBlbmNvbnRyYSBhdXRlbnRpY2Fkbyc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdUaGUgdGV4dCBmcm9tIHRoZSBpbWFnZSB3YXMgbm90IGVudGVyZWQgY29ycmVjdGx5JzsKJGxhbmdbJ3Byb21wdF9hbGxvd19yZXBlYXRlZF9sb2dpbnMnXSA9ICdBbGxvdyB1c2VycyB0byBsb2dpbiBtb3JlIHRoYW4gb25jZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnSW1hZ2UgRmlsZSBFeHRlbnNpb25zIHRoYXQgVXNlcnMgYWxsb3dlZCB0byB1cGxvYWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyB1cGRhdGVkIChlaXRoZXIgYnkgdXNlciB0aGVtc2VsZiBvciBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZUdyb3VwJ10gPSAnPGgzPk9uQ3JlYXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBncm91cCBkZXNjcmlwdGlvbjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9naW4nXSA9ICc8aDM+T25Mb2dpbjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGlkIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPg0KPGxpPjxlbT5pcDwvZW0+IC0gVGhlIGlwIGFkZHJlc3Mgb2YgdGhlIGNsaWVudDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dvdXQnXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBvdXQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgbG9nZ2Vkb3V0IHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uRXhwaXJlVXNlciddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGV4cGlyZXM8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9pbmZvX09uTG9naW4nXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbiB0byB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBvdXQgb2YgdGhlIHN5c3RlbSc7CiRsYW5nWydldmVudF9pbmZvX09uRXhwaXJlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBzZXNzaW9uIGlzIGV4cGlyZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIG5ldyB1c2VyIGlzIGNyZWF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaW5mbyBpcyB1cGRhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGFjY291bnQgaXMgZGVsZXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlR3JvdXAnXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgZ3JvdXAgaXMgZGVsZXRlZCc7CiRsYW5nWydiYWNrZW5kX2dyb3VwJ10gPSAnQmFja2VuZCBHcm91cCc7CiRsYW5nWydpbmZvX3N0YXInXSA9ICcqIFRoZSBmb2xsb3dpbmcgbWFjcm9zIGNhbiBiZSB1c2VkIGluIHRoZXNlIGZpZWxkczogeyR1c2VybmFtZX0seyRncm91cH0uIFdoZW4gdXNpbmcgdGhlIHskZ3JvdXB9IG1hY3JvLCB0aGUgc3lzdGVtIHdpbGwgc3Vic2l0dXRlIHRoZSBuYW1lIG9mIHRoZSBmaXJzdCBtZW1iZXIgZ3JvdXAgdGhhdCB0aGUgdXNlciBiZWxvbmdzIHRvLCBhbmQgd2lsbCByZWRpcmVjdCB0byB0aGF0IHBhZ2UuJzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdFZGl0IHRoaXMgZmllbGQgdG8gcmVzZXQgdGhlIHVzZXJzIHBhc3N3b3JkJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdFZGl0IHRoaXMgZmllbGQgdG8gcmVzZXQgdGhlIHVzZXJzIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1lX2V4aXN0cyddID0gJ1VtIHV0aWxpemFkb3IgY29tIGVzc2Ugbm9tZSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ25vY3N2cmVzdWx0cyddID0gJ05vIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSBjc3YgZXhwb3J0JzsKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ0xlbmd0aCBvZiB1c2VybmFtZSBmaWVsZCc7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdMZW5ndGggb2YgcGFzc3dvcmQgZmllbGQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ01pbi9NYXggcGFzc3dvcmQgbGVuZ3RocyBhcmUgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWVsZW5ndGhzJ10gPSAnTWluL01heCB1c2VybmFtZSBsZW5ndGhzIGFyZSBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdFbmRlcmUmY2NlZGlsO28gZGUgRW1haWwgSW52JmFhY3V0ZTtsaWRvJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxhZGRyZXNzJ10gPSAnTiZhdGlsZGU7byBmb2kgZW5jb250cmFkbyBuZW5odW0gZW5kcmUmY2NlZGlsO28gZGUgZW1haWwgcGFyYSBlc3RhIGNvbnRhJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdQcm9ibGVtIHNldHRpbmcgdXNlciBpbmZvJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ1Byb2JsZW0gc2V0dGluZyBwcm9wZXJ0eSc7CiRsYW5nWyd1c2VyX2FkZGVkJ10gPSAnVXRpbGl6YWRvciBBZGljaW9uYWRvICVzID0gJXMnOwokbGFuZ1sndXNlcl9kZWxldGVkJ10gPSAnVXRpbGl6YWRvciBSZW1vdmlkbyB1aWQ9JXMnOwokbGFuZ1sncHJvcGVydHlmaWx0ZXInXSA9ICdQcm9wcmllZGFkZSc7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnVmFsb3IgKGV4cHJlc3MmYXRpbGRlO28gcmVndWxhciknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdXYXJuaW5nOiBUaGVzZSBmaWVsZHMgYWZmZWN0IHRoZSBzaXplIG9mIGlucHV0IGZpZWxkcyBmb3IgZm9ybXMuICBEZWNyZWFzaW5nIHRoaXMgbnVtYmVyIG9uIGFuIGV4aXN0aW5nIHNpdGUgbWF5IG5vdCBiZSBhZHZpc2FibGUnOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhZGp1c3QgdGhlIG1vZHVsZSBwcmVmZXJlbmNlcz8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0VuZGVyZSZjY2VkaWw7byBkZSBlbWFpbCBlbSB1dGlsaXphJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1sncHJvbXB0X3VzZWNvb2tpZXN0b3JlbWVtYmVyJ10gPSAnVXNlIGNvb2tpZXMgdG8gcmVtZW1iZXIgbG9naW4gZGV0YWlscyc7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ1RoZSBuYW1lIG9mIHRoZSBjb29raWUnOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgZW1haWxzJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCddID0gJ0VtYWlsIGFkZHJlc3MgaXMgdXNlcm5hbWUnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnQXR0ZW1wdCB0byBrZWVwIGxvZ2lucyBhbGl2ZSBieSB0aGUgdXNlIG9mIGEgY29va2llIDxlbT4odGhlIGNvb2tpZSBpcyByZXNldCBvbiBhY3Rpdml0eSBpbiB0aGUgd2Vic2l0ZSk8L2VtPic7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcoYWxsb3cgbXVsdGlwbGUgdXNlcnMgd2l0aCB0aGUgc2FtZSBlbWFpbCBhZGRyZXNzKSc7CiRsYW5nWydpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnKHVzZXImIzAzOTtzIGVtYWlsIGFkZHJlc3MgaXMgdGhlaXIgdXNlcm5hbWUgLS0gZG9uJiMwMzk7dCBzZXQgdGhpcyB3aXRoICZxdW90O2FsbG93IGR1cGxpY2F0ZSBlbWFpbCBhZGRyZXNzZXMmcXVvdDshKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJ0FsbG93IGR1cGxpY2F0ZSAmcXVvdDtmb3Jnb3QgcGFzc3dvcmQmcXVvdDsgcmVtaW5kZXJzPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoYWxsb3cgYSB1c2VycyB0byByZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQsIGV2ZW4gaWYgdGhleSBoYXZlbiYjMDM5O3QgYWN0ZWQgb24gYSBwcmV2aW91cyBvbmUpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnVXNlIEZyb250LWVuZCBVc2VyIHNwZWNpZmljIHBlcm1pc3Npb25zPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFsbHksIEZFVVNlcnMgcGVybWlzc2lvbnMgYXJlIHRoZSBzYW1lIGFzIHRoZSBlcXVpdmFsZW50IEFkbWluIEFyZWEgcGVybWlzc2lvbnMgbGlrZSBBZGQgVXNlciwgQWRkIEdyb3VwLCBldGMuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZXJlIHdpbGwgYmUgc2VwYXJhdGUgcGVybWlzc2lvbnMgZm9yIEZFVXNlcnMuKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZGVkIGZpbGUgKGludGVybmFsIGVycm9yKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtX3VwbG9hZCddID0gJ1RoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB5b3VyIHVwbG9hZGVkIGZpbGUuICBQbGVhc2UgdHJ5IGFnYWluJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1c2VybmFtZSddID0gJ04mYXRpbGRlO28gaW50cm9kdXppdSBvIG5vbWUgZGUgdXRpbGl6YWRvcic7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdOJmF0aWxkZTtvIGludHJvZHV6aXUgbyBzZXUgZS1tYWlsJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ04mYXRpbGRlO28gaW50cm9kdXppdSBhIHBhbGF2cmEgY2hhdmUnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0Zyb250ZW5kIFVzZXIgTG9nb3V0JzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0Zyb250ZW5kIFVzZXIgTG9naW4nOwokbGFuZ1snZWRpdHByb3BfaW5mb21zZyddID0gJzxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48Yj5VU0UgQ0FVVElPTjwvYj4gd2hlbiBjaGFuZ2luZyBleGlzdGluZyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGFzc2lnbmVkIHRvIGdyb3VwcywgeW91IG1heSBwb3RlbnRpYWxseSBjYXVzZSBkYW1hZ2UgYW5kIGJyZWFrIGFuIGV4aXN0aW5nIHNpdGUgPGk+KGVzcGVjaWFsbHkgaWYgeW91IHJlZHVjZSBmaWVsZCBsZW5ndGhzLCBldGMpPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHdvcmsgb24gd2luZG93cyc7CiRsYW5nWydtc2dfZG9udGNyZWF0ZXVzZXJuYW1lJ10gPSAnRG8gbm90IGNyZWF0ZSBhIHByb3BlcnR5IGZvciB1c2VybmFtZSwgb3IgcGFzc3dvcmQgYXMgdGhlc2UgcHJvcGVydGllcyBhcmUgYnVpbHRpbiB0byB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0V4cG9ydCBVc2VycyB0byBDU1YnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0YXInOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0YXInOwokbGFuZ1snYWRtaW4nXSA9ICdBZG1pbic7CiRsYW5nWydlZGl0cHJvcCddID0gJ0VkaXQgUHJvcGVydHknOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOwokbGFuZ1snY3JlYXRlZCddID0gJ0NyaWFkbyc7CiRsYW5nWydzb3J0YnknXSA9ICdPcmRlbmFyIFBvcic7CiRsYW5nWydzb3J0J10gPSAnT3JkZW5hJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1sndXNlcnNpbmdyb3VwJ10gPSAnVXRpbGl6YWRvcmVzIG5vKHMpIGdydXBvKHMpIHNlbGVjaW9uYWRvKHMpJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ0xpbWl0YXIgcmVzdWx0YWRvcyBhdCZlYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGFuIGVtYWlsIGZpZWxkIGZvciB0aGlzIHVzZXIuICBZb3UgbWF5IG5lZWQgdG8gY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3InOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgZm9yIEZvcmdvdCBQYXNzd29yZCBmb3JtJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGZvciBDaGFuZ2UgU2V0dGluZ3MgZm9ybSc7CiRsYW5nWydwcm9tcHRfbG9naW5fcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGxvZ2luIConOwokbGFuZ1sncHJvbXB0X2xvZ291dF9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgbG9nb3V0IConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydCBvcmRlcic7CiRsYW5nWydwcm9tcHRfbnVtcmVzZXRyZWNvcmQnXSA9ICdBIG51bWJlciBvZiB1c2VycyBhcmUgaW4gdGhlIG1pZGRsZSBvZiByZXNldHRpbmcgbG9zdCBwYXNzd29yZHMuICBDdXJyZW50bHkgdGhpcyBjb3VudCBpcyBhdDonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgd2VlayBvbGQnOwokbGFuZ1sncmVtb3ZlMW1vbnRoJ10gPSAnUmVtb3ZlIGFsbCBlbnRyaWVzIG1vcmUgdGhhbiBhIG1vbnRoIG9sZCc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1RlbSBhIGNlcnRlemE/JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjb2RlJ10gPSAnRm9pIGludHJvZHV6aWRvIHVtIGMmb2FjdXRlO2RpZ28gaW52JmFhY3V0ZTtsaWRvLCBwb3IgZmF2b3Igdm9sdGUgYSB0ZW50YXInOwokbGFuZ1snZXJyb3JfdGVtcGNvZGVub3Rmb3VuZCddID0gJ0EgdGVtcG9yYXJ5IGNvZGUgZm9yIHlvdXIgdXNlciBpZCBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIGRhdGFiYXNlJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3ZlcmlmeXRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHZlcmlmaWNhdGlvbiBmb3JtJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX2VtYWlsdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB1c2VkIGZvciBmb3Jnb3R0ZW4gcGFzc3dvcmQgZW1haWwnOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ1ZvYyZlY2lyYzsgb3Ugb3V0cmEgcGVzc29hIGluaWNpb3UgcGFyYSBlc3RhIGNvbnRhLCB1bSBwcm9jZXNzbyBkZSByZWN1cGVyYSZjY2VkaWw7JmF0aWxkZTtvIGRhIHBhbGF2cmEgY2hhdmUuIFZlcmlmaXF1ZSBvIHNldSBlbWFpbCBlIHNpZ2EgYXMgaW5zdHJ1JmNjZWRpbDsmb3RpbGRlO2VzIHBhcmEgcHJvY2VkZXIgY29tIGEgcmVjdXBlcmEmY2NlZGlsOyZhdGlsZGU7byBkYSBtZXNtYS4nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0Vycm8gbmEgYmFzZSBkZSBkYWRvcyc7CiRsYW5nWydtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnXSA9ICdFc3QmYWFjdXRlOyBhIHJlY2ViZXIgZXN0YSBtZW5zYWdlbSBwb3JxdWUgYWxndSZlYWN1dGU7bSBpbmljaW91IHVtIHByb2Nlc3NvIGRlIHJlY3VwZXJhJmNjZWRpbDsmYXRpbGRlO28gZGEgc3VhIHBhbGF2cmEgY2hhdmUuIENhc28gdGVuaGEgbWVzbW8gYSBlc3F1ZWNpZG8gZW50JmF0aWxkZTtvIGxlaWEgYXMgaW5zdHJ1JmNjZWRpbDsmb3RpbGRlO2VzIGFiYWl4bywgY2FzbyBjb250ciZhYWN1dGU7cmlvIHBvZGUgaWdub3JhciBlc3RhIG1lbnNhZ2VtIGUgcGVkaW1vcyBkZXNkZSBqJmFhY3V0ZTsgZGVzY3VscGEgcGVsbyBpbmNvbW9kby4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICdDJm9hY3V0ZTtkaWdvJzsKJGxhbmdbJ21lc3NhZ2VfY29kZSddID0gJ08gc2VndWludGUgYyZvYWN1dGU7ZGlnbyBmb2kgZ2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBlIGFsZWF0b3JpYW1lbnRlIGRlIGZvcm1hIGEgdmVyaWZpY2FyIGEgc3VhIGNvbnRhLiBRdWFuZG8gc2VndWlyIG8gbGluayBhYmFpeG8gdGVyJmFhY3V0ZTsgdW0gY2FtcG8gb25kZSBvIHRlciZhYWN1dGU7IGRlIGNvbG9jYXIuIE5vcm1hbG1lbnRlIGVzdGUgY2FtcG8gJmVhY3V0ZTsgcHJlZW5jaGlkbyBhdXRvbWF0aWNhbWVudGUsIG1hcyBubyBjYXNvIGRlIG4mYXRpbGRlO28gbyB0ZXIgc2lkbyBvIGMmb2FjdXRlO2RpZ28gJmVhY3V0ZTs6ICc7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0FvIHNlZ3VpciBvIGxpbmsgaXImYWFjdXRlOyBzZXIgbGV2YWRvIHBhcmEgbyBzaXRlIG9uZGUgcG9kZXImYWFjdXRlOyBpbnRyb2R1emlyIG8gYyZvYWN1dGU7ZGlnbyBlIHJlcG9yIHVtYSBwYWxhdnJhIGNoYXZlOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnUGVyZGV1IGEgc3VhIHBhbGF2cmEgY2hhdmUnOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgQ01TTWFpbGVyIG1vZHVsZSc7CiRsYW5nWydpbmZvX2ZvcmdvdHB3bWVzc2FnZXNlbnQnXSA9ICdPIHNldSBwZWRpZG8gZm9pIGVudmlhZG8gcGFyYSBhIGNhaXhhIGRlIGNvcnJlaW8gJXMgY29tIGluc3RydSZjY2VkaWw7Jm90aWxkZTtlcyBkZSBjb21vIHByb2NlZGVyIHBhcmEgcmVwb3IgYSBzdWEgcGFsYXZyYSBjaGF2ZS4gT2JyaWdhZG8nOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdDYXNvIHRlbmhhIHBlcmRpZG8gYSBzdWEgcGFsYXZyYSBjaGF2ZSwgaW50cm9kdXphIG8gc2V1IG5vbWUgZGUgdXRpbGl6YWRvci4gQ2FzbyBlc3RlIHNlamEgZW5jb250cmFkbyBlbnZpYXJlbW9zLWxoZSB1bSBlbWFpbCBjb20gaW5zdHJ1JmNjZWRpbDsmb3RpbGRlO2VzIGRlIGNvbW8gcHJvY2VkZXIgcGFyYSBhIHJlcG9yLic7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlcyBGb3Jnb3QgUGFzc3dvcmQnOwokbGFuZ1snbG9zdHVzZXJuYW1lX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgTG9zdCBVc2VybmFtZSc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdBIHByb3ByaWVkYWRlICVzIG4mYXRpbGRlO28gZm9pIGVuY29udHJhZGEnOwokbGFuZ1sncHJvcHNmb3VuZCddID0gJ1Byb3BlcnRpZXMgZm91bmQnOwokbGFuZ1snYWRkcHJvcCddID0gJ0FkaWNpb25hciBQcm9wcmllZGFkZSc7CiRsYW5nWydlcnJvcl9yZXF1aXJlZGZpZWxkJ10gPSAnQSByZXF1aXJlZCBmaWVsZCAoJXMpIHdhcyBlbXB0eSc7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ0ludHJvZHV6YSBhIHN1YSBub3ZhIHBhbGF2cmEgY2hhdmUgcGFyYSBwcm9jZWRlciAmYWdyYXZlOyBzdWEgYWx0ZXJhJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdOJmF0aWxkZTtvIHNlIGVuY29udHJhIGF1dGVudGljYWRvJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdG8nOwokbGFuZ1snZXJyb3JfYWNjb3VudGV4cGlyZWQnXSA9ICdFc3RhIGNvbnRhIGV4cGlyb3UnOwokbGFuZ1snZXJyb3JfaW1wcm9wZXJlbWFpbGZvcm1hdCddID0gJ0ltcHJvcGVyIGVtYWlsIGFkZHJlc3MgZm9ybWF0dGluZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZXhwaXJ5ZGF0ZSddID0gJ0ludmFsaWQgZXhwaXJ5IGRhdGUnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdwcm9wZXJ0eSddID0gJ0Vycm9yIHNldHRpbmcgcHJvcGVydHkgJXMgZm9yIHVzZXIgJHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGdyb3VwaWQnXSA9ICdJbnZhbGlkIGdyb3VwIGlkICVzJzsKJGxhbmdbJ2hpZGRlbmZpZWxkbWFya2VyJ10gPSAnSGlkZGVuIGZpZWxkIG1hcmtlcic7CiRsYW5nWydoaWRkZW5maWVsZGNvbG9yJ10gPSAnSGlkZGVuIGZpZWxkIGNvbG9yJzsKJGxhbmdbJ2hpZGRlbiddID0gJ0VzY29uZGlkbyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnQSBwcm9wZXJ0eSB3aXRoIHRoYXQgbmFtZSBpcyBhbHJlYWR5IGRlZmluZWQnOwokbGFuZ1snZXJyb3Jfbm9wcm9wZXJ0aWVzJ10gPSAnTmVuaHVtYSBwcm9wcmllZGFkZSBmb2kgZGVmaW5pZGEnOwokbGFuZ1snZXJyb3Jfbm9yZWxhdGlvbnMnXSA9ICdOZW5odW1hIHByb3ByaWVkYWRhIGZvaSBzZWxlY2lvbmFkYSBwYXJhIGVzdGUgZ3J1cG8nOwokbGFuZ1snbm9ncm91cHMnXSA9ICdOZW5odW0gR3J1cG8gZm9pIGRlZmluaWRvICZsYXF1bzsnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdHcnVwb3MgRW5jb250cmFkb3MnOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ01lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdSZXF1aXJlIG1lbWJlcnNoaXAgaW4gYXRsZWFzdCBvbmUgZ3JvdXAnOwokbGFuZ1snYmFjayddID0gJ1ZvbHRhcic7CiRsYW5nWydlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJ10gPSAnJXMgJmVhY3V0ZTsgdW0gY2FtcG8gb2JyaWdhdCZvYWN1dGU7cmlvJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRtYXJrZXInXSA9ICdNYXJrIHJlcXVpcmVkIGZpZWxkcyB3aXRoJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ0hpbGl0ZSByZXF1aXJlZCBmaWVsZHMgaW4nOwokbGFuZ1snbmV4dCddID0gJ1ByJm9hY3V0ZTt4aW1vJzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnVW0gR3J1cG8gY29tIGVzc2Ugbm9tZSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ3JlcXVpcmVkJ10gPSAnT2JyaWdhdCZvYWN1dGU7cmlvJzsKJGxhbmdbJ29wdGlvbmFsJ10gPSAnT3BjaW9uYWwnOwokbGFuZ1snb2ZmJ10gPSAnRGVzbGlnYWRvJzsKJGxhbmdbJ3NpemUnXSA9ICdUYW1hbmhvJzsKJGxhbmdbJ3NpemVjb21tZW50J10gPSAnPGJyLz4oTWF4aW11bSBzaXplIG9mIGFueSBvbmUgZGltZW5zaW9uIG9mIHRoZSBpbWFnZSBpbiBwaXhlbHMpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ1RhbWFuaG8nOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oY2hhcnMgaW4gdGhlIHRleHQgaW5wdXQpJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdEcm9wZG93biBvcHRpb25zLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuICBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfdHlwZSddID0gJ1RpcG8nOwokbGFuZ1sndHlwZSddID0gJ1RpcG8nOwokbGFuZ1snZmllbGRzdGF0dXMnXSA9ICdGaWVsZCBTdGF0dXMnOwokbGFuZ1sndXNlZGlubG9zdHVuJ10gPSAnQXNrIGluIExvc3Q8YnIvPlVzZXJuYW1lJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0byc7CiRsYW5nWydjaGVja2JveCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ211bHRpc2VsZWN0J10gPSAnTXVsdGkgU2VsZWN0IExpc3QnOwokbGFuZ1snaW1hZ2UnXSA9ICdJbWFnZW0nOwokbGFuZ1snZW1haWwnXSA9ICdFbmRlcmUmY2NlZGlsO28gRW1haWwnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0YXJlYSc7CiRsYW5nWydkcm9wZG93biddID0gJ0Ryb3Bkb3duJzsKJGxhbmdbJ21zZ19jdXJyZW50bHlsb2dnZWRpbmFzJ10gPSAnQmVtIHZpbmRvJzsKJGxhbmdbJ2xvZ291dCddID0gJ0xvZ291dCc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAnVXNlIHRoaXMgZ3JvdXAgbmFtZSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdBbHRlcmFyIERhZG9zJzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnTyBsb2dpbiBmYWxob3UgLSBOb21lIGRlIHV0aWxpemFkb3Igb3UgcGFsYXZyYSBjaGF2ZSBpbnYmYWFjdXRlO2xpZGEuJzsKJGxhbmdbJ2xvZ2luJ10gPSAnTG9naW4nOwokbGFuZ1sncHJvbXB0X3NpZ25pbl9idXR0b24nXSA9ICdTaWduIGluIGJ1dHRvbiBsYWJlbCc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdOb21lIGRlIFV0aWxpemFkb3InOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAnRW5kZXJlJmNjZWRpbDtvIGRlIEVtYWlsJzsKJGxhbmdbJ3Byb21wdF9wYXNzd29yZCddID0gJ1BhbGF2cmEgQ2hhdmUnOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICdNZW1vcml6YXItbWUgbmVzdGUgY29tcHV0YWRvcic7CiRsYW5nWydyZWdpc3RlciddID0gJ1JlZ2lzdGFyJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnRXNxdWVjZXUtc2UgZGEgc3VhIHBhbGF2cmEtY2hhdmUgb3UgJnF1b3Q7cGFzc3dvcmQmcXVvdDs/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ0VzcXVlY2V1LXNlIGRvcyBzZXVzIGRldGFsaGVzIGRlIHV0aWxpemFkb3I/JzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAnUGFkciZhdGlsZGU7byc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlICc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdOJmF0aWxkZTtvIGZvaSBlbmNvbnRyYWRhIG5lbmh1bWEgaW5mb3JtYSZjY2VkaWw7JmF0aWxkZTtvIHBhcmEgZXN0ZSB1dGlsaXphZG9yJzsKJGxhbmdbJ2Vycm9yX3VzZXJuYW1ldGFrZW4nXSA9ICdPIG5vbWUgZGUgdXRsaXphZG9yICglcykgbiZhdGlsZGU7byBlc3QmYWFjdXRlOyBkaXNwb24maWFjdXRlO3ZlbCc7CiRsYW5nWydwcm9tcHRfc210cHZhbGlkYXRlJ10gPSAnVXNhciBTTVRQIHBhcmEgdmFsaWRhciBlbmRlcmUmY2NlZGlsO29zIGRlIGUtbWFpbD8nOwokbGFuZ1sncHJvbXB0X21pbnB3bGVuJ10gPSAnVGFtYW5obyBNJmlhY3V0ZTtuaW1vIGRhIFBhbGF2cmEgQ2hhdmUnOwokbGFuZ1sncHJvbXB0X21heHB3bGVuJ10gPSAnVGFtYW5obyBNJmFhY3V0ZTt4aW1vIGRhIFBhbGF2cmEgQ2hhdmUnOwokbGFuZ1sncHJvbXB0X21pbnVubGVuJ10gPSAnVGFtYW5obyBNJmlhY3V0ZTtuaW1vIGRvIE5vbWUgZGUgVXRpbGl6YWRvcic7CiRsYW5nWydwcm9tcHRfbWF4dW5sZW4nXSA9ICdUYW1hbmhvIE0mYWFjdXRlO3hpbW8gZG8gTm9tZSBkZSBVdGlsaXphZG9yJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1Nlc3Npb24gVGltZW91dCAoc2Vjb25kcyknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ1VzZSBjb29raWVzIHRvIGtlZXAgbG9naW5zIGFsaXZlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnQWxsb3cgRW1haWwgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ3Byb21wdF9kZmx0Z3JvdXAnXSA9ICdEZWZhdWx0IEdyb3VwIGZvciBuZXcgdXNlcnMnOwokbGFuZ1snY2hhbmdlc2V0dGluZ3NfdGVtcGxhdGUnXSA9ICdDaGFuZ2UgU2V0dGluZ3MgVGVtcGxhdGUnOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ0FzIFBhbGF2cmFzIENoYXZlIG4mYXRpbGRlO28gY29uZGl6ZW0nOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnTm9tZSBkZSBVdGlsaXphZG9yIEludiZhYWN1dGU7bGlkbyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdQYWxhdnJhIENoYXZlIEludiZhYWN1dGU7bGlkYSc7CiRsYW5nWydlZGl0dXNlciddID0gJ0VkaXRhciBVdGlsaXphZG9yJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnVmFsaWRvJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnTm9tZSBkZSBVdGlsaXphZG9yJzsKJGxhbmdbJ3N0YXR1cyddID0gJ0VzdGFkbyc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICdFc3RlIHV0aWxpemFkb3IgbiZhdGlsZGU7byAmZWFjdXRlOyBtZW1icm8gZGUgbmVuaHVtIGRvcyBncnVwb3MnOwokbGFuZ1snZXJyb3JfcHJvcGVydGllcyddID0gJ1NlbSBQcm9wcmllZGFkZXMnOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdUZW50YXRpdmEgZGUgaW1wb3J0YSZjY2VkaWw7JmF0aWxkZTtvIGRlIHByb3ByaWVkYWRlcyBkdXBsaWNhZGFzJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVmFsb3InOwokbGFuZ1snZ3JvdXBzJ10gPSAnR3J1cG9zJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdQcm9wcmllZGFkZXMnOwokbGFuZ1sncHJvcG5hbWUnXSA9ICdOb21lIGRlIFByb3ByaWVkYWRlJzsKJGxhbmdbJ3Byb3B2YWx1ZSddID0gJ1ZhbG9yIGRlIFByb3ByaWVkYWRlJzsKJGxhbmdbJ2FkZCddID0gJ0FkaWNpb25hcic7CiRsYW5nWydoaXN0b3J5J10gPSAnSGlzdG9yaWFsJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snZXhwaXJlcyddID0gJ0V4cGlyYSc7CiRsYW5nWydzcGVjaWZ5X2RhdGUnXSA9ICdFc3BlY2lmaWNhciBEYXRhJzsKJGxhbmdbJzEyaHJzJ10gPSAnMTIgSG9yYXMnOwokbGFuZ1snMjRocnMnXSA9ICcyNCBIb3Jhcyc7CiRsYW5nWyc0OGhycyddID0gJzQ4IEhvcmFzJzsKJGxhbmdbJzF3ZWVrJ10gPSAnMSBTZW1hbmEnOwokbGFuZ1snMndlZWtzJ10gPSAnMiBTZW1hbmFzJzsKJGxhbmdbJzFtb250aCddID0gJzEgTSZlY2lyYztzJzsKJGxhbmdbJzNtb250aHMnXSA9ICczIE1lc3Nlcyc7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiBNZXNzZXMnOwokbGFuZ1snMXllYXInXSA9ICcxIEFubyc7CiRsYW5nWyduZXZlciddID0gJ051bmNhJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ01vZHVsZSBpbnN0YWxsZWQgc3VjZXNzZnVsbHkuPGJyLz5CZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24uICBBZGRpdGlvbmFsbHksIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gIElmIGluc3RhbGxlZCwgdmFsaWRhdGlvbiBvZiBhIGNhcHRjaGEgaW1hZ2Ugd2lsbCBiZSByZXF1aXJlZCBpbiBhZGRpdGlvbiB0byB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ2luLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGJydXRlIGZvcmNlIGF0dGFja3MuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBub2NhcHRjaGEgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGV2ZW4gaWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZC4mcXVvdDsnOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdQYWxhdnJhIENoYXZlJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnRGUgTm92byc7CiRsYW5nWydlcnJvcl9ncm91cG5hbWVfZXhpc3RzJ10gPSAnVW0gZ3J1cG8gY29tIGVzc2Ugbm9tZSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ2VkaXRncm91cCddID0gJ0VkaXRhciBHcnVwbyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtZXRlcic7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxhcic7CiRsYW5nWydkZWxldGUnXSA9ICdSZW1vdmVyJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnVGVtIGNlcnRlemEgZGUgcXVlIGVzdGFzIGRlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBzJmF0aWxkZTtvIGNvcnJlY3RhcyBwYXJhIGVzdGUgZ3J1cG8/IFxuQ29sb2NhciB1bWEgcHJvcHJpZWRhZGUgb2ZmIG4mYXRpbGRlO28gaXImYWFjdXRlOyBhcGFnYXIgdG9kYXMgYXMgZW50cmFkYXMgbmEgdGFiZWxhIGRlIHByb3ByaWVkYWRlcyBkZXNzZSBncnVwby91dGlsaXphZG9yLiBFbGFzIHNpbXBsZXNtZW50ZSBuJmF0aWxkZTtvIGlyJmF0aWxkZTtvIGVzdGFyIGRpc3BvbiZpYWN1dGU7dmVpcy4nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVncm91cCddID0gJ1RlbSBhIGNlcnRlemEgcXVlIHF1ZXIgcmVtb3ZlciBlc3RlIGdydXBvPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9wcm9wJ10gPSAnVGVtIGNlcnRlemEgZGUgcXVlIGRlc2VqYSBhcGFnYXIgY29tcGxldGFtZW50ZSBlc3RhIHByb3ByaWVkYWRlPyBcbkRlc3RhIGZvcm1hIHRhbWImZWFjdXRlO20gaXImYWFjdXRlOyBhcGFnYXIgdG9kYXMgYXMgZW50cmFkYXMgZG8gdXRpbGl6YWRvciBwYXJhIGVzdGEgcHJvcHJpZWRhZGUuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1BhciZhY2lyYzttZXRyb3MgSW5zdWZpY2llbnRlcyc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ25hbWUnXSA9ICdOb21lJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRwcm9wJ10gPSAnUHJvYmxlbWEgYWRpY2lvbmFyIHByb3ByaWVkYWRlJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cHJlbG4nXSA9ICdQcm9ibGVtYSBhZGljaW9uYXIgcmVsYSZjY2VkaWw7JmF0aWxkZTtvIGRlIGdydXBvJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZW1hIGFkaWNpb25hciBncnVwbyc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2JsZW1hIGEgYWRpY2lvbmFyIHV0aWxpemFkb3IgYSB1bSBncnVwbyc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmxlbWEgYW8gZXhjbHVpciB1bWEgcHJvcHJpZWRhZGUnOwokbGFuZ1snZXJyb3JfY291bGRub3RmaW5kZW1haWwnXSA9ICdOJmF0aWxkZTtvIGZvaSBwb3NzJmlhY3V0ZTt2ZWwgbG9jYWxpemFyIHVtIGVuZGVyZSZjY2VkaWw7byBkZSBlLW1haWwnOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ05lbmh1bWEgcGVybWlzcyZhdGlsZGU7byBwYXJhIGVzY3JldmVyIG5vIGRpcmV0Jm9hY3V0ZTtyaW8gZGUgZGVzdGlubyAnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ1BhciZhY2lyYzttZXRyb3MgSW52JmFhY3V0ZTtsaWRvcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcyddID0gJ04mYXRpbGRlO28gZm9pIGVuY29udHJhZG8gbmVuaHVtIGdydXBvJzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAnQXBsaWNhcic7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0cm8nOwokbGFuZ1sndXNlcmZpbHRlciddID0gJ05vbWUgZGUgVXRpbGl6YWRvciBFeHByZXNzJm90aWxkZTtlcyBSZWd1bGFyZXMnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmkmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdOb21lIGRlIEdydXBvJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ0FjY2Vzc28gTmVnYWRvJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJybyc7CiRsYW5nWydhZGRncm91cCddID0gJ0FkaWNpb25hciBHcnVwbyc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ0ltcG9ydGFyIEdydXBvJzsKJGxhbmdbJ2FkZHVzZXInXSA9ICdBZGljb25hciBVdGlsaXphZG9yJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdVdGlsaXphZG9yZXMgZW5jb250cmFkb3MgZGUgYWNvcmRvIGNvbSBjcml0JmVhY3V0ZTtyaW9zIGRlIGJ1c2NhJzsKJGxhbmdbJ2dyb3VwJ10gPSAnR3J1cG8nOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdTZWxlY2lvbmFyIEdydXBvJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGRlIFJlZ2lzdG8nOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZGUgTG9nb3V0JzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZGUgTG9naW4nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXImZWNpcmM7bmNpYXMnOwokbGFuZ1sndXNlcnMnXSA9ICdVdGlsaXphZG9yZXMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnR2VzdCZhdGlsZGU7byBGcm9udGVuZCBVc2VyJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnUGVybWl0aXIgYW9zIHVzdSZhYWN1dGU7cmlvcyBhY2Vzc2FyICZhZ3JhdmU7IGZyZW50ZSBkbyBzaXRlJzsKJGxhbmdbJ2RlZmF1bHRmcm9udHBhZ2UnXSA9ICdQcmltZWlyYSBwJmFhY3V0ZTtnaW5hIFBhZHImYXRpbGRlO28nOwokbGFuZ1snbGFzdGFjY2Vzc2VkcGFnZSddID0gJyZVYWN1dGU7bHRpbWEgcCZhYWN1dGU7Z2luYSBhY2Vzc2FkYSc7CiRsYW5nWydvdGhlcnBhZ2UnXSA9ICdPdXRyYSBwJmFhY3V0ZTtnaW5hOiAnOwokbGFuZ1snY2FwdGNoYV90aXRsZSddID0gJ0RpZ2l0ZSBvIHRleHRvIGRhIGltYWdlbSc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ro_RO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnVmFsb2FyZWEgc3BlY2lmaWNhdGEgcGVudHJ1ICVzIGVzdGUgZGVqYSBmb2xvc2l0YSBkZSBhbHQgdXRpbGl6YXRvcic7CiRsYW5nWyd1bmlxdWUnXSA9ICdVbmljJzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZV9maWVsZF92YWx1ZSddID0gJ1ZhbG9hcmVhIHNwZWNpZmljYXRhIHBlbnRydSAlcyAoJXMpIG51IGVzdGUgdW5pY2EnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ1NlIGZvcnRlYXphIGNhIHZhbG9yaWxlIGFjZXN0ZWkgcHJvcHJpZXRhdGkgc2EgZmllIHVuaWNlIHBlbnRydSB0b2F0ZSBjb250dXJpbGUgZGUgdXRpbGl6YXRvcmknOwokbGFuZ1snaGVscF9yZXR1cm5sYXN0J10gPSAnRm9sb3NpdCBwZW50cnUgZm9ybXVsYXJlbGUgZGUgYXV0ZW5yaWZpY2FyZSBzaSBkZWF1dGVudGlmaWNhcmUsIGFjZXN0IHBhcmFtZXRydSBkYWNhIGVzdGUgc3BlY2lmaWNhdCB2YSBpbmRpY2EgZmFwdHVsIGNhIHV0aWxpemF0b3J1bCBhciB0cmVidWkgc2EgZmllIHJlZGlyZWN0aW9uYXQgY2F0cmUgIHBhZ2luYSAodXJsLXVsKSB1bmRlIGVyYSB1dGlsaXphdG9ydWwgaW5haW50ZSBkZSBlZmVjdHVhcmVhIGFjdGl1bmlpLiBBY2VzdCBwYXJhbWV0cnUgdmEgc3VwcmFzY3JpZSBwcmVmZXJpbnRlbGUgZGUgcmVkaXJlY3Rpb25hcmUsIHNpIHBhcmFtZXRydWwgZGUgcmV0dXJudG8uJzsKJGxhbmdbJ2hlbHBfbm9pbmxpbmUnXSA9ICdGb2xvc2l0IGN1IHVudWwgZGluIGZvcm11bGFyZSwgYWNlc3QgcGFyYW1ldHJ1IHNwZWNpZmljYSBmYXB0dWwgY2EgZm9ybWVsZSBhciB0cmVidWkgc2EgbnUgZmllIHBsYXNhdGUgaW5saW5lLCBkdXBhIHRyaW1pdGVyZWEgZm9ybXVsYXJ1bHVpIHJlenVsdGF0dWwgdmEgaW5sb2N1aSBibG9jdWwgZGUgY29udGludXQgaW1wbGljaXQuJzsKJGxhbmdbJ3RpdGxlX3Jlc2V0X3Nlc3Npb24nXSA9ICdBdmVydGl6YXJlIFRpbWVvdXQgU2VzaXVuZSBBdXRlbnRpZmljYXJlJzsKJGxhbmdbJ21zZ19yZXNldF9zZXNzaW9uJ10gPSAnU2VzaXVuZWEgZGUgYXV0ZW50aWZpY2FyZSBlc3RlIHBlIGNhbGUgc2Egc2UgdGVybWluZSwgZGF0aSBjY2xpYyBwZSAmcXVvdDsmcXVvdDtPayZxdW90OyBwZW50cnUgYSBjb25maXJtYSBhY3Rpdml0YXRlYSBpbiBzaXRlLic7CiRsYW5nWydvayddID0gJ09LJzsKJGxhbmdbJ3Jlc2V0c2Vzc2lvbl90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFJlc2V0YXJlIFNlc2l1bmUnOwokbGFuZ1snaW5mb19uYW1lJ10gPSAnQWNlc3RhIGVzdGUgbnVtZWxlIGNhbXB1bHVpLCBzZSB2YSBmb2xvc2kgcGVudHJ1IGFwZWxhcmUgZGluIHNtYXJ0eS4gIFRyZWJ1aWUgc2EgY29udGluYSBudW1haSBjYXJhY3RlcmUgYWxmYW51bWVyaWNlIHNpIHVuZGVyc2NvcmUgKF8pLic7CiRsYW5nWyd2aXNpdG9yc190YWInXSA9ICdWaXppdGF0b3JpJzsKJGxhbmdbJ2ZldV9ncm91cHNfcHJvbXB0J10gPSAnU2VsZWN0YXRpIHVudWwgc2F1IG1haSBtdWx0ZSBncnVwdXJpIGNhcmUgcG90IHZlZGVhIGFjZWFzdGEgcGFnaW5hJzsKJGxhbmdbJ2Vycm9yX211c3RzZWxlY3RfZ3JvdXAnXSA9ICdVbiBncnVwIHRyZWJ1aWUgc2EgZmllIHNlbGVjdGF0JzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGVjdGF0aSB1bnVsJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICdBbiBzdGFydCc7CiRsYW5nWydlbmRfeWVhciddID0gJ0FuIHNmYXJzaXQnOwokbGFuZ1snZGF0ZSddID0gJ0RhdGEnOwokbGFuZ1sncHJvbXB0X3RodW1ibmFpbF9zaXplJ10gPSAnRGltZW5zaXVuZSBtaW5pYXR1cmEnOwokbGFuZ1snT25VcGRhdGVHcm91cCddID0gJ0RpbiBHcnVwIFV0aWxpemF0b3JpIE1vZGlmaWNhdCc7CiRsYW5nWydlcnJvcl90b29tYW55c2VsZWN0ZWQnXSA9ICdQcmVhIG11bHRpIHV0aWxpemF0b3JpIHN1bnQgc2VsZWN0YXRpIHBlbnRydSBvcGVyYXRpdW5pIGluIGdydXAuLi4uIFZhIHJ1Z2FtIHNhIHNlbGVjdGF0aSBtYXhpbSAyNTAnOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdTdW50ZXRpIHNpZ3VyIGNhIGRvcml0aSBzYSBzdGVyZ2V0aSB1dGlsaXphdG9yaWkgc2VsZWN0YXRpPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdTdGVyZ2VyZSBzZWxlY3RpYSc7CiRsYW5nWydwcm9tcHRfcmFuZG9tdXNlcm5hbWUnXSA9ICdHZW5lcmFyZSBudW1lIHV0aWxpemF0b3IgbGEgaW50YW1wbGFyZSBjYW5kIHNlIGFkYXVnYSB1dGlsaXphdG9yaSBub2knOwokbGFuZ1snbW9udGhzJ10gPSAnbHVuaSc7CiRsYW5nWydwcm9tcHRfZXhwaXJlYWdlJ10gPSAnUGVyaW9hZGEgaW1wbGljaXRhIGV4cGlyYXJlIHV0aWxpemF0b3InOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnU2V0YXJpIG5vdGlmaWNhcmUnOwokbGFuZ1sncHJvcGVydHlfc2V0dGluZ3MnXSA9ICdTZXRhcmkgcHJvcHJpZXRhdGUnOwokbGFuZ1sncmVkaXJlY3Rpb25fc2V0dGluZ3MnXSA9ICdTZXRhcmkgcmVkaXJlY3Rpb25hcmUnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ1NldGFyaSBnZW5lcmFsZSc7CiRsYW5nWydzZXNzaW9uX3NldHRpbmdzJ10gPSAnU2V0YXJpIHNlc2l1bmkgc2kgY29va2llLXVyaSc7CiRsYW5nWydmaWVsZF9zZXR0aW5ncyddID0gJ1NldGFyaSBjYW1wJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub25yZXF1aXJlZCddID0gJ1N0ZWd1bGV0dWwgbG9zdHVzZXJuYW1lIHBvYXRlIGZpIGZvbG9zaXQgbnVtYWkgbGEgY2FtcHVyaSBvYmxpZ2F0b3JpaSc7CiRsYW5nWydwcm9wX3RleHRhcmVhX3d5c2l3eWcnXSA9ICdTZSBwZXJtaXRlIGZvbG9zaXJlYSBlZGl0b3J1bHVpIHd5c2l3eWcgcGVudHJ1IGFjZWFzdGEgYXJpZSBkZSB0ZXh0JzsKJGxhbmdbJ2luZm9fY29va2llc3RvcmVtZW1iZXInXSA9ICc8c3Ryb25nPk5vdGE6IDwvc3Ryb25nPiBBY2Vhc3RhIGZvbG9zZXN0ZSBmdW5jdGlhIG1jcnlwdCBwZW50cnUgY3JpcHRhcmUsIHNpIG51IGF1IHB1dHV0IGZpIHN0ZXJzZSBkaW4gaW5zdGFsYXJlYSBkdW1uZWF2b2FzdHJhLiBMdWF0aSBsZWdhdHVyYSBjdSBhZG1pbmlzdHJhdG9ydWwgc2VydmVydWx1aS4nOwokbGFuZ1snZWRpdGluZ191c2VyJ10gPSAnRWRpdGFyZSB1dGlsaXphdG9yJzsKJGxhbmdbJ25vaW5saW5lJ10gPSAnTnUgc2UgcHVuIGlubGluZSBmb3JtdWxhcmVsZSc7CiRsYW5nWydpbmZvX2xvc3R1biddID0gJ0NsaWMgYWljaSBkYWNhIGF0aSB1aXRhdCBkZXRhbGlpbGUgZGUgYXV0ZW50aWZpY2FyZSc7CiRsYW5nWydpbmZvX2ZvcmdvdHB3J10gPSAnQ2xpYyBhaWNpIGRhY2EgYXRpIHVpdGF0IHBhcm9sYSc7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJ0NsaWMgYWljaSBwZW50cnUgaWVzaXJlIGRpbiBjb250JzsKJGxhbmdbJ2luZm9fY2hhbmdlc2V0dGluZ3MnXSA9ICdDbGljIGFpY2kgcGVudHJ1IGEgbW9kaWZpY2EgcGFyb2xhIHNhdSBhbHRlIGluZm9ybWF0aWknOwokbGFuZ1sndmlld3VzZXJfdGVtcGxhdGUnXSA9ICdWaXp1YWxpemFyZSB0ZW1wbGF0ZSB1dGlsaXphdG9yJzsKJGxhbmdbJ2V2ZW50J10gPSAnRXZlbmltZW50dCc7CiRsYW5nWydmZXVfZXZlbnRfbm90aWZpY2F0aW9uJ10gPSAnTm90aWZpY2FyZSBldmVuaW1lbnQgRkVVJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJ0FkcmVzYSBlLW1haWwgbm90aWZpY2FyZSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZS1tYWlsIG5vdGlmaWNhcmUnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9zdWJqZWN0J10gPSAnU3ViaWVjdCBlLW1haWwgbm90aWZpY2FyZSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9ucyddID0gJ05vdGlmaWNhcmkgZS1tYWlsJzsKJGxhbmdbJ09uTG9naW4nXSA9ICdMYSBhdXRlbnRpZmljYXJlJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnTGEgaWVzaXJlIGRpbiBjb250JzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ0xhIGV4cGlyYXJlIHNlc2l1bmUnOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnTGEgY3JlYXJlIGNvbnQgdXRpbGl6YXRvciBub3UnOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnTGEgc3RlcmdlcmUgdXRpbGl6YXRvcic7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdMYSBtb2RpZmljYXJlIHNldGFyaSB1dGlsaXphdG9yJzsKJGxhbmdbJ09uQ3JlYXRlR3JvdXAnXSA9ICdMYSBjcmVhcmUgZ3J1cCB1dGlsaXphdG9yaSc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnTGEgc3RlcmdlcmUgZ3J1cCB1dGlsaXphdG9yaSc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ0FtIGdhc2l0IHVuIG51bWUgZGUgdXRpbGl6YXRvciBjYXJlIHNlIHBvdHJpdmVzdGUgY3UgZGV0YWxpaWxlIGludHJvZHVzZSBkZSBkdW1uZWF2b2FzdHJhLic7CiRsYW5nWyd5b3VyX3VzZXJuYW1lX2lzJ10gPSAnTnVtZWxlIGR1bW5lYXZvYXN0cmEgZGUgdXRpbGl6YXRvciBlc3RlJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcG9zdG1zZyddID0gJ1ZhIHJlY29tYW5kYW0gc2EgcGFzdHJhdGkgYWNlc3RlIGluZm9ybWF0aWkgaW50ci11biBsb2Mgc2lndXIsIGRhciBpbiBhY2VsYXNpIHRpbXAgdW5kZSBzYSBsZSBnYXNpdGkgdXNvci4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX2NoYW5nZV9zZXR0aW5ncyddID0gJ0FsaWFzL0lEIHBhZ2luYSB1bmRlIHNhIHNlIHNhcmEgZHVwYSBzY2hpbWJhcmUgc2V0YXJpJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl92ZXJpZnlfY29kZSddID0gJ0FsaWFzL0lEIHBhZ2luYSB1bmRlIHNhIHNlIHNhcmEgZHVwYSBjb2R1bCBkZSB2ZXJpZmljYXJlIConOwokbGFuZ1snbG9zdHVuX2RldGFpbHNfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBkZXRhbGlpIG51bWUgdXRpbGl6YXRvciBwaWVyZHV0JzsKJGxhbmdbJ2xvc3R1bl9jb25maXJtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgY29uZmlybWFyZSBudW1lIHV0aWxpemF0b3IgcGllcmR1dCc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0Vyb2FyZTogTWFpIG11bHQgZGUgdW4gc2luZ3VyIGNvbnQgZGUgdXRpbGl6YXRvciBzZSBwb3RyaXZlc2MgY3UgZGF0ZWxlIHNwZWNpZmljYXRlJzsKJGxhbmdbJ2Vycm9yX2NhbnRmaW5kdXNlciddID0gJ0Vyb2FyZTogTnUgYW0gZ2FzaXQgbmljaSB1biB1dGlsaXphdG9yIGNhcmUgc2EgY29yZXNwdW5kYSc7CiRsYW5nWydlcnJvcl9ncm91cG5vdGZvdW5kJ10gPSAnRXJvYXJlOiBOdSBhIGZvc3QgZ2FzaXQgbmljaSB1biBncnVwIGN1IGFjZXN0IG51bWUnOwokbGFuZ1sncmVhZG9ubHknXSA9ICdOdW1haSBjaXRpcmUnOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ0NsYXNhIG1hbmlwdWxhdG9yIHV0aWxpemF0b3InOwokbGFuZ1snYWRtaW5fbG9nb3V0J10gPSAnU2NvcyBkaW4gY29udCBkZSBjYXRyZSBhZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdTZSBhZmlzZWF6YSBudW1haSB1dGlsaXphdG9yaWkgYXV0ZW50aWZpY2F0aSc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnU2NvYXRldGkgZGluIGNvbnQgYWNlcyB1cmlsaXphdG9yJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ1Byb3ByaWV0YXRpIHV0aWxpemF0b3InOwokbGFuZ1sndXNlcmhpc3RvcnknXSA9ICdJc3RvcmljIHV0aWxpemF0b3InOwokbGFuZ1snZXhwb3J0J10gPSAnRXhwb3J0YXJlJzsKJGxhbmdbJ2NsZWFyJ10gPSAnR29saXJlJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0V4cG9ydGFyZSBpc3RvcmljIHV0aWxpemF0b3JpIGNhdHJlIEFTQ0lJIGNhcmUgc3VudCBtYWNhcic7CiRsYW5nWydwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeSddID0gJ0dvbGlyZSBpbnJlZ2lzdHJhcmkgaXN0b3JpYyB1dGlsaXphdG9yIGNhcmUgc3VudCBtYWNhcic7CiRsYW5nWyd0aXRsZV9sb3N0dXNlcm5hbWUnXSA9ICdBdGkgdWl0YXQgZGF0ZWxlIGRlIGF1dGVudGlmaWNhcmU/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0V4cG9ydGFyZSBkZWZpbml0aWUgZ3J1cCAoc2kgcHJvcHJpZW50YXRpbGUpIGNhdHJlIFhNTCc7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeW1haW50ZW5hbmNlJ10gPSAnTWVudGVuYW50YSBpc3RvcmljIHV0aWxpemF0b3InOwokbGFuZ1sneWVzJ10gPSAnRGEnOwokbGFuZ1snbm8nXSA9ICdOdSc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICdhbCc7CiRsYW5nWydkYXRlX2FsbHJlY29yZHMnXSA9ICcqKiBGYXJhIExpbWl0YSAqKic7CiRsYW5nWydkYXRlX29uZWhvdXJvbGQnXSA9ICdPIG9yYSB2ZWNoaW1lJzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJzYgb3JlIHZlY2hpbWUnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnMTIgb3JlIHZlY2hpbWUnOwokbGFuZ1snZGF0ZV9vbmVkYXlvbGQnXSA9ICdPIHppIHZlY2hpbWUnOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnTyBzYXB0YW1hbmEgdmVjaGltZSc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnMiBzYXB0YW1hbmkgdmVjaGltZSc7CiRsYW5nWydkYXRlX29uZW1vbnRob2xkJ10gPSAnTyBsdW5hIHZlY2hpbWUnOwokbGFuZ1snZGF0ZV90aHJlZW1vbnRoc29sZCddID0gJzMgbHVuaSB2ZWNoaW1lJzsKJGxhbmdbJ2RhdGVfc2l4bW9udGhzb2xkJ10gPSAnNiBsdW5pIHZlY2hpbWUnOwokbGFuZ1snZGF0ZV9vbmV5ZWFyb2xkJ10gPSAnVW4gYW4gdmVjaGltZSc7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICdHcnVwYXJlIHNpIHNvcnRhcmUnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ0lucmVnaXN0cmFyaSBjYXJlIHNlIHBvdHJpdmVzYyBjdSBjcml0ZXJpaWxlJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnTnVtZSB1dGlsaXphdG9yIGRlc2NlbmRlbnQnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2FzYyddID0gJ051bWUgdXRpbGl6YXRvciBhc2NlbmRlbnQnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfZGVzYyddID0gJ0RhdGEgZGVzY2VuZGVudCc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdEYXRhIGFzY2VuZGVudCc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdUaXAgZXZlbmltZW50IGRlc2NlbmRlbnQnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdUaXAgZXZlbmltZW50IGFzY2VuZGVudCc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdBZHJlc2EgSVAgZGVzY2VuZGVudCc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2FzYyddID0gJ0FkcmVzYSBJUCBhc2NlbmRlbnQnOwokbGFuZ1snaW5mb19ub2hpc3RvcnlkZXRlY3RlZCddID0gJ051IGFzLWEgZGV0ZWN0YXQgaXN0b3JpYyc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0YXJlJzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0dydXBhcmUgZHVwYSBhZHJlc2EgSVAnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnXSA9ICdGaWx0cnUgdGlwIGV2ZW5pbWVudCc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdTZSBhZmlzZWF6YSBudW1haSBldmVuaW1lbnRlbGUgY2FyZSBzdW50IG1haSBwdXRpbiBkZTonOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xpbWl0YSBwYWdpbmEnOwokbGFuZ1snZm9yJ10gPSAncGVudHJ1JzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAnUmFwb3J0IGlzdG9yaWMgdXRpbGl6YXRvcmknOwokbGFuZ1sndW5rbm93biddID0gJ05lY3Vub3NjdXQnOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0FkcmVzYSBJUCc7CiRsYW5nWydwcm9tcHRfZXZlbnR0eXBlJ10gPSAnVGlwIGV2ZW5pbWVudCc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ0RhdGEnOwokbGFuZ1sncHJvbXB0X3JldHVybiddID0gJ0ludG9hcmNlcmUnOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ09wZXJhdGl1bmUgaW1wb3J0IGZpbmFsaXphdGEnOwokbGFuZ1sncHJvbXB0X2xpbmVzcHJvY2Vzc2VkJ10gPSAnTGluaWkgcHJvY2VzYXRlJzsKJGxhbmdbJ3Byb21wdF9lcnJvcnMnXSA9ICdFcm9yaSBpbnRhbG5pdGUnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ0lucmVnaXN0cmFyaSBhZGF1Z2F0ZSc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnTnUgYXUgZm9zdCBnYXNpdGUgcHJvcHJpZXRhdGkgcGVudHJ1IGdydXB1bCAlcyc7CiRsYW5nWydlcnJvcl9ub3Jlc3BvbnNlZnJvbXNlcnZlciddID0gJ051IGEgdmVuaXQgbmljaSB1biByYXNwdW5zIGRlIGxhIHNlcnZlcnVsIFNNVFAnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnRmlzaWVydWwgc3BlY2lmaWNhdCAoJXMpIG51IGEgcHV0aXQgZmkgZ2FzaXQnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ1ZhbG9hcmUgaW52YWxpZGEgcGVudHJ1IGNhbXB1bCBkcm9wZG93biBzYXUgbXVsdGlzZWxlY3QgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdDYW1wdWwgJXMgZGVwYXNlc3RlIGx1bmdpbWVhIG1heGltYSc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ0Vyb2FyZSBsYSBpbXBvcnQgKGxpbmlhICVzKTogJXMnOwokbGFuZ1snZXJyb3JfcHJvcGVydHlkZWZucyddID0gJ051IGF1IHB1dGl0IGZpIG9idGludXRlIGRlZmluaXRpaWxlIHByb3ByaWV0YXRpaSAoZXJvYXJlIGludGVybmEpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbyddID0gJ1Byb2JsZW1hIGxhIHNldGFyZSBpbmZvcm1hdGlpIHV0aWxpemF0b3InOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ051IGEgZm9zdCBnYXNpdGEgbyBjb2xvYW5hIGNhcmUgc2Egc2UgcG90cml2ZWFzY2EgY3UgY2FtcHVsIG9ibGlnYXRvcml1ICVzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wZXJ0aWVzJ10gPSAnTnUgYXUgZm9zdCBnYXNpdGUgcHJvcHJpZXRhdGkgcGVudHJ1IGdydXB1bCBzcGVjaWZpY2F0JzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVmb3JtYXQnXSA9ICdGaXNpZXJ1bCBzcGVjaWZpY2F0IHBlbnRydSBpbXBvcnQgbnUgZXN0ZSBpbiBmb3JtYXR1bCBjb3JlY3QnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ051IHMtYSBwdXR1dCBkZXNjaGlkZSBmaXNpZXJ1bCc7CiRsYW5nWydpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdCddID0gJzxoND5JbmZvcm1hdGlpIGZvcm1hdCBmaXNpZXI8L2g0Pg0KPHA+RmlzaWVydWwgZGUgaW1wb3J0IHRyZWJ1aWUgc2EgZmllIGluIGZvcm1hdCBBU0NJSSBzaSBzYSBmb2xvc2Vhc2NhIHZhbG9yaSBzZXBhcmF0ZSBwcmluIHZpcmd1bGEuIEZpZWNhcmUgbGluaWUgZGluIGZpc2llciAoY3UgZXhjZXB0aWEgbGluaWVpIGhlYWRlciwgZGlzY3V0YXRhIG1haSBqb3MpIHJlcHJlemludGEgbyBpbnJlZ2lzdHJhcmUgZGUgdXRpbGl6YXRvci4gT3JkaW5lYSBjYW1wdXJpbG9yIGRpbiBmaWVjYXJlIGxpbmllIHRyZWJ1aWUgc2EgZmllIGlkZW50aWNhLjwvcD4NCjxoNT5MaW5pZSBoZWFkZXI8L2g1Pg0KPHVsPg0KPGxpPlByaW1hIGxpbmllIGEgZmlzaWVydWx1aSB0cmVidWllIHNhIGluY2VhcGEgY3UgMiBjYXJhY3RlcmUgZGlleiAoXCMpLCBzaSBkYSBudW1lbGUgZmllY2FydWkgY2FtcCBkaW4gZmlzaWVyLiBOdW1lbGUgYWNlc3RvciBjYW1wdXJpIGVzdGUgc2VtbmlmaWNhdGl2LiBTdW50IHVuZWxlIGNhbXB1cmkgb2JsaWdhdG9yaWkgKHZlZGV0aSBtYWkgam9zKSwgc2kgYWx0ZSBudW1lIHRyZWJ1aWUgc2Egc2EgcG90cml2ZWFzY2EgY3UgbnVtZWxlIHByb3ByaWV0YXRpaSBhc29jaWF0ZSBncnVwdWx1aSBpbiBjYXJlIHNlIGFkYXVnYSB1dGlsaXphdG9yaWkuPC9saT4NCjxsaT5Qcm9jZXN1bCBkZSBpbXBvcnQgdmEgZXN1YSBkYWNhIGNhbXB1cmlsZSBkaW4gZmlzaWVydWwgZGUgaW1wb3J0IG51IHNlIHBvdHJpdmVzYyBjdSB0b2F0ZSBwcm9wcmlldGF0aWxlIG9ibGlnYXRvcmlpIGFzb2NpYXRlIGdydXB1bHVpIGluIGNhcmUgc2UgYWRhdWdhIHV0aWxpemF0b3JpaTwvbGk+DQo8bGk+ZmlzaWVydWwgZGUgaW1wb3J0IHBvYXRlIGNvbnRpbmUgY2FtcHVyaSByZXByZXplbnRhbmQgcHJvcHJpZXRhdGkgb3B0aW9uYWxlIGFsZSBncnVwdWx1aSBzcGVjaWZpY2F0LjwvbGk+DQo8bGk+UHJvY2VzdWwgZGUgaW1wb3J0IHZhIGlnbm9yYSBvcmljZSBjYW1wdXJpIGRpbiBmaXNpZXIgY2FyZSBudSBzdW50IGN1bm9zY3V0ZSBzYXUgY2FyZSBzZSBwb3RyaXZlc2MgY3UgcHJvcHJpZXRhdGkgY2FyZSBzdW50IDxlbT5pbmFjdGl2ZTwvZW0+IGluIGdydXB1bCBzcGVjaWZpY2F0LjwvbGk+DQo8L3VsPg0KPGg1PkRhdGUgY29sb2FuZTwvaDU+DQo8dWw+DQo8bGk+Q2FtcHVsIDxzdHJvbmc+dXNlcmlkPC9zdHJvbmc+IC0gSUQgdXRpbGl6YXRvci4gTyB2YWxvYXJlIGluIGFjZXN0IGNhbXAgdmEgaW5kaWNhIGNhIGZhY2V0aSBvIGFjdHVhbGl6YXJlLjwvbGk+DQo8bGk+Q2FtcHVsIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gLSBOdW1lbGUgZGUgdXRpbGl6YXRvciBkb3JpdC4NCiAgICA8cD5BY2VzdCBjYW1wIHRyZWJ1aWUgc2EgZXhpc3RlIGluIGxpbmlhIGhlYWRlciBzaSBpbiBmaWVjYXJlIGxpbmllIGRpbiBmaXNpZXJ1bCBkZSBpbXBvcnQuIEluZWdpc3RyYXJlYSB2YSBlc3VhIGRhY2EgdW4gdXRpbGl6YXRvciBjdSBhY2VsYXNpIG51bWUgZGUgdXRpbGl6YXRvciBleGlzdGEgZGVqYSBpbiBiYXphIGRlIGRhdGUuPC9wPjwvbGk+DQo8bGk+Q2FtcHVsIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gLSBQYXJvbGEgY2FyZSBzZSBzZXRhZXphIHBlbnRydSB1dGlsaXphdG9yPC9saT4NCjxsaT5DYW1wdWwgPHN0cm9uZz5jcmVhdGVkYXRlPC9zdHJvbmc+IC0gZGUgZmFjdXQ8L2xpPg0KPGxpPkNhbXB1bCA8c3Ryb25nPmV4cGlyZXM8L3N0cm9uZz4gLSBkZSBmYWN1dDwvbGk+DQo8bGk+Q2FtcHVsIDxzdHJvbmc+Z3JvdXBuYW1lPC9zdHJvbmc+IC0gR3J1cHVyaWxlIGluIGNhcmUgZG9yaXRpIHV0aWxpemF0b3J1bCBzYSBmaWUgZmFjdXQgbWVtYnJ1LiBEYWNhIG51IHN1bnQgY29tcGxldGF0ZSB0b2F0ZSBjYW1wdXJpbGUgY2VydXRlIGxhIGluc2VyYXJlL2FjdHVhbGl6YXJlIGlucmVnaXN0cmFyZSB2YSBlc3VhLiBWZWRldGkgbGEgQ2FtcHVyaSBNdWx0aXNlbGVjdCBtYWkgam9zIHBlbnRydSBzaW50YXhhLjwvbGk+DQo8bGk+Q2FtcHVyaSBEcm9wZG93bi9SYWRpbw0KICAgIDxwPlZhbG9hcmVhIHByb3ByaWV0YXRpbG9yIGRyb3Bkb3duIGludHItdW4gZmlzaWVyIGRlIGltcG9ydCBlc3RlIHJlcHJlemVudGF0YSBjYSBzaXJ1bCBjYWUgc2UgYWZpc2VhemEgaW4gY2FtcHVsIGRyb3Bkb3duIGRpbiBtb2R1bHVsIEZyb250RW5kVXNlcnMuPC9wPg0KPC9saT4NCjxsaT5DYW1wdXJpIE11bHRpc2VsZWN0DQogICAgPHA+Q2FtcHVyaWxlIE11bHRpc2VsZWN0IHN1bnQgY29uaXRudXRlIGluIGZpc2llciBjYSBvIGxpc3RhIHNlcGFyYXRhIGRlIHN0cmluZ3VyaSwgdW5kZSBmaWVjYXJlIHN0cmluZyByZXByZXppbnRhIHRleHR1bCBhZmlzYXQgaW4gbGlzdGEgbXVsdGlzZWxlY3Q8L3A+DQo8L2xpPg0KPGxpPkNhbXB1cmkgRGF0YQ0KICAgIDxwPlRyZWJ1aWUgc2EgZmllIGluIGZvcm1hdHVsIE1NLURELVlZWVk8L3A+DQo8L2xpPg0KPGxpPkNhbXB1cmkgSW1hZ2luZQ0KICAgIDxwPkltYWdpbmlsZSBzdW50IGNhbXB1cmkgYSBjYXJvciBudW1lIGRlIGNvbG9hbmEgc2UgcG90cml2ZXN0ZSBjdSBvIHByb3ByaWV0YXRlIGRlIHRpcCBpbWFnaW5lLiBEYWNhIGFjZXN0IGNhbXAgZXN0ZSBvIHBhcnRlIG9ibGlnYXRvcmllIGRpbiBncnVwdWwgZGUgZGVzdGluYXRpZSwgYXR1bmNpIG51bWVsZSBzcGVjaWZpY2F0IGluIGFjZXN0ZSBjb2xvYW5lIHRyZWJ1aWUgc2EgZXhpc3RlIGluIGZvbGRlcnVsIC91cGxvYWRzIGEgQ01TTVMuIERhY2EgaW1hZ2luZWEgbnUgZXhpc3RhLCBzaSBjYW1wdWwgZXN0ZSBvYmxpZ2F0b3JpdSwgYXR1bmNpIGlucmVnaXN0cmFyZWEgdmEgZXN1YS4gPC9wPjwvbGk+DQo8L3VsPg0KPGg1Pk5vdGU8L2g1Pg0KPHA+UHJvY2VzdWwgZGUgaW1wb3J0IGVzdGUgc3ViaWVjdCBhbCBsaW1pdGFyaWxvciBpbXB1c2UgZGUgY2VsIGNhcmUgb2ZlcmEgaG9zdGluZ3VsLCBjdW0gYXIgZmkgbGltaXRhcmlsZSBkZSBtZW1vcmllLCB0aW1wIGRlIHByb2Nlc2FyZSwgZGltZW5zaXVuZSB1cGxvYWQgZmlzaWVyLCBzaSByZXN0cmljdGlpIHNhZmUgbW9kZS4gT3JpY2FyZSBkaW4gYWNlc3RlIGxpbWl0YXJpIHBvdCBjYXV6YSBjYSBpbXBvcnR1bCBzYSBlc3VlemUuIENhIGF0YXJlIGluY2VyY2F0aSBzYSBwYXN0cmF0aSBmaXNpZXJlbGUgZGUgaW1wb3J0IGxhIGRpbWVuc2l1bmkgcmVkdXNlLCBzaSBzaW1wbGUgaW4gc3RydWN0dXJhLjwvcD4NCjxwPkRlc2kgYW0gZmFjdXQgb3JpY2UgZWZvcnQgcGVudHJ1IGEgbmUgYXNpZ3VyYSBjYSBudSBlc3RlIHBvc2liaWxhIGNvcnVwZXJlYSBiYXplaSBkZSBkYXRlLCBlc3RlIGRlIHByZWZlcmF0IHNhIGVmZWN0dWF0aSB1biBiYWNrLXVwIGFsIGJhemVpIGRlIGRhdGUgaW5haW50ZSBkZSBlZmVjdHVhcmVhIGltcG9ydHVsdWkuPC9wPg0KPHA+RGF0ZWxlIGV4cG9ydGF0ZSBzdW50IGluIGFjZWxhc2kgZm9ybWF0IGNhIGNlbCBjZXJ1dCBwZW50cnUgaW1wb3J0LjwvcD4NCjxoNT5FeGVtcGx1PC9oNT4NCjxwcmU+DQojI3VzZXJuYW1lLGZpcnN0X25hbWUsbGFzdF9uYW1lLGVtYWlsLGNpdHksc3RhdGUsY291bnRyeSx6aXANCnVzZXIxLHRlc3QsdXNlcix1c2VyMUBzb21lZG9tYWluLmNvbSxzb21ld2hlcmUsVFgsVVMsMTIzNDUNCjwvcHJlPg0KJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRkZXN0Z3JvdXAnXSA9ICdJbXBvcnRhcmUgdXRpbGl6YXRvcmkgaW4gYWNlc3QgZ3J1cCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdJbnRyb2R1Y2VyZSBmaXNpZXIgQ1NWJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR4bWxmaWxlJ10gPSAnSW50cm9kdWNlcmUgZmlzaWVyIFhNTCc7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcnMnXSA9ICdFeHBvcnRhcmUgdXRpbGl6YXRvcmknOwokbGFuZ1sncHJvbXB0X2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0YXJlIHV0aWxpemF0b3JpJzsKJGxhbmdbJ3Byb21wdF9jbGVhciddID0gJ0dvbGlyZSc7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ0NhbGUgZGVzdGluYXRpZSBpbWFnaW5lJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnQSBhcGFydXQgbyBwcm9ibGVtYSBjdSB1biB1cGxvYWQgbGlwc2EgKGRhciBvYmxpZ2F0b3JpdSknOwokbGFuZ1snZXJyb3JfYmFkX3htbCddID0gJ0Zpc2llcnVsIFhNTCBmdXJuaXphIG51IGEgcHV0dXQgZmkgcGFyc2F0JzsKJGxhbmdbJ2Vycm9yX25vdGVtcHR5Z3JvdXAnXSA9ICdOdSBzZSBwb2F0ZSBzdGVyZ2UgdW4gZ3J1cCBjYXJlIGFyZSBpbmNhIHV0aWxpemF0b3JpJzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdBY2VzdCB1dGlsaXphdG9yIGVzdGUgZGVqYSBhdXRlbnRpZmljYXQnOwokbGFuZ1snZXJyb3JfY2FwdGNoYW1pc21hdGNoJ10gPSAnVGV4dHVsIGRpbiBpbWFnaW5lIG51IGEgZm9zdCBpbnRyb2R1cyBjb3JlY3QnOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ1NlIHBlcm1pdGUgY2EgdXRpbGl6YXRvcmlpIHNhIHNlIGF1dGVudGlmaWNlIG1haSBtdWx0IGRlIG8gc2luZ3VyYSBkYXRhJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpaSBmaXNpZXJlIGltYWdpbmUgY2FyZSBzdW50IHBlcm1pc2UgbGEgdXBsb2FkIHBlbnRydSB1dGlsaXphdG9yaSc7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlVXNlciddID0gJzxoMz5PbkRlbGV0ZVVzZXI8aDM+DQo8cD5VbiBldmVuaW1lbnQgZ2VuZXJhdCBjYW5kIHVuIHV0aWxpemF0b3IgZXN0ZSBzdGVyczwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gTnVtZWxlIGRlIHV0aWxpemF0b3I8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gSUQgdXRpbGl6YXRvcjwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5VbiBldmVuaW1lbnQgZ2VuZXJhdCBjYW5kIHVuIHV0aWxpemF0b3IgZXN0ZSBjcmVhdDwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gTnVtZWxlIGRlIHV0aWxpemF0b3I8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gSUQgdXRpbGl6YXRvcjwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5VbiBldmVuaW1lbnQgZ2VuZXJhdCBjYW5kIHVuIHV0aWxpemF0b3IgZXN0ZSBhY3R1YWxpemF0IChmaWUgZWwgc2luZ3VyIGZpZSBkZSB1biBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIE51bWVsZSBkZSB1dGlsaXphdG9yPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIElEIHV0aWxpemF0b3I8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZUdyb3VwJ10gPSAnPGgzPk9uQ3JlYXRlR3JvdXA8aDM+DQo8cD5VbiBldmVuaW1lbnQgZ2VuZXJhdCBjYW5kIHVuIGdydXAgZXN0ZSBjcmVhdDwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBOdW1lbGUgZ3J1cHVsdWk8L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gRGVzY3JpZXJlIGdydXA8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gSUQgZ3J1cDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlR3JvdXAnXSA9ICc8aDM+T25EZWxldGVHcm91cDxoMz4NCjxwPlVuIGV2ZW5pbWVudCBnZW5lcmF0IGNhbmQgdW4gZ3J1cCBlc3RlIHN0ZXJzPC9wPg0KPGg0PlBhcmFtZXRyaTwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIE51bWVsZSBncnVwdWx1aTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBJRCBncnVwPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dpbiddID0gJzxoMz5PbkxvZ2luPGgzPg0KPHA+VW4gZXZlbmltZW50IGdlbmVyYXQgY2FuZCB1biB1dGlsaXphdG9yIHNlIGF1dGVudGlmaWNhPC9wPg0KPGg0PlBhcmFtZXRyaTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmlkPC9lbT4gLSBJRC11bCB1dGlsaXphdG9ydWx1aSBjYXJlIHMtYSBhdXRlbnRpZmljYXQ8L2xpPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gTnVtZWxlIHV0aWxpemF0b3J1bHVpIGNhcmUgcy1hIGF1dGVudGlmaWNhdDwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBBZHJlc2EgSVAgYSBjbGllbnR1bHVpPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxwPlVuIGV2ZW5pbWVudCBnZW5lcmF0IGNhbmQgdW4gdXRpbGl6YXRvciBpZXNlIGRpbiBjb250PC9wPg0KPGg0PlBhcmFtZXRyaTwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBOdW1lbGUgZGUgdXRpbGl6YXRvciBhbCBjZWx1aSBjYXJlIGEgaWVzaXQgZGluIGNvbnQ8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gSUQgdXRpbGl6YXRvcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25FeHBpcmVVc2VyJ10gPSAnPHA+VW4gZXZlbmltZW50IGdlbmVyYXQgY2FuZCBvIHNlc2l1bmUgdXRpbGl6YXRvciBleHBpcmE8L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIE51bWVsZSBkZSB1dGlsaXphdG9yIHBlbnRydSBjYXJlIGEgZXhwaXJhdCBzZXNpdW5lYTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBJRCB1dGlsaXphdG9yPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ2luJ10gPSAnVW4gZXZlbmltZW50IGdlbmVyYXQgY2FuZCB1biB1dGlsaXphdG9yIHNlIGF1dGVudGlmaWNhIGluIHNpdGUnOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ1VuIGV2ZW5pbWVudCBnZW5lcmF0IGNhbmQgdW4gdXRpbGl6YXRvciBpZXNlIGRpbiBjb250JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnVW4gZXZlbmltZW50IGdlbmVyYXQgY2FuZCBvIHNlc2l1bmUgdXRpbGl6YXRvciBhIGV4cGlyYXQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZVVzZXInXSA9ICdVbiBldmVuaW1lbnQgZ2VuZXJhdCBjYW5kIHVuIGNvbnQgbm91IHV0aWxpemF0b3IgZXN0ZSBjcmVhdCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ1VuIGV2ZW5pbWVudCBnZW5lcmF0IGNhbmQgaW5mb3JtYXRpaWxlIHVudWkgdXRpbGl6YXRvciBzdW50IGFjdHVhbGl6YXRlJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVVc2VyJ10gPSAnVW4gZXZlbmltZW50IGdlbmVyYXQgY2FuZCB1biBjb250IHV0aWxpemF0b3IgZXN0ZSBzdGVycyc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlR3JvdXAnXSA9ICdVbiBldmVuaW1lbnQgZ2VuZXJhdCBjYW5kIHVuIGdydXAgdXRpbGl6YXRvcmkgZXN0ZSBjcmVhdCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdVbiBldmVuaW1lbnQgZ2VuZXJhdCBjYW5kIHVuIGdydXAgdXRpbGl6YXRvcmkgZXN0ZSBhY3R1YWxpemF0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ1VuIGV2ZW5pbWVudCBnZW5lcmF0IGNhbmQgdW4gZ3J1cCB1dGlsaXphdG9yaSBlc3RlIHN0ZXJzJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdHcnVwIGJhY2tlbmQnOwokbGFuZ1snaW5mb19zdGFyJ10gPSAnKiBVcm1hdG9hcmVsZSBtYWNyby11cmkgcG90IGZpIGZvbG9zaXRlIGluIGFjZXN0ZSBjYW1wdXJpOiB7JHVzZXJuYW1lfSx7JGdyb3VwfS4gQ2FuZCBzZSBmb2xvc2VzdGUgbWFjcm8tdWwgeyRncm91cH0sIHNpc3RlbXVsIHZhIGlubG9jdWkgY3UgbnVtZWxlIHByaW11bHVpIGdydXAgZGluIGNhcmUgZmFjZSBwYXJ0ZSB1dGlsaXphdG9ydWwsIHNpIHZhIHJlZGlyZWN0aW9uYSBjYXRyZSBhY2VhIHBhZ2luYS4nOwokbGFuZ1snaW5mb19hZG1pbl9wYXNzd29yZCddID0gJ0VkaXRhdGkgYWNlc3QgY2FtcCBwZW50cnUgYSByZXNldGEgcGFyb2xhIHV0aWxpemF0b3J1bHVpJzsKJGxhbmdbJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnXSA9ICdFZGl0YXRpIGFjZXN0IGNhbXAgcGVudHJ1IGEgcmVzZXRhIHBhcm9sYSB1dGlsaXphdG9ydWx1aSc7CiRsYW5nWydlcnJvcl91c2VybmFtZV9leGlzdHMnXSA9ICdVbiB1dGlsaXphdG9yIGN1IGFjZWxhc2kgbnVtZSB1dGlsaXphdG9yIGV4aXN0YSBkZWphJzsKJGxhbmdbJ25vY3N2cmVzdWx0cyddID0gJ051IGF1IGZvc3Qgb2J0aW51dGUgcmV6dWx0YXRlIGRpbiBleHBvcnR1bCBDU1YnOwokbGFuZ1sncHJvbXB0X3VuZmxkbGVuJ10gPSAnTHVuZ2ltZSBjYW1wIG51bWUgdXRpbGl6YXRvcic7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdMdW5naW1lIGNhbXAgcGFyb2xhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICdMdW5naW1pIE1pbi9NYXggcGVudHJ1IHBhcm9sYSBpbnZhbGlkZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWVsZW5ndGhzJ10gPSAnTHVuZ2ltaSBNaW4vTWF4IHBlbnRydSBudW1lIHV0aWxpemF0b3IgaW52YWxpZGUnOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ0FkcmVzYSBkZSBlLW1haWwgaW52YWxpZGEnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdOdSBhbSBnYXNpdCBvIGFkcmVzYSBkZSBlLW1haWwgcGVudHJ1IGFjZXN0IGNvbnQnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNlZXR0aW5naW5mbyddID0gJ1Byb2JsZW1hIGxhIHNldGFyZSBpbmZvcm1hdGlpIHV0aWxpemF0b3InOwokbGFuZ1snZXJyb3Jfc2V0dGluZ3Byb3BlcnR5J10gPSAnUHJvYmxlbWEgbGEgc2V0YXJlIHByb3ByaWV0YXRlJzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdVdGlsaXphdG9yIGFkYXVnYXQgJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdVdGlsaXphdG9yIHN0ZXJzIHVpZD0lcyc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ1Byb3ByaWV0YXRlJzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWYWxvYXJlIChleHByZXNpZSByZWd1bGFyYSknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdBVEVOVElFOiBBY2VzdGUgY2FtcHVyaSBhZmVjdGVhemEgZGltZW5zaXVuZWEgY2FtcHVyaWxvciBkZSBpbnRyb2R1Y2VyZSBwZW50cnUgZm9ybXVsYXJlLiBTY2FkZXJlYSBhY2VzdHVpIG51bWFyIHBlIHVuIHNpdGUgZXhpc3RlbnQgcG9hdGUgZmkgY29udHJpbmRpY2F0YSc7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnU3VudGV0aSBzaWd1ciBjYSBkb3JpdGkgc2EgYWp1c3RhdGkgcHJlZmVyaW50ZWxlIG1vZHVsdWx1aT8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0FkcmVzYSBkZSBlLW1haWwgZm9sb3NpdGEgZGVqYSc7CiRsYW5nWydwcm9tcHRfdXNlY29va2llc3RvcmVtZW1iZXInXSA9ICdTZSBmb2xvc2VzYyBjb29raWUtdXJpIHBlbnRydSBwYXN0cmFyZSBkZXRhbGlpIGF1dGVudGlmaWNhcmUnOwokbGFuZ1sncHJvbXB0X2Nvb2tpZW5hbWUnXSA9ICdOdW1lIGNvb2tpZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJ1NlIHBlcm1pdGUgZm9sb3NpcmVhIGFkcmVzZWxvciBkZSBlLW1haWwgZHVwbGljYXRlJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCddID0gJ0FkcmVzYSBkZSBlLW1haWwgZXN0ZSBudW1lbGUgZGUgdXRpbGl6YXRvcic7CiRsYW5nWydpbmZvX2Nvb2tpZV9rZWVwYWxpdmUnXSA9ICdTZSBpbmNlYXJjYSBwYXN0cmFyZWEgYXV0ZW50aWZpY2FyaWxvciBpbiB2aWF0YSBwcmluIGZvbG9zaXJlYSB1bnVpIGNvb2tpZSA8ZW0+KGNvb2tpZS11bCBlc3RlIHJlc2V0YXQgbGEgYWN0aXZpdGFlIGluIHdlYnNpdGUpPC9lbT4nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKFNlIHBlcm1pdGUgZXhpc3RlbnRhIG1haSBtdWx0b3IgdXRpbGl6YXRvcmkgY3UgYWNlZWFzaSBhZHJlc2EgZGUgZS1tYWlsKSc7CiRsYW5nWydpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnKGFkcmVzYSBkZSBlLW1haWwgYSB1dGlsaXphdG9yaWxvciBlc3RlIGZvbG9zaXRhIGNhIG51bWUgZGUgdXRpbGl6YXRvciAtLSBudSBhY3RpdmF0aSBhY2Vhc3Rhb3B0aXVuZSBpbXByZXVuYSBjdSAmcXVvdDtTZSBwZXJtaXRlIGZvbG9zaXJlYSBhZHJlc2Vsb3IgZGUgZS1tYWlsIGR1cGxpY2F0ZSZxdW90OyEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnU2UgcGVybWl0ZSByZW1pbmRlcmUgZHVwbGljYXQgcGVudHJ1ICZxdW90O3JlY3VwZXJhcmUgcGFyb2xhJnF1b3Q7Pyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoU2UgcGVycm1pdGUgdXRpbGl6YXRvcmlsb3Igc2EgY2VhcmEgbyBub3VhIHBhcm9sYSwgY2hpYXIgZGFjYSBudSBhdSBhY3Rpb25hdCBsYSBvIGNlcmVyZSBzaW1pbGFyYSBleGlzdGVudGEgZGVqYSknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdTZSBmb2xvc2VzYyBwZXJtaXNpdW5pIHNwZWNpZmljZSBwZW50cnUgVXRpbGl6YXRvciBGcm9udC1lbmQ/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhJbiBtb2Qgbm9ybWFsLCBwZXJtaXNpdW5pbGUgcGVudHJ1IHV0aWxpemF0b3JpaSBGRSBzdW50IGFjZWxlYXNpIGNhIHNpIHBlcm1pc2l1bmlsZSBlY2hpdmFsZW50ZSBkaW4gYXJpYSBkZSBhZG1pbmlzdHJhcmVjdW0gYXIgZmkgQWRhdWdhcmUgVXRpbGl6YXRvciwgQWRhdWdhcmUgR3J1cCwgZXRjLiBEYWNhIHNlbGVjdGF0aSBhY2VzdGEgb3B0aXVuZSwgdm9yIGZpIHBlcm1pc2l1bmkgc2VwYXJhdGUgcGVudHJ1IHV0aWxpemF0b3JpaSBGRS4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdOdSBhIHB1dHV0IGZpIGdhc2l0IGZpc2llcnVsIHVwbG9hZGF0IChlcm9hcmUgaW50ZXJuYSknOwokbGFuZ1snZXJyb3JfcHJvYmxlbV91cGxvYWQnXSA9ICdBIGZvc3QgbyBwcm9ibGVtYSBjdSBmaXNpZXJ1bCB1cGxvYWRhdC4gSW5jZXJjYXRpIGRpbiBub3UnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnTnUgYXRpIGludHJvZHVzIHVuIG51bWUgZGUgdXRpbGl6YXRvcic7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdOdSBhdGkgaW50cm9kdXMgYWRyZXNhIGRlIGUtbWFpbCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdOdSBhdGkgaW50cm9kdXMgcGFyb2xhJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dvdXQnXSA9ICdJZXNpcmUgZGluIGNvbnQgdXRpbGl6YXRvciBGcm9udGVuZCc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nZ2VkaW4nXSA9ICdBdXRlbnRpZmljYXJlIHV0aWxpemF0b3IgRnJvbnRlbmQnOwokbGFuZ1snZWRpdHByb3BfaW5mb21zZyddID0gJzxmb250IGNvbG9yPSZxdW90O3JlZCZxdW90Oz48Yj5GSVRJIFBSRUNBVVQ8L2I+IGNhbmQgbW9kaWZpY2F0aSBwcm9wcmlldGF0aSBleGlzdGVudGUgY2FyZSBzdW50IGFsb2NhdGUgdW5vciBncnVwdXJpLCBwdXRldGkgc2EgY3JlYXRpIHByb2JsZW1lIHNhdSBjaGlhciBzYSBzdHJpY2F0aSB1biBzaXRlIGV4aXN0ZW50IDxpPihpbiBtb2Qgc3BlY2lhbCBkYWNhIHJlZHVjZXRpIGx1bmdtZWEgY2FtcHVyaWxyLCBldGMpPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdBY2Vhc3RhIGZ1bmN0aWUgbnUgZnVuY3Rpb25lYXphIGluIGZlcmVzdHJlJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdOdSBjcmVhdGkgbyBwcm9wcmlldGF0ZSBwZW50cnUgbnVtZSB1dGlsaXphdG9yIHNhdSBwYXJvbGEgcGVudHJ1IGNhIGFjZXN0ZWEgc3VudCBwYXJ0ZSBpbnRlZ3JhbnRhIGRpbiBtb2R1bHVsIEZyb250RW5kVXNlcnMnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0V4cG9ydGFyZSB1dGlsaXphdG9yaSBpbiBDU1YnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRXhwb3J0YXJlJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydGFyZSc7CiRsYW5nWydhZG1pbiddID0gJ0FkbWluaXN0cmFyZSc7CiRsYW5nWydlZGl0cHJvcCddID0gJ0VkaXRhcmUgUHJvcGlldGF0ZTogPGVtPiVzPC9lbT4nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTHVuZ2ltZSBtYXhpbWEnOwokbGFuZ1snY3JlYXRlZCddID0gJ0NyZWF0JzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRhcmUgZHVwYSc7CiRsYW5nWydzb3J0J10gPSAnU29ydGFyZSc7CiRsYW5nWyd1c2Vyc2luZ3JvdXAnXSA9ICdVdGlsaXphdG9yaSBpbiBncnVwdWwgLSBncnVwdXJpbGUgc2VsZWN0YXQoZSknOwokbGFuZ1sndXNlcmxpbWl0J10gPSAnTGltaXRhcmUgcmV6dWx0YXRlIGxhJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxmaWVsZCddID0gJ051IHMtYSBnYXNpdCB1biBjYW1wIGUtbWFpbCBwZW50cnUgYWNlc3QgdXRpbGl6YXRvci4gRSBwb3NpYmlsIHNhIHRyZWJ1aWFzY2Egc2EgY29udGFjdGF0aSBhZG1pbmlzdHJhdG9ydWwgc2lzdGVtdWx1aSc7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ0FsaWFzL0lEIHBhZ2luYSBwZW50cnUgZm9ybXVsYXIgcmVjdXBlcmFyZSBwYXJvbGEnOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzX3BhZ2UnXSA9ICdBbGlhcy9JRCBwYWdpbmEgcGVudHJ1IGZvcm11bGFyIG1vZGlmaWNhcmUgc2V0YXJpJzsKJGxhbmdbJ3Byb21wdF9sb2dpbl9wYWdlJ10gPSAnQWxpYXMvSUQgcGFnaW5hIHVuZGUgc2Ugc2FyZSBkdXBhIGF1dGVudGlmaWNhcmUgKic7CiRsYW5nWydwcm9tcHRfbG9nb3V0X3BhZ2UnXSA9ICdBbGlhcy9JRCBwYWdpbmEgdW5kZSBzZSBzYXJlIGR1cGEgaWVzaXJlIGRpbiBjb250IConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnT3JkaW5lIHNvcnRhcmUnOwokbGFuZ1sncHJvbXB0X251bXJlc2V0cmVjb3JkJ10gPSAnVW4gbnVtYXIgZGUgdXRpbGl6YXRvcmkgc3VudCBpbiB0aW1wdWwgcHJvY2VzdWx1aSBkZSByZWN1cGVyYXJlIHBhcm9sZSB1aXRhdGUuIE51bWFydWwgY3VyZW50IGVzdGU6JzsKJGxhbmdbJ3JlbW92ZTF3ZWVrJ10gPSAnSW5sYXR1cmFyZSB0b2F0ZSBpbnRyYXJpbGUgbWFpIHZlY2hpIGRlIG8gc2FwdGFtYW5hJzsKJGxhbmdbJ3JlbW92ZTFtb250aCddID0gJ0lubGF0dXJhcmUgdG9hdGUgaW50cmFyaWxlIG1haSB2ZWNoaSBkZSBvIGx1bmEnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnSW5sYXR1cmFyZSB0b2F0ZSBpbnRyYXJpbGUnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1N1bnRldGkgc2lndXI/JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjb2RlJ10gPSAnQSBmb3N0IGludHJvZHVzIHVuIGNvbnQgaW52YWxpZCwgaW5jZXJjYXRpIGRpbiBub3UnOwokbGFuZ1snZXJyb3JfdGVtcGNvZGVub3Rmb3VuZCddID0gJ1VuIGNvZCB0ZW1wb3JhciBwZW50cnUgSUQtdWwgZHVtbmVhdm9hc3RyYSBkZSB1dGlsaXphdG9yIG51IGEgcHV0dXQgZmkgZ2FzaXQgaW4gYmF6YSBkZSBkYXRlJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3ZlcmlmeXRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9sb3NpdCBwZW50cnUgYWZpc2FyZSBmb3JtdWxhciB2ZXJpZmljYXJlJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX2VtYWlsdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb2xvc2l0IHBlbnRydSBlLW1haWwgcmVjdXBlcmFyZSBwYXJvbGEnOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ0R1bW5lYXZvYXN0cmEgc2F1IGFsdGNpbmV2YSBhIGluaXRpYXQgZGVqYSBvIG9wZXJhdGl1bmUgZGUgcmVjdXBlcmFyZSBwYXJvbGEgcGVudHJ1IGFjZXN0IGNvbnQuIFZlcmlmaWNhdGkgY2FzdXRhIGRlIGUtbWFpbCwgYXIgdHJlYnVpIHNhIGZpIHByaW1pdCBpbnN0cnVjdGl1bmkgcGVudHJ1IHJlc2V0YXJlYSBwYXJvbGVpIGluIGluYm94JzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdFcm9hcmUgbGEgYmF6YSBkZSBkYXRlJzsKJGxhbmdbJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCddID0gJ1ByaW1pdGkgYWNlc3QgbWVzYWogZGVvYXJlY2UgY2luZXZhIChkdW1uZWF2b2FzdHJhPykgYSBzcHVzIHNpdGUtdWx1aSBub3N0cnUgY2EgYXRpIHBpZXJkdXQgcGFyb2xhLiBEYWNhIGVzdGUgYXNhLCBjaXRpdGkgaW5zdHJ1Y3RpdW5pbGUgZGUgbWFpIGpvcy4gRGFjYSBudSBhdmV0aSBuaWNpIG8gbGVnYXR1cmEsIGF0dW5jaSBwdXRldGkgc3RlcmdlIGN1IGluY3JlZGVyZSBhY2VzdCBlLW1haWwgc2kgdmEgbXVsdHVtaW0gcGVudHJ1IHRpbXB1bCBkdW1uZWF2b2FzdHJhLic7CiRsYW5nWydwcm9tcHRfY29kZSddID0gJ0NvZCc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdVcm1hdG9ydWwgY29kIGEgZm9zdCBnZW5lcmF0IGxhIGludGFtcGxhcmUgcGVudHJ1IGEgdmVyaWZpY2EgY29udHVsIGRlIHV0aWxpemF0b3IuIENhbmQgdmV0aSBkYSBjbGljIHBlIGxpbmstdWwgZGUgbWFpIGpvcyB2ZXRpIHZlZGVhIHVuIGNhbXAgdW5kZSB0cmVidWllIHNhIGludHJvZHVjZXRpIGFjZXN0IGNvZC4gIGluIG1vZCBub3JtYWwgY2FtcHVsIGVzdGUgcHJlLWNvbXBsZXRhdCBwZW50cnUgZHVtbmVhdm9hc3RyYSwgZGFyIGluIGNheiBjYSBudSBlc3RlIGFzYSBjb2R1bCBlc3RlOic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0RhbmQgY2xpYyBwZSB1cm1hdG9ydWwgbGluayB2ZXRpIG1lcmdlIGluIHNpdGUgdW5kZSBwdXRldGkgc2EgaW50cm9kdWNldGkgY29kdWwgZGUgbWFpIHN1cyBwZW50cnUgYSByZXNldGEgcGFyb2xhOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnUGFyb2xhIHVpdGF0YSc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ051IGEgZm9zdCBnYXNpdCBtb2R1bHVsIENNU01haWxlcic7CiRsYW5nWydpbmZvX2ZvcmdvdHB3bWVzc2FnZXNlbnQnXSA9ICdVbiBlLW1haWwgYSBmb3N0IHRyaW1pcyBsYSAlcyBjdSBpbnN0cnVjdGl1bmkgcGVudHJ1IHJlc2V0YXJlYSBwYXJvbGVpLiBWYSBtdWx0dW1pbSc7CiRsYW5nWydsb3N0cHdfbWVzc2FnZSddID0gJ1NlIHBhcmUgY2EgYXRpIHVpdGF0IHNhdSBhdGkgcGllcmR1dCBwYXJvbGEuIEVpIGJpbmUsIGludHJvZHVjZXRpIG51bWVsZSBkZSB1dGlsaXphdG9yIGFpY2ksIHNpIGRhY2EgaWwgZ2FzaW0gdmEgdm9tIHRyaW1pdGUgdW4gZS1tYWlsIGN1IGluc3RydWN0aXVuaSBwZW50cnUgcmVzZXRhcmVhIHBhcm9sZWkuJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUtdXJpIHBhcm9sYSB1aXRhdGEnOwokbGFuZ1snbG9zdHVzZXJuYW1lX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgbnVtZSB1dGlsaXphdG9yIHVpdGF0JzsKJGxhbmdbJ2Vycm9yX3Byb3Bub3Rmb3VuZCddID0gJ1Byb3ByaWF0YXRlYSAlcyBudSBhIGZvc3QgZ2FzaXRhJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdwcm9wcmlldGF0aSBnYXNpdGUnOwokbGFuZ1snYWRkcHJvcCddID0gJ0FkYXVnYXJlIHByb3ByaWV0YXRlJzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICdVbiBjYW1wIG9ibGlnYXRvcml1ICglcykgZXN0ZSBnb2wnOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdJbnRyb2R1Y2V0aSBhaWNpIHBhcm9sYSBub3VhIHBlbnRydSBhIHNjaGltYmEgcGFyb2xhIGR1bW5lYXZvYXN0cmEnOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdOdSBwYXJldGkgc2EgZml0aSBhdXRlbnRpZmljYXQnOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ1NldGFyaSc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ0lucmVnaXN0cmFyZSc7CiRsYW5nWydlcnJvcl9hY2NvdW50ZXhwaXJlZCddID0gJ0FjZXN0IGNvbnQgYSBleHBpcmF0JzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdGb3JtYXRhcmUgYWRyZXNhIGRlIGUtbWFpbCBncmVzaXRhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRleHBpcnlkYXRlJ10gPSAnRGF0YSBleHBpcmFyZSBpbnZhbGlkYS4gUG9hdGUgZmkgbGVnYXRhIGRlIHNpc3RlbS4gSW5jZXJjYXRpIHNhIHB1bmV0aSB1biBhbiBtYWkgYXByb2FwZSBpbiB0aW1wJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdFcm9hcmUgbGEgc2V0YXJlIHByb3ByaWV0YXRlICVzIHBlbnRydSB1dGlsaXphdG9ydWwgJHMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGdyb3VwaWQnXSA9ICdJRCBncnVwIGludmFsaWQgJXMnOwokbGFuZ1snaGlkZGVuZmllbGRtYXJrZXInXSA9ICdNYXJjYWogY2FtcCBhc2N1bnMnOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0N1bG9hcmUgY2FtcCBhc2N1bnMnOwokbGFuZ1snaGlkZGVuJ10gPSAnQXNjdW5zJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZW5hbWUnXSA9ICdPIHByb3ByaWV0YXRlIGN1IGFjZXN0IG51bWUgZXN0ZSBkZWphIGRlZmluaXRhJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ05pY2lvIHByb3ByaWV0YXRlIGRlZmluaXRhJzsKJGxhbmdbJ2Vycm9yX25vcmVsYXRpb25zJ10gPSAnTmNpbyBwcm9wcmlldGF0ZSBudSBhIGZvc3Qgc2VsZWN0YXRhIHBlbnRydSBhY2VzdCBncnVwJzsKJGxhbmdbJ25vZ3JvdXBzJ10gPSAnTmljaSB1biBncnVwIG51IGEgZm9zdCBkZWZpbml0JzsKJGxhbmdbJ2dyb3Vwc2ZvdW5kJ10gPSAnR3J1cHVyaSBnYXNpdGUnOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ0NhbGl0YXRlYSBkZSBtZW1icnUgaW4gY2VsIHB1dGluIHVuIGdydXAgZXN0ZSBvYmxpZ2F0b3JpZSc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJ10gPSAnU2UgY2VyZSBhcGFydGVuZW50YSBsYSBtaW5pbSB1biBncnVwJzsKJGxhbmdbJ2JhY2snXSA9ICdJbmFwb2knOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzIGVzdGUgdW4gY2FtcCBvYmxpZ2F0b3JpdSc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnTWFyY2FyZSBjYW1wdXJpIG9ibGlnYXRvcmlpIGN1JzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ0V2aWRlbnRpZXJlIGNhbXB1cmkgb2JsaWdhdG9yaWkgaW4nOwokbGFuZ1snbmV4dCddID0gJ0luYWludGUnOwokbGFuZ1snZXJyb3JfZ3JvdXBleGlzdHMnXSA9ICdVbiBncnVwIGN1IGFjZXN0IG51bWUgZXhpc3RhIGRlamEnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdPYmxpZ2F0b3JpdSc7CiRsYW5nWydvcHRpb25hbCddID0gJ09wdGlvbmFsICc7CiRsYW5nWydvZmYnXSA9ICdJbmFjdGl2JzsKJGxhbmdbJ3NpemUnXSA9ICdEaW1lbnNpdW5lJzsKJGxhbmdbJ3NpemVjb21tZW50J10gPSAnPGJyLz4oRGltZW5zaXVuZSBtYXhpbWEgYSBvcmljYXJlaSBkaW1lbnNpdW5pIGEgaW1hZ2luaWkgaW4gcGl4ZWxpKSc7CiRsYW5nWydsZW5ndGgnXSA9ICdMdW5naW1lJzsKJGxhbmdbJ2xlbmd0aGNvbW1lbnQnXSA9ICc8YnI+KGNhcmFjdGVyZSBpbiBjYW1wdWwgZGUgaW50cm9kdWNlcmUpJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdPcHRpdW5pIERyb3Bkb3duLCBzZXBhcmF0ZSBkZSBjYW1wdXJpIGRlIGxpbmllIG5vdWEuICBWYWxvcmlsZSBwb3QgZmkgc2VwYXJhdGUgZGUgdGV4dCBjdSB1biA9IChzZW1udWwgZWdhbCkuIEV4OiBGZW1laWU9Zic7CiRsYW5nWydyYWRpb29wdGlvbnMnXSA9ICdFdGljaGV0ZSBidXRvYW5lIHJhZGlvLCBzZXBhcmF0ZSBkZSBjYW1wdXJpIGRlIGxpbmllIG5vdWEuIFZhbG9yaWxlIHBvdCBmaSBzZXBhcmFyZSBkZSB0ZXh0IGN1IHVuID0gKHNlbW51bCBlZ2FsKS4gRXg6IEZlbWVpZT1mJzsKJGxhbmdbJ3Byb21wdCddID0gJ0FmaXNhcmUnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUaXAnOwokbGFuZ1sndHlwZSddID0gJ1RpcCc7CiRsYW5nWydmaWVsZHN0YXR1cyddID0gJ1N0YXR1cyBjYW1wJzsKJGxhbmdbJ3VzZWRpbmxvc3R1biddID0gJ0ludHJlYmFyZSBpbiBOdW1lIHV0aWxpemF0b3I8YnIvPnVpdGF0JzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0ICc7CiRsYW5nWydjaGVja2JveCddID0gJ0Nhc3V0YSBzZWxlY3RpZSc7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ0xpc3RhIG11bHRpIHNlbGVjdGllJzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ0J1dG9hbmUgcmFkaW8nOwokbGFuZ1snaW1hZ2UnXSA9ICdJbWFnaW5lJzsKJGxhbmdbJ2VtYWlsJ10gPSAnQWRyZXNhIEUtbWFpbCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ0FyaWUgdGV4dCc7CiRsYW5nWydkcm9wZG93biddID0gJ0Ryb3Bkb3duICc7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ0JpbmUgYXRpIHZlbml0JzsKJGxhbmdbJ2xvZ291dCddID0gJ0llc2lyZSc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAnU2UgZm9sb3Nlc3RlIGFjZXN0IG51bWUgZGUgZ3J1cCc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3MnXSA9ICdNb2RpZmljYXJlIHNldGFyaSc7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ0F1dGVudGlmaWNhcmUgZXN1YXRhIC0gTnVtZSB1dGlsaXphdG9yIHNhdSBwYXJvbGEgZ3Jlc2l0ZT8nOwokbGFuZ1snbG9naW4nXSA9ICdBdXRlbnRpZmljYXJlJzsKJGxhbmdbJ3Byb21wdF9zaWduaW5fYnV0dG9uJ10gPSAnRXRpY2hldGEgYnV0b24gYXV0ZW50aWZpY2FyZSc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdOdW1lIHV0aWxpemF0b3InOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAnQWRyZXNhIEUtbWFpbCc7CiRsYW5nWydwcm9tcHRfcGFzc3dvcmQnXSA9ICdQYXNyb2xhJzsKJGxhbmdbJ3Byb21wdF9yZW1lbWJlcm1lJ10gPSAnVGluZS1tYSBtaW50ZSBwZSBhY2VzdCBjYWxjdWxhdG9yJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnSW5yZWdpc3RyYXJlJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnQXRpIHVpdGF0IHBhcm9sYT8nOwokbGFuZ1snbG9zdHVzZXJuYW1lJ10gPSAnQXRpIHVpdGF0IGRhdGVsZSBkZSBhdXRlbnRpZmljYXJlPyc7CiRsYW5nWydkZWZhdWx0cyddID0gJ0ltcGxpY2l0ZSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlICc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdOdSBzLWF1IGdhc2l0IGluZm9ybWF0aWkgcGVudHJ1IGFjZXN0IHV0aWxpemF0b3InOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ0FjZXN0IG51bWUgZGUgdXRpbGl6YXRvciAoJXMpIGVzdGUgZGVqYSBsdWF0JzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdTZSBmb2xvc2VzdGUgU01UUCBwZW50cnUgdmFsaWRhcmUgYWRyZXNlIGRlIGUtbWFpbD8nOwokbGFuZ1sncHJvbXB0X21pbnB3bGVuJ10gPSAnTHVuZ2ltZSBtaW5pbWEgcGFyb2xhJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ0x1bmdpbWUgbWF4aW1hIHBhcm9sYSc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdMdW5naW1lIG1pbmltYSBudW1lIHV0aWxpemF0b3InOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnTHVuZ2ltZSBtYXhpbWEgbnVtZSB1dGlsaXphdG9yJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1RpbWVvdXQgc2VzaXVuZSAoc2VjdW5kZSknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ1NlIGZvbG9zZXNjIGNvb2tpZS11cmkgcGVudHJ1IGEgcGFzdHJhIHNlc2l1bmlsZSBpbiB2aWF0YSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlbWFpbHJlZyddID0gJ1NlIHBlcm1pdGUgaW5yZWdpc3RyYXJlIGUtbWFpbCc7CiRsYW5nWydwcm9tcHRfZGZsdGdyb3VwJ10gPSAnR3J1cCBpbXBsaWNpdCBwZW50cnUgdXRpbGl6YXRvcmkgbm9pJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgbW9kaWZpY2FyZSBzZXRhcmknOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ1Bhcm9sZWxlIG51IHNlIHBvdHJpdmVzYyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWUnXSA9ICdOdW1lIHV0aWxpemF0b3IgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdQYXJvbGEgaW52YWxpZGEnOwokbGFuZ1snZWRpdHVzZXInXSA9ICdFZGl0YXJlIHV0aWxpemF0b3InOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZCAnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdOdW1lIHV0aWxpemF0b3InOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzICc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICdBY2VzdCB1dGlsaXphdG9yIG51IGVzdGUgbWVtYnJ1IGluIG5pY2kgdW4gZ3J1cCc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnTmljaW8gcHJvcHJpZXRhdGUnOwokbGFuZ1snZXJyb3JfZHVwX3Byb3BlcnRpZXMnXSA9ICdTZSBpbmNlYXJjYSBpbXBvcnR1bCBwcm9wcmlldGF0aWxvciBkdXBsaWNhdGUnOwokbGFuZ1sndmFsdWUnXSA9ICdWYWxvYXJlJzsKJGxhbmdbJ2dyb3VwcyddID0gJ0dydXB1cmknOwokbGFuZ1sncHJvcGVydGllcyddID0gJ1Byb3ByaWV0YXRpJzsKJGxhbmdbJ3Byb3BuYW1lJ10gPSAnTnVtZSBwcm9wcmlldGF0ZSc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdWYWxvYXJlIHByb3ByaWV0YXRlJzsKJGxhbmdbJ2FkZCddID0gJ0FkYXVnYXJlJzsKJGxhbmdbJ2hpc3RvcnknXSA9ICdJc3RvcmljJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXJlJzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdFeHBpcmEnOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnU3BlY2lmaWNhcmUgZGF0YSc7CiRsYW5nWycxMmhycyddID0gJzEyIG9yZSc7CiRsYW5nWycyNGhycyddID0gJzI0IG9yZSc7CiRsYW5nWyc0OGhycyddID0gJzQ4IG9yZSc7CiRsYW5nWycxd2VlayddID0gJzEgc2FwdGFtYW5hJzsKJGxhbmdbJzJ3ZWVrcyddID0gJzIgc2FwdGFtYW5pJzsKJGxhbmdbJzFtb250aCddID0gJzEgbHVuYSc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBsdW5pJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IGx1bmknOwokbGFuZ1snMXllYXInXSA9ICcxIGFuJzsKJGxhbmdbJ25ldmVyJ10gPSAnTmljb2RhdGEnOwokbGFuZ1sncG9zdGluc3RhbGxtZXNzYWdlJ10gPSAnTW9kdWx1bCBhIGZvc3QgaW5zdGFsYXQgY3Ugc3VjY2VzLjxici8+VmVyaWZpY2F0aSBjYSBhdGkgc2V0YXQgcGVybWlzaXVuaWxlIHBlbnRydSAmcXVvdDtNb2RpZmljYXJlIHByb3ByaWV0YXRpIEZyb250RW5kVXNlciZxdW90Oy4gIEFkaXRpb25hbCwgdmEgcmVjb21hbmRhbSBzYSBpbnN0YWxhdGkgbW9kdWx1bCBDYXB0Y2hhLiAgRGFjYSBhY2VzdGEgZXN0ZSBpbnN0YWxhdCwgc2UgdmEgZm9sb3NpIHNpIHZhbGlkYXJlYSBpbWFnaW5lIGluIHBsdXMgZmF0YSBkZSBudW1lIHV0aWxpemF0b3Igc2kgcGFyb2xhIHBlbnRydSBhdXRlbnRpZmNhcmUuIFNlIGZvbG9zZXN0ZSBwZW50cnUgcHJldmVuaXJlYSBhdGFjdXJpbG9yIGJydXRlIGZvcmNlLiAgPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBQYXJhbWV0cnVsIG5vY2FwdGNoYSBwb2F0ZSBmaSBmb2xvc2l0IHBlbnRydSBhIGRlemFjdGl2YSBhY2Vhc3RhIGZ1bmN0aW9uYWxpdGF0ZSBjaGlhciBkYWNhIG1vZHVsdWwgQ2FwdGNoYSBlc3RlIGluc3RhbGF0LiZxdW90Oyc7CiRsYW5nWydwYXNzd29yZCddID0gJ1Bhcm9sYSc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ0RpbiBub3UnOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ1VuIGdydXAgY3UgYWNlc3QgbnVtZSBleGlzdGEgZGVqYS4nOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnRWRpdGFyZSBncnVwJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1RyaW1pdGVyZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsYXJlJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1N0ZXJnZXJlJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnU3VudGV0aSBzaWd1ciBjYSBhY2VzdGVhIHN1bnQgc2V0YXJpbGUgY29yZWN0ZSBwZW50cnUgYWNlc3QgZ3J1cD8gXG4gRGV6YWN0aXZhbmQgbyBwcm9wcmlldGF0ZSBudSB2YSBzdGVyZ2UgbmljaW8gaW50cmFyZSBkaW4gYmF6YSBkZSBkYXRlIHBlbnRydSBhY2VzdCBncnVwL3V0aWxpemF0b3IuIERvYXIgdm9yIGZpIGluZHNwb25pYmlsZS4nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVncm91cCddID0gJ1N1bnRldGkgc2lndXIgY2EgZG9yaXRpIHNhIHN0ZXJnZXRpIGFjZXN0IGdydXA/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3Byb3AnXSA9ICdTdW50ZXRpIHNpZ3VyIGNhIGRvcml0aSBzYSBzdGVyZ2V0aSBjb21wbGV0IGFjZWFzdGEgcHJvcHJpZXRhdGU/IFxuIEZhY2FuZCBhY2VzdCBsdWNydSB2ZXRpIHN0ZXJnZSB0b2F0ZSBpbnRyYXJpbGUgZGUgbGEgdXRpbGl6YXRvcmkgcGVudHJ1IGFjZWFzdGEgcHJvcHJpZXRhdGUuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ1BhcmFtZXRyaSBpbnN1ZmljaWVudGknOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWyduYW1lJ10gPSAnTnVtZSc7CiRsYW5nWydlcnJvcl9jYW50YWRkcHJvcCddID0gJ1Byb2JsZW1hIGxhIGFkYXVnYXJlIHByb3ByaWV0YXRlJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cHJlbG4nXSA9ICdQcm9ibGVtYSBsYSBhZGF1Z2FyZSByZWxhdGllIGRlIGdydXAnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwJ10gPSAnUHJvYmxlbWEgbGEgYWRhdWdhcmUgZ3J1cCc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2JsZW1hIGxhIGFkYXVnYXJlYSB1bnVpIHV0aWxpemF0b3IgaW50ci11biBncnVwJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZGVsZXRlcHJvcGVydHknXSA9ICdQcm9ibGVtYSBsYSBzdGVyZ2VyZWEgdW5laSBwcm9wcmlldGF0aSc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGZpbmRlbWFpbCddID0gJ051IHMtYSBnYXNpdCBvIGFkcmVzYSBkZSBlLW1haWwnOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ1Blcm1pc2l1bmkgZGUgc2NyaWVyZSBpbnN1ZmljaWVudGUgcGVudHJ1IGZvbGRlcnVsIGRlc3RpbmF0aWUnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ1BhcmFtZXRyaSBpbnZhbGl6aSc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcyddID0gJ051IGF1IGZvc3QgZ2FzaXRlIGdydXB1cmknOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdBcGxpY2FyZSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0cnUnOwokbGFuZ1sndXNlcmZpbHRlciddID0gJ0V4cHJlc2llIHJlZ3VsYXJhIG51bWUgdXRpbGl6YXRvcic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaWVyZSc7CiRsYW5nWydncm91cG5hbWUnXSA9ICdOdW1lIGdydXAnOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXMgSW50ZXJ6aXMnOwokbGFuZ1snZXJyb3InXSA9ICdFcm9hcmUnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdBZGF1Z2FyZSBncnVwJzsKJGxhbmdbJ2ltcG9ydGdyb3VwJ10gPSAnSW1wb3J0YXJlIGdydXAnOwokbGFuZ1snYWRkdXNlciddID0gJ0FkYXVnYXJlIHV0aWxpemF0b3InOwokbGFuZ1sndXNlcnNmb3VuZCddID0gJ1V0aWxpemF0b3JpIGdhc2l0aSBjYXJlIGNvcmVzcHVuZCBjcml0ZXJpaWxvcic7CiRsYW5nWydncm91cCddID0gJ0dydXAnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdTZWxlY3RhcmUgZ3J1cCc7CiRsYW5nWydyZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBpbnJlZ2lzdHJhcmUnOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgaWVzaXJlIGRpbiBjb250JzsKJGxhbmdbJ2xvZ2luX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgYXV0ZW50aWZpY2FyZSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmludGUnOwokbGFuZ1sndXNlcnMnXSA9ICdVdGlsaXphdG9yaSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdNYW5hZ2VtZW50IHV0aWxpemF0b3IgZnJvbnRlbmQnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdTZSBwZXJtaXRlIHV0aWxpemF0b3JpbG9yIHNhIHNlIGF1dGVudGlmaWNlIGluIGZyb250ZW5kIHNpdGUnOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gJ1BhZ2luYSBpbXBsaWNpdGEnOwokbGFuZ1snbGFzdGFjY2Vzc2VkcGFnZSddID0gJ1VsdGltYSBwYWdpbmEgYWNjZXNhdGEnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnQWx0YSBwYWdpbmE6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnSW50cm9kdWNldGkgdGV4dHVsIGRpbiBpbWFnaW5lJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3BhZ2V0eXBlX3VuYXV0aG9yaXplZCddID0gJ9CS0Ysg0L3QtSDQsNCy0YLQvtGA0LjQt9C+0LLQsNC90Ysg0LTQu9GPINC/0YDQvtGB0LzQvtGC0YDQsCDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+JzsKJGxhbmdbJ2luZm9fY29udGVudHBhZ2VfZ3JvdXBsaXN0J10gPSAnU3BlY2lmeSBhIGxpc3Qgb2YgRkVVIGdyb3VwcyB0aGF0IG1heSBoYXZlIGFjY2VzcyB0byB0aGlzIHBhZ2UuICBTZWxlY3Rpbmcgbm8gZ3JvdXBzIHdpbGwgYWxsb3cgYW55IHVzZXIgbG9nZ2VkIGluIHRvIEZFVSB0byB2aWV3IHRoZSBwYWdlJzsKJGxhbmdbJ3BhZ2V0eXBlX3NldHRpbmdzJ10gPSAnUHJvdGVjdGVkIFBhZ2UgU2V0dGluZ3MnOwokbGFuZ1sncGFnZXR5cGVfZ3JvdXBzJ10gPSAnQWxsb3dlZCBHcm91cHMnOwokbGFuZ1snaW5mb19wYWdldHlwZV9ncm91cHMnXSA9ICdTZWxlY3QgdGhlIGdyb3VwcyB0aGF0IGFyZSAoYnkgZGVmYXVsdCkgYWxsb3dlZCB0byB2aWV3IHByb3RlY3RlZCBwYWdlcy4gIEFuIGVkaXRvciB3aXRoIHRoZSAiTWFuYWdlIEFsbCBDb250ZW50IiBwZXJtaXNzaW9uIGNhbiBvdmVycmlkZSB0aGlzIGZvciBlYWNoIHBhZ2UnOwokbGFuZ1sncGFnZXR5cGVfYWN0aW9uJ10gPSAnQWN0aW9uIGZvciBpbnN1ZmZpY2llbnQgYWNjZXNzJzsKJGxhbmdbJ2luZm9fcGFnZXR5cGVfYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYmVoYXZpb3IgZm9yIHBlb3BsZSBhY2Nlc3NpbmcgdGhpcyBwYWdlIHdpdGhvdXQgc3VmZmljaWVudCBwZXJtaXNzaW9uLiAgWW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdG8gYSBzcGVjaWZpZWQgcGFnZSwgb3IgZGlzcGxheSB0aGUgbG9naW4gZm9ybSc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAnU2hvdyB0aGUgTG9naW4gRm9ybSc7CiRsYW5nWydyZWRpcmVjdCddID0gJ1JlZGlyZWN0IHRvIGEgUGFnZSc7CiRsYW5nWydwYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnUmVkaXJlY3QgVG8nOwokbGFuZ1snaW5mb19wYWdldHlwZV9yZWRpcmVjdHRvJ10gPSAnU3BlY2lmeSB0aGUgcGFnZSB0byByZWRpcmVjdCB0by4gIElmIHlvdSBzZWxlY3Qgbm9uZSwgYW5kIHRoZSBhY3Rpb24gaXMgc2V0IHRvICJyZWRpcmVjdCIgdGhlIHVzZXIgd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIG1lc3NhZ2UgaW5kaWNhdGluZyB0aGF0IHRoZXkgZG8gbm90IGhhY2UgYWNjZXNzIHRvIHRoZSBwYWdlJzsKJGxhbmdbJ3Blcm1pc3Npb25zJ10gPSAnUGVybWlzc2lvbnMnOwokbGFuZ1snZmV1X3Byb3RlY3RlZF9wYWdlJ10gPSAnUHJvdGVjdGVkIENvbnRlbnQnOwokbGFuZ1sncHJvbXB0X3ZpZXdwcm9wcyddID0gJ1NlbGVjdCBBZGRpdGlvbmFsIFByb3BlcnRpZXMgdG8gVmlldyc7CiRsYW5nWyd2aWV3J10gPSAnVmlldyc7CiRsYW5nWydpbmZvX2lnbm9yZV91c2VyaWQnXSA9ICdJZiBjaGVja2VkIHRoZSBpbXBvcnQgcm91dGluZSB3aWxsIGF0dGVtcHQgdG8gYWRkIHVzZXJzIGluZGVwZW5kYW50IG9mIHRoZSB1c2VyaWQgY29sdW1uLiAgSWYgYSB1c2VyIHdpdGggdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZSBpbXBvcnQgZmlsZSBhbHJlYWR5IGV4aXN0cywgYW4gZXJyb3Igd2lsbCBiZSBnZW5lcmF0ZWQnOwokbGFuZ1snaWdub3JlX3VzZXJpZCddID0gJ0lnbm9yZSBVc2VySUQgQ29sdW1uIG9uIEltcG9ydCc7CiRsYW5nWydleHBvcnRfcGFzc2hhc2gnXSA9ICdFeHBvcnQgdGhlIHBhc3N3b3JkIGhhc2ggdG8gdGhlIGZpbGUnOwokbGFuZ1snaW5mb19leHBvcnRfcGFzc2hhc2gnXSA9ICdUaGUgcGFzc3dvcmQgaGFzaCBpcyBvbmx5IHVzZWZ1bCBpZiB0aGUgcGFzc3dvcmQgc2FsdCBvbiB0aGUgaW1wb3J0IGhvc3QgaXMgaWRlbnRpY2FsIHRvIHRoYXQgb2YgdGhlIGV4cG9ydCBob3N0JzsKJGxhbmdbJ2Vycm9yX2FkanVzdHNhbHQnXSA9ICdUaGUgcGFzc3dvcmQgc2FsdCBjYW5ub3QgYmUgYWRqdXN0ZWQnOwokbGFuZ1sncHJvbXB0X3B3c2FsdCddID0gJ1Bhc3N3b3JkIFNhbHQnOwokbGFuZ1snaW5mb19wd3NhbHQnXSA9ICdGcm9udEVuZFVzZXJzIHNhbHRzIGFsbCBwYXNzd29yZHMgd2l0aCB0aGlzIGtleSB3aGljaCBpcyBjcmVhdGVkIHVwb24gaW5zdGFsbC4gIE9uY2UgdXNlcnMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBkYXRhYmFzZSB0aGUgc2FsdCBjYW5ub3QgYmUgY2hhbmdlZC4gVGhlIHNhbHQgbWF5IGJlIGVtcHR5IGZvciBvbGRlciBpbnN0YWxscy4nOwokbGFuZ1snYWR2YW5jZWRfc2V0dGluZ3MnXSA9ICdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWydpbmZvX3Nlc3Npb250aW1lb3V0J10gPSAnU3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgYmVmb3JlIGFuIGluYWN0aXZlIHVzZXIgaXMgYXV0b21hdGljYWxseSBsb2dnZWQgb3V0IG9mIHRoZSB3ZWJzaXRlJzsKJGxhbmdbJ3Byb21wdF9leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ1VzZXIgRXhwaXJ5IEludGVydmFsJzsKJGxhbmdbJ2luZm9fZXhwaXJldXNlcnNfaW50ZXJ2YWwnXSA9ICdTcGVjaWZ5IGEgdmFsdWUgKGluIHNlY29uZHMpIHRoYXQgaW5kaWNhdGVzIGhvdyBvZnRlbiB0aGUgc3lzdGVtIHNob3VsZCBmb3JjZSB1c2VycyB3aG9zIHNlc3Npb24gaGFzIGV4cGlyZWQgdG8gYmUgbG9nZ2VkIG91dC4gIFQiaGlzIGlzIGFuIG9wdGltaXphdGlvbiB0byBzYXZlIGRhdGFiYXNlIHF1ZXJpZXMuICBJZiBsZWZ0IGVtcHR5IG9yIHNldCB0byAwIGV4cGlyeSB3aWxsIGJlIHBlcmZvcm1lZCBvbiBldmVyeSByZXF1ZXN0Lic7CiRsYW5nWydtc2dfc2V0dGluZ3NjaGFuZ2VkJ10gPSAnWW91ciBzZXR0aW5ncyB3ZXJlIHN1Y2Nlc3NmdWxseSB1cGRhdGVkJzsKJGxhbmdbJ2ZvcmNlZGxvZ291dHRhc2tfZGVzYyddID0gJ0ZvcmNlIHVzZXJzIHRvIGxvZ291dCBhdCByZWd1bGFyIGludGVydmFscyc7CiRsYW5nWydwcm9tcHRfZm9yY2Vsb2dvdXRfdGltZXMnXSA9ICdUaW1lcyBmb3IgZm9yY2VkIGxvZ291dCc7CiRsYW5nWydpbmZvX2ZvcmNlbG9nb3V0X3RpbWVzJ10gPSAnU3BlY2lmeSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHRpbWVzIGxpa2UgSEg6TU0sSEg6TU0gd2hlcmUgdXNlcnMgd2lsbCBiZSBmb3JjaWJseSBsb2dnZWQgb3V0LiBOb3RlLCB0aGlzIHVzZXMgdGhlIHBzdWVkb2Nyb24gbWVjaGFuaXNtIHNvIHlvdSBtdXN0IGJlIHN1cmUgdGhhdCB0aGUgdGltZXMgZW50ZXJlZCBoZXJlIHdpbGwgY29pbmNpZGUgcmVhc29uYWJseSB3aXRoIHlvdXIgInBzZXVkb2Nyb24gZ3JhbnVsYXJpdHkiIGFuZCB0aGF0IHN1ZmZpY2llbnQgcmVxdWVzdHMgd2lsbCBvY2N1ciB0byB5b3VyIHdlYnNpdGUgdG8gZW5zdXJlIHRoYXQgcHNldWRvY3JvbiBpcyBleGVjdXRlZC4nOwokbGFuZ1sncHJvbXB0X2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnXSA9ICdFeGNsdWRlIHVzZXJzIHRoYXQgaGF2ZSBiZWVuIGFjdGl2ZSBpbiA8ZW0+KG1pbnV0ZXMpPC9lbT4nOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF9zZXNzaW9uYWdlJ10gPSAnSWYgc3BlY2lmaWVkLCBhbnkgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYWN0aXZlIGluIHRoaXMgbnVtYmVyIG9mIHNlY29uZHMgd2lsbCBub3QgYmUgZm9yY2libHkgbG9nZ2VkIG91dCc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIHVzZXIgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGVleHRlbnNpb24nXSA9ICdUaGUgdXBsb2FkZWQgZmlsZSBkb2VzIG5vdCBtYXRjaCB0aGUgbGlzdCBvZiBhbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0FsbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUgaGFzIGJlZW4gZGVsZXRlZCc7CiRsYW5nWydpbmZvX2Vjb21tX3BhaWRyZWdpc3RyYXRpb24nXSA9ICdJZiBlbmFibGVkLCB0aGlzIG1vZHVsZSB3aWxsIGxpc3RlbiB0byBldmVudHMgZnJvbSB0aGUgRWNvbW1lcmNlIHN1aXRlLiAgVGhlIGZvbGxvd2luZyBzZXR0aW5ncyBvbmx5IGhhdmUgZWZmZWN0IGlmIHRoaXMgc2V0dGluZyBpcyBlbmFibGVkLic7CiRsYW5nWydwcm9tcHRfZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbiddID0gJ0xpc3RlbiB0byBPcmRlciBFdmVudHMnOwokbGFuZ1snaW5mb19wYWlkcmVnX3NldHRpbmdzJ10gPSAnVGhlIGZvbGxvd2luZyBzZXR0aW5ncyBvbmx5IGFwcGx5IGlmIHVzaW5nIHNlbGYgcmVnaXN0cmF0aW9uIGFuZCBhbGxvd2luZyBmb3IgcGFpZCByZWdpc3RyYXRpb24nOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snZGVsZXRlX3VzZXInXSA9ICdEZWxldGUgVXNlcic7CiRsYW5nWydleHBpcmVfdXNlciddID0gJ0V4cGlyZSBVc2VyJzsKJGxhbmdbJ3Byb21wdF9hY3Rpb25fb3JkZXJjYW5jZWxsZWQnXSA9ICdBY3Rpb24gdG8gcGVyZm9ybSB3aGVuIGEgc3Vic2NyaXB0aW9uIG9yZGVyIGlzIGNhbmNlbGxlZCc7CiRsYW5nWydwcm9tcHRfYWN0aW9uX29yZGVyZGVsZXRlZCddID0gJ0FjdGlvbiB0byBwZXJmb3JtIHdoZW4gYSBzdWJzY3JpcHRpb24gb3JkZXIgaXMgZGVsZXRlZCc7CiRsYW5nWydlY29tbWVyY2Vfc2V0dGluZ3MnXSA9ICdFY29tbWVyY2UgU2V0dGluZ3MnOwokbGFuZ1snc2VjdXJlZmllbGRtYXJrZXInXSA9ICdTZWN1cmUgRmllbGQgTWFya2VyJzsKJGxhbmdbJ3NlY3VyZWZpZWxkY29sb3InXSA9ICdTZWN1cmUgRmllbGQgQ29sb3InOwokbGFuZ1sncHJvbXB0X2VuY3J5cHQnXSA9ICdTdG9yZSB0aGlzIGRhdGEgZW5jcnlwdGVkIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9ub3RzdXBwb3J0ZWQnXSA9ICdUaGUgY2hvc2VuIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGdpdmVuIHlvdXIgY3VycmVudCBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ2F1ZGl0X3VzZXJfY3JlYXRlZCddID0gJ1VzZXIgYXV0b21hdGljYWxseSBjcmVhdGVkJzsKJGxhbmdbJ2luZm9fYXV0b19jcmVhdGVfdW5rbm93biddID0gJ0lmIGEgdXNlciBpcyBhdXRoZW50aWNhdGVkIGJ5IGFuIGV4dGVybmFsIGF1dGhlbnRpY2F0aW9uIG1vZHVsZSBidXQgaXMgbm90IGtub3duIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSBzaG91bGQgYW4gRkVVIGFjY291bnQgYmUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5Pyc7CiRsYW5nWydwcm9tcHRfYXV0b19jcmVhdGVfdW5rbm93biddID0gJ0F1dG9tYXRpY2FsbHkgQ3JlYXRlIFVua25vd24gVXNlcnMnOwokbGFuZ1snZGlzcGxheV9zZXR0aW5ncyddID0gJ0Rpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1snaW5mb19zdGRfYXV0aF9zZXR0aW5ncyddID0gJ1RoZSBmb2xsb3dpbmcgc2V0dGluZ3MgYXJlIG9ubHkgYXBwbGljYWJsZSBpZiB1c2luZyB0aGUgIkJ1aWx0aW4gQXV0aGVudGljYXRpb24iLic7CiRsYW5nWydpbmZvX3N1cHBvcnRfbG9zdHVuJ10gPSAnU2VsZWN0aW5nIE5vIHdpbGwgZGlzYWJsZSB0aGUgYWJpbGl0eSBmb3IgYSB1c2VyIHRvIHJlcXVlc3QgbG9zdCBsb2dpbiBpbmZvcm1hdGlvbiwgaXJyZXNwZWN0aXZlIG9mIG90aGVyIHNldHRpbmdzJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0cHcnXSA9ICdTZWxlY3RpbmcgTm8gd2lsbCBkaXNhYmxlIHRoZSBhYmlsaXR5IGZvciBhIHVzZXIgdG8gYSBwYXNzd29yZCByZXNldCwgaXJyZXNwZWN0aXZlIG9mIG90aGVyIHNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9zdXBwb3J0X2xvc3R1biddID0gJ0FsbG93IHVzZXJzIHRvIHJlcXVlc3QgdGhlaXIgdXNlcm5hbWUnOwokbGFuZ1sncHJvbXB0X3N1cHBvcnRfbG9zdHB3J10gPSAnQWxsb3cgdXNlcnMgdG8gcmVxdWVzdCBhIHBhc3N3b3JkIGNoYW5nZSc7CiRsYW5nWydhdXRoX3NldHRpbmdzJ10gPSAnQXV0aGVudGljYXRpb24gU2V0dGluZ3MnOwokbGFuZ1snYXV0aGVudGljYXRpb24nXSA9ICdCdWlsdGluIEF1dGhlbnRpY2F0aW9uJzsKJGxhbmdbJ2F1dGhfYnVpbHRpbiddID0gJ0ZFVSBTdGFuZGFyZCBBdXRoZW50aWNhdGlvbic7CiRsYW5nWydhdXRoX21vZHVsZSddID0gJ0F1dGhlbnRpY2F0aW9uIE1vZHVsZS9NZXRob2QnOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ1RoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSBzdXBwb3J0cyB1c2luZyBhbHRlcm5hdGUgYXV0aGVudGljYXRpb24gbWV0aG9kcywgd2l0aCB2YXJ5aW5nIGNhcGFiaWxpdGllcy4gIFNvbWUgZnVuY3Rpb25hbGl0eSB3aWxsIG5vdCBmdW5jdGlvbiBvciBiZSBkaXNhYmxlZCB3aGVuIG5vdCB1c2luZyB0aGUgYnVpbHQgaW4gYXV0aGVudGljYXRpb24gbWV0aG9kJzsKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciB1c2VyJzsKJGxhbmdbJ3VuaXF1ZSddID0gJ1VuaXF1ZSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVfZmllbGRfdmFsdWUnXSA9ICdUaGUgdmFsdWUgc3BlY2lmaWVkIGZvciAlcyAoJXMpIGlzIG5vdCB1bmlxdWUnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ0ZvcmNlIHZhbHVlcyBvZiB0aGlzIHByb3BlcnR5IHRvIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHVzZXIgYWNjb3VudHMnOwokbGFuZ1snaGVscF9yZXR1cm5sYXN0J10gPSAnVXNlZCB3aXRoIHRoZSBsb2dpbiBhbmQgbG9nb3V0IGZvcm1zLCB0aGlzIHBhcmFtZXRlciBpZiBzcGVjaWZpZWQgd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSB1c2VyIHNob3VsZCBiZSByZXR1cm5lZCB0byB0aGUgcGFnZSAoYnkgdXJsKSB0aGF0IHRoZSB1c2VyIHdhcyB2aWV3aW5nIGJlZm9yZSB0aGUgYWN0aW9uIG9jY3VycmVkLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBvdmVycmlkZSB0aGUgcmVkaXJlY3QgcHJlZmVyZW5jZXMsIGFuZCB0aGUgcmV0dXJudG8gcGFyYW1ldGVyLic7CiRsYW5nWydoZWxwX25vaW5saW5lJ10gPSAnVXNlZCB3aXRoIG9uZSBvZiB0aGUgZm9ybXMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IHRoZSBmb3JtcyBzaG91bGQgbm90IGJlIHBsYWNlZCBpbmxpbmUsIGluc3RlYWQgdGhlIHJlc3VsdGluZyBvdXRwdXQgYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uIHdpbGwgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrJzsKJGxhbmdbJ3RpdGxlX3Jlc2V0X3Nlc3Npb24nXSA9ICdMb2dpbiBTZXNzaW9uIFRpbWVvdXQgV2FybmluZyc7CiRsYW5nWydtc2dfcmVzZXRfc2Vzc2lvbiddID0gJ1lvdXIgbG9naW4gc2Vzc2lvbiBpcyBhYm91dCB0byBleHBpcmUsIHBsZWFzZSBjbGljayAiIk9rIiB0byBjb25maXJtIHlvdXIgYWN0aXZpdHkgb24gdGhpcyB3ZWJzaXRlLic7CiRsYW5nWydvayddID0gJ09rJzsKJGxhbmdbJ3Jlc2V0c2Vzc2lvbl90ZW1wbGF0ZSddID0gJ1Jlc2V0IFNlc3Npb24gVGVtcGxhdGUnOwokbGFuZ1snaW5mb19uYW1lJ10gPSAnVGhpcyBpcyB0aGUgZmllbGQgbmFtZSwgdG8gYmUgdXNlZCBmb3IgYWRkcmVzc2luZyBpbiBzbWFydHkuICBJdCBtdXN0IGNvbnNpc3Qgb2Ygb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgdW5kZXJzY29yZXMuJzsKJGxhbmdbJ3Zpc2l0b3JzX3RhYiddID0gJ1Zpc2l0b3JzJzsKJGxhbmdbJ2ZldV9ncm91cHNfcHJvbXB0J10gPSAnU2VsZWN0IG9uZSBvciBtb3JlIEZFVSBncm91cHMgdGhhdCBhcmUgYWxsb3dlZCB0byB2aWV3IHRoaXMgcGFnZSc7CiRsYW5nWydlcnJvcl9tdXN0c2VsZWN0X2dyb3VwJ10gPSAnQSBncm91cCBtdXN0IGJlIHNlbGVjdGVkJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc3RhcnRfeWVhciddID0gJ1N0YXJ0IFllYXInOwokbGFuZ1snZW5kX3llYXInXSA9ICdFbmQgWWVhcic7CiRsYW5nWydkYXRlJ10gPSAnRGF0ZSc7CiRsYW5nWydwcm9tcHRfdGh1bWJuYWlsX3NpemUnXSA9ICdUaHVtYm5haWwgU2l6ZSc7CiRsYW5nWydPblVwZGF0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBNb2RpZmllZCc7CiRsYW5nWydlcnJvcl90b29tYW55c2VsZWN0ZWQnXSA9ICdUb28gbWFueSB1c2VycyBhcmUgc2VsZWN0ZWQgZm9yIGJ1bGsgb3BlcmF0aW9ucy4uLi4gUGxlYXNlIHRyaW0gaXQgdG8gMjUwIG9yIGxlc3MnOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCB1c2Vycz8nOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRGVsZXRlIFNlbGVjdGVkJzsKJGxhbmdbJ3Byb21wdF9yYW5kb211c2VybmFtZSddID0gJ0dlbmVyYXRlIHJhbmRvbSB1c2VybmFtZSB3aGVuIGFkZGluZyBuZXcgdXNlcnMnOwokbGFuZ1snbW9udGhzJ10gPSAnbW9udGhzJzsKJGxhbmdbJ3Byb21wdF9leHBpcmVhZ2UnXSA9ICdEZWZhdWx0IHVzZXIgZXhwaXJ5IHBlcmlvZCc7CiRsYW5nWydub3RpZmljYXRpb25fc2V0dGluZ3MnXSA9ICdOb3RpZmljYXRpb24gU2V0dGluZ3MnOwokbGFuZ1sncHJvcGVydHlfc2V0dGluZ3MnXSA9ICdQcm9wZXJ0eSBTZXR0aW5ncyc7CiRsYW5nWydyZWRpcmVjdGlvbl9zZXR0aW5ncyddID0gJ1JlZGlyZWN0aW9uIFNldHRpbmdzJzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3Nlc3Npb25fc2V0dGluZ3MnXSA9ICdTZXNzaW9uIGFuZCBDb29raWUgU2V0dGluZ3MnOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdGaWVsZCBTZXR0aW5ncyc7CiRsYW5nWydlcnJvcl9sb3N0dW5fbm9ucmVxdWlyZWQnXSA9ICdUaGUgbG9zdHVzZXJuYW1lIGZsYWcgY2FuIG9ubHkgYmUgdXNlZCBvbiByZXF1aXJlZCBmaWVsZHMnOwokbGFuZ1sncHJvcF90ZXh0YXJlYV93eXNpd3lnJ10gPSAnQWxsb3cgdXNlIG9mIHd5c2l3eWcgb24gdGhpcyB0ZXh0IGFyZWEnOwokbGFuZ1snaW5mb19jb29raWVzdG9yZW1lbWJlciddID0gJzxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFRoaXMgdXNlcyB0aGUgbWNyeXB0IGZ1bmN0aW9ucyBmb3IgZW5jcnlwdGlvbiBwdXJwb3NlcywgYW5kIHRoZXkgY291bGQgbm90IGJlIGRldGVjdGVkIG9uIHlvdXIgaW5zdGFsbC4gICBQbGVhc2UgY29udGFjdCB5b3VyIHNlcnZlciBhZG1pbmlzdHJhdG9yLic7CiRsYW5nWydlZGl0aW5nX3VzZXInXSA9ICfQmNC30LzQtdC90LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiRsYW5nWydub2lubGluZSddID0gJ9Cd0LUg0LLRgdGC0YDQvtC10L3QvdGL0LUg0YTQvtGA0LzRiyc7CiRsYW5nWydpbmZvX2xvc3R1biddID0gJ9Cd0LDQttC80LjRgtC1INC30LTQtdGB0YwsINC10YHQu9C4INCy0Ysg0LfQsNCx0YvQu9C4INGB0LLQvtC5INC70L7Qs9C40L0nOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ9Cd0LDQttC80LjRgtC1INC30LTQtdGB0YwsINC10YHQu9C4INCy0Ysg0LfQsNCx0YvQu9C4INGB0LLQvtC5INC/0LDRgNC+0LvRjCc7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJ9Cd0LDQttC80LjRgtC1INC30LTQtdGB0YwsINGH0YLQvtCx0Ysg0LLRi9C50YLQuCc7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAn0J3QsNC20LzQuNGC0LUg0LfQtNC10YHRjCwg0YfRgtC+0LHRiyDQuNC30LzQtdC90LjRgtGMINGB0LLQvtC5INC/0LDRgNC+0LvRjCDQuNC70Lgg0LTRgNGD0LPRg9GOINC40L3RhNC+0YDQvNCw0YbQuNGOJzsKJGxhbmdbJ3ZpZXd1c2VyX3RlbXBsYXRlJ10gPSAn0J/QvtGB0LzQvtGC0YDQtdGC0Ywg0YjQsNCx0LvQvtC9INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiRsYW5nWydldmVudCddID0gJ9Ch0L7QsdGL0YLQuNC1JzsKJGxhbmdbJ2ZldV9ldmVudF9ub3RpZmljYXRpb24nXSA9ICdGRVUg0YPQstC10LTQvtC80LvQtdC90LjRjyDQviDRgdC+0LHRi9GC0LjRj9GFJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJ9CQ0LTRgNC10YEgZW1haWwg0YPQstC10LTQvtC80LvQtdC90LjRjyc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INGD0LLQtdC00L7QvNC70LXQvdC40Y8g0L/QviBlbWFpbCc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICfQotC10LzQsCDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPINC/0L4gZW1haWwnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICfQo9Cy0LXQtNC+0LzQu9C10L3QuNGPINC/0L4gZW1haWwnOwokbGFuZ1snT25Mb2dpbiddID0gJ9Cd0LAg0LLRhdC+0LQnOwokbGFuZ1snT25Mb2dvdXQnXSA9ICfQndCwINCy0YvRhdC+0LQnOwokbGFuZ1snT25FeHBpcmVVc2VyJ10gPSAn0J3QsCDQuNGB0YLQtdC60YjRg9GOINGB0LXRgdGB0LjRjic7CiRsYW5nWydPbkNyZWF0ZVVzZXInXSA9ICfQndCwINCy0L3QvtCy0Ywg0YHQvtC30LTQsNC90L3QvtCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKJGxhbmdbJ09uRGVsZXRlVXNlciddID0gJ9Cd0LAg0YPQtNCw0LvQtdC90L3QvtCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ09uIFVzZXIgU2V0dGluZ3MgQ2hhbmdlZCc7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBDcmVhdGVkJzsKJGxhbmdbJ09uRGVsZXRlR3JvdXAnXSA9ICdPbiBVc2VyIEdyb3VwIERlbGV0ZWQnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wcmVtc2cnXSA9ICdUaGUgbG9zdCBsb2dpbiBkZXRhaWxzIGZ1bmN0aW9uYWxpdHkgaGFzIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuICBXZSBoYXZlIGZvdW5kIGEgdW5pcXVlIHVzZXJuYW1lIHRoYXQgbWF0Y2hlcyB0aGUgZGV0YWlscyB5b3UgZW50ZXJlZC4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ9CS0LDRiNC1INC40LzRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAn0JzRiyDRgNC10LrQvtC80LXQvdC00YPQtdC8INCS0LDQvCDRgdC+0YXRgNCw0L3QuNGC0Ywg0Y3RgtGDINC40L3RhNC+0YDQvNCw0YbQuNGOINCyINCx0LXQt9C+0L/QsNGB0L3QvtC8LCDQvdC+INC00L7RgdGC0YPQv9C90L7QvCDQvNC10YHRgtC1Lic7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfY2hhbmdlX3NldHRpbmdzJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgY2hhbmdlIHNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl92ZXJpZnlfY29kZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGNvZGUgdmVyaWZpY2F0aW9uIConOwokbGFuZ1snbG9zdHVuX2RldGFpbHNfdGVtcGxhdGUnXSA9ICdMb3N0IFVzZXJuYW1lIERldGFpbHMgVGVtcGxhdGUnOwokbGFuZ1snbG9zdHVuX2NvbmZpcm1fdGVtcGxhdGUnXSA9ICdMb3N0IFVzZXJuYW1lIENvbmZpcm0gVGVtcGxhdGUnOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlbWF0Y2gnXSA9ICfQntGI0LjQsdC60LA6INCx0L7Qu9C10LUg0YfQtdC8INC+0LTQuNC9INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQuNC80LXQtdGCINGD0LrQsNC30LDQvdC90YvQtSDRgdCy0L7QudGB0YLQstCwJzsKJGxhbmdbJ2Vycm9yX2NhbnRmaW5kdXNlciddID0gJ9Ce0YjQuNCx0LrQsDog0L3QtdCy0L7Qt9C80L7QttC90L4g0L3QsNC50YLQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1snZXJyb3JfZ3JvdXBub3Rmb3VuZCddID0gJ9Ce0YjQuNCx0LrQsDog0L3QtdCy0L7Qt9C80L7QttC90L4g0L3QsNC50YLQuCDQs9GA0YPQv9C/0YMg0YEg0Y3RgtC40Lwg0LjQvNC10L3QtdC8JzsKJGxhbmdbJ3JlYWRvbmx5J10gPSAn0KLQvtC70YzQutC+INC00LvRjyDRh9GC0LXQvdC40Y8nOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ9Ca0LvQsNGB0YEgVXNlciBNYW5pcHVsYXRvciAnOwokbGFuZ1snYWRtaW5fbG9nb3V0J10gPSAn0JLRi9C/0L7Qu9C90LXQvSDQstGL0YXQvtC0INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA0LAnOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ9Cf0L7QutCw0LfQsNGC0Ywg0YLQvtC70YzQutC+INC30LDQu9C+0LPQuNC90LXQstGI0LjRhdGB0Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LknOwokbGFuZ1sncHJvbXB0X2xvZ291dCddID0gJ9CS0YvRhdC+0LQg0Y3RgtC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1sndXNlcl9wcm9wZXJ0aWVzJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ9CY0YHRgtC+0YDQuNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiRsYW5nWydleHBvcnQnXSA9ICfQrdC60YHQv9C+0YDRgic7CiRsYW5nWydjbGVhciddID0gJ9Ce0YfQuNGB0YLQutCwJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ9Ct0LrRgdC/0L7RgNGCINC40YHRgtC+0YDQuNC4INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiBBU0NJSSDQv9C+INC60YDQsNC50L3QtdC5INC80LXRgNC1JzsKJGxhbmdbJ3Byb21wdF9jbGVhcnVzZXJoaXN0b3J5J10gPSAn0J7Rh9C40YHRgtC40YLRjCDQuNGB0YLQvtGA0LjRjiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0L/QviDQutGA0LDQudC90LXQuSDQvNC10YDQtSc7CiRsYW5nWyd0aXRsZV9sb3N0dXNlcm5hbWUnXSA9ICfQl9Cw0LHRi9C70Lgg0LLQsNGIINC70L7Qs9C40L0/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ9Ct0LrRgdC/0L7RgNGCINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0LPRgNGD0L/Qv9GLICjQuCDRgdCy0L7QudGB0YLQsikg0LIgWE1MJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5bWFpbnRlbmFuY2UnXSA9ICfQntCx0YHQu9GD0LbQuNCy0LDQvdC40LUg0LjRgdGC0L7RgNC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKJGxhbmdbJ3llcyddID0gJ9CU0LAnOwokbGFuZ1snbm8nXSA9ICfQndC10YInOwokbGFuZ1sncHJvbXB0X29mJ10gPSAn0LInOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiog0JHQtdC3INC+0LPRgNCw0L3QuNGH0LXQvdC40LkgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAn0JfQsCDRgtC10LrRg9GJ0LjQuSDRh9Cw0YEnOwokbGFuZ1snZGF0ZV9zaXhob3Vyb2xkJ10gPSAn0JfQsCDRiNC10YHRgtGMINGH0LDRgdC+0LInOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAn0JfQsCDQtNCy0LXQvdCw0LTRhtCw0YLRjCDRh9Cw0YHQvtCyJzsKJGxhbmdbJ2RhdGVfb25lZGF5b2xkJ10gPSAn0JfQsCDQvtC00LjQvSDQtNC10L3RjCc7CiRsYW5nWydkYXRlX29uZXdlZWtvbGQnXSA9ICfQl9CwINC+0LTQvdGDINC90LXQtNC10LvRjic7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAn0JfQsCDQtNCy0LUg0L3QtdC00LXQu9C4JzsKJGxhbmdbJ2RhdGVfb25lbW9udGhvbGQnXSA9ICfQl9CwINC+0LTQuNC9INC80LXRgdGP0YYnOwokbGFuZ1snZGF0ZV90aHJlZW1vbnRoc29sZCddID0gJ9CX0LAg0YLRgNC4INC80LXRgdGP0YbQsCc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ9CX0LAg0YjQtdGB0YLRjCDQvNC10YHRj9GG0LXQsic7CiRsYW5nWydkYXRlX29uZXllYXJvbGQnXSA9ICfQl9CwINC+0LTQuNC9INCz0L7QtCc7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICfQk9GA0YPQv9C/0LjRgNC+0LLQutCwINC4INGB0L7RgNGC0LjRgNC+0LLQutCwJzsKJGxhbmdbJ3Byb21wdF9yZWNvcmRzZm91bmQnXSA9ICfQl9Cw0L/QuNGB0LgsINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQtSDQutGA0LjRgtC10YDQuNGP0LwnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2Rlc2MnXSA9ICfQn9C+INCw0LvRhNCw0LLQuNGC0YMg0JAt0K8nOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2FzYyddID0gJ9Cf0L4g0LDQu9GE0LDQstC40YLRgyDQry3QkCc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAn0J/QviDQtNCw0YLQtSAo0YPQsdGL0LLQsNC90LjQtSknOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfYXNjJ10gPSAn0J/QviDQtNCw0YLQtSAo0LLQvtC30YDQsNGB0YLQsNC90LjQtSknOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9kZXNjJ10gPSAn0J/QviDRgtC40L/RgyDRgdC+0LHRi9GC0LjRjyAo0YPQsdGL0LLQsNC90LjQtSknOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICfQn9C+INGC0LjQv9GDINGB0L7QsdGL0YLQuNGPICjQstC+0LfRgNCw0YHRgtCw0L3QuNC1KSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICfQn9C+IElQICjRg9Cx0YvQstCw0L3QuNC1KSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2FzYyddID0gJ9Cf0L4gSVAgKNCy0L7Qt9GA0LDRgdGC0LDQvdC40LUpJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICfQmNGB0YLQvtGA0LjRjyDQvdC1INC90LDQudC00LXQvdCwJzsKJGxhbmdbJ3Jlc2V0J10gPSAn0KHQsdGA0L7RgdC40YLRjCc7CiRsYW5nWydwcm9tcHRfZ3JvdXBfaXAnXSA9ICfQk9GA0YPQv9C/0LjRgNC+0LLQsNGC0Ywg0L/QviBJUCc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ9Ck0LjQu9GM0YLRgCDRgtC40L/QsCDRgdC+0LHRi9GC0LjRjyc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICfQn9C+0LrQsNC30YvQstCw0YLRjCDRgtC+0LvRjNC60L4g0YHQvtCx0YvRgtC40Y8sINC60L7RgtC+0YDRi9C1INGA0LDQvdGM0YjQtSDRh9C10Lw6JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICfQm9C40LzQuNGCINGB0YLRgNCw0L3QuNGG0YsnOwokbGFuZ1snZm9yJ10gPSAn0LTQu9GPJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAn0J7RgtGH0ZHRgiDQuNGB0YLQvtGA0LjQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1sndW5rbm93biddID0gJ9Cd0LXQuNC30LLQtdGB0YLQvdGL0LknOwokbGFuZ1sncHJvbXB0X2lwYWRkcmVzcyddID0gJ0lQINCw0LTRgNC10YEnOwokbGFuZ1sncHJvbXB0X2V2ZW50dHlwZSddID0gJ9Ci0LjQvyDRgdC+0LHRi9GC0LjRjyc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ9CU0LDRgtCwJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICfQktC10YDQvdGD0YLRjNGB0Y8nOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ9Ce0L/QtdGA0LDRhtC40Y8g0LjQvNC/0L7RgNGC0LAg0LfQsNCy0LXRgNGI0LXQvdCwJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ9Ce0LHRgNCw0LHQvtGC0LDQvdC+INGB0YLRgNC+0LonOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ9Ce0LHQvdCw0YDRg9C20LXQvdC+INC+0YjQuNCx0L7Quic7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAn0JTQvtCx0LDQstC70LXQvdC+INC30LDQv9C40YHQtdC5JzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnXSA9ICfQndC10LLQvtC30LzQvtC20L3QviDQvdCw0LnRgtC4INGB0LLQvtC50YHRgtCy0LAg0LTQu9GPINCz0YDRg9C/0L/RiyAlcyc7CiRsYW5nWydlcnJvcl9ub3Jlc3BvbnNlZnJvbXNlcnZlciddID0gJ9C90LXRgiDQvtGC0LLQtdGC0LAg0L7RgiBTTVRQINGB0LXRgNCy0LXRgNCwJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ9Cj0LrQsNC30LDQvdC90YvQuSDRhNCw0LnQuyAoJXMpINC90LUg0L7QsdC90LDRgNGD0LbQtdC9JzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICfQvdC10LLQtdGA0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0LLRi9C/0LDQtNCw0Y7RidC10LPQviDRgdC/0LjRgdC60LAgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICfQn9GA0LXQstGL0YjQtdC90LjQtSDQvNCw0LrRgdC40LzQsNC70YzQvdC+0Lkg0LTQu9C40L3RiyDQv9C+0LvRjyAlcyAnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICfQntGI0LjQsdC60LAg0LjQvNC/0L7RgNGC0LAgKNGB0YLRgNC+0LrQsCAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdDb3VsZCBub3QgZ2V0IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9ucyAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgY29sdW1uIHRvIG1hdGNoIHRoZSByZXF1aXJlZCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ0NvdWxkIG5vdCBmaW5kIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ1RoZSBmaWxlIHNwZWNpZmllZCBmb3IgaW1wb3J0IGlzIG5vdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7RgtC60YDRi9GC0Ywg0YTQsNC50LsnOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcXCMpIGNoYXJhY3RlcnMsIGFuZCBuYW1lcyBlYWNoIG9mIHRoZSBmaWVsZHMgaW4gdGhlIGZpbGUuICBUaGUgbmFtZXMgb2YgdGhlc2UgZmllbGRzIGlzIHNpZ25pZmljYW50LiAgVGhlcmUgYXJlIHNvbWUgcmVxdWlyZWQgZmllbGQgbmFtZXMgKHNlZSBiZWxvdyksIGFuZCBvdGhlciBmaWVsZCBuYW1lcyBtdXN0IG1hdGNoIHRoZSBwcm9wZXJ0eSBuYW1lcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwIHVzZXJzIGFyZSBnb2luZyB0byBiZSBhZGRlZCBpbnRvLjwvbGk+DQo8bGk+VGhlIGltcG9ydCBwcm9jZXNzIHdpbGwgZmFpbCBpZiB0aGUgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIGRvZXMgbm90IG1hdGNoIGFsbCBvZiB0aGUgcmVxdWlyZWQgcHJvcGVydGllcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdyb3VwIHRoYXQgdXNlcnMgYXJlIGJlaW5nIGFkZGVkIGludG88L2xpPg0KPGxpPlRoZSBpbnB1dCBmaWxlIG1heSBjb250YWluIGZpZWxkcyByZXByZXNlbnRpbmcgc29tZSBvZiB0aGUgb3B0aW9uYWwgcHJvcGVydGllcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3VwLjwvbGk+DQo8bGk+VGhlIGltcG9ydCBwcm9jZXNzIHdpbGwgaWdub3JlIGFueSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgdGhhdCBhcmUgZWl0aGVyIG5vdCBrbm93biwgb3IgbWFwIHRvIHByb3BlcnRpZXMgdGhhdCBhcmUgPGVtPm9mZjwvZW0+IGluIHRoZSBzcGVjaWZpZWQgdXNlciBncm91cC48L2xpPg0KPC91bD4NCjxoNT5Db2x1bW5hciBEYXRhPC9oNT4NCjx1bD4NCjxsaT5UaGUgPHN0cm9uZz51c2VybmFtZTwvc3Ryb25nPiBGaWVsZCAtIFRoZSBkZXNpcmVkIHVzZXJuYW1lLg0KICAgIDxwPlRoaXMgZmllbGQgbXVzdCBleGlzdCBpbiB0aGUgaGVhZGVybGluZSwgYW5kIGluIGVhY2ggYW5kIGV2ZXJ5IGxpbmUgb2YgdGhlIGlucHV0IGZpbGUuIFRoZSByZWNvcmQgd2lsbCBmYWlsIGlmIGEgdXNlciB3aXRoIHRoYXQgdXNlcm5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGRhdGFiYXNlLjwvcD48L2xpPg0KPGxpPlRoZSA8c3Ryb25nPnBhc3N3b3JkPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+ZXhwaXJlczwvc3Ryb25nPiBGaWVsZCAtIFRvZG88L2xpPg0KPGxpPkRyb3Bkb3duIEZpZWxkcw0KICAgIDxwPlRoZSB2YWx1ZSBvZiBkcm9wZG93biBwcm9wZXJ0aWVzIGluIGFuIGltcG9ydCBmaWxlIGlzIHJlcHJlc2VudGVkIGFzIHRoZSBzdHJpbmcgdGhhdCBpcyBzaG93biBpbiB0aGUgZHJvcGRvd24gY29udHJvbCBpbiB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUuPC9wPg0KPC9saT4NCjxsaT5NdWx0aXNlbGVjdCBGaWVsZHMNCiAgICA8cD5NdWx0aXNlbGVjdCBmaWVsZHMgYXJlIGNvbnRhaW5lZCB3aXRoaW4gdGhlIEFTQ0lJIGZpbGUgYXMgYSA6IHNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZ3MsIHdoZXJlIGVhY2ggc3RyaW5nIHJlcHJlc2VudHMgdGhlIHRleHQgc2hvd24gaW4gdGhlIG11bHRpc2VsZWN0IGxpc3Q8L3A+DQo8L2xpPg0KPGxpPkltYWdlIEZpZWxkcw0KICAgIDxwPkltYWdlIGFyZSBmaWVsZHMgd2hvXCdzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAn0JjQvNC/0L7RgNGCINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5INCyINGN0YLRgyDQs9GA0YPQv9C/0YMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAn0JLRhdC+0LTQvdC+0Lkg0YTQsNC50LsgQ1NWJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR4bWxmaWxlJ10gPSAn0JLRhdC+0LTQvdC+0Lkg0YTQsNC50LsgWE1MJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ9Ct0LrRgdC/0L7RgNGCINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR1c2VycyddID0gJ9CY0LzQv9C+0YDRgiDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSc7CiRsYW5nWydwcm9tcHRfY2xlYXInXSA9ICfQntGH0LjRgdGC0LrQsCc7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ0ltYWdlIERlc3RpbmF0aW9uIFBhdGgnOwokbGFuZ1snZXJyb3JfbWlzc2luZ191cGxvYWQnXSA9ICdBIHByb2JsZW0gb2NjdXJyZWQgd2l0aCBhIG1pc3NpbmcgKGJ1dCByZXF1aXJlZCkgdXBsb2FkJzsKJGxhbmdbJ2Vycm9yX2JhZF94bWwnXSA9ICdDb3VsZCBub3QgcGFyc2UgdGhlIHByb3ZpZGVkIFhNTCBmaWxlJzsKJGxhbmdbJ2Vycm9yX25vdGVtcHR5Z3JvdXAnXSA9ICdDYW5ub3QgZGVsZXRlIGEgZ3JvdXAgdGhhdCBzdGlsbCBoYXMgdXNlcnMnOwokbGFuZ1snZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucyddID0gJ1RoaXMgdXNlciBpcyBhbHJlYWR5IGxvZ2dlZCBpbic7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdUaGUgdGV4dCBmcm9tIHRoZSBpbWFnZSB3YXMgbm90IGVudGVyZWQgY29ycmVjdGx5JzsKJGxhbmdbJ3Byb21wdF9hbGxvd19yZXBlYXRlZF9sb2dpbnMnXSA9ICdBbGxvdyB1c2VycyB0byBsb2dpbiBtb3JlIHRoYW4gb25jZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnSW1hZ2UgRmlsZSBFeHRlbnNpb25zIHRoYXQgVXNlcnMgYWxsb3dlZCB0byB1cGxvYWQnOwokbGFuZ1snZXZlbnRfaGVscF9PblJlZnJlc2hVc2VyJ10gPSAnPGgzPk9uUmVmcmVzaFVzZXI8L2gzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gdGhlIHVzZXIgc2Vzc2lvbiBpcyByZWZyZXNoZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM6PC9oND4NCjx1bD4NCiAgPGxpPjxlbT5pZDwvZW0+IC0gVGhlIFVzZXIgaWQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlVXNlciddID0gJzxoMz5PbkRlbGV0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgZGVsZXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZVVzZXInXSA9ICc8aDM+T25DcmVhdGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PblVwZGF0ZVVzZXInXSA9ICc8aDM+T25VcGRhdGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIHVwZGF0ZWQgKGVpdGhlciBieSB1c2VyIHRoZW1zZWxmIG9yIGFkbWluKTwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlR3JvdXAnXSA9ICc8aDM+T25DcmVhdGVHcm91cDxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZ3JvdXAgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIGdyb3VwIG5hbWU8L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gVGhlIGdyb3VwIGRlc2NyaXB0aW9uPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlR3JvdXAnXSA9ICc8aDM+T25EZWxldGVHcm91cDxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZ3JvdXAgaXMgZGVsZXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIGdyb3VwIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dpbiddID0gJzxoMz5PbkxvZ2luPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgaWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBUaGUgaXAgYWRkcmVzcyBvZiB0aGUgY2xpZW50PC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWRvdXQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25FeHBpcmVVc2VyJ10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gZXhwaXJlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluIHRvIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dCBvZiB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gaXMgZXhwaXJlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgbmV3IHVzZXIgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uUmVmcmVzaFVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiB0aGUgdXNlciBzZXNzaW9uIGlzIHJlZnJlc2hlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpbmZvIGlzIHVwZGF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgYWNjb3VudCBpcyBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyB1cGRhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBkZWxldGVkJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdCYWNrZW5kIEdyb3VwJzsKJGxhbmdbJ2luZm9fc3RhciddID0gJyogVGhlIGZvbGxvd2luZyBtYWNyb3MgY2FuIGJlIHVzZWQgaW4gdGhlc2UgZmllbGRzOiB7JHVzZXJuYW1lfSx7JGdyb3VwfS4gV2hlbiB1c2luZyB0aGUgeyRncm91cH0gbWFjcm8sIHRoZSBzeXN0ZW0gd2lsbCBzdWJzaXR1dGUgdGhlIG5hbWUgb2YgdGhlIGZpcnN0IG1lbWJlciBncm91cCB0aGF0IHRoZSB1c2VyIGJlbG9uZ3MgdG8sIGFuZCB3aWxsIHJlZGlyZWN0IHRvIHRoYXQgcGFnZS4nOwokbGFuZ1snaW5mb19hZG1pbl9wYXNzd29yZCddID0gJ0VkaXQgdGhpcyBmaWVsZCB0byByZXNldCB0aGUgdXNlcnMgcGFzc3dvcmQnOwokbGFuZ1snaW5mb19hZG1pbl9yZXBlYXRwYXNzd29yZCddID0gJ0VkaXQgdGhpcyBmaWVsZCB0byByZXNldCB0aGUgdXNlcnMgcGFzc3dvcmQnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnQSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydub2NzdnJlc3VsdHMnXSA9ICdObyByZXN1bHRzIHJldHVybmVkIGZyb20gY3N2IGV4cG9ydCc7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdMZW5ndGggb2YgdXNlcm5hbWUgZmllbGQnOwokbGFuZ1sncHJvbXB0X3B3ZmxkbGVuJ10gPSAnTGVuZ3RoIG9mIHBhc3N3b3JkIGZpZWxkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICdNaW4vTWF4IHBhc3N3b3JkIGxlbmd0aHMgYXJlIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ01pbi9NYXggdXNlcm5hbWUgbGVuZ3RocyBhcmUgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZW1haWxhZGRyZXNzJ10gPSAnSW52YWxpZCBFbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxhZGRyZXNzJ10gPSAnV2UgY291bGQgbm90IGZpbmQgYW4gZW1haWwgYWRkcmVzcyBmb3IgdGhpcyBhY2NvdW50JzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdQcm9ibGVtIHNldHRpbmcgdXNlciBpbmZvJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ1Byb2JsZW0gc2V0dGluZyBwcm9wZXJ0eSc7CiRsYW5nWyd1c2VyX2FkZGVkJ10gPSAnVXNlciBBZGRlZCAlcyA9ICVzJzsKJGxhbmdbJ3VzZXJfZGVsZXRlZCddID0gJ1VzZXIgRGVsZXRlZCB1aWQ9JXMnOwokbGFuZ1sncHJvcGVydHlmaWx0ZXInXSA9ICdQcm9wZXJ0eSc7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnVmFsdWUgKHJlZ3VsYXIgZXhwcmVzc2lvbiknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdXYXJuaW5nOiBUaGVzZSBmaWVsZHMgYWZmZWN0IHRoZSBzaXplIG9mIGlucHV0IGZpZWxkcyBmb3IgZm9ybXMuICBEZWNyZWFzaW5nIHRoaXMgbnVtYmVyIG9uIGFuIGV4aXN0aW5nIHNpdGUgbWF5IG5vdCBiZSBhZHZpc2FibGUnOwokbGFuZ1snY29uZmlybV9zdWJtaXRwcmVmcyddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhZGp1c3QgdGhlIG1vZHVsZSBwcmVmZXJlbmNlcz8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0VtYWlsIGFkZHJlc3MgYWxyZWFkeSB1c2VkJzsKJGxhbmdbJ3Byb21wdF91c2Vjb29raWVzdG9yZW1lbWJlciddID0gJ1VzZSBjb29raWVzIHRvIHJlbWVtYmVyIGxvZ2luIGRldGFpbHMnOwokbGFuZ1sncHJvbXB0X2Nvb2tpZW5hbWUnXSA9ICdUaGUgbmFtZSBvZiB0aGUgY29va2llJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnQWxsb3cgZHVwbGljYXRlIGVtYWlscyc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdFbWFpbCBhZGRyZXNzIGlzIHVzZXJuYW1lJzsKJGxhbmdbJ2luZm9fY29va2llX2tlZXBhbGl2ZSddID0gJ0F0dGVtcHQgdG8ga2VlcCBsb2dpbnMgYWxpdmUgYnkgdGhlIHVzZSBvZiBhIGNvb2tpZSA8ZW0+KHRoZSBjb29raWUgaXMgcmVzZXQgb24gYWN0aXZpdHkgaW4gdGhlIHdlYnNpdGUpPC9lbT4nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKGFsbG93IG11bHRpcGxlIHVzZXJzIHdpdGggdGhlIHNhbWUgZW1haWwgYWRkcmVzcyknOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyh1c2VyXCdzIGVtYWlsIGFkZHJlc3MgaXMgdGhlaXIgdXNlcm5hbWUgLS0gZG9uXCd0IHNldCB0aGlzIHdpdGggImFsbG93IGR1cGxpY2F0ZSBlbWFpbCBhZGRyZXNzZXMiISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgImZvcmdvdCBwYXNzd29yZCIgcmVtaW5kZXJzPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoYWxsb3cgYSB1c2VycyB0byByZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQsIGV2ZW4gaWYgdGhleSBoYXZlblwndCBhY3RlZCBvbiBhIHByZXZpb3VzIG9uZSknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdVc2UgRnJvbnQtZW5kIFVzZXIgc3BlY2lmaWMgcGVybWlzc2lvbnM/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhOb3JtYWxseSwgRkVVU2VycyBwZXJtaXNzaW9ucyBhcmUgdGhlIHNhbWUgYXMgdGhlIGVxdWl2YWxlbnQgQWRtaW4gQXJlYSBwZXJtaXNzaW9ucyBsaWtlIEFkZCBVc2VyLCBBZGQgR3JvdXAsIGV0Yy4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlcmUgd2lsbCBiZSBzZXBhcmF0ZSBwZXJtaXNzaW9ucyBmb3IgRkVVc2Vycy4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkZWQgZmlsZSAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJ10gPSAnVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHlvdXIgdXBsb2FkZWQgZmlsZS4gIFBsZWFzZSB0cnkgYWdhaW4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnWW91IGRpZCBub3QgZW50ZXIgYSB1c2VybmFtZSc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdZb3UgZGlkIG5vdCBlbnRlciB5b3VyIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ1lvdSBkaWQgbm90IGVudGVyIGEgcGFzc3dvcmQnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ0Zyb250ZW5kIFVzZXIgTG9nb3V0JzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0Zyb250ZW5kIFVzZXIgTG9naW4nOwokbGFuZ1snZWRpdHByb3BfaW5mb21zZyddID0gJzxmb250IGNvbG9yPSJyZWQiPjxiPlVTRSBDQVVUSU9OPC9iPiB3aGVuIGNoYW5naW5nIGV4aXN0aW5nIHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gZ3JvdXBzLCB5b3UgbWF5IHBvdGVudGlhbGx5IGNhdXNlIGRhbWFnZSBhbmQgYnJlYWsgYW4gZXhpc3Rpbmcgc2l0ZSA8aT4oZXNwZWNpYWxseSBpZiB5b3UgcmVkdWNlIGZpZWxkIGxlbmd0aHMsIGV0Yyk8L2k+PC9mb250Pic7CiRsYW5nWydpbmZvX3NtdHB2YWxpZGF0ZSddID0gJ1RoaXMgZnVuY3Rpb24gZG9lcyBub3Qgd29yayBvbiB3aW5kb3dzJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdEbyBub3QgY3JlYXRlIGEgcHJvcGVydHkgZm9yIHVzZXJuYW1lLCBvciBwYXNzd29yZCBhcyB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBidWlsdGluIHRvIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfZXhwb3J0Y3N2J10gPSAnRXhwb3J0IFVzZXJzIHRvIENTVic7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnQnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0JzsKJGxhbmdbJ2FkbWluJ10gPSAnQWRtaW4nOwokbGFuZ1snZWRpdHByb3AnXSA9ICdFZGl0IFByb3BlcnR5JzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdDcmVhdGVkJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnQgQnknOwokbGFuZ1snc29ydCddID0gJ1NvcnRpbmcnOwokbGFuZ1sndXNlcnNpbmdyb3VwJ10gPSAnVXNlcnMgaW4gdGhlIHNlbGVjdGVkIGdyb3VwKHMpJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ0xpbWl0IHJlc3VsdHMgdG8nOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGZpZWxkJ10gPSAnQ291bGQgbm90IGZpbmQgYW4gZW1haWwgZmllbGQgZm9yIHRoaXMgdXNlci4gIFlvdSBtYXkgbmVlZCB0byBjb250YWN0IHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvcic7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyBmb3IgRm9yZ290IFBhc3N3b3JkIGZvcm0nOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzX3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgZm9yIENoYW5nZSBTZXR0aW5ncyBmb3JtJzsKJGxhbmdbJ3Byb21wdF9sb2dpbl9wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgbG9naW4gKic7CiRsYW5nWydwcm9tcHRfbG9nb3V0X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBsb2dvdXQgKic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0IG9yZGVyJzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ0EgbnVtYmVyIG9mIHVzZXJzIGFyZSBpbiB0aGUgbWlkZGxlIG9mIHJlc2V0dGluZyBsb3N0IHBhc3N3b3Jkcy4gIEN1cnJlbnRseSB0aGlzIGNvdW50IGlzIGF0Oic7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ1JlbW92ZSBhbGwgZW50cmllcyBtb3JlIHRoYW4gYSB3ZWVrIG9sZCc7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdSZW1vdmUgYWxsIGVudHJpZXMgbW9yZSB0aGFuIGEgbW9udGggb2xkJzsKJGxhbmdbJ3JlbW92ZWFsbCddID0gJ1JlbW92ZSBhbGwgZW50cmllcyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnQXJlIHlvdSBzdXJlPyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ0FuIGludmFsaWQgY29kZSBoYXMgYmVlbiBlbnRlcmVkLCBwbGVhc2UgdHJ5IGFnYWluJzsKJGxhbmdbJ2Vycm9yX3RlbXBjb2Rlbm90Zm91bmQnXSA9ICdBIHRlbXBvcmFyeSBjb2RlIGZvciB5b3VyIHVzZXIgaWQgY291bGQgbm90IGJlIGZvdW5kIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHVzZWQgdG8gZGlzcGxheSB2ZXJpZmljYXRpb24gZm9ybSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdXNlZCBmb3IgZm9yZ290dGVuIHBhc3N3b3JkIGVtYWlsJzsKJGxhbmdbJ2Vycm9yX3Jlc2V0YWxyZWFkeXNlbnQnXSA9ICdFaXRoZXIgeW91cnNlbGYgb3Igc29tZW9uZSBlbHNlIGhhcyBhbHJlYWR5IHRyaWdnZXJlZCBhIHBhc3N3b3JkIHJlc2V0IG9wZXJhdGlvbiBmb3IgdGhpcyBhY2NvdW50LiAgQ2hlY2sgeW91ciBlbWFpbCwgeW91IG1heSBoYXZlIGZ1cnRoZXIgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byByZXNldCB5b3VyIHBhc3N3b3JkIGluIHlvdXIgaW5ib3gnOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ9Ce0YjQuNCx0LrQsCDQsdCw0LfRiyDQtNCw0L3QvdGL0YUnOwokbGFuZ1snbWVzc2FnZV9mb3Jnb3Rwd2VtYWlsJ10gPSAnWW91IGFyZSByZWNlaXZpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2Ugc29tZWJvZHkgdG9sZCBvdXIgc2l0ZSB0aGF0IHlvdSBoYWQgbG9zdCB5b3VyIHBhc3N3b3JkLiAgSWYgdGhpcyBpcyB0aGUgY2FzZSwgcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zIGJlbG93LiAgSWYgeW91IGRvblwndCBoYXZlIGEgY2x1ZSB3aGF0IHRoaXMgaXMsIHRoZW4geW91IGFyZSBzYWZlIHRvIGRlbGV0ZSB0aGlzIG1lc3NhZ2UsIGFuZCB3ZSB0aGFuayB5b3UgZm9yIHlvdXIgdGltZS4nOwokbGFuZ1sncHJvbXB0X2NvZGUnXSA9ICfQmtC+0LQnOwokbGFuZ1snbWVzc2FnZV9jb2RlJ10gPSAnVGhlIGZvbGxvd2luZyBjb2RlIGhhcyBiZWVuIGdlbmVyYXRlZCByYW5kb21seSBnZW5lcmF0ZWQgaW4gb3JkZXIgdG8gdmVyaWZ5IHRoZSB1c2VyIGFjY291bnQuICB3aGVuIHlvdSBjbGljayBvbiB0aGUgbGluayBiZWxvdyB5b3Ugd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBhIGZpZWxkIHRvIGVudGVyIHRoaXMgY29kZS4gIE5vcm1hbGx5IHRoZSBmaWVsZCBpcyBwcmUtY29tcGxldGVkIGZvciB5b3UsIGJ1dCBpbmNhc2UgaXQgaXNuXCd0IHRoZSBjb2RlIGlzOic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0NsaWNraW5nIG9uIHRoZSBmb2xsb3dpbmcgbGluayB3aWxsIHRha2UgeW91IHRvIHRoZSB3ZWJzaXRlIHdoZXJlIHlvdSBjYW4gZW50ZXIgdGhlIGFib3ZlIGNvZGUsIGFuZCByZXNldCB5b3VyIHBhc3N3b3JkOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAn0JfQsNCx0YvQu9C4INC/0LDRgNC+0LvRjCc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L3QsNC50YLQuCDQvNC+0LTRg9C70YwgQ01TTWFpbGVyJzsKJGxhbmdbJ2luZm9fZm9yZ290cHdtZXNzYWdlc2VudCddID0gJ9Cd0LAg0Y3Qu9C10LrRgtGA0L7QvdC90YPRjiDQv9C+0YfRgtGDINCx0YvQu9C+INCy0YvRgdC70LDQvdC+ICVzICDRgSDQuNC90YHRgtGA0YPQutGG0LjQtdC5INC60LDQuiDRgdCx0YDQvtGB0LjRgtGMINC/0LDRgNC+0LvRjC4g0KHQv9Cw0YHQuNCx0L4nOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICfQmNGC0LDQuiDQstGLINC30LDQsdGL0LvQuCDQuNC70Lgg0L/QvtGC0LXRgNGP0LvQuCDRgdCy0L7QuSDQv9Cw0YDQvtC70YwuINCl0L7RgNC+0YjQviwg0LLQstC10LTQuNGC0LUg0LjQvNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiDRgdC40YHRgtC10LzRgywg0Lgg0LXRgdC70Lgg0LzRiyDRgdC80L7QttC10Lwg0L3QsNC50YLQuCDQstCw0YEg0LzRiyDQvtGC0L/RgNCw0LLQuNC8INCy0LDQvCDQv9C40YHRjNC80L4g0YEg0LjQvdGB0YLRgNGD0LrRhtC40LXQuSDQv9C+INGB0LzQtdC90LUg0L/QsNGA0L7Qu9GPJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3RlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INCy0L7RgdGB0YLQsNC90L7QstC70LXQvdC40Y8g0L/QsNGA0L7Qu9GPJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQstC+0YHRgdGC0LDQvdC+0LLQu9C10L3QuNGPINC40LzQtdC90Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKJGxhbmdbJ2Vycm9yX3Byb3Bub3Rmb3VuZCddID0gJ9Ch0LLQvtC50YHRgtCy0L4gJXMg0L3QtSDQvdCw0LnQtNC10L3Qvic7CiRsYW5nWydwcm9wc2ZvdW5kJ10gPSAn0KHQstC+0LnRgdGC0LLQsCDQvdCw0LnQtNC10L3Riyc7CiRsYW5nWydhZGRwcm9wJ10gPSAn0JTQvtCx0LDQstC40YLRjCDRgdCy0L7QudGB0YLQstC+JzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICfQntCx0Y/Qt9Cw0YLQtdC70YzQvdC+0LUg0L/QvtC70LUgKCVzKSDQvdC1INC30LDQv9C+0LvQvdC10L3Qvic7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ0VudGVyIGEgbmV3IHBhc3N3b3JkIGhlcmUgdG8gY2hhbmdlIHlvdXIgcGFzc3dvcmQnOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdZb3UgZG8gbm90IGFwcGVhciB0byBiZSBsb2dnZWQgaW4nOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ9Cg0LXQs9C40YHRgtGA0LDRhtC40Y8nOwokbGFuZ1snZXJyb3JfYWNjb3VudGV4cGlyZWQnXSA9ICfQrdGC0LAg0YPRh9C10YLQvdCw0Y8g0LfQsNC/0LjRgdGMINC/0YDQvtGB0YDQvtGH0LXQvdCwJzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdJbXByb3BlciBlbWFpbCBhZGRyZXNzIGZvcm1hdHRpbmcnOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdJbnZhbGlkIGV4cGlyeSBkYXRlJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdFcnJvciBzZXR0aW5nIHByb3BlcnR5ICVzIGZvciB1c2VyICRzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRncm91cGlkJ10gPSAnSW52YWxpZCBncm91cCBpZCAlcyc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ0hpZGRlbiBmaWVsZCBtYXJrZXInOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0hpZGRlbiBmaWVsZCBjb2xvcic7CiRsYW5nWydoaWRkZW4nXSA9ICdIaWRkZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlbmFtZSddID0gJ0EgcHJvcGVydHkgd2l0aCB0aGF0IG5hbWUgaXMgYWxyZWFkeSBkZWZpbmVkJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ05vIHByb3BlcnRpZXMgZGVmaW5lZCc7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ05vIHByb3BlcnRpZXMgd2VyZSBzZWxlY3RlZCBmb3IgdGhpcyBncm91cCc7CiRsYW5nWydub2dyb3VwcyddID0gJ9Cd0LXRgiDQvtC/0YDQtdC00LXQu9GR0L3QvdGL0YUg0LPRgNGD0L/Qvyc7CiRsYW5nWydncm91cHNmb3VuZCddID0gJ9Cd0LDQudC00LXQvdC+INCz0YDRg9C/0L8nOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ01lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdSZXF1aXJlIG1lbWJlcnNoaXAgaW4gYXRsZWFzdCBvbmUgZ3JvdXAnOwokbGFuZ1snYmFjayddID0gJ9Cd0LDQt9Cw0LQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzINGN0YLQviDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+0LUg0L/QvtC70LUnOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ9Cf0L7QvNC10YfQsNGC0Ywg0L7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C1INC/0L7Qu9GPJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ0hpbGl0ZSByZXF1aXJlZCBmaWVsZHMgaW4nOwokbGFuZ1snbmV4dCddID0gJ9CU0LDQu9GM0YjQtSc7CiRsYW5nWydlcnJvcl9ncm91cGV4aXN0cyddID0gJ0EgR3JvdXAgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWydvcHRpb25hbCddID0gJ09wdGlvbmFsJzsKJGxhbmdbJ29mZiddID0gJ09mZic7CiRsYW5nWydzaXplJ10gPSAn0KDQsNC30LzQtdGAJzsKJGxhbmdbJ3NpemVjb21tZW50J10gPSAnPGJyLz4oTWF4aW11bSBzaXplIG9mIGFueSBvbmUgZGltZW5zaW9uIG9mIHRoZSBpbWFnZSBpbiBwaXhlbHMpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ9CU0LvQuNC90LAnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4o0YHQuNC80LLQvtC70L7QsiDQsiDQstCy0L7QtNC1INGC0LXQutGB0YLQsCknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ0Ryb3Bkb3duIG9wdGlvbnMsIHNlcGFyYXRlZCBieSBsaW5lIGJyZWFrcy4gIFZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIGZyb20gdGV4dCB3aXRoIGEgPSBjaGFyYWN0ZXIuIGkuZTogRmVtYWxlPWYnOwokbGFuZ1sncmFkaW9vcHRpb25zJ10gPSAnUmFkaW9idXR0b24gbGFiZWxzLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuIFZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIGZyb20gdGV4dCB3aXRoIGEgPSBjaGFyYWN0ZXIuIGkuZTogRmVtYWxlPWYnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ3Byb21wdF90eXBlJ10gPSAn0KLQuNC/JzsKJGxhbmdbJ3R5cGUnXSA9ICfQotC40L8nOwokbGFuZ1snZmllbGRzdGF0dXMnXSA9ICfQn9C+0LvQtSDRgdGC0LDRgtGD0YHQsCc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdBc2sgaW4gTG9zdDxici8+VXNlcm5hbWUnOwokbGFuZ1sndGV4dCddID0gJ9Ci0LXQutGB0YInOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ011bHRpIFNlbGVjdCBMaXN0JzsKJGxhbmdbJ3JhZGlvYnV0dG9ucyddID0gJ1JhZGlvIEJ1dHRvbnMnOwokbGFuZ1snaW1hZ2UnXSA9ICfQmNC30L7QsdGA0LDQttC10L3QuNC1JzsKJGxhbmdbJ2VtYWlsJ10gPSAn0JDQtNGA0LXRgSBlbWFpbCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ9Ce0LHQu9Cw0YHRgtGMINGC0LXQutGB0YLQsCc7CiRsYW5nWydkcm9wZG93biddID0gJ9Ch0L/QuNGB0L7Quic7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ9CU0L7QsdGA0L4g0L/QvtC20LDQu9C+0LLQsNGC0YwnOwokbGFuZ1snbG9nb3V0J10gPSAn0JLRi9GF0L7QtCc7CiRsYW5nWydwcm9tcHRfbmV3Z3JvdXBuYW1lJ10gPSAn0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSDRjdGC0L4g0L3QsNC30LLQsNC90LjQtSDQs9GA0YPQv9C/0YsnOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzJ10gPSAn0JjQt9C80LXQvdC40YLRjCDQvNC+0Lgg0L3QsNGB0YLRgNC+0LnQutC4JzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAn0JLRhdC+0LQg0L3QtSDRg9C00LDQu9GB0Y8gLSDQndC10LLQtdGA0L3QvtC1INC40LzRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0LjQu9C4INC/0LDRgNC+0LvRjD8nOwokbGFuZ1snbG9naW4nXSA9ICfQktGF0L7QtCc7CiRsYW5nWydwcm9tcHRfc2lnbmluX2J1dHRvbiddID0gJ1NpZ24gaW4gYnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ9CY0LzRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAn0JDQtNGA0LXRgSBlbWFpbCc7CiRsYW5nWydwcm9tcHRfcGFzc3dvcmQnXSA9ICfQn9Cw0YDQvtC70YwnOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICfQl9Cw0L/QvtC80L3QuNGC0Ywg0LzQtdC90Y8g0L3QsCDRjdGC0L7QvCDQutC+0LzQv9GM0Y7RgtC10YDQtSc7CiRsYW5nWydyZWdpc3RlciddID0gJ9Cg0LXQs9C40YHRgtGA0LDRhtC40Y8nOwokbGFuZ1snZm9yZ290cHcnXSA9ICfQl9Cw0LHRi9C70Lgg0LLQsNGIINC/0LDRgNC+0LvRjD8nOwokbGFuZ1snbG9zdHVzZXJuYW1lJ10gPSAn0JfQsNCx0YvQu9C4INCy0LDRiCDQu9C+0LPQuNC9Pyc7CiRsYW5nWydkZWZhdWx0cyddID0gJ9Cf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9JzsKJGxhbmdbJ2Vycm9yX3VzZXJub3Rmb3VuZCddID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L3QsNC50YLQuCDQuNC90YTQvtGA0LzQsNGG0LjRjiDQvtCxINGN0YLQvtC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtSc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAn0JjQvNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyAoJXMpINGD0LbQtSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8nOwokbGFuZ1sncHJvbXB0X3NtdHB2YWxpZGF0ZSddID0gJ9CY0YHQv9C+0LvRjNC30L7QstCw0YLRjCBTTVRQINC00LvRjyDQv9C+0LTRgtCy0LXQttC00LXQvdC40Y8gZW1haWwg0LDQtNGA0LXRgdCwPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICfQnNC40L3QuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAg0L/QsNGA0L7Qu9GPJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ9Cc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQtNC70LjQvdCwINC/0LDRgNC+0LvRjyc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICfQnNC40L3QuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAg0LjQvNC10L3QuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAn0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAg0LjQvNC10L3QuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1sncHJvbXB0X3Nlc3Npb250aW1lb3V0J10gPSAn0KLQsNC50Lwt0LDRg9GCINGB0LXQsNC90YHQsCAo0LIg0YHQtdC60YPQvdC00LDRhSknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ1VzZSBjb29raWVzIHRvIGtlZXAgbG9naW5zIGFsaXZlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnQWxsb3cgRW1haWwgUmVnaXN0cmF0aW9uJzsKJGxhbmdbJ3Byb21wdF9kZmx0Z3JvdXAnXSA9ICfQk9GA0YPQv9C/0LAg0L/Qvi3Rg9C80L7Qu9GH0LDQvdC40Y4g0LTQu9GPINC90L7QstC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nOwokbGFuZ1snY2hhbmdlc2V0dGluZ3NfdGVtcGxhdGUnXSA9ICfQmNC30LzQtdC90LjRgtGMINC90LDRgdGC0YDQvtC50LrQuCDRiNCw0LHQu9C+0L3QsCc7CiRsYW5nWydlcnJvcl9wYXNzd29yZG1pc21hdGNoJ10gPSAn0J/QsNGA0L7Qu9C4INC90LUg0YHQvtCy0L/QsNC00LDRjtGCJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ9Cd0LXQv9GA0LDQstC40LvRjNC90L7QtSDQuNC80Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZCddID0gJ9Cd0LXQv9GA0LDQstC40LvRjNC90YvQuSDQv9Cw0YDQvtC70YwnOwokbGFuZ1snZWRpdHVzZXInXSA9ICfQmNC30LzQtdC90LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyc7CiRsYW5nWyd2YWxpZCddID0gJ9CU0LXQudGB0YLQstC40YLQtdC70YzQvdGL0LknOwokbGFuZ1sndXNlcm5hbWUnXSA9ICfQmNC80Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKJGxhbmdbJ3N0YXR1cyddID0gJ9Ch0YLQsNGC0YPRgSc7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICfQrdGC0L7RgiDQv9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L3QtSDRj9Cy0LvRj9C10YLRgdGPINGH0LvQtdC90L7QvCDQutCw0LrQvtC5LdC70LjQsdC+INCz0YDRg9C/0L/Riyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAn0J3QtdGCINGB0LLQvtC50YHRgtCyJzsKJGxhbmdbJ2Vycm9yX2R1cF9wcm9wZXJ0aWVzJ10gPSAn0J/QvtC/0YvRgtC60LAg0LjQvNC/0L7RgNGC0LAg0LTRg9Cx0LvQuNC60LDRgtCwINGB0LLQvtC50YHRgtCy0LAnOwokbGFuZ1sndmFsdWUnXSA9ICfQl9C90LDRh9C10L3QuNC1JzsKJGxhbmdbJ2dyb3VwcyddID0gJ9CT0YDRg9C/0L/Riyc7CiRsYW5nWydwcm9wZXJ0aWVzJ10gPSAn0KHQstC+0LnRgdGC0LLQsCc7CiRsYW5nWydwcm9wbmFtZSddID0gJ9Cd0LDQt9Cy0LDQvdC40LUg0YHQstC+0LnRgdGC0LLQsCc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICfQl9C90LDRh9C10L3QuNC1INGB0LLQvtC50YHRgtCy0LAnOwokbGFuZ1snYWRkJ10gPSAn0JTQvtCx0LDQstC40YLRjCc7CiRsYW5nWydoaXN0b3J5J10gPSAn0JjRgdGC0L7RgNC40Y8nOwokbGFuZ1snZWRpdCddID0gJ9CY0LfQvNC10L3QuNGC0YwnOwokbGFuZ1snZXhwaXJlcyddID0gJ9CY0YHRgtC10LrQsNC10YInOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAn0KPQutCw0LbQuNGC0LUg0LTQsNGC0YMnOwokbGFuZ1snMTJocnMnXSA9ICcxMiDRh9Cw0YHQvtCyJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQg0YfQsNGB0LAnOwokbGFuZ1snNDhocnMnXSA9ICc0OCDRh9Cw0YHQvtCyJzsKJGxhbmdbJzF3ZWVrJ10gPSAnMSDQvdC10LTQtdC70Y8nOwokbGFuZ1snMndlZWtzJ10gPSAnMiDQvdC10LTQtdC70LgnOwokbGFuZ1snMW1vbnRoJ10gPSAnMSDQvNC10YHRj9GGJzsKJGxhbmdbJzNtb250aHMnXSA9ICczINC80LXRgdGP0YbQsCc7CiRsYW5nWyc2bW9udGhzJ10gPSAnNiDQvNC10YHRj9GG0LXQsic7CiRsYW5nWycxeWVhciddID0gJzEg0LPQvtC0JzsKJGxhbmdbJ25ldmVyJ10gPSAn0J3QuNC60L7Qs9C00LAnOwokbGFuZ1sncG9zdGluc3RhbGxtZXNzYWdlJ10gPSAnTW9kdWxlIGluc3RhbGxlZCBzdWNlc3NmdWxseS48YnIvPkJlIHN1cmUgdG8gc2V0IHRoZSAiTW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24uICBBZGRpdGlvbmFsbHksIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gIElmIGluc3RhbGxlZCwgdmFsaWRhdGlvbiBvZiBhIGNhcHRjaGEgaW1hZ2Ugd2lsbCBiZSByZXF1aXJlZCBpbiBhZGRpdGlvbiB0byB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ2luLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGJydXRlIGZvcmNlIGF0dGFja3MuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBub2NhcHRjaGEgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGV2ZW4gaWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZC4iJzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAn0J/QsNGA0L7Qu9GMJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAn0JXRidGRINGA0LDQtyc7CiRsYW5nWydlcnJvcl9ncm91cG5hbWVfZXhpc3RzJ10gPSAn0JPRgNGD0L/Qv9CwINGBINGC0LDQutC40Lwg0LjQvNC10L3QtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydlZGl0Z3JvdXAnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQs9GA0YPQv9C/0YMnOwokbGFuZ1snc3VibWl0J10gPSAn0J7RgtC/0YDQsNCy0LjRgtGMJzsKJGxhbmdbJ2NhbmNlbCddID0gJ9Ce0YLQvNC10L3QsCc7CiRsYW5nWydkZWxldGUnXSA9ICfQo9C00LDQu9C40YLRjCc7CiRsYW5nWydjb25maXJtX2VkaXRncm91cCddID0gJ0FyZSB5b3Ugc3VyZSB0aGlzIGlzIHRoZSBwcm9wZXIgc2V0dGluZ3MgZm9yIHRoaXMgZ3JvdXA/XFxuVHVybmluZyBhIHByb3BlcnR5IG9mZiB3aWxsIG5vdCBkZWxldGUgYW55IGVudHJpZXMgaW4gdGhlIHByb3BlcnRpZXMgdGFibGUgZm9yIHRoaXMgZ3JvdXAvdXNlci4gIFRoZXkgd2lsbCBtZXJlbHkgYmUgdW5hdmFpbGFibGUuJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlZ3JvdXAnXSA9ICfQktGLINGD0LLQtdGA0LXQvdGLINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtGDINCz0YDRg9C/0L/Rgz8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfcHJvcCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb21wbGV0ZWx5IGRlbGV0ZSB0aGlzIHByb3BlcnR5P1xcbkRvaW5nIHNvIHdpbGwgYWxzbyBlcmFzZSBhbnkgdXNlciBlbnRyaWVzIGZvciB0aGlzIHByb3BlcnR5Lic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICfQndC10LTQvtGB0YLQsNGC0L7Rh9C90L4g0L/QsNGA0LDQvNC10YLRgNC+0LInOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWyduYW1lJ10gPSAn0JjQvNGPJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRwcm9wJ10gPSAn0J/RgNC+0LHQu9C10LzQsCDQtNC+0LHQsNCy0LvQtdC90LjRjyDRgdCy0L7QudGB0YLQstCwJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cHJlbG4nXSA9ICfQn9GA0L7QsdC70LXQvNCwINC/0YDQuCDQtNC+0LHQsNCy0LvQtdC90LjQuCDRgdCy0Y/Qt9C4INCz0YDRg9C/0L/Riyc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXAnXSA9ICfQn9GA0L7QsdC70LXQvNCwINC00L7QsdCw0LLQu9C10L3QuNGPINCz0YDRg9C/0L/Riyc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ9Cf0YDQvtCx0LvQtdC80LAg0LTQvtCx0LDQstC70LXQvdC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINCyINCz0YDRg9C/0L/Rgyc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAn0J/RgNC+0LHQu9C10LzQsCDRg9C00LDQu9C10L3QuNGPINGB0LLQvtC50YHRgtCy0LAnOwokbGFuZ1snZXJyb3JfY291bGRub3RmaW5kZW1haWwnXSA9ICfQndC1INGD0LTQsNC70L7RgdGMINC90LDQudGC0LggZW1haWwnOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ9Cd0LXRgiDQv9GA0LDQsiDQvdCwINC30LDQv9C40YHRjCDQsiDQv9Cw0L/QutGDINC90LDQt9C90LDRh9C10L3QuNGPJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbXMnXSA9ICfQndC10L/RgNCw0LLQuNC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvdCw0LnRgtC4INC60LDQutC40LUt0LvQuNCx0L4g0LPRgNGD0L/Qv9GLJzsKJGxhbmdbJ2FwcGx5ZmlsdGVyJ10gPSAn0J/RgNC40LzQtdC90LjRgtGMJzsKJGxhbmdbJ2ZpbHRlciddID0gJ9Ck0LjQu9GM0YLRgCc7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAn0JjQvNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICfQntC/0LjRgdCw0L3QuNC1JzsKJGxhbmdbJ2dyb3VwbmFtZSddID0gJ9CY0LzRjyDQs9GA0YPQv9C/0YsnOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAn0JTQvtGB0YLRg9C/INC30LDQv9GA0LXRidGR0L0nOwokbGFuZ1snZXJyb3InXSA9ICfQntGI0LjQsdC60LAnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINCz0YDRg9C/0L/Rgyc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ9CY0LzQv9C+0YDRgiDQs9GA0YPQv9C/0YsnOwokbGFuZ1snYWRkdXNlciddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICfQndCw0LnQtNC10L3RiyDQv9C+0LvRjNC30L7QstCw0YLQtdC70LgsINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQtSDQutGA0LjRgtC10YDQuNGOJzsKJGxhbmdbJ2dyb3VwJ10gPSAn0JPRgNGD0L/Qv9CwJzsKJGxhbmdbJ3NlbGVjdGdyb3VwJ10gPSAn0JLRi9Cx0LXRgNC40YLQtSDQs9GA0YPQv9C/0YMnOwokbGFuZ1sncmVnaXN0cmF0aW9uX3RlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INGA0LXQs9C40YHRgtGA0LDRhtC40LgnOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INCy0YvRhdC+0LTQsCc7CiRsYW5nWydsb2dpbl90ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDQstGF0L7QtNCwJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4JzsKJGxhbmdbJ3VzZXJzJ10gPSAn0J/QvtC70YzQt9C+0LLQsNGC0LXQu9C4JzsKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ9CY0L3RgtC10YDRhNC10LnRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y/QvNC4JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAn0KDQsNC30YDQtdGI0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRj9C8INCy0L7QudGC0Lgg0LLQviDRhNGA0L7QvdGC0LXQvdC0INCy0LDRiNC10LPQviDRgdCw0LnRgtCwJzsKJGxhbmdbJ2RlZmF1bHRmcm9udHBhZ2UnXSA9ICfQk9C70LDQstC90LDRjyDRgdGC0YDQsNC90LjRhtCwINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOICc7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAn0J/QvtGB0LvQtdC00L3QuNC5INC00L7RgdGC0YPQvyDQuiDRgdGC0YDQsNC90LjRhtC1JzsKJGxhbmdbJ290aGVycGFnZSddID0gJ9CU0YDRg9Cz0LDRjyDRgdGC0YDQsNC90LjRhtCwOiAnOwokbGFuZ1snY2FwdGNoYV90aXRsZSddID0gJ9CS0LLQtdC00LjRgtC1INC60L7QtCDRgSDQutCw0YDRgtC40L3QutC4JzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FwcGxpZWQnXSA9ICdVcHJhdmVuJmVhY3V0ZTsnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ3BhZ2UnXSA9ICdTdHJhbmEnOwokbGFuZ1sncHJvbXB0X2FsbG93X2NoYW5nZXVzZXJuYW1lJ10gPSAnUG92b2xpxaUgem1lbnUgcG91xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTtobyBtZW5hJzsKJGxhbmdbJ2luZm9fYWxsb3dfY2hhbmdldXNlcm5hbWUnXSA9ICdQb3XFviZpYWN1dGU7dmF0ZcS+IHNpIG0mb2NpcmM7xb5lIHptZW5pxaUgamVobyBwb3XFviZpYWN1dGU7dmF0ZcS+c2smZWFjdXRlOyBtZW5vIHNwb2x1IHMgb3N0YXRuJnlhY3V0ZTttaSAmdWFjdXRlO2Rham1pJzsKJGxhbmdbJ3RlbXBsYXRlX3NhdmVkJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHVsb8W+ZW4mYWFjdXRlOyc7CiRsYW5nWyd0ZW1wbGF0ZV9yZXNldGRlZmF1bHRzJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHptZW5lbiZhYWN1dGU7IG5hIHByZWRuYXN0YXZlbiZ1YWN1dGU7JzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ05hc3RhdmVuaWEnOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWydlbmFibGVfY2FwdGNoYSddID0gJ1Bvdm9sacWlIG92ZXJlbmllIGNhcHRjaGEgdiBwcmlobGFzb3ZhY2lvbSBmb3JtdWwmYWFjdXRlO3JpJzsKJGxhbmdbJ2luZm9fZW5hYmxlX2NhcHRjaGEnXSA9ICdBayBwb3XFviZpYWN1dGU7dmF0ZcS+IG5pZSBqZSBwcmlobCZhYWN1dGU7c2VueSBhIGplIHpvYnJhemVuJnlhY3V0ZTsgcHJpaGxhc292YWMmaWFjdXRlOyBmb3JtdWwmYWFjdXRlO3IsIHRvdG8gbmFzdGF2ZW5pZSBvdnBsaXZuJmlhY3V0ZTssIMSNaSBidWRlIHBvdcW+aXQmZWFjdXRlOyBvdmVyZW5pZSBwb21vY291IGsmb2FjdXRlO2R1IGNhcHRjaGEsIHBva2lhxL4gamUgZG9zdHVwbiZ5YWN1dGU7Lic7CiRsYW5nWydwYWdldHlwZV91bmF1dGhvcml6ZWQnXSA9ICdOZW0mYWFjdXRlO3RlIG9wciZhYWN1dGU7dm5lbmllIG5hIHByZXplcmFuaWUgdG9ob3RvIG9ic2FodSc7CiRsYW5nWydpbmZvX2NvbnRlbnRwYWdlX2dyb3VwbGlzdCddID0gJ05hc3RhdiB6b3puYW0gRkVVIHBvdcW+JmlhY3V0ZTt2YXRlxL5zayZ5YWN1dGU7Y2ggc2t1cCZpYWN1dGU7biwga3RvciZlYWN1dGU7IG1haiZ1YWN1dGU7IHByJmlhY3V0ZTtzdHVwIGsgdGVqdG8gc3RyJmFhY3V0ZTtua2UuIFBva2lhxL4gbmllIGplIHZ5YnJhbiZhYWN1dGU7IMW+aWFkbmEgc2t1cGluYSwgbWFqJnVhY3V0ZTsgayBuZWogcHImaWFjdXRlO3N0dXAgdiZzY2Fyb247ZXRjaSBwcmlobCZhYWN1dGU7c2VuJnlhY3V0ZTsgcG91xb4maWFjdXRlO3ZhdGVsaWEuJzsKJGxhbmdbJ3BhZ2V0eXBlX3NldHRpbmdzJ10gPSAnTmFzdGF2ZW5pYSBjaHImYWFjdXRlO25lbiZ5YWN1dGU7Y2ggc3RyJmFhY3V0ZTtub2snOwokbGFuZ1sncGFnZXR5cGVfZ3JvdXBzJ10gPSAnUG92b2xlbiZlYWN1dGU7IHNrdXBpbnknOwokbGFuZ1snaW5mb19wYWdldHlwZV9ncm91cHMnXSA9ICdWeWJlcnRlIHNrdXBpbnksIGt0b3ImeWFjdXRlO20gamUgeiZhYWN1dGU7a2xhZG5lIHBvdm9sZW4mZWFjdXRlOyB6b2JyYXplbmllIGNociZhYWN1dGU7bmVuJnlhY3V0ZTtjaCBzdHImYWFjdXRlO25vay4gQWRtaW5pc3RyJmFhY3V0ZTt0b3IgcyBwciZhYWN1dGU7dmFtaSBwcmUgJnVhY3V0ZTtwcmF2dSBvYnNhaHUsIG0mYWFjdXRlOyBtb8W+bm9zxaUgdXByYXZpxaUgdGlldG8gbmFzdGF2ZW5pYSBwcmUgamVkbm90bGl2JmVhY3V0ZTsgc3RyJmFhY3V0ZTtua3kuJzsKJGxhbmdbJ3BhZ2V0eXBlX2FjdGlvbiddID0gJ0FrY2lhIHByaSBuZWRvc3RhdG/EjW5vbSBvcHImYWFjdXRlO3ZuZW4maWFjdXRlOyc7CiRsYW5nWydpbmZvX3BhZ2V0eXBlX2FjdGlvbiddID0gJ0FrY2lhLCBrdG9yJmFhY3V0ZTsgc2EgbSZhYWN1dGU7IHZ5a29uYcWlIHBva2lhxL4gcG91xb4maWFjdXRlO3ZhdGXEviBuZW0mYWFjdXRlOyBkb3N0YXRvxI1uJmVhY3V0ZTsgb3ByJmFhY3V0ZTt2bmVuaWEgbmEgem9icmF6ZW5pZSBvYnNhaHUuIE0mb2NpcmM7xb5lIGJ5xaUgcHJlc21lcm92YW4meWFjdXRlOyBuYSB1csSNaXQmdWFjdXRlOyBzdHImYWFjdXRlO25rdSwgYWxlYm8gbXUgbSZvY2lyYzvFvmUgYnnFpSB6b2JyYXplbiZ5YWN1dGU7IHByaWhsYXNvdmFjJmlhY3V0ZTsgZm9ybXVsJmFhY3V0ZTtyJzsKJGxhbmdbJ3Nob3dsb2dpbmZvcm0nXSA9ICdab2JyYXppxaUgcHJpaGxhc292YWMmaWFjdXRlOyBmb3JtdWwmYWFjdXRlO3InOwokbGFuZ1sncmVkaXJlY3QnXSA9ICdQcmVzbWVyb3ZhxaUgbmEgc3RyJmFhY3V0ZTtua3UnOwokbGFuZ1sncGFnZXR5cGVfcmVkaXJlY3R0byddID0gJ1ByZXNtZXJvdmHFpSBuYSc7CiRsYW5nWydpbmZvX3BhZ2V0eXBlX3JlZGlyZWN0dG8nXSA9ICdWeWJlcnRlIHN0ciZhYWN1dGU7bmt1IG5hIGt0b3ImdWFjdXRlOyBtJmFhY3V0ZTsgYnnFpSBwb3XFviZpYWN1dGU7dmF0ZcS+IHByZXNtZXJvdmFuJnlhY3V0ZTsuIFBva2lhxL4gamUgYWtjaWEgbmFzdGF2ZW4mYWFjdXRlOyBuYSBwcmVzbWVyb3ZhbmllIGEgbmllIGplIHZ5YnJhbiZhYWN1dGU7IMW+aWFkbmEgc3RyJmFhY3V0ZTtua2EgcHJlIHByZXNtZXJvdmFuaWUsIHBvdcW+JmlhY3V0ZTt2YXRlxL5vdmkgYnVkZSB6b2JyYXplbiZhYWN1dGU7IHZhcm92biZhYWN1dGU7IHNwciZhYWN1dGU7dmEuJzsKJGxhbmdbJ3Blcm1pc3Npb25zJ10gPSAnT3ByJmFhY3V0ZTt2bmVuaWEnOwokbGFuZ1snZmV1X3Byb3RlY3RlZF9wYWdlJ10gPSAnQ2hyJmFhY3V0ZTtuZW4meWFjdXRlOyBvYnNhaCc7CiRsYW5nWydwcm9tcHRfdmlld3Byb3BzJ10gPSAnVnliZXJ0ZSBkb2RhdG/EjW4mZWFjdXRlOyB2bGFzdG5vc3RpIG5hIHpvYnJhemVuaWUnOwokbGFuZ1sndmlldyddID0gJ1pvYnJhemnFpSc7CiRsYW5nWydpbmZvX2lnbm9yZV91c2VyaWQnXSA9ICdJZiBjaGVja2VkIHRoZSBpbXBvcnQgcm91dGluZSB3aWxsIGF0dGVtcHQgdG8gYWRkIHVzZXJzIGluZGVwZW5kYW50IG9mIHRoZSB1c2VyaWQgY29sdW1uLiAgSWYgYSB1c2VyIHdpdGggdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZSBpbXBvcnQgZmlsZSBhbHJlYWR5IGV4aXN0cywgYW4gZXJyb3Igd2lsbCBiZSBnZW5lcmF0ZWQnOwokbGFuZ1snaWdub3JlX3VzZXJpZCddID0gJ0lnbm9yZSBVc2VySUQgQ29sdW1uIG9uIEltcG9ydCc7CiRsYW5nWydleHBvcnRfcGFzc2hhc2gnXSA9ICdFeHBvcnQgdGhlIHBhc3N3b3JkIGhhc2ggdG8gdGhlIGZpbGUnOwokbGFuZ1snaW5mb19leHBvcnRfcGFzc2hhc2gnXSA9ICdUaGUgcGFzc3dvcmQgaGFzaCBpcyBvbmx5IHVzZWZ1bCBpZiB0aGUgcGFzc3dvcmQgc2FsdCBvbiB0aGUgaW1wb3J0IGhvc3QgaXMgaWRlbnRpY2FsIHRvIHRoYXQgb2YgdGhlIGV4cG9ydCBob3N0JzsKJGxhbmdbJ2Vycm9yX2FkanVzdHNhbHQnXSA9ICdUaGUgcGFzc3dvcmQgc2FsdCBjYW5ub3QgYmUgYWRqdXN0ZWQnOwokbGFuZ1sncHJvbXB0X3B3c2FsdCddID0gJ1Bhc3N3b3JkIFNhbHQnOwokbGFuZ1snaW5mb19wd3NhbHQnXSA9ICdGRVUgcHJpZCZhYWN1dGU7dmEgcmXFpWF6ZWMgayBoZXNsdSBrYcW+ZCZlYWN1dGU7aG8gcG91xb4maWFjdXRlO3ZhdGXEvmEuIFBvIHRvbSBha28gcyZ1YWN1dGU7IHBvdcW+JmlhY3V0ZTt2YXRlbGlhIHByaWRhbiZ5YWN1dGU7IGRvIGRhdGFiJmFhY3V0ZTt6aSBuaWUgamUgbW/Fvm4mZWFjdXRlOyB0ZW50byByZcWlYXplYyBtZW5pxaUuIFByZSBzdGFyJnNjYXJvbjtpZSBpbiZzY2Fyb247dGFsJmFhY3V0ZTtjaWUgbSZvY2lyYzvFvmUgYnnFpSBwciZhYWN1dGU7emRueS4nOwokbGFuZ1snYWR2YW5jZWRfc2V0dGluZ3MnXSA9ICdSb3omc2Nhcm9uOyZpYWN1dGU7cmVuJmVhY3V0ZTsgbmFzdGF2ZW5pYSc7CiRsYW5nWydpbmZvX3Nlc3Npb250aW1lb3V0J10gPSAnxIxhc292JnlhY3V0ZTsgaW50ZXJ2YWwgcG8ga3Rvcm9tIGplIHBvdcW+JmlhY3V0ZTt2YXRlxL4gYXV0b21hdGljayZ5YWN1dGU7IG9kaGwmYWFjdXRlO3NlbiZ5YWN1dGU7IHogZCZvY2lyYzt2b2R1IG5lxI1pbm5vc3RpICh2IHNla3VuZCZhYWN1dGU7Y2gpJzsKJGxhbmdbJ3Byb21wdF9leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ0tvbnRyb2xhIGV4cGlyJmFhY3V0ZTtjaWUnOwokbGFuZ1snaW5mb19leHBpcmV1c2Vyc19pbnRlcnZhbCddID0gJ8SMYXNvdiZ5YWN1dGU7IGludGVydmFsLCBha28gxI1hc3RvIG0mYWFjdXRlOyBzeXN0JmVhY3V0ZTttIG4mdWFjdXRlO3RlbmUgb2RobCZhYWN1dGU7c2nFpSBwb3XFviZpYWN1dGU7dmF0ZcS+b3YsIGt0b3ImeWFjdXRlO2NoIHNlZGVuaWUgdnlwciZzY2Fyb247YWxvICh2IHNla3VuZCZhYWN1dGU7Y2gpLiBTbCZ1YWN1dGU7xb5pIGFrbyBvcHRpbWFsaXomYWFjdXRlO2NpYSBuYSB6biZpYWN1dGU7xb5lbmllIHphxaVhxb5lbmlhIGRhdGFiJmFhY3V0ZTt6aS4gUHJpIDAgc2Ega29udHJvbGEgdnlrb24mYWFjdXRlO3ZhIHByaSBrYcW+ZGVqIHBvxb5pYWRhdmtlLic7CiRsYW5nWydtc2dfc2V0dGluZ3NjaGFuZ2VkJ10gPSAnWW91ciBzZXR0aW5ncyB3ZXJlIHN1Y2Nlc3NmdWxseSB1cGRhdGVkJzsKJGxhbmdbJ2ZvcmNlZGxvZ291dHRhc2tfZGVzYyddID0gJ0ZvcmNlIHVzZXJzIHRvIGxvZ291dCBhdCByZWd1bGFyIGludGVydmFscyc7CiRsYW5nWydwcm9tcHRfZm9yY2Vsb2dvdXRfdGltZXMnXSA9ICfEjGFzaSBwcmUgbiZ1YWN1dGU7dGVuJmVhY3V0ZTsgb2RobCZhYWN1dGU7c2VuaWUnOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF90aW1lcyddID0gJ1pvem5hbSDEjWFzb3YsIG9kZGVsZW4meWFjdXRlO2NoIMSNaWFyb3YgdiB0dmFyZSBISDpNTSxISDpNTSwga2VkeSBtYWomdWFjdXRlOyBiecWlIHBvdcW+JmlhY3V0ZTt2YXRlbGlhIG4mdWFjdXRlO3RlbmUgb2RobCZhYWN1dGU7c2VuJnlhY3V0ZTsuIEJlcnRlIGRvICZ1YWN1dGU7dmFoeSwgxb5lIHNhIHZ5dcW+JmlhY3V0ZTt2YSBtZWNoYW5pem11cyBwc2V1ZG9jcm9uLCB0YWvFvmUgamUgcG90cmVibiZlYWN1dGU7IHYgZGFuJnlhY3V0ZTtjaCDEjWFzb2NoIHphaXN0acWlIHNwbG5lbmllIHBvZG1pZW5vayBuYSB2eXZvbGFuaWUgcHImaWFjdXRlO2thenUuJzsKJGxhbmdbJ3Byb21wdF9mb3JjZWxvZ291dF9zZXNzaW9uYWdlJ10gPSAnVnluZWNoYcWlIHBvdcW+JmlhY3V0ZTt2YXRlxL5vdiwga3RvciZ5YWN1dGU7IGJvbGkgYWt0JmlhY3V0ZTt2bnkgcG9zbGVkbiZ5YWN1dGU7Y2ggPGVtPihtaW4mdWFjdXRlO3QpPC9lbT4nOwokbGFuZ1snaW5mb19mb3JjZWxvZ291dF9zZXNzaW9uYWdlJ10gPSAnUG91xb4maWFjdXRlO3ZhdGXEviwga3RvciZ5YWN1dGU7IGJvbCBha3QmaWFjdXRlO3ZueSB2IGRhbm9tIMSNYXNvdm9tIHJvem1lZHomaWFjdXRlOywgbmVidWRlIG4mdWFjdXRlO3RlbmUgb2RobCZhYWN1dGU7c2VuJnlhY3V0ZTsuJzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgdXNlciAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZWV4dGVuc2lvbiddID0gJ1RoZSB1cGxvYWRlZCBmaWxlIGRvZXMgbm90IG1hdGNoIHRoZSBsaXN0IG9mIGFsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQWxsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZSBoYXMgYmVlbiBkZWxldGVkJzsKJGxhbmdbJ2luZm9fZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbiddID0gJ0lmIGVuYWJsZWQsIHRoaXMgbW9kdWxlIHdpbGwgbGlzdGVuIHRvIGV2ZW50cyBmcm9tIHRoZSBFY29tbWVyY2Ugc3VpdGUuICBUaGUgZm9sbG93aW5nIHNldHRpbmdzIG9ubHkgaGF2ZSBlZmZlY3QgaWYgdGhpcyBzZXR0aW5nIGlzIGVuYWJsZWQuJzsKJGxhbmdbJ3Byb21wdF9lY29tbV9wYWlkcmVnaXN0cmF0aW9uJ10gPSAnTGlzdGVuIHRvIE9yZGVyIEV2ZW50cyc7CiRsYW5nWydpbmZvX3BhaWRyZWdfc2V0dGluZ3MnXSA9ICdUaGUgZm9sbG93aW5nIHNldHRpbmdzIG9ubHkgYXBwbHkgaWYgdXNpbmcgc2VsZiByZWdpc3RyYXRpb24gYW5kIGFsbG93aW5nIGZvciBwYWlkIHJlZ2lzdHJhdGlvbic7CiRsYW5nWydub25lJ10gPSAnxb1pYWRuZSc7CiRsYW5nWydkZWxldGVfdXNlciddID0gJ09kc3RyJmFhY3V0ZTtuacWlIHXFvnZhdGXEvmEnOwokbGFuZ1snZXhwaXJlX3VzZXInXSA9ICdFeHBpciZhYWN1dGU7Y2lhIHXFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWydwcm9tcHRfYWN0aW9uX29yZGVyY2FuY2VsbGVkJ10gPSAnQWN0aW9uIHRvIHBlcmZvcm0gd2hlbiBhIHN1YnNjcmlwdGlvbiBvcmRlciBpcyBjYW5jZWxsZWQnOwokbGFuZ1sncHJvbXB0X2FjdGlvbl9vcmRlcmRlbGV0ZWQnXSA9ICdBY3Rpb24gdG8gcGVyZm9ybSB3aGVuIGEgc3Vic2NyaXB0aW9uIG9yZGVyIGlzIGRlbGV0ZWQnOwokbGFuZ1snZWNvbW1lcmNlX3NldHRpbmdzJ10gPSAnRWNvbW1lcmNlIFNldHRpbmdzJzsKJGxhbmdbJ3NlY3VyZWZpZWxkbWFya2VyJ10gPSAnT3puYcSNZW5pZSB6YWJlenBlxI1lbiZ5YWN1dGU7Y2ggcG9sJmlhY3V0ZTsnOwokbGFuZ1snc2VjdXJlZmllbGRjb2xvciddID0gJ0ZhcmJhIHphYmV6cGXEjWVuJnlhY3V0ZTtjaCBwb2wmaWFjdXRlOyc7CiRsYW5nWydwcm9tcHRfZW5jcnlwdCddID0gJ1Vsb8W+acWlIGQmYWFjdXRlO3RhIHYgZGF0YWImYWFjdXRlO3plICZzY2Fyb247aWZyb3ZhbiZlYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX25vdHN1cHBvcnRlZCddID0gJ1RoZSBjaG9zZW4gb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZ2l2ZW4geW91ciBjdXJyZW50IGNvbmZpZ3VyYXRpb24nOwokbGFuZ1snYXVkaXRfdXNlcl9jcmVhdGVkJ10gPSAnVXNlciBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQnOwokbGFuZ1snaW5mb19hdXRvX2NyZWF0ZV91bmtub3duJ10gPSAnQWsgamUgc2EgcG91xb4maWFjdXRlO3ZhdGXEviBhdXRlbnRpZmlrdWplIHBvbW9jb3UgZXh0ZXJuJmVhY3V0ZTtobyBtb2R1bHUgYSBuZWV4aXN1amUgeiZhYWN1dGU7em5hbSB2IGRhdGFiJmFhY3V0ZTt6ZSBGRVUgbW9kdWx1LCBtJmFhY3V0ZTsgYnnFpSB0YWsmeWFjdXRlO3RvIHomYWFjdXRlO3puYW0gdnl0dm9yZW4meWFjdXRlOz8nOwokbGFuZ1sncHJvbXB0X2F1dG9fY3JlYXRlX3Vua25vd24nXSA9ICdBdXRvbWF0aWNreSB2eXR2b3JpxaUgbmV6biZhYWN1dGU7bXljaCBwb3XFviZpYWN1dGU7dmF0ZcS+b3YnOwokbGFuZ1snZGlzcGxheV9zZXR0aW5ncyddID0gJ05hc3RhdmVuaWUgem9icmF6b3ZhbmlhJzsKJGxhbmdbJ2luZm9fc3RkX2F1dGhfc2V0dGluZ3MnXSA9ICdOYXNsZWR1aiZ1YWN1dGU7Y2UgbmFzdGF2ZW5pYSBzYSBiZXImdWFjdXRlOyBkbyAmdWFjdXRlO3ZhaHUsIGliYSBwb2tpYcS+IHNhIHBvdcW+JmlhY3V0ZTt2YSB2c3RhdmFuJmFhY3V0ZTsgYXV0ZW50aWZpayZhYWN1dGU7Y2lhJzsKJGxhbmdbJ2luZm9fc3VwcG9ydF9sb3N0dW4nXSA9ICdWJnlhY3V0ZTtiZXJvbSBuaWUsIHphayZhYWN1dGU7xb5ldGUgcG91xb4maWFjdXRlO3ZhdGXEvm9tIHBvxb5pYWRhxaUgbyBvYm5vdmVuaWUgc3RyYXRlbiZ5YWN1dGU7Y2ggcHJpaGxhc292YWMmaWFjdXRlO2NoICZ1YWN1dGU7ZGFqb3YsIGJleiBvaMS+YWR1IG5hIG9zdGF0biZlYWN1dGU7IG5hc3RhdmVuaWEnOwokbGFuZ1snaW5mb19zdXBwb3J0X2xvc3RwdyddID0gJ1YmeWFjdXRlO2Jlcm9tIG5pZSwgemFrJmFhY3V0ZTvFvmV0ZSBwb3XFviZpYWN1dGU7dmF0ZcS+b20gcG/FvmlhZGHFpSBvIG9ibm92ZW5pZSBzdHJhdGVuJmVhY3V0ZTtobyBoZXNsYSwgYmV6IG9oxL5hZHUgbmEgb3N0YXRuJmVhY3V0ZTsgbmFzdGF2ZW5pYSc7CiRsYW5nWydwcm9tcHRfc3VwcG9ydF9sb3N0dW4nXSA9ICdQb3ZvbGnFpSBwb3XFviZpYWN1dGU7dmF0ZcS+b20gem1lbnUgcG91xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTtobyBtZW5hJzsKJGxhbmdbJ3Byb21wdF9zdXBwb3J0X2xvc3RwdyddID0gJ1Bvdm9sacWlIHBvdcW+JmlhY3V0ZTt2YXRlxL5vbSB2ecW+aWFkYcWlIHptZW51IGhlc2xhJzsKJGxhbmdbJ2F1dGhfc2V0dGluZ3MnXSA9ICdOYXN0YXZlbmlhIGF1dGVudGlmaWsmYWFjdXRlO2NpZSc7CiRsYW5nWydhdXRoZW50aWNhdGlvbiddID0gJ1ZzdGF2YW4mYWFjdXRlOyBhdXRlbnRpZmlrJmFhY3V0ZTtjaWEnOwokbGFuZ1snYXV0aF9idWlsdGluJ10gPSAnJlNjYXJvbjt0YW5kYXJkbiZhYWN1dGU7IGF1dGVudGlmaWsmYWFjdXRlO2NpYSc7CiRsYW5nWydhdXRoX21vZHVsZSddID0gJ0F1dGVudGlmaWthxI1uJnlhY3V0ZTsgTW9kdWwnOwokbGFuZ1snaW5mb19hdXRoX21vZHVsZSddID0gJ01vZHVsIHBvZHBvcnVqZSBwb3XFviZpYWN1dGU7dmFuaWUgYWx0ZXJuYXQmaWFjdXRlO3ZueWNoIGF1dGVudGlmaWthxI1uJnlhY3V0ZTtjaCBtZXQmb2FjdXRlO2QuIE5pZWt0b3ImZWFjdXRlOyBmdW5rY2llIG5lbXVzaWEgYnnFpSBkb3N0dXBuJmVhY3V0ZTssIHBva2lhxL4gamUgcG91xb4maWFjdXRlO3ZhbiZhYWN1dGU7IGluJmFhY3V0ZTsgYWtvICZzY2Fyb247dGFuZGFyZG4mYWFjdXRlOyBmb3JtYSBhdXRlbnRpZmlrJmFhY3V0ZTtjaWUuJzsKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnVGhlIHZhbHVlIHNwZWNpZmllZCBmb3IgJXMgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciB1c2VyJzsKJGxhbmdbJ3VuaXF1ZSddID0gJ1VuaWsmYWFjdXRlO3RueSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVfZmllbGRfdmFsdWUnXSA9ICdUaGUgdmFsdWUgc3BlY2lmaWVkIGZvciAlcyAoJXMpIGlzIG5vdCB1bmlxdWUnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ1Z5xb5hZG92YcWlIGFieSBib2xhIGhvZG5vdGEgdW5payZhYWN1dGU7dG5hIG1lZHppIHYmc2Nhcm9uO2V0ayZ5YWN1dGU7bWkgJnVhY3V0ZTvEjXRhbWknOwokbGFuZ1snaGVscF9yZXR1cm5sYXN0J10gPSAnVXNlZCB3aXRoIHRoZSBsb2dpbiBhbmQgbG9nb3V0IGZvcm1zLCB0aGlzIHBhcmFtZXRlciBpZiBzcGVjaWZpZWQgd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSB1c2VyIHNob3VsZCBiZSByZXR1cm5lZCB0byB0aGUgcGFnZSAoYnkgdXJsKSB0aGF0IHRoZSB1c2VyIHdhcyB2aWV3aW5nIGJlZm9yZSB0aGUgYWN0aW9uIG9jY3VycmVkLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBvdmVycmlkZSB0aGUgcmVkaXJlY3QgcHJlZmVyZW5jZXMsIGFuZCB0aGUgcmV0dXJudG8gcGFyYW1ldGVyLic7CiRsYW5nWydoZWxwX25vaW5saW5lJ10gPSAnVXNlZCB3aXRoIG9uZSBvZiB0aGUgZm9ybXMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IHRoZSBmb3JtcyBzaG91bGQgbm90IGJlIHBsYWNlZCBpbmxpbmUsIGluc3RlYWQgdGhlIHJlc3VsdGluZyBvdXRwdXQgYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uIHdpbGwgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrJzsKJGxhbmdbJ3RpdGxlX3Jlc2V0X3Nlc3Npb24nXSA9ICdMb2dpbiBTZXNzaW9uIFRpbWVvdXQgV2FybmluZyc7CiRsYW5nWydtc2dfcmVzZXRfc2Vzc2lvbiddID0gJ1lvdXIgbG9naW4gc2Vzc2lvbiBpcyBhYm91dCB0byBleHBpcmUsIHBsZWFzZSBjbGljayAmcXVvdDsmcXVvdDtPayZxdW90OyB0byBjb25maXJtIHlvdXIgYWN0aXZpdHkgb24gdGhpcyB3ZWJzaXRlLic7CiRsYW5nWydvayddID0gJ09rJzsKJGxhbmdbJ3Jlc2V0c2Vzc2lvbl90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSBwcmUgcmVzZXRvdmFuaWEgc2VkZW5pYSc7CiRsYW5nWydpbmZvX25hbWUnXSA9ICdUaGlzIGlzIHRoZSBmaWVsZCBuYW1lLCB0byBiZSB1c2VkIGZvciBhZGRyZXNzaW5nIGluIHNtYXJ0eS4gIEl0IG11c3QgY29uc2lzdCBvZiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCB1bmRlcnNjb3Jlcy4nOwokbGFuZ1sndmlzaXRvcnNfdGFiJ10gPSAnTiZhYWN1dGU7diZzY2Fyb247dGV2biZpYWN1dGU7Y2knOwokbGFuZ1snZmV1X2dyb3Vwc19wcm9tcHQnXSA9ICdTZWxlY3Qgb25lIG9yIG1vcmUgRkVVIGdyb3VwcyB0aGF0IGFyZSBhbGxvd2VkIHRvIHZpZXcgdGhpcyBwYWdlJzsKJGxhbmdbJ2Vycm9yX211c3RzZWxlY3RfZ3JvdXAnXSA9ICdTa3VwaW5hIG11cyZpYWN1dGU7IGJ5xaUgdnlicmFuJmFhY3V0ZTsnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnVnlicmHFpSc7CiRsYW5nWydzdGFydF95ZWFyJ10gPSAnUG/EjWlhdG/EjW4meWFjdXRlOyByb2snOwokbGFuZ1snZW5kX3llYXInXSA9ICdLb25lxI1uJnlhY3V0ZTsgcm9rJzsKJGxhbmdbJ2RhdGUnXSA9ICdEJmFhY3V0ZTt0dW0nOwokbGFuZ1sncHJvbXB0X3RodW1ibmFpbF9zaXplJ10gPSAnVmXEvmtvc8WlIG4mYWFjdXRlO2jEvmFkdSc7CiRsYW5nWydPblVwZGF0ZUdyb3VwJ10gPSAnUHJpIHptZW5lIHNrdXBpbnknOwokbGFuZ1snZXJyb3JfdG9vbWFueXNlbGVjdGVkJ10gPSAnUHImaWFjdXRlO2xpJnNjYXJvbjsgdmXEvmEgdcW+JmlhY3V0ZTt2YXRlxL5vdiB6dm9sZW4meWFjdXRlO2NoIHByZSBocm9tYWRuJnVhY3V0ZTsgYWtjaXUuIE1heGltJmFhY3V0ZTtsbnkgcG/EjWV0IGplIDI1JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnU3RlIHNpIGlzdCZ5YWN1dGU7LCDFvmUgY2hjZXRlIG9kc3RyJmFhY3V0ZTtuacWlIHZ5YnJhbiZ5YWN1dGU7Y2ggdcW+JmlhY3V0ZTt2YXRlxL5vdic7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdabWF6YcWlIHZ5YnJhbiZlYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9yYW5kb211c2VybmFtZSddID0gJ0dlbmVyb3ZhxaUgbiZhYWN1dGU7aG9kbmUgdcW+JmlhY3V0ZTt2YXRlxL5zayZlYWN1dGU7IG1lbnUgcHJpIHZsb8W+ZW4maWFjdXRlOyc7CiRsYW5nWydtb250aHMnXSA9ICdtZXNpYWNlJzsKJGxhbmdbJ3Byb21wdF9leHBpcmVhZ2UnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyBob2Rub3RlIHByZSBleHBpciZhYWN1dGU7Y2l1JzsKJGxhbmdbJ25vdGlmaWNhdGlvbl9zZXR0aW5ncyddID0gJ05hc3RhdmVuaWEgbm90aWZpayZhYWN1dGU7Y2llJzsKJGxhbmdbJ3Byb3BlcnR5X3NldHRpbmdzJ10gPSAnTmFzdGF2ZW5pYSB2bGFzdG5vc3RpJzsKJGxhbmdbJ3JlZGlyZWN0aW9uX3NldHRpbmdzJ10gPSAnTmFzdGF2ZW5pYSBwcmVzbWVyb3ZhbmlhJzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdIbGF2biZlYWN1dGU7IG5hc3RhdmVuaWEnOwokbGFuZ1snc2Vzc2lvbl9zZXR0aW5ncyddID0gJ05hc3RhdmVuaWEgU2Vzc2lvbiBhIENvb2tpZSAnOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdOYXN0YXZlbmlhIHBvbCZpYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub25yZXF1aXJlZCddID0gJ1puYcSNa2EgcG/EvmEgcHJlIHphYnVkbnV0JmVhY3V0ZTsgaGVzbG8gbSZvY2lyYzvFvmUgYnnFpSBsZW4gcHJpIHBvdmlubiZ5YWN1dGU7Y2ggcG9saWFjaCc7CiRsYW5nWydwcm9wX3RleHRhcmVhX3d5c2l3eWcnXSA9ICdQb3ZvbGnFpSB3eXNpd3lnIGVkaXRvcmUgcHJlIHRleHRvdiZlYWN1dGU7IHBvbGUnOwokbGFuZ1snaW5mb19jb29raWVzdG9yZW1lbWJlciddID0gJzxzdHJvbmc+UG96biZhYWN1dGU7bWthOiA8L3N0cm9uZz4gVnl1xb4maWFjdXRlO3ZhIGZ1bmtjaWUgbWNyeXB0LCBwcmUgJnNjYXJvbjtpZnJvdmFjaSAmdWFjdXRlO8SNZWx5LCB0aWUgbmllIGplIG1vxb5uJmVhY3V0ZTsgZGV0ZWtvdmHFpSBwcmkgaW4mc2Nhcm9uO3RhbCZhYWN1dGU7Y2lpLiBQcm9zJmlhY3V0ZTttIGtvbnRha3R1anRlIGFkbWluaXN0ciZhYWN1dGU7dG9yYSBzZXJ2ZXJ1Lic7CiRsYW5nWydlZGl0aW5nX3VzZXInXSA9ICdVcHJhdm92YW4meWFjdXRlOyB1xb4maWFjdXRlO3ZhdGXEvic7CiRsYW5nWydub2lubGluZSddID0gJ0RvIG5vdCBpbmxpbmUgZm9ybXMnOwokbGFuZ1snaW5mb19sb3N0dW4nXSA9ICdDbGljayBoZXJlIGlmIHlvdSBjYW5ub3QgcmVtZW1iZXIgeW91ciBsb2dpbiBkZXRhaWxzJzsKJGxhbmdbJ2luZm9fZm9yZ290cHcnXSA9ICdDbGljayBoZXJlIGlmIHlvdSBjYW5ub3QgcmVtZW1iZXIgeW91ciBwYXNzd29yZCc7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJ0NsaWNrIGhlcmUgdG8gc2lnbiBvdXQnOwokbGFuZ1snaW5mb19jaGFuZ2VzZXR0aW5ncyddID0gJ0NsaWNrIGhlcmUgdG8gYWRqdXN0IHlvdXIgcGFzc3dvcmQgb3Igb3RoZXIgaW5mb3JtYXRpb24nOwokbGFuZ1sndmlld3VzZXJfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibCZvYWN1dGU7bmEgcHJlIHYmeWFjdXRlO3BpcyBwb3XFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWydldmVudCddID0gJ1VkYWxvc8WlJzsKJGxhbmdbJ2ZldV9ldmVudF9ub3RpZmljYXRpb24nXSA9ICdGRVUgRXZlbnQgTm90aWZpY2F0aW9uJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJ0FkcmVzYSBwcmUgemFzaWVsYW5pZSB1cG96b3JuZW4maWFjdXRlOyc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHVwb3pvcm5lbmlhJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fc3ViamVjdCddID0gJ1ByZWRtZXQgdXBvem9ybmVuaWEnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdVcG96b3JuZW5pZSBlLW1haWxvbSc7CiRsYW5nWydPbkxvZ2luJ10gPSAnUHJpIHByaWhsJmFhY3V0ZTtzZW4maWFjdXRlOyc7CiRsYW5nWydPbkxvZ291dCddID0gJ1ByaSBvZGhsJmFhY3V0ZTtzZW4maWFjdXRlOyc7CiRsYW5nWydPbkV4cGlyZVVzZXInXSA9ICdQcmkgZXhwaXImYWFjdXRlO2NpaSBzZWRlbmlhJzsKJGxhbmdbJ09uQ3JlYXRlVXNlciddID0gJ1ByaSB2eXR2b3JlbiZpYWN1dGU7IG5vdiZlYWN1dGU7aG8gcG91xb4maWFjdXRlO3ZhdGXEvmEnOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnUHJpIG9kc3RyJmFhY3V0ZTtuZW4maWFjdXRlOyBwb3XFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdQcmkgem1lbmUgbmFzdGF2ZW4maWFjdXRlOyBwb3XFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnUHJpIHZ5dHZvcmVuJmlhY3V0ZTsgbm92ZWogc2t1cGlueSc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnUHJpIG9kdHImYWFjdXRlO25lbiZpYWN1dGU7IHNrdXBpbnknOwokbGFuZ1snbG9zdHVuY29uZmlybV9wcmVtc2cnXSA9ICdUaGUgbG9zdCBsb2dpbiBkZXRhaWxzIGZ1bmN0aW9uYWxpdHkgaGFzIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuICBXZSBoYXZlIGZvdW5kIGEgdW5pcXVlIHVzZXJuYW1lIHRoYXQgbWF0Y2hlcyB0aGUgZGV0YWlscyB5b3UgZW50ZXJlZC4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ1ZhJnNjYXJvbjtlIHXFviZpYWN1dGU7dmF0ZcS+c2tlIG1lbm8gamUnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAnV2UgcmVjb21tZW5kIHlvdSByZWNvcmQgdGhpcyBpbmZvcm1hdGlvbiBpbiBhIHNlY3VyZSwgYnV0IHJldHJpZXZhYmxlIGxvY2F0aW9uLic7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfY2hhbmdlX3NldHRpbmdzJ10gPSAnUGFnZUlEL0FsaWFzIHN0ciZhYWN1dGU7bmt5IHBvIHptZW5lIG5hc3RhdmVuJmlhY3V0ZTsnOwokbGFuZ1sncHJvbXB0X2FmdGVyX3ZlcmlmeV9jb2RlJ10gPSAnUGFnZUlEL0FsaWFzIHN0ciZhYWN1dGU7bmt5IHBvIG92ZXJlbiZpYWN1dGU7IHJlZ2lzdHImYWFjdXRlO2NpZSAqJzsKJGxhbmdbJ2xvc3R1bl9kZXRhaWxzX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHByZSBvYm5vdnUgc3RyYXRlbiZlYWN1dGU7aG8gbWVuYSc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSBwcmUgcG90dnJkZW5pZSBvYm5vdnkgc3RyYXRlbiZlYWN1dGU7aG8gbWVuYSc7CiRsYW5nWydlcnJvcl9ub251bmlxdWVtYXRjaCddID0gJ0Vycm9yOiBNb3JlIHRoYW4gb25lIHVzZXIgYWNjb3VudCBtYXRjaGVkIHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCc7CiRsYW5nWydlcnJvcl9jYW50ZmluZHVzZXInXSA9ICdDaHlieTogdcW+JmlhY3V0ZTt2YXRlxL4gbmVuJmFhY3V0ZTtqZGVuJnlhY3V0ZTsnOwokbGFuZ1snZXJyb3JfZ3JvdXBub3Rmb3VuZCddID0gJ0NoeWJhOiBOZWJvbGEgbiZhYWN1dGU7amRlbiZhYWN1dGU7IHNrdXBpbmEgcyB0JnlhY3V0ZTttdG8gbWVub20nOwokbGFuZ1sncmVhZG9ubHknXSA9ICdJYmEgbmEgxI0maWFjdXRlO3RhbmllJzsKJGxhbmdbJ3Byb21wdF91c2VybWFuaXB1bGF0b3InXSA9ICdUcmllZGEgVXNlciBNYW5pcHVsYXRvciBDbGFzcyc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdPZGhsJmFhY3V0ZTtzZW5pZSBhZG1pbmlzdHImYWFjdXRlO3Rvcm9tJzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdVayZhYWN1dGU7emHFpSBpYmEgcHJpaGwmYWFjdXRlO3NlbiZ5YWN1dGU7Y2ggdcW+JmlhY3V0ZTt2YXRlxL5vdic7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnT2RobCZhYWN1dGU7c2nFpSB0b2h0byB1xb4maWFjdXRlO3ZhdGXEvmEnOwokbGFuZ1sndXNlcl9wcm9wZXJ0aWVzJ10gPSAnVmxhc25vc3RpIHXFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0hpc3Qmb2FjdXRlO3JpYSB1xb4maWFjdXRlO3ZhdGXEvmEnOwokbGFuZ1snZXhwb3J0J10gPSAnRXhwb3J0b3ZhxaUnOwokbGFuZ1snY2xlYXInXSA9ICdWecSNaXN0acWlJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0V4cG9ydG92YcWlIGhpc3Qmb2FjdXRlO3JpdSBkbyBBU0NJSSc7CiRsYW5nWydwcm9tcHRfY2xlYXJ1c2VyaGlzdG9yeSddID0gJ1Z5xI1pc3RpxaUgaGlzdCZvYWN1dGU7cml1IHXFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWyd0aXRsZV9sb3N0dXNlcm5hbWUnXSA9ICdaYWJ1ZGxpIHN0ZSB2YSZzY2Fyb247ZSBwcmlobGFzb3ZhY2llICZ1YWN1dGU7ZGFqZT8nOwokbGFuZ1sndGl0bGVfcnNzZXhwb3J0J10gPSAnRXhwb3J0b3ZhxaUgc2t1cGlueSBhIGljaCB2bGFzdG5vc3QmaWFjdXRlOyBkbyBYTUwnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZSddID0gJyZVYWN1dGU7ZHLFvmJhIGhpc3Qmb2FjdXRlO3JpZSB1xb4maWFjdXRlO3ZhdGXEvmEnOwokbGFuZ1sneWVzJ10gPSAnJkFhY3V0ZTtubyc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydwcm9tcHRfb2YnXSA9ICd6JzsKJGxhbmdbJ2RhdGVfYWxscmVjb3JkcyddID0gJyoqIEJleiBsaW1pdHUgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAnMSBob2RpbnUgc3RhciZlYWN1dGU7JzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJzYgaG9kJmlhY3V0ZTtuIHN0YXImZWFjdXRlOyc7CiRsYW5nWydkYXRlX3R3ZWx2ZWhvdXJvbGQnXSA9ICcxMiBob2QmaWFjdXRlO24gc3RhciZlYWN1dGU7JzsKJGxhbmdbJ2RhdGVfb25lZGF5b2xkJ10gPSAnSmVkZW4gZGVuIHN0YXImZWFjdXRlOyc7CiRsYW5nWydkYXRlX29uZXdlZWtvbGQnXSA9ICdKZWRlbiB0JnlhY3V0ZTvFvmRlxYggc3RhcmUnOwokbGFuZ1snZGF0ZV90d293ZWVrc29sZCddID0gJ0R2YSB0JnlhY3V0ZTvFvmRuZSBzdGFyJmVhY3V0ZTsnOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJ0plZGVuIG1lc2lhYyBzdGFyJmVhY3V0ZTsnOwokbGFuZ1snZGF0ZV90aHJlZW1vbnRoc29sZCddID0gJ1RyaSBtZXNpYWNlIHN0YXImZWFjdXRlOyc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJyZTY2Fyb247ZXPFpSBtZXNpYWNvdiBzdGFyJmVhY3V0ZTsnOwokbGFuZ1snZGF0ZV9vbmV5ZWFyb2xkJ10gPSAnSmVkZW4gcm9rIHN0YXImZWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICdab3NrdXBvdmFuaWUgYSB0cmllZGVuaWUnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNmb3VuZCddID0gJ1omYWFjdXRlO3puYW15IG9kcG92ZWRhaiZ1YWN1dGU7Y2UgcG9kbWllbmtlJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnWm9zdHVwbmUgcG9kxL5hIHXFviZpYWN1dGU7dmF0ZcS+c2smZWFjdXRlO2hvIG1lbmEnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2FzYyddID0gJ1Z6b3N0dXBuZSBwb2TEvmEgdcW+JmlhY3V0ZTt2YXRlxL5zayZlYWN1dGU7aG8gbWVuYSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnWm9zdHVwbmUgcG9kxL5hIGQmYWFjdXRlO3R1bXUnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfYXNjJ10gPSAnVnpvc3R1cG5lIHBvZMS+YSBkJmFhY3V0ZTt0dW11JzsKJGxhbmdbJ3NvcnRvcmRlcl9hY3Rpb25fZGVzYyddID0gJ1pvc3R1cG5lIHBvZMS+YSB0eXB1IHVkYWxvc3QmaWFjdXRlOyc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2FzYyddID0gJ1Z6b3N0dXBuZSBwb2TEvmEgdHlwdSB1ZGFsb3N0JmlhY3V0ZTsnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19kZXNjJ10gPSAnWm9zdHVwbmUgcG9kxL5hIElQIGFkcmVzeSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2FzYyddID0gJ1Z6b3N0dXBuZSBwb2TEvmEgSVAgYWRyZXN5JzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdIaXN0Jm9hY3V0ZTtyaWEgbmVuJmFhY3V0ZTtqZGVuJmFhY3V0ZTsnOwokbGFuZ1sncmVzZXQnXSA9ICdSZXNldG92YcWlJzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ1pvc2t1cGnFpSBwb2TEvmEgSVAgYWRyaWVzJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZXZlbnR0eXBlJ10gPSAnRmlsdHJvdmFuaWUgcG9kxL5hIHR5cG92IHVkYWxvc3QmaWFjdXRlOyc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdab2JyYXppxaUgaWJhIGFrY2llLCBrdG9yJmVhY3V0ZTsgc3UgbWVuZWogYWtvOic7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnU3RyJmFhY3V0ZTtua292YWMmaWFjdXRlOyBsaW1pdCc7CiRsYW5nWydmb3InXSA9ICdwcmUnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdaJmFhY3V0ZTt6bmFtIHXFviZpYWN1dGU7dmF0ZcS+b3YgaGlzdCZvYWN1dGU7cmllJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdOZXpuJmFhY3V0ZTttaSc7CiRsYW5nWydwcm9tcHRfaXBhZGRyZXNzJ10gPSAnSVAgYWRyZXNhJzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICdUeXAgdWRhbG9zdGknOwokbGFuZ1sncHJvbXB0X2RhdGUnXSA9ICdEJmFhY3V0ZTt0dW0nOwokbGFuZ1sncHJvbXB0X3JldHVybiddID0gJ04mYWFjdXRlO3ZyYXQnOwokbGFuZ1snaW1wb3J0X2NvbXBsZXRlX21zZyddID0gJ0ltcG9ydCBrb21wbGV0biZ5YWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ1NwcmFjb3ZhbiZ5YWN1dGU7Y2ggcmlhZGtvdic7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnQ2h5YnknOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ1ByaWRhbiZ5YWN1dGU7Y2ggeiZhYWN1dGU7em5hbW92JzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnXSA9ICdOZW4mYWFjdXRlO2pkZW4mZWFjdXRlOyB2bGFzdG5vc3QmaWFjdXRlOyBwcmUgc2t1cGludSAlcyc7CiRsYW5nWydlcnJvcl9ub3Jlc3BvbnNlZnJvbXNlcnZlciddID0gJ0JleiBvZG96dnkgU01UUCBzZXJ2ZXJhJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgc3BlY2lmaWVkICglcykgY291bGQgbm90IGJlIGZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkdmFsdWUnXSA9ICdDaHlibiZhYWN1dGU7IGhvZG5vdGEgdiZ5YWN1dGU7YmVyb3YmZWFjdXRlO2hvIHBvxL5hIGFsZWJvIHZpYWN2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7aG8gcG/EvmEgJXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGRsZW5ndGgnXSA9ICdQb2xlICVzIHByZXNpYWhsbyBtYXhpbSZhYWN1dGU7bG55IHBvxI1ldCB6bmFrb3YnOwokbGFuZ1snZXJyb3JfaW1wb3J0dXNlcnMnXSA9ICdDaHliYSBwcmkgaW1wb3J0ZSAgKHJpYWRvayAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdDb3VsZCBub3QgZ2V0IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9ucyAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgY29sdW1uIHRvIG1hdGNoIHRoZSByZXF1aXJlZCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ0NvdWxkIG5vdCBmaW5kIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ1RoZSBmaWxlIHNwZWNpZmllZCBmb3IgaW1wb3J0IGlzIG5vdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ05pZSBqZSBtb8W+biZlYWN1dGU7IG90dm9yacWlIHMmdWFjdXRlO2Jvcic7CiRsYW5nWydpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdCddID0gJzxoND5GaWxlIEZvcm1hdCBJbmZvcm1hdGlvbjwvaDQ+DQo8cD5UaGUgaW5wdXQgZmlsZSBtdXN0IGJlIGluIEFTQ0lJIGZvcm1hdCB1c2luZyBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzLiAgRWFjaCBsaW5lIGluIHRoaXMgaW5wdXQgZmlsZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBoZWFkZXIgbGluZSwgZGlzY3Vzc2VkIGJlbG93KSByZXByZXNlbnRzIG9uZSB1c2VyIHJlY29yZC4gIEVhY2ggbGluZSBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgbnVtYmVyIG9mIGZpZWxkcywgYW5kIHRoZSBvcmRlciBvZiB0aGUgZmllbGRzIGluIGVhY2ggbGluZSBtdXN0IGJlIGlkZW50aWNhbC48L3A+DQo8aDU+SGVhZGVyIGxpbmU8L2g1Pg0KPHVsPg0KPGxpPlRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIG11c3QgYmVnaW4gd2l0aCB0d28gcG91bmQgKFwjKSBjaGFyYWN0ZXJzLCBhbmQgbmFtZXMgZWFjaCBvZiB0aGUgZmllbGRzIGluIHRoZSBmaWxlLiAgVGhlIG5hbWVzIG9mIHRoZXNlIGZpZWxkcyBpcyBzaWduaWZpY2FudC4gIFRoZXJlIGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkIG5hbWVzIChzZWUgYmVsb3cpLCBhbmQgb3RoZXIgZmllbGQgbmFtZXMgbXVzdCBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB1c2VycyBhcmUgZ29pbmcgdG8gYmUgYWRkZWQgaW50by48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGZhaWwgaWYgdGhlIGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSBkb2VzIG5vdCBtYXRjaCBhbGwgb2YgdGhlIHJlcXVpcmVkIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBncm91cCB0aGF0IHVzZXJzIGFyZSBiZWluZyBhZGRlZCBpbnRvPC9saT4NCjxsaT5UaGUgaW5wdXQgZmlsZSBtYXkgY29udGFpbiBmaWVsZHMgcmVwcmVzZW50aW5nIHNvbWUgb2YgdGhlIG9wdGlvbmFsIHByb3BlcnRpZXMgaW4gdGhlIHNwZWNpZmllZCBncm91cC48L2xpPg0KPGxpPlRoZSBpbXBvcnQgcHJvY2VzcyB3aWxsIGlnbm9yZSBhbnkgZmllbGRzIGluIHRoZSBpbnB1dCBmaWxlIHRoYXQgYXJlIGVpdGhlciBub3Qga25vd24sIG9yIG1hcCB0byBwcm9wZXJ0aWVzIHRoYXQgYXJlIDxlbT5vZmY8L2VtPiBpbiB0aGUgc3BlY2lmaWVkIHVzZXIgZ3JvdXAuPC9saT4NCjwvdWw+DQo8aDU+Q29sdW1uYXIgRGF0YTwvaDU+DQo8dWw+DQo8bGk+VGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gRmllbGQgLSBUaGUgZGVzaXJlZCB1c2VybmFtZS4NCiAgICA8cD5UaGlzIGZpZWxkIG11c3QgZXhpc3QgaW4gdGhlIGhlYWRlcmxpbmUsIGFuZCBpbiBlYWNoIGFuZCBldmVyeSBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLiBUaGUgcmVjb3JkIHdpbGwgZmFpbCBpZiBhIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBkYXRhYmFzZS48L3A+PC9saT4NCjxsaT5UaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBGaWVsZCAtIFRvZG88L2xpPg0KPGxpPlRoZSA8c3Ryb25nPmV4cGlyZXM8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5Ecm9wZG93biBGaWVsZHMNCiAgICA8cD5UaGUgdmFsdWUgb2YgZHJvcGRvd24gcHJvcGVydGllcyBpbiBhbiBpbXBvcnQgZmlsZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgc3RyaW5nIHRoYXQgaXMgc2hvd24gaW4gdGhlIGRyb3Bkb3duIGNvbnRyb2wgaW4gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QgRmllbGRzDQogICAgPHA+TXVsdGlzZWxlY3QgZmllbGRzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBBU0NJSSBmaWxlIGFzIGEgOiBzZXBhcmF0ZWQgbGlzdCBvZiBzdHJpbmdzLCB3aGVyZSBlYWNoIHN0cmluZyByZXByZXNlbnRzIHRoZSB0ZXh0IHNob3duIGluIHRoZSBtdWx0aXNlbGVjdCBsaXN0PC9wPg0KPC9saT4NCjxsaT5JbWFnZSBGaWVsZHMNCiAgICA8cD5JbWFnZSBhcmUgZmllbGRzIHdobyYjMDM5O3MgY29sdW1uIG5hbWUgbWF0Y2hlcyBhIHByb3BlcnR5IG9mIHR5cGUgSW1hZ2UuICBJZiB0aGlzIGZpZWxkIGlzIGEgcmVxdWlyZWQgcGFydCBvZiB0aGUgZGVzdGluYXRpb24gZ3JvdXAsIHRoZW4gdGhlIG5hbWUgc3BlY2lmaWVkIGluIHRoZXNlIGNvbHVtbnMgbXVzdCBleGlzdCBpbiB0aGUgdXBsb2FkcyBkaXNyZWN0b3J5IG9mIHRoZSBDTVMgaW5zdGFsbGF0aW9uLiAgSWYgdGhlIGltYWdlIGRvZXMgbm90IGV4aXN0LCBhbmQgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSByZWNvcmQgd2lsbCBmYWlsLjwvcD4NCjwvdWw+DQo8aDU+Tm90ZXM8L2g1Pg0KPHA+VGhlIGltcG9ydCBwcm9jZXNzIGlzIHN1YmplY3QgdG8gdGhlIGxpbWl0YXRpb25zIGltcG9zZWQgYnkgdGhlIGhvc3QgcHJvdmlkZXIsIHN1Y2ggYXMgbWVtb3J5IGxpbWl0YXRpb25zLCBwcm9jZXNzaW5nIHRpbWUsIGZpbGUgc2l6ZSB1cGxvYWQsIGFuZCBzYWZlIG1vZGUgcmVzdHJpY3Rpb25zLiAgQW55IG9uZSBvZiB0aGVzZSBsaW1pdGF0aW9ucyBtYXkgY2F1c2UgdGhlIGltcG9ydCB0byBmYWlsLiBUaGVyZWZvcmUgaXQgaXMgYWR2aXNhYmxlIHRvIGVuc3VyZSB0aGF0IGltcG9ydCBmaWxlcyBhcmUgc21hbGxlciBpbiBzaXplLCBhbmQgc2ltcGxlciBpbiBuYXR1cmUuPC9wPg0KPHA+VGhvdWdoIGV2ZXJ5IGVmZm9ydCBoYXMgYmVlbiBtYWRlIHRvIGVuc3VyZSB0aGF0IGRhdGFiYXNlIGNvcnJ1cHRpb24gd2lsbCBub3Qgb2NjdXIsIGl0IGlzIGFkdmlzYWJsZSB0byBwZXJmb3JtIGEgZGF0YWJhc2UgYmFja3VwIGJlZm9yZSBkb2luZyBhIHVzZXIgaW1wb3J0LjwvcD4NCjxoNT5FeGFtcGxlPC9oNT4NCjxwcmU+DQojI3VzZXJuYW1lLGZpcnN0X25hbWUsbGFzdF9uYW1lLGVtYWlsLGNpdHksc3RhdGUsY291bnRyeSx6aXANCnVzZXIxLHRlc3QsdXNlcix1c2VyMUBzb21lZG9tYWluLmNvbSxzb21ld2hlcmUsVFgsVVMsMTIzNDUNCjwvcHJlPg0KJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRkZXN0Z3JvdXAnXSA9ICdJbXBvcnRvdmHFpSB1xb4maWFjdXRlO3ZhdGXEvm92IGRvIHRlanRvIHNrdXBpbnknOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnVmxvxb5pxaUgQ1NWIHMmdWFjdXRlO2Jvcic7CiRsYW5nWydwcm9tcHRfaW1wb3J0eG1sZmlsZSddID0gJ1Zsb8W+acWlIFhNTCBzJnVhY3V0ZTtib3InOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJzJ10gPSAnRXhwb3J0b3ZhxaUgdcW+JmlhY3V0ZTt2YXRlxL5vdic7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnRvdmHFpSB1xb4maWFjdXRlO3ZhdGXEvm92JzsKJGxhbmdbJ3Byb21wdF9jbGVhciddID0gJ1Z5xI1pc3RpxaUnOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdDZXN0YSBrIG9iciZhYWN1dGU7emt1JzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIHdpdGggYSBtaXNzaW5nIChidXQgcmVxdWlyZWQpIHVwbG9hZCc7CiRsYW5nWydlcnJvcl9iYWRfeG1sJ10gPSAnQ291bGQgbm90IHBhcnNlIHRoZSBwcm92aWRlZCBYTUwgZmlsZSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnQ2Fubm90IGRlbGV0ZSBhIGdyb3VwIHRoYXQgc3RpbGwgaGFzIHVzZXJzJzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdUaGlzIHVzZXIgaXMgYWxyZWFkeSBsb2dnZWQgaW4nOwokbGFuZ1snZXJyb3JfY2FwdGNoYW1pc21hdGNoJ10gPSAnVGhlIHRleHQgZnJvbSB0aGUgaW1hZ2Ugd2FzIG5vdCBlbnRlcmVkIGNvcnJlY3RseSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnUG92b2xpxaUgdmlhYyBzaW11bHQmYWFjdXRlO2xueWNoIHByaWhsJmFhY3V0ZTtzZW4maWFjdXRlOyBwb3XFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnVHlweSBzJnVhY3V0ZTtib3Jvdiwga3RvciZlYWN1dGU7IHMmdWFjdXRlOyBwb3XFviZpYWN1dGU7dmF0ZcS+b20gZG92b2xlbiZlYWN1dGU7IG5haHImYWFjdXRlO3ZhxaUgbmEgc2VydmVyJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25SZWZyZXNoVXNlciddID0gJzxoMz5PblJlZnJlc2hVc2VyPC9oMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIHRoZSB1c2VyIHNlc3Npb24gaXMgcmVmcmVzaGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBVc2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyB1cGRhdGVkIChlaXRoZXIgYnkgdXNlciB0aGVtc2VsZiBvciBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZUdyb3VwJ10gPSAnPGgzPk9uQ3JlYXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBncm91cCBkZXNjcmlwdGlvbjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9naW4nXSA9ICc8aDM+T25Mb2dpbjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+aXA8L2VtPiAtIFRoZSBpcCBhZGRyZXNzIG9mIHRoZSBjbGllbnQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0PC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZG91dCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkV4cGlyZVVzZXInXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgc2Vzc2lvbiBleHBpcmVzPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZCBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ2luJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW4gdG8gdGhlIHN5c3RlbSc7CiRsYW5nWydldmVudF9pbmZvX09uTG9nb3V0J10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0IG9mIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkV4cGlyZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgc2Vzc2lvbiBpcyBleHBpcmVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBuZXcgdXNlciBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25SZWZyZXNoVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIHRoZSB1c2VyIHNlc3Npb24gaXMgcmVmcmVzaGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGluZm8gaXMgdXBkYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBhY2NvdW50IGlzIGRlbGV0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZUdyb3VwJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGdyb3VwIGlzIGNyZWF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZUdyb3VwJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGdyb3VwIGlzIHVwZGF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZUdyb3VwJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGdyb3VwIGlzIGRlbGV0ZWQnOwokbGFuZ1snYmFja2VuZF9ncm91cCddID0gJ0JhY2tlbmQgR3JvdXAnOwokbGFuZ1snaW5mb19zdGFyJ10gPSAnKiBOYXNsZWR1aiZ1YWN1dGU7Y2UgbWFrcmEgbSZvY2lyYzvFvnUgYnnFpSBwb3XFvml0JmVhY3V0ZTsgdiB0JnlhY3V0ZTtjaHRvIHBvbGlhY2g6IHskdXNlcm5hbWV9Lic7CiRsYW5nWydpbmZvX2FkbWluX3Bhc3N3b3JkJ10gPSAnVXByYXZ0ZSB0b3RvIHBvbGUgcHJlIHJlc2V0b3ZhbmllIGhlc2xhIHXFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWydpbmZvX2FkbWluX3JlcGVhdHBhc3N3b3JkJ10gPSAnVXByYXZ0ZSB0b3RvIHBvbGUgcHJlIHJlc2V0b3ZhbmllIGhlc2xhIHXFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWydlcnJvcl91c2VybmFtZV9leGlzdHMnXSA9ICdVxb4maWFjdXRlO3ZhdGXEviBzIHQmeWFjdXRlO210byB1xb4maWFjdXRlO3ZhdGXEvnNrJnlhY3V0ZTttIG1lbm9tIHXFviBleGlzdHVqZSc7CiRsYW5nWydub2NzdnJlc3VsdHMnXSA9ICdDU1YgZXhwb3J0IG5ldnImYWFjdXRlO3RpbCDFvmlhZG5lIHYmeWFjdXRlO3NsZWRreSc7CiRsYW5nWydwcm9tcHRfdW5mbGRsZW4nXSA9ICdExLrFvmthIHBvxL5hIHByZSB1xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTsgbWVubyc7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdExLrFvmthIHBvxL5hIHByZSBoZXNsbyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmRsZW5ndGhzJ10gPSAnTWluL01heCBkxLrFvmthIGhlc2xhIG5pZSBqZSBuZXBsYXRuJmFhY3V0ZTsnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ01pbi9NYXggZMS6xb5rYSB1xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTtobyBtZW5hIG5pZSBqZSBuZXBsYXRuJmFhY3V0ZTsnOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ05lcGxhdG4mYWFjdXRlOyBlLW1haWxvdiZhYWN1dGU7IGFkcmVzYSc7CiRsYW5nWydlcnJvcl9ub2VtYWlsYWRkcmVzcyddID0gJ0UtbWFpbG92JmFhY3V0ZTsgYWRyZXNhIHByZSB0ZW50byAmdWFjdXRlO8SNZXQgbmVib2xpIG4mYWFjdXRlO2pkZW4mZWFjdXRlOyc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2VldHRpbmdpbmZvJ10gPSAnUHJvYmwmZWFjdXRlO20gcyBuYXN0YXZlbiZpYWN1dGU7bSB1xb4maWFjdXRlO3ZhdGXEvnNrJnlhY3V0ZTtjaCBpbmZvcm0mYWFjdXRlO2NpaSc7CiRsYW5nWydlcnJvcl9zZXR0aW5ncHJvcGVydHknXSA9ICdQcm9ibCZlYWN1dGU7bSBzIG5hc3RhdmVuJmlhY3V0ZTttIHZsYXNub3N0aSc7CiRsYW5nWyd1c2VyX2FkZGVkJ10gPSAnVcW+JmlhY3V0ZTt2YXRlxL4gcHJpZGFsICVzID0gJXMnOwokbGFuZ1sndXNlcl9kZWxldGVkJ10gPSAnVcW+JmlhY3V0ZTt2YXRlxL4gdnltYXphbCAgdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnVmxhc3Rub3PFpSc7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnSG9kbm90YSAocmVndWwmYWFjdXRlO3JueSB2JnlhY3V0ZTtyYXopJzsKJGxhbmdbJ3dhcm5pbmdfZWZmZWN0c2ZpZWxkbGVuZ3RoJ10gPSAnVmFyb3ZhbmllOiBUaWV0byBwb2xpYSBvdnBseW5pYSB2ZcS+a29zxaUgdnN0dXBuJnlhY3V0ZTtjaCBwb2wmaWFjdXRlOyBmb3JtdWwmYWFjdXRlO3Jvdi4gWm4maWFjdXRlO8W+ZW4maWFjdXRlO20gdG9odG8gxI0maWFjdXRlO3NsYSBuYSBleGlzdHVqJnVhY3V0ZTtjZWogc3RyJmFhY3V0ZTtua2UgbmVkb3BvcnXEjXVqZW1lLic7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnU3RlIHNpIGlzdCZ5YWN1dGU7LCDFvmUgY2hjZXRlIHptZW5pxaUgbmFzdGF2ZW5pYSBtb2R1bHU/JzsKJGxhbmdbJ2Vycm9yX2VtYWlsYWxyZWFkeXVzZWQnXSA9ICdFLW1haWxvdiZhYWN1dGU7IGFkcmVzYSB1xb4gamUgcG91xb4maWFjdXRlO3ZhbiZhYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF91c2Vjb29raWVzdG9yZW1lbWJlciddID0gJ1BvdcW+acWlIGNvb2tpZSBwcmUgemFwYW0mYXVtbDt0YW5pZSBwcmlobGFzb3ZhYyZpYWN1dGU7Y2ggJnVhY3V0ZTtkYWpvdic7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ01lbm8gY29va2llJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnUG92b2xpxaUgZHVwbGljaXRuJmVhY3V0ZTsgZS1tYWlseSc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdFLW1haWxvdiZhYWN1dGU7IGFkcmVzYSBqZSB1xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTsgbWVubyAnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnU2smdWFjdXRlOyZzY2Fyb247YcWlIHVkcsW+YcWlICBwcmlobCZhYWN1dGU7c2VuJnlhY3V0ZTtjaCB1xb4maWFjdXRlO3ZhdGXEvm92IHBvbW9jb3UgY29va2llcyA8ZW0+KGNvb2tpZSByZXNldHVqZSBha3Rpdml0dSBuYSBzdHImYWFjdXRlO25rYWNoKTwvZW0+JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJyhwb3ZvbGnFpSB2aWFjIHXFviZpYWN1dGU7dmF0ZcS+b3YgcyByb3ZuYWtvdSBlLW1haWxvdm91IGFkcmVzb3UpJzsKJGxhbmdbJ2luZm9fdXNlcm5hbWVfaXNfZW1haWwnXSA9ICcocG91xb4maWFjdXRlO3ZhdGXEvm92YSBlLW1haWxvdiZhYWN1dGU7IGFkcmVzYSBqZSB6JmFhY3V0ZTtyb3ZlxYggYWogamVobyBwb3XFviZpYWN1dGU7dmF0ZcS+c2smeWFjdXRlO20gbWVub20gLS0gbmVwb3XFviZpYWN1dGU7dmFqdGUgcyBuYXN0YXZlbiZpYWN1dGU7bSAmcXVvdDtwb3ZvbGnFpSBkdXBsaWNpdG4mZWFjdXRlOyBlLW1haWx5JnF1b3Q7ISknOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICdQb3ZvbGnFpSBkdXBsaWNpdG4mZWFjdXRlOyB2ecW+aWFkYW5pZSBzdHJhdGVuJmVhY3V0ZTtobyBoZXNsYSc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoUG92b2xpxaUgcG91xb4maWFjdXRlO3ZhdGXEvm92aSBwb8W+aWFkYcWlIG8gb2Jub3ZlbmllIGhlc2xhLCBwb2tpYcS+IG5lcmVhZ292YWwgbmEgcHJlZGNoJmFhY3V0ZTtkemFqJnVhY3V0ZTtjdSDFvmlhZG9zxaUpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnUG/FvmnFpSBvcHImYWFjdXRlO3ZuZW5pYSAmc2Nhcm9uO3BlY2lmaWNrJmVhY3V0ZTsgcHJlIEZyb250LWVuZCBVc2VyIG1vZHVsPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoWnZ5xI1ham5lIHMmdWFjdXRlOyBwcmUgRkVVc2VycyBtb2R1bCAgcG91xb4maWFjdXRlO3ZhbiZlYWN1dGU7IHJvdm5hayZlYWN1dGU7IG9wciZhYWN1dGU7dm5lbmlhIGFrbyBwcmUgYWRtaW5pc3RyYcSNbiZlYWN1dGU7IHJvemhyYW5pZS4gUG9raWHEviB2eWJlcmV0ZSB0JnVhY3V0ZTt0byBtb8W+bm9zxaUsIGJ1ZCZ1YWN1dGU7IHByZSBGRVVzZXNycyBwb3XFvml0JmVhY3V0ZTsgdmxhc3RuJmVhY3V0ZTsgbmFzdGF2ZW5pYS4pJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdOYWhyYXQmeWFjdXRlOyBzJnVhY3V0ZTtib3IgbmVib2wgbiZhYWN1dGU7amRlbiZ5YWN1dGU7IChpbnRlcm4mYWFjdXRlOyBjaHliYSknOwokbGFuZ1snZXJyb3JfcHJvYmxlbV91cGxvYWQnXSA9ICdQcmkgbmFociZhYWN1dGU7dmFuJmlhY3V0ZTsgcyZ1YWN1dGU7Ym9ydSBkbyZzY2Fyb247bG8gayBjaHliZS4gU2t1c3RlIHRvIHpub3Z1JzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1c2VybmFtZSddID0gJ05ldmxvxb5pbGkgc3RlIHXFviZpYWN1dGU7dmF0ZcS+c2smZWFjdXRlOyBtZW5vJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdlbWFpbCddID0gJ05ldmxvxb5pbGkgc3RlIGUtbWFpbCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdOZXZsb8W+aWxpIHN0ZSBoZXNsbyc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nb3V0J10gPSAnRnJvbnRlbmQgVXNlciBvZGhsJmFhY3V0ZTtzZW5pZSc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nZ2VkaW4nXSA9ICdGcm9udGVuZCBVc2VyIHByaWhsJmFhY3V0ZTtzZW5pZSc7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPlVQT1pPUk5FTklFPC9iPiB6bWVuYSBzdCZhYWN1dGU7dmFqJnVhY3V0ZTtjaWNoIHZsYXNub3N0JmlhY3V0ZTssIGt0b3ImZWFjdXRlOyBzJnVhY3V0ZTsgcHJpcmFkZW4mZWFjdXRlOyBza3VwaW4mYWFjdXRlO20gbSZvY2lyYzvFvnUgc3Amb2NpcmM7c29iacWlIHByb2JsJmVhY3V0ZTtteSA8aT4ocHJlZG92JnNjYXJvbjtldGsmeWFjdXRlO20gcHJpIHNrciZhYWN1dGU7dGVuJmlhY3V0ZTsgbmlla3RvciZ5YWN1dGU7Y2ggcG9sJmlhY3V0ZTspPC9pPjwvZm9udD4nOwokbGFuZ1snaW5mb19zbXRwdmFsaWRhdGUnXSA9ICdUJmFhY3V0ZTt0byBmdW5rY2lhIG5lcHJhY3VqZSBwb2Qgd2luZG93cyc7CiRsYW5nWydtc2dfZG9udGNyZWF0ZXVzZXJuYW1lJ10gPSAnTmV2eXR2JmFhY3V0ZTtyYWp0ZSB2bGFzbm9zxaUgcHJlIHXFviZpYWN1dGU7dmF0ZcS+c2smZWFjdXRlOyBtZW5vLCBwcmV0b8W+ZSB0byB1xb4gamUgcyZ1YWN1dGU7xI1hc8Wlb3UgbW9kdWx1IEZyb250RW5kVXNlcnMnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0V4cG9ydG92YcWlIHXFviZpYWN1dGU7dmF0ZcS+b3YgZG8gQ1NWJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydG9ydG92YcWlJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydG92YcWlJzsKJGxhbmdbJ2FkbWluJ10gPSAnQWRtaW5pc3RyJmFhY3V0ZTtjaWEnOwokbGFuZ1snZWRpdHByb3AnXSA9ICdVcHJhdmnFpSB2bGFzbm9zxaUnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW0mYWFjdXRlO2xuYSBkxLrFvmthJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdWeXR2b3JlbiZlYWN1dGU7JzsKJGxhbmdbJ3NvcnRieSddID0gJ1pvcmFkacWlIHBvZMS+YSc7CiRsYW5nWydzb3J0J10gPSAnWm9yYWRlbmllJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ1XFviZpYWN1dGU7dmF0ZWxpYSB2byB2eWJyYW5lai92eWJyYW4meWFjdXRlO2NoIHNrdXBpbiZhYWN1dGU7Y2gnOwokbGFuZ1sndXNlcmxpbWl0J10gPSAnT2JtZWR6acWlIHYmeWFjdXRlO3NsZWRreSBkbyc7CiRsYW5nWydlcnJvcl9ub2VtYWlsZmllbGQnXSA9ICdOaWUgamUgbW/Fvm4mZWFjdXRlOyBuJmFhY3V0ZTtqc8WlIHBvbG/Fvmt1IGUtbWFpbCBwcmUgdG9odG8gdcW+JmlhY3V0ZTt2YXRlxL5hLiBLb250YWt0dWp0ZSBhZG1pbmlzdHImYWFjdXRlO3RvcmEgd2VidS4nOwokbGFuZ1sncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgc3RyJmFhY3V0ZTtua3kgcHJlIGZvcm11bCZhYWN1dGU7ciB6bWVueSBoZXNsYSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyBzdHImYWFjdXRlO25reSBwcmUgZm9ybXVsJmFhY3V0ZTtyIHptZW55IG5hc3RhdmVuaWEnOwokbGFuZ1sncHJvbXB0X2xvZ2luX3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgc3RyJmFhY3V0ZTtua3kgcG8gcHJpaGwmYWFjdXRlO3NlbmkgKic7CiRsYW5nWydwcm9tcHRfbG9nb3V0X3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgc3RyJmFhY3V0ZTtua3kgcHJlIG9kaGwmYWFjdXRlO3NlbmllIConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnUG9yYWRpZSc7CiRsYW5nWydwcm9tcHRfbnVtcmVzZXRyZWNvcmQnXSA9ICdQb8SNZXQgdcW+JmlhY3V0ZTt2YXRlbG/Evm92LCBrdG9yJnlhY3V0ZTsgbW9tZW50JmFhY3V0ZTtsbmUgxb5pYWRhaiZ1YWN1dGU7IG8gcmVzZXQgaGVzbGE6JzsKJGxhbmdbJ3JlbW92ZTF3ZWVrJ10gPSAnT2RzdHJhbmnFpSB2JnNjYXJvbjtldGt5IHomYWFjdXRlO3puYW15IHN0YXImc2Nhcm9uO2llIGFrbyAxIHQmeWFjdXRlO8W+ZGXFiCc7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSB2JnNjYXJvbjtldGt5IHomYWFjdXRlO3puYW15IHN0YXImc2Nhcm9uO2llIGFrbyAxIG1lc2lhYyc7CiRsYW5nWydyZW1vdmVhbGwnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSB2JnNjYXJvbjtldGt5IHomYWFjdXRlO3puYW15JzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTs/JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjb2RlJ10gPSAnVmxvxb5lbiZ5YWN1dGU7IGJvbCBuZXNwciZhYWN1dGU7dm55IGsmb2FjdXRlO2QsIHNrJnVhY3V0ZTtzdGUgdG8gem5vdnUnOwokbGFuZ1snZXJyb3JfdGVtcGNvZGVub3Rmb3VuZCddID0gJ0RvxI1hc24meWFjdXRlOyBrJm9hY3V0ZTtkIHByZSB2YSZzY2Fyb247ZSB1xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTsgbWVubyBuZWJvbG8gbiZhYWN1dGU7amRlbiZlYWN1dGU7IHYgZGF0YWImYWFjdXRlO3plJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3ZlcmlmeXRlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIGZvcm11bCZhYWN1dGU7cmEgcHJlIHZlcmlmaWsmYWFjdXRlO2NpdSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF9lbWFpbHRlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIGZvcm11bCZhYWN1dGU7cmEgcHJlIHphYnVkbnV0JmVhY3V0ZTsgaGVzbG8nOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ8SOYWwmc2Nhcm9uO2llIGluJnNjYXJvbjt0cnVrY2llIG4mYWFjdXRlO2pkZXRlIHZvIHN2b2plaiBlLW1haWxvdmVqIHNjaHImYWFjdXRlO25reS4nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ1Byb2JsZW0gcyBkYXRhYiZhYWN1dGU7em92JzsKJGxhbmdbJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCddID0gJ1QmdWFjdXRlO3RvIHNwciZhYWN1dGU7dnUgc3RlIGRvc3RhbGksIHByZXRvxb5lIG5pZWt0byBwb8W+aWFkYWwgbyBvYm5vdmVuaWUgemFidWRudXQmZWFjdXRlO2hvIGhlc2xhIGsgdiZhYWN1dGU7JnNjYXJvbjttdSAmdWFjdXRlO8SNdHUgbmEgbmEmc2Nhcm9uO2VqIHN0ciZhYWN1dGU7bmtlLiBQb2tpYcS+IGplIHRvIHRhaywgcG9zdHVwdWp0ZSBwb2TEvmEgbmnFviZzY2Fyb247aWUgdXZlZGVuJnlhY3V0ZTtjaCBpbiZzY2Fyb247dHJ1a2NpJmlhY3V0ZTsuIFBva2lhxL4gbmV0dSZzY2Fyb247JmlhY3V0ZTt0ZSBvIMSNbyBpZGUsIHRhayB0ZW50byBlLW1haWwgcHJvcyZpYWN1dGU7bSBpZ25vcnVqdGUuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnSyZvYWN1dGU7ZCc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdOYXNsZWR1aiZ1YWN1dGU7Y2kgayZvYWN1dGU7ZCBib2wgbiZhYWN1dGU7aG9kbmUgdnlnZW5lcm92YW4meWFjdXRlOyBwcmUgb3ZlcmVuaWUgdcW+JmlhY3V0ZTt2YXRlxL5zayZlYWN1dGU7aG8gJnVhY3V0ZTvEjXR1LiBQbyBrbGlrbnV0JmlhY3V0ZTsgbmEgbmFzbGVkdWomdWFjdXRlO2NpIG9ka2F6IHNhIGRvc3RhbmUgbmEgc3RyJmFhY3V0ZTtua3UsIGtkZSB6YWQmYWFjdXRlO3RlIHRlbnRvIGsmb2FjdXRlO2QuUG9sZSBidWRlIHByZWR2eXBsbmVuJmVhY3V0ZTsuIFBva2lhxL4gbmllLCBrJm9hY3V0ZTtkIGplIHR1Oic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0tsaWtudXQmaWFjdXRlO20gbmEgbmFzbGVkdWomdWFjdXRlO2NpIG9ka2F6IHNhIGRvc3RhbmV0ZSBuYSBzdHImYWFjdXRlO25rdSwga2RlIG0mb2NpcmM7xb5ldGUgemFkYcWlIHZ5JnNjYXJvbjtpZSB1dmVkZW4meWFjdXRlOyBrJm9hY3V0ZTtkIGEgb2Jub3ZpxaUgdmEmc2Nhcm9uO2UgaGVzbG8nOwokbGFuZ1snbG9zdHBhc3N3b3JkX2VtYWlsc3ViamVjdCddID0gJ1phYnVkbnV0JmVhY3V0ZTsgaGVzbG8nOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdOZW4mYWFjdXRlO2pkZW4meWFjdXRlOyBDTVNNYWlsZXIgbW9kdWwnOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnTmEgZS1tYWlsICVzIGJvbGkgemFzbGFuJmVhY3V0ZTsgaW4mc2Nhcm9uO3RydWtjaWUgcHJlIG9ibm92ZW5pZSBoZXNsYS4gxI5ha3VqZW1lJzsKJGxhbmdbJ2xvc3Rwd19tZXNzYWdlJ10gPSAnUG9raWHEviBzdGUgemFidWRsaSBhbGVibyBzdHJhdGlsaSBzdm9qZSBoZXNsbywgdGFrIHByb3MmaWFjdXRlO20gdnlwbMWIdGUgc3ZvamUgdcW+JmlhY3V0ZTt2YXRlxL5zayZlYWN1dGU7IG1lbm8gYSBlLW1haWxvbSBkb3N0YW5lbmUgaW4mc2Nhcm9uO3RydWtjaWUgYWtvIHBva3JhxI1vdmHFpSBwcmkgb2Jub3ZlbiZpYWN1dGU7IGhlc2xhJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHByaSBzdHJhdGUgaGVzbGEnOwokbGFuZ1snbG9zdHVzZXJuYW1lX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHByaSBzdHJhdGUgdcW+JmlhY3V0ZTt2YXRlxL5zayZlYWN1dGU7aG8gbWVuYSc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdWbGFzbm9zxaUgJXMgbmVuJmFhY3V0ZTtqZGVuJmFhY3V0ZTsnOwokbGFuZ1sncHJvcHNmb3VuZCddID0gJ1ZsYXNub3PFpSBuJmFhY3V0ZTtqZGVuJmFhY3V0ZTsnOwokbGFuZ1snYWRkcHJvcCddID0gJ1ByaWRhxaUgdmxhc25vc8WlJzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICdQb3Zpbm4mZWFjdXRlOyBwb2xlICglcykgYm9sbyBwciZhYWN1dGU7emRuZSc7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ1phZGFqdGUgbm92JmVhY3V0ZTsgaGVzbG8nOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdQcmF2ZGVwb2RvYm5lIG5pZSBzdGUgcHJpaGwmYWFjdXRlO3NlbiZ5YWN1dGU7JzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdOYXN0YXZlbmlhJzsKJGxhbmdbJ3VzZXJfcmVnaXN0cmF0aW9uJ10gPSAnUmVnaXN0ciZhYWN1dGU7Y2lhJzsKJGxhbmdbJ2Vycm9yX2FjY291bnRleHBpcmVkJ10gPSAnVGVudG8gJnVhY3V0ZTvEjWV0IHZ5cHImc2Nhcm9uO2FsJzsKJGxhbmdbJ2Vycm9yX2ltcHJvcGVyZW1haWxmb3JtYXQnXSA9ICdOZXNwciZhYWN1dGU7dm55IGZvcm0mYWFjdXRlO3QgZS1tYWlsb3ZlaiBhZHJlc3knOwokbGFuZ1snZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnXSA9ICdOZXBsYXRuJnlhY3V0ZTsgZCZhYWN1dGU7dHVtIGV4cGlyJmFhY3V0ZTtjaWUnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdwcm9wZXJ0eSddID0gJ0NoeWJhIHByaSBuYXN0YXZlbiZpYWN1dGU7IHZsYXNub3N0JmlhY3V0ZTsgJXMgcHJlIHXFviZpYWN1dGU7dmF0ZcS+YSAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ05lcGxhbnQmZWFjdXRlOyBJRCBza3VwaW55ICVzJzsKJGxhbmdbJ2hpZGRlbmZpZWxkbWFya2VyJ10gPSAnT3puYcSNZW5pYSBza3J5dCZ5YWN1dGU7Y2ggcG9sJmlhY3V0ZTsnOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0ZhcmJhIHNrcnl0JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWydoaWRkZW4nXSA9ICdTa3J5dCZlYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZW5hbWUnXSA9ICdWbGFzdG5vc8WlIHMgdCZ5YWN1dGU7bXRvIG1lbm9tIHXFviBib2xhIG5hZGVmaW5vdmFuJmFhY3V0ZTsnOwokbGFuZ1snZXJyb3Jfbm9wcm9wZXJ0aWVzJ10gPSAnTmVib2xpIG5hZGVmaW5vdmFuJmVhY3V0ZTsgxb5pYWRuZSB2bGFzdG5vc3RpJzsKJGxhbmdbJ2Vycm9yX25vcmVsYXRpb25zJ10gPSAnTmVib2xpIHZ5YnJhbiZlYWN1dGU7IHZsYXNub3N0aSBwcmUgdCZ1YWN1dGU7dG8gc2t1cGludSc7CiRsYW5nWydub2dyb3VwcyddID0gJ8W9aWFkbmUgc2t1cGlueSBuaWUgcyZ1YWN1dGU7IG5hZGVmaW5vdmFuJmVhY3V0ZTsnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdTa3VwaW55IG4mYWFjdXRlO2pkZW4mZWFjdXRlOyc7CiRsYW5nWydlcnJvcl9vbmVncm91cHJlcXVpcmVkJ10gPSAnSmUgbnV0JmVhY3V0ZTsgcHJpcmFkZW5pZSBhc3BvxYggayBqZWRuZWogc2t1cGluZSc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJ10gPSAnVnnFvmFkb3ZhxaUgcHJpcmFkZW5pZSBhc3BvxYggZG8gamVkbmVqIHNrdXBpbnknOwokbGFuZ1snYmFjayddID0gJ1NwJmF1bWw7xaUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzIGplIHBvdmlubiZhYWN1dGU7IHBvbG/FvmthJzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRtYXJrZXInXSA9ICdPem5hxI1pxaUgcG92aW5uJmVhY3V0ZTsgcG9saWEgcyc7CiRsYW5nWydyZXF1aXJlZGZpZWxkY29sb3InXSA9ICdadiZ5YWN1dGU7cmF6bmnFpSBwb8W+YWRvdmFuJmVhY3V0ZTsgcG9saWEnOwokbGFuZ1snbmV4dCddID0gJ8SOYWwmc2Nhcm9uO2llJzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnU2t1cGluYSBzIHQmeWFjdXRlO210byBuJmFhY3V0ZTt6dm9tIHXFviBleGlzdHVqZSc7CiRsYW5nWydyZXF1aXJlZCddID0gJ1Z5xb5hZG92YW4mYWFjdXRlOyc7CiRsYW5nWydvcHRpb25hbCddID0gJ1ZvbGl0ZcS+biZhYWN1dGU7JzsKJGxhbmdbJ29mZiddID0gJ1Z5cG4mdWFjdXRlO8WlJzsKJGxhbmdbJ3NpemUnXSA9ICdWZcS+a29zxaUnOwokbGFuZ1snc2l6ZWNvbW1lbnQnXSA9ICc8YnIvPihtYXhpbSZhYWN1dGU7bG5hIHJvem1lciB2IHB4IHByZSBqZWRlbiB6IHJvem1lcm92IC0gdiZ5YWN1dGU7JnNjYXJvbjtrYSwgJnNjYXJvbjsmaWFjdXRlO3JrYSknOwokbGFuZ1snbGVuZ3RoJ10gPSAnRMS6xb5rYSc7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyPihwb8SNZXQgem5ha292IHYgdGV4dG92b20gcG9saSknOwokbGFuZ1snc2Vsb3B0aW9ucyddID0gJ1BvbG/Fvmt5IHJvemJhxL5vdmFjaWVobyBtZW51IG9kZGVsZW4mZWFjdXRlOyBub3YmeWFjdXRlO21pIHJpYWRrYW1pLic7CiRsYW5nWydyYWRpb29wdGlvbnMnXSA9ICdSYWRpb2J1dHRvbiBsYWJlbHMsIHNlcGFyYXRlZCBieSBsaW5lIGJyZWFrcy4gVmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgZnJvbSB0ZXh0IHdpdGggYSA9IGNoYXJhY3Rlci4gaS5lOiBGZW1hbGU9Zic7CiRsYW5nWydwcm9tcHQnXSA9ICdWZXJlam4meWFjdXRlOyBuJmFhY3V0ZTt6b3YgcG/EvmEnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWydmaWVsZHN0YXR1cyddID0gJ1N0YXYgcG/EvmEnOwokbGFuZ1sndXNlZGlubG9zdHVuJ10gPSAnUCZ5YWN1dGU7dGHFpSBwcmkgc3RyYXRlPGJyLz5Vxb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTsgbWVubyc7CiRsYW5nWyd0ZXh0J10gPSAnVGV4dCc7CiRsYW5nWydjaGVja2JveCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbCZpYWN1dGU7xI1rbyc7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ1ZpYWN2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUnOwokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnU2t1cGluYSByYWRpbyBwcnZrb3YnOwokbGFuZ1snaW1hZ2UnXSA9ICdPYnImYWFjdXRlO3pvayc7CiRsYW5nWydlbWFpbCddID0gJ0UtbWFpbG92JmFhY3V0ZTsgYWRyZXNhJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dG92JmFhY3V0ZTsgb2JsYXPFpSc7CiRsYW5nWydkcm9wZG93biddID0gJ1JvemJhxL5vdmFjaWUgbWVudSc7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ1ZpdGFqJzsKJGxhbmdbJ2xvZ291dCddID0gJ09kaGwmYWFjdXRlO3NpxaUnOwokbGFuZ1sncHJvbXB0X25ld2dyb3VwbmFtZSddID0gJ1BvdcW+acWlIHRvaG8gbWVubyBza3VwaW55JzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ1VwcmF2IG1vamUgbmFzdGF2ZW5pYSc7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ0NoeWJhIHByaSBwcmlobCZhYWN1dGU7c2VuJmlhY3V0ZTsgLSBuZXNwciZhYWN1dGU7dm5lIHXFviZpYWN1dGU7dmF0ZcS+c2smZWFjdXRlOyBtZW5vIGFsZWJvIGhlc2xvPyc7CiRsYW5nWydsb2dpbiddID0gJ1ByaWhsJmFhY3V0ZTtzacWlJzsKJGxhbmdbJ3Byb21wdF9zaWduaW5fYnV0dG9uJ10gPSAnTiZhYWN1dGU7em92IHByaWhsYXNvdmFjaWVobyBwb2wmaWFjdXRlO8SNa2EnOwokbGFuZ1sncHJvbXB0X3VzZXJuYW1lJ10gPSAnVcW+JmlhY3V0ZTt2YXRlxL5zayZlYWN1dGU7IG1lbm8nOwokbGFuZ1sncHJvbXB0X2VtYWlsJ10gPSAnRS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EnOwokbGFuZ1sncHJvbXB0X3Bhc3N3b3JkJ10gPSAnSGVzbG8nOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICdaYXBhbSZhdW1sO3RhaiBzaSBtYSBuYSB0b210byBwb8SNJmlhY3V0ZTt0YcSNaSc7CiRsYW5nWydyZWdpc3RlciddID0gJ1JlZ2lzdHJvdmHFpSc7CiRsYW5nWydmb3Jnb3RwdyddID0gJ1phYnVkbnV0JmVhY3V0ZTsgaGVzbG8/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ1phYnVkbnV0JmVhY3V0ZTsgcHJpaGxhc292YWNpZSAmdWFjdXRlO2RhamU/JzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAnViZ5YWN1dGU7Y2hvZHppZSc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdOZWJvbGkgbiZhYWN1dGU7amRlbiZlYWN1dGU7IMW+aWFkbmUgaW5mb3JtJmFhY3V0ZTtjaWUgbyB1xb4maWFjdXRlO3ZhdGXEvm92aSc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnVG90byB1xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTsgKCVzKSB1xb4gbmlla2RvIHBvdcW+JmlhY3V0ZTt2YSc7CiRsYW5nWydwcm9tcHRfc210cHZhbGlkYXRlJ10gPSAnUG91xb5pxaUgU01UUCBwcmUgdmFsaWQmYWFjdXRlO2NpdSBlLW1haWxvdiZ5YWN1dGU7Y2ggYWRyaWVzPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdNaW5pbSZhYWN1dGU7bG5hIGTEusW+a2EgaGVzbGEnOwokbGFuZ1sncHJvbXB0X21heHB3bGVuJ10gPSAnTWF4aW0mYWFjdXRlO2xuYSBkxLrFvmthIGhlc2xhJzsKJGxhbmdbJ3Byb21wdF9taW51bmxlbiddID0gJ01pbmltJmFhY3V0ZTtsbmEgZMS6xb5rYSB1xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTtobyBtZW5hJzsKJGxhbmdbJ3Byb21wdF9tYXh1bmxlbiddID0gJ01heGltJmFhY3V0ZTtsbmEgZMS6xb5rYSB1xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTtobyBtZW5hJzsKJGxhbmdbJ3Byb21wdF9zZXNzaW9udGltZW91dCddID0gJ1Z5cHImc2Nhcm9uO2FuaWUgc2VkZW5pYSAoc2VrdW5keSknOwokbGFuZ1sncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZSddID0gJ1BvdcW+acWlIGNvb2tpZXMgbmEgdWRyxb5hbmllIHByaWhsJmFhY3V0ZTtzZW5pYSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlbWFpbHJlZyddID0gJ1Bvdm9sacWlIGUtbWFpbG92JnVhY3V0ZTsgcmVnaXN0ciZhYWN1dGU7Y2l1JzsKJGxhbmdbJ3Byb21wdF9kZmx0Z3JvdXAnXSA9ICdWJnlhY3V0ZTtjaG9kemlhIHNrdXBpbnkgcHJlIG5vdiZlYWN1dGU7aG8gdcW+JmlhY3V0ZTt2YXRlxL5hJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHByZSB6bWVudSBuYXN0YXZlbiZpYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3JkbWlzbWF0Y2gnXSA9ICdIZXNsYSBzYSBuZXpob2R1aiZ1YWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ05lc3ByJmFhY3V0ZTt2bmUgdcW+JmlhY3V0ZTt2YXRlxL5zayZlYWN1dGU7IG1lbm8nOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkJ10gPSAnTmVzcHImYWFjdXRlO3ZuZSBoZXNsbyc7CiRsYW5nWydlZGl0dXNlciddID0gJ1VwcmF2acWlIHXFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWyd2YWxpZCddID0gJ1NwciZhYWN1dGU7dm5lJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnVcW+JmlhY3V0ZTt2YXRlxL5zayZlYWN1dGU7IG1lbm8nOwokbGFuZ1snc3RhdHVzJ10gPSAnU3Rhdic7CiRsYW5nWydlcnJvcl9tZW1iZXJncm91cHMnXSA9ICdUZW50byB1xb4maWFjdXRlO3ZhdGXEviBuaWUgamUgcHJpcmFkZW4meWFjdXRlOyBkbyDFvmlhZG5laiBza3VwaW55JzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnRpZXMnXSA9ICfFvWlhZG5lIHZsYXNub3N0aSc7CiRsYW5nWydlcnJvcl9kdXBfcHJvcGVydGllcyddID0gJ1Bva3VzIG8gaW1wb3J0IGR1cGxpY2l0biZ5YWN1dGU7Y2ggdmxhc3Rub3N0JmlhY3V0ZTsnOwokbGFuZ1sndmFsdWUnXSA9ICdIb2Rub3R5JzsKJGxhbmdbJ2dyb3VwcyddID0gJ1NrdXBpbnknOwokbGFuZ1sncHJvcGVydGllcyddID0gJ1ZsYXNub3N0aSc7CiRsYW5nWydwcm9wbmFtZSddID0gJ04mYWFjdXRlO3pvdiB2bGFzdG5vc3RpJzsKJGxhbmdbJ3Byb3B2YWx1ZSddID0gJ0hvZG5vdGEgdmxhc25vc3RpJzsKJGxhbmdbJ2FkZCddID0gJ1ByaWRhxaUnOwokbGFuZ1snaGlzdG9yeSddID0gJ0hpc3Qmb2FjdXRlO3JpYSc7CiRsYW5nWydlZGl0J10gPSAnVXByYXZpxaUnOwokbGFuZ1snZXhwaXJlcyddID0gJ1BsYW5vc8WlJzsKJGxhbmdbJ3NwZWNpZnlfZGF0ZSddID0gJyZTY2Fyb247cGVjaWZpa3VqdGUgZCZhYWN1dGU7dHVtJzsKJGxhbmdbJzEyaHJzJ10gPSAnMTIgaG9kJmlhY3V0ZTtuJzsKJGxhbmdbJzI0aHJzJ10gPSAnMjQgaG9kJmlhY3V0ZTtuJzsKJGxhbmdbJzQ4aHJzJ10gPSAnNDggaG9kJmlhY3V0ZTtuJzsKJGxhbmdbJzF3ZWVrJ10gPSAnMSB0JnlhY3V0ZTvFvmRlxYgnOwokbGFuZ1snMndlZWtzJ10gPSAnMiB0JnlhY3V0ZTvFvmRuZSc7CiRsYW5nWycxbW9udGgnXSA9ICcxIG1lc2lhYyc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBtZXNpYWNlJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IG1lc2lhY292JzsKJGxhbmdbJzF5ZWFyJ10gPSAnMSByb2snOwokbGFuZ1snbmV2ZXInXSA9ICdOaWtkeSc7CiRsYW5nWydwb3N0aW5zdGFsbG1lc3NhZ2UnXSA9ICdNb2R1bCAmdWFjdXRlO3NwZSZzY2Fyb247bmUgbmFpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7LjxiciAvPiBOZXphYnVkbml0ZSBuYXN0YXZpxaUgcHImYWFjdXRlO3ZhICAmYW1wO3F1b3Q7TW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzJmFtcDtxdW90Oy4nOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdIZXNsbyc7CiRsYW5nWydyZXBlYXRwYXNzd29yZCddID0gJ1pub3ZhJzsKJGxhbmdbJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnXSA9ICdTa3VwaW5hIHMgdCZ5YWN1dGU7bXRvIG4mYWFjdXRlO3p2b20gdcW+IGV4aXN0dWplJzsKJGxhbmdbJ2VkaXRncm91cCddID0gJ1VwcmF2acWlIHNrdXBpbnUnOwokbGFuZ1snc3VibWl0J10gPSAnT2Rvc2xhxaUnOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpxaUnOwokbGFuZ1snZGVsZXRlJ10gPSAnT2RzdHImYWFjdXRlO25pxaUnOwokbGFuZ1snY29uZmlybV9lZGl0Z3JvdXAnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTssIMW+ZSB0b3RvIGplIHNwciZhYWN1dGU7dm5lIG5hc3RhdmVuaWVwcmUgdCZ1YWN1dGU7dG8gc2t1cGludT9cbiBWeXBudXQmaWFjdXRlO20gdmxhc3Rub3N0JmlhY3V0ZTsgc2EgbmVvZHN0ciZhYWN1dGU7bmlhIMW+aWFkbmUgJnVhY3V0ZTtkYWplIHZvIHZsYXNub3N0aWFjaCB1xb4maWFjdXRlO3ZhdGXEvmEvc2t1cGlueS4nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVncm91cCddID0gJ1N0ZSBzaSBpc3QmeWFjdXRlOywgxb5lIGNoY2V0ZSB6bWF6YcWlIHQmdWFjdXRlO3RvIHNrdXBpbnU/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3Byb3AnXSA9ICdOYW96YWogY2hjZXRlIGtvbXBsZXRuZSB6bWF6YcWlIHQmdWFjdXRlO3RvIHZsYXNub3PFpT9cblZ5bWHFvnUgc2EgdCZ5YWN1dGU7bSBhaiB2JnNjYXJvbjtldGt5IGhvZG5vdHkgdGVqdG8gdmxhc25vc3RpIHUgdcW+JmlhY3V0ZTt2YXRlxL5vY2guJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ05lZG9zdGF0b8SNbiZlYWN1dGU7IHBhcmFtZXRyZSc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ25hbWUnXSA9ICdNZW5vJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRwcm9wJ10gPSAnUHJvYmwmZWFjdXRlO20gcHJpIHByaWQmYWFjdXRlO3ZhbiZpYWN1dGU7IHZsYXNub3N0JmlhY3V0ZTsnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwcmVsbiddID0gJ1Byb2JsZW0gYWRkaW5nIGdyb3VwIHJlbGF0aW9uJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cCddID0gJ1Byb2JsZW0gYWRkaW5nIGdyb3VwJzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnUHJvYmxlbSBhZGRpbmcgYSB1c2VyIHRvIGEgZ3JvdXAnOwokbGFuZ1snZXJyb3JfY291bGRub3RkZWxldGVwcm9wZXJ0eSddID0gJ1Byb2JsJmVhY3V0ZTttIHMgb2RzdHImYWFjdXRlO25lbiZpYWN1dGU7bSB2bGFzbm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnTmVuJmFhY3V0ZTtqZGVuJmFhY3V0ZTsgZS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EnOwokbGFuZ1snZXJyb3JfZGVzdGluYXRpb25ub3R3cml0YWJsZSddID0gJ0JleiBwciZhYWN1dGU7diBuYSB6YXBpc292YW5pZSBkbyBjaWXEvm92JmVhY3V0ZTtobyBhZHJlcyZhYWN1dGU7cmEnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ0NoeWJuJmVhY3V0ZTsgcGFyYW1ldHJlJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnU2t1cGluYSBuZWJvbGEgcHJpZGFuJmFhY3V0ZTsnOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdQb3XFvmnFpSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1sndXNlcmZpbHRlciddID0gJ1JlZ3VsJmFhY3V0ZTtybnkgdiZ5YWN1dGU7cmF6IHByZSB1xb4maWFjdXRlO3ZhdGXEvnNrJmVhY3V0ZTsgbWVubyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ1BvcGlzJzsKJGxhbmdbJ2dyb3VwbmFtZSddID0gJ04mYWFjdXRlO3pvdiBza3VwaW55JzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ1ByJmlhY3V0ZTtzdHVwIHphbWlldG51dCZ5YWN1dGU7JzsKJGxhbmdbJ2Vycm9yJ10gPSAnQ2h5YmEnOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdQcmlkYcWlIHNrdXBpbnUnOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnRvdmHFpSBza3VwaW51JzsKJGxhbmdbJ2FkZHVzZXInXSA9ICdQcmlkYcWlIHXFviZpYWN1dGU7dmF0ZcS+YSc7CiRsYW5nWyd1c2Vyc2ZvdW5kJ10gPSAnVcW+JmlhY3V0ZTt2YXRlbGlhIHNwbMWIdWomdWFjdXRlO2NpIGtyaXQmZWFjdXRlO3JpYSB2eWjEvmFkJmFhY3V0ZTt2YW5pYSc7CiRsYW5nWydncm91cCddID0gJ1NrdXBpbmEnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdWeWJyYcWlIHNrdXBpbnUnOwokbGFuZ1sncmVnaXN0cmF0aW9uX3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHByZSByZWdpc3RyJmFhY3V0ZTtjaXUnOwokbGFuZ1snbG9nb3V0X3RlbXBsYXRlJ10gPSAnJlNjYXJvbjthYmxvbiZhYWN1dGU7IHByZSBvZGhsJmFhY3V0ZTtzZW5pZSc7CiRsYW5nWydsb2dpbl90ZW1wbGF0ZSddID0gJyZTY2Fyb247YWJsJm9hY3V0ZTtuYSBwcmUgcHJpaGwmYWFjdXRlO3NlbmllJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZHZvxL5ieSc7CiRsYW5nWyd1c2VycyddID0gJ1XFviZpYWN1dGU7dmF0ZWxpYSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdGcm9udGVuZCBVc2VyIE1hbmFnZW1lbnQgKHNwciZhYWN1dGU7dmEgdcW+JmlhY3V0ZTt2YXRlxL5vdiknOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBbGxvdyB1c2VycyB0byBsb2cgaW4gdG8gdGhlIGZyb250ZW5kIG9mIHlvdXIgc2l0ZSc7CiRsYW5nWydkZWZhdWx0ZnJvbnRwYWdlJ10gPSAnViZ5YWN1dGU7Y2hvZHppYSBzdHImYWFjdXRlO25rYSc7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAnU3RyJmFhY3V0ZTtua2EgcyBwb3NsZWRuJnlhY3V0ZTttIHByJmlhY3V0ZTtzdHVwb20nOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnSW4mYWFjdXRlOyBzdHImYWFjdXRlO25rYSc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnVmxvxb50ZSB0ZXh0IHogb2JyJmFhY3V0ZTt6a2EnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sl_SI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ09uVXBkYXRlR3JvdXAnXSA9ICdPYiBzcHJlbWVtYmkgdXBvcmFibmkmc2Nhcm9uO2tlIHNrdXBpbmUnOwokbGFuZ1snZXJyb3JfdG9vbWFueXNlbGVjdGVkJ10gPSAnWmEgc2t1cGluc2tlIG9wZXJhY2lqZSBqZSBpemJyYW5paCBwcmV2ZcSNIHVwb3JhYm5pa292Li4uIFByb3NpbW8sIG9tZWppdGUgbmEgMjUwIGFsaSBtYW5qLic7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9zZWxlY3RlZCddID0gJ1N0ZSBwcmVwcmnEjWFuaSwgZGEgxb5lbGl0ZSBpemJyaXNhdGkgaXpicmFuZSB1cG9yYWJuaWtlPyc7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdJemJyaSZzY2Fyb247aSBpemJyYW5lJzsKJGxhbmdbJ3Byb21wdF9yYW5kb211c2VybmFtZSddID0gJ0dlbmVyaXJhaiBuYWtsanXEjW5vIHVwb3JhYm5pJnNjYXJvbjtrbyBpbWUgb2IgZG9kYWphbmp1IG5vdmloIMSNbGFub3YnOwokbGFuZ1snbW9udGhzJ10gPSAnbWVzZWNldic7CiRsYW5nWydwcm9tcHRfZXhwaXJlYWdlJ10gPSAnUHJpdnpldG8gb2Jkb2JqZSB2ZWxqYXZub3N0aSDEjWxhbnN0dmEnOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnTmFzdGF2aXR2ZSBvYnZlJnNjYXJvbjvEjWFuamEnOwokbGFuZ1sncHJvcGVydHlfc2V0dGluZ3MnXSA9ICdOYXN0YXZpdHZlIGxhc3Rub3N0aSc7CiRsYW5nWydyZWRpcmVjdGlvbl9zZXR0aW5ncyddID0gJ05hc3Rhdml0dmUgcHJldXNtZXJpdGV2JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdTcGxvJnNjYXJvbjtuZSBuYXN0YXZpdHZlJzsKJGxhbmdbJ3Nlc3Npb25fc2V0dGluZ3MnXSA9ICdOYXN0YXZpdHZlIHNlaiBpbiBwaSZzY2Fyb247a290a292JzsKJGxhbmdbJ2ZpZWxkX3NldHRpbmdzJ10gPSAnTmFzdGF2aXR2ZSBwb2xqJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub25yZXF1aXJlZCddID0gJ096bmFrYSBwb3phYmxqZW5vIHVwb3JhYm5pJnNjYXJvbjtrbyBpbWUgc2UgbGFoa28gdXBvcmFiaSBzYW1vIG5hIG9idmV6bmloIHBvbGppaCc7CiRsYW5nWydwcm9wX3RleHRhcmVhX3d5c2l3eWcnXSA9ICdEb3ZvbGkgdXBvcmFibyB2aXp1YWxuZWdhIHVyZWpldmFsbmlrYSBuYSB0ZW0gdGVrc3Rvdm5lbSBwb2xqdSc7CiRsYW5nWydpbmZvX2Nvb2tpZXN0b3JlbWVtYmVyJ10gPSAnPHN0cm9uZz5Qb3pvcjogPC9zdHJvbmc+IFVwb3JhYmxqYSBtY3J5cHQgZnVua2NpamUgemEgZW5rcmlwY2lqby4gT2IgbmFtZXN0aXR2aSBkb2RhdGVrIG1jcnlwdCBuaSBiaWwgemF6bmFuLiBQcm9zaW1vLCBvYnZlc3RpdGUgYWRtaW5pc3RyYXRvcmphLic7CiRsYW5nWydlZGl0aW5nX3VzZXInXSA9ICdVcmVqYW5qZSB1cG9yYWJuaWthJzsKJGxhbmdbJ25vaW5saW5lJ10gPSAnQnJleiBpbmxpbmUgb2JyYXpjZXYnOwokbGFuZ1snaW5mb19sb3N0dW4nXSA9ICdLbGlrbml0ZSwgxI1lIHN0ZSBwb3phYmlsaSB1cG9yYWJuaSZzY2Fyb247a28gaW1lIGluIGdlc2xvJzsKJGxhbmdbJ2luZm9fZm9yZ290cHcnXSA9ICdLbGlrbml0ZSwgxI1lIHN0ZSBwb3phYmlsaSB2YSZzY2Fyb247ZSBnZXNsbyc7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJ0tsaWtuaXRlIHphIG9kamF2byc7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnS2xpa25pdGUsIMSNZSDFvmVsaXRlIG5hc3Rhdml0aSB2YSZzY2Fyb247ZSBnZXNsbyBhbGkgZHJ1Z2UgaW5mb3JtYWNpamUnOwokbGFuZ1sndmlld3VzZXJfdGVtcGxhdGUnXSA9ICdQb2dsZWogcHJlZGxvZ28gdXBvcmFibmlrYSc7CiRsYW5nWydldmVudCddID0gJ0RvZ29kZWsnOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ09idmVzdGlsbyBvIEZFVSBkb2dvZGt1JzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJ0UtcG8mc2Nhcm9uO3RuaSBuYXNsb3ZpIHphIG9idmVzdGlsYSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlJ10gPSAnUHJlZGxvZ2UgemEgb2J2ZXN0aWxhIHBvIEUtcG8mc2Nhcm9uO3RpJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fc3ViamVjdCddID0gJ1phZGV2YSAoc3ViamVjdCkgb2J2ZXN0aWwgcG8gRS1wbyZzY2Fyb247dGknOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbnMnXSA9ICdPYnZlc3RpbGEgcG8gRS1wbyZzY2Fyb247dGknOwokbGFuZ1snT25Mb2dpbiddID0gJ09iIHByaWphdmknOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdPYiBvZGphdmknOwokbGFuZ1snT25FeHBpcmVVc2VyJ10gPSAnT2IgaXp0ZWt1IHNlamUnOwokbGFuZ1snT25DcmVhdGVVc2VyJ10gPSAnT2IgcmVnaXN0cmFjaWppJzsKJGxhbmdbJ09uRGVsZXRlVXNlciddID0gJ09iIGl6YnJpc3UgdXBvcmFibmlrYSc7CiRsYW5nWydPblVwZGF0ZVVzZXInXSA9ICdPYiBzcHJlbWVtYmkgbmFzdGF2aXRldic7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnT2IgdXN0YW5vdml0dmkgc2t1cGluZSc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnT2IgaXpicmlzdSBza3VwaW5lJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcHJlbXNnJ10gPSAnVXBvcmFibmkmc2Nhcm9uO2tvIGltZSwga2kgdXN0cmV6YSBwb2RhdGtvbSwga2kgc3RlIGppaCB2cGlzYWxpLCBqZSBiaWxvIHVzcGUmc2Nhcm9uO25vIG5hamRlbm8uJzsKJGxhbmdbJ3lvdXJfdXNlcm5hbWVfaXMnXSA9ICdWYSZzY2Fyb247ZSB1cG9yYWJuaSZzY2Fyb247a28gaW1lIGplJzsKJGxhbmdbJ2xvc3R1bmNvbmZpcm1fcG9zdG1zZyddID0gJ1N2ZXR1amVtbyB2YW0sIGRhIHNpIHRlIHBvZGF0a2Ugc2hyYW5pdGUgbmEgdmFybm8gbG9rYWNpam8uJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl9jaGFuZ2Vfc2V0dGluZ3MnXSA9ICdJRCBzdHJhbmkvYWxpYXMgemEgcHJldXNtZXJpdGV2IHBvIHNwcmVtZW1iaSBwb2RhdGtvdic7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfdmVyaWZ5X2NvZGUnXSA9ICdJRCBzdHJhbmkvYWxpYXMgemEgcHJldXNtZXJpdGV2IHBvIHByZXZlcmphbmp1IGtvZGUgKic7CiRsYW5nWydsb3N0dW5fZGV0YWlsc190ZW1wbGF0ZSddID0gJ1ByZWRsb2dhIHphIHBvemFibGplbm8gdXBvcmFibmkmc2Nhcm9uO2tvIGltZSc7CiRsYW5nWydsb3N0dW5fY29uZmlybV90ZW1wbGF0ZSddID0gJ1ByZWRsb2dhIHphIHBvdHJkaXRldiBwb3phYmxqZW5lZ2EgdXBvcmFibmkmc2Nhcm9uO2tlZ2EgaW1lbmEnOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlbWF0Y2gnXSA9ICdOYXBha2E6IFZuZSZzY2Fyb247ZW5pbSBuYXN0YXZpdHZhbSB1c3RyZXphIHZlxI0gcmHEjXVub3YnOwokbGFuZ1snZXJyb3JfY2FudGZpbmR1c2VyJ10gPSAnTmFwYWthOiBOZSBuYWpkZW0gdXN0cmV6bmVnYSB1cG9yYWJuaWthJzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdOYXBha2E6IE5lIG5hamRlbSBza3VwaW5lIHMgdGVtIGltZW5vbSc7CiRsYW5nWydyZWFkb25seSddID0gJ1NhbW8gemEgYnJhbmplJzsKJGxhbmdbJ3Byb21wdF91c2VybWFuaXB1bGF0b3InXSA9ICdSYXpyZWQgemEgdXJlamFuamUgdXBvcmFibmlrb3YnOwokbGFuZ1snYWRtaW5fbG9nb3V0J10gPSAnT2RqYXZsamVuIHMgc3RyYW5pIGFkbWluaXN0cmF0b3JqYSc7CiRsYW5nWydwcm9tcHRfbG9nZ2VkaW5vbmx5J10gPSAnUHJpa2HFvmkgc2FtbyBwcmlqYXZsamVuZSB1cG9yYWJuaWtlJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdPZGphdmkgdGVnYSB1cG9yYWJuaWthJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ05hc3Rhdml0dmUgdXBvcmFibmlrYSc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ1pnb2RvdmluYSB1cG9yYWJuaWthJzsKJGxhbmdbJ2V4cG9ydCddID0gJ0l6dm96aSc7CiRsYW5nWydjbGVhciddID0gJ0l6YnJpJnNjYXJvbjtpJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VyaGlzdG9yeSddID0gJ0l6dm96aSB1cG9yYWJuaWtvdm8gemdvZG92aW5vIHYgQVNDSUksIGtpIGltYSBuYWptYW5qJzsKJGxhbmdbJ3Byb21wdF9jbGVhcnVzZXJoaXN0b3J5J10gPSAnSXpicmkmc2Nhcm9uO2kgdXBvcmFibmlrb3ZvIHpnb2Rvdmlubywga2kgaW1hIG5ham1hbmonOwokbGFuZ1sndGl0bGVfbG9zdHVzZXJuYW1lJ10gPSAnU3RlIHBvemFiaWxpIHVwb3JhYm5pJnNjYXJvbjtrbyBpbWUgYWxpIGdlc2xvPyc7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdJenZvemkgZGVmaW5pY2lqbyBza3VwaW5lIChpbiBuYXN0YXZpdHZlKSB2IFhNTCc7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeW1haW50ZW5hbmNlJ10gPSAnVnpkcsW+ZXZhbmplIHpnb2RvdmluZSB1cG9yYWJuaWtvdic7CiRsYW5nWyd5ZXMnXSA9ICdEYSc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3Byb21wdF9vZiddID0gJ29kJzsKJGxhbmdbJ2RhdGVfYWxscmVjb3JkcyddID0gJyoqIGJyZXogb21laml0dmUgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAnc3Rhcm9zdCAxIHVybyc7CiRsYW5nWydkYXRlX3NpeGhvdXJvbGQnXSA9ICdzdGFyb3N0IDYgdXInOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnc3Rhcm9zdCAxMiB1cic7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ3N0YXJvc3QgMSBkYW4nOwokbGFuZ1snZGF0ZV9vbmV3ZWVrb2xkJ10gPSAnc3Rhcm9zdCAxIHRlZGVuJzsKJGxhbmdbJ2RhdGVfdHdvd2Vla3NvbGQnXSA9ICdzdGFyb3N0IDIgdGVkbmEnOwokbGFuZ1snZGF0ZV9vbmVtb250aG9sZCddID0gJ3N0YXJvc3QgMSBtZXNlYyc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnc3Rhcm9zdCAzIG1lc2VjZSc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ3N0YXJvc3QgNiBtZXNlY2V2JzsKJGxhbmdbJ2RhdGVfb25leWVhcm9sZCddID0gJ3N0YXJvc3QgMSBsZXRvJzsKJGxhbmdbJ3RpdGxlX2dyb3Vwc29ydCddID0gJ0dydXBpcmFuamUgaW4gc29ydGlyYW5qZSc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2ZvdW5kJ10gPSAnWmFwaXNpLCBraSB1c3RyZXpham8ga3JpdGVyaWp1JzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9kZXNjJ10gPSAnVXBvcmFibmkmc2Nhcm9uO2tvIGltZSBwYWRham/EjWUnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2FzYyddID0gJ1Vwb3JhYm5pJnNjYXJvbjtrbyBpbWUgbmFyYSZzY2Fyb247xI1ham/EjWUnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfZGVzYyddID0gJ0RhdHVtIHBhZGFqb8SNZSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdEYXR1bSBuYXJhJnNjYXJvbjvEjWFqb8SNZSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdUaXAgZG9nb2RrYSBwYWRham/EjWUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdUaXAgZG9nb2RrYSBuYXJhJnNjYXJvbjvEjWFqb8SNZSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdJUCBuYXNsb3YgcGFkYWpvxI1lJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnSVAgbmFzbG92IG5hcmEmc2Nhcm9uO8SNYWpvxI1lJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdOZSBuYWpkZW0gemdvZG92aW5lJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUG9uYXN0YXZpJzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0dydXBpcmFqIHBvIElQIG5hc2xvdnUnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnXSA9ICdGaWx0ZXIgcG8gdGlwdSBkb2dvZGthJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ1ByaWthxb5pIHNhbW8gZG9nb2RrZSwga2kgc28gbWFuaiBrb3Q6JzsKJGxhbmdbJ3Byb21wdF9wYWdlbGltaXQnXSA9ICdPbWVqaXRldiBzdHJhbmknOwokbGFuZ1snZm9yJ10gPSAnemEnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnknXSA9ICdQb3JvxI1pbG8gbyB6Z29kb3ZpbmkgdXBvcmFibmlrYSc7CiRsYW5nWyd1bmtub3duJ10gPSAnTmV6bmFubyc7CiRsYW5nWydwcm9tcHRfaXBhZGRyZXNzJ10gPSAnSVAgbmFzbG92JzsKJGxhbmdbJ3Byb21wdF9ldmVudHR5cGUnXSA9ICdUaXAgZG9nb2RrYSc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ3Byb21wdF9yZXR1cm4nXSA9ICdOYXphaic7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnVXZveiBrb27EjWFuJzsKJGxhbmdbJ3Byb21wdF9saW5lc3Byb2Nlc3NlZCddID0gJ09iZGVsYW5paCB2cnN0aWMnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ1phem5hbmloIG5hcGFrJzsKJGxhbmdbJ3Byb21wdF9yZWNvcmRzYWRkZWQnXSA9ICdaYXBpc292IGRvZGFuaWgnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3ByZWxucyddID0gJ05lIG5hamRlbSBuYXN0YXZpdGV2IHphIHNrdXBpbm8gJXMnOwokbGFuZ1snZXJyb3Jfbm9yZXNwb25zZWZyb21zZXJ2ZXInXSA9ICdOZSBtb3JlbSBkb2JpdGkgb2Rnb3ZvcmEgcyBTTVRQIHN0cmXFvm5pa2EnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnSXpicmFuYSBkYXRvdGVrYSAoJXMpIG5lIG9ic3RhamEnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ05hcGHEjW5hIHZyZWRub3N0IHphIGl6YmlybyAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZGxlbmd0aCddID0gJ1BvbGplICVzIHByZXNlZ2EgbmFqdmXEjWpvIGRvdm9samVubyBkb2zFvmlubyc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ05hcGFrYSBwcmkgdXZvenUgKHZyc3RpY2EgJXMpOiAlcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0eWRlZm5zJ10gPSAnTmUgbW9yZW0gZG9iaXRpIHZyZWRub3N0aSBuYXN0YXZpdHZlIChpbnRlcm5hIG5hcGFrYSknOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdpbmZvJ10gPSAnVGXFvmF2ZSBwcmkgbmFzdGF2bGphbmp1IHVwb3JhYm5pa292aWggbmFzdGF2aXRldic7CiRsYW5nWydlcnJvcl9pbXBvcnRyZXF1aXJlZGZpZWxkJ10gPSAnTmUgbmFqZGVtIHN0b2xwY2EgemEgb2J2ZXpubyBwb2xqZSAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ05lIG5hamRlbSBuYXN0YXZpdGV2IGl6YnJhbmUgc2t1cGluZSc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnRGF0b3Rla2EgemEgdXZveiBuaSB2IHByYXZpbG5lbSB6YXBpc3UnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ05lIG1vcmVtIG9kcHJldGkgZGF0b3Rla2UnOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcIykgY2hhcmFjdGVycywgYW5kIG5hbWVzIGVhY2ggb2YgdGhlIGZpZWxkcyBpbiB0aGUgZmlsZS4gIFRoZSBuYW1lcyBvZiB0aGVzZSBmaWVsZHMgaXMgc2lnbmlmaWNhbnQuICBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZCBuYW1lcyAoc2VlIGJlbG93KSwgYW5kIG90aGVyIGZpZWxkIG5hbWVzIG11c3QgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdXNlcnMgYXJlIGdvaW5nIHRvIGJlIGFkZGVkIGludG8uPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBmYWlsIGlmIHRoZSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgZG9lcyBub3QgbWF0Y2ggYWxsIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdGhhdCB1c2VycyBhcmUgYmVpbmcgYWRkZWQgaW50bzwvbGk+DQo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBpZ25vcmUgYW55IGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSB0aGF0IGFyZSBlaXRoZXIgbm90IGtub3duLCBvciBtYXAgdG8gcHJvcGVydGllcyB0aGF0IGFyZSA8ZW0+b2ZmPC9lbT4gaW4gdGhlIHNwZWNpZmllZCB1c2VyIGdyb3VwLjwvbGk+DQo8L3VsPg0KPGg1PkNvbHVtbmFyIERhdGE8L2g1Pg0KPHVsPg0KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuDQogICAgPHA+VGhpcyBmaWVsZCBtdXN0IGV4aXN0IGluIHRoZSBoZWFkZXJsaW5lLCBhbmQgaW4gZWFjaCBhbmQgZXZlcnkgbGluZSBvZiB0aGUgaW5wdXQgZmlsZS4gVGhlIHJlY29yZCB3aWxsIGZhaWwgaWYgYSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UuPC9wPjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5leHBpcmVzPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+RHJvcGRvd24gRmllbGRzDQogICAgPHA+VGhlIHZhbHVlIG9mIGRyb3Bkb3duIHByb3BlcnRpZXMgaW4gYW4gaW1wb3J0IGZpbGUgaXMgcmVwcmVzZW50ZWQgYXMgdGhlIHN0cmluZyB0aGF0IGlzIHNob3duIGluIHRoZSBkcm9wZG93biBjb250cm9sIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPk11bHRpc2VsZWN0IEZpZWxkcw0KICAgIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4NCjwvbGk+DQo8bGk+SW1hZ2UgRmllbGRzDQogICAgPHA+SW1hZ2UgYXJlIGZpZWxkcyB3aG8mIzAzOTtzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnVXZvemkgdXBvcmFibmlrZSB2IHRvIHNrdXBpbm8nOwokbGFuZ1sncHJvbXB0X2ltcG9ydGZpbGVuYW1lJ10gPSAnVmhvZG5hIENTViBkYXRvdGVrYSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0eG1sZmlsZSddID0gJ1Zob2RuYSBYTUwgZGF0b3Rla2EnOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJzJ10gPSAnSXp2b3ppIHVwb3JhYm5pa2UnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHVzZXJzJ10gPSAnVXZvemkgdXBvcmFibmlrZSc7CiRsYW5nWydwcm9tcHRfY2xlYXInXSA9ICdJemJyaSZzY2Fyb247aSc7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ1BvdCB6YSBzaHJhbmpldmFuamUgc2xpayc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3VwbG9hZCddID0gJ05pc3RlIGl6YnJhbGkgZGF0b3Rla2UgemEgcHJlbm9zIChvYnZlem5vKSc7CiRsYW5nWydlcnJvcl9iYWRfeG1sJ10gPSAnTmUgbW9yZW0gcHJlYnJhdGkgcG9kYW5lIFhNTCBkYXRvdGVrZSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnTmUgbW9yZW0gaXpicmlzYXRpIHNrdXBpbm8sIGtpIHZzZWJ1amUgdXBvcmFibmlrZSc7CiRsYW5nWydlcnJvcl9ub3JlcGVhdGVkbG9naW5zJ10gPSAnVGEgdXBvcmFibmlrIGplIMW+ZSBwcmlqYXZsamVuJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ0Jlc2VkaWxvIHMgc2xpa2Ugc3RlIHByZXBpc2FsaSBuYXBhxI1ubyc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnRG92b2xpIHVwb3JhYm5pa29tIHZlxI1rcmF0bm8gcHJpamF2byc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnS2F0ZXJlIGtvbsSNbmljZSBzbGlrb3ZuaWggZGF0b3RlayBsYWhrbyB1cG9yYWJuaWtpIG5hbG/Fvmlqbyc7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlVXNlciddID0gJzxoMz5PbkRlbGV0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgZGVsZXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZVVzZXInXSA9ICc8aDM+T25DcmVhdGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PblVwZGF0ZVVzZXInXSA9ICc8aDM+T25VcGRhdGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIHVwZGF0ZWQgKGVpdGhlciBieSB1c2VyIHRoZW1zZWxmIG9yIGFkbWluKTwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlR3JvdXAnXSA9ICc8aDM+T25DcmVhdGVHcm91cDxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZ3JvdXAgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIGdyb3VwIG5hbWU8L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gVGhlIGdyb3VwIGRlc2NyaXB0aW9uPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uRGVsZXRlR3JvdXAnXSA9ICc8aDM+T25EZWxldGVHcm91cDxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZ3JvdXAgaXMgZGVsZXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIGdyb3VwIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Mb2dpbiddID0gJzxoMz5PbkxvZ2luPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgaWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWQgaW4gdXNlcjwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBUaGUgaXAgYWRkcmVzcyBvZiB0aGUgY2xpZW50PC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ291dCddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBsb2dnZWRvdXQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25FeHBpcmVVc2VyJ10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gZXhwaXJlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+dXNlcm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBleHBpcmVkIHVzZXI8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dpbiddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluIHRvIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ291dCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIG91dCBvZiB0aGUgc3lzdGVtJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIHNlc3Npb24gaXMgZXhwaXJlZCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgbmV3IHVzZXIgaXMgY3JlYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpbmZvIGlzIHVwZGF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgYWNjb3VudCBpcyBkZWxldGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyB1cGRhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBncm91cCBpcyBkZWxldGVkJzsKJGxhbmdbJ2JhY2tlbmRfZ3JvdXAnXSA9ICdCYWNrZW5kIHNrdXBpbmEnOwokbGFuZ1snaW5mb19zdGFyJ10gPSAnKiBWIHRlaCBwb2xqaWggbGFoa28gdXBvcmFiaXRlIG5hc2xlZG5qZSBtYWtyZTogeyR1c2VybmFtZX0seyRncm91cH0uIEtvIHVwb3JhYmxqYXRlIG1ha3JvIHskZ3JvdXB9IGJvIHNpc3RlbSB6YW1lbmphbCBpbWUgc2t1cGluZSBwcnZlZ2EgxI1sYW5hIGluIHByZXVzbWVyaWwgbmEgdG8gc3RyYW4uJzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdVcmVkaXRlIHRvIHBvbGplLCDEjWUgxb5lbGl0ZSBzcHJlbWVuaXRpIGdlc2xvIHVwb3JhYm5pa2EnOwokbGFuZ1snaW5mb19hZG1pbl9yZXBlYXRwYXNzd29yZCddID0gJ1VyZWRpdGUgdG8gcG9samUsIMSNZSDFvmVsaXRlIHNwcmVtZW5pdGkgZ2VzbG8gdXBvcmFibmlrYSc7CiRsYW5nWydlcnJvcl91c2VybmFtZV9leGlzdHMnXSA9ICdVcG9yYWJuaWsgcyB0ZW0gdXBvcmFibmkmc2Nhcm9uO2tpbSBpbWVub20gxb5lIG9ic3RhamEnOwokbGFuZ1snbm9jc3ZyZXN1bHRzJ10gPSAnTmkgcmV6dWx0YXRvdiBpeiBDU1YgaXp2b3phJzsKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ0RvbMW+aW5hIHVwb3JhYm5pJnNjYXJvbjtrZWdhIGltZW5hJzsKJGxhbmdbJ3Byb21wdF9wd2ZsZGxlbiddID0gJ0RvbMW+aW5hIGdlc2xhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZGxlbmd0aHMnXSA9ICdNaW4vTWF4IGRvbMW+aW5pIGdlc2xhIHN0YSBuYXBhxI1uaSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWVsZW5ndGhzJ10gPSAnTWluL01heCBkb2zFvmluaSB1cG9yYWJuaSZzY2Fyb247a2VnYSBpbWVuYSBzdGEgbmFwYcSNbmknOwokbGFuZ1snZXJyb3JfaW52YWxpZGVtYWlsYWRkcmVzcyddID0gJ05hcGHEjWVuIEUtbWFpbCBuYXNsb3YnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdFLXBvJnNjYXJvbjt0bmkgbmFzbG92IHphIHRhIHJhxI11biBuaSBiaWwgbmFqZGVuJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdUZcW+YXZlIHByaSBuYXN0YXZsamFuanUgdXBvcmFibmlrb3ZpaCBpbmZvcm1hY2lqJzsKJGxhbmdbJ2Vycm9yX3NldHRpbmdwcm9wZXJ0eSddID0gJ1Rlxb5hdmEgcHJpIGRvZGVsamV2YW5qdSBuYXN0YXZpdHZlJzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdVcG9yYWJuaWsgZG9kYW4gJXMgPSAlcyc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdVcG9yYWJuaWsgaXpicmlzYW4gdWlkPSVzJzsKJGxhbmdbJ3Byb3BlcnR5ZmlsdGVyJ10gPSAnTmFzdGF2aXRldic7CiRsYW5nWyd2YWx1ZXJlZ2V4J10gPSAnVnJlZG5vc3QgKHJlZ3VsYXJuaSBpenJheiknOwokbGFuZ1snd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnXSA9ICdQb3pvcjogdGEgcG9samEgaW1ham8gdnBsaXYgbmEgdmVsaWtvc3QgcG9saiB6YSBvYnJhemNlLiBabWFuaiZzY2Fyb247ZXZhbmplIHRlZ2EgJnNjYXJvbjt0ZXZpbGEgbmEgb2JzdG9qZcSNaSBzdHJhbmkgbmkgcHJpcG9yb8SNbGppdmEuJzsKJGxhbmdbJ2NvbmZpcm1fc3VibWl0cHJlZnMnXSA9ICdTdGUgcHJlcHJpxI1hbmksIGRhIMW+ZWxpdGUgbmFzdGF2aXRpIG1vxb5ub3N0aSBtb2R1bGE/JzsKJGxhbmdbJ2Vycm9yX2VtYWlsYWxyZWFkeXVzZWQnXSA9ICdFLW1haWwgbmFzbG92IGplIMW+ZSB2IHVwb3JhYmknOwokbGFuZ1sncHJvbXB0X3VzZWNvb2tpZXN0b3JlbWVtYmVyJ10gPSAnVXBvcmFiaSBwaSZzY2Fyb247a290a2UgemEgc2hyYW5pdGV2IHByaWphdmUnOwokbGFuZ1sncHJvbXB0X2Nvb2tpZW5hbWUnXSA9ICdJbWUgcGkmc2Nhcm9uO2tvdGthJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnRG92b2xpIHBvZHZvamVuZSBFLW1haWwgbmFzbG92ZSc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdFLW1haWwgbmFzbG92IGplIHVwb3JhYm5pJnNjYXJvbjtrbyBpbWUnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnUG9pemt1c2kgb2hyYW5pdGkgcHJpamF2bGplbmUgdXBvcmFibmlrZSB6IHVwb3JhYm8gcGkmc2Nhcm9uO2tvdGtvdiA8ZW0+KHBpJnNjYXJvbjtrb3RlayBqZSBwb25hc3RhdmxqZW4gb2IgYWt0aXZub3N0aSBuYSBzdHJhbmkpPC9lbT4nOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfZW1haWxzJ10gPSAnKGRvdm9saSB2ZcSNIHVwb3JhYm5pa292IHogaXN0aW0gRS1wbyZzY2Fyb247dG5pbSBuYXNsb3ZvbSknOwokbGFuZ1snaW5mb191c2VybmFtZV9pc19lbWFpbCddID0gJyh1cG9yYWJuaWtvdiBFLXBvJnNjYXJvbjt0bmkgbmFzbG92IGplIG5qZWdvdm8gdXBvcmFibmkmc2Nhcm9uO2tvIGltZSAtLSB0ZSBtb8W+bm9zdGkgbmUgbmFzdGF2aXRlIGhrcmF0aSB6IG1vxb5ub3N0am8gJnF1b3Q7RG92b2xpIHBvZHZvamVuZSBFX21haWwgbmFzbG92ZSZxdW90OyEpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnRG92b2xpIHBvZHZvamVuZSAmcXVvdDtwb3phYmxqZW5vIGdlc2xvJnF1b3Q7IG9wb21uaWtlPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoZG92b2xpIHVwb3JhYm5pa29tIG9kZGFqbyB6YWh0ZXZrYSB6YSBwb3Zybml0ZXYgZ2VzbGEsIMSNZXByYXYgc2UgbmlzbyBvZHp2YWxpIG5hIHByZWomc2Nhcm9uO25qaSB6YWh0ZXZlayknOwokbGFuZ1sncHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICdVcG9yYWJpIHNwZWNpZmnEjW5lIHByYXZpY2UgemEgZnJvbnQtZW5kIHVwb3JhYm5pa2U/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhQb25hdmFkaSBzbyBwcmF2aWNlIGZyb250LWVuZCB1cG9yYWJuaWtvdiBlbmFrZSB0aXN0aW0gdiBhZG1pbmlzdHJhY2lqaSwga290IG5wci4gZG9kYWogdXBvcmFibmlrYSwgZG9kYWogc2t1cGlubyBpdGQuIMSMZSBpemJlcmV0ZSB0byBtb8W+bm9zdCwgYm9zdGUgbGFoa28gaXpiaXJhbGkgbG/EjWVuZSBwcmF2aWNlIHphIGZyb250LWVuZCB1cG9yYWJuaWtlKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnTmUgbmFqZGVtIG5hbG/FvmVuZSBkYXRvdGVrZSAoaW50ZXJuYSBuYXBha2EpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJ10gPSAnUHJpJnNjYXJvbjtsbyBqZSBkbyBuYXBha2UgcHJpIG5hbGFnYW5qdSBkYXRvdGVrZS4gUHJvc2ltbyBwb2l6a3VzaXRlIHBvbm92bm8nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VzZXJuYW1lJ10gPSAnTmlzdGUgdnBpc2FsaSB1cG9yYWJuaSZzY2Fyb247a2VnYSBpbWVuYSc7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdOaXN0ZSB2cGlzYWxpIEUtbWFpbCBuYXNsb3ZhJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXNzd29yZCddID0gJ05pc3RlIHZwaXNhbGkgZ2VzbGEnOwokbGFuZ1snZnJvbnRlbmR1c2VyX2xvZ291dCddID0gJ09kamF2YSBmcm9udGVuZCB1cG9yYWJuaWthJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ1ByaWphdmEgZnJvbnRlbmQgdXBvcmFibmlrYSc7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPlVTRSBDQVVUSU9OPC9iPiB3aGVuIGNoYW5naW5nIGV4aXN0aW5nIHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gZ3JvdXBzLCB5b3UgbWF5IHBvdGVudGlhbGx5IGNhdXNlIGRhbWFnZSBhbmQgYnJlYWsgYW4gZXhpc3Rpbmcgc2l0ZSA8aT4oZXNwZWNpYWxseSBpZiB5b3UgcmVkdWNlIGZpZWxkIGxlbmd0aHMsIGV0Yyk8L2k+PC9mb250Pic7CiRsYW5nWydpbmZvX3NtdHB2YWxpZGF0ZSddID0gJ1RhIGZ1bmtjaWphIG5lIGRlbHVqZSBuYSBXaW5kb3dzJzsKJGxhbmdbJ21zZ19kb250Y3JlYXRldXNlcm5hbWUnXSA9ICdOZSB1c3R2YXJqYWp0ZSBtb8W+bm9zdGkgemEgdXBvcmFibmkmc2Nhcm9uO2tvIGltZSBhbGkgZ2VzbG8sIHNhaiBzbyBsZS10ZSDFvmUgdmtsanXEjWVuZSB2IHNhbSBtb2R1bCc7CiRsYW5nWydwcm9tcHRfZXhwb3J0Y3N2J10gPSAnSXp2b3ppIHVwb3JhYm5pa2UgdiBDU1YnOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnSXp2b3onOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnVXZveic7CiRsYW5nWydhZG1pbiddID0gJ0FkbWluJzsKJGxhbmdbJ2VkaXRwcm9wJ10gPSAnVXJlZGkgbW/Fvm5vc3QnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTmFqdmXEjWphIGRvbMW+aW5hJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdVc3R2YXJqZW5vJzsKJGxhbmdbJ3NvcnRieSddID0gJ1JhenZyc3RpIHBvJzsKJGxhbmdbJ3NvcnQnXSA9ICdSYXp2ciZzY2Fyb247xI1hbmplJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ1Vwb3JhYm5pa2kgdiBpemJyYW5paCBza3VwaW5haCc7CiRsYW5nWyd1c2VybGltaXQnXSA9ICdPbWVqaSByZXp1bHRhdGUgbmEnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGZpZWxkJ10gPSAnTmUgbmFqZGVtIEUtbWFpbCBwb2xqYSB6YSB0ZWdhIHVwb3JhYm5pa2EuIFByb3NpbW8sIG9idmVzdGl0ZSBhZG1pbmlzdHJhdG9yamEuJzsKJGxhbmdbJ3Byb21wdF9mb3Jnb3Rwd19wYWdlJ10gPSAnSUQgc3RyYW5pL0FsaWFzIHphIG9icmF6ZWMgemEgcG96YWJsamVubyBnZXNsbyc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ0lEIHN0cmFuaS9BbGlhcyB6YSBvYnJhemVjIHphIHNwcmVtZW1ibyBuYXN0YXZpdGV2JzsKJGxhbmdbJ3Byb21wdF9sb2dpbl9wYWdlJ10gPSAnSUQgc3RyYW5pL0FsaWFzIHphIG9icmF6ZWMgemEgcHJldXNtZXJpdGV2IHBvIHByaWphdmkgKic7CiRsYW5nWydwcm9tcHRfbG9nb3V0X3BhZ2UnXSA9ICdJRCBzdHJhbmkvQWxpYXMgemEgb2JyYXplYyB6YSBwcmV1c21lcml0ZXYgcG8gb2RqYXZpIConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU21lciByYXp2ciZzY2Fyb247xI1hbmphJzsKJGxhbmdbJ3Byb21wdF9udW1yZXNldHJlY29yZCddID0gJ05la2F0ZXJpIHVwb3JhYm5pa2kgc28gdiBwb3N0b3BrdSByZXNldGlyYW5qYSBwb3phYmxqZW5lZ2EgZ2VzbGEuIFRyZW51dG5vICZzY2Fyb247dGV2aWxvIHRlaCB1cG9yYWJuaWtvdjonOwokbGFuZ1sncmVtb3ZlMXdlZWsnXSA9ICdJemJyaSZzY2Fyb247aSB2c2Ugdm5vc2UsIHN0YXJlaiZzY2Fyb247ZSBvZCBlbmVnYSB0ZWRuYSc7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdJemJyaSZzY2Fyb247aSB2c2Ugdm5vc2UsIHN0YXJlaiZzY2Fyb247ZSBvZCBlbmVnYSBtZXNlY2EnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnSXpicmkmc2Nhcm9uO2kgdnNlIHZub3NlJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdTdGUgcHJlcHJpxI1hbmk/JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjb2RlJ10gPSAnVnBpc2FsaSBzdGUgbmFwYcSNbm8ga29kby4gUHJvc2ltbywgcG9pemt1c2l0ZSBwb25vdm5vJzsKJGxhbmdbJ2Vycm9yX3RlbXBjb2Rlbm90Zm91bmQnXSA9ICdaYcSNYXNuYSBrb2RhIHphIHZhJnNjYXJvbjsgdXBvcmFibmkmc2Nhcm9uO2tpIHJhxI11biBuZSBvYnN0YWphIHYgYmF6aSc7CiRsYW5nWydmb3Jnb3RwYXNzd29yZF92ZXJpZnl0ZW1wbGF0ZSddID0gJ1ByZWRsb2dhIHphIHByaWtheiBvYnJhemNhIHphIHByZXZlcmphbmplJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX2VtYWlsdGVtcGxhdGUnXSA9ICdQcmVkbG9nYSB6YSBwb3phYmxqZW5vIGdlc2xvJzsKJGxhbmdbJ2Vycm9yX3Jlc2V0YWxyZWFkeXNlbnQnXSA9ICdNb3JkYSBzdGUgdmkgYWxpIGtkbyBkcnVnIMW+ZSB6YWh0ZXZhbGkgcmVzZXRpcmFuamUgZ2VzbGEgemEgdGEgcmHEjXVuLiBQcm9zaW1vLCBwcmV2ZXJpdGUgdmEmc2Nhcm9uOyBFLXBvJnNjYXJvbjt0bmkgcHJlZGFsLCBramVyIHZhcyDEjWFrYWpvIG5hdm9kaWxhIHphIHJlc2V0aXJhbmplIGdlc2xhLic7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnTmFwYWthIG5hIGJhemknOwokbGFuZ1snbWVzc2FnZV9mb3Jnb3Rwd2VtYWlsJ10gPSAnVG8gc3Bvcm/EjWlsbyBzdGUgcHJlamVsaSwgc2FqIHN0ZSBwb2RhbGkgemFodGV2ZWsgemEgcG96YWJsamVubyBnZXNsby4gxIxlIHN0ZSBnZXNsbyB6YXJlcyBwb3phYmlsaSwgc2xlZGl0ZSBuYXZvZGlsb20gdiBuYWRhbGpldmFuanUuIFYga29saWtvciBtZW5pdGUsIGRhIHN0ZSB0byBzcG9yb8SNaWxvIHByZWplbGkgcG8gcG9tb3RpLCBnYSBsYWhrbyBicmV6IHNrcmJpIGl6YnJpJnNjYXJvbjtldGUuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnS29kYSc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdOYXNsZWRuamEga29kYSBqZSBiaWxhIGF2dG9tYXRpxI1ubyBnZW5lcmlyYW5hIHphIHByZXZlcmphbmplIHVwb3JhYm5pa292ZWdhIHJhxI11bmEuIEtvIGtsaWtuZXRlIG5hIHNwb2Ruam8gcG92ZXphdm8gYm9zdGUgcHJpJnNjYXJvbjtsaSBuYSBzdHJhbiBzIHBvbGplbSB6YSB2bm9zIHRlIGtvZGUuIFRvIHBvbGplIGJvIMW+ZSB2bmFwcmVqIGl6cG9sbmplbm8sIHYga29saWtvciBuaSwgdmFuaiB2cGkmc2Nhcm9uO2l0ZSBuYXNsZWRuam8ga29kbzonOwokbGFuZ1sncHJvbXB0X2xpbmsnXSA9ICdTIGtsaWtvbSBuYSBzcG9kbmpvIHBvdmV6YXZvIGJvc3RlIHByaSZzY2Fyb247bGkgbmEgc3BsZXRubyBzdHJhbiwga2plciB2cGkmc2Nhcm9uO2l0ZSB6Z29ybmpvIGtvZG8gaW4gcmVzZXRpcmFqdGUgdmEmc2Nhcm9uO2UgZ2VzbG86JzsKJGxhbmdbJ2xvc3RwYXNzd29yZF9lbWFpbHN1YmplY3QnXSA9ICdQb3phYmxqZW5vIGdlc2xvJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnTmUgbmFqZGVtIG1vZHVsYSBDTVNNYWlsZXInOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnRS1tYWlsIGplIGJpbCBwb3NsYW4gbmEgbmFzbG92ICVzIHogbmF2b2RpbGkgemEgcG9uYXN0YXZpdGV2IHZhJnNjYXJvbjtlZ2EgZ2VzbGEuIFByb3NpbW8sIHByZXZlcml0ZSB2YSZzY2Fyb247IHBvJnNjYXJvbjt0bmkgcHJlZGFsLic7CiRsYW5nWydsb3N0cHdfbWVzc2FnZSddID0gJ1Yga29saWtvciBzdGUgcG96YWJpbGkgZ2VzbG8sIHZwaSZzY2Fyb247aXRlIHZhJnNjYXJvbjtlIHVwb3JhYm5pJnNjYXJvbjtrbyBpbWUgaW4gcG9zbGFsaSB2YW0gYm9tbyBFLW1haWwgeiBuYXZvZGlsaSB6YSBwcmlkb2JpdGV2IG5vdmVnYSBnZXNsYS4nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdQcmVkbG9nZSB6YSBwb3phYmxqZW5vIGdlc2xvJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ1ByZWRsb2dlIHphIHBvemFibGplbm8gdXBvcmFibmkmc2Nhcm9uO2tvIGltZSc7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdNb8W+bm9zdCAlcyBuaSBuYWpkZW5hJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdNb8W+bm9zdGkgbmFqZGVuZSc7CiRsYW5nWydhZGRwcm9wJ10gPSAnRG9kYWogbW/Fvm5vc3QnOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ09idmV6bm8gcG9samUgKCVzKSBqZSBiaWxvIHByYXpubyc7CiRsYW5nWydpbmZvX2VtcHR5cGFzc3dvcmRmaWVsZCddID0gJ1ZwaSZzY2Fyb247aXRlIG5vdm8gZ2VzbG8gemEgc3ByZW1lbWJvIGdlc2xhJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnTmlzdGUgcHJpamF2bGplbmkgdiBzaXN0ZW0nOwokbGFuZ1sndXNlcl9zZXR0aW5ncyddID0gJ05hc3Rhdml0dmUnOwokbGFuZ1sndXNlcl9yZWdpc3RyYXRpb24nXSA9ICdSZWdpc3RyYWNpamEnOwokbGFuZ1snZXJyb3JfYWNjb3VudGV4cGlyZWQnXSA9ICdUYSByYcSNdW4gamUgcG90ZWtlbCc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnTmVwcmF2aWxlbiBFLW1haWwgbmFzbG92JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRleHBpcnlkYXRlJ10gPSAnTmFwYcSNZW4gZGF0dW0gcG90ZWthJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5ncHJvcGVydHknXSA9ICdOYXBha2EgcHJpIG5hc3RhdmxqYW5qdSBtb8W+bm9zdGkgJXMgemEgdXBvcmFibmlrYSAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ05hcGHEjWVuIElEIHNrdXBpbmUgJXMnOwokbGFuZ1snaGlkZGVuZmllbGRtYXJrZXInXSA9ICdPem5hxI1ldmFsZWMgc2tyaXRlZ2EgcG9samEnOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0JhcnZhIHNrcml0ZWdhIHBvbGphJzsKJGxhbmdbJ2hpZGRlbiddID0gJ1Nrcml0byc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnTW/Fvm5vc3QgcyB0ZW0gaW1lbm9tIGplIMW+ZSBkZWZpbmlyYW5hJzsKJGxhbmdbJ2Vycm9yX25vcHJvcGVydGllcyddID0gJ05pIGRlZmluaXJhbmloIG1vxb5ub3N0aSc7CiRsYW5nWydlcnJvcl9ub3JlbGF0aW9ucyddID0gJ05vYmVuYSBtb8W+bm9zdCBuaSBiaWxhIGl6YnJhbmEgemEgdG8gc2t1cGlubyc7CiRsYW5nWydub2dyb3VwcyddID0gJ05vYmVuYSBza3VwaW5hIG5pIGRlZmluaXJhbmEnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdOYWpkZW5lIHNrdXBpbmUnOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ09idmV6bm8gamUgxI1sYW5zdHZvIHYgdnNhaiBlbmkgc2t1cGluaSc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJ10gPSAnWmFodGV2YWogxI1sYW5zdHZvIHYgdnNhaiBlbmkgc2t1cGluaSc7CiRsYW5nWydiYWNrJ10gPSAnTmF6YWonOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzIGplIG9idmV6bm8gcG9samUnOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ096bmHEjWkgb2J2ZXpuYSBwb2xqYSB6JzsKJGxhbmdbJ3JlcXVpcmVkZmllbGRjb2xvciddID0gJ01hcmtpcmFqIG9idmV6bmEgcG9samEgeic7CiRsYW5nWyduZXh0J10gPSAnTmFwcmVqJzsKJGxhbmdbJ2Vycm9yX2dyb3VwZXhpc3RzJ10gPSAnU2t1cGluYSBzIHRlbSBpbWVub20gxb5lIG9ic3RhamEnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdPYnZlem5vJzsKJGxhbmdbJ29wdGlvbmFsJ10gPSAnTmVvYnZlem5vJzsKJGxhbmdbJ29mZiddID0gJ0l6a2xvcGxqZW5vJzsKJGxhbmdbJ3NpemUnXSA9ICdWZWxpa29zdCc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE5hanZlxI1qYSB2ZWxpa29zdCBuYWpkYWxqJnNjYXJvbjtlIHN0cmFuaWNlIHNsaWtlIHYgcGl4bGloKSc7CiRsYW5nWydsZW5ndGgnXSA9ICdEb2zFvmluYSc7CiRsYW5nWydsZW5ndGhjb21tZW50J10gPSAnPGJyPih6bmFrb3YgdiB0ZWtzdG92bmVtIHBvbGp1KSc7CiRsYW5nWydzZWxvcHRpb25zJ10gPSAnTW/Fvm5vc3RpIGl6dmxlxI1uZWdhIG1lbmlqYSwgbG/EjWVuZSB6IG5vdmltaSB2cnN0aWNhbWkuIFZyZWRub3N0aSBzbyBsYWhrbyBsb8SNZW5lIG9kIGJlc2VkaWxhIHogem5ha29tID07IG5wcjogTW8mc2Nhcm9uO2tpPW0nOwokbGFuZ1sncmFkaW9vcHRpb25zJ10gPSAnUmFkaW9idXR0b24gbGFiZWxzLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuIFZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIGZyb20gdGV4dCB3aXRoIGEgPSBjaGFyYWN0ZXIuIGkuZTogRmVtYWxlPWYnOwokbGFuZ1sncHJvbXB0J10gPSAnVm5vcyc7CiRsYW5nWydwcm9tcHRfdHlwZSddID0gJ1RpcCc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwJzsKJGxhbmdbJ2ZpZWxkc3RhdHVzJ10gPSAnU3RhdHVzIHBvbGphJzsKJGxhbmdbJ3VzZWRpbmxvc3R1biddID0gJ1ZwcmEmc2Nhcm9uO2FqIHYgcG96YWJsamVuZW08YnIvPnVwb3JhYm5pJnNjYXJvbjtrZW0gaW1lbnUnOwokbGFuZ1sndGV4dCddID0gJ0Jlc2VkaWxvICh0ZXh0KSc7CiRsYW5nWydjaGVja2JveCddID0gJ0NoZWNrYm94JzsKJGxhbmdbJ211bHRpc2VsZWN0J10gPSAnU2V6bmFtIHogdmXEjWtyYXRubyBpemJpcm8gKG11bHRpc2VsZWN0KSc7CiRsYW5nWydyYWRpb2J1dHRvbnMnXSA9ICdSYWRpbyBCdXR0b25zJzsKJGxhbmdbJ2ltYWdlJ10gPSAnU2xpa2EnOwokbGFuZ1snZW1haWwnXSA9ICdFLW1haWwgbmFzbG92JzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnQmVzZWRpbG8gKHRleHRhcmVhKSc7CiRsYW5nWydkcm9wZG93biddID0gJ0l6dmxlxI1uaSBtZW5pJzsKJGxhbmdbJ21zZ19jdXJyZW50bHlsb2dnZWRpbmFzJ10gPSAnRG9icm9kbyZzY2Fyb247bGknOwokbGFuZ1snbG9nb3V0J10gPSAnT2RqYXZhJzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdVcG9yYWJpIHRvIGltZSBza3VwaW5lJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ1NwcmVtZW1iYSBtb2ppaCBuYXN0YXZpdGV2JzsKJGxhbmdbJ2Vycm9yX2xvZ2luZmFpbGVkJ10gPSAnUHJpamF2YSBuaSB1c3BlJnNjYXJvbjtuYSAtIHN0ZSBwb3phYmlsaSB1cG9yYWJuaSZzY2Fyb247a28gaW1lIGFsaSBnZXNsbz8nOwokbGFuZ1snbG9naW4nXSA9ICdQcmlqYXZhJzsKJGxhbmdbJ3Byb21wdF9zaWduaW5fYnV0dG9uJ10gPSAnTmFwaXMgbmEgZ3VtYnUgemEgcHJpamF2byc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdVcG9yYWJuaSZzY2Fyb247a28gaW1lJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0UtbWFpbCBuYXNsb3YnOwokbGFuZ1sncHJvbXB0X3Bhc3N3b3JkJ10gPSAnR2VzbG8nOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICdaYXBvbW5pIHNpIG1lJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnUmVnaXN0cmFjaWphJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnU3RlIHBvemFiaWxpIGdlc2xvPyc7CiRsYW5nWydsb3N0dXNlcm5hbWUnXSA9ICdTdGUgcG96YWJpbGkgdXBvcmFibmkmc2Nhcm9uO2tvIGltZT8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdQcml2emV0byc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1ByZWRsb2dhJzsKJGxhbmdbJ2Vycm9yX3VzZXJub3Rmb3VuZCddID0gJ05lIG5hamRlbSBpbmZvcm1hY2lqIG8gdGVtIHVwb3JhYm5pa3UnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ1RvIHVwb3JhYm5pJnNjYXJvbjtrbyBpbWUgKCVzKSBqZSDFvmUgdiB1cG9yYWJpJzsKJGxhbmdbJ3Byb21wdF9zbXRwdmFsaWRhdGUnXSA9ICdVcG9yYWJpIFNNVFAgemEgcHJldmVyamFuamUgRS1tYWlsIG5hc2xvdm92Pyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdOYWptYW5qJnNjYXJvbjthIGRvbMW+aW5hIGdlc2xhJzsKJGxhbmdbJ3Byb21wdF9tYXhwd2xlbiddID0gJ05hanZlxI1qYSBkb2zFvmluYSBnZXNsYSc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdOYWptYW5qJnNjYXJvbjthIGRvbMW+aW5hIHVwb3JhYm5pJnNjYXJvbjtrZWdhIGltZW5hJzsKJGxhbmdbJ3Byb21wdF9tYXh1bmxlbiddID0gJ05hanZlxI1qYSBkb2zFvmluYSB1cG9yYWJuaSZzY2Fyb247a2VnYSBpbWVuYSc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdJenRlayBzZWplIHYgc2VrdW5kYWggKHRpbWVvdXQpJzsKJGxhbmdbJ3Byb21wdF9jb29raWVrZWVwYWxpdmUnXSA9ICdVcG9yYWJpIHBpJnNjYXJvbjtrb3RrZSB6YSBzaHJhbmpldmFuamUgcHJpamF2JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VtYWlscmVnJ10gPSAnRG92b2xpIHJlZ2lzdHJhY2lqbyBwcmVrIEUtbWFpbGEnOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ1ByaXZ6ZXRhIHNrdXBpbmEgemEgbm92ZSB1cG9yYWJuaWtlJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnU3ByZW1lbmkgcHJlZGxvZ28geiBuYXN0YXZpdHZhbWknOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ0dlc2xpIHNlIG5lIHVqZW1hdGEnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnTmFwYcSNbm8gdXBvcmFibmkmc2Nhcm9uO2tvIGltZSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFzc3dvcmQnXSA9ICdOYXBhxI1ubyBnZXNsbyc7CiRsYW5nWydlZGl0dXNlciddID0gJ1VyZWRpIHVwb3JhYm5pa2EnOwokbGFuZ1sndmFsaWQnXSA9ICdWZWxqYXZlbic7CiRsYW5nWyd1c2VybmFtZSddID0gJ1Vwb3JhYm5pJnNjYXJvbjtrbyBpbWUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJ1RhIHVwb3JhYm5payBuaSDEjWxhbiBub2JlbmUgc2t1cGluZSc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnTmkgbW/Fvm5vc3RpJzsKJGxhbmdbJ2Vycm9yX2R1cF9wcm9wZXJ0aWVzJ10gPSAnUG9pemt1cyB1dm96YSBwb2R2b2plbmloIG1vxb5ub3N0aSc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZyZWRub3N0JzsKJGxhbmdbJ2dyb3VwcyddID0gJ1NrdXBpbmUnOwokbGFuZ1sncHJvcGVydGllcyddID0gJ01vxb5ub3N0aSc7CiRsYW5nWydwcm9wbmFtZSddID0gJ0ltZSBtb8W+bm9zdGknOwokbGFuZ1sncHJvcHZhbHVlJ10gPSAnVnJlZG5vc3QgbW/Fvm5vc3RpJzsKJGxhbmdbJ2FkZCddID0gJ0RvZGFqJzsKJGxhbmdbJ2hpc3RvcnknXSA9ICdaZ29kb3ZpbmEnOwokbGFuZ1snZWRpdCddID0gJ1VyZWRpJzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdQb3RlxI1lJzsKJGxhbmdbJ3NwZWNpZnlfZGF0ZSddID0gJ0RvbG/EjWl0ZXYgZGF0dW1hJzsKJGxhbmdbJzEyaHJzJ10gPSAnMTIgdXInOwokbGFuZ1snMjRocnMnXSA9ICcyNCB1cic7CiRsYW5nWyc0OGhycyddID0gJzQ4IHVyJzsKJGxhbmdbJzF3ZWVrJ10gPSAnMSB0ZWRlbic7CiRsYW5nWycyd2Vla3MnXSA9ICcyIHRlZG5hJzsKJGxhbmdbJzFtb250aCddID0gJzEgbWVzZWMnOwokbGFuZ1snM21vbnRocyddID0gJzMgbWVzZWNlJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IG1lc2VjZXYnOwokbGFuZ1snMXllYXInXSA9ICcxIGxldG8nOwokbGFuZ1snbmV2ZXInXSA9ICdOaWtvbGknOwokbGFuZ1sncG9zdGluc3RhbGxtZXNzYWdlJ10gPSAnTW9kdWxlIGluc3RhbGxlZCBzdWNlc3NmdWxseS48YnIvPkJlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRnJvbnRFbmRVc2VyIFByb3BlcnRpZXMgcGVybWlzc2lvbi4gIEFkZGl0aW9uYWxseSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiAgSWYgaW5zdGFsbGVkLCB2YWxpZGF0aW9uIG9mIGEgY2FwdGNoYSBpbWFnZSB3aWxsIGJlIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgdG8gbG9naW4uICBUaGlzIGlzIGludGVuZGVkIHRvIHByZXZlbnQgYnJ1dGUgZm9yY2UgYXR0YWNrcy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIG5vY2FwdGNoYSBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZXZlbiBpZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLiZxdW90Oyc7CiRsYW5nWydwYXNzd29yZCddID0gJ0dlc2xvJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnUG9ub3Zubyc7CiRsYW5nWydlcnJvcl9ncm91cG5hbWVfZXhpc3RzJ10gPSAnU2t1cGluYSBzIHRlbSBpbWVub20gxb5lIG9ic3RhamEnOwokbGFuZ1snZWRpdGdyb3VwJ10gPSAnVXJlamFuamUgc2t1cGluZSc7CiRsYW5nWydzdWJtaXQnXSA9ICdQbyZzY2Fyb247bGppJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1ByZWtsacSNaSc7CiRsYW5nWydkZWxldGUnXSA9ICdJemJyaSZzY2Fyb247aSc7CiRsYW5nWydjb25maXJtX2VkaXRncm91cCddID0gJ1N0ZSBwcmVwcmnEjWFuaSwgZGEgc28gdG8gcHJhdmlsbmUgbmFzdGF2aXR2ZSB6YSB0byBza3VwaW5vP1xuxIxlIG9uZW1vZ2/EjWl0ZSBtb8W+bm9zdCBuZSBib2RvIGl6YnJpc2FuaSBub2JlbmkgemFwaXNpIHYgdGFiZWxpIHphIHRvIHNrdXBpbm8vdXBvcmFibmlrYSwgYW1wYWsgc2FtbyBuZSBib2RvIG5hIHZvbGpvLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnU3RlIHByZXByacSNYW5pLCBkYSDFvmVsaXRlIGl6YnJpc2F0aSB0byBza3VwaW5vPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9wcm9wJ10gPSAnU3RlIHByZXByacSNYW5pLCBkYSDFvmVsaXRlIGl6YnJpc2F0aSB0byBtb8W+bm9zdD9cbsSMZSBqbyBpemJyaSZzY2Fyb247ZXRlLCBib2RvIGl6YnJpc2FuZSB0dWRpIHZzZSB2cmVkbm9zdGkgdXBvcmFibmlrb3YgemEgdG8gbW/Fvm5vc3QuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ05lemFkb3N0bmkgcGFyYW1ldHJpJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snbmFtZSddID0gJ0ltZSc7CiRsYW5nWydlcnJvcl9jYW50YWRkcHJvcCddID0gJ05hcGFrYSBwcmkgZG9kYWphbmp1IG1vxb5ub3N0aSc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXByZWxuJ10gPSAnTmFwYWthIHByaSBkb2RhamFuanUgcmVsYWNpamUgc2t1cGluZSc7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXAnXSA9ICdOYXBha2EgcHJpIGRvZGFqYW5qdSBza3VwaW5lJzsKJGxhbmdbJ2Vycm9yX2NhbnRhc3NpZ251c2VyJ10gPSAnTmFwYWthIHByaSBkb2RhamFuanUgdXBvcmFibmlrYSBza3VwaW5pJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZGVsZXRlcHJvcGVydHknXSA9ICdOYXBha2EgcHJpIGl6YnJpc3UgbW/Fvm5vc3RpJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZmluZGVtYWlsJ10gPSAnTmUgbmFqZGVtIEUtbWFpbCBuYXNsb3ZhJzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdOaSBwcmF2aWMgemEgcGlzYW5qZSB2IHRvIG1hcG8nOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ05hcGHEjW5pIHBhcmFtZXRyaSc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcyddID0gJ05lIG5hamRlbSBub2JlbmloIHNrdXBpbic7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ1Vwb3JhYmknOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ3VzZXJmaWx0ZXInXSA9ICdSZWd1bGFybmkgaXpyYXogemEgdXBvcmFibmkmc2Nhcm9uO2tvIGltZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ09waXMnOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnSW1lIHNrdXBpbmUnOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnRG9zdG9wIHphdnJuamVuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnTmFwYWthJzsKJGxhbmdbJ2FkZGdyb3VwJ10gPSAnRG9kYWogc2t1cGlubyc7CiRsYW5nWydpbXBvcnRncm91cCddID0gJ1V2b3ppIHNrdXBpbm8nOwokbGFuZ1snYWRkdXNlciddID0gJ0RvZGFqIHVwb3JhYm5pa2EnOwokbGFuZ1sndXNlcnNmb3VuZCddID0gJ05hamRlbmkgdXBvcmFibmlraSwga2kgdXN0cmV6YWpvIGtyaXRlcmlqdSc7CiRsYW5nWydncm91cCddID0gJ1NrdXBpbmEnOwokbGFuZ1snc2VsZWN0Z3JvdXAnXSA9ICdJemJlcml0ZSBza3VwaW5vJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1ByZWRsb2dhIHphIHJlZ2lzdHJhY2lqbyc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdQcmVkbG9nYSB6YSBvZGphdm8nOwokbGFuZ1snbG9naW5fdGVtcGxhdGUnXSA9ICdQcmVkbG9nYSB6YSBwcmlqYXZvJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnTmFzdGF2aXR2ZSc7CiRsYW5nWyd1c2VycyddID0gJ1Vwb3JhYm5pa2knOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnVXByYXZpdGVsaiB1cG9yYWJuaWtvdi/EjWxhbm92JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRG92b2xpIHByaWphdm8gdXBvcmFibmlrb3YgcHJla28gc3BsZXRuZSBzdHJhbmknOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gJ1ByaXZ6ZXRhIHZzdG9wbmEgc3RyYW4nOwokbGFuZ1snbGFzdGFjY2Vzc2VkcGFnZSddID0gJ1phZG5qYSBkb3N0b3BhbmEgc3RyYW4nOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnRHJ1Z2Egc3RyYW46ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnVnBpJnNjYXJvbjtpdGUgYmVzZWRpbG8gcyBzbGlrZSc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX3VzZXJfbm9udW5pcXVlX2ZpZWxkX3ZhbHVlJ10gPSAnRGV0IGFuZ2l2bmEgdiZhdW1sO3JkZXQgZiZvdW1sO3IgJSBzIGFudiZhdW1sO25kcyByZWRhbiBhdiBlbiBhbm5hbiBhbnYmYXVtbDtuZGFyZSc7CiRsYW5nWyd1bmlxdWUnXSA9ICdVbmlrJzsKJGxhbmdbJ2Vycm9yX25vbnVuaXF1ZV9maWVsZF92YWx1ZSddID0gJ0RldCBhbmdpdm5hIHYmYXVtbDtyZGV0IGYmb3VtbDtyICUgcyAoJSBzKSAmYXVtbDtyIGludGUgdW5pa3QnOwokbGFuZ1sncHJvbXB0X2ZvcmNlX3VuaXF1ZSddID0gJ0ZvcmNlIHZhbHVlcyBvZiB0aGlzIHByb3BlcnR5IHRvIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHVzZXIgYWNjb3VudHMnOwokbGFuZ1snaGVscF9yZXR1cm5sYXN0J10gPSAnVXNlZCB3aXRoIHRoZSBsb2dpbiBhbmQgbG9nb3V0IGZvcm1zLCB0aGlzIHBhcmFtZXRlciBpZiBzcGVjaWZpZWQgd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSB1c2VyIHNob3VsZCBiZSByZXR1cm5lZCB0byB0aGUgcGFnZSAoYnkgdXJsKSB0aGF0IHRoZSB1c2VyIHdhcyB2aWV3aW5nIGJlZm9yZSB0aGUgYWN0aW9uIG9jY3VycmVkLiAgVGhpcyBwYXJhbWV0ZXIgd2lsbCBvdmVycmlkZSB0aGUgcmVkaXJlY3QgcHJlZmVyZW5jZXMsIGFuZCB0aGUgcmV0dXJudG8gcGFyYW1ldGVyLic7CiRsYW5nWydoZWxwX25vaW5saW5lJ10gPSAnVXNlZCB3aXRoIG9uZSBvZiB0aGUgZm9ybXMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IHRoZSBmb3JtcyBzaG91bGQgbm90IGJlIHBsYWNlZCBpbmxpbmUsIGluc3RlYWQgdGhlIHJlc3VsdGluZyBvdXRwdXQgYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uIHdpbGwgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrJzsKJGxhbmdbJ3RpdGxlX3Jlc2V0X3Nlc3Npb24nXSA9ICdMb2dpbiBTZXNzaW9uIFRpbWVvdXQgV2FybmluZyc7CiRsYW5nWydtc2dfcmVzZXRfc2Vzc2lvbiddID0gJ1lvdXIgbG9naW4gc2Vzc2lvbiBpcyBhYm91dCB0byBleHBpcmUsIHBsZWFzZSBjbGljayAmcXVvdDsmcXVvdDtPayZxdW90OyB0byBjb25maXJtIHlvdXIgYWN0aXZpdHkgb24gdGhpcyB3ZWJzaXRlLic7CiRsYW5nWydvayddID0gJ09LJzsKJGxhbmdbJ3Jlc2V0c2Vzc2lvbl90ZW1wbGF0ZSddID0gJyZBcmluZzt0ZXJzdCZhdW1sO2xsIFNlc3Npb25zbWFsbCc7CiRsYW5nWydpbmZvX25hbWUnXSA9ICdEZXR0YSAmYXVtbDtyIGYmYXVtbDtsdG5hbW5ldCwgc29tIHNrYSBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIGF0dCB0YSBpdHUgbWVkIFNtYXJ0eS4gRGV0IHNrYWxsIGJlc3QmYXJpbmc7IGF2IGVuZGFzdCBhbGZhbnVtZXJpc2thIHRlY2tlbiBvY2ggdW5kZXJzdHJlY2suJzsKJGxhbmdbJ3Zpc2l0b3JzX3RhYiddID0gJ0JlcyZvdW1sO2thcmUnOwokbGFuZ1snZmV1X2dyb3Vwc19wcm9tcHQnXSA9ICdWJmF1bWw7bGogZW4gZWxsZXIgZmxlcmEgRkVVIGdydXBwZXIgc29tIGhhciB0aWxsZyZhcmluZztuZyB0aWxsIGRlbm5hIHNpZGEnOwokbGFuZ1snZXJyb3JfbXVzdHNlbGVjdF9ncm91cCddID0gJ0R1IG0mYXJpbmc7c3RlIHYmYXVtbDtsamEgZW4gZ3J1cHAnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnViZhdW1sO2xqIGVuJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICdTdGFydCAmYXJpbmc7cic7CiRsYW5nWydlbmRfeWVhciddID0gJ1NsdXQgJmFyaW5nO3InOwokbGFuZ1snZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ3Byb21wdF90aHVtYm5haWxfc2l6ZSddID0gJ1N0b3JsZWsgZiZvdW1sO3IgdHVtbmFnZWxiaWxkJzsKJGxhbmdbJ09uVXBkYXRlR3JvdXAnXSA9ICdPbiBVc2VyIEdyb3VwIE1vZGlmaWVkICc7CiRsYW5nWydlcnJvcl90b29tYW55c2VsZWN0ZWQnXSA9ICdGJm91bWw7ciBtJmFyaW5nO25nYSBhbnYmYXVtbDtuZGFyZSAmYXVtbDtyIHZhbGRhIGYmb3VtbDtyIGJ1bGsgdmVya3NhbWhldCAuLi4uIFNrdWxsZSBkdSBrdW5uYSB0cmltbWEgZGVuIHRpbGwgMjUwIGVsbGVyIG1pbmRyZSc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9zZWxlY3RlZCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCByYWRlcmEgZGVuIHZhbGRhIGFudiZhdW1sO25kYXJlbj8nOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnUmFkZXJhIG1hcmtlcmFkZSc7CiRsYW5nWydwcm9tcHRfcmFuZG9tdXNlcm5hbWUnXSA9ICdHZW5lcmVyYSBzbHVtcG0mYXVtbDtzc2lndCBhbnYmYXVtbDtuZGFybmFtbiB2aWQgYWRkZXJpbmcgYXYgbnkgYW52JmF1bWw7bmRhcmUnOwokbGFuZ1snbW9udGhzJ10gPSAnbSZhcmluZztuYWRlcic7CiRsYW5nWydwcm9tcHRfZXhwaXJlYWdlJ10gPSAnR3J1bmRhbnYmYXVtbDtuZGFyZW5zIHV0ZyZhcmluZztuZ3N0aWQnOwokbGFuZ1snbm90aWZpY2F0aW9uX3NldHRpbmdzJ10gPSAnTm90aWZlcmluZ3NpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sncHJvcGVydHlfc2V0dGluZ3MnXSA9ICdFZ2Vuc2thcHNpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sncmVkaXJlY3Rpb25fc2V0dGluZ3MnXSA9ICdPbWRpcmlnZXJpbmdzIGluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnQWxsbSZhdW1sO25uYSBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snc2Vzc2lvbl9zZXR0aW5ncyddID0gJ1Nlc3Npb24gb2NoIENvb2tpZSBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snZmllbGRfc2V0dGluZ3MnXSA9ICdGJmF1bWw7bHQgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ2Vycm9yX2xvc3R1bl9ub25yZXF1aXJlZCddID0gJ0dsJm91bWw7bXQgYW52JmF1bWw7bmRhcm5hbW4gZmxhZ2dhbiBrYW4gYmFyYSBhbnYmYXVtbDtuZGFzIHAmYXJpbmc7IG9ibGlnYXRvcmlza2EgZiZhdW1sO2x0JzsKJGxhbmdbJ3Byb3BfdGV4dGFyZWFfd3lzaXd5ZyddID0gJ1RpbGwmYXJpbmc7dCBhbnYmYXVtbDtuZG5pbmcgYXYgd3lzaXd5ZyBwJmFyaW5nOyBkZXR0YSB0ZXh0b21yJmFyaW5nO2RldCc7CiRsYW5nWydpbmZvX2Nvb2tpZXN0b3JlbWVtYmVyJ10gPSAnPHN0cm9uZz5Ob3Rpc2U6IDwvc3Ryb25nPiBEZXR0YSBhbnYmYXVtbDtuZGVyIG1jcnlwdCBmdW5rdGlvbmVyIGYmb3VtbDtyIGtyeXB0ZXJpbmcsIG9jaCBkZSBrdW5kZSBpbnRlIHVwcHQmYXVtbDtja2FzIHAmYXJpbmc7IGRpbiBpbnN0YWxsYXRpb24uIEtvbnRha3RhIGRpbiBzZXJ2ZXIgYWRtaW5pc3RyYXQmb3VtbDtyLic7CiRsYW5nWydlZGl0aW5nX3VzZXInXSA9ICdSZWRpZ2VyYSBhbnYmYXVtbDtuZGFyZSc7CiRsYW5nWydub2lubGluZSddID0gJ0FudiZhdW1sO25kIGludGUgZm9ybXVsJmF1bWw7ciBzb20gaW5saW5lJzsKJGxhbmdbJ2luZm9fbG9zdHVuJ10gPSAnR2wmb3VtbDttdCBkaW5hIGFudiZhdW1sO25kYXJ1cHBnaWZ0ZXInOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ0dsJm91bWw7bXQgZGl0dCBsJm91bWw7c2Vub3JkJzsKJGxhbmdbJ2luZm9fbG9nb3V0J10gPSAnS2xpY2thIGgmYXVtbDtyIGYmb3VtbDtyIGF0dCBsb2dnYSB1dCc7CiRsYW5nWydpbmZvX2NoYW5nZXNldHRpbmdzJ10gPSAnS2xpY2thIGgmYXVtbDtyIGYmb3VtbDtyIGF0dCAmYXVtbDtuZHJhIGRpdHQgbCZvdW1sO3Nlbm9yZCBlbGxlciBhbm5hbiBpbmZvcm1hdGlvbic7CiRsYW5nWyd2aWV3dXNlcl90ZW1wbGF0ZSddID0gJ1Zpc2EgYW52JmF1bWw7bmRhcm1hbGwnOwokbGFuZ1snZXZlbnQnXSA9ICdIJmF1bWw7bmRlbHNlJzsKJGxhbmdbJ2ZldV9ldmVudF9ub3RpZmljYXRpb24nXSA9ICdGRVUgSCZhdW1sO25kZWxzZW5vdGlmaWVyaW5nJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fYWRkcmVzcyddID0gJ0Vwb3N0YWRyZXNzIGYmb3VtbDtyIG5vdGlmaWVyaW5nJzsKJGxhbmdbJ3Byb21wdF9ub3RpZmljYXRpb25fdGVtcGxhdGUnXSA9ICdNYWxsIGYmb3VtbDtyIG5vdGlmaWVyaW5ncy1lcG9zdCc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICcmQXVtbDttbmVzcmFkIGYmb3VtbDtyIG5vdGlmaWVyaW5ncy1lcG9zdCc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9ucyddID0gJ05vdGlmaWVyaW5ncy1lcG9zdCc7CiRsYW5nWydPbkxvZ2luJ10gPSAnVmlkIGlubG9nZ25pbmcnOwokbGFuZ1snT25Mb2dvdXQnXSA9ICdWaWQgdXRsb2dnbmluZyc7CiRsYW5nWydPbkV4cGlyZVVzZXInXSA9ICdWaWQgdXRsJm91bWw7cHQgc2Vzc2lvbic7CiRsYW5nWydPbkNyZWF0ZVVzZXInXSA9ICdWaWQgc2thcGFuZGUgYXYgbnkgYW52JmF1bWw7bmRhcmUnOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnVmlkIGJvcnR0YWdhbmRlIGF2IGFudiZhdW1sO25kYXJlJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ1ZpZCAmYXVtbDtuZHJhZGUgYW52JmF1bWw7bmRhcmluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnVmlkIHNrYXBhbmRlIGF2IGFudiZhdW1sO25kYXJncnVwcCc7CiRsYW5nWydPbkRlbGV0ZUdyb3VwJ10gPSAnVmlkIGJvcnR0YWdhbmRlIGF2IGFudiZhdW1sO25kYXJncnVwcCc7CiRsYW5nWydsb3N0dW5jb25maXJtX3ByZW1zZyddID0gJ1ZpIGhhciBmdW5uaXQgZXR0IHVuaWt0IGFudiZhdW1sO25kYXJuYW1uIHNvbSBtYXRjaGFyIGRlIHVwcGdpZnRlciBkdSBsJmF1bWw7bW5hdC4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ0RpdHQgYW52JmF1bWw7bmRhcm5hbW4gJmF1bWw7cic7CiRsYW5nWydsb3N0dW5jb25maXJtX3Bvc3Rtc2cnXSA9ICdWaSByZWtvbW1lbmRlcmFyIGF0dCBkdSBzcGFyYXIgZGVubmEgaW5mb3JtYXRpb24gcCZhcmluZzsgZW4gcyZhdW1sO2tlciBwbGF0cy4nOwokbGFuZ1sncHJvbXB0X2FmdGVyX2NoYW5nZV9zZXR0aW5ncyddID0gJ1BhZ2VJRC9BbGlhcyBhdHQgZyZhcmluZzsgdGlsbCBlZnRlciAmYXVtbDtuZHJhZGUgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl92ZXJpZnlfY29kZSddID0gJ1BhZ2VJRC9BbGlhcyBhdHQgZyZhcmluZzsgdGlsbCBlZnRlciB2ZXJpZmllcmluZyBhdiBrb2QgKic7CiRsYW5nWydsb3N0dW5fZGV0YWlsc190ZW1wbGF0ZSddID0gJ01hbGwgZiZvdW1sO3IgdXBwZ2lmdGVyIG9tIGdsJm91bWw7bXQgYW52JmF1bWw7bmRhcm5hbW4nOwokbGFuZ1snbG9zdHVuX2NvbmZpcm1fdGVtcGxhdGUnXSA9ICdNYWxsIGYmb3VtbDtyIGJla3ImYXVtbDtmdGVsc2UgdmlkIGdsJm91bWw7bXQgYW52JmF1bWw7bmRhcm5hbW4nOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlbWF0Y2gnXSA9ICdGZWw6IE1lciAmYXVtbDtuIGVuIGFudiZhdW1sO25kYXJlIHN0JmF1bWw7bWRlICZvdW1sO3ZlcmVucyBtZWQgZGUgZWdlbnNrYXBlciBzb20gYW5nYXZzJzsKJGxhbmdbJ2Vycm9yX2NhbnRmaW5kdXNlciddID0gJ0ZlbDogS3VuZGUgaW50ZSBoaXR0YSBlbiBhbnYmYXVtbDtuZGFyZSBzb20gc3QmYXVtbDttZGUgJm91bWw7dmVyZW5zIG1lZCBzJm91bWw7a2tyaXRlcmllcm5hJzsKJGxhbmdbJ2Vycm9yX2dyb3Vwbm90Zm91bmQnXSA9ICdGZWw6IEt1bmRlIGludGUgaGl0dGEgZW4gZ3J1cHAgbWVkIGRldCBuYW1uZXQnOwokbGFuZ1sncmVhZG9ubHknXSA9ICdFbmJhcnQgbCZhdW1sO3NyJmF1bWw7dHRpZ2hldGVyJzsKJGxhbmdbJ3Byb21wdF91c2VybWFuaXB1bGF0b3InXSA9ICdLbGFzcyBmJm91bWw7ciBhbnYmYXVtbDtuZGFyaGFudGVyaW5nIChVc2VyIE1hbmlwdWxhdG9yIENsYXNzKSc7CiRsYW5nWydhZG1pbl9sb2dvdXQnXSA9ICdVdGxvZ2dhZCBhdiBhZG1pbmlzdHJhdCZvdW1sO3InOwokbGFuZ1sncHJvbXB0X2xvZ2dlZGlub25seSddID0gJ1Zpc2EgZW5iYXJ0IGlubG9nZ2FkZSBhbnYmYXVtbDtuZGFyZSc7CiRsYW5nWydwcm9tcHRfbG9nb3V0J10gPSAnTG9nZ2EgdXQgZGVuIGgmYXVtbDtyIGFudiZhdW1sO25kYXJlbic7CiRsYW5nWyd1c2VyX3Byb3BlcnRpZXMnXSA9ICdBbnYmYXVtbDtuZGFyZWdlbnNrYXBlcic7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ0FudiZhdW1sO25kYXJoaXN0b3Jpayc7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnRlcmEnOwokbGFuZ1snY2xlYXInXSA9ICdSZW5zYSc7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknXSA9ICdFeHBvcnRlcmEgYW52JmF1bWw7bmRhcmhpc3RvcmlrIHRpbGwgQVNDSUkgc29tICZhdW1sO3IgbWluc3QnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdSZW5zYSBhbnYmYXVtbDtuZGFyaGlzdG9yaWsgc29tICZhdW1sO3IgbWluc3QnOwokbGFuZ1sndGl0bGVfbG9zdHVzZXJuYW1lJ10gPSAnU3VwcG9ydGZvcm11bCZhdW1sO3IgZiZvdW1sO3IgZiZvdW1sO3Jsb3JhdCBhbnYmYXVtbDtuZGFybmFtbic7CiRsYW5nWyd0aXRsZV9yc3NleHBvcnQnXSA9ICdFeHBvcnRlcmEgZ3J1cHBkZWZpbml0aW9uIChvY2ggZWdlbnNrYXBlcikgdGlsbCBYTUwnOwokbGFuZ1sndGl0bGVfdXNlcmhpc3RvcnltYWludGVuYW5jZSddID0gJ1VuZGVyaCZhcmluZztsbCBhbnYmYXVtbDtuZGFyaGlzdG9yaWsnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnQXYnOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogSW5nZW4gYmVnciZhdW1sO25zbmluZyAqKic7CiRsYW5nWydkYXRlX29uZWhvdXJvbGQnXSA9ICdFbiB0aW1tZSBnYW1tYWwnOwokbGFuZ1snZGF0ZV9zaXhob3Vyb2xkJ10gPSAnU2V4IHRpbW1hciBnYW1tYWwnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnVG9sdiB0aW1tYXIgZ2FtbWFsJzsKJGxhbmdbJ2RhdGVfb25lZGF5b2xkJ10gPSAnRW4gZGFnIGdhbW1hbCc7CiRsYW5nWydkYXRlX29uZXdlZWtvbGQnXSA9ICdFbiB2ZWNrYSBnYW1tYWwnOwokbGFuZ1snZGF0ZV90d293ZWVrc29sZCddID0gJ1R2JmFyaW5nOyB2ZWNrb3IgZ2FtbWFsJzsKJGxhbmdbJ2RhdGVfb25lbW9udGhvbGQnXSA9ICdFbiBtJmFyaW5nO25hZCBnYW1tYWwnOwokbGFuZ1snZGF0ZV90aHJlZW1vbnRoc29sZCddID0gJ1RyZSBtJmFyaW5nO25hZGVyIGdhbW1hbCc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ1NleCBtJmFyaW5nO25hZGVyIGdhbW1hbCc7CiRsYW5nWydkYXRlX29uZXllYXJvbGQnXSA9ICdFdHQgJmFyaW5nO3IgZ2FtbWFsJzsKJGxhbmdbJ3RpdGxlX2dyb3Vwc29ydCddID0gJ0dydXBwZXJpbmcgb2NoIHNvcnRlcmluZyc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2ZvdW5kJ10gPSAnRiZhdW1sO2x0IHNvbSAmb3VtbDt2ZXJlbnNzdCZhdW1sO21tZXIgbWVkIGtyaXRlcmlldCc7CiRsYW5nWydzb3J0b3JkZXJfdXNlcm5hbWVfZGVzYyddID0gJ0ZhbGxhbmRlIGFudiZhdW1sO25kYXJuYW1uJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdTdGlnYW5kZSBhbnYmYXVtbDtuZGFybmFtbic7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9kZXNjJ10gPSAnRmFsbGFuZGUgZGF0dW0nOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfYXNjJ10gPSAnU3RpZ2FuZGUgZGF0dW0nOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9kZXNjJ10gPSAnRmFsbGFuZGUgaCZhdW1sO25kZWxzZXR5cCc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2FzYyddID0gJ1N0aWdhbmRlIGgmYXVtbDtuZGVsc2V0eXAnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19kZXNjJ10gPSAnRmFsbGFuZGUgSVAtYWRyZXNzJzsKJGxhbmdbJ3NvcnRvcmRlcl9pcGFkZHJlc3NfYXNjJ10gPSAnU3RpZ2FuZGUgSVAtYWRyZXNzJzsKJGxhbmdbJ2luZm9fbm9oaXN0b3J5ZGV0ZWN0ZWQnXSA9ICdJbmdlbiBoaXN0b3JpayBoaXR0YWRlcyc7CiRsYW5nWydyZXNldCddID0gJyZBcmluZzt0ZXJzdCZhdW1sO2xsJzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0dydXBwZXJhIHAmYXJpbmc7IElQLWFkcmVzcyc7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZSddID0gJ0gmYXVtbDtuZGVsc2V0eXBzZmlsdGVyJzsKJGxhbmdbJ3Byb21wdF9maWx0ZXJfZGF0ZSddID0gJ1Zpc2EgYmFyYSBoJmF1bWw7bmRlbHNlIHNvbSAmYXVtbDtyIG1pbmRyZSAmYXVtbDtuOic7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnU2lkZ3ImYXVtbDtucyc7CiRsYW5nWydmb3InXSA9ICdmJm91bWw7cic7CiRsYW5nWyd0aXRsZV91c2VyaGlzdG9yeSddID0gJ1JhcHBvcnQgZiZvdW1sO3IgYW52JmF1bWw7bmRhcmhpc3RvcmlrJzsKJGxhbmdbJ3Vua25vd24nXSA9ICdPayZhdW1sO25kJzsKJGxhbmdbJ3Byb21wdF9pcGFkZHJlc3MnXSA9ICdJUC1hZHJlc3MnOwokbGFuZ1sncHJvbXB0X2V2ZW50dHlwZSddID0gJ0gmYXVtbDtuZGVsc2V0eXAnOwokbGFuZ1sncHJvbXB0X2RhdGUnXSA9ICdEYXR1bSc7CiRsYW5nWydwcm9tcHRfcmV0dXJuJ10gPSAnJkFyaW5nO3RlcnYmYXVtbDtuZCc7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnSW1wb3J0ZW4gc2x1dGYmb3VtbDtyZCc7CiRsYW5nWydwcm9tcHRfbGluZXNwcm9jZXNzZWQnXSA9ICdIYW50ZXJhZGUgcmFkZXInOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ1AmYXJpbmc7dHImYXVtbDtmZmFkZSBmZWwnOwokbGFuZ1sncHJvbXB0X3JlY29yZHNhZGRlZCddID0gJ1RpbGxhZ2RhIHJhZGVyJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBwcm9wcmVsbnMnXSA9ICdLdW5kZSBpbnRlIGhpdHRhIGVnZW5zcGFlciBmJm91bWw7ciBncnVwcGVuICVzJzsKJGxhbmdbJ2Vycm9yX25vcmVzcG9uc2Vmcm9tc2VydmVyJ10gPSAnS3VuZGUgaW50ZSBmJmFyaW5nOyBuJmFyaW5nO2dvdCBzdmFyIGZyJmFyaW5nO24gU01UUC1zZXJ2ZXJuJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpbGVub3Rmb3VuZCddID0gJ0ZpbGVuICglcykga3VuZGUgaW50ZSBoaXR0YXMnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ09naWx0aWd0IHYmYXVtbDtyZGUgZiZvdW1sO3IgZHJvcGRvd24gZWxsZXIgZmxlcnZhbHNmJmF1bWw7bHRldCAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWVsZGxlbmd0aCddID0gJ0YmYXVtbDtsdGV0ICVzICZvdW1sO3ZlcnN0aWdlciBtYWdsJmF1bWw7bmdkJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydHVzZXJzJ10gPSAnSW1wb3J0ZmVsIChyYWQgJXMpOiAlcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0eWRlZm5zJ10gPSAnS3VuZGUgaW50ZSBoJmF1bWw7bXRhIGRlZmluaXRpb25lciBmJm91bWw7ciBlZ2Vuc2thcGVuIChpbnRlcm50IGZlbCknOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNldHRpbmdpbmZvJ10gPSAnUHJvYmxlbSBtZWQgYXR0IHN0JmF1bWw7bGxhIGluIGFudiZhdW1sO25kYXJpbmZvcm1hdGlvbic7CiRsYW5nWydlcnJvcl9pbXBvcnRyZXF1aXJlZGZpZWxkJ10gPSAnS3VuZGUgaW50ZSBoaXR0YSBlbiBrb2x1bW4gZiZvdW1sO3IgZiZhdW1sO2x0ZXQgJXMnOwokbGFuZ1snZXJyb3Jfbm9ncm91cHByb3BlcnRpZXMnXSA9ICdLdW5kZSBpbnRlIGhpdHRhIGVnZW5za2FwZXIgZiZvdW1sO3IgZGVuIGFuZ2l2bmEgZ3J1cHBlbic7CiRsYW5nWydlcnJvcl9pbXBvcnRmaWxlZm9ybWF0J10gPSAnRGVuIGFuZ2l2bmEgaW1wb3J0ZmlsZW4gJmF1bWw7ciBpbnRlIGtvcnJla3QgZm9ybWF0dGVyYWQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ0t1bmRlIGludGUgJm91bWw7cHBuYSBmaWwnOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcIykgY2hhcmFjdGVycywgYW5kIG5hbWVzIGVhY2ggb2YgdGhlIGZpZWxkcyBpbiB0aGUgZmlsZS4gIFRoZSBuYW1lcyBvZiB0aGVzZSBmaWVsZHMgaXMgc2lnbmlmaWNhbnQuICBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZCBuYW1lcyAoc2VlIGJlbG93KSwgYW5kIG90aGVyIGZpZWxkIG5hbWVzIG11c3QgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdXNlcnMgYXJlIGdvaW5nIHRvIGJlIGFkZGVkIGludG8uPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBmYWlsIGlmIHRoZSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgZG9lcyBub3QgbWF0Y2ggYWxsIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdGhhdCB1c2VycyBhcmUgYmVpbmcgYWRkZWQgaW50bzwvbGk+DQo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBpZ25vcmUgYW55IGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSB0aGF0IGFyZSBlaXRoZXIgbm90IGtub3duLCBvciBtYXAgdG8gcHJvcGVydGllcyB0aGF0IGFyZSA8ZW0+b2ZmPC9lbT4gaW4gdGhlIHNwZWNpZmllZCB1c2VyIGdyb3VwLjwvbGk+DQo8L3VsPg0KPGg1PkNvbHVtbmFyIERhdGE8L2g1Pg0KPHVsPg0KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuDQogICAgPHA+VGhpcyBmaWVsZCBtdXN0IGV4aXN0IGluIHRoZSBoZWFkZXJsaW5lLCBhbmQgaW4gZWFjbiBhbmQgZXZlcnkgbGluZSBvZiB0aGUgaW5wdXQgZmlsZS4gVGhlIHJlY29yZCB3aWxsIGZhaWwgaWYgYSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UuPC9wPjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5leHBpcmVzPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+RHJvcGRvd24gRmllbGRzDQogICAgPHA+VGhlIHZhbHVlIG9mIGRyb3Bkb3duIHByb3BlcnRpZXMgaW4gYW4gaW1wb3J0IGZpbGUgaXMgcmVwcmVzZW50ZWQgYXMgdGhlIHN0cmluZyB0aGF0IGlzIHNob3duIGluIHRoZSBkcm9wZG93biBjb250cm9sIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPk11bHRpc2VsZWN0IEZpZWxkcw0KICAgIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4NCjwvbGk+DQo8bGk+SW1hZ2UgRmllbGRzDQogICAgPHA+SW1hZ2UgYXJlIGZpZWxkcyB3aG8mIzAzOTtzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0ZXJhIGFudiZhdW1sO25kYXJlIHRpbGwgZGVubmEgZ3J1cHBlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdBbmdlIENTVi1maWwnOwokbGFuZ1sncHJvbXB0X2ltcG9ydHhtbGZpbGUnXSA9ICdBbmdlIFhNTC1maWwnOwokbGFuZ1sncHJvbXB0X2V4cG9ydHVzZXJzJ10gPSAnRXhwb3J0ZXJhIGFudiZhdW1sO25kYXJlJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnR1c2VycyddID0gJ0ltcG9ydGVyYSBhbnYmYXVtbDtuZGFyZSc7CiRsYW5nWydwcm9tcHRfY2xlYXInXSA9ICdSZW5zYSc7CiRsYW5nWydwcm9tcHRfaW1hZ2VfZGVzdGluYXRpb25fcGF0aCddID0gJ1Mmb3VtbDtrdiZhdW1sO2cgZiZvdW1sO3IgYmlsZCc7CiRsYW5nWydlcnJvcl9taXNzaW5nX3VwbG9hZCddID0gJ0V0dCBwcm9ibGVtIHVwcHN0b2QgbWVkIGVuIHNha25hZCAobWVuIGtyJmF1bWw7dmQpIHVwcGxhZGRuaW5nJzsKJGxhbmdbJ2Vycm9yX2JhZF94bWwnXSA9ICdLdW5kZSBpbnRlIGhhbnRlcmEgZGVuIHRpbGxoYW5kYWgmYXJpbmc7bGxuYSBYTUwtZmlsZW4nOwokbGFuZ1snZXJyb3Jfbm90ZW1wdHlncm91cCddID0gJ0thbiBpbnRlIHRhIGJvcnQgZW4gZ3J1cHAgc29tIGlubmVoJmFyaW5nO2xsZXIgYW52JmF1bWw7bmRhcmUnOwokbGFuZ1snZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucyddID0gJ0RlbiBoJmF1bWw7ciBhbnYmYXVtbDtuZGFyZW4gaGFyIHJlZGFuIGxvZ2dhdCBpdCc7CiRsYW5nWydlcnJvcl9jYXB0Y2hhbWlzbWF0Y2gnXSA9ICdCaWxkZW5zIHRleHQgaGFyIGludGUgbWF0YXRzIGluIGtvcnJla3QnOwokbGFuZ1sncHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2lucyddID0gJ1RpbGwmYXJpbmc7dCBhbnYmYXVtbDtuZGFyZSBhdHQgbG9nZ2EgaW4gbWVkIGZsZXJhIHNlc3Npb25lcic7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJ10gPSAnVGlsbCZhcmluZzt0bmEgZmlsJmF1bWw7bmRlbHNlIGYmb3VtbDtyIGJpbGRlciBzb20gYW52JmF1bWw7bmRhcmUgdGlsbCZhcmluZzt0cyBsYWRkYSB1cHAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZVVzZXInXSA9ICc8aDM+T25EZWxldGVVc2VyPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPnVzZXJuYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVVc2VyJ10gPSAnPGgzPk9uQ3JlYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25VcGRhdGVVc2VyJ10gPSAnPGgzPk9uVXBkYXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyB1cGRhdGVkIChlaXRoZXIgYnkgdXNlciB0aGVtc2VsZiBvciBhZG1pbik8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSB1c2VyIG5hbWU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIHVzZXIgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkNyZWF0ZUdyb3VwJ10gPSAnPGgzPk9uQ3JlYXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGNyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBncm91cCBkZXNjcmlwdGlvbjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkRlbGV0ZUdyb3VwJ10gPSAnPGgzPk9uRGVsZXRlR3JvdXA8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGdyb3VwIGlzIGRlbGV0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBncm91cCBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBncm91cCBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9naW4nXSA9ICc8aDM+T25Mb2dpbjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBsb2dzIGluPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+aXA8L2VtPiAtIFRoZSBpcCBhZGRyZXNzIG9mIHRoZSBjbGllbnQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0PC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZG91dCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkV4cGlyZVVzZXInXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgc2Vzc2lvbiBleHBpcmVzPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZCBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ2luJ10gPSAnRW4gaCZhdW1sO25kZWxzZSBzb20gc2thcGFzIGQmYXJpbmc7IGVuIGFudiZhdW1sO25kYXJlIGxvZ2dhciBpbiBpIHN5c3RlbWV0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Mb2dvdXQnXSA9ICdFbiBoJmF1bWw7bmRlbHNlIHNvbSBza2FwYXMgZCZhcmluZzsgZW4gYW52JmF1bWw7bmRhcmUgbG9nZ2FyIHV0IHVyIHN5c3RlbWV0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25FeHBpcmVVc2VyJ10gPSAnRW4gaCZhdW1sO25kZWxzZSBzb20gc2thcGFzIGQmYXJpbmc7IGVuIGFudiZhdW1sO25kYXJlcyBpbmxvZ2duaW5nc3Nlc3Npb24gbCZvdW1sO3BlciB1dCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlVXNlciddID0gJ0VuIGgmYXVtbDtuZGVsc2Ugc29tIHNrYXBhcyBkJmFyaW5nOyBlbiBhbnYmYXVtbDtuZGFyZSBza2FwYXMnOwokbGFuZ1snZXZlbnRfaW5mb19PblVwZGF0ZVVzZXInXSA9ICdFbiBoJmF1bWw7bmRlbHNlIHNvbSBza2FwYXMgZCZhcmluZzsgZW4gYW52JmF1bWw7bmRhcmVzIGluZm9ybWF0aW9uIHVwcGRhdGVyYXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZVVzZXInXSA9ICdFbiBoJmF1bWw7bmRlbHNlIHNvbSBza2FwYXMgZCZhcmluZzsgZXR0IGFudiZhdW1sO25kYXJrb250byB0YXMgYm9ydCc7CiRsYW5nWydldmVudF9pbmZvX09uQ3JlYXRlR3JvdXAnXSA9ICdFbiBoJmF1bWw7bmRlbHNlIHNvbSBza2FwYXMgZCZhcmluZzsgZW4gYW52JmF1bWw7bmRhcmdydXBwIHNrYXBhcyc7CiRsYW5nWydldmVudF9pbmZvX09uVXBkYXRlR3JvdXAnXSA9ICdFbiBnZW5lcmVyYWQgaCZhdW1sO25kZWxzZSBkJmFyaW5nOyBlbiBhbnYmYXVtbDtuZGFyZ3J1cHAgJmF1bWw7ciB1cHBkYXRlcmFkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25EZWxldGVHcm91cCddID0gJ0VuIGgmYXVtbDtuZGVsc2Ugc29tIHNrYXBhcyBkJmFyaW5nOyBlbiBhbnYmYXVtbDtuZGFyZ3J1cHAgdGFzIGJvcnQnOwokbGFuZ1snYmFja2VuZF9ncm91cCddID0gJ0JhY2tlbmQtZ3J1cHAnOwokbGFuZ1snaW5mb19zdGFyJ10gPSAnKiBGJm91bWw7bGphbmRlIG1ha3JvbiBrYW4gYW52JmF1bWw7bmRhcyBpIGRlc3NhIGYmYXVtbDtsdCB7JHVzZXJuYW1lfSx7JGdyb3VwfS4gTiZhdW1sO3IgJiMwMzk7eyRncm91cH0tbWFrcm90JiMwMzk7IGFudiZhdW1sO25kcyBrb21tZXIgc3lzdGVtZXQgZXJzJmF1bWw7dHRhIG5hbW5ldCAgcCZhcmluZzsgZGVuIGYmb3VtbDtyc3RhIG1lZGxlbXNncnVwcGVuIHNvbSBhbnYmYXVtbDtuZGFyZW4gdGlsbGgmb3VtbDtyIG9jaCBrb21tZXIgc3R5cmEgb20gdGlsbCBkZW4gc2lkYW4uJzsKJGxhbmdbJ2luZm9fYWRtaW5fcGFzc3dvcmQnXSA9ICdSZWRpZ2VyYSBkZXR0YSBmJmF1bWw7bHRldCBmJm91bWw7ciBhdHQgJmFyaW5nO3RlcnN0JmF1bWw7bGxhIGFudiZhdW1sO25kYXJlbnMgbCZvdW1sO3Nlbm9yZCc7CiRsYW5nWydpbmZvX2FkbWluX3JlcGVhdHBhc3N3b3JkJ10gPSAnUmVkaWdlcmEgZGV0dGEgZiZhdW1sO2x0ZXQgZiZvdW1sO3IgYXR0ICZhcmluZzt0ZXJzdCZhdW1sO2xsYSBhbnYmYXVtbDtuZGFyZW5zIGwmb3VtbDtzZW5vcmQnOwokbGFuZ1snZXJyb3JfdXNlcm5hbWVfZXhpc3RzJ10gPSAnRGV0IGZpbm5zIHJlZGFuIGVuIGFudiZhdW1sO25kYXJlIG1lZCBkZXQgYW52JmF1bWw7bmRhcm5hbW5ldCc7CiRsYW5nWydub2NzdnJlc3VsdHMnXSA9ICdJbmdldCByZXN1bHRhdCByZXR1cm5lcmFkZXMgZnImYXJpbmc7biBDU1YtZXhwb3J0ZW4nOwokbGFuZ1sncHJvbXB0X3VuZmxkbGVuJ10gPSAnTCZhdW1sO25nZCBwJmFyaW5nOyBmJmF1bWw7bHRldCBmJm91bWw7ciBhbnYmYXVtbDtuZGFybmFtbic7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdMJmF1bWw7bmdkIHAmYXJpbmc7IGYmYXVtbDtsdGV0IGYmb3VtbDtyIGwmb3VtbDtzZW5vcmQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ01pbi9tYXgtdiZhdW1sO3JkZW5hIGYmb3VtbDtyIGwmYXVtbDtuZ2RlbiBwJmFyaW5nOyBsJm91bWw7c2Vub3JkICZhdW1sO3Igb2dpbHRpZ2EnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lbGVuZ3RocyddID0gJ01pbi9tYXgtdiZhdW1sO3JkZW5hIGYmb3VtbDtyIGwmYXVtbDtuZ2RlbiBwJmFyaW5nOyBhbnYmYXVtbDtuZGFybmFtbiAmYXVtbDtyIG9naWx0aWdhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdPZ2lsdGlnIGVwb3N0YWRyZXNzJzsKJGxhbmdbJ2Vycm9yX25vZW1haWxhZGRyZXNzJ10gPSAnSW5nZW4gZXBvc3RhZHJlc3MgaGl0dGFkZXMgZiZvdW1sO3IgZGV0dGEga29udG90JzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZWV0dGluZ2luZm8nXSA9ICdFdHQgZmVsIHVwcHN0b2QgbiZhdW1sO3IgYW52JmF1bWw7bmRhcmluZm9ybWF0aW9uZW4gc2t1bGxlIHNwYXJhcyc7CiRsYW5nWydlcnJvcl9zZXR0aW5ncHJvcGVydHknXSA9ICdFdHQgZmVsIHVwcHN0b2QgbiZhdW1sO3IgYW52JmF1bWw7bmRhcmVnZW5za2FwZW4gc2t1bGxlIHNwYXJhcyc7CiRsYW5nWyd1c2VyX2FkZGVkJ10gPSAnQW52JmF1bWw7bmRhcmVuICVzID0gJXMgbGFkZXMgdGlsbCc7CiRsYW5nWyd1c2VyX2RlbGV0ZWQnXSA9ICdBbnYmYXVtbDtuZGFyZW4gdWlkPSVzIHRvZ3MgYm9ydCc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ0VnZW5za2FwJzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWJmF1bWw7cmRlIChyZWd1bGomYXVtbDtydCB1dHRyeWNrKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ1Zhcm5pbmc6IERlc3NhIGYmYXVtbDtsdCBwJmFyaW5nO3ZlcmthciBzdG9ybGVrZW4gcCZhcmluZzsgZiZhdW1sO2x0IGkgZm9ybXVsJmF1bWw7ci4gRGV0ICZhdW1sO3IgaW50ZSB0aWxsciZhcmluZztkbGlndCBhdHQgbWluc2thIGRlc3NhIHYmYXVtbDtyZGVuIGkgZW4gZXhpc3RlcmFuZGUgd2ViYnBsYXRzLic7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2aWxsIGp1c3RlcmEgaW5zdCZhdW1sO2xsbmluZ2FybmEgZiZvdW1sO3IgbW9kdWxlbj8nOwokbGFuZ1snZXJyb3JfZW1haWxhbHJlYWR5dXNlZCddID0gJ0Vwb3N0YWRyZXNzZW4gYW52JmF1bWw7bmRzIHJlZGFuJzsKJGxhbmdbJ3Byb21wdF91c2Vjb29raWVzdG9yZW1lbWJlciddID0gJ0FudiZhdW1sO25kIGNvb2tpZXMgZiZvdW1sO3IgYXR0IGtvbW1hIGloJmFyaW5nO2cgaW5sb2dnbmluZ3N1cHBnaWZ0ZXInOwokbGFuZ1sncHJvbXB0X2Nvb2tpZW5hbWUnXSA9ICdOYW1uIHAmYXJpbmc7IGNvb2tpZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJ1RpbGwmYXJpbmc7dCBkdWJsZXR0ZXIgcCZhcmluZzsgZXBvc3RhZHJlc3Nlcic7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWVfaXNfZW1haWwnXSA9ICdlcG9zdGFkZHJlc3NlbiAmYXVtbDtyIGFudiZhdW1sO25kYXJuYW1uZXQnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnRiZvdW1sO3JzJm91bWw7ayBoJmFyaW5nO2xsYSBpbmxvZ2duaW5nYXIgdmlkIGxpdiBnZW5vbSBhdHQgYW52JmF1bWw7bmRhIGNvb2tpZXMgPGVtPihjb29raWU6biAmYXJpbmc7dGVyc3QmYXVtbDtsbHMgdmlkIGFrdGl2aXRldCBpIHdlYmJwbGF0c2VuKTwvZW0+JzsKJGxhbmdbJ2luZm9fYWxsb3dfZHVwbGljYXRlX2VtYWlscyddID0gJyh0aWxsJmFyaW5nO3QgbXVsdGlwbGEgYW52JmF1bWw7bmRhcmUgbWVkIHNhbW1hIGVwb3N0YWRyZXNzKSc7CiRsYW5nWydpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnKHVzZXImIzAzOTtzIGVtYWlsIGFkZHJlc3MgaXMgdGhlaXIgdXNlcm5hbWUgLS0gZG9uJiMwMzk7dCBzZXQgdGhpcyB3aXRoICZxdW90O2FsbG93IGR1cGxpY2F0ZSBlbWFpbCBhZGRyZXNzZXMmcXVvdDshKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJ1RpbGwmYXJpbmc7dCBtdWx0aXBsYSBwJmFyaW5nO21pbm5lbHNlciBhdiB0eXBlbiAmcXVvdDtnbCZvdW1sO210IGwmb3VtbDtzZW5vcmQmcXVvdDsnOwokbGFuZ1snaW5mb19hbGxvd19kdXBsaWNhdGVfcmVtaW5kZXJzJ10gPSAnKHRpbGwmYXJpbmc7dCBhbnYmYXVtbDtuZGFyZSBhdHQgYmVnJmF1bWw7cmEgZW4gJmFyaW5nO3RlcnN0JmF1bWw7bGxuaW5nIGF2IGwmb3VtbDtzZW5vcmRldCwgJmF1bWw7dmVuIG9tIGRlIGludGUgaGFyIGJla3ImYXVtbDtmdGF0IHRpZGlnYXJlKSc7CiRsYW5nWydwcm9tcHRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJ0FudiZhdW1sO25kIEZyb250LWVuZCBVc2VyOnMgc3BlY2lmaWthIHImYXVtbDt0dGlnaGV0ZXI/JzsKJGxhbmdbJ2luZm9fZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9ucyddID0gJyhOb3JtYWx0ICZhdW1sO3IgciZhdW1sO3R0aWdoZXRlcm5hIGYmb3VtbDtyIEZyb250ZW5kLWFudiZhdW1sO25kYXJlIHNhbW1hIHNvbSBtb3RzdmFyYW5kZSByJmF1bWw7dHRpZ2hldGVyIGYmb3VtbDtyIEFkbWluLWRlbGVuIHNvbSBMJmF1bWw7Z2cgdGlsbCBhbnYmYXVtbDtuZGFyZSwgTCZhdW1sO2dnIHRpbGwgZ3J1cHAgb3N2LiBPbSBkdSB2JmF1bWw7bGplciBkZXR0YSBhbHRlcm5hdGl2IGtvbW1lciBkZXQgYmxpIHNlcGFyYXRhIHImYXVtbDt0dGlnaGV0ZXIgZiZvdW1sO3IgRnJvbnRlbmQtYW52JmF1bWw7bmRhbmRhcmUuKS4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VwbG9hZCddID0gJ0t1bmRlIGludGUgaGl0dGEgZGVuIHVwcGxhZGRhZGUgZmlsZW4gKGludGVybnQgZmVsKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtX3VwbG9hZCddID0gJ0RldCB1cHBzdG9kIGV0dCBmZWwgbWVkIGZpbGVuIGR1IGxhZGRhdCB1cHAuIEYmb3VtbDtycyZvdW1sO2sgaWdlbic7CiRsYW5nWydlcnJvcl9taXNzaW5ndXNlcm5hbWUnXSA9ICdEdSBhbmdhdiBpbmdldCBhbnYmYXVtbDtuZGFybmFtbic7CiRsYW5nWydlcnJvcl9taXNzaW5nZW1haWwnXSA9ICdEdSBhbmdhdiBpbnRlIGRpbiBlcG9zdGFkcmVzcyc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdEdSBhbmdhdiBpbmdldCBsJm91bWw7c2Vub3JkJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dvdXQnXSA9ICdMb2dnYXQgdXQgZnImYXJpbmc7biBGcm9udGVuZCBVc2VyJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dnZWRpbiddID0gJ0xvZ2dhIGluIGkgRnJvbnRlbmQgVXNlcic7CiRsYW5nWydlZGl0cHJvcF9pbmZvbXNnJ10gPSAnPGZvbnQgY29sb3I9JnF1b3Q7cmVkJnF1b3Q7PjxiPlVTRSBDQVVUSU9OPC9iPiB3aGVuIGNoYW5naW5nIGV4aXN0aW5nIHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gZ3JvdXBzLCB5b3UgbWF5IHBvdGVudGlhbGx5IGNhdXNlIGRhbWFnZSBhbmQgYnJlYWsgYW4gZXhpc3Rpbmcgc2l0ZSA8aT4oZXNwZWNpYWxseSBpZiB5b3UgcmVkdWNlIGZpZWxkIGxlbmd0aHMsIGV0Yyk8L2k+PC9mb250Pic7CiRsYW5nWydpbmZvX3NtdHB2YWxpZGF0ZSddID0gJ0RlbiBoJmF1bWw7ciBmdW5rdGlvbmVuIGZ1bmdlcmFyIGludGUgcCZhcmluZzsgV2luZG93cyc7CiRsYW5nWydtc2dfZG9udGNyZWF0ZXVzZXJuYW1lJ10gPSAnU2thcGEgaW50ZSBlZ2Vuc2thcGVyIGYmb3VtbDtyIGFudiZhdW1sO25kYXJuYW1uIG9jaCBsJm91bWw7c2Vub3JkIGVmdGVyc29tIGRlc3NhICZhdW1sO3IgaW5neWdnZGEgaSBtb2R1bGVuIEZyb250RW5kVXNlcnMnOwokbGFuZ1sncHJvbXB0X2V4cG9ydGNzdiddID0gJ0V4cG9ydGVyYSBhbnYmYXVtbDtuZGFyZSB0aWxsIENTVic7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnRlcmEnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0ZXJhJzsKJGxhbmdbJ2FkbWluJ10gPSAnQWRtaW5pc3RyZXJhJzsKJGxhbmdbJ2VkaXRwcm9wJ10gPSAnUmVkaWdlcmEgZWdlbnNrYXAnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4bCZhdW1sO25nZCc7CiRsYW5nWydjcmVhdGVkJ10gPSAnU2thcGFkJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRlcmEgZWZ0ZXInOwokbGFuZ1snc29ydCddID0gJ1NvcnRlcmFyJzsKJGxhbmdbJ3VzZXJzaW5ncm91cCddID0gJ0FudiZhdW1sO25kYXJlIGkgZGVuIHZhbGRhIGdydXBwZW4vZ3J1cHBlcm5hJzsKJGxhbmdbJ3VzZXJsaW1pdCddID0gJ0JlZ3ImYXVtbDtuc2EgcmVzdWx0YXRldCBlZnRlcic7CiRsYW5nWydlcnJvcl9ub2VtYWlsZmllbGQnXSA9ICdLdW5kZSBpbnRlIGhpdHRhIGV0dCBlLXBvc3RmJmF1bWw7bHQgZiZvdW1sO3IgZGVubmEgYW52JmF1bWw7bmRhcmVuLiBEdSBrYW5za2UgYmVoJm91bWw7dmVyIGtvbnRha3RhIHN5c3RlbWFkbWluaXN0cmF0Jm91bWw7cmVuLic7CiRsYW5nWydwcm9tcHRfZm9yZ290cHdfcGFnZSddID0gJ1NpZC1JRC8tYWxpYXMgZiZvdW1sO3IgR2wmb3VtbDttdCBsJm91bWw7c2Vub3JkLWZvcm11bCZhdW1sO3JldCc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ1NpZC1JRC8tYWxpYXMgZiZvdW1sO3IgJkF1bWw7bmRyYSBpbnN0JmF1bWw7bGxuaW5nYXItZm9ybXVsJmF1bWw7cmV0JzsKJGxhbmdbJ3Byb21wdF9sb2dpbl9wYWdlJ10gPSAnU2lkLUlELy1hbGlhcyBmJm91bWw7ciBnJmFyaW5nOyB0aWxsIGVmdGVyIGlubG9nZ25pbmcqJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXRfcGFnZSddID0gJ1NpZC1JRC8tYWxpYXMgZiZvdW1sO3IgZyZhcmluZzsgdGlsbCBlZnRlciB1dGxvZ2duaW5nIConOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydGVyaW5nc29yZG5pbmcnOwokbGFuZ1sncHJvbXB0X251bXJlc2V0cmVjb3JkJ10gPSAnRXR0IGFudGFsIGFudiZhdW1sO25kYXJlIGgmYXJpbmc7bGxlciBwJmFyaW5nOyBhdHQgJmFyaW5nO3RlcnN0JmF1bWw7bGxhIGdsJm91bWw7bWRhIGwmb3VtbDtzZW5vcmQuIEp1c3QgbnUgJmF1bWw7ciBhbnRhbGV0Oic7CiRsYW5nWydyZW1vdmUxd2VlayddID0gJ1JhZGVyYSBwb3N0ZXIgc29tICZhdW1sO3IgJmF1bWw7bGRyZSBlbiB2ZWNrYSc7CiRsYW5nWydyZW1vdmUxbW9udGgnXSA9ICdSYWRlcmEgcG9zdGVyIHNvbSAmYXVtbDtyICZhdW1sO2xkcmUgZW4gbSZhcmluZztuYWQnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnVGEgYm9ydCBhbGxhIHBvc3Rlcic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyPyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY29kZSddID0gJ0VuIG9naWx0aWcga29kIGhhciBhbmdldHRzLCB2JmF1bWw7bmxpZ2VuIGYmb3VtbDtycyZvdW1sO2sgaWdlbic7CiRsYW5nWydlcnJvcl90ZW1wY29kZW5vdGZvdW5kJ10gPSAnSW5nZW4gdGlsbGYmYXVtbDtsbGlnIGtvZCBmJm91bWw7ciBkaXR0IGFudiZhdW1sO25kYS1JRCBrdW5kZSBoaXR0YXMgaSBkYXRhYmFzZW4nOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdmVyaWZ5dGVtcGxhdGUnXSA9ICdNYWxsIHNvbSBhbnYmYXVtbDtuZHMgZiZvdW1sO3IgYXR0IHZpc2EgYmVrciZhdW1sO2Z0ZWxzZWZvcm11bCZhdW1sO3InOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfZW1haWx0ZW1wbGF0ZSddID0gJ01hbGwgc29tIGFudiZhdW1sO25kcyBmJm91bWw7ciBhdHQgc2tpY2thIGJvcnRnbCZvdW1sO21kYSBsJm91bWw7c2Vub3JkJzsKJGxhbmdbJ2Vycm9yX3Jlc2V0YWxyZWFkeXNlbnQnXSA9ICdBbnRpbmdlbiBoYXIgZHUgc2omYXVtbDtsdiBlbGxlciBuJmFyaW5nO2dvbiBhbm5hbiBiZWcmYXVtbDtydCBhdHQgZiZhcmluZzsgJmFyaW5nO3RlcnN0JmF1bWw7bGxhIGwmb3VtbDtzZW5vcmRldCBmJm91bWw7ciBkZXR0YSBrb250by4gS29udHJvbGxlcmEgZGluIGUtcG9zdCwgZHUgaGl0dGFyIHZpZGFyZSBpbnN0cnVrdGlvbmVyIGYmb3VtbDtyIGh1ciBkdSAmYXJpbmc7dGVyc3QmYXVtbDtsbGVyIGwmb3VtbDtzZW5vcmRldCBpIGRpbiBpbmtvcmcuJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZmVsJzsKJGxhbmdbJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCddID0gJ0R1IGYmYXJpbmc7ciBkZXR0YSBtZWRkZWxhbmRlIGVmdGVyc29tIG4mYXJpbmc7Z29uIGhhciBhbmdldHQgYXR0IGR1IGhhciBnbCZvdW1sO210IGRpdHQgbCZvdW1sO3Nlbm9yZC4gT20gcyZhcmluZzsgJmF1bWw7ciBmYWxsZXQsIGwmYXVtbDtzIGluc3RydWt0aW9uZXJuYSBuZWRhbi4gT20gZHUgaW50ZSBoYXIgZW4gYW5pbmcgb20gdmFkIGRldHRhICZhdW1sO3Iga2FuIGR1IHRhIGJvcnQgZGV0dGEgbWVkZGVsYW5kZSBvY2ggdmkgdGFja2FyIGRpZyBmJm91bWw7ciBkaW4gdGlkLic7CiRsYW5nWydwcm9tcHRfY29kZSddID0gJ0tvZCc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdGJm91bWw7bGphbmRlIGtvZCBoYXIgc2x1bXBtJmF1bWw7c3NpZ3QgZ2VuZXJlcmF0cyBmJm91bWw7ciBhdHQgdmVyaWZpZXJhIGFudiZhdW1sO25kYXJrb250b3QuIE4mYXVtbDtyIGR1IGtsaWNrYXIgcCZhcmluZzsgbCZhdW1sO25rZW4gbmVkYW4ga29tbWVyIGR1IGF0dCBzZSBldHQgZiZhdW1sO2x0IGYmb3VtbDtyIGF0dCBza3JpdmEgaW4gZGVubmEga29kZW4uIE5vcm1hbHQgJmF1bWw7ciBmJmF1bWw7bHRldCByZWRhbiBpZnlsbHQgZiZvdW1sO3IgZGlnLCBtZW4gb20gZGV0IGludGUgJmF1bWw7ciBzJmFyaW5nOyAmYXVtbDtyIGtvZGVuOic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0dlbm9tIGF0dCBrbGlja2EgcCZhcmluZzsgZiZvdW1sO2xqYW5kZSBsJmF1bWw7bmsga29tbWVyIGR1IGhhbW5hIHAmYXJpbmc7IHdlYmJwbGF0c2VuIGQmYXVtbDtyIGR1IGthbiBtYXRhIGluIGtvZGVuIG92YW4gb2NoIGQmYXVtbDtybWVkICZhcmluZzt0ZXJzdCZhdW1sO2xsYSBkaXR0IGwmb3VtbDtzZW5vcmQuOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnR2wmb3VtbDttdCBsJm91bWw7c2Vub3JkJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnS2FuIGludGUgaGl0dGEgbW9kdWxlbiBDTVNNYWlsZXInOwokbGFuZ1snaW5mb19mb3Jnb3Rwd21lc3NhZ2VzZW50J10gPSAnRXR0IG1haWwgaGFyIHNraWNrYXRzIHRpbGwgJXMgbWVkIGluc3RydWt0aW9uZXIgb20gaHVyIGwmb3VtbDtzZW5vcmRldCAmYXJpbmc7dGVyc3QmYXVtbDtsbHMuJzsKJGxhbmdbJ2xvc3Rwd19tZXNzYWdlJ10gPSAnUyZhcmluZzsgZHUgaGFyIGdsJm91bWw7bXQgZWxsZXIgdGFwcGF0IGJvcnQgZGl0dCBsJm91bWw7c2Vub3JkPyBNYXRhIGluIGRpdHQgYW52JmF1bWw7bmRhcm5hbW4gaCZhdW1sO3IuIE9tIHZpIGthbiBoaXR0YSBkaWcgaSB2JmFyaW5nO3IgbGlzdGEgJm91bWw7dmVyIGFudiZhdW1sO25kYXJlIGtvbW1lciB2aSBza2lja2EgaW5zdHJ1a3Rpb25lciBmJm91bWw7ciBodXIgZHUga2FuICZhcmluZzt0ZXJzdCZhdW1sO2xsYSBkaXR0IGwmb3VtbDtzZW5vcmQnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdNYWxsYXIgZiZvdW1sO3IgZ2wmb3VtbDttdCBsJm91bWw7c2Vub3JkJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ01hbGwgZiZvdW1sO3IgZ2wmb3VtbDttdCBhbnYmYXVtbDtuZGFybmFtbic7CiRsYW5nWydlcnJvcl9wcm9wbm90Zm91bmQnXSA9ICdFZ2Vuc2thcGVuICVzIGt1bmRlIGludGUgaGl0dGFzJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdIaXR0YWRlIGVnZW5za2FwZXInOwokbGFuZ1snYWRkcHJvcCddID0gJ0wmYXVtbDtnZyB0aWxsIGVnZW5za2FwJzsKJGxhbmdbJ2Vycm9yX3JlcXVpcmVkZmllbGQnXSA9ICdFdHQgYmVnJmF1bWw7cnQgZiZhdW1sO2x0ICglcykgdmFyIHRvbXQnOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdBbmdlIGV0dCBueXR0IGwmb3VtbDtzZW5vcmQnOwokbGFuZ1snZXJyb3Jfbm90bG9nZ2VkaW4nXSA9ICdEdSB2ZXJrYXIgaW50ZSB2YXJhIGlubG9nZ2FkJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndXNlcl9yZWdpc3RyYXRpb24nXSA9ICdSZWdpc3RyZXJpbmcnOwokbGFuZ1snZXJyb3JfYWNjb3VudGV4cGlyZWQnXSA9ICdEZXQgaCZhdW1sO3Iga29udG90IGhhciBsJm91bWw7cHQgdXQnOwokbGFuZ1snZXJyb3JfaW1wcm9wZXJlbWFpbGZvcm1hdCddID0gJ09naWx0aWd0IGZvcm1hdCBwJmFyaW5nOyBlcG9zdGFkcmVzcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZXhwaXJ5ZGF0ZSddID0gJ09naWx0aWd0IHV0ZyZhcmluZztuZ3NkYXR1bSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ3Byb3BlcnR5J10gPSAnRXR0IGZlbCB1cHBzdG9kIG4mYXVtbDtyIGVnZW5za2FwZW4gJXMgc2t1bGxlIHMmYXVtbDt0dGFzIGYmb3VtbDtyIGFudiZhdW1sO25kYXJlICRzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRncm91cGlkJ10gPSAnT2dpbHRpZ3QgZ3J1cHBJRCAlcyc7CiRsYW5nWydoaWRkZW5maWVsZG1hcmtlciddID0gJ01hcmsmb3VtbDtyIGYmb3VtbDtyIGcmb3VtbDttdCBmJmF1bWw7bHQnOwokbGFuZ1snaGlkZGVuZmllbGRjb2xvciddID0gJ0YmYXVtbDtyZyBmJm91bWw7ciBnJm91bWw7bXQgZiZhdW1sO2x0JzsKJGxhbmdbJ2hpZGRlbiddID0gJ0cmb3VtbDttZCc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVuYW1lJ10gPSAnRW4gZWdlbnNrYXAgbWVkIGRldCBuYW1uZXQgJmF1bWw7ciByZWRhbiBza2FwYXQnOwokbGFuZ1snZXJyb3Jfbm9wcm9wZXJ0aWVzJ10gPSAnSW5nYSBlZ2Vuc2thcGVyIGRlZmluaWVyYWRlJzsKJGxhbmdbJ2Vycm9yX25vcmVsYXRpb25zJ10gPSAnSW5nYSBlZ2Vuc2thcGVyIHZhbGRlcyBmJm91bWw7ciBkZW4gaCZhdW1sO3IgZ3J1cHBlbic7CiRsYW5nWydub2dyb3VwcyddID0gJ0luZ2EgZ3J1cHBlciAmYXVtbDtyIGRlZmluaWVyYWRlJzsKJGxhbmdbJ2dyb3Vwc2ZvdW5kJ10gPSAnSGl0dGFkZSBncnVwcGVyJzsKJGxhbmdbJ2Vycm9yX29uZWdyb3VwcmVxdWlyZWQnXSA9ICdNZWRsZW1za2FwIGkgbWluc3QgZW4gZ3J1cHAga3ImYXVtbDt2cyc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJ10gPSAnS3ImYXVtbDt2IG1lZGxlbXNza2FwIGkgbWluc3QgZW4gZ3J1cHAnOwokbGFuZ1snYmFjayddID0gJ1RpbGxiYWthJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfcmVxdWlyZWRfcGFyYW0nXSA9ICclcyAmYXVtbDtyIGV0dCBvYmxpZ2F0b3Jpc2t0IGYmYXVtbDtsdCc7CiRsYW5nWydyZXF1aXJlZGZpZWxkbWFya2VyJ10gPSAnTWFya2VyYSBvYmxpZ2F0b3Jpc2thIGYmYXVtbDtsdCBtZWQnOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnTWFya2VyYSBvYmxpZ2F0b3Jpc2thIGYmYXVtbDtsdCBtZWQnOwokbGFuZ1snbmV4dCddID0gJ04mYXVtbDtzdGEnOwokbGFuZ1snZXJyb3JfZ3JvdXBleGlzdHMnXSA9ICdFbiBncnVwcCBtZWQgZGV0IG5hbW5ldCBleGlzdGVyYXIgcmVkYW4nOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdPYmxpZ2F0b3Jpc2snOwokbGFuZ1snb3B0aW9uYWwnXSA9ICdGcml2aWxsaWcnOwokbGFuZ1snb2ZmJ10gPSAnQXYnOwokbGFuZ1snc2l6ZSddID0gJ1N0b3JsZWsnOwokbGFuZ1snc2l6ZWNvbW1lbnQnXSA9ICc8YnIvPihNYXhzdG9ybGVrIHAmYXJpbmc7IGJpbGQgaSBhbnRhbCBwaXhsYXIpJzsKJGxhbmdbJ2xlbmd0aCddID0gJ0wmYXVtbDtuZ2QnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4odGVja2VuIGkgaW5tYXRuaW5nc2YmYXVtbDtsdGV0KSc7CiRsYW5nWydzZWxvcHRpb25zJ10gPSAnQWx0ZXJuYXRpdiBpIHJ1bGxnYXJkaW5zbWVueSwgc2VwYXJlcmFkZSBtZWQgcmFkYnJ5dG5pbmdhci4gViZhdW1sO3JkZW4gc2VwYXJlcmFzIG1lZCAmcXVvdDtsaWthIG1lZCZxdW90Oy10ZWNrZW4gKHQuZXguIEt2aW5uYT1rKSc7CiRsYW5nWydyYWRpb29wdGlvbnMnXSA9ICdSYWRpbyBidXR0b24gZXRpa2V0dCwgc2VwYXJlcmFkIG1lZCByYWRicnl0bmluZ2FyLiBWJmF1bWw7cmRlbiBzZXBhcmVyYXMgbWVkICZxdW90O2xpa2EgbWVkJnF1b3Q7LXRlY2tlbiAodC5leC4gS3Zpbm5hPWspJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCAnOwokbGFuZ1sncHJvbXB0X3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWydmaWVsZHN0YXR1cyddID0gJ0YmYXVtbDtsdHN0YXR1cyc7CiRsYW5nWyd1c2VkaW5sb3N0dW4nXSA9ICdGciZhcmluZztnYSBpIGJvcnR0YXBwYXQ8YnIvPmFudiZhdW1sO25kYXJuYW1uJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0ICc7CiRsYW5nWydjaGVja2JveCddID0gJ0tyeXNzcnV0YSc7CiRsYW5nWydtdWx0aXNlbGVjdCddID0gJ0ZsZXJ2YWxzbGlzdGEnOwokbGFuZ1sncmFkaW9idXR0b25zJ10gPSAnUmFkaW8gQnV0dG9ucyAnOwokbGFuZ1snaW1hZ2UnXSA9ICdCaWxkJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRXBvc3RhZHJlc3MnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0cnV0YSc7CiRsYW5nWydkcm9wZG93biddID0gJ1J1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydtc2dfY3VycmVudGx5bG9nZ2VkaW5hcyddID0gJ1YmYXVtbDtsa29tbWVuJzsKJGxhbmdbJ2xvZ291dCddID0gJ0xvZ2dhIHV0JzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdBbnYmYXVtbDtuZCBkZXR0YSBncnVwcG5hbW4nOwokbGFuZ1sncHJvbXB0X2NoYW5nZXNldHRpbmdzJ10gPSAnJkF1bWw7bmRyYSBtaW5hIGluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ0lubG9nZ25pbmdlbiBtaXNzbHlja2FkZXMgLSBGZWxha3RpZ3QgYW52JmF1bWw7bmRhcm5hbW4gZWxsZXIgbCZvdW1sO3Nlbm9yZD8nOwokbGFuZ1snbG9naW4nXSA9ICdMb2dnYSBpbic7CiRsYW5nWydwcm9tcHRfc2lnbmluX2J1dHRvbiddID0gJ0V0aWtldHQgZiZvdW1sO3IgaW5sb2dnbmluZ3NrbmFwcCc7CiRsYW5nWydwcm9tcHRfdXNlcm5hbWUnXSA9ICdBbnYmYXVtbDtuZGFybmFtbic7CiRsYW5nWydwcm9tcHRfZW1haWwnXSA9ICdFcG9zdGFkcmVzcyc7CiRsYW5nWydwcm9tcHRfcGFzc3dvcmQnXSA9ICdMJm91bWw7c2Vub3JkJzsKJGxhbmdbJ3Byb21wdF9yZW1lbWJlcm1lJ10gPSAnS29tIGloJmFyaW5nO2cgbWlnIHAmYXJpbmc7IGRlbiBoJmF1bWw7ciBkYXRvcm4nOwokbGFuZ1sncmVnaXN0ZXInXSA9ICdSZWdpc3RyZXJhJzsKJGxhbmdbJ2ZvcmdvdHB3J10gPSAnR2wmb3VtbDttdCBkaXR0IGwmb3VtbDtzZW5vcmQ/JzsKJGxhbmdbJ2xvc3R1c2VybmFtZSddID0gJ0dsJm91bWw7bXQgZGluYSBpbmxvZ2duaW5nc3VwcGdpZnRlcj8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdTdGFuZGFyZHYmYXVtbDtyZGVuJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnTWFsbCc7CiRsYW5nWydlcnJvcl91c2Vybm90Zm91bmQnXSA9ICdBbnYmYXVtbDtuZGFySUQgaGl0dGFkZXMgaW50ZSc7CiRsYW5nWydlcnJvcl91c2VybmFtZXRha2VuJ10gPSAnQW52JmF1bWw7bmRhcm5hbW5ldCAoJXMpIGFudiZhdW1sO25kcyByZWRhbic7CiRsYW5nWydwcm9tcHRfc210cHZhbGlkYXRlJ10gPSAnQW52JmF1bWw7bmQgU01UUCBmJm91bWw7ciBhdHQgdmFsaWRlcmEgZXBvc3RhZHJlc3Nlcj8nOwokbGFuZ1sncHJvbXB0X21pbnB3bGVuJ10gPSAnTWluc3RhIGwmYXVtbDtuZ2QgcCZhcmluZzsgbCZvdW1sO3Nlbm9yZCc7CiRsYW5nWydwcm9tcHRfbWF4cHdsZW4nXSA9ICdNYXhsJmF1bWw7bmdkIGYmb3VtbDtyIGwmb3VtbDtzZW5vcmQnOwokbGFuZ1sncHJvbXB0X21pbnVubGVuJ10gPSAnTWluc3RhIGwmYXVtbDtuZ2QgcCZhcmluZzsgYW52JmF1bWw7bmRhcm5hbW4nOwokbGFuZ1sncHJvbXB0X21heHVubGVuJ10gPSAnTWF4bCZhdW1sO25nZCBmJm91bWw7ciBhbnYmYXVtbDtuZGFybmFtbic7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdTZXNzaW9uIFRpbWVvdXQgKHNla3VuZGVyKSc7CiRsYW5nWydwcm9tcHRfY29va2lla2VlcGFsaXZlJ10gPSAnQW52JmF1bWw7bmQgY29va2llcyBmJm91bWw7ciBhdHQgaCZhcmluZztsbGEgaW5sb2dnbmluZ2FyIHZpZCBsaXYnOwokbGFuZ1sncHJvbXB0X2FsbG93ZW1haWxyZWcnXSA9ICdUaWxsJmFyaW5nO3QgZXBvc3RyZWdpc3RyZXJpbmcnOwokbGFuZ1sncHJvbXB0X2RmbHRncm91cCddID0gJ1N0YW5kYXJkZ3J1cHAgZiZvdW1sO3IgbnlhIGFudiZhdW1sO25kYXJlJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnTWFsbCBmJm91bWw7ciAmYXVtbDtuZHJpbmdhciBhdiBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCddID0gJ0wmb3VtbDtzZW5vcmRlbiBzdCZhdW1sO21tZXIgaW50ZSAmb3VtbDt2ZXJlbnMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVzZXJuYW1lJ10gPSAnT2d0aWx0aWd0IGFudiZhdW1sO25kYXJuYW1uJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXNzd29yZCddID0gJ09naWx0aWd0IGwmb3VtbDtzZW5vcmQnOwokbGFuZ1snZWRpdHVzZXInXSA9ICdSZWRpZ2VyYSBhbnYmYXVtbDtuZGFyZSc7CiRsYW5nWyd2YWxpZCddID0gJ0dpbHRpZyc7CiRsYW5nWyd1c2VybmFtZSddID0gJ0FudiZhdW1sO25kYXJuYW1uJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snZXJyb3JfbWVtYmVyZ3JvdXBzJ10gPSAnRGVuIGgmYXVtbDtyIGFudiZhdW1sO25kYXJlbiAmYXVtbDtyIGludGUgbWVkbGVtIGkgbiZhcmluZztnb24gZ3J1cHAnOwokbGFuZ1snZXJyb3JfcHJvcGVydGllcyddID0gJ0luZ2EgZWdlbnNrYXBlcic7CiRsYW5nWydlcnJvcl9kdXBfcHJvcGVydGllcyddID0gJ0Ymb3VtbDtycyZvdW1sO2sgaW1wb3J0ZXJhIGR1YmxldHRlciBhdiBlZ2Vuc2thcGVyJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnViZhdW1sO3JkZSc7CiRsYW5nWydncm91cHMnXSA9ICdHcnVwcGVyJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdFZ2Vuc2thcGVyJzsKJGxhbmdbJ3Byb3BuYW1lJ10gPSAnTmFtbiBwJmFyaW5nOyBlZ2Vuc2thcCc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdWJmF1bWw7cmRlJzsKJGxhbmdbJ2FkZCddID0gJ0wmYXVtbDtnZyB0aWxsJzsKJGxhbmdbJ2hpc3RvcnknXSA9ICdIaXN0b3Jpayc7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snZXhwaXJlcyddID0gJ0wmb3VtbDtwZXIgdXQnOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnQW5nZSBkYXR1bSc7CiRsYW5nWycxMmhycyddID0gJzEyIHRpbW1hcic7CiRsYW5nWycyNGhycyddID0gJzI0IHRpbW1hcic7CiRsYW5nWyc0OGhycyddID0gJzQ4IHRpbW1hcic7CiRsYW5nWycxd2VlayddID0gJzEgdmVja2EnOwokbGFuZ1snMndlZWtzJ10gPSAnMiB2ZWNrb3InOwokbGFuZ1snMW1vbnRoJ10gPSAnMSBtJmFyaW5nO25hZCc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBtJmFyaW5nO25hZGVyJzsKJGxhbmdbJzZtb250aHMnXSA9ICc2IG0mYXJpbmc7bmFkZXInOwokbGFuZ1snMXllYXInXSA9ICcxICZhcmluZztyJzsKJGxhbmdbJ25ldmVyJ10gPSAnQWxkcmlnJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsbWVzc2FnZSddID0gJ01vZHVsZSBpbnN0YWxsZWQgc3VjZXNzZnVsbHkuPGJyLz5CZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZyb250RW5kVXNlciBQcm9wZXJ0aWVzIHBlcm1pc3Npb24uICBBZGRpdGlvbmFsbHksIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gIElmIGluc3RhbGxlZCwgdmFsaWRhdGlvbiBvZiBhIGNhcHRjaGEgaW1hZ2Ugd2lsbCBiZSByZXF1aXJlZCBpbiBhZGRpdGlvbiB0byB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ2luLiAgVGhpcyBpcyBpbnRlbmRlZCB0byBwcmV2ZW50IGJydXRlIGZvcmNlIGF0dGFja3MuICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBub2NhcHRjaGEgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGV2ZW4gaWYgdGhlIENhcHRjaGEgbW9kdWxlIGlzIGluc3RhbGxlZC4mcXVvdDsnOwokbGFuZ1sncGFzc3dvcmQnXSA9ICdMJm91bWw7c2Vub3JkJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnSWdlbic7CiRsYW5nWydlcnJvcl9ncm91cG5hbWVfZXhpc3RzJ10gPSAnRW4gZ3J1cHAgbWVkIGRldCBuYW1uZXQgZXhpc3RlcmFyIHJlZGFuJzsKJGxhbmdbJ2VkaXRncm91cCddID0gJ1JlZGlnZXJhIGdydXBwJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NraWNrYSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBdmJyeXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnVGEgYm9ydCc7CiRsYW5nWydjb25maXJtX2VkaXRncm91cCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZGV0dGEgJmF1bWw7ciBkZSBrb3JyZWt0YSBpbnN0JmF1bWw7bGxuaWduYXJuYSBmJm91bWw7ciBkZW4gaCZhdW1sO3IgZ3J1cHBlbj9cbkF0dCBzdCZhdW1sO25nYSBhdiBkZW5uYSBlZ2Vuc2thcGVuIHRhciBpbnRlIGJvcnQgbiZhcmluZztncmEgcG9zdGVyIGkgZWdlbnNrYXBzdGFiZWxsZW4gZiZvdW1sO3IgZGVubmEgZ3J1cHAvYW52JmF1bWw7bmRhcmUuIERlIGtvbW1hIGJhcmEgaW50ZSB2YXJhIHRpbGxnJmF1bWw7bmdsaWdhLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2aWxsIHRhIGJvcnQgZGVuIGgmYXVtbDtyIGdydXBwZW4/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3Byb3AnXSA9ICcmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgdGEgYm9ydCBkZW4gaCZhdW1sO3IgZWdlbnNrYXBlbj9cbkdlbm9tIGF0dCB0YSBib3J0IGRlbiBmJm91bWw7cnN2aW5uZXIgYWxsYSBldmVudHVlbGxhIGFudiZhdW1sO25kYXJ1cHBnaWZ0ZXIgbWVkIGRlbiBoJmF1bWw7ciBlZ2Vuc2thcGVuLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdPdGlsbHImYXVtbDtja2xpZ2EgcGFyYW1ldHJhcic7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ25hbWUnXSA9ICdOYW1uJzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRwcm9wJ10gPSAnRXR0IGZlbCB1cHBzdG9kIGQmYXJpbmc7IGVuIGVnZW5za2FwIGYmb3VtbDtyIGdydXBwZW4gc2t1bGxlIGwmYXVtbDtnZ2FzIHRpbGwnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwcmVsbiddID0gJ0V0dCBmZWwgdXBwc3RvZCBkJmFyaW5nOyBlbiByZWxhdGlvbiB0aWxsIGdydXBwZW4gc2t1bGxlIGwmYXVtbDtnZ2FzIHRpbGwnOwokbGFuZ1snZXJyb3JfY2FudGFkZGdyb3VwJ10gPSAnRXR0IGZlbCB1cHBzdG9kIGQmYXJpbmc7IGdydXBwZW4gc2t1bGxlIGwmYXVtbDtnZ2FzIHRpbGwnOwokbGFuZ1snZXJyb3JfY2FudGFzc2lnbnVzZXInXSA9ICdQcm9ibGVtIGF0dCBsJmF1bWw7Z2dhIHRpbGwgYW52JmF1bWw7bmRhcmUgdGlsbCBncnVwcCc7CiRsYW5nWydlcnJvcl9jb3VsZG5vdGRlbGV0ZXByb3BlcnR5J10gPSAnUHJvYmxlbSBtZWQgYXR0IHRhIGJvcnQgZW4gZWdlbnNrYXAnOwokbGFuZ1snZXJyb3JfY291bGRub3RmaW5kZW1haWwnXSA9ICdLdW5kZSBpbnRlIGhpdHRhIG4mYXJpbmc7Z29uIGUtcG9zdGFkcmVzcyc7CiRsYW5nWydlcnJvcl9kZXN0aW5hdGlvbm5vdHdyaXRhYmxlJ10gPSAnSW5nYSBza3JpdnImYXVtbDt0dGlnaGV0ZXIgdGlsbCBtJmFyaW5nO2xtYXBwZW4nOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmFtcyddID0gJ09naWx0aWdhIHBhcmFtZXRyYXInOwokbGFuZ1snZXJyb3Jfbm9ncm91cHMnXSA9ICdLdW5kZSBpbnRlIGhpdHRhIG4mYXJpbmc7Z3JhIGdydXBwZXInOwokbGFuZ1snYXBwbHlmaWx0ZXInXSA9ICdWZXJrc3QmYXVtbDtsbCc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXIgJzsKJGxhbmdbJ3VzZXJmaWx0ZXInXSA9ICdSZWd1bGomYXVtbDtydCB1dHRyeWNrIGYmb3VtbDtyIGFudiZhdW1sO25kYXJuYW1uJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3Jpdm5pbmcnOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnR3J1cHBuYW1uJzsKJGxhbmdbJ2FjY2Vzc2RlbmllZCddID0gJ1RpbGx0ciZhdW1sO2RlIG5la2FzJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRmVsJzsKJGxhbmdbJ2FkZGdyb3VwJ10gPSAnTCZhdW1sO2dnIHRpbGwgZ3J1cHAnOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnRlcmEgZ3J1cHAnOwokbGFuZ1snYWRkdXNlciddID0gJ0wmYXVtbDtnZyB0aWxsIGFudiZhdW1sO25kYXJlJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdBbnYmYXVtbDtuZGFyZSBzb20gJm91bWw7dmVyZW5zc3QmYXVtbDttbWVyIG1lZCBrcml0ZXJpZXQnOwokbGFuZ1snZ3JvdXAnXSA9ICdHcnVwcCc7CiRsYW5nWydzZWxlY3Rncm91cCddID0gJ1YmYXVtbDtsaiBncnVwcCc7CiRsYW5nWydyZWdpc3RyYXRpb25fdGVtcGxhdGUnXSA9ICdNYWxsIGYmb3VtbDtyIHJlZ2lzdHJlcmluZyc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdNYWxsIGYmb3VtbDtyIHV0bG9nZ25pbmcnOwokbGFuZ1snbG9naW5fdGVtcGxhdGUnXSA9ICdNYWxsIGYmb3VtbDtyIGlubG9nZ25pbmcnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndXNlcnMnXSA9ICdBbnYmYXVtbDtuZGFyZSc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdIYW50ZXJpbmcgYXYgRnJvbnRlbmQgVXNlcic7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1RpbGwmYXJpbmc7dCBhbnYmYXVtbDtuZGFyZSBsb2dnYSBpbiB2aWEgZnJvbnRlbmQnOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gJ0Ymb3VtbDtydmFsZCBmJm91bWw7cnN0YXNpZGEnOwokbGFuZ1snbGFzdGFjY2Vzc2VkcGFnZSddID0gJ1NlbmFzdCBsJmF1bWw7c3RhIHNpZGEnOwokbGFuZ1snb3RoZXJwYWdlJ10gPSAnQW5uYW4gc2lkYTogJzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdTa3JpdiBpbiB0ZXh0ZW4gaSBiaWxkZW4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2VkaXRpbmdfdXNlciddID0gJ0t1bGxhbsSxY8SxIGQmdXVtbDt6ZW5sZW1lJzsKJGxhbmdbJ25vaW5saW5lJ10gPSAnRG8gbm90IGlubGluZSBmb3Jtcyc7CiRsYW5nWydpbmZvX2xvc3R1biddID0gJ0NsaWNrIGhlcmUgaWYgeW91IGNhbm5vdCByZW1lbWJlciB5b3VyIGxvZ2luIGRldGFpbHMnOwokbGFuZ1snaW5mb19mb3Jnb3RwdyddID0gJ8WeaWZyZW5pemkgaGF0xLFybGFtxLF5b3JzYW7EsXogdMSxa2xhecSxbic7CiRsYW5nWydpbmZvX2xvZ291dCddID0gJyZDY2VkaWw7xLFrxLHFnyBpJmNjZWRpbDtpbiB0xLFrbGF5xLFuxLF6JzsKJGxhbmdbJ2luZm9fY2hhbmdlc2V0dGluZ3MnXSA9ICdDbGljayBoZXJlIHRvIGFkanVzdCB5b3VyIHBhc3N3b3JkIG9yIG90aGVyIGluZm9ybWF0aW9uJzsKJGxhbmdbJ3ZpZXd1c2VyX3RlbXBsYXRlJ10gPSAnVmlldyBVc2VyIFRlbXBsYXRlJzsKJGxhbmdbJ2V2ZW50J10gPSAnRXZlbnQnOwokbGFuZ1snZmV1X2V2ZW50X25vdGlmaWNhdGlvbiddID0gJ0ZFVSBFdmVudCBOb3RpZmljYXRpb24nOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzJ10gPSAnTm90aWZpY2F0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZSddID0gJ05vdGlmaWNhdGlvbiBFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9uX3N1YmplY3QnXSA9ICdOb3RpZmljYXRpb24gRW1haWwgU3ViamVjdCc7CiRsYW5nWydwcm9tcHRfbm90aWZpY2F0aW9ucyddID0gJ0VtYWlsIE5vdGlmaWNhdGlvbnMnOwokbGFuZ1snT25Mb2dpbiddID0gJ09uIExvZ2luJzsKJGxhbmdbJ09uTG9nb3V0J10gPSAnT24gTG9nb3V0JzsKJGxhbmdbJ09uRXhwaXJlVXNlciddID0gJ09uIFNlc3Npb24gRXhwaXJ5JzsKJGxhbmdbJ09uQ3JlYXRlVXNlciddID0gJ09uIE5ldyBVc2VyIENyZWF0ZWQnOwokbGFuZ1snT25EZWxldGVVc2VyJ10gPSAnT24gVXNlciBEZWxldGVkJzsKJGxhbmdbJ09uVXBkYXRlVXNlciddID0gJ09uIFVzZXIgU2V0dGluZ3MgQ2hhbmdlZCc7CiRsYW5nWydPbkNyZWF0ZUdyb3VwJ10gPSAnT24gVXNlciBHcm91cCBDcmVhdGVkJzsKJGxhbmdbJ09uRGVsZXRlR3JvdXAnXSA9ICdPbiBVc2VyIEdyb3VwIERlbGV0ZWQnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wcmVtc2cnXSA9ICdUaGUgbG9zdCBsb2dpbiBkZXRhaWxzIGZ1bmN0aW9uYWxpdHkgaGFzIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuICBXZSBoYXZlIGZvdW5kIGEgdW5pcXVlIHVzZXJuYW1lIHRoYXQgbWF0Y2hlcyB0aGUgZGV0YWlscyB5b3UgZW50ZXJlZC4nOwokbGFuZ1sneW91cl91c2VybmFtZV9pcyddID0gJ1lvdXIgdXNlcm5hbWUgaXMnOwokbGFuZ1snbG9zdHVuY29uZmlybV9wb3N0bXNnJ10gPSAnV2UgcmVjb21tZW5kIHlvdSByZWNvcmQgdGhpcyBpbmZvcm1hdGlvbiBpbiBhIHNlY3VyZSwgYnV0IHJldHJpZXZhYmxlIGxvY2F0aW9uLic7CiRsYW5nWydwcm9tcHRfYWZ0ZXJfY2hhbmdlX3NldHRpbmdzJ10gPSAnUGFnZUlEL0FsaWFzIHRvIGp1bXAgdG8gYWZ0ZXIgY2hhbmdlIHNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9hZnRlcl92ZXJpZnlfY29kZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGNvZGUgdmVyaWZpY2F0aW9uIConOwokbGFuZ1snbG9zdHVuX2RldGFpbHNfdGVtcGxhdGUnXSA9ICdMb3N0IFVzZXJuYW1lIERldGFpbHMgVGVtcGxhdGUnOwokbGFuZ1snbG9zdHVuX2NvbmZpcm1fdGVtcGxhdGUnXSA9ICdMb3N0IFVzZXJuYW1lIENvbmZpcm0gVGVtcGxhdGUnOwokbGFuZ1snZXJyb3Jfbm9udW5pcXVlbWF0Y2gnXSA9ICdFcnJvcjogTW9yZSB0aGFuIG9uZSB1c2VyIGFjY291bnQgbWF0Y2hlZCB0aGUgcHJvcGVydGllcyBzcGVjaWZpZWQnOwokbGFuZ1snZXJyb3JfY2FudGZpbmR1c2VyJ10gPSAnRXJyb3I6IENvdWxkIG5vdCBmaW5kIGEgbWF0Y2hpbmcgdXNlcic7CiRsYW5nWydlcnJvcl9ncm91cG5vdGZvdW5kJ10gPSAnRXJyb3I6IENvdWxkIG5vdCBmaW5kIGEgZ3JvdXAgYnkgdGhhdCBuYW1lJzsKJGxhbmdbJ3JlYWRvbmx5J10gPSAnU2FsdCBPa3VudXInOwokbGFuZ1sncHJvbXB0X3VzZXJtYW5pcHVsYXRvciddID0gJ1VzZXIgTWFuaXB1bGF0b3IgQ2xhc3MnOwokbGFuZ1snYWRtaW5fbG9nb3V0J10gPSAnTG9nZ2VkIG91dCBieSBhZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ3Byb21wdF9sb2dnZWRpbm9ubHknXSA9ICdTaG93IE9ubHkgTG9nZ2VkIEluIFVzZXJzJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXQnXSA9ICdMb2dvdXQgdGhpcyB1c2VyJzsKJGxhbmdbJ3VzZXJfcHJvcGVydGllcyddID0gJ1VzZXIgUHJvcGVydGllcyc7CiRsYW5nWyd1c2VyaGlzdG9yeSddID0gJ1VzZXIgSGlzdG9yeSc7CiRsYW5nWydleHBvcnQnXSA9ICdFeHBvcnQnOwokbGFuZ1snY2xlYXInXSA9ICdDbGVhcic7CiRsYW5nWydwcm9tcHRfZXhwb3J0dXNlcmhpc3RvcnknXSA9ICdFeHBvcnQgVXNlciBIaXN0b3J5IFRvIEFTQ0lJIHRoYXQgaXMgYXQgbGVhc3QnOwokbGFuZ1sncHJvbXB0X2NsZWFydXNlcmhpc3RvcnknXSA9ICdDbGVhciBVc2VyIEhpc3RvcnkgcmVjb3JkcyB0aGF0IGlzIGF0IGxlYXN0JzsKJGxhbmdbJ3RpdGxlX2xvc3R1c2VybmFtZSddID0gJ0ZvcmdvdCBZb3VyIExvZ2luIERldGFpbHM/JzsKJGxhbmdbJ3RpdGxlX3Jzc2V4cG9ydCddID0gJ0V4cG9ydCBncm91cCBkZWZpbml0aW9uIChhbmQgcHJvcGVydGllcykgdG8gWE1MJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5bWFpbnRlbmFuY2UnXSA9ICdVc2VyIEhpc3RvcnkgTWFpbnRlbmFuY2UnOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncHJvbXB0X29mJ10gPSAnT2YnOwokbGFuZ1snZGF0ZV9hbGxyZWNvcmRzJ10gPSAnKiogTm8gTGltaXQgKionOwokbGFuZ1snZGF0ZV9vbmVob3Vyb2xkJ10gPSAnT25lIEhvdXIgT2xkJzsKJGxhbmdbJ2RhdGVfc2l4aG91cm9sZCddID0gJ1NpeCBIb3VycyBPbGQnOwokbGFuZ1snZGF0ZV90d2VsdmVob3Vyb2xkJ10gPSAnVHdlbHZlIEhvdXJzIE9sZCc7CiRsYW5nWydkYXRlX29uZWRheW9sZCddID0gJ09uZSBEYXkgT2xkJzsKJGxhbmdbJ2RhdGVfb25ld2Vla29sZCddID0gJ09uZSBXZWVrIE9sZCc7CiRsYW5nWydkYXRlX3R3b3dlZWtzb2xkJ10gPSAnVHdvIHdlZWtzIE9sZCc7CiRsYW5nWydkYXRlX29uZW1vbnRob2xkJ10gPSAnT25lIE1vbnRoIE9sZCc7CiRsYW5nWydkYXRlX3RocmVlbW9udGhzb2xkJ10gPSAnVGhyZWUgTW9udGhzIE9sZCc7CiRsYW5nWydkYXRlX3NpeG1vbnRoc29sZCddID0gJ1NpeCBNb250aHMgT2xkJzsKJGxhbmdbJ2RhdGVfb25leWVhcm9sZCddID0gJ09uZSBZZWFyIE9sZCc7CiRsYW5nWyd0aXRsZV9ncm91cHNvcnQnXSA9ICdHcm91cGluZyBhbmQgU29ydGluZyc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2ZvdW5kJ10gPSAnUmVjb3JkcyBtYXRjaGluZyB0aGUgY3JpdGVyaWEnOwokbGFuZ1snc29ydG9yZGVyX3VzZXJuYW1lX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIFVzZXJuYW1lJzsKJGxhbmdbJ3NvcnRvcmRlcl91c2VybmFtZV9hc2MnXSA9ICdBc2NlbmRpbmcgVXNlcm5hbWUnOwokbGFuZ1snc29ydG9yZGVyX2RhdGVfZGVzYyddID0gJ0Rlc2NlbmRpbmcgRGF0ZSc7CiRsYW5nWydzb3J0b3JkZXJfZGF0ZV9hc2MnXSA9ICdBc2NlbmRpbmcgRGF0ZSc7CiRsYW5nWydzb3J0b3JkZXJfYWN0aW9uX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIEV2ZW50IFR5cGUnOwokbGFuZ1snc29ydG9yZGVyX2FjdGlvbl9hc2MnXSA9ICdBc2NlbmRpbmcgRXZlbnQgVHlwZSc7CiRsYW5nWydzb3J0b3JkZXJfaXBhZGRyZXNzX2Rlc2MnXSA9ICdEZXNjZW5kaW5nIElwIEFkZHJlc3MnOwokbGFuZ1snc29ydG9yZGVyX2lwYWRkcmVzc19hc2MnXSA9ICdBc2NlbmRpbmcgSXAgQWRkcmVzcyc7CiRsYW5nWydpbmZvX25vaGlzdG9yeWRldGVjdGVkJ10gPSAnTm8gSGlzdG9yeSBEZXRlY3RlZCc7CiRsYW5nWydyZXNldCddID0gJ1Jlc2V0JzsKJGxhbmdbJ3Byb21wdF9ncm91cF9pcCddID0gJ0dyb3VwIEJ5IElQIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X2ZpbHRlcl9ldmVudHR5cGUnXSA9ICdFdmVudCBUeXBlIEZpbHRlcic7CiRsYW5nWydwcm9tcHRfZmlsdGVyX2RhdGUnXSA9ICdEaXNwbGF5IG9ubHkgZXZlbnRzIHRoYXQgYXJlIGxlc3MgdGhhbjonOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ1BhZ2UgTGltaXQnOwokbGFuZ1snZm9yJ10gPSAnZm9yJzsKJGxhbmdbJ3RpdGxlX3VzZXJoaXN0b3J5J10gPSAnVXNlciBIaXN0b3J5IFJlcG9ydCc7CiRsYW5nWyd1bmtub3duJ10gPSAnVW5rbm93bic7CiRsYW5nWydwcm9tcHRfaXBhZGRyZXNzJ10gPSAnSVAgQWRkcmVzcyc7CiRsYW5nWydwcm9tcHRfZXZlbnR0eXBlJ10gPSAnRXZlbnQgVHlwZSc7CiRsYW5nWydwcm9tcHRfZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1sncHJvbXB0X3JldHVybiddID0gJ1JldHVybic7CiRsYW5nWydpbXBvcnRfY29tcGxldGVfbXNnJ10gPSAnSW1wb3J0IE9wZXJhdGlvbiBDb21wbGV0ZSc7CiRsYW5nWydwcm9tcHRfbGluZXNwcm9jZXNzZWQnXSA9ICdMaW5lcyBQcm9jZXNzZWQnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0Vycm9ycyBFbmNvdW50ZXJlZCc7CiRsYW5nWydwcm9tcHRfcmVjb3Jkc2FkZGVkJ10gPSAnUmVjb3JkcyBBZGRlZCc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcHJlbG5zJ10gPSAnQ291bGQgbm90IGZpbmQgcHJvcGVydGllcyBmb3IgZ3JvdXAgJXMnOwokbGFuZ1snZXJyb3Jfbm9yZXNwb25zZWZyb21zZXJ2ZXInXSA9ICdDb3VsZCBub3QgZ2V0IGEgcmVzcG9uc2UgZnJvbSB0aGUgU01UUCBzZXJ2ZXInOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZW5vdGZvdW5kJ10gPSAnRmlsZSBzcGVjaWZpZWQgKCVzKSBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmllbGR2YWx1ZSddID0gJ0ludmFsaWQgdmFsdWUgZm9yIGRyb3Bkb3duIG9yIG11bHRpc2VsZWN0IGZpZWxkICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydGZpZWxkbGVuZ3RoJ10gPSAnRmllbGQgJXMgZXhjZWVkcyBtYXhpbXVtIGxlbmd0aCc7CiRsYW5nWydlcnJvcl9pbXBvcnR1c2VycyddID0gJ0ltcG9ydCBFcnJvciAobGluZSAlcyk6ICVzJzsKJGxhbmdbJ2Vycm9yX3Byb3BlcnR5ZGVmbnMnXSA9ICdDb3VsZCBub3QgZ2V0IHRoZSBwcm9wZXJ0eSBkZWZpbml0aW9ucyAoaW50ZXJuYWwgZXJyb3IpJzsKJGxhbmdbJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3JfaW1wb3J0cmVxdWlyZWRmaWVsZCddID0gJ0NvdWxkIG5vdCBmaW5kIGEgY29sdW1uIHRvIG1hdGNoIHRoZSByZXF1aXJlZCBmaWVsZCAlcyc7CiRsYW5nWydlcnJvcl9ub2dyb3VwcHJvcGVydGllcyddID0gJ0NvdWxkIG5vdCBmaW5kIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1snZXJyb3JfaW1wb3J0ZmlsZWZvcm1hdCddID0gJ1RoZSBmaWxlIHNwZWNpZmllZCBmb3IgaW1wb3J0IGlzIG5vdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQnOwokbGFuZ1snZXJyb3JfY291bGRub3RvcGVuZmlsZSddID0gJ0NvdWxkIG5vdCBvcGVuIGZpbGUnOwokbGFuZ1snaW5mb19pbXBvcnR1c2Vyc2ZpbGVmb3JtYXQnXSA9ICc8aDQ+RmlsZSBGb3JtYXQgSW5mb3JtYXRpb248L2g0Pg0KPHA+VGhlIGlucHV0IGZpbGUgbXVzdCBiZSBpbiBBU0NJSSBmb3JtYXQgdXNpbmcgY29tbWEgc2VwYXJhdGVkIHZhbHVlcy4gIEVhY2ggbGluZSBpbiB0aGlzIGlucHV0IGZpbGUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgaGVhZGVyIGxpbmUsIGRpc2N1c3NlZCBiZWxvdykgcmVwcmVzZW50cyBvbmUgdXNlciByZWNvcmQuICBFYWNoIGxpbmUgbXVzdCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBmaWVsZHMsIGFuZCB0aGUgb3JkZXIgb2YgdGhlIGZpZWxkcyBpbiBlYWNoIGxpbmUgbXVzdCBiZSBpZGVudGljYWwuPC9wPg0KPGg1PkhlYWRlciBsaW5lPC9oNT4NCjx1bD4NCjxsaT5UaGUgZmlyc3QgbGluZSBvZiB0aGUgZmlsZSBtdXN0IGJlZ2luIHdpdGggdHdvIHBvdW5kIChcIykgY2hhcmFjdGVycywgYW5kIG5hbWVzIGVhY2ggb2YgdGhlIGZpZWxkcyBpbiB0aGUgZmlsZS4gIFRoZSBuYW1lcyBvZiB0aGVzZSBmaWVsZHMgaXMgc2lnbmlmaWNhbnQuICBUaGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZCBuYW1lcyAoc2VlIGJlbG93KSwgYW5kIG90aGVyIGZpZWxkIG5hbWVzIG11c3QgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdXNlcnMgYXJlIGdvaW5nIHRvIGJlIGFkZGVkIGludG8uPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBmYWlsIGlmIHRoZSBmaWVsZHMgaW4gdGhlIGlucHV0IGZpbGUgZG9lcyBub3QgbWF0Y2ggYWxsIG9mIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ3JvdXAgdGhhdCB1c2VycyBhcmUgYmVpbmcgYWRkZWQgaW50bzwvbGk+DQo8bGk+VGhlIGlucHV0IGZpbGUgbWF5IGNvbnRhaW4gZmllbGRzIHJlcHJlc2VudGluZyBzb21lIG9mIHRoZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXAuPC9saT4NCjxsaT5UaGUgaW1wb3J0IHByb2Nlc3Mgd2lsbCBpZ25vcmUgYW55IGZpZWxkcyBpbiB0aGUgaW5wdXQgZmlsZSB0aGF0IGFyZSBlaXRoZXIgbm90IGtub3duLCBvciBtYXAgdG8gcHJvcGVydGllcyB0aGF0IGFyZSA8ZW0+b2ZmPC9lbT4gaW4gdGhlIHNwZWNpZmllZCB1c2VyIGdyb3VwLjwvbGk+DQo8L3VsPg0KPGg1PkNvbHVtbmFyIERhdGE8L2g1Pg0KPHVsPg0KPGxpPlRoZSA8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+IEZpZWxkIC0gVGhlIGRlc2lyZWQgdXNlcm5hbWUuDQogICAgPHA+VGhpcyBmaWVsZCBtdXN0IGV4aXN0IGluIHRoZSBoZWFkZXJsaW5lLCBhbmQgaW4gZWFjaCBhbmQgZXZlcnkgbGluZSBvZiB0aGUgaW5wdXQgZmlsZS4gVGhlIHJlY29yZCB3aWxsIGZhaWwgaWYgYSB1c2VyIHdpdGggdGhhdCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZGF0YWJhc2UuPC9wPjwvbGk+DQo8bGk+VGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gRmllbGQgLSBUb2RvPC9saT4NCjxsaT5UaGUgPHN0cm9uZz5leHBpcmVzPC9zdHJvbmc+IEZpZWxkIC0gVG9kbzwvbGk+DQo8bGk+RHJvcGRvd24gRmllbGRzDQogICAgPHA+VGhlIHZhbHVlIG9mIGRyb3Bkb3duIHByb3BlcnRpZXMgaW4gYW4gaW1wb3J0IGZpbGUgaXMgcmVwcmVzZW50ZWQgYXMgdGhlIHN0cmluZyB0aGF0IGlzIHNob3duIGluIHRoZSBkcm9wZG93biBjb250cm9sIGluIHRoZSBGcm9udEVuZFVzZXJzIG1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPk11bHRpc2VsZWN0IEZpZWxkcw0KICAgIDxwPk11bHRpc2VsZWN0IGZpZWxkcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQVNDSUkgZmlsZSBhcyBhIDogc2VwYXJhdGVkIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBzdHJpbmcgcmVwcmVzZW50cyB0aGUgdGV4dCBzaG93biBpbiB0aGUgbXVsdGlzZWxlY3QgbGlzdDwvcD4NCjwvbGk+DQo8bGk+SW1hZ2UgRmllbGRzDQogICAgPHA+SW1hZ2UgYXJlIGZpZWxkcyB3aG8mIzAzOTtzIGNvbHVtbiBuYW1lIG1hdGNoZXMgYSBwcm9wZXJ0eSBvZiB0eXBlIEltYWdlLiAgSWYgdGhpcyBmaWVsZCBpcyBhIHJlcXVpcmVkIHBhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGdyb3VwLCB0aGVuIHRoZSBuYW1lIHNwZWNpZmllZCBpbiB0aGVzZSBjb2x1bW5zIG11c3QgZXhpc3QgaW4gdGhlIHVwbG9hZHMgZGlzcmVjdG9yeSBvZiB0aGUgQ01TIGluc3RhbGxhdGlvbi4gIElmIHRoZSBpbWFnZSBkb2VzIG5vdCBleGlzdCwgYW5kIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgdGhlbiB0aGUgcmVjb3JkIHdpbGwgZmFpbC48L3A+DQo8L3VsPg0KPGg1Pk5vdGVzPC9oNT4NCjxwPlRoZSBpbXBvcnQgcHJvY2VzcyBpcyBzdWJqZWN0IHRvIHRoZSBsaW1pdGF0aW9ucyBpbXBvc2VkIGJ5IHRoZSBob3N0IHByb3ZpZGVyLCBzdWNoIGFzIG1lbW9yeSBsaW1pdGF0aW9ucywgcHJvY2Vzc2luZyB0aW1lLCBmaWxlIHNpemUgdXBsb2FkLCBhbmQgc2FmZSBtb2RlIHJlc3RyaWN0aW9ucy4gIEFueSBvbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGNhdXNlIHRoZSBpbXBvcnQgdG8gZmFpbC4gVGhlcmVmb3JlIGl0IGlzIGFkdmlzYWJsZSB0byBlbnN1cmUgdGhhdCBpbXBvcnQgZmlsZXMgYXJlIHNtYWxsZXIgaW4gc2l6ZSwgYW5kIHNpbXBsZXIgaW4gbmF0dXJlLjwvcD4NCjxwPlRob3VnaCBldmVyeSBlZmZvcnQgaGFzIGJlZW4gbWFkZSB0byBlbnN1cmUgdGhhdCBkYXRhYmFzZSBjb3JydXB0aW9uIHdpbGwgbm90IG9jY3VyLCBpdCBpcyBhZHZpc2FibGUgdG8gcGVyZm9ybSBhIGRhdGFiYXNlIGJhY2t1cCBiZWZvcmUgZG9pbmcgYSB1c2VyIGltcG9ydC48L3A+DQo8aDU+RXhhbXBsZTwvaDU+DQo8cHJlPg0KIyN1c2VybmFtZSxmaXJzdF9uYW1lLGxhc3RfbmFtZSxlbWFpbCxjaXR5LHN0YXRlLGNvdW50cnksemlwDQp1c2VyMSx0ZXN0LHVzZXIsdXNlcjFAc29tZWRvbWFpbi5jb20sc29tZXdoZXJlLFRYLFVTLDEyMzQ1DQo8L3ByZT4NCic7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZGVzdGdyb3VwJ10gPSAnSW1wb3J0IFVzZXJzIEludG8gVGhpcyBHcm91cCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0ZmlsZW5hbWUnXSA9ICdJbnB1dCBDU1YgRmlsZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0eG1sZmlsZSddID0gJ0lucHV0IFhNTCBGaWxlJzsKJGxhbmdbJ3Byb21wdF9leHBvcnR1c2VycyddID0gJ0V4cG9ydCBVc2Vycyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0dXNlcnMnXSA9ICdJbXBvcnQgVXNlcnMnOwokbGFuZ1sncHJvbXB0X2NsZWFyJ10gPSAnQ2xlYXInOwokbGFuZ1sncHJvbXB0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnXSA9ICdJbWFnZSBEZXN0aW5hdGlvbiBQYXRoJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdfdXBsb2FkJ10gPSAnQSBwcm9ibGVtIG9jY3VycmVkIHdpdGggYSBtaXNzaW5nIChidXQgcmVxdWlyZWQpIHVwbG9hZCc7CiRsYW5nWydlcnJvcl9iYWRfeG1sJ10gPSAnQ291bGQgbm90IHBhcnNlIHRoZSBwcm92aWRlZCBYTUwgZmlsZSc7CiRsYW5nWydlcnJvcl9ub3RlbXB0eWdyb3VwJ10gPSAnQ2Fubm90IGRlbGV0ZSBhIGdyb3VwIHRoYXQgc3RpbGwgaGFzIHVzZXJzJzsKJGxhbmdbJ2Vycm9yX25vcmVwZWF0ZWRsb2dpbnMnXSA9ICdUaGlzIHVzZXIgaXMgYWxyZWFkeSBsb2dnZWQgaW4nOwokbGFuZ1snZXJyb3JfY2FwdGNoYW1pc21hdGNoJ10gPSAnVGhlIHRleHQgZnJvbSB0aGUgaW1hZ2Ugd2FzIG5vdCBlbnRlcmVkIGNvcnJlY3RseSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfcmVwZWF0ZWRfbG9naW5zJ10gPSAnQWxsb3cgdXNlcnMgdG8gbG9naW4gbW9yZSB0aGFuIG9uY2UnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9ucyddID0gJ0ltYWdlIEZpbGUgRXh0ZW5zaW9ucyB0aGF0IFVzZXJzIGFsbG93ZWQgdG8gdXBsb2FkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVVc2VyJ10gPSAnPGgzPk9uRGVsZXRlVXNlcjxoMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uQ3JlYXRlVXNlciddID0gJzxoMz5PbkNyZWF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgY3JlYXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIHVzZXIgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZDwvbGk+DQo8L3VsPiANCic7CiRsYW5nWydldmVudF9oZWxwX09uVXBkYXRlVXNlciddID0gJzxoMz5PblVwZGF0ZVVzZXI8aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgaXMgdXBkYXRlZCAoZWl0aGVyIGJ5IHVzZXIgdGhlbXNlbGYgb3IgYWRtaW4pPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgdXNlciBuYW1lPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25DcmVhdGVHcm91cCddID0gJzxoMz5PbkNyZWF0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBjcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgZ3JvdXAgZGVzY3JpcHRpb248L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGdyb3VwIGlkPC9saT4NCjwvdWw+IA0KJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25EZWxldGVHcm91cCddID0gJzxoMz5PbkRlbGV0ZUdyb3VwPGgzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBncm91cCBpcyBkZWxldGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgZ3JvdXAgbmFtZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgZ3JvdXAgaWQ8L2xpPg0KPC91bD4gDQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkxvZ2luJ10gPSAnPGgzPk9uTG9naW48aDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgbG9ncyBpbjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBpZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXI8L2xpPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyPC9saT4NCjxsaT48ZW0+aXA8L2VtPiAtIFRoZSBpcCBhZGRyZXNzIG9mIHRoZSBjbGllbnQ8L2xpPg0KPC91bD4NCic7CiRsYW5nWydldmVudF9oZWxwX09uTG9nb3V0J10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0PC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGxvZ2dlZG91dCB1c2VyPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSB1c2VyIGlkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaGVscF9PbkV4cGlyZVVzZXInXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgc2Vzc2lvbiBleHBpcmVzPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT51c2VybmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIGV4cGlyZWQgdXNlcjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgdXNlciBpZCBvZiB0aGUgZXhwaXJlZCB1c2VyPC9saT4NCjwvdWw+DQonOwokbGFuZ1snZXZlbnRfaW5mb19PbkxvZ2luJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW4gdG8gdGhlIHN5c3RlbSc7CiRsYW5nWydldmVudF9pbmZvX09uTG9nb3V0J10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGxvZ3Mgb3V0IG9mIHRoZSBzeXN0ZW0nOwokbGFuZ1snZXZlbnRfaW5mb19PbkV4cGlyZVVzZXInXSA9ICdBbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIHVzZXIgc2Vzc2lvbiBpcyBleHBpcmVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25DcmVhdGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBuZXcgdXNlciBpcyBjcmVhdGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25VcGRhdGVVc2VyJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGluZm8gaXMgdXBkYXRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRGVsZXRlVXNlciddID0gJ0FuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBhY2NvdW50IGlzIGRlbGV0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkNyZWF0ZUdyb3VwJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGdyb3VwIGlzIGNyZWF0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkRlbGV0ZUdyb3VwJ10gPSAnQW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGdyb3VwIGlzIGRlbGV0ZWQnOwokbGFuZ1snYmFja2VuZF9ncm91cCddID0gJ0JhY2tlbmQgR3JvdXAnOwokbGFuZ1snaW5mb19zdGFyJ10gPSAnKiBUaGUgZm9sbG93aW5nIG1hY3JvcyBjYW4gYmUgdXNlZCBpbiB0aGVzZSBmaWVsZHM6IHskdXNlcm5hbWV9LHskZ3JvdXB9LiBXaGVuIHVzaW5nIHRoZSB7JGdyb3VwfSBtYWNybywgdGhlIHN5c3RlbSB3aWxsIHN1YnNpdHV0ZSB0aGUgbmFtZSBvZiB0aGUgZmlyc3QgbWVtYmVyIGdyb3VwIHRoYXQgdGhlIHVzZXIgYmVsb25ncyB0bywgYW5kIHdpbGwgcmVkaXJlY3QgdG8gdGhhdCBwYWdlLic7CiRsYW5nWydpbmZvX2FkbWluX3Bhc3N3b3JkJ10gPSAnRWRpdCB0aGlzIGZpZWxkIHRvIHJlc2V0IHRoZSB1c2VycyBwYXNzd29yZCc7CiRsYW5nWydpbmZvX2FkbWluX3JlcGVhdHBhc3N3b3JkJ10gPSAnRWRpdCB0aGlzIGZpZWxkIHRvIHJlc2V0IHRoZSB1c2VycyBwYXNzd29yZCc7CiRsYW5nWydlcnJvcl91c2VybmFtZV9leGlzdHMnXSA9ICdBIHVzZXIgd2l0aCB0aGF0IHVzZXJuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ25vY3N2cmVzdWx0cyddID0gJ05vIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSBjc3YgZXhwb3J0JzsKJGxhbmdbJ3Byb21wdF91bmZsZGxlbiddID0gJ0xlbmd0aCBvZiB1c2VybmFtZSBmaWVsZCc7CiRsYW5nWydwcm9tcHRfcHdmbGRsZW4nXSA9ICdMZW5ndGggb2YgcGFzc3dvcmQgZmllbGQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkbGVuZ3RocyddID0gJ01pbi9NYXggcGFzc3dvcmQgbGVuZ3RocyBhcmUgaW52YWxpZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXNlcm5hbWVsZW5ndGhzJ10gPSAnTWluL01heCB1c2VybmFtZSBsZW5ndGhzIGFyZSBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnXSA9ICdJbnZhbGlkIEVtYWlsIGFkZHJlc3MnOwokbGFuZ1snZXJyb3Jfbm9lbWFpbGFkZHJlc3MnXSA9ICdXZSBjb3VsZCBub3QgZmluZCBhbiBlbWFpbCBhZGRyZXNzIGZvciB0aGlzIGFjY291bnQnOwokbGFuZ1snZXJyb3JfcHJvYmxlbXNlZXR0aW5naW5mbyddID0gJ1Byb2JsZW0gc2V0dGluZyB1c2VyIGluZm8nOwokbGFuZ1snZXJyb3Jfc2V0dGluZ3Byb3BlcnR5J10gPSAnUHJvYmxlbSBzZXR0aW5nIHByb3BlcnR5JzsKJGxhbmdbJ3VzZXJfYWRkZWQnXSA9ICdVc2VyIEFkZGVkICVzID0gJXMnOwokbGFuZ1sndXNlcl9kZWxldGVkJ10gPSAnVXNlciBEZWxldGVkIHVpZD0lcyc7CiRsYW5nWydwcm9wZXJ0eWZpbHRlciddID0gJ1Byb3BlcnR5JzsKJGxhbmdbJ3ZhbHVlcmVnZXgnXSA9ICdWYWx1ZSAocmVndWxhciBleHByZXNzaW9uKSc7CiRsYW5nWyd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCddID0gJ1dhcm5pbmc6IFRoZXNlIGZpZWxkcyBhZmZlY3QgdGhlIHNpemUgb2YgaW5wdXQgZmllbGRzIGZvciBmb3Jtcy4gIERlY3JlYXNpbmcgdGhpcyBudW1iZXIgb24gYW4gZXhpc3Rpbmcgc2l0ZSBtYXkgbm90IGJlIGFkdmlzYWJsZSc7CiRsYW5nWydjb25maXJtX3N1Ym1pdHByZWZzJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFkanVzdCB0aGUgbW9kdWxlIHByZWZlcmVuY2VzPyc7CiRsYW5nWydlcnJvcl9lbWFpbGFscmVhZHl1c2VkJ10gPSAnRW1haWwgYWRkcmVzcyBhbHJlYWR5IHVzZWQnOwokbGFuZ1sncHJvbXB0X3VzZWNvb2tpZXN0b3JlbWVtYmVyJ10gPSAnVXNlIGNvb2tpZXMgdG8gcmVtZW1iZXIgbG9naW4gZGV0YWlscyc7CiRsYW5nWydwcm9tcHRfY29va2llbmFtZSddID0gJ1RoZSBuYW1lIG9mIHRoZSBjb29raWUnOwokbGFuZ1sncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgZW1haWxzJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCddID0gJ0VtYWlsIGFkZHJlc3MgaXMgdXNlcm5hbWUnOwokbGFuZ1snaW5mb19jb29raWVfa2VlcGFsaXZlJ10gPSAnQXR0ZW1wdCB0byBrZWVwIGxvZ2lucyBhbGl2ZSBieSB0aGUgdXNlIG9mIGEgY29va2llIDxlbT4odGhlIGNvb2tpZSBpcyByZXNldCBvbiBhY3Rpdml0eSBpbiB0aGUgd2Vic2l0ZSk8L2VtPic7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnXSA9ICcoYWxsb3cgbXVsdGlwbGUgdXNlcnMgd2l0aCB0aGUgc2FtZSBlbWFpbCBhZGRyZXNzKSc7CiRsYW5nWydpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJ10gPSAnKHVzZXImIzAzOTtzIGVtYWlsIGFkZHJlc3MgaXMgdGhlaXIgdXNlcm5hbWUgLS0gZG9uJiMwMzk7dCBzZXQgdGhpcyB3aXRoICZxdW90O2FsbG93IGR1cGxpY2F0ZSBlbWFpbCBhZGRyZXNzZXMmcXVvdDshKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyddID0gJ0FsbG93IGR1cGxpY2F0ZSAmcXVvdDtmb3Jnb3QgcGFzc3dvcmQmcXVvdDsgcmVtaW5kZXJzPyc7CiRsYW5nWydpbmZvX2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnXSA9ICcoYWxsb3cgYSB1c2VycyB0byByZXF1ZXN0IGEgcGFzc3dvcmQgcmVzZXQsIGV2ZW4gaWYgdGhleSBoYXZlbiYjMDM5O3QgYWN0ZWQgb24gYSBwcmV2aW91cyBvbmUpJzsKJGxhbmdbJ3Byb21wdF9mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zJ10gPSAnVXNlIEZyb250LWVuZCBVc2VyIHNwZWNpZmljIHBlcm1pc3Npb25zPyc7CiRsYW5nWydpbmZvX2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnMnXSA9ICcoTm9ybWFsbHksIEZFVVNlcnMgcGVybWlzc2lvbnMgYXJlIHRoZSBzYW1lIGFzIHRoZSBlcXVpdmFsZW50IEFkbWluIEFyZWEgcGVybWlzc2lvbnMgbGlrZSBBZGQgVXNlciwgQWRkIEdyb3VwLCBldGMuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZXJlIHdpbGwgYmUgc2VwYXJhdGUgcGVybWlzc2lvbnMgZm9yIEZFVXNlcnMuKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZGVkIGZpbGUgKGludGVybmFsIGVycm9yKSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtX3VwbG9hZCddID0gJ1RoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB5b3VyIHVwbG9hZGVkIGZpbGUuICBQbGVhc2UgdHJ5IGFnYWluJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1c2VybmFtZSddID0gJ1lvdSBkaWQgbm90IGVudGVyIGEgdXNlcm5hbWUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ2VtYWlsJ10gPSAnWW91IGRpZCBub3QgZW50ZXIgeW91ciBlbWFpbCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFzc3dvcmQnXSA9ICdZb3UgZGlkIG5vdCBlbnRlciBhIHBhc3N3b3JkJzsKJGxhbmdbJ2Zyb250ZW5kdXNlcl9sb2dvdXQnXSA9ICdGcm9udGVuZCBVc2VyIExvZ291dCc7CiRsYW5nWydmcm9udGVuZHVzZXJfbG9nZ2VkaW4nXSA9ICdGcm9udGVuZCBVc2VyIExvZ2luJzsKJGxhbmdbJ2VkaXRwcm9wX2luZm9tc2cnXSA9ICc8Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+PGI+VVNFIENBVVRJT048L2I+IHdoZW4gY2hhbmdpbmcgZXhpc3RpbmcgcHJvcGVydGllcyB0aGF0IGFyZSBhc3NpZ25lZCB0byBncm91cHMsIHlvdSBtYXkgcG90ZW50aWFsbHkgY2F1c2UgZGFtYWdlIGFuZCBicmVhayBhbiBleGlzdGluZyBzaXRlIDxpPihlc3BlY2lhbGx5IGlmIHlvdSByZWR1Y2UgZmllbGQgbGVuZ3RocywgZXRjKTwvaT48L2ZvbnQ+JzsKJGxhbmdbJ2luZm9fc210cHZhbGlkYXRlJ10gPSAnVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCB3b3JrIG9uIHdpbmRvd3MnOwokbGFuZ1snbXNnX2RvbnRjcmVhdGV1c2VybmFtZSddID0gJ0RvIG5vdCBjcmVhdGUgYSBwcm9wZXJ0eSBmb3IgdXNlcm5hbWUsIG9yIHBhc3N3b3JkIGFzIHRoZXNlIHByb3BlcnRpZXMgYXJlIGJ1aWx0aW4gdG8gdGhlIEZyb250RW5kVXNlcnMgbW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9leHBvcnRjc3YnXSA9ICdFeHBvcnQgVXNlcnMgdG8gQ1NWJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydCc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnQnOwokbGFuZ1snYWRtaW4nXSA9ICdBZG1pbic7CiRsYW5nWydlZGl0cHJvcCddID0gJ0VkaXQgUHJvcGVydHknOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOwokbGFuZ1snY3JlYXRlZCddID0gJ0NyZWF0ZWQnOwokbGFuZ1snc29ydGJ5J10gPSAnU29ydCBCeSc7CiRsYW5nWydzb3J0J10gPSAnU29ydGluZyc7CiRsYW5nWyd1c2Vyc2luZ3JvdXAnXSA9ICdVc2VycyBpbiB0aGUgc2VsZWN0ZWQgZ3JvdXAocyknOwokbGFuZ1sndXNlcmxpbWl0J10gPSAnTGltaXQgcmVzdWx0cyB0byc7CiRsYW5nWydlcnJvcl9ub2VtYWlsZmllbGQnXSA9ICdDb3VsZCBub3QgZmluZCBhbiBlbWFpbCBmaWVsZCBmb3IgdGhpcyB1c2VyLiAgWW91IG1heSBuZWVkIHRvIGNvbnRhY3QgdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yJzsKJGxhbmdbJ3Byb21wdF9mb3Jnb3Rwd19wYWdlJ10gPSAnUGFnZUlEL0FsaWFzIGZvciBGb3Jnb3QgUGFzc3dvcmQgZm9ybSc7CiRsYW5nWydwcm9tcHRfY2hhbmdlc2V0dGluZ3NfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyBmb3IgQ2hhbmdlIFNldHRpbmdzIGZvcm0nOwokbGFuZ1sncHJvbXB0X2xvZ2luX3BhZ2UnXSA9ICdQYWdlSUQvQWxpYXMgdG8ganVtcCB0byBhZnRlciBsb2dpbiAqJzsKJGxhbmdbJ3Byb21wdF9sb2dvdXRfcGFnZSddID0gJ1BhZ2VJRC9BbGlhcyB0byBqdW1wIHRvIGFmdGVyIGxvZ291dCAqJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ1NvcnQgb3JkZXInOwokbGFuZ1sncHJvbXB0X251bXJlc2V0cmVjb3JkJ10gPSAnQSBudW1iZXIgb2YgdXNlcnMgYXJlIGluIHRoZSBtaWRkbGUgb2YgcmVzZXR0aW5nIGxvc3QgcGFzc3dvcmRzLiAgQ3VycmVudGx5IHRoaXMgY291bnQgaXMgYXQ6JzsKJGxhbmdbJ3JlbW92ZTF3ZWVrJ10gPSAnUmVtb3ZlIGFsbCBlbnRyaWVzIG1vcmUgdGhhbiBhIHdlZWsgb2xkJzsKJGxhbmdbJ3JlbW92ZTFtb250aCddID0gJ1JlbW92ZSBhbGwgZW50cmllcyBtb3JlIHRoYW4gYSBtb250aCBvbGQnOwokbGFuZ1sncmVtb3ZlYWxsJ10gPSAnUmVtb3ZlIGFsbCBlbnRyaWVzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgeW91IHN1cmU/JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjb2RlJ10gPSAnQW4gaW52YWxpZCBjb2RlIGhhcyBiZWVuIGVudGVyZWQsIHBsZWFzZSB0cnkgYWdhaW4nOwokbGFuZ1snZXJyb3JfdGVtcGNvZGVub3Rmb3VuZCddID0gJ0EgdGVtcG9yYXJ5IGNvZGUgZm9yIHlvdXIgdXNlciBpZCBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIGRhdGFiYXNlJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX3ZlcmlmeXRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdXNlZCB0byBkaXNwbGF5IHZlcmlmaWNhdGlvbiBmb3JtJzsKJGxhbmdbJ2ZvcmdvdHBhc3N3b3JkX2VtYWlsdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB1c2VkIGZvciBmb3Jnb3R0ZW4gcGFzc3dvcmQgZW1haWwnOwokbGFuZ1snZXJyb3JfcmVzZXRhbHJlYWR5c2VudCddID0gJ0VpdGhlciB5b3Vyc2VsZiBvciBzb21lb25lIGVsc2UgaGFzIGFscmVhZHkgdHJpZ2dlcmVkIGEgcGFzc3dvcmQgcmVzZXQgb3BlcmF0aW9uIGZvciB0aGlzIGFjY291bnQuICBDaGVjayB5b3VyIGVtYWlsLCB5b3UgbWF5IGhhdmUgZnVydGhlciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQgaW4geW91ciBpbmJveCc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRGF0YWJhc2UgZXJyb3InOwokbGFuZ1snbWVzc2FnZV9mb3Jnb3Rwd2VtYWlsJ10gPSAnWW91IGFyZSByZWNlaXZpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2Ugc29tZWJvZHkgdG9sZCBvdXIgc2l0ZSB0aGF0IHlvdSBoYWQgbG9zdCB5b3VyIHBhc3N3b3JkLiAgSWYgdGhpcyBpcyB0aGUgY2FzZSwgcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zIGJlbG93LiAgSWYgeW91IGRvbiYjMDM5O3QgaGF2ZSBhIGNsdWUgd2hhdCB0aGlzIGlzLCB0aGVuIHlvdSBhcmUgc2FmZSB0byBkZWxldGUgdGhpcyBtZXNzYWdlLCBhbmQgd2UgdGhhbmsgeW91IGZvciB5b3VyIHRpbWUuJzsKJGxhbmdbJ3Byb21wdF9jb2RlJ10gPSAnQ29kZSc7CiRsYW5nWydtZXNzYWdlX2NvZGUnXSA9ICdUaGUgZm9sbG93aW5nIGNvZGUgaGFzIGJlZW4gZ2VuZXJhdGVkIHJhbmRvbWx5IGdlbmVyYXRlZCBpbiBvcmRlciB0byB2ZXJpZnkgdGhlIHVzZXIgYWNjb3VudC4gIHdoZW4geW91IGNsaWNrIG9uIHRoZSBsaW5rIGJlbG93IHlvdSB3aWxsIGJlIHByZXNlbnRlZCB3aXRoIGEgZmllbGQgdG8gZW50ZXIgdGhpcyBjb2RlLiAgTm9ybWFsbHkgdGhlIGZpZWxkIGlzIHByZS1jb21wbGV0ZWQgZm9yIHlvdSwgYnV0IGluY2FzZSBpdCBpc24mIzAzOTt0IHRoZSBjb2RlIGlzOic7CiRsYW5nWydwcm9tcHRfbGluayddID0gJ0NsaWNraW5nIG9uIHRoZSBmb2xsb3dpbmcgbGluayB3aWxsIHRha2UgeW91IHRvIHRoZSB3ZWJzaXRlIHdoZXJlIHlvdSBjYW4gZW50ZXIgdGhlIGFib3ZlIGNvZGUsIGFuZCByZXNldCB5b3VyIHBhc3N3b3JkOic7CiRsYW5nWydsb3N0cGFzc3dvcmRfZW1haWxzdWJqZWN0J10gPSAnTG9zdCBQYXNzd29yZCc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSBDTVNNYWlsZXIgbW9kdWxlJzsKJGxhbmdbJ2luZm9fZm9yZ290cHdtZXNzYWdlc2VudCddID0gJ0FuIGVtYWlsIGhhcyBiZWVuIHNlbnQgdG8gJXMgd2l0aCBpbnN0cnVjdGlvbnMgYXMgdG8gaG93IHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQuICBUaGFuayB5b3UnOwokbGFuZ1snbG9zdHB3X21lc3NhZ2UnXSA9ICdTbyB5b3UgZm9yZ290IG9yIGxvc3QgeW91ciBwYXNzd29yZC4gV2VsbCwgdHlwZSB5b3VyIHVzZXJuYW1lIGluIGhlcmUsIGFuZCBpZiB3ZSBjYW4gZmluZCB5b3Ugd2Ugd2lsbCBzZW5kIHlvdSBhbiBlbWFpbCB3aXRoIGluc3RydWN0aW9ucyBvbiBob3cgdG8gcmVzZXQgaXQnOwokbGFuZ1snZm9yZ290cGFzc3dvcmRfdGVtcGxhdGUnXSA9ICdGb3Jnb3QgUGFzc3dvcmQgVGVtcGxhdGVzJzsKJGxhbmdbJ2xvc3R1c2VybmFtZV90ZW1wbGF0ZSddID0gJ0xvc3QgVXNlcm5hbWUgVGVtcGxhdGUnOwokbGFuZ1snZXJyb3JfcHJvcG5vdGZvdW5kJ10gPSAnUHJvcGVydHkgJXMgbm90IGZvdW5kJzsKJGxhbmdbJ3Byb3BzZm91bmQnXSA9ICdQcm9wZXJ0aWVzIGZvdW5kJzsKJGxhbmdbJ2FkZHByb3AnXSA9ICdBZGQgUHJvcGVydHknOwokbGFuZ1snZXJyb3JfcmVxdWlyZWRmaWVsZCddID0gJ0EgcmVxdWlyZWQgZmllbGQgKCVzKSB3YXMgZW1wdHknOwokbGFuZ1snaW5mb19lbXB0eXBhc3N3b3JkZmllbGQnXSA9ICdFbnRlciBhIG5ldyBwYXNzd29yZCBoZXJlIHRvIGNoYW5nZSB5b3VyIHBhc3N3b3JkJzsKJGxhbmdbJ2Vycm9yX25vdGxvZ2dlZGluJ10gPSAnWW91IGRvIG5vdCBhcHBlYXIgdG8gYmUgbG9nZ2VkIGluJzsKJGxhbmdbJ3VzZXJfc2V0dGluZ3MnXSA9ICdTZXR0aW5ncyc7CiRsYW5nWyd1c2VyX3JlZ2lzdHJhdGlvbiddID0gJ1JlZ2lzdHJhdGlvbic7CiRsYW5nWydlcnJvcl9hY2NvdW50ZXhwaXJlZCddID0gJ1RoaXMgYWNjb3VudCBoYXMgZXhwaXJlZCc7CiRsYW5nWydlcnJvcl9pbXByb3BlcmVtYWlsZm9ybWF0J10gPSAnSW1wcm9wZXIgZW1haWwgYWRkcmVzcyBmb3JtYXR0aW5nJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRleHBpcnlkYXRlJ10gPSAnSW52YWxpZCBleHBpcnkgZGF0ZSc7CiRsYW5nWydlcnJvcl9wcm9ibGVtc2V0dGluZ3Byb3BlcnR5J10gPSAnRXJyb3Igc2V0dGluZyBwcm9wZXJ0eSAlcyBmb3IgdXNlciAkcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkZ3JvdXBpZCddID0gJ0ludmFsaWQgZ3JvdXAgaWQgJXMnOwokbGFuZ1snaGlkZGVuZmllbGRtYXJrZXInXSA9ICdIaWRkZW4gZmllbGQgbWFya2VyJzsKJGxhbmdbJ2hpZGRlbmZpZWxkY29sb3InXSA9ICdIaWRkZW4gZmllbGQgY29sb3InOwokbGFuZ1snaGlkZGVuJ10gPSAnSGlkZGVuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZW5hbWUnXSA9ICdBIHByb3BlcnR5IHdpdGggdGhhdCBuYW1lIGlzIGFscmVhZHkgZGVmaW5lZCc7CiRsYW5nWydlcnJvcl9ub3Byb3BlcnRpZXMnXSA9ICdObyBwcm9wZXJ0aWVzIGRlZmluZWQnOwokbGFuZ1snZXJyb3Jfbm9yZWxhdGlvbnMnXSA9ICdObyBwcm9wZXJ0aWVzIHdlcmUgc2VsZWN0ZWQgZm9yIHRoaXMgZ3JvdXAnOwokbGFuZ1snbm9ncm91cHMnXSA9ICdObyBHcm91cHMgYXJlIGRlZmluZWQnOwokbGFuZ1snZ3JvdXBzZm91bmQnXSA9ICdHcm91cHMgRm91bmQnOwokbGFuZ1snZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCddID0gJ01lbWJlcnNoaXAgaW4gYXQgbGVhc3Qgb25lIGdyb3VwIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ3Byb21wdF9yZXF1aXJlb25lZ3JvdXAnXSA9ICdSZXF1aXJlIG1lbWJlcnNoaXAgaW4gYXRsZWFzdCBvbmUgZ3JvdXAnOwokbGFuZ1snYmFjayddID0gJ0JhY2snOwokbGFuZ1snZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbSddID0gJyVzIGlzIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncmVxdWlyZWRmaWVsZG1hcmtlciddID0gJ01hcmsgcmVxdWlyZWQgZmllbGRzIHdpdGgnOwokbGFuZ1sncmVxdWlyZWRmaWVsZGNvbG9yJ10gPSAnSGlsaXRlIHJlcXVpcmVkIGZpZWxkcyBpbic7CiRsYW5nWyduZXh0J10gPSAnTmV4dCc7CiRsYW5nWydlcnJvcl9ncm91cGV4aXN0cyddID0gJ0EgR3JvdXAgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1sncmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWydvcHRpb25hbCddID0gJ09wdGlvbmFsJzsKJGxhbmdbJ29mZiddID0gJ09mZic7CiRsYW5nWydzaXplJ10gPSAnU2l6ZSc7CiRsYW5nWydzaXplY29tbWVudCddID0gJzxici8+KE1heGltdW0gc2l6ZSBvZiBhbnkgb25lIGRpbWVuc2lvbiBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzKSc7CiRsYW5nWydsZW5ndGgnXSA9ICdMZW5ndGgnOwokbGFuZ1snbGVuZ3RoY29tbWVudCddID0gJzxicj4oY2hhcnMgaW4gdGhlIHRleHQgaW5wdXQpJzsKJGxhbmdbJ3NlbG9wdGlvbnMnXSA9ICdEcm9wZG93biBvcHRpb25zLCBzZXBhcmF0ZWQgYnkgbGluZSBicmVha3MuICBWYWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCBmcm9tIHRleHQgd2l0aCBhID0gY2hhcmFjdGVyLiBpLmU6IEZlbWFsZT1mJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfdHlwZSddID0gJ1R5cGUnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwokbGFuZ1snZmllbGRzdGF0dXMnXSA9ICdGaWVsZCBTdGF0dXMnOwokbGFuZ1sndXNlZGlubG9zdHVuJ10gPSAnQXNrIGluIExvc3Q8YnIvPlVzZXJuYW1lJzsKJGxhbmdbJ3RleHQnXSA9ICdUZXh0JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snbXVsdGlzZWxlY3QnXSA9ICdNdWx0aSBTZWxlY3QgTGlzdCc7CiRsYW5nWydpbWFnZSddID0gJ0ltYWdlJzsKJGxhbmdbJ2VtYWlsJ10gPSAnRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHRhcmVhJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snbXNnX2N1cnJlbnRseWxvZ2dlZGluYXMnXSA9ICdXZWxjb21lJzsKJGxhbmdbJ2xvZ291dCddID0gJ1NpZ24gb3V0JzsKJGxhbmdbJ3Byb21wdF9uZXdncm91cG5hbWUnXSA9ICdVc2UgdGhpcyBncm91cCBuYW1lJzsKJGxhbmdbJ3Byb21wdF9jaGFuZ2VzZXR0aW5ncyddID0gJ0NoYW5nZSBNeSBTZXR0aW5ncyc7CiRsYW5nWydlcnJvcl9sb2dpbmZhaWxlZCddID0gJ0xvZ2luIGZhaWxlZCAtIEludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQ/JzsKJGxhbmdbJ2xvZ2luJ10gPSAnU2lnbiBpbic7CiRsYW5nWydwcm9tcHRfc2lnbmluX2J1dHRvbiddID0gJ1NpZ24gaW4gYnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3Byb21wdF91c2VybmFtZSddID0gJ1VzZXJuYW1lJzsKJGxhbmdbJ3Byb21wdF9lbWFpbCddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sncHJvbXB0X3Bhc3N3b3JkJ10gPSAnUGFzc3dvcmQnOwokbGFuZ1sncHJvbXB0X3JlbWVtYmVybWUnXSA9ICdSZW1lbWJlciBtZSBvbiB0aGlzIGNvbXB1dGVyJzsKJGxhbmdbJ3JlZ2lzdGVyJ10gPSAnUmVnaXN0ZXInOwokbGFuZ1snZm9yZ290cHcnXSA9ICdGb3Jnb3QgWW91ciBQYXNzd29yZD8nOwokbGFuZ1snbG9zdHVzZXJuYW1lJ10gPSAnRm9yZ290IFlvdXIgTG9naW4gRGV0YWlscz8nOwokbGFuZ1snZGVmYXVsdHMnXSA9ICdEZWZhdWx0cyc7CiRsYW5nWyd0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX3VzZXJub3Rmb3VuZCddID0gJ0NvdWxkIG5vdCBmaW5kIGluZm9ybWF0aW9uIGZvciB0aGlzIHVzZXInOwokbGFuZ1snZXJyb3JfdXNlcm5hbWV0YWtlbiddID0gJ1RoYXQgdXNlcm5hbWUgKCVzKSBpcyBhbHJlYWR5IGluIHVzZSc7CiRsYW5nWydwcm9tcHRfc210cHZhbGlkYXRlJ10gPSAnVXNlIFNNVFAgdG8gdmFsaWRhdGUgZW1haWwgYWRkcmVzc2VzPyc7CiRsYW5nWydwcm9tcHRfbWlucHdsZW4nXSA9ICdNaW5pbXVtIFBhc3N3b3JkIExlbmd0aCc7CiRsYW5nWydwcm9tcHRfbWF4cHdsZW4nXSA9ICdNYXhpbXVtIFBhc3N3b3JkIExlbmd0aCc7CiRsYW5nWydwcm9tcHRfbWludW5sZW4nXSA9ICdNaW5pbXVtIFVzZXJuYW1lIExlbmd0aCc7CiRsYW5nWydwcm9tcHRfbWF4dW5sZW4nXSA9ICdNYXhpbXVtIFVzZXJuYW1lIExlbmd0aCc7CiRsYW5nWydwcm9tcHRfc2Vzc2lvbnRpbWVvdXQnXSA9ICdTZXNzaW9uIFRpbWVvdXQgKHNlY29uZHMpJzsKJGxhbmdbJ3Byb21wdF9jb29raWVrZWVwYWxpdmUnXSA9ICdVc2UgY29va2llcyB0byBrZWVwIGxvZ2lucyBhbGl2ZSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlbWFpbHJlZyddID0gJ0FsbG93IEVtYWlsIFJlZ2lzdHJhdGlvbic7CiRsYW5nWydwcm9tcHRfZGZsdGdyb3VwJ10gPSAnRGVmYXVsdCBHcm91cCBmb3IgbmV3IHVzZXJzJzsKJGxhbmdbJ2NoYW5nZXNldHRpbmdzX3RlbXBsYXRlJ10gPSAnQ2hhbmdlIFNldHRpbmdzIFRlbXBsYXRlJzsKJGxhbmdbJ2Vycm9yX3Bhc3N3b3JkbWlzbWF0Y2gnXSA9ICdQYXNzd29yZHMgRG8gbm90IG1hdGNoJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1c2VybmFtZSddID0gJ0ludmFsaWQgVXNlcm5hbWUnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhc3N3b3JkJ10gPSAnSW52YWxpZCBQYXNzd29yZCc7CiRsYW5nWydlZGl0dXNlciddID0gJ0VkaXQgVXNlcic7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnVXNlcm5hbWUnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ2Vycm9yX21lbWJlcmdyb3VwcyddID0gJ1RoaXMgdXNlciBpcyBub3QgYSBtZW1iZXIgb2YgYW55IGdyb3Vwcyc7CiRsYW5nWydlcnJvcl9wcm9wZXJ0aWVzJ10gPSAnTm8gUHJvcGVydGllcyc7CiRsYW5nWydlcnJvcl9kdXBfcHJvcGVydGllcyddID0gJ0F0dGVtcHQgdG8gaW1wb3J0IGR1cGxpY2F0ZSBwcm9wZXJ0aWVzJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnVmFsdWUnOwokbGFuZ1snZ3JvdXBzJ10gPSAnR3JvdXBzJzsKJGxhbmdbJ3Byb3BlcnRpZXMnXSA9ICdQcm9wZXJ0aWVzJzsKJGxhbmdbJ3Byb3BuYW1lJ10gPSAnUHJvcGVydHkgTmFtZSc7CiRsYW5nWydwcm9wdmFsdWUnXSA9ICdQcm9wZXJ0eSBWYWx1ZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1snaGlzdG9yeSddID0gJ0hpc3RvcnknOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZXhwaXJlcyddID0gJ0V4cGlyZXMnOwokbGFuZ1snc3BlY2lmeV9kYXRlJ10gPSAnU3BlY2lmeSBEYXRlJzsKJGxhbmdbJzEyaHJzJ10gPSAnMTIgSG91cnMnOwokbGFuZ1snMjRocnMnXSA9ICcyNCBIb3Vycyc7CiRsYW5nWyc0OGhycyddID0gJzQ4IEhvdXJzJzsKJGxhbmdbJzF3ZWVrJ10gPSAnMSBXZWVrJzsKJGxhbmdbJzJ3ZWVrcyddID0gJzIgV2Vla3MnOwokbGFuZ1snMW1vbnRoJ10gPSAnMSBNb250aCc7CiRsYW5nWyczbW9udGhzJ10gPSAnMyBNb250aHMnOwokbGFuZ1snNm1vbnRocyddID0gJzYgTW9udGhzJzsKJGxhbmdbJzF5ZWFyJ10gPSAnMSBZZWFyJzsKJGxhbmdbJ25ldmVyJ10gPSAnTmV2ZXInOwokbGFuZ1sncG9zdGluc3RhbGxtZXNzYWdlJ10gPSAnTW9kdWxlIGluc3RhbGxlZCBzdWNlc3NmdWxseS48YnIvPkJlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRnJvbnRFbmRVc2VyIFByb3BlcnRpZXMgcGVybWlzc2lvbi4gIEFkZGl0aW9uYWxseSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiAgSWYgaW5zdGFsbGVkLCB2YWxpZGF0aW9uIG9mIGEgY2FwdGNoYSBpbWFnZSB3aWxsIGJlIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgdG8gbG9naW4uICBUaGlzIGlzIGludGVuZGVkIHRvIHByZXZlbnQgYnJ1dGUgZm9yY2UgYXR0YWNrcy4gIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIG5vY2FwdGNoYSBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gZGlzYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZXZlbiBpZiB0aGUgQ2FwdGNoYSBtb2R1bGUgaXMgaW5zdGFsbGVkLiZxdW90Oyc7CiRsYW5nWydwYXNzd29yZCddID0gJ1Bhc3N3b3JkJzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAnQWdhaW4nOwokbGFuZ1snZXJyb3JfZ3JvdXBuYW1lX2V4aXN0cyddID0gJ0dyb3VwIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlZGl0Z3JvdXAnXSA9ICdFZGl0IEdyb3VwJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdGdyb3VwJ10gPSAnQXJlIHlvdSBzdXJlIHRoaXMgaXMgdGhlIHByb3BlciBzZXR0aW5ncyBmb3IgdGhpcyBncm91cD9cblR1cm5pbmcgYSBwcm9wZXJ0eSBvZmYgd2lsbCBub3QgZGVsZXRlIGFueSBlbnRyaWVzIGluIHRoZSBwcm9wZXJ0aWVzIHRhYmxlIGZvciB0aGlzIGdyb3VwL3VzZXIuICBUaGV5IHdpbGwgbWVyZWx5IGJlIHVuYXZhaWxhYmxlLic7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZWdyb3VwJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGdyb3VwPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9wcm9wJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbXBsZXRlbHkgZGVsZXRlIHRoaXMgcHJvcGVydHk/XG5Eb2luZyBzbyB3aWxsIGFsc28gZXJhc2UgYW55IHVzZXIgZW50cmllcyBmb3IgdGhpcyBwcm9wZXJ0eS4nOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnSW5zdWZmaWNpZW50IFBhcmFtZXRlcnMnOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWydlcnJvcl9jYW50YWRkcHJvcCddID0gJ1Byb2JsZW0gYWRkaW5nIHByb3BlcnR5JzsKJGxhbmdbJ2Vycm9yX2NhbnRhZGRncm91cHJlbG4nXSA9ICdQcm9ibGVtIGFkZGluZyBncm91cCByZWxhdGlvbic7CiRsYW5nWydlcnJvcl9jYW50YWRkZ3JvdXAnXSA9ICdQcm9ibGVtIGFkZGluZyBncm91cCc7CiRsYW5nWydlcnJvcl9jYW50YXNzaWdudXNlciddID0gJ1Byb2JsZW0gYWRkaW5nIGEgdXNlciB0byBhIGdyb3VwJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90ZGVsZXRlcHJvcGVydHknXSA9ICdQcm9ibGVtIGRlbGV0aW5nIGEgcHJvcGVydHknOwokbGFuZ1snZXJyb3JfY291bGRub3RmaW5kZW1haWwnXSA9ICdDb3VsZCBub3QgZmluZCBhbiBlbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ2Vycm9yX2Rlc3RpbmF0aW9ubm90d3JpdGFibGUnXSA9ICdObyB3cml0ZSBwZXJtaXNzaW9uIHRvIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnSW52YWxpZCBQYXJhbWV0ZXJzJzsKJGxhbmdbJ2Vycm9yX25vZ3JvdXBzJ10gPSAnQ291bGQgbm90IGZpbmQgYW55IGdyb3Vwcyc7CiRsYW5nWydhcHBseWZpbHRlciddID0gJ0FwcGx5JzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRlcic7CiRsYW5nWyd1c2VyZmlsdGVyJ10gPSAnVXNlcm5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snZ3JvdXBuYW1lJ10gPSAnR3JvdXAgTmFtZSc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3InOwokbGFuZ1snYWRkZ3JvdXAnXSA9ICdBZGQgR3JvdXAnOwokbGFuZ1snaW1wb3J0Z3JvdXAnXSA9ICdJbXBvcnQgR3JvdXAnOwokbGFuZ1snYWRkdXNlciddID0gJ0FkZCBVc2VyJzsKJGxhbmdbJ3VzZXJzZm91bmQnXSA9ICdVc2VycyBmb3VuZCB0aGF0IG1hdGNoIHRoZSBjcml0ZXJpYSc7CiRsYW5nWydncm91cCddID0gJ0dyb3VwJzsKJGxhbmdbJ3NlbGVjdGdyb3VwJ10gPSAnU2VsZWN0IEdyb3VwJzsKJGxhbmdbJ3JlZ2lzdHJhdGlvbl90ZW1wbGF0ZSddID0gJ1JlZ2lzdHJhdGlvbiBUZW1wbGF0ZSc7CiRsYW5nWydsb2dvdXRfdGVtcGxhdGUnXSA9ICdMb2dvdXQgVGVtcGxhdGUnOwokbGFuZ1snbG9naW5fdGVtcGxhdGUnXSA9ICdMb2dpbiBUZW1wbGF0ZSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3VzZXJzJ10gPSAnVXNlcnMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRnJvbnRlbmQgVXNlciBNYW5hZ2VtZW50JzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQWxsb3cgdXNlcnMgdG8gbG9nIGluIHRvIHRoZSBmcm9udGVuZCBvZiB5b3VyIHNpdGUnOwokbGFuZ1snZGVmYXVsdGZyb250cGFnZSddID0gJ0RlZmF1bHQgZnJvbnQgcGFnZSc7CiRsYW5nWydsYXN0YWNjZXNzZWRwYWdlJ10gPSAnTGFzdCBhY2Nlc3NlZCBwYWdlJzsKJGxhbmdbJ290aGVycGFnZSddID0gJ090aGVyIHBhZ2U6ICc7CiRsYW5nWydjYXB0Y2hhX3RpdGxlJ10gPSAnRW50ZXIgdGhlIHRleHQgZnJvbSB0aGUgaW1hZ2UnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/zh_TW.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ25vbmUnXSA9ICfnhKEnOwokbGFuZ1snb2snXSA9ICdPSyc7CiRsYW5nWyd2aXNpdG9yc190YWInXSA9ICfoqKrlrqInOwokbGFuZ1snc2VsZWN0b25lJ10gPSAn6YG45pOH5LiA5YCLJzsKJGxhbmdbJ3N0YXJ0X3llYXInXSA9ICfplovlp4vlubQnOwokbGFuZ1snZW5kX3llYXInXSA9ICfntZDmnZ/lubQnOwokbGFuZ1snZGF0ZSddID0gJ+aXpeacnyc7CiRsYW5nWydtb250aHMnXSA9ICfmnIgnOwokbGFuZ1sneWVzJ10gPSAn5pivJzsKJGxhbmdbJ25vJ10gPSAn5LiNJzsKJGxhbmdbJ2RlZmF1bHRzJ10gPSAn6aCQ6KitJzsKJGxhbmdbJ3Bhc3N3b3JkJ10gPSAn5a+G56K8JzsKJGxhbmdbJ3JlcGVhdHBhc3N3b3JkJ10gPSAn5YaN5LiA5qyhJzsKJGxhbmdbJ2VkaXRncm91cCddID0gJ+e3qOi8r+e+pOe1hCc7CiRsYW5nWydzdWJtaXQnXSA9ICfmj5DkuqQnOwokbGFuZ1snY2FuY2VsJ10gPSAn5Y+W5raIJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ+WIqumZpCc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ25hbWUnXSA9ICflkI3lrZcnOwokbGFuZ1snZ3JvdXAnXSA9ICfnvqTntYQnOwokbGFuZ1sndXNlcnMnXSA9ICfkvb/nlKjogIUnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.email_verify_assistant.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEZyb250RW5kVXNlcnM7CgpjbGFzcyBlbWFpbF92ZXJpZnlfYXNzaXN0YW50IGV4dGVuZHMgdmVyaWZpY2F0aW9uX2Fzc2lzdGFudAp7CiAgICBwcml2YXRlICRfdGVtcGxhdGU7CiAgICBwcml2YXRlICRfc3ViamVjdDsKICAgIHByaXZhdGUgJF90aXRsZTsKICAgIHByaXZhdGUgJF9tc2c7CiAgICBwcml2YXRlICRfY29kZV9wcm9tcHQ7CiAgICBwcml2YXRlICRfbGlua19wcm9tcHQ7CiAgICBwcml2YXRlICRfc2VudDsKCiAgICBwcml2YXRlIGZ1bmN0aW9uIGdldF9kZWZhdWx0X3RlbXBsYXRlKCkKICAgIHsKICAgICAgICAkdHlwZW5hbWUgPSAnRnJvbnRFbmRVc2Vyczo6Zm9yZ290IHBhc3N3b3JkIGVtYWlsJzsKICAgICAgICAkdHBsID0gXENtc0xheW91dFRlbXBsYXRlOjpsb2FkX2RmbHRfYnlfdHlwZSgkdHlwZW5hbWUpOwogICAgICAgIGlmKCAhJHRwbCApIHsKICAgICAgICAgICAgYXVkaXQoJycsJ0Zyb250RW5kVXNlcnMnLCdObyBkZWZhdWx0IHRlbXBsYXRlIG9mIHR5cGUgJy4kdHlwZW5hbWUuJyBmb3VuZCcpOwogICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ05vIGRlZmF1bHQgdGVtcGxhdGUgb2YgdHlwZSAnLiR0eXBlbmFtZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdHBsLT5nZXRfbmFtZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdWlkKQogICAgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJHVpZCk7CiAgICAgICAgJGZldSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpOwogICAgICAgICR0aGlzLT5fZW1haWwgPSAkZmV1LT5HZXRFbWFpbCgkdWlkKTsKICAgICAgICBpZiggISR0aGlzLT5fZW1haWwgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdBdHRlbXB0IHRvIGNyZWF0ZSBhICcuX19DTEFTU19fLicgZm9yIGEgdXNlciB3aXRob3V0IGEgdmFsaWQgZW1haWwgYWRkcmVzcycpOwoKICAgICAgICAkdGhpcy0+X3RlbXBsYXRlID0gJHRoaXMtPmdldF9kZWZhdWx0X3RlbXBsYXRlKCk7CiAgICAgICAgJHRoaXMtPl9zdWJqZWN0ID0gJ1BsZWFzZSB2ZXJpZnkgeW91ciBhY2NvdW50IGZvciB7c2l0ZW5hbWV9JzsKICAgICAgICAkdGhpcy0+X3RpdGxlID0gJ1BsZWFzZSB2ZXJpZnkgeW91ciBhY2NvdW50JzsKICAgICAgICAkdGhpcy0+X21zZyA9ICc8cD5Gb3Igc2VjdXJpdHkgcHVycG9zZXMgd2UgbmVlZCB0byB2YWxpZGF0ZSB5b3VyIGlkZW50aXR5LiAgVGhpcyBpcyBkb25lIGJ5IHZlcmlmeWluZyB0aGF0IHlvdSByZWNlaXZlZCB0aGlzIGVtYWlsIGNvcnJlY3RseSwgYW5kIGNhbiBmb2xsb3cgdGhlc2UgaW5zdHJ1Y3Rpb25zLjwvcD4KPHA+QmVsb3csIFdlIGhhdmUgcHJvdmlkZWQgYSB1bmlxdWUgc2VjdXJpdHkgY29kZSB0byB1c2UgdG8gdmFsaWRhdGUgeW91ciBjcmVkZW50aWFscy4gUGxlYXNlIGNsaWNrIG9uIHRoZSBsaW5rIHByb3ZpZGVkIGFuZCBlbnRlciB0aGUgc2VjdXJpdHkgY29kZS4gPGVtPkl0IG1heSBhbHJlYWR5IGJlIGZpbGxlZCBpbiBvbiB0aGUgZm9ybTwvZW0+LiAgVGhpcyB3aWxsIGNvbXBsZXRlIHRoZSBvcGVyYXRpb24gYW5kIGFsbG93IHlvdSB0byBsb2dpbiB0byB0aGUgc2VydmljZS48L3A+JzsKICAgICAgICAkdGhpcy0+X2NvZGVfcHJvbXB0ID0gJ1lvdXIgc2VjdXJpdHkgY29kZSBpczonOwogICAgICAgICR0aGlzLT5fbGlua19wcm9tcHQgPSAnUGxlYXNlIGNsaWNrIG9uIHRoaXMgbGluayc7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFNldFRlbXBsYXRlKCRzdHIpCiAgICB7CiAgICAgICAgaWYoICRzdHIgKSAkdGhpcy0+X3RlbXBsYXRlID0gJHN0cjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VGl0bGUoJHN0cikKICAgIHsKICAgICAgICBpZiggJHN0ciApICR0aGlzLT5fdGl0bGUgPSAkc3RyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRTdWJqZWN0KCRzdHIpCiAgICB7CiAgICAgICAgaWYoICRzdHIgKSAkdGhpcy0+X3N1YmplY3QgPSAkc3RyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRNZXNzYWdlKCRzdHIpCiAgICB7CiAgICAgICAgaWYoICRzdHIgKSAkdGhpcy0+X21zZyA9ICRzdHI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFNldENvZGVQcm9tcHQoJHN0cikKICAgIHsKICAgICAgICBpZiggJHN0ciApICR0aGlzLT5fY29kZV9wcm9tcHQgPSAkc3RyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRMaW5rUHJvbXB0KCRzdHIpCiAgICB7CiAgICAgICAgaWYoICRzdHIgKSAkdGhpcy0+X2xpbmtfcHJvbXB0ID0gJHN0cjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2VuZCgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fc2VudCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCB1c2UgdGhlIHNlbmQgbWV0aG9kIG9uIGFuIG9iamVjdCBvZiB0eXBlICcuX19DTEFTU19fLicgbW9yZSB0aGFuIG9uY2UnKTsKCiAgICAgICAgJHVpZCA9ICR0aGlzLT5nZXRfdWlkKCk7CiAgICAgICAgJGRlc3RwYWdlID0gJHRoaXMtPmdldF9kZXN0cGFnZSgpOwogICAgICAgICRjb2RlID0gJHRoaXMtPmdldF9jb2RlKCk7CgogICAgICAgICRmZXUgPSBcZmV1X3V0aWxzOjpnZXRfbW9kKCk7CiAgICAgICAgJHVybCA9ICRmZXUtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCd2ZXJpZnlvbmx5JywkZGVzdHBhZ2UsWyd1aWQnPT4kdWlkLCdjb2RlJz0+JGNvZGVdKTsKCiAgICAgICAgJHRwbCA9ICRmZXUtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGlzLT5fdGVtcGxhdGUpOwogICAgICAgICR0cGwtPmFzc2lnbigndGl0bGUnLCR0aGlzLT5fdGl0bGUpOwogICAgICAgICR0cGwtPmFzc2lnbignbWVzc2FnZV9mb3Jnb3Rwd21haWwnLCR0aGlzLT5fbXNnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ21lc3NhZ2VfZm9yZ290cHdlbWFpbCcsJHRoaXMtPl9tc2cpOwogICAgICAgICR0cGwtPmFzc2lnbignbWVzc2FnZScsJHRoaXMtPl9tc2cpOwogICAgICAgICR0cGwtPmFzc2lnbigncHJvbXB0X2NvZGUnLCR0aGlzLT5fY29kZV9wcm9tcHQpOwogICAgICAgICR0cGwtPmFzc2lnbigncHJvbXB0X2xpbmsnLCR0aGlzLT5fbGlua19wcm9tcHQpOwogICAgICAgICR0cGwtPmFzc2lnbignZGVzdHBhZ2UnLCRkZXN0cGFnZSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdkYXRhX2NvZGUnLCRjb2RlKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3N1YmplY3QnLCR0aGlzLT5fc3ViamVjdCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdkYXRhX3VybCcsJHVybCk7CiAgICAgICAgJGJvZHkgPSAkdHBsLT5mZXRjaCgpOwoKICAgICAgICAvLyBkdXBsaWNhdGVkIGNvZGUuLi4gSSBrbm93LCBJIGtub3cuLi4gc2hhZGRhcAogICAgICAgICR0cGwgPSAkZmV1LT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnc3RyaW5nOicuJHRoaXMtPl9zdWJqZWN0KTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3RpdGxlJywkdGhpcy0+X3RpdGxlKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ21lc3NhZ2VfZm9yZ290cHdtYWlsJywkdGhpcy0+X21zZyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdtZXNzYWdlX2ZvcmdvdHB3ZW1haWwnLCR0aGlzLT5fbXNnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ21lc3NhZ2UnLCR0aGlzLT5fbXNnKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3Byb21wdF9jb2RlJywkdGhpcy0+X2NvZGVfcHJvbXB0KTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3Byb21wdF9saW5rJywkdGhpcy0+X2xpbmtfcHJvbXB0KTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2Rlc3RwYWdlJywkZGVzdHBhZ2UpOwogICAgICAgICR0cGwtPmFzc2lnbignZGF0YV9jb2RlJywkY29kZSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdzdWJqZWN0JywkdGhpcy0+X3N1YmplY3QpOwogICAgICAgICR0cGwtPmFzc2lnbignZGF0YV91cmwnLCR1cmwpOwogICAgICAgICRzdWJqZWN0ID0gJHRwbC0+ZmV0Y2goKTsKCiAgICAgICAgJG1haWxlciA9IG5ldyBcY21zX21haWxlcigpOwogICAgICAgICRtYWlsZXItPkFkZEFkZHJlc3MoJHRoaXMtPl9lbWFpbCk7CiAgICAgICAgJG1haWxlci0+U2V0Qm9keSgkYm9keSk7CiAgICAgICAgJG1haWxlci0+U2V0U3ViamVjdCgkc3ViamVjdCk7CiAgICAgICAgJG1haWxlci0+SXNIVE1MKFRSVUUpOwogICAgICAgICRtYWlsZXItPlNldFByaW9yaXR5KDEpOwogICAgICAgICRtYWlsZXItPlNlbmQoKTsKICAgICAgICAkdGhpcy0+X3NlbnQgPSBUUlVFOwoKICAgICAgICBhdWRpdCgkdWlkLCRmZXUtPkdldE5hbWUoKSwnVmVyaWZpY2F0aW9uIGVtYWlsIHNlbnQnKTsKICAgICAgICAkZmV1LT5hZGRfaGlzdG9yeSgkdWlkLCdpbml0X3ZlcmlmeScpOwogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.FEUForcedLogoutTask.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBGRVVGb3JjZWRMb2dvdXRUYXNrIGltcGxlbWVudHMgQ21zUmVndWxhclRhc2sKewogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgewogICAgcmV0dXJuIGdldF9jbGFzcygpOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGVzY3JpcHRpb24oKQogIHsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdmb3JjZWRsb2dvdXR0YXNrX2Rlc2MnKTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gdGVzdCgkdGltZSA9ICcnKQogIHsKICAgIGlmKCAhJHRpbWUgKSAkdGltZSA9IHRpbWUoKTsKICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICRsYXN0cnVuID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnZm9yY2Vsb2dvdXRfbGFzdHJ1bicpOwoKICAgICR0aW1lcyA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2ZvcmNlbG9nb3V0X3RpbWVzJyk7IC8vIGxpa2U6IDE4OjMwLDIwOjMwLDA4OjAwLCBldGMuCiAgICBpZiggJHRpbWVzID09ICcnICkgcmV0dXJuIEZBTFNFOwoKICAgICR0bXAgPSBhcnJheSgpOwogICAgJHRpbWVzID0gZXhwbG9kZSgnLCcsJHRpbWVzKTsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aW1lcyk7ICRpKysgKQogICAgICB7CgkkdF9oID0gJyc7CgkkdF9tID0gJyc7CglpZiggc3RhcnRzd2l0aCgkdGltZXNbJGldLCcqJykgKQoJICB7CgkgICAgbGlzdCgkanVuaywkbWludXRlcykgPSBleHBsb2RlKCcvJywkdGltZXNbJGldLDIpOwoJICAgICRtaW51dGVzID0gKGludCkkbWludXRlczsKCSAgICAkbWludXRlcyA9IG1heCgkbWludXRlcywxKTsgLy8gbWludW11bSAyIG1pbnV0ZXMKCSAgICAkbWludXRlcyA9IG1pbigkbWludXRlcywxODApOyAvLyBtYXhpbXVtIDE4MCBtaW51dGVzLgoJICAgIGZvciggJGkgPSAwOyAkaSA8IDYwKjI0OyAkaSArPSAkbWludXRlcyApCgkgICAgICB7CgkJJHRfaCA9IChpbnQpKCRpLzYwKTsKCQkkdF9tID0gKGludCkoJGklNjApOwoJCSR0bXBbXSA9IG1rdGltZSgoaW50KSR0X2gsKGludCkkdF9tLDAsKGludClkYXRlKCdtJywkdGltZSksKGludClkYXRlKCdkJywkdGltZSksKGludClkYXRlKCdZJywkdGltZSkpOwoJICAgICAgfQoJICB9CgllbHNlCgkgIHsKCSAgICBsaXN0KCR0X2gsJHRfbSkgPSBleHBsb2RlKCc6Jyx0cmltKCR0aW1lc1skaV0pLDIpOwoJICB9CiAgICAgIH0KICAgIHJzb3J0KCR0bXApOwoKICAgICRmaSA9ICcnOwogICAgJGZ0ID0gJyc7CiAgICAvLyBmaW5kIHRoZSBjbG9zZXN0IGVudHJ5LgoKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCiAgICAgIHsKCWlmKCAkdGltZSA+ICR0bXBbJGldICkgYnJlYWs7IC8vIG5vdGhpbmcgdG8gZG8uLgoKCgkkZHQgPSAkdG1wWyRpXSAtICR0aW1lOwoJaWYoICRmdCA9PSAnJyB8fCAkZHQgPCAoJGZ0IC0gJHRpbWUpICkKCSAgewoJICAgICRmaSA9ICRpOwoJICAgICRmdCA9ICR0bXBbJGldOwoJICB9CgogICAgICB9CiAgICBpZiggJGZ0ICE9ICcnICYmICRmaSAhPSAnJyAmJiAoJHRpbWUgLSAkZnQpIDwgNjAgKQogICAgICB7CgkvLyB3ZSBmb3VuZCBzb21ldGhpbmcgdGhhdCBjYW4gZXhlY3V0ZS4KCSRfU0VTU0lPTltnZXRfY2xhc3MoKS4nX3J1bnRpbWUnXSA9ICR0bXBbJGldOwoJcmV0dXJuIFRSVUU7CiAgICAgIH0KICAgIHJldHVybiBGQUxTRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gZXhlY3V0ZSgkdGltZSA9ICcnKQogIHsKICAgIGlmKCAhJHRpbWUgKSAkdGltZSA9IHRpbWUoKTsKICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OW2dldF9jbGFzcygpLidfcnVudGltZSddKSApIHJldHVybiBGQUxTRTsKICAgICR0aGVfdGltZSA9ICRfU0VTU0lPTltnZXRfY2xhc3MoKS4nX3J1bnRpbWUnXTsKICAgIHVuc2V0KCRfU0VTU0lPTltnZXRfY2xhc3MoKS4nX3J1bnRpbWUnXSk7CgogICAgLy8gbm93IGZpbmQgYWxsIHRoZSB1aWQncyB0aGF0IGFyZSBsb2dnZWQgaW4gYnV0IG5vdCBhY3RpdmUgc2luY2UgJHRoZV90aW1lCiAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAkZm9yZ2l2ZW5lc3MgPSAoaW50KSRmZXUtPkdldFByZWZlcmVuY2UoJ2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnKTsKICAgICRmb3JnaXZlbmVzcyA9IG1heCgwLCRmb3JnaXZlbmVzcykqNjA7CiAgICAkdGhlX3RpbWUgLT0gJGZvcmdpdmVuZXNzOwogICAgJHVpZHMgPSAkZmV1LT5HZXRMb2dnZWRJblVzZXJzKCR0aGVfdGltZSk7CiAgICBpZiggIWlzX2FycmF5KCR1aWRzKSB8fCBjb3VudCgkdWlkcykgPT0gMCApCiAgICAgIHsKCXJldHVybiBUUlVFOyAvLyBub3RoaW5nIHRvIGRvLgogICAgICB9CgogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHVpZHMpOyAkaSsrICkKICAgICAgewoJJGZldS0+TG9nb3V0KCR1aWRzWyRpXSwnZm9yY2VkIGxvZ291dCcpOwogICAgICB9CiAgICAkZmV1LT5BdWRpdCgnJywkZmV1LT5HZXROYW1lKCksJ0ZvcmNlZCBsb2dvdXQgb2YgJy5jb3VudCgkdWlkcykuJyB1c2VycyBhdCAnLnN0cmZ0aW1lKCclSDolTScsJHRoZV90aW1lKSk7CiAgICByZXR1cm4gVFJVRTsKICB9CgoKICBwdWJsaWMgZnVuY3Rpb24gb25fc3VjY2VzcygkdGltZSA9ICcnKQogIHsKICAgICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwogICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICRmZXUtPlNldFByZWZlcmVuY2UoJ2ZvcmNlbG9nb3V0X2xhc3RydW4nLCR0aW1lKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBvbl9mYWlsdXJlKCR0aW1lID0gJycpCiAgewogICAgaWYoICEkdGltZSApICR0aW1lID0gdGltZSgpOwogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_content_attribute_helper.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBmZXVfY29udGVudF9hdHRyaWJ1dGVfaGVscGVyIGV4dGVuZHMgQ21zQ29udGVudEF0dHJpYnV0ZUhlbHBlckJhc2UKewogIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2U7CgoKICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfaW5zdGFuY2UoKQogIHsKICAgIGlmICghc2VsZjo6JF9pbnN0YW5jZSkKICAgICAgewogICAgICAgIHNlbGY6OiRfaW5zdGFuY2UgPSBuZXcgZmV1X2NvbnRlbnRfYXR0cmlidXRlX2hlbHBlcigpOwogICAgICB9CiAgICAKICAgIHJldHVybiBzZWxmOjokX2luc3RhbmNlOwogIH0KCgogIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uICZnZXRfZmV1KCkKICB7CiAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICByZXR1cm4gJGdDbXMtPm1vZHVsZXNbJ0Zyb250RW5kVXNlcnMnXVsnb2JqZWN0J107CiAgfQoKCiAgcHVibGljIGZ1bmN0aW9uIGdldF9hdHRyaWJ1dGVfdGFicygpCiAgewogICAgJGZldSA9IHNlbGY6OmdldF9mZXUoKTsKICAgICRkYXRhID0gYXJyYXkoKTsKICAgICRkYXRhWyd2aXNpdG9ycyddID0gYXJyYXkoJ3Byb21wdCc9PiRmZXUtPkxhbmcoJ3Zpc2l0b3JzX3RhYicpLCdwZXJtaXNzaW9uJz0+JycpOwogICAgcmV0dXJuICRkYXRhOwogIH0KCgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfYXR0cmlidXRlX2lucHV0KCRhdHRyLCRjb250ZW50X29iaiwkYWRkaW5nKQogIHsKICAgICRnQ21zID0gY21zbXMoKTsKICAgICRmZXUgPSBzZWxmOjpnZXRfZmV1KCk7CgogICAgc3dpdGNoKCAkYXR0ci0+Z2V0X25hbWUoKSApCiAgICB7CiAgICBjYXNlICdmZXVfZ3JvdXBzJzoKICAgICAgJHRtcCA9IGFycmF5KCRmZXUtPkxhbmcoJ2FueV9sb2dnZWRfaW5fdXNlcicpPT4nLTEnKTsKICAgICAgJHQyID0gJGZldS0+R2V0R3JvdXBMaXN0KCk7CiAgICAgIGZvcmVhY2goICR0MiBhcyAkayA9PiAkdiApCgl7CgkgICR0bXBbJGtdID0gJHY7Cgl9CiAgICAgIGlmKCBpc19hcnJheSgkdG1wKSApCgl7CgkgICRzZWwgPSBhcnJheSgpOwoJICAkc2VsX3N0ciA9ICRjb250ZW50X29iai0+Z2V0X3Byb3BlcnR5X3ZhbHVlKCdmZXVfZ3JvdXBzJyk7CgkgIGlmKCAkc2VsX3N0ciApCgkgICAgewoJICAgICAgJHNlbCA9IGV4cGxvZGUoJywnLCRzZWxfc3RyKTsKCSAgICB9CgkgICRwcm9tcHQgPSAkZmV1LT5MYW5nKCdmZXVfZ3JvdXBzX3Byb21wdCcpOwoJICAkZmllbGQgPSAkZmV1LT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJycsJ2ZldV9ncm91cHNbXScsJHRtcCwkc2VsLAoJCQkJCSAgICAgICBtaW4oY291bnQoJHRtcCksNSkpOwoJICByZXR1cm4gYXJyYXkoJHByb21wdC4nOicsJGZpZWxkKTsKCX0KICAgICAgYnJlYWs7CgogICAgY2FzZSAnZmV1X3JlZGlyZWN0JzoKICAgICAgLy8gZ2V0IGEgbGlzdCBvZiBwYWdlcwogICAgICAkdmFsID0gJGNvbnRlbnRfb2JqLT5nZXRfcHJvcGVydHlfdmFsdWUoJ2ZldV9yZWRpcmVjdCcsLTEpOwogICAgICAkcHJvbXB0ID0gJGZldS0+TGFuZygnZmV1X3JlZGlyZWN0X3Byb21wdCcpOwogICAgICAkZmllbGQgPSBDbXNDb250ZW50T3BlcmF0aW9uczo6Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJHZhbCwnJywnZmV1X3JlZGlyZWN0Jyk7CiAgICAgIHJldHVybiBhcnJheSgkcHJvbXB0Lic6JywkZmllbGQpOwogICAgICBicmVhazsKICAgIH0KICAgIAogIH0KCgogIGZ1bmN0aW9uIGdldF9hdHRyaWJ1dGVzX2Zyb21fZm9ybWRhdGEoJGNvbnRlbnRfb2JqLCRwYXJhbXMpCiAgewogICAgJHByb3BzID0gYXJyYXkoJ2ZldV9ncm91cHMnLCdmZXVfcmVkaXJlY3QnKTsKICAgIGZvcmVhY2goICRwcm9wcyBhcyAkb25lICkKICAgICAgewoJc3dpdGNoKCAkb25lICkKCSAgewoJICBjYXNlICdmZXVfZ3JvdXBzJzoKCSAgICBpZiggaXNzZXQoJHBhcmFtc1skb25lXSkgKQoJICAgICAgewoJCSRzdHIgPSBpbXBsb2RlKCcsJywkcGFyYW1zWyRvbmVdKTsKCQkkY29udGVudF9vYmotPnNldF9wcm9wZXJ0eV92YWx1ZSgkb25lLCRzdHIpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkY29udGVudF9vYmotPnNldF9wcm9wZXJ0eV92YWx1ZSgkb25lLCcnKTsKCSAgICAgIH0KCSAgICBicmVhazsKCSAgICAKCSAgZGVmYXVsdDoKCSAgICBpZiggaXNzZXQoJHBhcmFtc1skb25lXSkgKQoJICAgICAgewoJCSRjb250ZW50X29iai0+c2V0X3Byb3BlcnR5X3ZhbHVlKCRvbmUsJHBhcmFtc1skb25lXSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogIH0KICAKCn0gLy8gZW5kIG9mIGNsYXNzCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_protected_logoutlink.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNSBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLyA5OSUgb2YgdGhpcyBjbGFzcyAoYWxsIG9mIGl0PykgY291bGQgYmUgaW4gYSB0cmFpdCwgYXMgaXQgaXMgaW5pdGlhbGx5IGp1c3QgY29waWVkIGZyb20gdGhlIEZFVSBwcm90ZWN0ZWQgcGFnZSBjbGFzcy4KY2xhc3MgZmV1X3Byb3RlY3RlZF9sb2dvdXRsaW5rIGV4dGVuZHMgQ29udGVudEJhc2UKewogICAgcHVibGljIGZ1bmN0aW9uIElzQ29weWFibGUoKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSXNWaWV3YWJsZSgpIHsgcmV0dXJuIEZBTFNFOyB9CglwdWJsaWMgZnVuY3Rpb24gSGFzU2VhcmNoYWJsZUNvbnRlbnQoKSB7IHJldHVybiBGQUxTRTsgfQoKICAgIGZ1bmN0aW9uIFNldFByb3BlcnRpZXMoKQogICAgewoJCXBhcmVudDo6U2V0UHJvcGVydGllcygpOwoJCSR0aGlzLT5SZW1vdmVQcm9wZXJ0eSgnc2VjdXJlJywwKTsKCQkkdGhpcy0+UmVtb3ZlUHJvcGVydHkoJ2NhY2hhYmxlJyxmYWxzZSk7CgkJJHRoaXMtPlJlbW92ZVByb3BlcnR5KCdzaG93aW5tZW51Jyx0cnVlKTsKCQkkdGhpcy0+UmVtb3ZlUHJvcGVydHkoJ3BhZ2VfdXJsJywnJyk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfaXNBdXRob3JpemVkKCkKICAgIHsKICAgICAgICAvLyBkbyB3ZSBoYXZlIGFjY2VzcyB0byBpdD8KICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICAgICBpZiggJGZldSApIHsKICAgICAgICAgICAgJHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgICAgICAgICAgaWYoICR1aWQgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBGcmllbmRseU5hbWUoKQogICAgewogICAgICAgIHJldHVybiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpLT5MYW5nKGdldF9jbGFzcygpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TW9kaWZpZWREYXRlKCkKICAgIHsKICAgICAgICAvLyBvbiBmcm9udGVuZCByZXF1ZXN0cyB0aGlzIHdpbGwgZm9yY2UgdGhlIHRlbXBsYXRlIHRvIGJlIHJlY29tcGlsZWQKICAgICAgICAvLyBhbmQgdGhlcmVmb3JlIGV2YWx1YXRpb24gdG8gYmUgZG9uZSBmb3IgZWFjaCByZXF1ZXN0LgogICAgICAgIGlmKCBjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkgKSByZXR1cm4gdGltZSgpOwogICAgICAgIHJldHVybiBwYXJlbnQ6OkdldE1vZGlmaWVkRGF0ZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBJc1Blcm1pdHRlZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5faXNBdXRob3JpemVkKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFNob3dJbk1lbnUoKQogICAgewogICAgICAgICRyZXMgPSBwYXJlbnQ6OlNob3dJbk1lbnUoKTsKICAgICAgICBpZiggISRyZXMgKSByZXR1cm4gJHJlczsKICAgICAgICAkcmVzID0gJHRoaXMtPl9pc0F1dGhvcml6ZWQoKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBmdW5jdGlvbiBHZXRVUkwoJHJld3JpdGUgPSB0cnVlKQogICAgewogICAgICAgICRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpOwogICAgICAgICRwYWdlX2lkID0gQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgICAgIHJldHVybiAkZmV1LT5jcmVhdGVfdXJsKCdjbnRudDAxJywnbG9nb3V0JywkcGFnZV9pZCk7CiAgICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_protected_page.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBmZXVfcHJvdGVjdGVkX3BhZ2UgZXh0ZW5kcyBDb250ZW50CnsKICAgIHByaXZhdGUgJF9kYXRhOwogICAgY29uc3QgRkVVX1BST1BOQU1FID0gJ19fZmV1X2RhdGVfXyc7IC8vIG9vcHM6IHR5cG8sIGNhbid0IGNoYW5nZSBpdCBub3cgdGhvdWdoLgogICAgY29uc3QgVEFCX0ZFVSA9ICdjY19mZXUnOwoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2dldERhdGEoKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9kYXRhKSApIHsKICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKHNlbGY6OkZFVV9QUk9QTkFNRSk7CiAgICAgICAgICAgICR0aGlzLT5fZGF0YSA9IGFycmF5KCk7CiAgICAgICAgICAgIGlmKCAkdG1wICkgJHRoaXMtPl9kYXRhID0gdW5zZXJpYWxpemUoJHRtcCk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3NldERhdGEoKQogICAgewogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2RhdGEpICYmIGNvdW50KCR0aGlzLT5fZGF0YSkgKSB7CiAgICAgICAgICAgICR0aGlzLT5TZXRQcm9wZXJ0eVZhbHVlKHNlbGY6OkZFVV9QUk9QTkFNRSxzZXJpYWxpemUoJHRoaXMtPl9kYXRhKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkdGhpcy0+U2V0UHJvcGVydHlWYWx1ZShzZWxmOjpGRVVfUFJPUE5BTUUsJycpOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9pc0F1dGhvcml6ZWQoKQogICAgewogICAgICAgIC8vIGRvIHdlIGhhdmUgYWNjZXNzIHRvIGl0PwogICAgICAgICR0aGlzLT5fZ2V0RGF0YSgpOwoKICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICAgICBpZiggJGZldSApIHsKICAgICAgICAgICAgJHVpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgICAgICAgICAgaWYoICR1aWQgKSB7CiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pIHx8IGNvdW50KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pID09IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gbm8gbWVtYmVyIGdyb3VwcyBzZWxlY3RlZCwgYnV0IHN0aWxsIGxvZ2dlZCBpbiwgd2UgY2FuIGRpc3BsYXkgdGhpcy4KICAgICAgICAgICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIGdldCBtZW1iZXIgZ3JvdXBzIGFuZCBkbyBhIGNyb3NzIHJlZmVyZW5jZS4KICAgICAgICAgICAgICAgICAgICAkZ3JvdXBzID0gJGZldS0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoJHVpZCk7CiAgICAgICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkZ3JvdXBzKSB8fCBjb3VudCgkZ3JvdXBzKSA9PSAwICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAgICAgICAgICRtZW1iZXJncm91cHMgPSBjZ2VfYXJyYXk6OmV4dHJhY3RfZmllbGQoJGdyb3VwcywnZ3JvdXBpZCcpOwogICAgICAgICAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggaW5fYXJyYXkoJHRoaXMtPl9kYXRhWydncm91cHMnXVskaV0sJG1lbWJlcmdyb3VwcykgKSByZXR1cm4gVFJVRTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBGcmllbmRseU5hbWUoKQogICAgewogICAgICAgIHJldHVybiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpLT5MYW5nKGdldF9jbGFzcygpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0TW9kaWZpZWREYXRlKCkKICAgIHsKICAgICAgICAvLyBvbiBmcm9udGVuZCByZXF1ZXN0cyB0aGlzIHdpbGwgZm9yY2UgdGhlIHRlbXBsYXRlIHRvIGJlIHJlY29tcGlsZWQKICAgICAgICAvLyBhbmQgdGhlcmVmb3JlIGV2YWx1YXRpb24gdG8gYmUgZG9uZSBmb3IgZWFjaCByZXF1ZXN0LgogICAgICAgIGlmKCBjbXNtcygpLT5pc19mcm9udGVuZF9yZXF1ZXN0KCkgKSByZXR1cm4gdGltZSgpOwogICAgICAgIHJldHVybiBwYXJlbnQ6OkdldE1vZGlmaWVkRGF0ZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRQcm9wZXJ0aWVzKCkKICAgIHsKICAgICAgICBwYXJlbnQ6OlNldFByb3BlcnRpZXMoKTsKICAgICAgICAkdGhpcy0+UmVtb3ZlUHJvcGVydHkoJ2NhY2hhYmxlJyxmYWxzZSk7CiAgICAgICAgaWYoIHZlcnNpb25fY29tcGFyZShDTVNfVkVSU0lPTiwnMS45OCcpIDwgMCApIHsKICAgICAgICAgICAgJHRoaXMtPkFkZENvbnRlbnRQcm9wZXJ0eSgnX19mZXVfZ3JvdXBzX18nLDEpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPkFkZFByb3BlcnR5KCdfX2ZldV9ncm91cHNfXycsMSxzZWxmOjpUQUJfRkVVKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIElzUGVybWl0dGVkKCkKICAgIHsKICAgICAgICAkciA9ICR0aGlzLT5faXNBdXRob3JpemVkKCk7CiAgICAgICAgaWYoICEkciApIHsKICAgICAgICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfRlJPTlRFTkRVU0VSUyk7CiAgICAgICAgICAgIGlmKCBcQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICYmICRmZXUgKSAkZmV1LT5TZXRQb3N0TG9naW5VcmwoXGNnZV91cmw6OmN1cnJlbnRfdXJsKCkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHI7CiAgICB9CgogICAgLy8gQ01TTVMgMS4xMS54IGFuZCBwcmV2aW91cyBvbmx5CiAgICBwdWJsaWMgZnVuY3Rpb24gVGFiTmFtZXMoKQogICAgewogICAgICAgICRyZXMgPSBwYXJlbnQ6OlRhYk5hbWVzKCk7CiAgICAgICAgaWYoIGNoZWNrX3Blcm1pc3Npb24oZ2V0X3VzZXJpZCgpLCdNYW5hZ2UgQWxsIENvbnRlbnQnKSApIHsKICAgICAgICAgICAgJHJlc1tdID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKS0+TGFuZygnZnJvbnRlbmRfYWNjZXNzJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8vIENNU01TIDEuMTEueCBhbmQgcHJldmlvdXMgb25seQogICAgcHVibGljIGZ1bmN0aW9uIEVkaXRBc0FycmF5KCRhZGRpbmcgPSBmYWxzZSwgJHRhYiA9IDAsICRzaG93YWRtaW4gPSBmYWxzZSkKICAgIHsKICAgICAgICAkbmFtZXMgPSAkdGhpcy0+VGFiTmFtZXMoKTsKICAgICAgICAkc3RyID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKS0+TGFuZygnZnJvbnRlbmRfYWNjZXNzJyk7CiAgICAgICAgaWYoICFpc3NldCgkbmFtZXNbJHRhYl0pIHx8ICRuYW1lc1skdGFiXSAhPSAkc3RyICkgcmV0dXJuIHBhcmVudDo6RWRpdEFzQXJyYXkoJGFkZGluZywkdGFiLCRzaG93YWRtaW4pOwoKICAgICAgICAkcmV0ID0gYXJyYXkoKTsKICAgICAgICAvLyB0aGUgcGVybWlzc2lvbnMgdGFiLgogICAgICAgICRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgICAkZ3JvdXBsaXN0ID0gYXJyYXlfZmxpcCgkZmV1LT5HZXRHcm91cExpc3QoKSk7CgogICAgICAgICR0aGlzLT5fZ2V0RGF0YSgpOwogICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydncm91cHMnXSkgKSB7CiAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCcsJywkZmV1LT5HZXRQcmVmZXJlbmNlKCdwYWdldHlwZV9ncm91cHMnKSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApICR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10gPSAkdG1wOwogICAgICAgIH0KICAgICAgICAkc2l6ZSA9IG1pbihjb3VudCgkZ3JvdXBsaXN0KSwxMCk7CiAgICAgICAgJHRtcCA9IGFycmF5KCRmZXUtPkxhbmcoJ2dyb3VwcycpLic6Jyk7CiAgICAgICAgJG9wdCA9ICc8c2VsZWN0IG5hbWU9Il9fZmV1X2dyb3Vwc19fW10iIG11bHRpcGxlPSJtdWx0aXBsZSIgc2l6ZT0iJy4kc2l6ZS4nIj4nOwogICAgICAgIGZvcmVhY2goICRncm91cGxpc3QgYXMgJGdpZCA9PiAkZ25hbWUgKSB7CiAgICAgICAgICAgICRzZWxlY3RlZCA9ICcnOwogICAgICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydncm91cHMnXSkgJiYgaW5fYXJyYXkoJGdpZCwkdGhpcy0+X2RhdGFbJ2dyb3VwcyddKSApICRzZWxlY3RlZD0nc2VsZWN0ZWQ9InNlbGVjdGVkIiAnOwogICAgICAgICAgICAkb3B0IC49ICc8b3B0aW9uICcuJHNlbGVjdGVkLid2YWx1ZT0iJy4kZ2lkLiciPicuJGduYW1lLic8L29wdGlvbj4nOwogICAgICAgIH0KICAgICAgICAkb3B0IC49ICc8L3NlbGVjdD48YnIvPicuJGZldS0+TGFuZygnaW5mb19jb250ZW50cGFnZV9ncm91cGxpc3QnKTsKICAgICAgICAkdG1wW10gPSAkb3B0OwogICAgICAgICRyZXRbXSA9ICR0bXA7CgogICAgICAgIHJldHVybiAkcmV0OwogICAgfQoKICAgIC8vIENNU01TIDIuMAogICAgcHVibGljIGZ1bmN0aW9uIEdldFRhYk5hbWVzKCkKICAgIHsKICAgICAgICAkb3V0ID0gcGFyZW50OjpHZXRUYWJOYW1lcygpOwogICAgICAgIGlmKCAhY2hlY2tfcGVybWlzc2lvbihnZXRfdXNlcmlkKCksJ01hbmFnZSBBbGwgQ29udGVudCcpICkgewogICAgICAgICAgICBpZiggaXNzZXQoJG91dFtzZWxmOjpUQUJfRkVVXSkgKSB1bnNldCgkb3V0W3NlbGY6OlRBQl9GRVVdKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmKCBpc3NldCgkb3V0W3NlbGY6OlRBQl9GRVVdKSApICRvdXRbc2VsZjo6VEFCX0ZFVV0gPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpLT5MYW5nKCdmcm9udGVuZF9hY2Nlc3MnKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEZpbGxQYXJhbXMoJHBhcmFtcywkZWRpdGluZyA9IGZhbHNlKQogICAgewogICAgICAgICR0aGlzLT5fZ2V0RGF0YSgpOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydfX2ZldV9ncm91cHNfXyddKSApIHsKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWydncm91cHMnXSA9ICRwYXJhbXNbJ19fZmV1X2dyb3Vwc19fJ107CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pICkgewogICAgICAgICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ2dyb3VwcyddKTsKICAgICAgICB9CiAgICAgICAgcGFyZW50OjpGaWxsUGFyYW1zKCRwYXJhbXMsJGVkaXRpbmcpOwogICAgICAgICR0aGlzLT5TZXRDYWNoYWJsZShmYWxzZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFNob3dJbk1lbnUoKQogICAgewogICAgICAgICRyZXMgPSBwYXJlbnQ6OlNob3dJbk1lbnUoKTsKICAgICAgICBpZiggISRyZXMgKSByZXR1cm4gJHJlczsKICAgICAgICByZXR1cm4gJHRoaXMtPl9pc0F1dGhvcml6ZWQoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gU2F2ZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9zZXREYXRhKCk7CiAgICAgICAgcmV0dXJuIHBhcmVudDo6U2F2ZSgpOwogICAgfQoKICAgIC8vIHBvc3NpYmxlIGZvciAxLjExLngsIHJlcXVpcmVkIGZvciBDTVNNUyAyLjAKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBkaXNwbGF5X3NpbmdsZV9lbGVtZW50KCRvbmUsJGFkZGluZykKICAgIHsKICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKCiAgICAgICAgc3dpdGNoKCAkb25lICkgewogICAgICAgIGNhc2UgJ19fZmV1X2dyb3Vwc19fJzoKICAgICAgICAgICAgJHJldCA9IGFycmF5KCk7CiAgICAgICAgICAgIC8vIHRoZSBwZXJtaXNzaW9ucyB0YWIuCiAgICAgICAgICAgICRncm91cGxpc3QgPSBhcnJheV9mbGlwKCRmZXUtPkdldEdyb3VwTGlzdCgpKTsKCiAgICAgICAgICAgICR0aGlzLT5fZ2V0RGF0YSgpOwogICAgICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pICkgewogICAgICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoJywnLCRmZXUtPkdldFByZWZlcmVuY2UoJ3BhZ2V0eXBlX2dyb3VwcycpKTsKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApICR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10gPSAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRzaXplID0gbWluKGNvdW50KCRncm91cGxpc3QpLDEwKTsKICAgICAgICAgICAgJHRtcCA9IGFycmF5KCRmZXUtPkxhbmcoJ2dyb3VwcycpLic6Jyk7CiAgICAgICAgICAgICRvcHQgPSAnPHNlbGVjdCBuYW1lPSJfX2ZldV9ncm91cHNfX1tdIiBtdWx0aXBsZT0ibXVsdGlwbGUiIHNpemU9IicuJHNpemUuJyI+JzsKICAgICAgICAgICAgZm9yZWFjaCggJGdyb3VwbGlzdCBhcyAkZ2lkID0+ICRnbmFtZSApIHsKICAgICAgICAgICAgICAgICRzZWxlY3RlZCA9ICcnOwogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pICYmIGluX2FycmF5KCRnaWQsJHRoaXMtPl9kYXRhWydncm91cHMnXSkgKSAkc2VsZWN0ZWQ9J3NlbGVjdGVkPSJzZWxlY3RlZCIgJzsKICAgICAgICAgICAgICAgICRvcHQgLj0gJzxvcHRpb24gJy4kc2VsZWN0ZWQuJ3ZhbHVlPSInLiRnaWQuJyI+Jy4kZ25hbWUuJzwvb3B0aW9uPic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG9wdCAuPSAnPC9zZWxlY3Q+PGJyLz4nLiRmZXUtPkxhbmcoJ2luZm9fY29udGVudHBhZ2VfZ3JvdXBsaXN0Jyk7CiAgICAgICAgICAgICR0bXBbXSA9ICRvcHQ7CiAgICAgICAgICAgIHJldHVybiAkdG1wOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gcGFyZW50OjpkaXNwbGF5X3NpbmdsZV9lbGVtZW50KCRvbmUsJGFkZGluZyk7CiAgICAgICAgfQogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_protected_sectionhead.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNSBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovLyA5OSUgb2YgdGhpcyBjbGFzcyAoYWxsIG9mIGl0PykgY291bGQgYmUgaW4gYSB0cmFpdCwgYXMgaXQgaXMgaW5pdGlhbGx5IGp1c3QgY29waWVkIGZyb20gdGhlIEZFVSBwcm90ZWN0ZWQgcGFnZSBjbGFzcy4KY2xhc3MgZmV1X3Byb3RlY3RlZF9zZWN0aW9uaGVhZCBleHRlbmRzIFNlY3Rpb25IZWFkZXIKewogICAgcHJpdmF0ZSAkX2RhdGE7CiAgICBjb25zdCBGRVVfUFJPUE5BTUUgPSAnX19mZXVfZGF0ZV9fJzsgLy8gb29wczogdHlwbywgY2FuJ3QgY2hhbmdlIGl0IG5vdyB0aG91Z2guCiAgICBjb25zdCBUQUJfRkVVID0gJ2NjX2ZldSc7CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RGF0YSgpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2RhdGEpICkgewogICAgICAgICAgICAkdG1wID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoc2VsZjo6RkVVX1BST1BOQU1FKTsKICAgICAgICAgICAgJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsKICAgICAgICAgICAgaWYoICR0bXAgKSAkdGhpcy0+X2RhdGEgPSB1bnNlcmlhbGl6ZSgkdG1wKTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfc2V0RGF0YSgpCiAgICB7CiAgICAgICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fZGF0YSkgJiYgY291bnQoJHRoaXMtPl9kYXRhKSApIHsKICAgICAgICAgICAgJHRoaXMtPlNldFByb3BlcnR5VmFsdWUoc2VsZjo6RkVVX1BST1BOQU1FLHNlcmlhbGl6ZSgkdGhpcy0+X2RhdGEpKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5TZXRQcm9wZXJ0eVZhbHVlKHNlbGY6OkZFVV9QUk9QTkFNRSwnJyk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2lzQXV0aG9yaXplZCgpCiAgICB7CiAgICAgICAgLy8gZG8gd2UgaGF2ZSBhY2Nlc3MgdG8gaXQ/CiAgICAgICAgJHRoaXMtPl9nZXREYXRhKCk7CgogICAgICAgICRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpOwogICAgICAgIGlmKCAkZmV1ICkgewogICAgICAgICAgICAkdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgICAgICAgICBpZiggJHVpZCApIHsKICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydncm91cHMnXSkgfHwgY291bnQoJHRoaXMtPl9kYXRhWydncm91cHMnXSkgPT0gMCApIHsKICAgICAgICAgICAgICAgICAgICAvLyBubyBtZW1iZXIgZ3JvdXBzIHNlbGVjdGVkLCBidXQgc3RpbGwgbG9nZ2VkIGluLCB3ZSBjYW4gZGlzcGxheSB0aGlzLgogICAgICAgICAgICAgICAgICAgIHJldHVybiBUUlVFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IG1lbWJlciBncm91cHMgYW5kIGRvIGEgY3Jvc3MgcmVmZXJlbmNlLgogICAgICAgICAgICAgICAgICAgICRncm91cHMgPSAkZmV1LT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdWlkKTsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzX2FycmF5KCRncm91cHMpIHx8IGNvdW50KCRncm91cHMpID09IDAgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgICAgICAgICAgJG1lbWJlcmdyb3VwcyA9IGNnZV9hcnJheTo6ZXh0cmFjdF9maWVsZCgkZ3JvdXBzLCdncm91cGlkJyk7CiAgICAgICAgICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9kYXRhWydncm91cHMnXSk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpbl9hcnJheSgkdGhpcy0+X2RhdGFbJ2dyb3VwcyddWyRpXSwkbWVtYmVyZ3JvdXBzKSApIHJldHVybiBUUlVFOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEZyaWVuZGx5TmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfRlJPTlRFTkRVU0VSUyktPkxhbmcoZ2V0X2NsYXNzKCkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRNb2RpZmllZERhdGUoKQogICAgewogICAgICAgIC8vIG9uIGZyb250ZW5kIHJlcXVlc3RzIHRoaXMgd2lsbCBmb3JjZSB0aGUgdGVtcGxhdGUgdG8gYmUgcmVjb21waWxlZAogICAgICAgIC8vIGFuZCB0aGVyZWZvcmUgZXZhbHVhdGlvbiB0byBiZSBkb25lIGZvciBlYWNoIHJlcXVlc3QuCiAgICAgICAgaWYoIGNtc21zKCktPmlzX2Zyb250ZW5kX3JlcXVlc3QoKSApIHJldHVybiB0aW1lKCk7CiAgICAgICAgcmV0dXJuIHBhcmVudDo6R2V0TW9kaWZpZWREYXRlKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFNldFByb3BlcnRpZXMoKQogICAgewogICAgICAgIHBhcmVudDo6U2V0UHJvcGVydGllcygpOwogICAgICAgICR0aGlzLT5SZW1vdmVQcm9wZXJ0eSgnY2FjaGFibGUnLGZhbHNlKTsKICAgICAgICBpZiggdmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCcxLjk4JykgPCAwICkgewogICAgICAgICAgICAkdGhpcy0+QWRkQ29udGVudFByb3BlcnR5KCdfX2ZldV9ncm91cHNfXycsMSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkdGhpcy0+QWRkUHJvcGVydHkoJ19fZmV1X2dyb3Vwc19fJywxLHNlbGY6OlRBQl9GRVUpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSXNQZXJtaXR0ZWQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2lzQXV0aG9yaXplZCgpOwogICAgfQoKICAgIC8vIENNU01TIDEuMTEueCBhbmQgcHJldmlvdXMgb25seQogICAgcHVibGljIGZ1bmN0aW9uIFRhYk5hbWVzKCkKICAgIHsKICAgICAgICAkcmVzID0gcGFyZW50OjpUYWJOYW1lcygpOwogICAgICAgIGlmKCBjaGVja19wZXJtaXNzaW9uKGdldF91c2VyaWQoKSwnTWFuYWdlIEFsbCBDb250ZW50JykgKSB7CiAgICAgICAgICAgICRyZXNbXSA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfRlJPTlRFTkRVU0VSUyktPkxhbmcoJ2Zyb250ZW5kX2FjY2VzcycpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gRWRpdEFzQXJyYXkoJGFkZGluZyA9IGZhbHNlLCAkdGFiID0gMCwgJHNob3dhZG1pbiA9IGZhbHNlKQogICAgewogICAgICAgICRuYW1lcyA9ICR0aGlzLT5UYWJOYW1lcygpOwogICAgICAgICRzdHIgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpLT5MYW5nKCdmcm9udGVuZF9hY2Nlc3MnKTsKICAgICAgICBpZiggIWlzc2V0KCRuYW1lc1skdGFiXSkgfHwgJG5hbWVzWyR0YWJdICE9ICRzdHIgKSByZXR1cm4gcGFyZW50OjpFZGl0QXNBcnJheSgkYWRkaW5nLCR0YWIsJHNob3dhZG1pbik7CgogICAgICAgICRyZXQgPSBhcnJheSgpOwogICAgICAgIC8vIHRoZSBwZXJtaXNzaW9ucyB0YWIuCiAgICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgICRncm91cGxpc3QgPSBhcnJheV9mbGlwKCRmZXUtPkdldEdyb3VwTGlzdCgpKTsKCiAgICAgICAgJHRoaXMtPl9nZXREYXRhKCk7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ2dyb3VwcyddKSApIHsKICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoJywnLCRmZXUtPkdldFByZWZlcmVuY2UoJ3BhZ2V0eXBlX2dyb3VwcycpKTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgJHRoaXMtPl9kYXRhWydncm91cHMnXSA9ICR0bXA7CiAgICAgICAgfQogICAgICAgICRzaXplID0gbWluKGNvdW50KCRncm91cGxpc3QpLDEwKTsKICAgICAgICAkdG1wID0gYXJyYXkoJGZldS0+TGFuZygnZ3JvdXBzJykuJzonKTsKICAgICAgICAkb3B0ID0gJzxzZWxlY3QgbmFtZT0iX19mZXVfZ3JvdXBzX19bXSIgbXVsdGlwbGU9Im11bHRpcGxlIiBzaXplPSInLiRzaXplLiciPic7CiAgICAgICAgZm9yZWFjaCggJGdyb3VwbGlzdCBhcyAkZ2lkID0+ICRnbmFtZSApIHsKICAgICAgICAgICAgJHNlbGVjdGVkID0gJyc7CiAgICAgICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJ2dyb3VwcyddKSAmJiBpbl9hcnJheSgkZ2lkLCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pICkgJHNlbGVjdGVkPSdzZWxlY3RlZD0ic2VsZWN0ZWQiICc7CiAgICAgICAgICAgICRvcHQgLj0gJzxvcHRpb24gJy4kc2VsZWN0ZWQuJ3ZhbHVlPSInLiRnaWQuJyI+Jy4kZ25hbWUuJzwvb3B0aW9uPic7CiAgICAgICAgfQogICAgICAgICRvcHQgLj0gJzwvc2VsZWN0Pjxici8+Jy4kZmV1LT5MYW5nKCdpbmZvX2NvbnRlbnRwYWdlX2dyb3VwbGlzdCcpOwogICAgICAgICR0bXBbXSA9ICRvcHQ7CiAgICAgICAgJHJldFtdID0gJHRtcDsKCiAgICAgICAgcmV0dXJuICRyZXQ7CiAgICB9CgogICAgLy8gQ01TTVMgMi4wCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VGFiTmFtZXMoKQogICAgewogICAgICAgICRvdXQgPSBwYXJlbnQ6OkdldFRhYk5hbWVzKCk7CiAgICAgICAgaWYoICFjaGVja19wZXJtaXNzaW9uKGdldF91c2VyaWQoKSwnTWFuYWdlIEFsbCBDb250ZW50JykgKSB7CiAgICAgICAgICAgIGlmKCBpc3NldCgkb3V0W3NlbGY6OlRBQl9GRVVdKSApIHVuc2V0KCRvdXRbc2VsZjo6VEFCX0ZFVV0pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYoIGlzc2V0KCRvdXRbc2VsZjo6VEFCX0ZFVV0pICkgJG91dFtzZWxmOjpUQUJfRkVVXSA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfRlJPTlRFTkRVU0VSUyktPkxhbmcoJ2Zyb250ZW5kX2FjY2VzcycpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gRmlsbFBhcmFtcygkcGFyYW1zLCRlZGl0aW5nID0gZmFsc2UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9nZXREYXRhKCk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ19fZmV1X2dyb3Vwc19fJ10pICkgewogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJ2dyb3VwcyddID0gJHBhcmFtc1snX19mZXVfZ3JvdXBzX18nXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWydncm91cHMnXSkgKSB7CiAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pOwogICAgICAgIH0KICAgICAgICBwYXJlbnQ6OkZpbGxQYXJhbXMoJHBhcmFtcywkZWRpdGluZyk7CiAgICAgICAgJHRoaXMtPlNldENhY2hhYmxlKGZhbHNlKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gU2hvd0luTWVudSgpCiAgICB7CiAgICAgICAgJHJlcyA9IHBhcmVudDo6U2hvd0luTWVudSgpOwogICAgICAgIGlmKCAhJHJlcyApIHJldHVybiAkcmVzOwogICAgICAgIHJldHVybiAkdGhpcy0+X2lzQXV0aG9yaXplZCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBTYXZlKCkKICAgIHsKICAgICAgICAkdGhpcy0+X3NldERhdGEoKTsKICAgICAgICByZXR1cm4gcGFyZW50OjpTYXZlKCk7CiAgICB9CgogICAgLy8gcG9zc2libGUgZm9yIDEuMTEueCwgcmVxdWlyZWQgZm9yIENNU01TIDIuMAogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGRpc3BsYXlfc2luZ2xlX2VsZW1lbnQoJG9uZSwkYWRkaW5nKQogICAgewogICAgICAgICRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpOwoKICAgICAgICBzd2l0Y2goICRvbmUgKSB7CiAgICAgICAgY2FzZSAnX19mZXVfZ3JvdXBzX18nOgogICAgICAgICAgICBpZiggdmVyc2lvbl9jb21wYXJlKENNU19WRVJTSU9OLCcxLjk4JykgPCAwICkgcmV0dXJuOwoKICAgICAgICAgICAgJHJldCA9IGFycmF5KCk7CiAgICAgICAgICAgIC8vIHRoZSBwZXJtaXNzaW9ucyB0YWIuCiAgICAgICAgICAgICRncm91cGxpc3QgPSBhcnJheV9mbGlwKCRmZXUtPkdldEdyb3VwTGlzdCgpKTsKCiAgICAgICAgICAgICR0aGlzLT5fZ2V0RGF0YSgpOwogICAgICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pICkgewogICAgICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoJywnLCRmZXUtPkdldFByZWZlcmVuY2UoJ3BhZ2V0eXBlX2dyb3VwcycpKTsKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApICR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10gPSAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRzaXplID0gbWluKGNvdW50KCRncm91cGxpc3QpLDEwKTsKICAgICAgICAgICAgJHRtcCA9IGFycmF5KCRmZXUtPkxhbmcoJ2dyb3VwcycpLic6Jyk7CiAgICAgICAgICAgICRvcHQgPSAnPHNlbGVjdCBuYW1lPSJfX2ZldV9ncm91cHNfX1tdIiBtdWx0aXBsZT0ibXVsdGlwbGUiIHNpemU9IicuJHNpemUuJyI+JzsKICAgICAgICAgICAgZm9yZWFjaCggJGdyb3VwbGlzdCBhcyAkZ2lkID0+ICRnbmFtZSApIHsKICAgICAgICAgICAgICAgICRzZWxlY3RlZCA9ICcnOwogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnZ3JvdXBzJ10pICYmIGluX2FycmF5KCRnaWQsJHRoaXMtPl9kYXRhWydncm91cHMnXSkgKSAkc2VsZWN0ZWQ9J3NlbGVjdGVkPSJzZWxlY3RlZCIgJzsKICAgICAgICAgICAgICAgICRvcHQgLj0gJzxvcHRpb24gJy4kc2VsZWN0ZWQuJ3ZhbHVlPSInLiRnaWQuJyI+Jy4kZ25hbWUuJzwvb3B0aW9uPic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG9wdCAuPSAnPC9zZWxlY3Q+PGJyLz4nLiRmZXUtPkxhbmcoJ2luZm9fY29udGVudHBhZ2VfZ3JvdXBsaXN0Jyk7CiAgICAgICAgICAgICR0bXBbXSA9ICRvcHQ7CiAgICAgICAgICAgIHJldHVybiAkdG1wOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gcGFyZW50OjpkaXNwbGF5X3NpbmdsZV9lbGVtZW50KCRvbmUsJGFkZGluZyk7CiAgICAgICAgfQogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_pure_consumer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBmZXVfcHVyZV9jb25zdW1lciBpbXBsZW1lbnRzIGZldV9hdXRoX2NvbnN1bWVyCnsKICBwdWJsaWMgZnVuY3Rpb24gaXNfYXV0aGVudGljYXRlZCgpIHsKICAgIHJldHVybiBGQUxTRTsKICB9CgogIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBoYXNfY2FwYWJpbGl0eSgpCiAgewogICAgJGZsYWcgPSBmdW5jX2dldF9hcmdzKCk7CiAgICBpZiggIWlzX2FycmF5KCRmbGFnKSApICRmbGFnID0gYXJyYXkoJGZsYWcpOwogICAgZm9yZWFjaCggJGZsYWcgYXMgJG9uZSApIHsKICAgICAgaWYoIGluX2FycmF5KCRvbmUsJHRoaXMtPmdldF9jYXBhYmlsaXRpZXMoKSkgKSByZXR1cm4gVFJVRTsKICAgIH0KICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FwYWJpbGl0aWVzKCkKICB7CiAgICByZXR1cm4gYXJyYXkoKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbG9naW5fZGlzcGxheSgkaWQsJHJldHVybmlkLCRwYXJhbXMpCiAgewogICAgcmV0dXJuOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9sb2dvdXRfZGlzcGxheSgkaWQsJHJldHVybmlkLCRwYXJhbXMpCiAgewogICAgcmV0dXJuOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jaGFuZ2VzZXR0aW5nc19kaXNwbGF5KCRpZCwkcmV0dXJuaWQsJHBhcmFtcykKICB7CiAgICByZXR1cm47CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VzZXJfaW5mbygpCiAgewogICAgcmV0dXJuOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9jb25uZWN0aW5nX3Byb3BlcnR5X25hbWUoKQogIHsKICAgIHJldHVybjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdW5pcXVlX2lkZW50aWZpZXIoKQogIHsKICAgIHJldHVybjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3JvdXBfbGlzdCgkd2l0aF9jb3VudCA9IEZBTFNFKQogIHsKICAgIHJldHVybjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3JvdXBfbWVtYmVyc2hpcCgkdXNlcmlkKQogIHsKICAgIHJldHVybjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZGVmYXVsdF9ncm91cHMoKQogIHsKICAgIHJldHVybjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXNlcm5hbWUoJHVpZCA9IG51bGwpCiAgewogICAgcmV0dXJuOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF91c2VybmFtZV9wcm9tcHQoKQogIHsKICAgICRmZXUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgIHJldHVybiAkZmV1LT5MYW5nKCdwcm9tcHRfdXNlcm5hbWUnKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV91c2VybmFtZSgkdXNlcm5hbWUsJGNoZWNrX2VtYWlsX2FkZHIgPSBGQUxTRSwkdWlkID0gLTEpCiAgewogICAgcmV0dXJuIFRSVUU7CiAgfQp9IC8vIGVuZCBvZiBjbGFzcwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_smarty.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBmZXVfc21hcnR5CnsKICAgIHByaXZhdGUgc3RhdGljICRfbW9kdWxlOwogICAgcHJpdmF0ZSBzdGF0aWMgJF9wcm9wZXJ0aWVzOwogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gX2dldF9tb2R1bGUoKQogICAgewogICAgICAgIGlmKCAhc2VsZjo6JF9tb2R1bGUgKSBzZWxmOjokX21vZHVsZSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpOwogICAgICAgIHJldHVybiBzZWxmOjokX21vZHVsZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW50X3VzZXJpZCgpCiAgICB7CiAgICAgICAgJHVpZCA9IHNlbGY6Ol9nZXRfbW9kdWxlKCktPkxvZ2dlZEluSWQoKTsKICAgICAgICByZXR1cm4gJHVpZDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW50X3VzZXJuYW1lKCkKICAgIHsKICAgICAgICByZXR1cm4gc2VsZjo6X2dldF9tb2R1bGUoKS0+TG9nZ2VkSW5OYW1lKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdXNlcmlkKCR1c2VybmFtZSkKICAgIHsKICAgICAgICAkdXNlcm5hbWUgPSB0cmltKCR1c2VybmFtZSk7CiAgICAgICAgaWYoICR1c2VybmFtZSApIHJldHVybiAoaW50KXNlbGY6Ol9nZXRfbW9kdWxlKCktPkdldFVzZXJJRCgkdXNlcm5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3VzZXJuYW1lKCR1aWQgPSBudWxsKQogICAgewogICAgICAgIGlmKCAkdWlkIDwgMSApICR1aWQgPSBzZWxmOjpfZ2V0X21vZHVsZSgpLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgaWYoICR1aWQgPCAxICkgcmV0dXJuOwogICAgICAgICR1aW5mbyA9IHNlbGY6Ol9nZXRfbW9kdWxlKCktPkdldFVzZXJJbmZvKCR1aWQpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJHVpbmZvKSB8fCBjb3VudCgkdWluZm8pID09IDAgfHwgJHVpbmZvWzBdID09IEZBTFNFICkgcmV0dXJuOwogICAgICAgIHJldHVybiAkdWluZm9bMV1bJ3VzZXJuYW1lJ107CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZW1haWwoJHVpZCA9IG51bGwpCiAgICB7CiAgICAgICAgaWYoICR1aWQgPCAxICkgJHVpZCA9IHNlbGY6Ol9nZXRfbW9kdWxlKCktPkxvZ2dlZEluSWQoKTsKICAgICAgICBpZiggJHVpZCA8IDEgKSByZXR1cm47CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfRlJPTlRFTkRVU0VSUyk7CiAgICAgICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykgKSByZXR1cm4gc2VsZjo6Z2V0X3VzZXJuYW1lKCR1aWQpOwogICAgICAgICR0bXAgPSAkbW9kLT5HZXRFbWFpbCgkdWlkKTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF91c2VyaW5mbygkdWlkID0gbnVsbCkKICAgIHsKICAgICAgICBpZiggJHVpZCA8IDEgKSAkdWlkID0gc2VsZjo6X2dldF9tb2R1bGUoKS0+TG9nZ2VkSW5JZCgpOwogICAgICAgIGlmKCAkdWlkIDwgMSApIHJldHVybjsKICAgICAgICAkdWlkID0gKGludCkkdWlkOwogICAgICAgIGlmKCAkdWlkID4gMCApIHsKICAgICAgICAgICAgaWYoIGlzX29iamVjdChzZWxmOjpfZ2V0X21vZHVsZSgpKSApIHsKICAgICAgICAgICAgICAgICR1aW5mbyA9IHNlbGY6Ol9nZXRfbW9kdWxlKCktPkdldFVzZXJJbmZvKCR1aWQsVFJVRSk7CiAgICAgICAgICAgICAgICBpZiggIWlzX2FycmF5KCR1aW5mbykgfHwgY291bnQoJHVpbmZvKSA9PSAwICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAkdWluZm9bMF0gPT0gRkFMU0UgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHVpbmZvWzFdWydmcHJvcHMnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICR1aW5mb1sxXVsnZnByb3BzJ10gYXMgJG9uZXByb3AgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRtcFskb25lcHJvcFsndGl0bGUnXV0gPSAkb25lcHJvcFsnZGF0YSddOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0KCR1aW5mb1sxXVsnZnByb3BzJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHVpbmZvWzFdWydwcm9wcyddID0gJHRtcDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHVpbmZvWzFdOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3VzZXJzX2J5X2dyb3VwbmFtZSgkZ3JvdXBuYW1lLCRmb3JfbGlzdCA9IEZBTFNFKQogICAgewogICAgICAgIGlmKCAhZW1wdHkoJGdyb3VwbmFtZSkgKSB7CiAgICAgICAgICAgIGlmKCBpc19vYmplY3Qoc2VsZjo6X2dldF9tb2R1bGUoKSkgKSB7CgogICAgICAgICAgICAgICAgJGdpZCA9IHNlbGY6Ol9nZXRfbW9kdWxlKCktPkdldEdyb3VwSUQoJGdyb3VwbmFtZSk7CiAgICAgICAgICAgICAgICBpZiggJGdpZCApIHsKICAgICAgICAgICAgICAgICAgICAkdXNlcnNmdWxsID0gc2VsZjo6X2dldF9tb2R1bGUoKS0+R2V0VXNlcnNJbkdyb3VwKCRnaWQpOwoKICAgICAgICAgICAgICAgICAgICAkdXNlcnMgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICR1c2Vyc2Z1bGwgYXMgJG9uZXVzZXIgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkZm9yX2xpc3QgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXNlcnNbJG9uZXVzZXJbJ2lkJ11dID0gJG9uZXVzZXJbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdXNlcnNbXSA9IGFycmF5KCdpZCc9PiRvbmV1c2VyWydpZCddLCd1c2VybmFtZSc9PiRvbmV1c2VyWyd1c2VybmFtZSddKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHVzZXJzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2dyb3VwX21lbWJlcmxpc3QoJGdpZCkKICAgIHsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICAgICAkdXNlcnNmdWxsID0gJG1vZC0+R2V0VXNlcnNJbkdyb3VwKCRnaWQpOwogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICR1c2Vyc2Z1bGwgYXMgJG9uZXVzZXIgKSB7CiAgICAgICAgICAgICRvdXRbJG9uZXVzZXJbJ2lkJ11dID0gJG9uZXVzZXJbJ3VzZXJuYW1lJ107CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3VzZXJfZXhwaXJ5KCR1aWQgPSBudWxsKQogICAgewogICAgICAgIGlmKCAkdWlkIDwgMSApICR1aWQgPSBzZWxmOjpfZ2V0X21vZHVsZSgpLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgaWYoICR1aWQgPCAxICkgcmV0dXJuOwoKICAgICAgICAkcmVzID0gbnVsbDsKICAgICAgICAkcmVzID0gc2VsZjo6X2dldF9tb2R1bGUoKS0+R2V0RXhwaXJ5RGF0ZSgkdWlkKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHVzZXJfZXhwaXJlZCgkdWlkKQogICAgewogICAgICAgIGlmKCBlbXB0eSgkdWlkKSApIHJldHVybjsKICAgICAgICBpZiggIWlzX29iamVjdChzZWxmOjpfZ2V0X21vZHVsZSgpKSApIHJldHVybjsKCiAgICAgICAgJHJlcyA9IHNlbGY6Ol9nZXRfbW9kdWxlKCktPklzQWNjb3VudEV4cGlyZWQoJHVpZCk7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdXNlcl9wcm9wZXJ0aWVzKCR1aWQgPSBudWxsKQogICAgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmKCAkdWlkIDwgMSApICR1aWQgPSBzZWxmOjpfZ2V0X21vZHVsZSgpLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgICAgIGlmKCAkdWlkIDwgMSApIHRocm93IG5ldyBFeGNlcHRpb24oJ2EnKTsKCiAgICAgICAgICAgICRyZXMgPSBzZWxmOjpfZ2V0X21vZHVsZSgpLT5HZXRVc2VyUHJvcGVydGllcygkdWlkKTsKICAgICAgICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignZCcpOwoKICAgICAgICAgICAgJHJlczIgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkcmVzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkcmVzMlskb25lWyd0aXRsZSddXSA9ICRvbmVbJ2RhdGEnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJHJlczI7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3VzZXJfcHJvcGVydHkoJHByb3BlcnR5LCR1aWQgPSBudWxsKQogICAgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRwcm9wZXJ0eSA9IHRyaW0oJHByb3BlcnR5KTsKICAgICAgICAgICAgaWYoICEkcHJvcGVydHkgKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbignMCcpOwogICAgICAgICAgICBpZiggJHVpZCA8IDEgKSAkdWlkID0gc2VsZjo6X2dldF9tb2R1bGUoKS0+TG9nZ2VkSW5JZCgpOwogICAgICAgICAgICBpZiggJHVpZCA8IDEgKSB0aHJvdyBuZXcgXEV4Y2VwdGlvbignYScpOwoKICAgICAgICAgICAgJHRtcCA9IHNlbGY6OmdldF91c2VyX3Byb3BlcnRpZXMoJHVpZCk7CiAgICAgICAgICAgIGlmKCBpc3NldCgkdG1wWyRwcm9wZXJ0eV0pICkgcmV0dXJuICR0bXBbJHByb3BlcnR5XTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2Ryb3Bkb3duX3RleHQoJHByb3BuYW1lLCRwcm9wdmFsdWUpCiAgICB7CiAgICAgICAgJHJlcyA9IG51bGw7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmKCAhaXNfb2JqZWN0KHNlbGY6Ol9nZXRfbW9kdWxlKCkpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignYScpOwogICAgICAgICAgICBpZiggc2VsZjo6JF9wcm9wZXJ0aWVzID09IG51bGwgKSB7CiAgICAgICAgICAgICAgICBzZWxmOjokX3Byb3BlcnRpZXMgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgJHRtcCA9IHNlbGY6Ol9nZXRfbW9kdWxlKCktPkdldFByb3BlcnR5RGVmbnMoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICBpZiggJG9uZVsndHlwZSddID09IDQgfHwgJG9uZVsndHlwZSddID09IDUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXAyID0gc2VsZjo6X2dldF9tb2R1bGUoKS0+R2V0U2VsZWN0T3B0aW9ucygkb25lWyduYW1lJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAkb25lWydvcHRpb25zJ10gPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdG1wMiBhcyAkayA9PiAkdiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvbmVbJ29wdGlvbnMnXVskdl0gPSAkazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzZWxmOjokX3Byb3BlcnRpZXNbJG9uZVsnbmFtZSddXSA9ICRvbmU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCAhaXNzZXQoc2VsZjo6JF9wcm9wZXJ0aWVzWyRwcm9wbmFtZV0pICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignYicpOwoKICAgICAgICAgICAgaWYoIChzZWxmOjokX3Byb3BlcnRpZXNbJHByb3BuYW1lXVsndHlwZSddICE9IDQgJiYgc2VsZjo6JF9wcm9wZXJ0aWVzWyRwcm9wbmFtZV1bJ3R5cGUnXSAhPSA1KSB8fAogICAgICAgICAgICAgICAgIWlzc2V0KHNlbGY6OiRfcHJvcGVydGllc1skcHJvcG5hbWVdWydvcHRpb25zJ10pICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignYycpOwoKICAgICAgICAgICAgaWYoICFpc3NldChzZWxmOjokX3Byb3BlcnRpZXNbJHByb3BuYW1lXVsnb3B0aW9ucyddWyRwcm9wdmFsdWVdKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ2QnKTsKCiAgICAgICAgICAgICRyZXMgPSBzZWxmOjokX3Byb3BlcnRpZXNbJHByb3BuYW1lXVsnb3B0aW9ucyddWyRwcm9wdmFsdWVdOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9tdWx0aXNlbGVjdF90ZXh0KCRwcm9wbmFtZSwkcHJvcHZhbHVlKQogICAgewogICAgICAgICR2YWx1ZXMgPSBleHBsb2RlKCcsJywkcHJvcHZhbHVlKTsKICAgICAgICAkcmVzID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkdmFsdWVzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRyZXNbXSA9IHNlbGY6OmdldF9kcm9wZG93bl90ZXh0KCRwcm9wbmFtZSwkb25lKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZ3JvdXBfbGlzdCgpCiAgICB7CiAgICAgICAgJGxpc3QgPSBhcnJheV9mbGlwKHNlbGY6Ol9nZXRfbW9kdWxlKCktPkdldEdyb3VwTGlzdCgpKTsKICAgICAgICByZXR1cm4gJGxpc3Q7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdXNlcl9ncm91cHMoJHVpZD1udWxsKQogICAgewogICAgICAgIGlmKCAkdWlkIDwgMSApICR1aWQgPSBzZWxmOjpfZ2V0X21vZHVsZSgpLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgaWYoICR1aWQgPCAxICkgcmV0dXJuOwoKICAgICAgICAkZ3JvdXBzID0gc2VsZjo6X2dldF9tb2R1bGUoKS0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoICR1aWQgKTsKICAgICAgICAkZ25zID0gYXJyYXkoKTsKICAgICAgICAkZ2lkcyA9IGFycmF5KCk7CiAgICAgICAgaWYoICRncm91cHMgIT09IGZhbHNlICkgewogICAgICAgICAgICBmb3JlYWNoKCAkZ3JvdXBzIGFzICRnaWQgKSB7CiAgICAgICAgICAgICAgICAkZ2lkc1tdID0gJGdpZFsnZ3JvdXBpZCddOwogICAgICAgICAgICAgICAgJGduc1skZ2lkWydncm91cGlkJ11dID0gc2VsZjo6X2dldF9tb2R1bGUoKS0+R2V0R3JvdXBOYW1lKCRnaWRbJ2dyb3VwaWQnXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRnbnM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc191c2VyX21lbWJlcm9mKCRncm91cHMsJHVpZD1udWxsKQogICAgewogICAgICAgIGlmKCAkdWlkIDwgMSApICR1aWQgPSBzZWxmOjpfZ2V0X21vZHVsZSgpLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgaWYoICR1aWQgPCAxICkgcmV0dXJuOwoKICAgICAgICBpZiggIWlzX2FycmF5KCRncm91cHMpICkgJGdyb3VwcyA9IGV4cGxvZGUoJywnLCRncm91cHMpOwogICAgICAgICR0bXAgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICRncm91cHMgYXMgJGdycCApIHsKICAgICAgICAgICAgJGdycCA9IHRyaW0oJGdycCk7CiAgICAgICAgICAgIGlmKCAhJGdycCApIGNvbnRpbnVlOwogICAgICAgICAgICAkdG1wW10gPSAkZ3JwOwogICAgICAgIH0KICAgICAgICBpZiggIWNvdW50KCR0bXApICkgcmV0dXJuOwoKICAgICAgICAkZ3JvdXBzID0gc2VsZjo6Z2V0X3VzZXJfZ3JvdXBzKCR1aWQpOwogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgaWYoIGluX2FycmF5KCRvbmUsJGdyb3VwcykgKSByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwcmVsb2FkX3VzZXJzKCR1aWRfbGlzdCwkZGVlcCA9IEZBTFNFKQogICAgewogICAgICAgIGZldV91c2VyX2NhY2hlOjpsb2FkX3VzZXJzKCR1aWRfbGlzdCwkZGVlcCk7CiAgICB9Cn0KCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_smarty_plugins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNiBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBmZXVfc21hcnR5X3BsdWdpbnMKewogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmZXVfcHJvdGVjdCgkcGFyYW1zLCRjb250ZW50LCYkc21hcnR5LCRyZXBlYXQpCiAgICB7CiAgICAgICAgaWYoICEkY29udGVudCApIHJldHVybjsKCiAgICAgICAgJGZldSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpOwogICAgICAgIGlmKCAhKCR1aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCkpICkgcmV0dXJuOwoKICAgICAgICAkZ3JvdXBzID0gbnVsbDsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snZ3JvdXAnXSkgKSB7CiAgICAgICAgICAgICRncm91cHMgPSBleHBsb2RlKCcsJywkcGFyYW1zWydncm91cCddKTsKICAgICAgICAgICAgZm9yZWFjaCggJGdyb3VwcyBhcyAmJGdycCApIHsKICAgICAgICAgICAgICAgICRncnAgPSB0cmltKCRncnApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2dyb3VwcyddKSApIHsKICAgICAgICAgICAgJGdyb3VwcyA9IGV4cGxvZGUoJywnLCRwYXJhbXNbJ2dyb3VwcyddKTsKICAgICAgICAgICAgZm9yZWFjaCggJGdyb3VwcyBhcyAmJGdycCApIHsKICAgICAgICAgICAgICAgICRncnAgPSB0cmltKCRncnApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggIWlzX2FycmF5KCRncm91cHMpIHx8IGNvdW50KCRncm91cHMpID09IDAgKSB7CiAgICAgICAgICAgIC8vIGVtcHR5IGdyb3VwcyBhcnJheSBzcGVjaWZpZWQuCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIC8vIGNvbnZlcnQgZ3JvdXAgbmFtZXMgdG8gaWRzCiAgICAgICAgJGdyb3VwbGlzdCA9ICRmZXUtPkdldEdyb3VwTGlzdCgpOwogICAgICAgICRnaWRzID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCRncm91cHMgYXMgJG5hbWUpIHsKICAgICAgICAgICAgaWYoIChpbnQpJG5hbWUgPiAwICkgewogICAgICAgICAgICAgICAgJGdpZHNbXSA9IChpbnQpJG5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggaXNzZXQoJGdyb3VwbGlzdFskbmFtZV0pICkgewogICAgICAgICAgICAgICAgJGdpZHNbXSA9ICRncm91cGxpc3RbJG5hbWVdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCAhY291bnQoJGdpZHMpICkgcmV0dXJuOwoKICAgICAgICAkbWVtYmVyZ3JvdXBzID0gJGZldS0+R2V0TWVtYmVyR3JvdXBzQXJyYXkoJHVpZCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkbWVtYmVyZ3JvdXBzKSB8fCBjb3VudCgkZ3JvdXBzKSA9PSAwICkgewogICAgICAgICAgICAvLyBncm91cHMgc3BlY2lmaWVkLCBidXQgdXNlciBpcyBub3QgYSBtZW1iZXIgb2YgYW55IGdyb3Vwcy4KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gRklOQUwgdGVzdCwgaWYgdGhlIHVzZXIgaXMgYSBtZW1iZXIgb2YgYW55IG9mIHRoZXNlIGdyb3Vwcywgb3V0cHV0IHRoZSBjb250ZW50LgogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRtZW1iZXJncm91cHMpOyAkaSsrICkgewogICAgICAgICAgICAkZ2lkID0gJG1lbWJlcmdyb3Vwc1skaV1bJ2dyb3VwaWQnXTsKICAgICAgICAgICAgaWYoIGluX2FycmF5KCRnaWQsJGdpZHMpICkgcmV0dXJuICRjb250ZW50OwogICAgICAgIH0KCiAgICAgICAgLy8gdXNlciBpcyBub3QgYSBtZW1iZXIgb2YgYW55IG9mIHRoZSBzcGVjaWZpZWQgZ3JvdXBzLgogICAgfQp9IC8vIGVuZCBvZiBjbGFzcwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_std_consumer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBmZXVfc3RkX2NvbnN1bWVyIGV4dGVuZHMgZmV1X3B1cmVfY29uc3VtZXIKewogICAgcHVibGljIGZ1bmN0aW9uIGlzX2F1dGhlbnRpY2F0ZWQoKQogICAgewogICAgICAgICRyZXMgPSAkdGhpcy0+Z2V0X3VuaXF1ZV9pZGVudGlmaWVyKCk7CiAgICAgICAgaWYoICRyZXMgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXBhYmlsaXRpZXMoKQogICAgewogICAgICAgICRyZXMgPSBhcnJheSgpOwogICAgICAgICRyZXNbXSA9IHNlbGY6OkNBUEFCSUxJVFlfVVNFU1REQ0hBTkdFU0VUVElOR1M7CiAgICAgICAgJHJlc1tdID0gc2VsZjo6Q0FQQUJJTElUWV9DSEFOR0VQQVNTV0Q7CiAgICAgICAgJHJlc1tdID0gc2VsZjo6Q0FQQUJJTElUWV9MSVNUR1JPVVBTOwogICAgICAgICRyZXNbXSA9IHNlbGY6OkNBUEFCSUxJVFlfRURJVEdST1VQUzsKICAgICAgICAkcmVzW10gPSBzZWxmOjpDQVBBQklMSVRZX0VESVRHUk9VUFBST1BTOwogICAgICAgICRyZXNbXSA9IHNlbGY6OkNBUEFCSUxJVFlfTElTVFBST1BTOwogICAgICAgICRyZXNbXSA9IHNlbGY6OkNBUEFCSUxJVFlfRURJVFBST1BTOwogICAgICAgICRyZXNbXSA9IHNlbGY6OkNBUEFCSUxJVFlfTElTVEdST1VQUzsKICAgICAgICAkcmVzW10gPSBzZWxmOjpDQVBBQklMSVRZX0dST1VQTUVNQkVSU0hJUDsKICAgICAgICAkcmVzW10gPSBzZWxmOjpDQVBBQklMSVRZX0RFRkFVTFRHUk9VUFM7CiAgICAgICAgJHJlc1tdID0gc2VsZjo6Q0FQQUJJTElUWV9VU0VSTkFNRTsKICAgICAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfY2hhbmdldXNlcm5hbWUnKSApICRyZXNbXSA9IHNlbGY6OkNBUEFCSUxJVFlfQ0hBTkdFVVNFUk5BTUU7CgogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbG9naW5fZGlzcGxheSgkaWQsJHJldHVybmlkLCRwYXJhbXMpCiAgICB7CiAgICAgICAgLy8gdG9kbwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xvZ291dF9kaXNwbGF5KCRpZCwkcmV0dXJuaWQsJHBhcmFtcykKICAgIHsKICAgICAgICAvLyB0b2RvCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2hhbmdlc2V0dGluZ3NfZGlzcGxheSgkaWQsJHJldHVybmlkLCRwYXJhbXMpCiAgICB7CiAgICAgICAgLy8gdG9kbwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VzZXJfaW5mbygpCiAgICB7CiAgICAgICAgLy8gdG9kbwogICAgICAgIHN0YWNrX3RyYWNlKCk7CiAgICAgICAgZGllKCdub3QgaW1wbGVtZW50ZWQnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VuaXF1ZV9pZGVudGlmaWVyKCkKICAgIHsKICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICAgICAkbWFuaXAgPSAkbW9kdWxlLT5HZXRNYW5pcHVsYXRvcigpOwogICAgICAgIHJldHVybiAkbWFuaXAtPl9zdGRfTG9nZ2VkaW5JZCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3JvdXBfbGlzdCgkd2l0aF9jb3VudCA9IEZBTFNFKQogICAgewogICAgICAgIC8vIHRoaXMgbWV0aG9kIGRvZXNuJ3QgZXhhY3RseSBsaXN0ZW4gdG8gdGhlIGRvY3MuCiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBzJzsKICAgICAgICBpZiggJHdpdGhfY291bnQgKSB7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgZy4qLGNvdW50KGIudXNlcmlkKSBBUyBjb3VudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19ncm91cHMgZwogICAgICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIGIKICAgICAgICAgICAgICAgIE9OIGcuaWQgPSBiLmdyb3VwaWQKICAgICAgICAgICAgICAgIEdST1VQIEJZIGcuaWQnOwogICAgICAgIH0KICAgICAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgIGlmKCBpc19hcnJheSgkZGJyKSAmJiBjb3VudCgkZGJyKSApIHsKICAgICAgICAgICAgJHRtcCA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICRkYnIgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICR0bXBbJG9uZVsnaWQnXV0gPSAkb25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkdG1wOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGRicjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2dyb3VwX21lbWJlcnNoaXAoJHVzZXJpZCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxID0gIlNFTEVDVCBncm91cGlkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2JlbG9uZ3MgV0hFUkUgdXNlcmlkPT8iOwogICAgICAgICRkYnIgPSAkZGItPkdldENvbCgkcSxhcnJheSgkdXNlcmlkKSk7CiAgICAgICAgcmV0dXJuICRkYnI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kZWZhdWx0X2dyb3VwcygpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfRlJPTlRFTkRVU0VSUyk7CiAgICAgICAgJHRtcCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfZ3JvdXAnKTsKICAgICAgICBpZiggKGludCkkdG1wID4gMCApIHJldHVybiBhcnJheSgkdG1wKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VzZXJuYW1lKCRpZGVudGlmaWVyID0gbnVsbCkKICAgIHsKICAgICAgICBpZiggISRpZGVudGlmaWVyICkgJGlkZW50aWZpZXIgPSAkdGhpcy0+Z2V0X3VuaXF1ZV9pZGVudGlmaWVyKCk7CiAgICAgICAgJHJvdyA9IGZldV91c2VyX2NhY2hlOjpnZXRfdXNlcigkaWRlbnRpZmllcik7CiAgICAgICAgaWYoICEkcm93ICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiAkcm93Wyd1c2VybmFtZSddOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXNlcm5hbWVfcHJvbXB0KCkKICAgIHsKICAgICAgICAkZmV1ID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICAgICBpZiggJGZldS0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSApIHJldHVybiAkZmV1LT5MYW5nKCdwcm9tcHRfZW1haWwnKTsKICAgICAgICByZXR1cm4gJGZldS0+TGFuZygncHJvbXB0X3VzZXJuYW1lJyk7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV91c2VybmFtZSgkdXNlcm5hbWUsJGNoZWNrX2VtYWlsX2FkZHIgPSBGQUxTRSwkdWlkID0gLTEpCiAgICB7CiAgICAgICAgLy8gYSB1c2VybmFtZSBpcyB2YWxpZCwgaWYgaXQncyBsZW5ndGggaXMKICAgICAgICAvLyB3aXRoaW4gY2VydGFpbiByYW5nZXMsIGFuZCBpdCBjb250YWlucwogICAgICAgIC8vIG9ubHkgYWxwaGFudW1lcmljcwogICAgICAgICRtb2R1bGUgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpOwogICAgICAgICRtaW5sZW4gPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdtaW5fdXNlcm5hbWVsZW5ndGgnLCA0ICk7CiAgICAgICAgJG1heGxlbiA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ21heF91c2VybmFtZWxlbmd0aCcsIDIwICk7CiAgICAgICAgaWYoIHN0cmxlbiggJHVzZXJuYW1lICkgPCAkbWlubGVuIHx8IHN0cmxlbiggJHVzZXJuYW1lICkgPiAkbWF4bGVuICkgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmICgkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcpKSB7CiAgICAgICAgICAgICR0ZXN0ID0gJG1vZHVsZS0+SXNWYWxpZEVtYWlsQWRkcmVzcygkdXNlcm5hbWUsJHVpZCwkY2hlY2tfZW1haWxfYWRkcik7CiAgICAgICAgICAgIGlmICgkdGVzdFswXSA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggIXByZWdfbWF0Y2goICcvXlthLXpBLVowLTlcX1wtXHNcLl0qJC8nLCAkdXNlcm5hbWUgKSApIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_user_cache.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgovKioKICogdGhpcyBpcyBhbiBpbnRlcm5hbCBjbGFzcyAuLi5kbyBubyB1c2UKICovCgpmaW5hbCBjbGFzcyBmZXVfdXNlcl9jYWNoZQp7CiAgcHJpdmF0ZSBzdGF0aWMgJF91c2VycyA9IGFycmF5KCk7CiAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CgogIC8qKgogICAqIEdldCB1c2VyIGluZm9ybWF0aW9uIGZvciBhIHVpZAogICAqIHdpbGwgcmV0dXJuIGRlZXAgaW5mb3JtYXRpb24gaWYgYWxyZWR5IGxvYWRlZAogICAqIHdpbGwgbm90IGxvYWQgYW55IGluZm8KICAgKiovCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfdXNlcl9ub2xvYWQoJHVpZCkKICB7CiAgICAkdWlkID0gKGludCkkdWlkOwogICAgaWYoICR1aWQgPD0gMCApIHJldHVybjsKICAgIGlmKCAhaXNzZXQoc2VsZjo6JF91c2Vyc1skdWlkXSkgKSByZXR1cm47CgogICAgcmV0dXJuIHNlbGY6OiRfdXNlcnNbJHVpZF07CiAgfQoKICAvKioKICAgKiBHZXQgdXNlciBpbmZvcm1hdGlvbiBmb3IgYSB1aWQKICAgKiB3aWxsIHJldHVybiBkZWVwIGluZm8gaWYgaXQgaXMgYWxyZWFkeSBsb2FkZWQsIGV2ZW4gaWYgJGRlZXAgPSBGQUxTRQogICAqIHdpbGwgbG9hZCB0aGUgdXNlciBpZiBub3QgaW4gbWVtb3J5CiAgICoqLwogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3VzZXIoJHVpZCwkZGVlcCA9IEZBTFNFKQogIHsKICAgICR1aWQgPSAoaW50KSR1aWQ7CiAgICBpZiggJHVpZCA8PSAwICkgcmV0dXJuOwogICAgaWYoICFpc3NldChzZWxmOjokX3VzZXJzWyR1aWRdKSB8fCAoJGRlZXAgJiYgIWlzc2V0KHNlbGY6OiRfdXNlcnNbJHVpZF1bJ2Zwcm9wcyddKSkgKSB7CiAgICAgIHNlbGY6OmxvYWRfdXNlcnMoYXJyYXkoJHVpZCksJGRlZXApOwogICAgfQogICAgcmV0dXJuIHNlbGY6OmdldF91c2VyX25vbG9hZCgkdWlkKTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0X3VzZXIoJHVpbmZvKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHVpbmZvKSApIHJldHVybiBGQUxTRTsKICAgIGlmKCAhaXNzZXQoJHVpbmZvWydpZCddKSApIHJldHVybiBGQUxTRTsKICAgICR1aWQgPSAoaW50KSR1aW5mb1snaWQnXTsKICAgIGlmKCAkdWlkIDw9IDAgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggIWlzc2V0KCR1aW5mb1sndXNlcm5hbWUnXSkgKSByZXR1cm4gRkFMU0U7CgogICAgc2VsZjo6JF91c2Vyc1skdWlkXSA9ICR1aW5mbzsKICAgIHJldHVybiBUUlVFOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXRfbmV3X3VzZXIoJHVpbmZvKQogIHsKICAgIGlmKCAhaXNfYXJyYXkoJHVpbmZvKSApIHJldHVybiBGQUxTRTsKICAgIGlmKCAhaXNzZXQoJHVpbmZvWydpZCddKSApIHJldHVybiBGQUxTRTsKICAgICR1aWQgPSAoaW50KSR1aW5mb1snaWQnXTsKICAgIGlmKCAkdWlkIDw9IDAgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggIWlzc2V0KCR1aW5mb1sndXNlcm5hbWUnXSkgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggaXNzZXQoc2VsZjo6JF91c2Vyc1skdWlkXSkgKSByZXR1cm4gRkFMU0U7CgogICAgc2VsZjo6JF91c2Vyc1skdWluZm9bJ2lkJ11dID0gJHVpbmZvOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGRlbF91c2VyKCR1aWQpCiAgewogICAgJHVpZCA9IChpbnQpJHVpZDsKICAgIGlmKCAkdWlkIDw9IDAgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggIWlzc2V0KHNlbGY6OiRfdXNlcnNbJHVpZF0pICkgcmV0dXJuIEZBTFNFOwoKICAgIHVuc2V0KHNlbGY6OiRfdXNlcnNbJHVpZF0pOwogICAgcmV0dXJuIFRSVUU7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNsZWFyX2FsbCgpCiAgewogICAgc2VsZjo6JF91c2VycyA9IGFycmF5KCk7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWRfdXNlcnMoJHVpZF9saXN0LCRkZWVwID0gRkFMU0UpCiAgewogICAgICBpZiggIWlzX2FycmF5KCR1aWRfbGlzdCkgfHwgY291bnQoJHVpZF9saXN0KSA9PSAwICkgcmV0dXJuOwoKICAgICAgJG5lZWQgPSBhcnJheSgpOwogICAgICAkbmVlZF9wcm9wcyA9IGFycmF5KCk7CiAgICAgIGZvcmVhY2goICR1aWRfbGlzdCBhcyAkb25lICkgewogICAgICAgICAgJG9uZSA9IChpbnQpJG9uZTsKICAgICAgICAgIGlmKCAkb25lIDw9IDAgKSBjb250aW51ZTsKCiAgICAgICAgICBpZiggIWlzc2V0KHNlbGY6OiRfdXNlcnNbJG9uZV0pICkgJG5lZWRbXSA9ICRvbmU7CiAgICAgICAgICBpZiggIWlzc2V0KHNlbGY6OiRfdXNlcnNbJG9uZV1bJ2Zwcm9wcyddKSApICRuZWVkX3Byb3BzW10gPSAkb25lOwogICAgICB9CgogICAgICAkbmVlZCA9IGFycmF5X3VuaXF1ZSgkbmVlZCk7CiAgICAgICRuZWVkX3Byb3BzID0gYXJyYXlfdW5pcXVlKCRuZWVkX3Byb3BzKTsKICAgICAgYXNvcnQoJG5lZWQpOwogICAgICBhc29ydCgkbmVlZF9wcm9wcyk7CgogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICBpZiggY291bnQoJG5lZWQpICkgewogICAgICAgICAgLy8gZ2V0IHRoZSB1c2VyIGluZm8KICAgICAgICAgICR1cXVlcnkgPSAnU0VMRUNUIHUuKixjb3VudChsaS51c2VyaWQpIEFTIGxvZ2dlZGluIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIHUKICAgICAgICAgICAgICAgICBMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2xvZ2dlZGluIGxpIE9OIHUuaWQgPSBsaS51c2VyaWQKICAgICAgICAgICAgICAgICBXSEVSRSB1LmlkIElOICgnOwogICAgICAgICAgJHVxdWVyeSAuPSBpbXBsb2RlKCcsJywkbmVlZCkuJykgR1JPVVAgQlkgdS5pZCBPUkRFUiBCWSB1LmlkJzsKICAgICAgICAgICR1aW5mbyA9ICRkYi0+R2V0QXJyYXkoJHVxdWVyeSk7CiAgICAgICAgICBmb3JlYWNoKCR1aW5mbyBhcyAkcmVjKSB7CiAgICAgICAgICAgICAgdW5zZXQoJHJlY1sncGFzc3dvcmQnXSk7CiAgICAgICAgICAgICAgdW5zZXQoJHJlY1snc2FsdCddKTsKICAgICAgICAgICAgICBzZWxmOjokX3VzZXJzWyRyZWNbJ2lkJ11dID0gJHJlYzsKICAgICAgICAgIH0KICAgICAgfQoKICAgIGlmKCAkZGVlcCAmJiBjb3VudCgkbmVlZF9wcm9wcykgKSB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgICRkZWZucyA9ICRtb2QtPkdldFByb3BlcnR5RGVmbnMoKTsKCiAgICAgICAgJHBxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzIFdIRVJFIHVzZXJpZCBJTiAoJzsKICAgICAgICAkcHF1ZXJ5IC49IGltcGxvZGUoJywnLCRuZWVkX3Byb3BzKS4nKSBPUkRFUiBCWSB1c2VyaWQsdGl0bGUnOwogICAgICAgICRwaW5mbyA9ICRkYi0+R2V0QXJyYXkoJHBxdWVyeSk7CgogICAgICAgICRwcmV2X3VpZCA9IG51bGw7CiAgICAgICAgJGZwcm9wcyA9IG51bGw7CiAgICAgICAgZm9yZWFjaCgkcGluZm8gYXMgJHJlYykgewogICAgICAgICAgICBpZiggY291bnQoJGZwcm9wcykgJiYgJHJlY1sndXNlcmlkJ10gIT0gJHByZXZfdWlkICYmICRwcmV2X3VpZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAkdHVpZCA9ICRmcHJvcHNbMF1bJ3VzZXJpZCddOwogICAgICAgICAgICAgICAgaWYoICFpc3NldChzZWxmOjokX3VzZXJzWyR0dWlkXSkgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdMb2FkZWQgcHJvcGVydGllcyBmb3IgdXNlciwgYnV0IG5vIHVzZXIgbG9hZGVkJyk7CiAgICAgICAgICAgICAgICBzZWxmOjokX3VzZXJzWyR0dWlkXVsnZnByb3BzJ10gPSAkZnByb3BzOwogICAgICAgICAgICAgICAgJGZwcm9wcyA9IGFycmF5KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRkZWZuc1skcmVjWyd0aXRsZSddXVsnZW5jcnlwdCddICkgewogICAgICAgICAgICAgICAgJHJlY1snZGF0YSddID0gJG1vZC0+RGVjcnlwdFVzZXJEYXRhKCRyZWNbJ3VzZXJpZCddLCRyZWNbJ2RhdGEnXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGZwcm9wc1tdID0gJHJlYzsKICAgICAgICAgICAgJHByZXZfdWlkID0gJHJlY1sndXNlcmlkJ107CiAgICAgICAgfQogICAgICAgIGlmKCBjb3VudCgkZnByb3BzKSApIHsKICAgICAgICAgICAgJHR1aWQgPSAkZnByb3BzWzBdWyd1c2VyaWQnXTsKICAgICAgICAgICAgaWYoICFpc3NldChzZWxmOjokX3VzZXJzWyR0dWlkXSkgKSB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdMb2FkZWQgcHJvcGVydGllcyBmb3IgdXNlciwgYnV0IG5vIHVzZXIgbG9hZGVkJyk7CiAgICAgICAgICAgIHNlbGY6OiRfdXNlcnNbJHR1aWRdWydmcHJvcHMnXSA9ICRmcHJvcHM7CiAgICAgICAgfQogICAgfQogIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_user_query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBmZXVfdXNlcl9xdWVyeV9vcHQKewogIGNvbnN0IE1BVENIX1VTRVJOQU1FICAgID0gJyp1c2VybmFtZSonOwogIGNvbnN0IE1BVENIX1VTRVJOQU1FX1JFID0gJyp1c2VybmFtZS1yZSonOwogIGNvbnN0IE1BVENIX1BBU1NXT1JEICAgID0gJypwYXNzd29yZConOwogIGNvbnN0IE1BVENIX0VYUElSRVNfTFQgID0gJypleHBpcmVzLWx0Kic7CiAgY29uc3QgTUFUQ0hfTk9URVhQSVJFRCAgPSAnKm5vdGV4cGlyZWQqJzsKICBjb25zdCBNQVRDSF9HUk9VUCAgICAgICA9ICcqZ3JvdXAqJzsKICBjb25zdCBNQVRDSF9HUk9VUElEICAgICA9ICcqZ2lkKic7CiAgY29uc3QgTUFUQ0hfUFJPUEVSVFkgICAgPSAnKnByb3BlcnR5Kic7CiAgY29uc3QgTUFUQ0hfUFJPUEVSVFlfUkUgPSAnKnByb3BlcnR5LXJlKic7CiAgY29uc3QgTUFUQ0hfVVNFUkxJU1QgICAgPSAnKnVzZXJsaXN0Kic7CiAgY29uc3QgTUFUQ0hfVVNFUk5BTUVMSVNUID0gJyp1c2VybmFtZWxpc3QqJzsKICBjb25zdCBNQVRDSF9MT0dHRURJTiAgICA9ICcqbG9nZ2VkaW4qJzsKICBjb25zdCBNQVRDSF9DUkVBVEVEX0dFICA9ICcqY3JlYXRlZF9nZSonOwogIGNvbnN0IE1BVENIX0NSRUFURURfTFQgID0gJypjcmVhdGVkX2x0Kic7CgogIHByaXZhdGUgJF90eXBlOwogIHByaXZhdGUgJF9leHByOwogIHByaXZhdGUgJF9vcHQ7CgogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdHlwZSwkZXhwciA9IG51bGwsJG9wdCA9IG51bGwpCiAgewogICAgc3dpdGNoKCR0eXBlKSB7CiAgICBjYXNlIHNlbGY6Ok1BVENIX1VTRVJOQU1FOgogICAgY2FzZSBzZWxmOjpNQVRDSF9VU0VSTkFNRV9SRToKICAgIGNhc2Ugc2VsZjo6TUFUQ0hfUEFTU1dPUkQ6CiAgICBjYXNlIHNlbGY6Ok1BVENIX0VYUElSRVNfTFQ6CiAgICBjYXNlIHNlbGY6Ok1BVENIX0NSRUFURURfR0U6CiAgICBjYXNlIHNlbGY6Ok1BVENIX0NSRUFURURfTFQ6CiAgICBjYXNlIHNlbGY6Ok1BVENIX0dST1VQOgogICAgY2FzZSBzZWxmOjpNQVRDSF9HUk9VUElEOgogICAgY2FzZSBzZWxmOjpNQVRDSF9VU0VSTElTVDoKICAgIGNhc2Ugc2VsZjo6TUFUQ0hfVVNFUk5BTUVMSVNUOgogICAgY2FzZSBzZWxmOjpNQVRDSF9MT0dHRURJTjoKICAgICAgICBpZiggZW1wdHkoJGV4cHIpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCB2YWx1ZSBmb3IgZXhwcicpOwogICAgICAgICR0aGlzLT5fdHlwZSA9ICR0eXBlOwogICAgICAgICR0aGlzLT5fZXhwciA9ICRleHByOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2Ugc2VsZjo6TUFUQ0hfTk9URVhQSVJFRDoKICAgICAgICAkdGhpcy0+X3R5cGUgPSAkdHlwZTsKICAgICAgICBicmVhazsKCiAgICBjYXNlIHNlbGY6Ok1BVENIX1BST1BFUlRZX1JFOgogICAgICAgIGlmKCBlbXB0eSgkZXhwcikgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdpbnZhbGlkIHZhbHVlIGZvciBleHByJyk7CiAgICAgICAgaWYoIGVtcHR5KCRvcHQpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCBvcHQgdmFsdWUnKTsKICAgICAgICAkdGhpcy0+X3R5cGUgPSAkdHlwZTsKICAgICAgICAkdGhpcy0+X2V4cHIgPSAkZXhwcjsKICAgICAgICAkdGhpcy0+X29wdCA9ICRvcHQ7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSBzZWxmOjpNQVRDSF9QUk9QRVJUWToKICAgICAgICBpZiggZW1wdHkoJGV4cHIpICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCB2YWx1ZSBmb3IgZXhwcicpOwogICAgICAgICR0aGlzLT5fdHlwZSA9ICR0eXBlOwogICAgICAgICR0aGlzLT5fZXhwciA9ICRleHByOwogICAgICAgICR0aGlzLT5fb3B0ID0gJG9wdDsKICAgICAgICBicmVhazsKCiAgICBkZWZhdWx0OgogICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ2ludmFsaWQgdmFsdWUnKTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHlwZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fdHlwZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZXhwcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5fZXhwcjsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9vcHQ7CiAgfQp9IC8vIGNsYXNzCgoKY2xhc3MgZmV1X3VzZXJfcXVlcnkKewogIGNvbnN0IFJFU1VMVF9UWVBFX0lEID0gJyppZConOwogIGNvbnN0IFJFU1VMVF9UWVBFX0xJU1QgPSAnKmxpc3QqJzsKICBjb25zdCBSRVNVTFRfVFlQRV9GVUxMID0gJypmdWxsKic7CiAgY29uc3QgUkVTVUxUX1NPUlRPUkRFUl9BU0MgPSAnKmFzYyonOwogIGNvbnN0IFJFU1VMVF9TT1JUT1JERVJfREVTQyA9ICcqZGVzYyonOwogIGNvbnN0IFJFU1VMVF9TT1JUQllfVVNFUk5BTUUgPSAnKnVzZXJuYW1lKic7CiAgY29uc3QgUkVTVUxUX1NPUlRCWV9DUkVBVEVEID0gJypjcmVhdGVkYXRlKic7CiAgY29uc3QgUkVTVUxUX1NPUlRCWV9FWFBJUkVTID0gJypleHBpcmVzKic7CgogIHByaXZhdGUgJF9hbmRfb3B0cyAgID0gYXJyYXkoKTsKICBwcml2YXRlICRfZ3JvdXBzID0gJyc7CiAgcHJpdmF0ZSAkX3BhZ2VsaW1pdCA9IDEwMDAwMDsKICBwcml2YXRlICRfb2Zmc2V0ID0gMDsKICBwcml2YXRlICRfcmVzdWx0X3R5cGUgPSBzZWxmOjpSRVNVTFRfVFlQRV9JRDsKICBwcml2YXRlICRfc29ydGJ5ID0gc2VsZjo6UkVTVUxUX1NPUlRCWV9VU0VSTkFNRTsKICBwcml2YXRlICRfc29ydG9yZGVyID0gc2VsZjo6UkVTVUxUX1NPUlRPUkRFUl9BU0M7CiAgcHJpdmF0ZSAkX2RlZXAgPSBGQUxTRTsKICBwcml2YXRlICRfd2VicmVhZHkgPSBGQUxTRTsKCiAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICB7CiAgICAvLyBub3RoaW5nIGhlcmUuCiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3BhZ2VsaW1pdCgkcGFnZWxpbWl0KQogIHsKICAgICRwYWdlbGltaXQgPSAoaW50KSRwYWdlbGltaXQ7CiAgICAkcGFnZWxpbWl0ID0gbWF4KDEsJHBhZ2VsaW1pdCk7CiAgICAkdGhpcy0+X3BhZ2VsaW1pdCA9ICRwYWdlbGltaXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3BhZ2VsaW1pdCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fcGFnZWxpbWl0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF9vZmZzZXQoJG4pCiAgewogICAgJHRoaXMtPl9vZmZzZXQgPSBtYXgoMCwoaW50KSRuKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfb2Zmc2V0KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9vZmZzZXQ7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RlZXAoJGZsYWcgPSBUUlVFKQogIHsKICAgICR0aGlzLT5fZGVlcCA9IChib29sKSRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZWVwKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9kZWVwOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIHNldF93ZWJyZWFkeSgkZmxhZyA9IFRSVUUpCiAgewogICAgJHRoaXMtPl93ZWJyZWFkeSA9IChib29sKSRmbGFnOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldF93ZWJyZWFkeSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5fd2VicmVhZHk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3Jlc3VsdF90eXBlKCR0eXBlKQogIHsKICAgICAgLy8gY3VycmVudGx5IG5vdCB1c2VkIGluIHRoZSByZXN1bHRzZXQsIG1heSByZW1vdmUKICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICBjYXNlIHNlbGY6OlJFU1VMVF9UWVBFX0lEOgogICAgY2FzZSBzZWxmOjpSRVNVTFRfVFlQRV9MSVNUOgogICAgY2FzZSBzZWxmOjpSRVNVTFRfVFlQRV9GVUxMOgogICAgICAkdGhpcy0+X3Jlc3VsdF90eXBlID0gJHR5cGU7CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0ludmFsaWQgcmVzdWx0IHR5cGUgJy4kdHlwZSk7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3Jlc3VsdF90eXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9yZXN1bHRfdHlwZTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRfc29ydGJ5KCR2YWwpCiAgewogICAgc3dpdGNoKCAkdmFsICkgewogICAgY2FzZSBzZWxmOjpSRVNVTFRfU09SVEJZX1VTRVJOQU1FOgogICAgY2FzZSBzZWxmOjpSRVNVTFRfU09SVEJZX0NSRUFURUQ6CiAgICBjYXNlIHNlbGY6OlJFU1VMVF9TT1JUQllfRVhQSVJFUzoKICAgICAgJHRoaXMtPl9zb3J0YnkgPSAkdmFsOwogICAgICBicmVhazsKCiAgICBkZWZhdWx0OgogICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnZhbGlkIHNvcnRieSB2YWx1ZTogJy4kdmFsKTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc29ydGJ5KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9zb3J0Ynk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gc2V0X3NvcnRvcmRlcigkdmFsKQogIHsKICAgIHN3aXRjaCggJHZhbCApIHsKICAgIGNhc2Ugc2VsZjo6UkVTVUxUX1NPUlRPUkRFUl9BU0M6CiAgICBjYXNlIHNlbGY6OlJFU1VMVF9TT1JUT1JERVJfREVTQzoKICAgICAgJHRoaXMtPl9zb3J0b3JkZXIgPSAkdmFsOwogICAgICBicmVhazsKCiAgICBkZWZhdWx0OgogICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnZhbGlkIHNvcnRvcmRlciB2YWx1ZTogJy4kdmFsKTsKICAgIH0KICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfc29ydG9yZGVyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPl9zb3J0b3JkZXI7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYWRkX2FuZF9vcHQoJHR5cGUsJHZhbHVlID0gbnVsbCkKICB7CiAgICAkdGhpcy0+X2FuZF9vcHRzW10gPSBuZXcgZmV1X3VzZXJfcXVlcnlfb3B0KCR0eXBlLCR2YWx1ZSk7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYWRkX2FuZF9vcHRfb2JqKGZldV91c2VyX3F1ZXJ5X29wdCYgJG9wdCkKICB7CiAgICAkdGhpcy0+X2FuZF9vcHRzW10gPSAkb3B0OwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGNvdW50X29wdHMoKQogIHsKICAgIHJldHVybiBjb3VudCgkdGhpcy0+X2FuZF9vcHRzKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBnZXRfb3B0cygpCiAgewogICAgcmV0dXJuICR0aGlzLT5fYW5kX29wdHM7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gJmV4ZWN1dGUoKQogIHsKICAgICRycyA9IG5ldyBmZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQoJHRoaXMpOwogICAgcmV0dXJuICRyczsKICB9Cgp9IC8vIGVuZCBvZiBjbGFzcwoKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_user_query_resultset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBmZXVfdXNlcl9xdWVyeV9yZXN1bHRzZXQKewogICAgcHJpdmF0ZSAkX3F1ZXJ5OwogICAgcHJpdmF0ZSAkX2V4ZWN1dGVkOwogICAgcHJpdmF0ZSAkX3JzOwogICAgcHJpdmF0ZSAkX2ZvdW5kX3Jvd3M7CiAgICBwcml2YXRlICRfZ3JvdXBzOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChmZXVfdXNlcl9xdWVyeSAmJHF1ZXJ5KQogICAgewogICAgICAgICR0aGlzLT5fcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJHRoaXMtPl9leGVjdXRlKCRxdWVyeSk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0X2dyb3VwcygpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2dyb3VwcykgKSB7CiAgICAgICAgICAgICRmZXUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgICAgICAgJHRtcCA9ICRmZXUtPkdldEdyb3VwTGlzdEZ1bGwoKTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgJHRoaXMtPl9ncm91cHMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnZ3JvdXBuYW1lJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+X2dyb3VwczsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9leGVjdXRlKCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICR3aGVyZSAgPSBhcnJheSgpOwogICAgICAgICRxcGFybXMgPSBhcnJheSgpOwogICAgICAgICRqb2lucyAgPSBhcnJheSgpOwogICAgICAgICRqY291bnQgPSAwOwogICAgICAgICRoYXZpbmcgPSBudWxsOwoKICAgICAgICAkcXJlYyA9ICdTRUxFQ1QgU1FMX0NBTENfRk9VTkRfUk9XUyB1LiosY291bnQobGkudXNlcmlkKSBBUyBsb2dnZWRpbiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyB1JzsKICAgICAgICAkam9pbnNbXSA9ICdMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2xvZ2dlZGluIGxpIE9OIHUuaWQgPSBsaS51c2VyaWQnOwoKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X3F1ZXJ5LT5nZXRfb3B0cygpIGFzICRvcHQgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJG9wdC0+Z2V0X3R5cGUoKSApIHsKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1VTRVJOQU1FOgogICAgICAgICAgICAgICAgJHdoZXJlW10gID0gJ3UudXNlcm5hbWUgTElLRSA/JzsKICAgICAgICAgICAgICAgICRleHByID0gc3RyX3JlcGxhY2UoJyonLCclJywkb3B0LT5nZXRfZXhwcigpKTsKICAgICAgICAgICAgICAgICRleHByID0gc3RyX3JlcGxhY2UoJyUlJywnJScsJGV4cHIpOwogICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJGV4cHI7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9VU0VSTkFNRV9SRToKICAgICAgICAgICAgICAgICR3aGVyZVtdICA9ICd1LnVzZXJuYW1lIFJFR0VYUCAnLiRkYi0+cXN0cigkb3B0LT5nZXRfZXhwcigpKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1BBU1NXT1JEOgogICAgICAgICAgICAgICAgJHdoZXJlW10gID0gJ3UucGFzc3dvcmQgPSA/JzsKICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICRvcHQtPmdldF9leHByKCk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9OT1RFWFBJUkVEOgogICAgICAgICAgICAgICAgJHRtcCA9ICRkYi0+RGJUaW1lU3RhbXAodGltZSgpIC0gMzApOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAidS5leHBpcmVzID4geyR0bXB9IjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX0VYUElSRVNfTFQ6CiAgICAgICAgICAgICAgICAkdG1wID0gJGRiLT5EYlRpbWVTdGFtcCgkb3B0LT5nZXRfZXhwcigpKTsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gInUuZXhwaXJlcyA8IHskdG1wfSI7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9DUkVBVEVEX0dFOgogICAgICAgICAgICAgICAgJHRtcCA9ICRkYi0+RGJUaW1lU3RhbXAoJG9wdC0+Z2V0X2V4cHIoKSk7CiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICJ1LmNyZWF0ZWRhdGUgPj0geyR0bXB9IjsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX0NSRUFURURfTFQ6CiAgICAgICAgICAgICAgICAkdG1wID0gJGRiLT5EYlRpbWVTdGFtcCgkb3B0LT5nZXRfZXhwcigpKTsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gInUuY3JlYXRlZGF0ZSA8IHskdG1wfSI7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9HUk9VUDoKICAgICAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+X2dldF9ncm91cHMoKTsKICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJHRtcFskb3B0LT5nZXRfZXhwcigpXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignaW52YWxpZCB2YWx1ZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIGJsIE9OIHUuaWQgPSBibC51c2VyaWQnOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnYmwuZ3JvdXBpZCA9ID8nOwogICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJHRtcFskb3B0LT5nZXRfZXhwcigpXVsnaWQnXTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX0xPR0dFRElOOgogICAgICAgICAgICAgICAgJGhhdmluZyA9ICdjb3VudChsaS51c2VyaWQpID4gMCc7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9HUk9VUElEOgogICAgICAgICAgICAgICAgJGV4cHIgPSAkb3B0LT5nZXRfZXhwcigpOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRleHByKSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkZXhwciBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICAgICAkb25lID0gKGludCkkb25lOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9uZSA8IDEgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkb25lLCR0bXApICkgJHRtcFtdID0gJG9uZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApID09IDAgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyB2YWxpZCBncm91cCBpZHMgc3BlY2lmaWVkJyk7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIGJsIE9OIHUuaWQgPSBibC51c2VyaWQnOwogICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ2JsLmdyb3VwaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHRtcCkuJyknOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIGJsIE9OIHUuaWQgPSBibC51c2VyaWQnOwogICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gJ2JsLmdyb3VwaWQgPSA/JzsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkZXhwcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeV9vcHQ6Ok1BVENIX1VTRVJOQU1FTElTVDoKICAgICAgICAgICAgICAgICR0bXAgPSAkb3B0LT5nZXRfZXhwcigpOwogICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApICR0bXAgPSBleHBsb2RlKCcsJywkdG1wKTsKICAgICAgICAgICAgICAgICR0bXAyID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wMltdID0gIiciLnRyaW0oJG9uZSkuIiciOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRtcDIgPSBhcnJheV91bmlxdWUoJHRtcDIpOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAndS51c2VybmFtZSBJTiAoJy5pbXBsb2RlKCcsJywkdG1wMikuJyknOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfVVNFUkxJU1Q6CiAgICAgICAgICAgICAgICAkdG1wID0gJG9wdC0+Z2V0X2V4cHIoKTsKICAgICAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICAgICAgICAgICAgICAkdG1wMiA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoIChpbnQpJG9uZSA8IDEgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkdG1wMltdID0gKGludCkkb25lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRtcDIgPSBhcnJheV91bmlxdWUoJHRtcDIpOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAndS5pZCBJTiAoJy5pbXBsb2RlKCcsJywkdG1wMikuJyknOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfUFJPUEVSVFk6CiAgICAgICAgICAgICAgICAkZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgICAgICAgICAkZGVmbnMgPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCRvcHQtPmdldF9leHByKCksYXJyYXlfa2V5cygkZGVmbnMpKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ2ludmFsaWQgdmFsdWUnKTsKICAgICAgICAgICAgICAgICRqY291bnQrKzsKICAgICAgICAgICAgICAgICRqb2luc1tdID0gJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBwcnskamNvdW50fQogICAgICAgICAgICAgICAgICAgIE9OIHByeyRqY291bnR9LnVzZXJpZCA9IHUuaWQiOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAicHJ7JGpjb3VudH0udGl0bGUgPSAnIi4kb3B0LT5nZXRfZXhwcigpLiInIjsKICAgICAgICAgICAgICAgIGlmKCAkb3B0LT5nZXRfb3B0KCkgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoIHN0cnN0cigkb3B0LT5nZXRfb3B0KCksJyonKSA9PT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gInByeyRqY291bnR9LmRhdGEgPSAnIi4kb3B0LT5nZXRfb3B0KCkuIiciOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAicHJ7JGpjb3VudH0uZGF0YSBMSUtFICciLnN0cl9yZXBsYWNlKCcqJywnJScsJG9wdC0+Z2V0X29wdCgpKS4iJyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfUFJPUEVSVFlfUkU6CiAgICAgICAgICAgICAgICAkZmV1ID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgICAgICAgICAkZGVmbnMgPSAkZmV1LT5HZXRQcm9wZXJ0eURlZm5zKCk7CiAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCRvcHQtPmdldF9leHByKCksYXJyYXlfa2V5cygkZGVmbnMpKSApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdpbnZhbGlkIHZhbHVlJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkamNvdW50Kys7CiAgICAgICAgICAgICAgICAkam9pbnNbXSA9ICdMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMgcHJ7JGpjb3VudH0KICAgICAgICAgICAgICAgICAgICAgIE9OIHByeyRqY291bnR9LnVzZXJpZCA9IHUuaWQKICAgICAgICAgICAgICAgICAgICAgQU5EIHByeyRqY291bnR9LnRpdGxlID0gJyIuJG9wdC0+Z2V0X2V4cHIoKS4iJyI7CiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICJwcnskamNvdW50fS5kYXRhIFJFR0VYUCAiLiRkYi0+cXN0cigkb3B0LT5nZXRfb3B0KCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGFzc2VtYmx5CiAgICAgICAgaWYoIGNvdW50KCRqb2lucykgKSAkcXJlYyAuPSAnICcuaW1wbG9kZSgnICcsJGpvaW5zKTsKICAgICAgICBpZiggY291bnQoJHdoZXJlKSApICRxcmVjIC49ICJcbldIRVJFICIuaW1wbG9kZSgnIEFORCAnLCR3aGVyZSk7CgogICAgICAgICRvcmRlcmJ5ID0gJ3VzZXJuYW1lJzsKICAgICAgICBzd2l0Y2goICR0aGlzLT5fcXVlcnktPmdldF9zb3J0YnkoKSApIHsKICAgICAgICBjYXNlIGZldV91c2VyX3F1ZXJ5OjpSRVNVTFRfU09SVEJZX1VTRVJOQU1FOgogICAgICAgICAgICAkb3JkZXJieSA9ICd1c2VybmFtZSc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUQllfQ1JFQVRFRDoKICAgICAgICAgICAgJG9yZGVyYnkgPSAnY3JlYXRlZGF0ZSc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUQllfRVhQSVJFUzoKICAgICAgICAgICAgJG9yZGVyYnkgPSAnZXhwaXJlcyc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgc3dpdGNoKCAkdGhpcy0+X3F1ZXJ5LT5nZXRfc29ydG9yZGVyKCkgKSB7CiAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRPUkRFUl9BU0M6CiAgICAgICAgICAgICRvcmRlcmJ5IC49ICcgQVNDJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRPUkRFUl9ERVNDOgogICAgICAgICAgICAkb3JkZXJieSAuPSAnIERFU0MnOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgICRxcmVjIC49ICcgR1JPVVAgQlkgdS5pZCc7CiAgICAgICAgaWYoICRoYXZpbmcgKSAkcXJlYyAuPSAnIEhBVklORyAnLiRoYXZpbmc7CiAgICAgICAgJHFyZWMgLj0gJyBPUkRFUiBCWSAnLiRvcmRlcmJ5OwoKICAgICAgICAkdGhpcy0+X3JzID0gJGRiLT5TZWxlY3RMaW1pdCgkcXJlYywkdGhpcy0+X3F1ZXJ5LT5nZXRfcGFnZWxpbWl0KCksJHRoaXMtPl9xdWVyeS0+Z2V0X29mZnNldCgpLCRxcGFybXMpOwogICAgICAgIGlmKCAhJHRoaXMtPl9ycyApIHRocm93IG5ldyBFeGNlcHRpb24oJ0lOVEVSTkFMIEVSUk9SOiBRdWVyeSBmYWlsZWQgLSAnLiRkYi0+c3FsLicgLS0gJy4kZGItPkVycm9yTXNnKCkpOwogICAgICAgICR0aGlzLT5fZm91bmRfcm93cyA9ICRkYi0+R2V0T25lKCdTRUxFQ1QgRk9VTkRfUk9XUygpJyk7CgogICAgICAgIC8vIHRoaXMgcHJlbG9hZHMgdGhlIHVzZXIgaW5mby4KICAgICAgICAkdWlkcyA9IGFycmF5KCk7CiAgICAgICAgd2hpbGUoICEkdGhpcy0+X3JzLT5FT0YgKSB7CiAgICAgICAgICAgIGZldV91c2VyX2NhY2hlOjpzZXRfbmV3X3VzZXIoJHRoaXMtPl9ycy0+ZmllbGRzKTsKICAgICAgICAgICAgJHVpZHNbXSA9ICR0aGlzLT5fcnMtPmZpZWxkc1snaWQnXTsKICAgICAgICAgICAgJHRoaXMtPl9ycy0+TW92ZU5leHQoKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9ycy0+TW92ZUZpcnN0KCk7CgogICAgICAgIGlmKCBjb3VudCgkdWlkcykgJiYgJHRoaXMtPl9xdWVyeS0+Z2V0X2RlZXAoKSApIHsKICAgICAgICAgICAgLy8gdXNlcnMgYXJlIGFscmVhZHkgbG9hZGVkIChzaGFsbG93KS4uLiB0aGlzIHdpbGwgZ2V0IHByb3BlcnR5IGluZm9ybWF0aW9uLgogICAgICAgICAgICBmZXVfdXNlcl9jYWNoZTo6bG9hZF91c2VycygkdWlkcyxUUlVFKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5fZXhlY3V0ZWQgPSBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBSZWNvcmRDb3VudCgpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+UmVjb3JkQ291bnQoKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gTW92ZU5leHQoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVOZXh0KCk7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBNb3ZlRmlyc3QoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVGaXJzdCgpOwogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gRU9GKCkKICAgIHsKICAgICAgICBpZiggJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5FT0YoKTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gQ2xvc2UoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPkNsb3NlKCk7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgaWYoICRrZXkgPT0gJ0VPRicgJiYgJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5FT0Y7CgogICAgICAgIGlmKCAka2V5ID09ICdmaWVsZHMnICYmICR0aGlzLT5fcnMgKSB7CiAgICAgICAgICAgICRyZWMgPSBmZXVfdXNlcl9jYWNoZTo6Z2V0X3VzZXIoJHRoaXMtPl9ycy0+ZmllbGRzWydpZCddKTsKICAgICAgICAgICAgaWYoICR0aGlzLT5fcXVlcnktPmdldF93ZWJyZWFkeSgpICkgewogICAgICAgICAgICAgICAgJGZldSA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpOwogICAgICAgICAgICAgICAgaWYoICRmZXUtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlY1snZW1haWwnXSA9ICRyZWNbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1bnNldCgkcmVjWydwYXNzd29yZCddKTsKICAgICAgICAgICAgICAgICRkZWZucyA9ICRmZXUtPkdldFByb3BlcnR5RGVmbnMoKTsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcmVjWydmcHJvcHMnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJHJlY1snZnByb3BzJ10gYXMgJiRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhJGZldS0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkZGVmbnNbJG9uZVsndGl0bGUnXV1bJ3R5cGUnXSA9PSBGcm9udEVuZFVzZXJzOjpGSUVMRFRZUEVfRU1BSUwgJiYgIWlzc2V0KCRyZWNbJ2VtYWlsJ10pICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWNbJ2VtYWlsJ10gPSAkb25lWydkYXRhJ107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRkZWZuc1skb25lWyd0aXRsZSddXVsndHlwZSddID09IEZyb250RW5kVXNlcnM6OkZJRUxEVFlQRV9JTUFHRSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgZnVsbCB1cmwuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29uZmlnID0gXGNtc19jb25maWc6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9uZVsndXJsJ10gPSAkY29uZmlnWyd1cGxvYWRzX3VybCddLicvZmV1c2Vycy8nLiRvbmVbJ2RhdGEnXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggIWlzc2V0KCRyZWNbJ2VtYWlsJ10pICYmIGlzX2VtYWlsKCRyZWNbJ3VzZXJuYW1lJ10pICkgJHJlY1snZW1haWwnXSA9ICRyZWNbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgIHJldHVybiAkcmVjOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZvdW5kX3Jvd3MoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9ycyApIHJldHVybjsKICAgICAgICByZXR1cm4gJHRoaXMtPl9mb3VuZF9yb3dzOwogICAgfQoKfSAvLyBjbGFzcwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.feu_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpmaW5hbCBjbGFzcyBmZXVfdXRpbHMKewogICAgcHJpdmF0ZSBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CiAgICBwcml2YXRlIHN0YXRpYyAkX21vZDsKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICZnZXRfbW9kKCkKICAgIHsKICAgICAgICBpZiggIXNlbGY6OiRfbW9kICkgc2VsZjo6JF9tb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICAgICByZXR1cm4gc2VsZjo6JF9tb2Q7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1c2luZ19zdGRfY29uc3VtZXIoKQogICAgewogICAgICAgICRmZXUgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAgICAgJG5hbWUgPSAkZmV1LT5HZXRQcmVmZXJlbmNlKCdhdXRoX21vZHVsZScsJycpOwogICAgICAgIGlmKCAkbmFtZSA9PSAnJyB8fCAkbmFtZSA9PSAnX19CVUlMVElOX18nICkgcmV0dXJuIFRSVUU7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9zdGRfY29uc3VtZXIoKQogICAgewogICAgICAgICRvYmogPSBuZXcgZmV1X3N0ZF9jb25zdW1lcigpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJmdldF9hdXRoX2NvbnN1bWVyKCkKICAgIHsKICAgICAgICAkZmV1ID0gc2VsZjo6Z2V0X21vZCgpOwogICAgICAgICRuYW1lID0gJGZldS0+R2V0UHJlZmVyZW5jZSgnYXV0aF9tb2R1bGUnLCcnKTsKICAgICAgICBpZiggJG5hbWUgPT0gJycgfHwgJG5hbWUgPT0gJ19fQlVJTFRJTl9fJyApIHsKICAgICAgICAgICAgcmV0dXJuIHNlbGY6OmdldF9zdGRfY29uc3VtZXIoKTsKICAgICAgICB9CgogICAgICAgICRtb2R1bGUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJG5hbWUpOwogICAgICAgICRyZXMgPSBudWxsOwogICAgICAgIGlmKCBpc19vYmplY3QoJG1vZHVsZSkgKSB7CiAgICAgICAgICAgICRvYmogPSAkbW9kdWxlLT5HZXRGRVVBdXRoQ29uc3VtZXIoKTsKICAgICAgICAgICAgcmV0dXJuICRvYmo7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc2VsZjo6Z2V0X3N0ZF9jb25zdW1lcigpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3VzZXJsaXN0KCRub25lID0gbnVsbCkKICAgIHsKICAgICAgICBzdGF0aWMgJGxpc3Q7CiAgICAgICAgaWYoICFpc19hcnJheSgkbGlzdCkgKSB7CiAgICAgICAgICAgICRsaXN0ID0gYXJyYXkoKTsKCiAgICAgICAgICAgIC8vIG5vdyBhZGQgaW4gZmV1IHVzZXJzCiAgICAgICAgICAgICRmZXUgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAgICAgICAgIGlmKCBpc19vYmplY3QoJGZldSkgKSB7CiAgICAgICAgICAgICAgICAkcXVlcnkgPSBuZXcgXGZldV91c2VyX3F1ZXJ5OwogICAgICAgICAgICAgICAgJHF1ZXJ5LT5hZGRfYW5kX29wdChcZmV1X3VzZXJfcXVlcnlfT1BUOjpNQVRDSF9OT1RFWFBJUkVEKTsKICAgICAgICAgICAgICAgICRxdWVyeS0+c2V0X3NvcnRieShcZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUQllfVVNFUk5BTUUpOwogICAgICAgICAgICAgICAgJHF1ZXJ5LT5zZXRfc29ydG9yZGVyKFxmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRPUkRFUl9BU0MpOwogICAgICAgICAgICAgICAgJHJzID0gJHF1ZXJ5LT5leGVjdXRlKCk7CiAgICAgICAgICAgICAgICBpZiggJHJzLT5nZXRfZm91bmRfcm93cygpID4gMCAmJiAkbm9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkbGlzdFsnJ10gPSAkZmV1LT5MYW5nKCdub25lJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB3aGlsZSggISRycy0+RU9GKCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJGxpc3RbJHJzLT5maWVsZHNbJ2lkJ11dID0gJHJzLT5maWVsZHNbJ3VzZXJuYW1lJ107CiAgICAgICAgICAgICAgICAgICAgJHJzLT5Nb3ZlTmV4dCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkbGlzdDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF90ZW1wbGF0ZSgkcGFyYW1zLCRrZXksJHR5cGVuYW1lKQogICAgewogICAgICAgIGlmKCAka2V5ICkgewogICAgICAgICAgICAkdHBsID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCRrZXkpOwogICAgICAgICAgICBpZiggJHRwbCApIHJldHVybiAkdHBsOwogICAgICAgIH0KCiAgICAgICAgJHRwbCA9IFxDbXNMYXlvdXRUZW1wbGF0ZTo6bG9hZF9kZmx0X2J5X3R5cGUoJHR5cGVuYW1lKTsKICAgICAgICBpZiggJHRwbCApIHJldHVybiAkdHBsLT5nZXRfbmFtZSgpOwoKICAgICAgICBhdWRpdCgnJywnRnJvbnRFbmRVc2VycycsJ05vIGRlZmF1bHQgdGVtcGxhdGUgb2YgdHlwZSAnLiR0eXBlbmFtZS4nIGZvdW5kJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gX0Rpc3BsYXlBZG1pblVzZXJQYWdlKCAkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQgKQogICAgewogICAgICAgICRtb2QgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAgICAgJHRwbCA9ICRtb2QtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZGR1c2VyMS50cGwnKTsKCiAgICAgICAgLy8gcG9wdWxhdGUgdGhlIHRlbXBsYXRlCiAgICAgICAgJGVkaXRpbmcgPSAwOwogICAgICAgICRoaWRkZW4gPSBhcnJheSgpOwogICAgICAgICR1c2VybmFtZSA9ICcnOwogICAgICAgICRwYXNzd29yZCA9ICcnOwogICAgICAgICRyZXBlYXRwYXNzd29yZCA9ICcnOwogICAgICAgICRleHBpcmVzID0gJyc7CiAgICAgICAgJHVpbmZvID0gbnVsbDsKICAgICAgICAkdHBsLT5hc3NpZ24oJ29yaWdwYXJhbXMnLCRwYXJhbXMpOwoKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1sncmV0dXJudG8nXSkgKSAkaGlkZGVuWydyZXR1cm50byddID0gJHBhcmFtc1sncmV0dXJudG8nXTsKICAgICAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2FjdGlvbiddICkgJiYgKCRwYXJhbXNbJ2FjdGlvbiddID09ICdlZGl0dXNlcid8fCAkcGFyYW1zWydhY3Rpb24nXSA9PSAnZG9fZWRpdHVzZXIxJyApICkgewogICAgICAgICAgICAkZWRpdGluZyA9IDE7CiAgICAgICAgICAgICRoaWRkZW5bJ3VzZXJfaWQnXSA9ICRwYXJhbXNbJ3VzZXJfaWQnXTsKICAgICAgICAgICAgJHVpbmZvID0gJG1vZC0+R2V0VXNlckluZm8oJHBhcmFtc1sndXNlcl9pZCddKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCd0aXRsZScsICRtb2QtPkxhbmcoJ2VkaXR1c2VyJykpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3N0YXJ0Zm9ybScsJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnZG9fZWRpdHVzZXIxJywkcmV0dXJuaWQpKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbigndGl0bGUnLCAkbW9kLT5MYW5nKCdhZGR1c2VyJykpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3N0YXJ0Zm9ybScsJG1vZC0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnZG9fYWRkdXNlcjEnLCRyZXR1cm5pZCkpOwogICAgICAgIH0KCiAgICAgICAgaWYoICFlbXB0eSgkaGlkZGVuKSApIHsKICAgICAgICAgICAgJHR4dCA9ICcnOwogICAgICAgICAgICBmb3JlYWNoKCAkaGlkZGVuIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgJHR4dCAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJGtleSwkdmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignaGlkZGVuJywkdHh0KTsKICAgICAgICB9CgogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydlcnJvciddKSApICR0cGwtPmFzc2lnbignZXJyb3InLCRwYXJhbXNbJ2Vycm9yJ10pOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pICkgJHRwbC0+YXNzaWduKCdtZXNzYWdlJywkcGFyYW1zWydtZXNzYWdlJ10pOwoKICAgICAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlX3JhbmRvbXVzZXJuYW1lJywwKSA9PSAxICkgJHVzZXJuYW1lID0gJG1vZC0+R2VuZXJhdGVSYW5kb21Vc2VybmFtZSgpOwogICAgICAgIC8vJGRpc2FibGVkID0gKGludCkgY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaW5wdXRfZGlzYWJsZWQnKTsKICAgICAgICAvLyRmb3JjZV9uZXdwdyA9IChpbnQpIGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2lucHV0X2ZvcmNlX25ld3B3Jyk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X3VzZXJuYW1lJ10pICkgICR1c2VybmFtZSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfdXNlcm5hbWUnXSk7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X3Bhc3N3b3JkJ10pICkgJHBhc3N3b3JkID0gdHJpbSgkcGFyYW1zWydpbnB1dF9wYXNzd29yZCddKTsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snaW5wdXRfcmVwZWF0cGFzc3dvcmQnXSkgKSAkcmVwZWF0cGFzc3dvcmQgPSB0cmltKCRwYXJhbXNbJ2lucHV0X3JlcGVhdHBhc3N3b3JkJ10pOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydpbnB1dF9leHBpcmVzJ10pICkgJGV4cGlyZXMgPSB0cmltKCRwYXJhbXNbJ2lucHV0X2V4cGlyZXMnXSk7CgogICAgICAgICR0cGwtPmFzc2lnbignZW5kZm9ybScsICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdzdWJtaXQnLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkbW9kLT5MYW5nKCduZXh0JykpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2NhbmNlbCcsICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsICRtb2QtPkxhbmcoJ2NhbmNlbCcpKSk7CgogICAgICAgICRhdXRoX2NvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwogICAgICAgICRhZGR0ZXh0ID0gJyc7CiAgICAgICAgaWYoICRlZGl0aW5nICYmICR1aW5mb1sxXVsnbm9uc3RkJ10gKSB7CiAgICAgICAgICAgICRhZGR0ZXh0ID0gJ3JlYWRvbmx5PSJyZWFkb25seSInOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3VzZXJuYW1lX3JlYWRvbmx5JywxKTsKICAgICAgICB9CiAgICAgICAgJHRwbC0+YXNzaWduKCdwcm9tcHRfdXNlcm5hbWUnLCRhdXRoX2NvbnN1bWVyLT5nZXRfdXNlcm5hbWVfcHJvbXB0KCkpOwogICAgICAgICR0cGwtPmFzc2lnbigndW5mbGRsZW4nLCRtb2QtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lZmxkbGVuZ3RoJykpOwogICAgICAgICR0cGwtPmFzc2lnbignbWF4X3VuZmxkbGVuJywkbW9kLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdwd2ZsZGxlbicsJG1vZC0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdtYXhfcHdmbGRsZW4nLCRtb2QtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2lucHV0X3VzZXJuYW1lJywgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lucHV0X3VzZXJuYW1lJywkdXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVmbGRsZW5ndGgnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWRkdGV4dCkpOwoKICAgICAgICAkYWRkdGV4dCA9ICcnOwogICAgICAgIGlmKCAkZWRpdGluZyAmJiAkdWluZm9bMV1bJ25vbnN0ZCddICkgewogICAgICAgICAgICAkYWRkdGV4dCA9ICdyZWFkb25seT0icmVhZG9ubHkiJzsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdwYXNzd29yZF9yZWFkb25seScsMSk7CiAgICAgICAgfQogICAgICAgICR0cGwtPmFzc2lnbigncHJvbXB0X3Bhc3N3b3JkJywkbW9kLT5MYW5nKCdwYXNzd29yZCcpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2lucHV0X3Bhc3N3b3JkJywKICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dFBhc3N3b3JkKCRpZCwgJ2lucHV0X3Bhc3N3b3JkJywgJHBhc3N3b3JkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkdldFByZWZlcmVuY2UoJ3Bhc3N3b3JkZmxkbGVuZ3RoJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+R2V0UHJlZmVyZW5jZSgnbWF4X3Bhc3N3b3JkbGVuZ3RoJyksCiAgICAgICAgJGFkZHRleHQpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3Byb21wdF9yZXBlYXRwYXNzd29yZCcsJG1vZC0+TGFuZyAoJ3JlcGVhdHBhc3N3b3JkJykpOwogICAgICAgICR0cGwtPmFzc2lnbignaW5wdXRfcmVwZWF0cGFzc3dvcmQnLAogICAgICAgICRtb2QtPkNyZWF0ZUlucHV0UGFzc3dvcmQoJGlkLCAnaW5wdXRfcmVwZWF0cGFzc3dvcmQnLCAkcmVwZWF0cGFzc3dvcmQsCiAgICAgICAgJG1vZC0+R2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnKSwKICAgICAgICAkbW9kLT5HZXRQcmVmZXJlbmNlKCdtYXhfcGFzc3dvcmRsZW5ndGgnKSwKICAgICAgICAkYWRkdGV4dCkpOwoKICAgICAgICBpZiggJGVkaXRpbmcgPT0gMSApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdpbmZvX3Bhc3N3b3JkJywkbW9kLT5MYW5nKCdpbmZvX2FkbWluX3Bhc3N3b3JkJykpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ2luZm9fcmVwZWF0cGFzc3dvcmQnLCRtb2QtPkxhbmcoJ2luZm9fYWRtaW5fcmVwZWF0cGFzc3dvcmQnKSk7CiAgICAgICAgfQoKICAgICAgICAkdHBsLT5hc3NpZ24oJ3Byb21wdF9leHBpcmVzJywkbW9kLT5MYW5nKCdleHBpcmVzJykpOwogICAgICAgICR0cGwtPmFzc2lnbignZXhwaXJlc19kYXRlcHJlZml4JywkaWQuJ2V4cGlyZXNkYXRlXycpOwogICAgICAgICR0bXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdleHBpcmVhZ2VfbW9udGhzJyw1MjApOwogICAgICAgICRleHBpcmVzZGF0ZSA9IHN0cnRvdGltZSgiK3skdG1wfSBtb250aHMiLCB0aW1lKCkpOwogICAgICAgIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfZXhwaXJlc2RhdGUnXSApICkgJGV4cGlyZXNkYXRlID0gJHBhcmFtc1snaW5wdXRfZXhwaXJlc2RhdGUnXTsKICAgICAgICAkdHBsLT5hc3NpZ24gKCdleHBpcmVzZGF0ZScsICRleHBpcmVzZGF0ZSApOwoKICAgICAgICAvLyBkaXNwbGF5IGFuZCBlZGl0IGdyb3VwcwogICAgICAgIGlmKCAkbW9kLT5fSGFzU3VmZmljaWVudFBlcm1pc3Npb25zKCdzdHJpY3RfZWRpdGdyb3VwcycpICkgewogICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snbWVtYmVyb2YnXSApICkgewogICAgICAgICAgICAgICAgJHRtcCA9IChpbnQpJHBhcmFtc1snbWVtYmVyb2YnXTsKICAgICAgICAgICAgICAgICRwYXJhbXNbJ21lbWJlcm9mXycuJHRtcF0gPSAxOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBub3cgZGlzcGxheSBhIGxpc3Qgb2YgZ3JvdXBzIHRoYXQgdGhpcyB1c2VyIG1heSBvcHRpb25hbGx5IGJlIGluCiAgICAgICAgICAgICR0cGwtPmFzc2lnbiggJ2lkdGV4dCcsICRtb2QtPkxhbmcoJ2lkJykgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnbmFtZXRleHQnLCAkbW9kLT5MYW5nKCduYW1lJykgKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCAnZGVzY3RleHQnLCAkbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpICk7CgogICAgICAgICAgICAkZ3JvdXBzID0gJG1vZC0+R2V0R3JvdXBMaXN0RnVsbCgpOwogICAgICAgICAgICAkY2hlY2tlZCA9IC0xOwogICAgICAgICAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZV9vbmVncm91cCcpICYmICBjb3VudCgkZ3JvdXBzKSA9PSAxICkgewogICAgICAgICAgICAgICAgJGtleXMgPSBhcnJheV9rZXlzKCRncm91cHMpOwogICAgICAgICAgICAgICAgJGNoZWNrZWQgPSAka2V5c1swXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJvd2FycmF5ID0gYXJyYXkoKTsKICAgICAgICAgICAgJHJvd2NsYXNzID0gJ3JvdzEnOwogICAgICAgICAgICBmb3JlYWNoKCAkZ3JvdXBzIGFzICRncm91cCApIHsKICAgICAgICAgICAgICAgICRvbmVyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKICAgICAgICAgICAgICAgICRvbmVyb3ctPmlkID0gJGdyb3VwWydpZCddOwogICAgICAgICAgICAgICAgJG9uZXJvdy0+bmFtZSA9ICRncm91cFsnZ3JvdXBuYW1lJ107CiAgICAgICAgICAgICAgICAkb25lcm93LT5kZXNjID0gJGdyb3VwWydncm91cGRlc2MnXTsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydtZW1iZXJvZl8nLiRncm91cFsnaWQnXV0pICkgJGNoZWNrZWQgPSAkcGFyYW1zWydtZW1iZXJvZl8nLiRncm91cFsnaWQnXV07CiAgICAgICAgICAgICAgICAkb25lcm93LT5tZW1iZXIgPSAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnbWVtYmVyb2ZfJy4kZ3JvdXBbJ2lkJ10sICRncm91cFsnaWQnXSwkY2hlY2tlZCk7CiAgICAgICAgICAgICAgICAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCiAgICAgICAgICAgICAgICAkcm93YXJyYXlbXSA9ICRvbmVyb3c7CiAgICAgICAgICAgICAgICAoJHJvd2NsYXNzID09ICJyb3cxIiA/ICRyb3djbGFzcyA9ICJyb3cyIiA6ICRyb3djbGFzcyA9ICJyb3cxIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdpdGVtY291bnQnLGNvdW50KCRyb3dhcnJheSkpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ2l0ZW1zJywkcm93YXJyYXkpOwogICAgICAgIH0KCiAgICAgICAgJHRwbC0+YXNzaWduKCdwcm9wYWRkJywgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoICRpZCwgJ3Byb3BhZGQnLCRtb2QtPkxhbmcoJ2FkZCcpKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdncm91cHN0aXRsZScsICRtb2QtPkxhbmcoJ2dyb3VwcycpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ3Byb3BlcnRpZXN0aXRsZScsICRtb2QtPkxhbmcoJ3Byb3BlcnRpZXMnKSk7CgogICAgICAgICR0cGwtPmFzc2lnbigncHJvcHMnLCAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdwcm9wcycsICRtb2QtPkxhbmcoJ3Byb3BlcnRpZXMnKS4iLi4uIikpOwogICAgICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrVXBsb2FkKCRrZXkpCiAgICB7CiAgICAgICAgJG1vZCA9IHNlbGY6OmdldF9tb2QoKTsKICAgICAgICBpZiggIWlzc2V0KCRfRklMRVNbJGtleV0pIHx8ICFpc3NldCgkX0ZJTEVTKSApIHJldHVybiBbIGZhbHNlLCAkbW9kLT5MYW5nKCdlcnJvcl9taXNzaW5nX3VwbG9hZCcpIF07CiAgICAgICAgJGZpbGUgPSAkX0ZJTEVTWyRrZXldOwogICAgICAgIGlmKCAhaXNzZXQoJGZpbGVbJ25hbWUnXSkgfHwgIWlzc2V0KCRmaWxlWydzaXplJ10pIHx8ICRmaWxlWydzaXplJ10gPT0gMCApIHJldHVybiBbIGZhbHNlLCRtb2QtPkxhbmcoJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJykgXTsKCiAgICAgICAgaWYgKCFpc3NldCAoJGZpbGVbJ3R5cGUnXSkpICRmaWxlWyd0eXBlJ10gPSAnJzsKICAgICAgICBpZiAoIWlzc2V0ICgkZmlsZVsnc2l6ZSddKSkgJGZpbGVbJ3NpemUnXSA9ICcnOwogICAgICAgIGlmICghaXNzZXQgKCRmaWxlWyd0bXBfbmFtZSddKSkgcmV0dXJuIFsgZmFsc2UsICRtb2QtPkxhbmcoJ2Vycm9yX3Byb2JsZW1fdXBsb2FkJykgXTsKICAgICAgICAkZmlsZVsnbmFtZSddID0KICAgICAgICAgICAgcHJlZ19yZXBsYWNlKCcvW15hLXpBLVowLTlcLlwkXCVcJ1xgXC1cQFx7XH1cflwhXCNcKFwpXCZcX1xeXS8nLCAnJywKICAgICAgICAgICAgc3RyX3JlcGxhY2UgKGFycmF5ICgnICcsICclMjAnKSwgYXJyYXkgKCdfJywgJ18nKSwgJGZpbGVbJ25hbWUnXSkpOwoKICAgICAgICAvLyBjaGVjayB0aGUgZmlsZW5hbWUKICAgICAgICBpZiggISRtb2QtPmlzX2FsbG93ZWRfdXBsb2FkKCRmaWxlWyduYW1lJ10pICkgcmV0dXJuIFsgZmFsc2UsICRtb2QtPkxhbmcoJ2Vycm9yX2ludmFsaWRmaWxlZXh0ZW5zaW9uJykgXTsKICAgICAgICByZXR1cm4gWyBUUlVFIF07CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcHJvcGVydGllc19mb3JfZ3JvdXBzKCAkZ3JvdXBsaXN0ICkgewogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkZ3JvdXBsaXN0IGFzICRnaWQgKSB7CiAgICAgICAgICAgICRnaWQgPSAoaW50KSAkZ2lkOwogICAgICAgICAgICBpZiggJGdpZCA8IDEgKSBjb250aW51ZTsKCiAgICAgICAgICAgICRyZWxhdGlvbnMgPSBcZmV1X3V0aWxzOjpnZXRfbW9kKCktPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRnaWQgKTsKICAgICAgICAgICAgJG91dCA9IFxSUlV0aWxzOjphcnJheV9tZXJnZV9ieV9uYW1lX3JlcXVpcmVkKCAkb3V0LCAkcmVsYXRpb25zICk7CiAgICAgICAgfQogICAgICAgIHVhc29ydCggJG91dCwgYXJyYXkoJ2NnZV9hcnJheScsJ2NvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleScpICk7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXNvbHZlX3ByZWZ0cGxfdG9fcGFnZSgkcHJlZm5hbWUsJHVpZCwkZGZsdCA9IG51bGwpCiAgICB7CiAgICAgICAgJHByZWZuYW1lID0gdHJpbSgkcHJlZm5hbWUpOwogICAgICAgICR1aWQgPSAoaW50KSAkdWlkOwogICAgICAgIGlmKCAhJHByZWZuYW1lIHx8ICR1aWQgPCAxICkgcmV0dXJuICRkZmx0OwoKICAgICAgICAvLyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIG1heWJlLgogICAgICAgICRmZXUgPSBzZWxmOjpnZXRfbW9kKCk7CiAgICAgICAgJHJlcyA9ICRmZXUtPkdldFVzZXJJbmZvKCAkdWlkICk7CiAgICAgICAgaWYoICFpc19hcnJheSgkcmVzKSB8fCAkcmVzWzBdID09IEZBTFNFICkgcmV0dXJuICRkZmx0OwogICAgICAgICR1aW5mbyA9ICRyZXNbMV07CgogICAgICAgICR0cGxkYXRhID0gJGZldS0+R2V0UHJlZmVyZW5jZSgkcHJlZm5hbWUpOwogICAgICAgIGlmKCAhJHRwbGRhdGEgKSByZXR1cm4gJGRmbHQ7CgogICAgICAgICR0bXBfdHBsID0gJGZldS0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ3N0cmluZzonLiR0cGxkYXRhKTsKICAgICAgICAkdG1wX3RwbC0+YXNzaWduKCd1c2VybmFtZScsJHVpbmZvWyd1c2VybmFtZSddKTsKICAgICAgICAkdG1wX3RwbC0+YXNzaWduKCd1aWQnLCR1aWQpOwogICAgICAgICRncm91cHMgPSAkZmV1LT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdWlkKTsKICAgICAgICAkZ3JvdXBuYW1lID0gbnVsbDsKICAgICAgICBpZiggY291bnQoJGdyb3VwcykgKSAkZ3JvdXBuYW1lID0gJGZldS0+R2V0R3JvdXBOYW1lKCAkZ3JvdXBzWzBdWydncm91cGlkJ10gKTsKICAgICAgICAkdG1wX3RwbC0+YXNzaWduKCdncm91cG5hbWUnLCRncm91cG5hbWUpOwogICAgICAgICRwYWdlID0gJHRtcF90cGwtPmZldGNoKCk7CiAgICAgICAgJGRlc3QgPSAkZmV1LT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYWdlKTsKICAgICAgICBpZiggJGRlc3QgKSByZXR1cm4gJGRlc3Q7CiAgICAgICAgcmV0dXJuICRkZmx0OwogICAgfQp9IC8vIGNsYXNzCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/lib/class.FrontEndUsersManipulator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgLy8gLSotIG1vZGU6cGhwOyBjLWZpbGUtc3R5bGU6bGludXg7IHRhYi13aWR0aDoyOyBpbmRlbnQtdGFicy1tb2RlOnQ7IGMtYmFzaWMtb2Zmc2V0OiAyOyAtKi0KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDggYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBmcm9udGVuZAojICB1c2VycywgYW5kIHRoZWlyIGxvZ2luIHByb2Nlc3Mgd2l0aGluIGEgQ01TIE1hZGUgU2ltcGxlIHBvd2VyZWQKIyAgd2Vic2l0ZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0cyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIEZyb250RW5kVXNlcnNNYW5pcHVsYXRvciBleHRlbmRzIFVzZXJNYW5pcHVsYXRvcgp7CiAgICBwcml2YXRlICRfY2FjaGVkX3Byb3BkZWZuczsKICAgIHByaXZhdGUgJF9lbmNyeXB0aW9uX2tleTsKICAgIHByaXZhdGUgJF9ncm91cGluZm9fY2FjaGU7CiAgICBwcml2YXRlICRfbXVsdGlzZWxlY3Rfb3B0aW9uczsKICAgIHByaXZhdGUgJF91c2VyaWRieW5hbWU7CiAgICBwcml2YXRlICRfZ3JvdXBwcm9wbWFwOwogICAgcHJpdmF0ZSAkX2xhc3RfdXNlcnF1ZXJ5X21hdGNoZXM7CiAgICBwcml2YXRlICRfbGFzdF91c2VycXVlcnlfY291bnQ7CgogICAgcHJpdmF0ZSAkX2hhc3J1bjEgPSBudWxsOwogICAgcHJpdmF0ZSAkX2hhc3J1bjIgPSBudWxsOwogICAgcHJpdmF0ZSAkX3JlYWRkYXRhMSA9IG51bGw7CiAgICBwcml2YXRlICRfaGFzcmVhZDEgPSBudWxsOwoKICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0X3NhbHQoKQogICAgewogICAgICAgICRtb2QgPSAkdGhpcy0+R2V0TW9kdWxlKCk7CiAgICAgICAgcmV0dXJuICRtb2QtPkdldFByZWZlcmVuY2UoJ3B3c2FsdCcsJycpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfaGlzdG9yeSgkdWlkLCRtZXNzYWdlKQogICAgewogICAgICAgIGlmKCAkdWlkIDw9IDAgfHwgIWlzX3N0cmluZygkbWVzc2FnZSkgfHwgJG1lc3NhZ2UgPT0gJycgKQlyZXR1cm4gRkFMU0U7CgogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CiAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19oaXN0b3J5ICh1c2VyaWQsc2Vzc2lvbmlkLGFjdGlvbixyZWZkYXRlLGlwYWRkcmVzcykgVkFMVUVTICg/LD8sPywkbm93LD8pIjsKICAgICAgICAkaXAgPSBjZ2VfdXRpbHM6OmdldF9yZWFsX2lwKCk7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHVpZCxzZXNzaW9uX2lkKCksc3Vic3RyKCRtZXNzYWdlLDAsMjU1KSwkaXApKTsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBmdW5jdGlvbiBTZXRFbmNyeXB0aW9uS2V5KCR1aWQgPSAtMSwkZm9yY2UgPSBGQUxTRSApCiAgICB7CiAgICAgICAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKICAgICAgICAkZ0NtcyA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCk7CgogICAgICAgIGlmKCAkQ01TX0FETUlOX1BBR0UgKSB7Ci8vIGFuIGFkbWluaXN0cmF0b3IgY2FuIHNlZSBlbmNyeXB0ZWQgZGF0YS4KICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5HZXRVc2VySW5mbygkdWlkKTsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkcmVzKSB8fCAkcmVzWzBdID09IEZBTFNFICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAgICAgJGtleSA9IG1kNSgkZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLiR1aWQuJHJlc1sxXVsnY3JlYXRlZGF0ZSddLiR0aGlzLT5nZXRfc2FsdCgpKTsKICAgICAgICAgICAgJHRoaXMtPl9lbmNyeXB0aW9uX2tleSA9ICRrZXk7CiAgICAgICAgICAgIHJldHVybiBUUlVFOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHR1aWQgPSAkdGhpcy0+TG9nZ2VkSW5JZCgpOwogICAgICAgICAgICBpZiggKCR0dWlkICE9ICR1aWQgfHwgJHR1aWQgPD0gMCkgJiYgJGZvcmNlID09PSBGQUxTRSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+R2V0VXNlckluZm8oJHVpZCk7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHJlcykgfHwgJHJlc1swXSA9PSBGQUxTRSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgICAgICRrZXkgPSBtZDUoJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXS4kdWlkLiRyZXNbMV1bJ2NyZWF0ZWRhdGUnXS4kdGhpcy0+Z2V0X3NhbHQoKSk7CiAgICAgICAgICAgICR0aGlzLT5fZW5jcnlwdGlvbl9rZXkgPSAka2V5OwogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBmdW5jdGlvbiBEZWNyeXB0VXNlckRhdGEoJHVpZCwkZGF0YSkKICAgIHsKICAgICAgICAkdWlkID0gKGludCkkdWlkOwogICAgICAgIGlmKCAkdWlkIDwgMSApIHJldHVybjsKICAgICAgICAkdGhpcy0+U2V0RW5jcnlwdGlvbktleSgkdWlkLFRSVUUpOwogICAgICAgICR4ID0gdHJpbShjZ2VfZW5jcnlwdDo6ZGVjcnlwdCgkdGhpcy0+X2VuY3J5cHRpb25fa2V5LGJhc2U2NF9kZWNvZGUoJGRhdGEpKSk7CiAgICAgICAgcmV0dXJuICR4OwogICAgfQoKICAgIGZ1bmN0aW9uIENvdW50VGVtcENvZGVSZWNvcmRzKCkKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0REIoKTsKICAgICAgICAkcSA9ICJTRUxFQ1QgQ09VTlQoKikgQVMgY291bnQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdGVtcGNvZGUiOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEgKTsKICAgICAgICBpZiggISRkYnJlc3VsdCApIHJldHVybiAwOwogICAgICAgICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiAgICAgICAgcmV0dXJuICRyb3dbJ2NvdW50J107CiAgICB9CgogICAgZnVuY3Rpb24gRXhwaXJlVGVtcENvZGVzKCRleHBpcnljb2RlKQogICAgewogICAgICAgICRkYiA9IFxjZ2VfdXRpbHM6OmdldF9kYigpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRkYi0+QmVnaW5UcmFucygpOwogICAgICAgICAgICAkZXhwaXJlcyA9IHN0cnRvdGltZSggJGV4cGlyeWNvZGUgKTsKICAgICAgICAgICAgJHEgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3RlbXBjb2RlIFdIRVJFIGNyZWF0ZWQgPiA/IjsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRleHBpcmVzICkgKTsKICAgICAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRkYi0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICAkbW9kID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICAgICBhdWRpdCgnJywkbW9kLT5HZXROYW1lKCksJ0NvdWxkIGV4cGlyZSB0ZW1wIGNvZGVzICcpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coX19NRVRIT0RfXyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBSZW1vdmVVc2VyVGVtcENvZGUoICR1aWQgKQogICAgewogICAgICAgICRkYiA9IFxjZ2VfdXRpbHM6OmdldF9kYigpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR1aWQgPSAoaW50KSAkdWlkOwogICAgICAgICAgICBpZiggJHVpZCA8IDEgKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICRkYi0+QmVnaW5UcmFucygpOwogICAgICAgICAgICAkcSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdGVtcGNvZGUgV0hFUkUgdXNlcmlkID0gPyI7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkdWlkICkgKTsKICAgICAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRkYi0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICAkbW9kID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICAgICBhdWRpdCgkdWlkLCRtb2QtPkdldE5hbWUoKSwnQ291bGQgcmVtb3ZlIHRlbXAgY29kZScpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coX19NRVRIT0RfXyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gR2V0VXNlclRlbXBDb2RlKCAkdWlkICkKICAgIHsKICAgICAgICBpZiggISR1aWQgKSByZXR1cm4gZmFsc2U7CiAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICAgJHEgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdGVtcGNvZGUgV0hFUkUgdXNlcmlkID0gPyBPUkRFUiBCWSBjcmVhdGVkIERFU0MiOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+R2V0Um93KCAkcSwgYXJyYXkoICR1aWQgKSk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRkYnJlc3VsdCkgJiYgY291bnQoJGRicmVzdWx0KSApIHJldHVybiAkZGJyZXN1bHRbJ2NvZGUnXTsKICAgIH0KCgogICAgZnVuY3Rpb24gU2V0VXNlclRlbXBDb2RlKCAkdWlkLCAkY29kZSApCiAgICB7CiAgICAgICAgJHVpZCA9IChpbnQpICR1aWQ7CiAgICAgICAgJGNvZGUgPSB0cmltKCRjb2RlKTsKICAgICAgICBpZiggJHVpZCA8IDEgfHwgISRjb2RlICkgcmV0dXJuIEZBTFNFOwogICAgICAgICRkYiA9IFxjZ2VfdXRpbHM6OmdldF9kYigpOwoKICAgICAgICB0cnkgewogICAgICAgICAgICAkZGItPkJlZ2luVHJhbnMoKTsKICAgICAgICAgICAgJHEgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3RlbXBjb2RlIFdIRVJFIHVzZXJpZCA9ID8nOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHEsYXJyYXkoJHVpZCkpOwoKICAgICAgICAgICAgJHEgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3RlbXBjb2RlIFZBTFVFUyg/LD8sTk9XKCkpIjsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICR1aWQsICRjb2RlICkgKTsKICAgICAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRkYi0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICAkbW9kID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICAgICBhdWRpdCgkdWlkLCRtb2QtPkdldE5hbWUoKSwnQ291bGQgc2V0IHRlbXAgY29kZScpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coX19NRVRIT0RfXyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gU2V0UHJvcGVydHlEZWZuKCAkbmFtZSwgJG5ld25hbWUsICRwcm9tcHQsICRsZW5ndGgsICR0eXBlLCAkbWF4bGVuZ3RoID0gMCwgJGF0dHJpYnMgPSAnJywgJGZvcmNlX3VuaXF1ZSA9IDAsICRlbmNyeXB0ID0gMCApCiAgICB7CiAgICAgICAgJGRiID0gJHRoaXMtPmdldERiKCk7CgogICAgICAgIGlmKCAkbWF4bGVuZ3RoID09IDAgKSAkbWF4bGVuZ3RoID0gJGxlbmd0aDsKICAgICAgICAkcSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BkZWZuCiAgICAgICAgICAgICAgU0VUIG5hbWUgPSA/LCBwcm9tcHQgPSA/LCB0eXBlID0gPywgbGVuZ3RoID0gPywgbWF4bGVuZ3RoID0gPywgYXR0cmlicyA9ID8sIGZvcmNlX3VuaXF1ZSA9ID8sIGVuY3J5cHQgPSA/CiAgICAgICAgICAgICAgV0hFUkUgbmFtZSA9ID8iOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkbmV3bmFtZSwgJHByb21wdCwgJHR5cGUsICRsZW5ndGgsICRtYXhsZW5ndGgsICRhdHRyaWJzLCAkZm9yY2VfdW5pcXVlLCAkZW5jcnlwdCwgJG5hbWUgKSk7CiAgICAgICAgaWYoICEkZGJyZXN1bHQgKSByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgoKICAgIGZ1bmN0aW9uIERlbGV0ZVByb3BlcnR5RGVmbiggJG5hbWUgKQogICAgewogICAgICAgICRkYiA9IFxjZ2VfdXRpbHM6OmdldF9kYigpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRkYi0+QmVnaW5UcmFucygpOwogICAgICAgICAgICAkdGhpcy0+RGVsZXRlU2VsZWN0T3B0aW9ucygkbmFtZSk7CgogICAgICAgICAgICAkcSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBXSEVSRSB0aXRsZSA9ID8nOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHEsYXJyYXkoJG5hbWUpKTsKCiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgZ3JvdXBfaWQsc29ydF9rZXkgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBwcm9wbWFwIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgICAgICAgJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7CgogICAgICAgICAgICBpZiggaXNfYXJyYXkoJGRicikgJiYgY291bnQoJGRicikgKSB7CiAgICAgICAgICAgICAgICAkcSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcAogICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCBzb3J0X2tleSA9IHNvcnRfa2V5IC0gMQogICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGdyb3VwX2lkID0gPyBBTkQgc29ydF9rZXkgPiA/JzsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRkYnIgYXMgJHJvdyApIHsKICAgICAgICAgICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRyb3dbJ2dyb3VwX2lkJ10sJHJvd1snc29ydF9rZXknXSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkcSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBwcm9wbWFwIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxLGFycmF5KCRuYW1lKSk7CgogICAgICAgICAgICAkcSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gV0hFUkUgbmFtZT0/IjsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRuYW1lICkgKTsKCiAgICAgICAgICAgICRkYi0+Q29tbWl0VHJhbnMoKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkZGItPlJvbGxiYWNrVHJhbnMoKTsKICAgICAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICAgICAgYXVkaXQoJycsJG1vZC0+R2V0TmFtZSgpLCdDb3VsZCBub3QgZGVsZXRlIHByb3BlcnR5ICcuJG5hbWUpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coX19NRVRIT0RfXyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KCiAgICB9CgoKICAgIGZ1bmN0aW9uIEdldFByb3BlcnR5R3JvdXBSZWxhdGlvbnMoICR0aXRsZSApCiAgICB7CiAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CgogICAgICAgICRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCBXSEVSRSBuYW1lID0gPyBPUkRFUiBCWSBzb3J0X2tleSBERVNDIjsKICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJHRpdGxlICkgKTsKICAgICAgICBpZiggISRkYnJlc3VsdCApIHJldHVybiBhcnJheShGQUxTRSwkZGItPkVycm9yTXNnKCkpOwogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgIHdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkgewogICAgICAgICAgICAkcmVzdWx0W10gPSAkcm93OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCgovKioKICogUmV0dXJuIHRoZSB1bml4IHRpbWVzdGFtcCBvZiB0aGUgdXNlcnMgZXhwaXJ5IGRhdGUKICogb3IgZmFsc2U7CiAqLwogICAgZnVuY3Rpb24gR2V0RXhwaXJ5RGF0ZSgkdWlkKQogICAgewogICAgICAgIGlmKCAhJHVpZCApIHJldHVybiBmYWxzZTsKICAgICAgICAkcmVzID0gZmV1X3VzZXJfY2FjaGU6OmdldF91c2VyKCR1aWQpOwogICAgICAgIGlmKCBpc19hcnJheSgkcmVzKSAmJiAkcmVzWydleHBpcmVzJ10gIT0gJycgKSB7CiAgICAgICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICAgICByZXR1cm4gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXNbJ2V4cGlyZXMnXSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCgogICAgZnVuY3Rpb24gSXNBY2NvdW50RXhwaXJlZCggJHVpZCApCiAgICB7CiAgICAgICAgaWYoICEkdWlkICkgcmV0dXJuIHRydWU7IC8vIGR1bm5vIGFib3V0IHRoaXMKICAgICAgICAkZXhwaXJ5ID0gJHRoaXMtPkdldEV4cGlyeURhdGUoICR1aWQgKTsKCiAgICAgICAgaWYoICEkZXhwaXJ5ICkgcmV0dXJuIHRydWU7CiAgICAgICAgaWYoICRleHBpcnkgPCB0aW1lKCkgKSByZXR1cm4gdHJ1ZTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgoKICAgIGZ1bmN0aW9uIEdldFVzZXJQcm9wZXJ0eVJlbGF0aW9ucyggJHVpZCApCiAgICB7CiAgICAgICAgJGdyb3VwcyA9ICR0aGlzLT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdWlkKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRncm91cHMpIHx8IGNvdW50KCRncm91cHMpID09IDAgKSByZXR1cm47CgogICAgICAgICR1cHJvcHMgPSBhcnJheSgpOwogICAgICAgIGZvciggJGEgPSAwOyAkYSA8IGNvdW50KCRncm91cHMpOyAkYSsrICkgewogICAgICAgICAgICAkZ2lkID0gJGdyb3Vwc1skYV1bJ2dyb3VwaWQnXTsKICAgICAgICAgICAgJHJlbG5zID0gJHRoaXMtPkdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoJGdpZCk7CiAgICAgICAgICAgICR1cHJvcHMgPSBSUlV0aWxzOjphcnJheV9tZXJnZV9ieV9uYW1lX3JlcXVpcmVkKCR1cHJvcHMsJHJlbG5zKTsKICAgICAgICAgICAgdXNvcnQoJHVwcm9wcywgYXJyYXkoJ2NnZV9hcnJheScsJ2NvbXBhcmVfZWxlbWVudHNfYnlfc29ydG9yZGVyX2tleScpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR1cHJvcHM7CiAgICB9CgogICAgZnVuY3Rpb24gR2V0R3JvdXBQcm9wZXJ0eVJlbGF0aW9ucyggJGdycGlkICkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZ3JvdXBwcm9wbWFwKSApIHsKICAgICAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICAgICAgICRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCBPUkRFUiBCWSBncm91cF9pZCxzb3J0X2tleSBERVNDIjsKICAgICAgICAgICAgJHRoaXMtPl9ncm91cHByb3BtYXAgPSAkZGItPkdldEFycmF5KCRxKTsKICAgICAgICAgICAgaWYoICEkdGhpcy0+X2dyb3VwcHJvcG1hcCApIHJldHVybiBhcnJheShGQUxTRSwkZGItPkVycm9yTXNnKCkpOwogICAgICAgIH0KCiAgICAgICAgJHJlcyA9IGFycmF5KCk7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9ncm91cHByb3BtYXApOyAkaSsrICkgewogICAgICAgICAgICAkcm93ID0gJHRoaXMtPl9ncm91cHByb3BtYXBbJGldOwogICAgICAgICAgICBpZiggJHJvd1snZ3JvdXBfaWQnXSA8ICRncnBpZCApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggJHJvd1snZ3JvdXBfaWQnXSA+ICRncnBpZCApIGJyZWFrOwoKICAgICAgICAgICAgJHJlc1tdID0gJHJvdzsKICAgICAgICB9CiAgICAgICAgaWYoICFjb3VudCgkcmVzKSApIHJldHVybiBhcnJheShGQUxTRSwnbm90Zm91bmQnKTsKCiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgoKICAgIGZ1bmN0aW9uIEFkZEdyb3VwUHJvcGVydHlSZWxhdGlvbiggJGdycGlkLCAkcHJvcG5hbWUsICRzb3J0a2V5LCAkbG9zdHVuLCAkdmFsICkKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiAgICAgICAgJHEgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCBWQUxVRVMoPyw/LD8sPyw/KSI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRwcm9wbmFtZSwgJGdycGlkLCAkc29ydGtleSwgJHZhbCwgJGxvc3R1biApKTsKICAgICAgICBpZiggISRkYnJlc3VsdCApIHJldHVybiBhcnJheShGQUxTRSwkZGItPkVycm9yTXNnKCkpOwogICAgICAgIHJldHVybiBhcnJheShUUlVFKTsKICAgIH0KCgogICAgZnVuY3Rpb24gRGVsZXRlQWxsR3JvdXBQcm9wZXJ0eVJlbGF0aW9ucyggJGdycGlkICkKICAgIHsKICAgICAgICAkZGIgPSBcY2dlX3V0aWxzOjpnZXRfZGIoKTsKICAgICAgICB0cnkgewogICAgICAgICAgICAkZGItPkJlZ2luVHJhbnMoKTsKICAgICAgICAgICAgJHEgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCBXSEVSRSBncm91cF9pZCA9ID8iOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJGdycGlkICkpOwogICAgICAgICAgICAkZGItPkNvbW1pdFRyYW5zKCk7CiAgICAgICAgICAgIHJldHVybiBhcnJheShUUlVFKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRkYi0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICAkbW9kID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICAgICBhdWRpdCgnJywkbW9kLT5HZXROYW1lKCksJ0NvdWxkIG5vdCBkZWxldGUgYWxsIGdyb3VwIHByb3BlcnR5IHJlbGF0aW9ucycpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coX19NRVRIT0RfXyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gRGVsZXRlR3JvdXBQcm9wZXJ0eVJlbGF0aW9uKCAkZ3JwaWQsICRwcm9wbmFtZSApCiAgICB7CiAgICAgICAgJGRiID0gXGNnZV91dGlsczo6Z2V0X2RiKCk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJGRiLT5CZWdpblRyYW5zKCk7CiAgICAgICAgICAgICRxID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19ncm91cHByb3BtYXAgV0hFUkUgbmFtZSA9ID8gQU5EIGdyb3VwX2lkID0gPyI7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkcHJvcG5hbWUsICRncnBpZCApKTsKICAgICAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwogICAgICAgICAgICByZXR1cm4gYXJyYXkoVFJVRSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkZGItPlJvbGxiYWNrVHJhbnMoKTsKICAgICAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICAgICAgYXVkaXQoJycsJG1vZC0+R2V0TmFtZSgpLCdDb3VsZCBub3QgZGVsZXRlIGdyb3VwIHByb3BlcnR5IHJlbGF0aW9uJyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZyhfX01FVEhPRF9fKTsKICAgICAgICAgICAgZGVidWdfdG9fbG9nKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgICAgICByZXR1cm4gYXJyYXkoRkFMU0UsJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgfQoKCiAgICBmdW5jdGlvbiBBZGRQcm9wZXJ0eURlZm4oICRuYW1lLCAkcHJvbXB0LCAkdHlwZSwgJGxlbmd0aCwgJG1heGxlbmd0aCA9IDAsICRhdHRyaWJzID0gJycsICRmb3JjZV91bmlxdWUgPSAwLCAkZW5jcnlwdCA9IDAgKQogICAgewogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgIGlmKCAkbWF4bGVuZ3RoID09IDAgKSAkbWF4bGVuZ3RoID09ICRsZW5ndGg7CgogICAgICAgICRwID0gYXJyYXkoICRuYW1lLCAkcHJvbXB0LCAkdHlwZSwgJGxlbmd0aCwgJG1heGxlbmd0aCwgJGF0dHJpYnMsICRmb3JjZV91bmlxdWUsICRlbmNyeXB0ICk7CiAgICAgICAgJHEgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BkZWZuCiAgICAgICAgICAobmFtZSxwcm9tcHQsdHlwZSxsZW5ndGgsbWF4bGVuZ3RoLGF0dHJpYnMsZm9yY2VfdW5pcXVlLGVuY3J5cHQpCiAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPykiOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsICRwICk7CiAgICAgICAgaWYoICRkYnJlc3VsdCA9PSBmYWxzZSApIHJldHVybiBhcnJheShGQUxTRSwgJGRiLT5zcWwuJzxici8+Jy4kZGItPkVycm9yTXNnKCkpOwogICAgICAgICRuZXdfaWQgPSAkZGItPkluc2VydF9JRCgpOwoKICAgICAgICAkdGhpcy0+X2NhY2hlZF9wcm9wZGVmbiA9IG51bGw7CiAgICAgICAgcmV0dXJuIGFycmF5KFRSVUUpOwogICAgfQoKICAgIGZ1bmN0aW9uIFNldFByb3BlcnR5RGVmbkV4dHJhKCRuYW1lLCRleHRyYSkKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoJGV4dHJhKSApICRleHRyYSA9IHNlcmlhbGl6ZSgkZXh0cmEpOwogICAgICAgICRkYiA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gU0VUIGV4dHJhID0gPyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGV4dHJhLCRuYW1lKSk7CiAgICB9CgogICAgZnVuY3Rpb24gQWRkU2VsZWN0T3B0aW9ucyggJG5hbWUsICRvcHRpb25zICkKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAkaW5zZXJ0X3ZhbHMgPSAnJzsKICAgICAgICAkb3JkZXJfaWQgPSAwOwogICAgICAgIGZvcmVhY2ggKCRvcHRpb25zIGFzICRvcHR0ZXh0KXsKLy8gaWYgbm8gYWN0dWFsIHRleHQgaW4gdGhlIGxpbmUsIG1ha2Ugc3VyZSBpdCBlcXVhbHMgJycsCi8vIGluIG9yZGVyIG5vdCB0byBhZGQgaXQgdG8gdGhlIGRiCiAgICAgICAgICAgICRvcHR0ZXh0ID0gdHJpbSgkb3B0dGV4dCk7CiAgICAgICAgICAgIGlmKHRyaW0oJG9wdHRleHQpID09ICcnIHx8IHRyaW0oJG9wdHRleHQpID09ICdfXycgKSBjb250aW51ZTsKCiAgICAgICAgICAgICRvcHRuYW1lID0gdHJpbSgkb3B0dGV4dCk7CiAgICAgICAgICAgIGlmKCBzdHJjaHIoICRvcHR0ZXh0LCAnPScgKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgnPScsJG9wdHRleHQsMik7CiAgICAgICAgICAgICAgICAkb3B0bmFtZSA9IHRyaW0oJHRtcFsxXSk7CiAgICAgICAgICAgICAgICAkb3B0dGV4dCA9IHRyaW0oJHRtcFswXSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRvcmRlcl9pZCsrOwogICAgICAgICAgICAkaW5zZXJ0X3ZhbHMgLj0gIignIgogICAgICAgICAgICAgICAgLiAkb3JkZXJfaWQgLiAiJywgJyIKICAgICAgICAgICAgICAgIC4gJG9wdG5hbWUgLiAiJywgJyIKICAgICAgICAgICAgICAgIC4gJG9wdHRleHQgLiAiJywgJyIKICAgICAgICAgICAgICAgIC4gJG5hbWUuICInKSwgIjsKICAgICAgICB9CgogICAgICAgICRpbnNlcnRfdmFscyA9IHN1YnN0cigkaW5zZXJ0X3ZhbHMsIDAsIC0yKTsKCiAgICAgICAgJGRiID0gJHRoaXMtPmdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19kcm9wZG93bnMKICAgIAkJCSAgKG9yZGVyX2lkLCBvcHRpb25fbmFtZSwgb3B0aW9uX3RleHQsIGNvbnRyb2xfbmFtZSkKCQkJICAgICAgVkFMVUVTICIgLiAkaW5zZXJ0X3ZhbHM7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgICAgaWYoICRkYnJlc3VsdCA9PSBmYWxzZSApIHJldHVybiBhcnJheShGQUxTRSwgJGRiLT5FcnJvck1zZygpKTsKCiAgICAgICAgJHRoaXMtPl9tdWx0aXNlbGVjdF9vcHRpb25zID0gbnVsbDsKICAgICAgICByZXR1cm4gYXJyYXkoVFJVRSk7CiAgICB9CgoKCiAgICBmdW5jdGlvbiBEZWxldGVQcm9wZXJ0eURlZm5zKCkKICAgIHsKICAgICAgICAkZGIgPSBcY2dlX3V0aWxzOjpnZXRfZGIoKTsKICAgICAgICB0cnkgewogICAgICAgICAgICAkZGVmbnMgPSAkdGhpcy0+R2V0UHJvcGVydHlEZWZucygpOwogICAgICAgICAgICBmb3JlYWNoKCAkZGVmbnMgYXMgJG5hbWUgPT4gJHJlYyApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5EZWxldGVQcm9wZXJ0eURlZm4oJG5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT5fY2FjaGVkX3Byb3BkZWZuID0gbnVsbDsKICAgICAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwogICAgICAgICAgICByZXR1cm4gYXJyYXkoVFJVRSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkZGItPlJvbGxiYWNrVHJhbnMoKTsKICAgICAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICAgICAgYXVkaXQoJycsJG1vZC0+R2V0TmFtZSgpLCdDb3VsZCBub3QgZGVsZXRlIGFsbCBwcm9wZXJ0eSBkZWZpbml0aW9ucycpOwogICAgICAgICAgICBkZWJ1Z190b19sb2coX19NRVRIT0RfXyk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH0KCgogICAgZnVuY3Rpb24gRGVsZXRlU2VsZWN0T3B0aW9ucyggJG5hbWUgKQogICAgewogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICRxID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19kcm9wZG93bnMgV0hFUkUgY29udHJvbF9uYW1lID0gPyI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRuYW1lICkgKTsKICAgICAgICBpZiggJGRicmVzdWx0ID09IGZhbHNlICkgcmV0dXJuIGFycmF5KEZBTFNFLCRkYi0+RXJyb3JNc2coKSk7CiAgICAgICAgJHRoaXMtPl9tdWx0aXNlbGVjdF9vcHRpb25zID0gbnVsbDsKICAgICAgICByZXR1cm4gYXJyYXkoVFJVRSk7CiAgICB9CgoKICAgIGZ1bmN0aW9uIEdlbmVyYXRlUmFuZG9tVXNlcm5hbWUoICRwcmVmaXggPSAndXNlcicgKQogICAgewogICAgICAgIHNyYW5kKHRpbWUoKSk7CiAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKCiAgICAgICAgJG51bSA9IHJhbmQoMTAwLDk5OTk5KTsKICAgICAgICAkY291bnQgPSAwOwogICAgICAgICRzdWZmaXggPSAnJzsKICAgICAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgidXNlcm5hbWVfaXNfZW1haWwiKSkgJHN1ZmZpeCA9ICdAc2FtcGxlLmNvbSc7CiAgICAgICAgd2hpbGUoICRjb3VudCA8IDEwMCApIHsgLy8gdG9kbywgMTAwIHNob3VsZCBiZSBjb25maWd1cmFibGU/CiAgICAgICAgICAgICRxID0gIlNFTEVDVCBpZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc191c2VycyBXSEVSRSB1c2VybmFtZSA9ID8iOwogICAgICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoICRxLCBhcnJheSggJHByZWZpeC4kbnVtLiRzdWZmaXggKSApOwogICAgICAgICAgICBpZiggISR0bXAgKSByZXR1cm4gJHByZWZpeC4kbnVtLiRzdWZmaXg7CiAgICAgICAgICAgICRudW0gPSByYW5kKDEwMCw5OTk5OSk7CiAgICAgICAgICAgICsrJGNvdW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgoKICAgIGZ1bmN0aW9uIENsZWFyUHJvcGVydHlDYWNoZSgpCiAgICB7CiAgICAgICAgdW5zZXQoJHRoaXMtPl9jYWNoZWRfcHJvcGRlZm5zKTsKICAgIH0KCgogICAgZnVuY3Rpb24gX2NhY2hlX3Byb3BlcnR5ZGVmbnMoKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9jYWNoZWRfcHJvcGRlZm5zKSApIHsKICAgICAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICAgICAgICR0aGlzLT5fY2FjaGVkX3Byb3BkZWZucyA9IGFycmF5KCk7CgogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4nOwogICAgICAgICAgICAkZGF0YSA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgICAgICAgaWYoICEkZGF0YSApIHJldHVybjsKCiAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRkYXRhKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgIGlmKCAhZW1wdHkoJGRhdGFbJGldWydleHRyYSddKSAmJiAhaXNfbnVsbCgkZGF0YVskaV1bJ2V4dHJhJ10pICkgJGRhdGFbJGldWydleHRyYSddID0gQHVuc2VyaWFsaXplKCRkYXRhWyRpXVsnZXh0cmEnXSk7CiAgICAgICAgICAgICAgICBpZiggIWVtcHR5KCRkYXRhWyRpXVsnYXR0cmlicyddKSApICRkYXRhWyRpXVsnZXh0cmEnXSA9IHVuc2VyaWFsaXplKCRkYXRhWyRpXVsnYXR0cmlicyddKTsKICAgICAgICAgICAgICAgICR0aGlzLT5fY2FjaGVkX3Byb3BkZWZuc1skZGF0YVskaV1bJ25hbWUnXV0gPSAkZGF0YVskaV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKICAgIGZ1bmN0aW9uIEdldFByb3BlcnR5RGVmbiggJG5hbWUgKQogICAgewogICAgICAgICR0aGlzLT5fY2FjaGVfcHJvcGVydHlkZWZucygpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9jYWNoZWRfcHJvcGRlZm5zKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fY2FjaGVkX3Byb3BkZWZuc1skbmFtZV0pKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fY2FjaGVkX3Byb3BkZWZuc1skbmFtZV07CiAgICB9CgoKICAgIGZ1bmN0aW9uIEdldFByb3BlcnR5RGVmbnMoKQogICAgewogICAgICAgICR0aGlzLT5fY2FjaGVfcHJvcGVydHlkZWZucygpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJHRoaXMtPl9jYWNoZWRfcHJvcGRlZm5zKSApIHJldHVybiBGQUxTRTsKICAgICAgICByZXR1cm4gJHRoaXMtPl9jYWNoZWRfcHJvcGRlZm5zOwogICAgfQoKCiAgICAvKioKICAgICAqIFJldHVybnMgc2VsZWN0IG9wdGlvbnMgYXMgYSBzaW1wbGUgb3IgYSAyIGRpbWVuc2lvbmFsIGFycmF5CiAgICAgKgogICAgICogQHBhcmFtIFN0cmluZyAkY29udHJvbG5hbWUgLSBuYW1lIG9mIHRoZSBkcm9wZG93biBhcyBpbiB0aGUgcHJvcGRlZm4gdGFibGUKICAgICAqIEBwYXJhbSBpbnQgJGRpbSAtIGRpbWVuc2lvbiBvZiB0aGUgYXJyYXkKICAgICAqIAlpZiAkZGltID09IDEsIHJldHVybnMgYSAxIGRpbWVuc2lvbmFsIGFycmF5IHRleHQ9Pm5hbWUKICAgICAqICAgIGlmICRkaW0gPT0gMiwgcmV0dXJucyBhIDIgZGltZW5zaW9uYWwgYXJyYXksIGVhY2ggaXRlbSBiZWluZyBhbgogICAgICogCQlhcnJheSB3aXRoIHByb3BlcnRpZXMgJ29wdGlvbl9uYW1lJywgJ29wdGlvbl90ZXh0JywgJ2NvbnRyb2xfbmFtZScuCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldFNlbGVjdE9wdGlvbnMoICRjb250cm9sbmFtZSwgJGRpbT0xICkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fbXVsdGlzZWxlY3Rfb3B0aW9ucyApIHsKICAgICAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CgogICAgICAgICAgICAkcSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19kcm9wZG93bnMgT1JERVIgQlkgb3JkZXJfaWQiOwogICAgICAgICAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkZGJyKSApICR0aGlzLT5fbXVsdGlzZWxlY3Rfb3B0aW9ucyA9ICRkYnI7CiAgICAgICAgfQoKICAgICAgICBpZiggIWNvdW50KCR0aGlzLT5fbXVsdGlzZWxlY3Rfb3B0aW9ucykgKSByZXR1cm4gZmFsc2U7CgogICAgICAgICRyZXQgPSBhcnJheSgpOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5fbXVsdGlzZWxlY3Rfb3B0aW9ucyk7ICRpKysgKSB7CiAgICAgICAgICAgICRyb3cgPSAkdGhpcy0+X211bHRpc2VsZWN0X29wdGlvbnNbJGldOwoKICAgICAgICAgICAgaWYoICRyb3dbJ2NvbnRyb2xfbmFtZSddID09ICRjb250cm9sbmFtZSApIHsKICAgICAgICAgICAgICAgIGlmKCAkZGltID09IDIgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJldFtdID0gJHJvdzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRyZXRbdHJpbSgkcm93WydvcHRpb25fdGV4dCddKV0gPSB0cmltKCRyb3dbJ29wdGlvbl9uYW1lJ10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCAhY291bnQoJHJldCkgKSByZXR1cm4gZmFsc2U7CgogICAgICAgIHJldHVybiAkcmV0OwogICAgfQoKCiAgICAvKioKICAgICAqIExvZyB0aGUgdXNlciBpbnRvIHRoZSBzaXRlLgogICAgICogVGhpcyBjaGVja3MgdGhlIHVzZXIgcGFzc3dvcmQsIGFuZCBwcmVmZXJlbmNlcyBhYm91dCBkdXBsaWNhdGUgbG9naW5zIGFuZCBvdGVociB0aGluZ3MgdGhlbiBtYXJrcyB0aGUgdXNlcgogICAgICogYXMgbG9nZ2VkIGluIHdpdGggdGhlIGFwcHJvcHJpYXRlIGRhdGFiYXNlIGNoYW5nZS4gIEl0IGRvZXMgbm90IHNlbmQgZXZlbnRzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZCBUaGUgcGxhaW50ZXh0IHBhc3N3b3JkCiAgICAgKiBAcGFyYW0gc3RyaW5nICRncm91cHMgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cCBuYW1lcyB0aGF0IHRoZSB1c2VyIG11c3QgYmUgYSBtZW1iZXIgb2YuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRpZ25vcmVkCiAgICAgKiBAcGFyYW0gYm9vbCAkZm9yY2VfbG9nb3V0IE9wdGlvbmFsbHkgZm9yY2UgdGhlIHVzZXIgdG8gbG9nb3V0IGJlZm9yZSBsb2dnaW5nIGhpbSBpbiBhZ2Fpbi4KICAgICAqLwogICAgZnVuY3Rpb24gTG9naW4oICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZ3JvdXBzID0gJycsICRpZ25vcmVkID0gZmFsc2UsICRmb3JjZV9sb2dvdXQgPSBmYWxzZSkKICAgIHsKICAgICAgICAkZXJyb3IgPSAnJzsKICAgICAgICAkdWlkID0gLTE7CiAgICAgICAgJGdDbXMgPSBDbXNBcHA6OmdldF9pbnN0YW5jZSgpOwogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICRtb2QgPSAkdGhpcy0+R2V0TW9kdWxlKCk7CgogICAgICAgIGlmKCAhJHRoaXMtPkNoZWNrUGFzc3dvcmQoICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZ3JvdXBzICkgKSB7CiAgICAgICAgICAgICR1aWQgPSAkdGhpcy0+R2V0VXNlcklEKCAkdXNlcm5hbWUgKTsKICAgICAgICAgICAgaWYoICEkdWlkICkgJHVpZCA9IC0xOwogICAgICAgICAgICAkZXJyb3IgPSAkbW9kLT5MYW5nKCdlcnJvcl9sb2dpbmZhaWxlZCcpOwogICAgICAgICAgICAkdGhpcy0+YWRkX2hpc3RvcnkoJHVpZCwnZmFpbCcpOwogICAgICAgICAgICByZXR1cm4gWyBGQUxTRSwgJG1vZC0+TGFuZygnZXJyb3JfbG9naW5mYWlsZWQnKSBdOwogICAgICAgIH0KCiAgICAgICAgJHVpZCA9ICR0aGlzLT5HZXRVc2VySUQoICR1c2VybmFtZSApOwogICAgICAgIGlmKCAhJHVpZCApIHJldHVybiBbIEZBTFNFLCAkbW9kLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSBdOwogICAgICAgIGlmKCAkZm9yY2VfbG9nb3V0ICkgJHRoaXMtPkxvZ291dCgkdWlkKTsKCiAgICAgICAgaWYoICR0aGlzLT5Jc0FjY291bnRFeHBpcmVkKCAkdWlkICkgKSByZXR1cm4gYXJyYXkoRkFMU0UsJG1vZC0+TGFuZygnZXJyb3JfYWNjb3VudGV4cGlyZWQnKSk7CiAgICAgICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ2FsbG93X3JlcGVhdGVkX2xvZ2lucycpID09IDAgKSB7CiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGlzIHVzZXIgaXNuJ3QgYWxyZWFkeSBsb2dnZWQgaW4KICAgICAgICAgICAgJHEgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfbG9nZ2VkaW4gV0hFUkUgVVNFUklEID0gPyI7CiAgICAgICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkdWlkICkgKTsKICAgICAgICAgICAgaWYoICRkYnJlc3VsdCAmJiAkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgKSByZXR1cm4gWyBGQUxTRSwgJG1vZC0+TGFuZygnZXJyb3Jfbm9yZXBlYXRlZGxvZ2lucycpIF07CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+X19yZXNldCgpOwogICAgICAgICR0aGlzLT5fc2V0X3NhdmVkX2xvZ2luZGV0YWlscygkdWlkKTsKCiAgICAgICAgLy8gYW5kIGFkZCBoaXN0b3J5IGluZm8KICAgICAgICBhdWRpdCgkdWlkLCRtb2QtPkdldE5hbWUoKSwiJHVzZXJuYW1lIGxvZ2dlZCBpbiIpOwogICAgICAgICR0aGlzLT5hZGRfaGlzdG9yeSgkdWlkLCdsb2dpbicpOwoKICAgICAgICAvLyBzZW5kIHRoZSBldmVudC4KICAgICAgICAkbW9kLT5TZW5kRXZlbnQoJ09uTG9naW4nLGFycmF5KCdpZCc9PiR1aWQsJ3VzZXJuYW1lJz0+JHVzZXJuYW1lLCdpcCc9PiRpcCkpOwoKICAgICAgICByZXR1cm4gWyAkdWlkIF07CiAgICB9CgoKICAgIC8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KICAgIC8vIHJldHVybnMgdHJ1ZS9mYWxzZQogICAgZnVuY3Rpb24gQXNzaWduVXNlclRvR3JvdXAoICR1aWQsICRnaWQgKQogICAgewogICAgICAgICR1aWQgPSAoaW50KSAkdWlkOwogICAgICAgICRnaWQgPSAoaW50KSAkZ2lkOwogICAgICAgIGlmKCAkdWlkIDwgMSB8fCAkZ2lkIDwgMSApIHJldHVybiBmYWxzZTsKICAgICAgICAvLyB2YWxpZGF0ZSB0aGUgdXNlciBpZAogICAgICAgIGlmKCAhJHRoaXMtPlVzZXJFeGlzdHNCeUlEKCAkdWlkICkgKSByZXR1cm4gZmFsc2U7CgogICAgICAgIC8vIHZhbGlkYXRlIHRoZSBncm91cCBpZAogICAgICAgIGlmKCAhJHRoaXMtPkdyb3VwRXhpc3RzQnlJRCggJGdpZCApICkgcmV0dXJuIGZhbHNlOwoKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAvLyBtYWtlIHN1cmUgaXQgYWxyZWFkeSBkb2Vzbid0IGV4aXN0CiAgICAgICAgJHEgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfYmVsb25ncyBXSEVSRSB1c2VyaWQgPSA/IEFORCBncm91cGlkID0gPyc7CiAgICAgICAgJHRtcCA9ICRkYi0+R2V0Um93KCRxLGFycmF5KCR1aWQsJGdpZCkpOwogICAgICAgIGlmKCAkdG1wICkgcmV0dXJuIHRydWU7CgogICAgICAgIC8vIGFkZCB0aGUgcmVjb3JkIHRvIHRoZSB0YWJsZSB0byBtYWtlIHRoaXMKICAgICAgICAvLyB1c2VyIGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAKICAgICAgICAkcSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfYmVsb25ncyAodXNlcmlkLCBncm91cGlkKSBWQUxVRVMgKD8sPykiOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkdWlkLCAkZ2lkICkgKTsKICAgICAgICByZXR1cm4oICRkYnJlc3VsdCAhPSBmYWxzZSApOwogICAgfQoKCi8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KLy8gcmV0dXJucyB0cnVlL2ZhbHNlCiAgICBmdW5jdGlvbiBJc1ZhbGlkUGFzc3dvcmQoICRwYXNzd29yZCApCiAgICB7CiAgICAgICAgLy8gYSBwYXNzd29yZCBpcyB2YWxpZCwgaWYgaXQncyBsZW5ndGggaXMKICAgICAgICAvLyB3aXRoaW4gY2VydGFpbiByYW5nZXMKICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICRtaW5sZW4gPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdtaW5fcGFzc3dvcmRsZW5ndGgnLCA2ICk7CiAgICAgICAgJG1heGxlbiA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ21heF9wYXNzd29yZGxlbmd0aCcsIDIwICk7CiAgICAgICAgJGVuaGFuY2VkcHcgPSAoaW50KSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdlbmhhbmNlZF9wYXNzd29yZCcsMCk7CiAgICAgICAgJHJlcXVpcmVkY2hhcnMgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdwYXNzd29yZF9yZXF1aXJlZGNoYXJzJyk7CiAgICAgICAgJGxlbiA9IHN0cmxlbigkcGFzc3dvcmQpOwogICAgICAgIGlmKCAkbGVuIDwgJG1pbmxlbiB8fCAkbGVuID4gJG1heGxlbiApIHsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICBpZiggJGVuaGFuY2VkcHcgKSB7CiAgICAgICAgICAgIGlmKCAhcHJlZ19tYXRjaCgnI1tBLVpdIycsJHBhc3N3b3JkKSApIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgaWYoICFwcmVnX21hdGNoKCcjWzAtOV0jJywkcGFzc3dvcmQpICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAkdG1wID0gc3RycGJyaygkcGFzc3dvcmQsJyFmJyk7CiAgICAgICAgICAgIGlmKCAkcmVxdWlyZWRjaGFycyAmJiBzdHJwYnJrKCRwYXNzd29yZCwkcmVxdWlyZWRjaGFycykgPT09IEZBTFNFICkgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgovLyByZXR1cm5zIGFuIGFycmF5CiAgICBmdW5jdGlvbiBEZWxldGVVc2VyRnVsbCggJGlkICkKICAgIHsKICAgICAgICAkZGIgPSBcY2dlX3V0aWxzOjpnZXRfZGIoKTsKICAgICAgICB0cnkgewogICAgICAgICAgICAkaWQgPSAoaW50KSAkaWQ7CiAgICAgICAgICAgIGlmKCAkaWQgPCAxICkgcmV0dXJuIGFycmF5KEZBTFNFLCdJbnZhbGlkIFVJRCcpOwogICAgICAgICAgICAkcmVzID0gJHRoaXMtPkdldFVzZXJJbmZvKCRpZCk7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHJlcykgfHwgJHJlc1swXT09IEZBTFNFICkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAkdXNlcm5hbWUgPSAkcmVzWzFdWyd1c2VybmFtZSddOwoKICAgICAgICAgICAgLy8gbG9nIHRoZSB1c2VyIG91dAogICAgICAgICAgICAkdGhpcy0+TG9nb3V0VXNlciggJGlkICk7CgogICAgICAgICAgICAvLyBzZW5kIHRoZSBldmVudC4uLiBiZWZvcmUgd2UgYWN0dWFsbHkgZGVsZXRlIHN0dWZmLgogICAgICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICAgICAkcGFybXNbJ2lkJ10gPSAkaWQ7CiAgICAgICAgICAgICRwYXJtc1sndXNlcm5hbWUnXSA9ICR1c2VybmFtZTsKICAgICAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICAgICAgJG1vZC0+U2VuZEV2ZW50KCAnT25EZWxldGVVc2VyJywgJHBhcm1zICk7CgogICAgICAgICAgICAkZGItPkJlZ2luVHJhbnMoKTsKCiAgICAgICAgICAgIC8vIGRlbGV0ZSB1c2VyIHByb3BlcnRpZXMKICAgICAgICAgICAgJHRoaXMtPkRlbGV0ZUFsbFVzZXJQcm9wZXJ0aWVzRnVsbCggJGlkICk7CgogICAgICAgICAgICAvLyBkZWxldGUgdXNlciBmcm9tIGdyb3VwcwogICAgICAgICAgICAkcmV0ID0gJHRoaXMtPlJlbW92ZVVzZXJGcm9tR3JvdXAoICRpZCwgJycgKTsKICAgICAgICAgICAgaWYoICRyZXRbMF0gPT0gZmFsc2UgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ1Byb2JsZW0gcmVtb3ZpbmcgdXNlciBmcm9tIGdyb3VwJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGUgdXNlciBoaXN0b3J5CiAgICAgICAgICAgICRxID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IFdIRVJFIHVzZXJpZCA9ID8nOwogICAgICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJGlkICkgKTsKCiAgICAgICAgICAgIC8vIGRlbGV0ZSB1c2VyIHJlY29yZAogICAgICAgICAgICAkcSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdXNlcnMgV0hFUkUgaWQgPSA/IjsKICAgICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRpZCApICk7CgogICAgICAgICAgICAvLyBhbmQgZGVsZXRlIGFueXRoaW5nIGZyb20gdGhlIHRlbXBjb2RlcyB0YWJsZSB0b28KICAgICAgICAgICAgJHEgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3RlbXBjb2RlIFdIRVJFIHVzZXJpZCA9ID8iOwogICAgICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJGlkICkgKTsKCiAgICAgICAgICAgICR0aGlzLT5fdXNlcmlkYnluYW1lID0gYXJyYXkoKTsKICAgICAgICAgICAgZmV1X3VzZXJfY2FjaGU6OmRlbF91c2VyKCRpZCk7CiAgICAgICAgICAgICRkYi0+Q29tbWl0VHJhbnMoKTsKCiAgICAgICAgICAgIHJldHVybiBhcnJheSggVFJVRSwgIiIgKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRkYi0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICAkbW9kID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICAgICBhdWRpdCgkaWQsJG1vZC0+R2V0TmFtZSgpLCdQcm9ibGVtIGRlbGV0aW5nIHVzZXI6ICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZyhfX01FVEhPRF9fKTsKICAgICAgICAgICAgZGVidWdfdG9fbG9nKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgICAgICByZXR1cm4gYXJyYXkoRkFMU0UsJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRfZ3JvdXBpbmZvKCR3aXRoX2NvdW50ID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSkgKSB7CiAgICAgICAgICAgICRhdXRoX2NvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwogICAgICAgICAgICBpZiggJGF1dGhfY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRhdXRoX2NvbnN1bWVyOjpDQVBBQklMSVRZX0xJU1RHUk9VUFMpICkgewogICAgICAgICAgICAgICAgJHRtcCA9ICRhdXRoX2NvbnN1bWVyLT5nZXRfZ3JvdXBfbGlzdChUUlVFKTsKCQkkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICBpZiggIWNvdW50KCR0bXApICkgcmV0dXJuOwogICAgICAgICAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRnaWQgPT4gJHJlYyApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wMiA9IGFycmF5KCdpZCc9PiRnaWQsJ2dyb3VwZGVzYyc9PicnKTsKICAgICAgICAgICAgICAgICAgICBpZiggaXNfc3RyaW5nKCRyZWMpICYmICFpc19hcnJheSgkcmVjKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRtcDJbJ2dyb3VwbmFtZSddID0gJHJlYzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIGlzc2V0KCRyZWNbJ25hbWUnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXAyWydncm91cG5hbWUnXSA9ICRyZWNbJ25hbWUnXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIGlzc2V0KCRyZWNbJ2dyb3VwbmFtZSddKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRtcDJbJ2dyb3VwbmFtZSddID0gJHJlY1snZ3JvdXBuYW1lJ107CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkcmVjKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRyZWNbJ2Rlc2MnXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdG1wMlsnZ3JvdXBkZXNjJ10gPSAkcmVjWydkZXNjJ107CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiggaXNzZXQoJHJlY1snZGVzY3JpcHRpb24nXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdG1wMlsnZ3JvdXBkZXNjJ10gPSAkcmVjWydkZXNjcmlwdGlvbiddOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoIGlzc2V0KCRyZWNbJ2dyb3VwZGVzYyddKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0bXAyWydncm91cGRlc2MnXSA9ICRyZWNbJ2dyb3VwZGVzYyddOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHJlY1snY291bnQnXSkgKSAkdG1wMlsnY291bnQnXSA9ICRyZWNbJ2NvdW50J107CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkb3V0WyRnaWRdID0gJHRtcDI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSA9ICRvdXQ7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHRoZSBjb25zdW1lciBkb2VzIG5vdCBwcm92aWRlIGdyb3VwIGluZm8uLi4uIHNvIHdlIGdvdHRhIGxpc3QgZW0uCiAgICAgICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBzJzsKICAgICAgICAgICAgaWYoICR3aXRoX2NvdW50ICkgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBnLiosY291bnQoYi51c2VyaWQpIEFTIGNvdW50IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2dyb3VwcyBnCiAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfYmVsb25ncyBiCiAgICAgICAgICAgICAgICAgIE9OIGcuaWQgPSBiLmdyb3VwaWQgR1JPVVAgQlkgZy5pZCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRkYnIpICkgJHRoaXMtPl9ncm91cGluZm9fY2FjaGUgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJGRiciwnaWQnKTsKICAgICAgICB9CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgovLyByZXR1cm5zIGFuIGFycmF5CiAgICBmdW5jdGlvbiBHZXRHcm91cEluZm8oICRnaWQgKQogICAgewogICAgICAgICR0aGlzLT5fZ2V0X2dyb3VwaW5mbygpOwogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSkgJiYgaXNzZXQoJHRoaXMtPl9ncm91cGluZm9fY2FjaGVbJGdpZF0pICkgcmV0dXJuICR0aGlzLT5fZ3JvdXBpbmZvX2NhY2hlWyRnaWRdOwogICAgfQoKLyoqCiAqIFJldHVybiBhbiBhcnJheSBvZiB1c2VyIGluZm9ybWF0aW9uCiAqCiAqIEBwYXJhbSBhcnJheSBBbiBhcnJheSBvZiBpbnRlZ2VyIHVzZXIgaWRzCiAqIEBwYXJhbSBib29vbGVhbiBmbGFnIGluZGljYXRpbmcgd2V0aGVyIHRvIHJldHVybiBwcm9wZXJ0eSBpbmZvcm1hdGlvbgogKiBAcmV0dXJuIGFycmF5IG9mIHVzZXIgaW5mby4gIE9yIG51bGwuCiAqIEBkZXByZWNhdGVkCiAqLwogICAgZnVuY3Rpb24gR2V0QnVsa1VzZXJJbmZvKCAkdWlkcywgJGRlZXAgPSBUUlVFICkKICAgIHsKICAgICAgICBmZXVfdXNlcl9jYWNoZTo6bG9hZF91c2VycygkdWlkcywkZGVlcCk7CgogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICR1aWRzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRvbmUgPSAoaW50KSRvbmU7CiAgICAgICAgICAgIGlmKCAkb25lIDwgMSApIGNvbnRpbnVlOwogICAgICAgICAgICAkdCA9IGZldV91c2VyX2NhY2hlOjpnZXRfdXNlcl9ub2xvYWQoJG9uZSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdCkgKSAkb3V0W10gPSAkdDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgovLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCi8vIHJldHVybnMgYW4gYXJyYXkKLy8gc2Vjb25kIGVsZW1lbnQgb2YgYXJyYXkgbWF5IGJlIGFuIGFycmF5CiAgICBmdW5jdGlvbiBHZXRVc2VySW5mbyggJHVpZCwgJGRlZXAgPSBGQUxTRSApCiAgICB7CiAgICAgICAgaWYoICEkdWlkICkgcmV0dXJuIGFycmF5KEZBTFNFKTsgLy8gdG9kbywgYWRkIGEgbWVzc2FnZQogICAgICAgICRyb3cgPSBmZXVfdXNlcl9jYWNoZTo6Z2V0X3VzZXIoJHVpZCwkZGVlcCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkcm93KSApIHJldHVybiBhcnJheShGQUxTRSk7CiAgICAgICAgcmV0dXJuIGFycmF5KCBUUlVFLCAkcm93ICk7CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgovLyByZXR1cm5zIGFuIGFycmF5Ci8vIHNlY29uZCBlbGVtZW50IG9mIGFycmF5IG1heSBiZSBhbiBhcnJheQogICAgZnVuY3Rpb24gR2V0VXNlckluZm9CeU5hbWUoICR1c2VybmFtZSApCiAgICB7CiAgICAgICAgaWYoICEkdXNlcm5hbWUgKSByZXR1cm4gYXJyYXkoRkFMU0UpOyAvLyB0b2RvLCBhZGQgYSBtZXNzYWdlCgogICAgICAgICR1aWQgPSAkdGhpcy0+R2V0VXNlcklEKCR1c2VybmFtZSk7CiAgICAgICAgaWYoICEkdWlkICkgewogICAgICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICAgICByZXR1cm4gYXJyYXkoRkFMU0UsJG1vZHVsZS0+TGFuZygnZXJyb3JfdXNlcm5vdGZvdW5kJykpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPkdldFVzZXJJbmZvKCR1aWQpOwogICAgfQoKCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gR2V0VXNlckluZm9CeVByb3BlcnR5KCRwcm9wbmFtZSwkcHJvcHZhbHVlID0gbnVsbCkKICAgIHsKICAgICAgICAvLyBub3RlLi4uIGNhbm5vdCB3b3JrIG9uIGVuY3J5cHRlZCBwcm9wZXJ0aWVzLgogICAgICAgICRtb2R1bGUgPSAkdGhpcy0+R2V0TW9kdWxlKCk7CiAgICAgICAgJGRlZm5zID0gJHRoaXMtPkdldFByb3BlcnR5RGVmbnMoKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRkZWZucykgKSByZXR1cm4gYXJyYXkoRkFMU0UsJG1vZHVsZS0+TGFuZygnZXJyb3JfZGJlcnJvcicpKTsKICAgICAgICBpZiggIWlzc2V0KCRkZWZuc1skcHJvcG5hbWVdKSApIHJldHVybiBhcnJheShGQUxTRSwkbW9kdWxlLT5MYW5nKCdlcnJvcl9kYmVycm9yJykpOwogICAgICAgIGlmKCAkZGVmbnNbJHByb3BuYW1lXVsnZW5jcnlwdCddICkgcmV0dXJuIGFycmF5KEZBTFNFLCRtb2R1bGUtPkxhbmcoJ2Vycm9yX2RiZXJyb3InKSk7CgogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICRwYXJtcyA9IGFycmF5KCRwcm9wbmFtZSk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCB1c2VyaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyB1cCBXSEVSRSB1cC50aXRsZSA9ID8nOwoKICAgICAgICBpZiggIWlzX251bGwoJHByb3B2YWx1ZSkgKSB7CiAgICAgICAgICAgICRxdWVyeSAuPSAnIEFORCBkYXRhID0gPyc7CiAgICAgICAgICAgICRwYXJtc1tdID0gJHByb3B2YWx1ZTsKICAgICAgICB9CiAgICAgICAgJHVpZCA9ICRkYi0+R2V0T25lKCRxdWVyeSwkcGFybXMpOwogICAgICAgIGlmKCAhJHVpZCApIHJldHVybiBhcnJheShGQUxTRSwkbW9kdWxlLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSk7CgogICAgICAgIHJldHVybiAkdGhpcy0+R2V0VXNlckluZm8oICR1aWQgKTsKICAgIH0KCgogICAgZnVuY3Rpb24gR2V0VXNlckhpc3RvcnkoJHVpZCwkYWN0aW9uPScnLCRjb3VudD0tMSkKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAkcGFybXMgPSBhcnJheSgkdWlkKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfaGlzdG9yeSBXSEVSRSB1c2VyaWQgPSA/JzsKICAgICAgICBpZiggIWVtcHR5KCRhY3Rpb24pICkgewogICAgICAgICAgICAkcXVlcnkgLj0gJyBBTkQgYWN0aW9uID0gPyc7CiAgICAgICAgICAgICRwYXJtc1tdID0gJGFjdGlvbjsKICAgICAgICB9CiAgICAgICAgJHF1ZXJ5IC49ICcgT1JERVIgQlkgcmVmZGF0ZSBERVNDJzsKCiAgICAgICAgJHJlc3VsdHMgPSAnJzsKICAgICAgICBpZiggJGNvdW50IDw9IDAgKSB7CiAgICAgICAgICAgICRyZXN1bHRzID0gJGRiLT5HZXRBcnJheSgkcXVlcnksJHBhcm1zKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRkYnIgPSAkZGItPlNlbGVjdExpbWl0KCRxdWVyeSwoaW50KSRjb3VudCk7CiAgICAgICAgICAgIHdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0c1tdID0gJHJvdzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYoIGNvdW50KCRyZXN1bHRzKSA9PSAxICkgewogICAgICAgICAgICAgICAgJHRtcCA9ICRyZXN1bHRzWzBdOwogICAgICAgICAgICAgICAgJHJlc3VsdHMgPSAkdG1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzdWx0czsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIEdldExvZ2dlZEluVXNlcnMoJG5vdF9hY3RpdmVfc2luY2UgPSAnJykKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiAgICAgICAgJHEgPSAnU0VMRUNUIHVzZXJpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19sb2dnZWRpbic7CiAgICAgICAgJHFwYXJtcyA9IGFycmF5KCk7CiAgICAgICAgaWYoICRub3RfYWN0aXZlX3NpbmNlICkgewogICAgICAgICAgICAkcSAuPSAiIFdIRVJFIGxhc3R1c2VkIDwgPyI7CiAgICAgICAgICAgICRxcGFybXNbXSA9ICRub3RfYWN0aXZlX3NpbmNlOwogICAgICAgIH0KCiAgICAgICAgJHJlcyA9ICRkYi0+R2V0Q29sKCRxLCRxcGFybXMpOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKCi8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KLy8gcmV0dXJucyBhbiBhcnJheSBvciBmYWxzZQogICAgZnVuY3Rpb24gQ291bnRVc2Vyc0luR3JvdXAoICRncm91cGlkICkKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiAgICAgICAgJHEgPSAnJzsKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgIGlmKCAkZ3JvdXBpZCA9PSAnJyB8fCAkZ3JvdXBpZCA8IDAgKSB7CiAgICAgICAgICAgICRxID0gIlNFTEVDVCBjb3VudChpZCkgYXMgbnVtIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3VzZXJzIFdIRVJFIGNvYWxlc2NlKGRpc2FibGVkLDApID0gMCI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkcSA9ICJTRUxFQ1QgY291bnQoaWQpIGFzIG51bSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc191c2VycywiLgogICAgICAgICAgICAgICAgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIFdIRVJFIGlkPXVzZXJpZCBBTkQgZ3JvdXBpZCA9ID8gQU5EIGNvYWxlc2NlKGRpc2FibGVkLDApID0gMCI7CiAgICAgICAgICAgICRwYXJtc1tdID0gJGdyb3VwaWQ7CiAgICAgICAgfQoKICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCAkcGFybXMgKTsKICAgICAgICBpZiggISRkYnJlc3VsdCApIHJldHVybiBmYWxzZTsKCiAgICAgICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKICAgICAgICByZXR1cm4gJHJvd1snbnVtJ107CiAgICB9CgoKLyoqCiAqIFJlcGxhY2UgdGhpcyBjb2RlIHdpdGggYSB1c2VyIHF1ZXJ5CiAqLwogICAgZnVuY3Rpb24gR2V0RnVsbFVzZXJzSW5Hcm91cCgkZ2lkKQogICAgewogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgdXNlcmlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2JlbG9uZ3MgV0hFUkUgZ3JvdXBpZCA9ID8nOwogICAgICAgICR0bXAgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJGdpZCkpOwogICAgICAgIGlmKCAhJHRtcCApIHJldHVybiBGQUxTRTsKCiAgICAgICAgZmV1X3VzZXJfY2FjaGU6OmxvYWRfdXNlcnMoJHRtcCxUUlVFKTsKICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRvbmUgPSAoaW50KSRvbmU7CiAgICAgICAgICAgIGlmKCAkb25lIDwgMSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgJHJlYyA9IGZldV91c2VyX2NhY2hlOjpnZXRfdXNlcl9ub2xvYWQoJG9uZSxUUlVFKTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRyZWMpICYmIGlzc2V0KCRyZWNbJ2Zwcm9wcyddKSApIHsKICAgICAgICAgICAgICAgICR0bXAyID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRyZWNbJ2Zwcm9wcyddIGFzICRvbmVfcHJvcCApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wMlskb25lX3Byb3BbJ3RpdGxlJ11dID0gJG9uZV9wcm9wWydkYXRhJ107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcmVjWydwcm9wcyddID0gJHRtcDI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG91dFtdID0gJHJlYzsKICAgICAgICB9CgogICAgICAgIGlmKCBjb3VudCgkb3V0KSApIHJldHVybiAkb3V0OwogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCgovLyBkZXByZWNhdGVkCiAgICBmdW5jdGlvbiBHZXRVc2Vyc0luR3JvdXAoICRncm91cGlkID0gJycsICR1c2VycmVnZXggPSAnJywgJGxpbWl0ID0gJycsICRzb3J0ID0gJycsICRwcm9wZXJ0eSA9ICcnLCAkcHJvcHJlZ2V4ID0gJycsCiAgICAkbG9nZ2VkaW5vbmx5ID0gMCwgJHN0YXJ0X3JlY29yZCA9IDApCiAgICB7CiAgICAgICAgLy8gdG9kbzogdGhpcyBzaG91bGQgZ28gaW50byB0aGUgY29uc3VtZXIuCiAgICAgICAgJHRoaXMtPnJlc2V0X2xhc3R1c2VycXVlcnkoKTsKICAgICAgICAkcXVlcnkgPSBuZXcgZmV1X3VzZXJfcXVlcnkoKTsKICAgICAgICBpZiggKGludCkkbGltaXQgPiAwICkgJHF1ZXJ5LT5zZXRfcGFnZWxpbWl0KCRsaW1pdCk7CiAgICAgICAgaWYoIChpbnQpJHN0YXJ0X3JlY29yZCA+IDAgKSAkcXVlcnktPnNldF9vZmZzZXQoJHN0YXJ0X3JlY29yZCk7CiAgICAgICAgaWYoICRncm91cGlkID4gMCApICRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9HUk9VUElELCRncm91cGlkKTsKICAgICAgICBpZiggJHVzZXJyZWdleCApICRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9VU0VSTkFNRV9SRSwkdXNlcnJlZ2V4KTsKICAgICAgICBpZiggJHByb3BlcnR5ICYmICRwcm9wcmVnZXggKSAkcXVlcnktPmFkZF9hbmRfb3B0X29iaihuZXcgZmV1X3VzZXJfcXVlcnlfb3B0KGZldV91c2VyX3F1ZXJ5X29wdDo6TUFUQ0hfUFJPUEVSVFlfUkUsJHByb3BlcnR5LCRwcm9wcmVnZXgpKTsKICAgICAgICBpZiggJGxvZ2dlZGlub25seSApICRxdWVyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9MT0dHRURJTiwxKTsKICAgICAgICAkcXVlcnktPnNldF9yZXN1bHRfdHlwZShmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1RZUEVfRlVMTCk7CgogICAgICAgIHN3aXRjaCggJHNvcnQgKSB7CiAgICAgICAgY2FzZSAndXNlcm5hbWUnOgogICAgICAgICAgICAkcXVlcnktPnNldF9zb3J0YnkoZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUQllfVVNFUk5BTUUpOwogICAgICAgICAgICAkcXVlcnktPnNldF9zb3J0b3JkZXIoZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUT1JERVJfQVNDKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAndXNlcm5hbWUgZGVzYyc6CiAgICAgICAgICAgICRxdWVyeS0+c2V0X3NvcnRieShmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRCWV9VU0VSTkFNRSk7CiAgICAgICAgICAgICRxdWVyeS0+c2V0X3NvcnRvcmRlcihmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRPUkRFUl9ERVNDKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY3JlYXRlZGF0ZSc6CiAgICAgICAgICAgICRxdWVyeS0+c2V0X3NvcnRieShmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRCWV9DUkVBVEVEKTsKICAgICAgICAgICAgJHF1ZXJ5LT5zZXRfc29ydG9yZGVyKGZldV91c2VyX3F1ZXJ5OjpSRVNVTFRfU09SVE9SREVSX0FTQyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2NyZWF0ZWRhdGUgZGVzYyc6CiAgICAgICAgICAgICRxdWVyeS0+c2V0X3NvcnRieShmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRCWV9DUkVBVEVEKTsKICAgICAgICAgICAgJHF1ZXJ5LT5zZXRfc29ydG9yZGVyKGZldV91c2VyX3F1ZXJ5OjpSRVNVTFRfU09SVE9SREVSX0RFU0MpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdleHBpcmVzJzoKICAgICAgICAgICAgJHF1ZXJ5LT5zZXRfc29ydGJ5KGZldV91c2VyX3F1ZXJ5OjpSRVNVTFRfU09SVEJZX0VYUElSRVMpOwogICAgICAgICAgICAkcXVlcnktPnNldF9zb3J0b3JkZXIoZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUT1JERVJfQVNDKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZXhwaXJlcyBkZXNjJzoKICAgICAgICAgICAgJHF1ZXJ5LT5zZXRfc29ydGJ5KGZldV91c2VyX3F1ZXJ5OjpSRVNVTFRfU09SVEJZX0VYUElSRVMpOwogICAgICAgICAgICAkcXVlcnktPnNldF9zb3J0b3JkZXIoZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUT1JERVJfREVTQyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgJHJzID0gJHF1ZXJ5LT5leGVjdXRlKCk7CiAgICAgICAgJHRvdGFsX21hdGNoZXMgPSAkcnMtPmdldF9mb3VuZF9yb3dzKCk7CiAgICAgICAgJGRhdGEgPSBhcnJheSgpOwogICAgICAgIHdoaWxlKCAhJHJzLT5FT0YgKSB7CiAgICAgICAgICAgICRkYXRhW10gPSAkcnMtPmZpZWxkczsKICAgICAgICAgICAgJHJzLT5Nb3ZlTmV4dCgpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2xhc3RfdXNlcnF1ZXJ5X21hdGNoZXMgPSAkZGF0YTsKICAgICAgICAkdGhpcy0+X2xhc3RfdXNlcnF1ZXJ5X2NvdW50ID0gJHRvdGFsX21hdGNoZXM7CiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgfQoKLy8gZGVwcmVjYXRlZAogICAgcHVibGljIGZ1bmN0aW9uIGdldF9sYXN0dXNlcnF1ZXJ5X2NvdW50KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9sYXN0X3VzZXJxdWVyeV9jb3VudDsKICAgIH0KCi8vIGRlcHJlY2F0ZWQKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGFzdHVzZXJxdWVyeV9tYXRjaGVzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9sYXN0X3VzZXJxdWVyeV9tYXRjaGVzOwogICAgfQoKLy8gZGVwcmVjYXRlZAogICAgcHVibGljIGZ1bmN0aW9uIHJlc2V0X2xhc3R1c2VycXVlcnkoKQogICAgewogICAgICAgICR0aGlzLT5fbGFzdF91c2VycXVlcnlfY291bnQgPSBudWxsOwogICAgICAgICR0aGlzLT5fbGFzdF91c2VycXVlcnlfbWF0Y2hlcyA9IG51bGw7CiAgICB9CgovLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCi8vIHJldHVybnMgdHJ1ZS9mYWxzZQogICAgZnVuY3Rpb24gR3JvdXBFeGlzdHNCeUlEKCAkZ2lkICkKICAgIHsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5HZXRHcm91cEluZm8oICRnaWQgKTsKICAgICAgICByZXR1cm4oICRkYXRhICE9IGZhbHNlICk7CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgovLyByZXR1cm5zIHRydWUvZmFsc2UKICAgIGZ1bmN0aW9uIEdyb3VwRXhpc3RzQnlOYW1lKCAkbmFtZSApCiAgICB7CiAgICAgICAgJGdpZCA9ICR0aGlzLT5HZXRHcm91cElEKCAkbmFtZSApOwogICAgICAgIHJldHVybiggJGdpZCAhPSBmYWxzZSApOwogICAgfQoKCiAgICBmdW5jdGlvbiBMb2dnZWRJbkVtYWlsKCkKICAgIHsKICAgICAgICAkdXNlcmlkPSR0aGlzLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5HZXRFbWFpbCgkdXNlcmlkKTsKICAgIH0KCgogICAgZnVuY3Rpb24gR2V0RW1haWwoJHVpZCkKICAgIHsKICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICRyZXN1bHQgPSBmYWxzZTsKCiAgICAgICAgaWYgKCRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3VzZXJuYW1lX2lzX2VtYWlsJykpIHsKICAgICAgICAgICAgJHRtcCA9IGZldV91c2VyX2NhY2hlOjpnZXRfdXNlcigkdWlkKTsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0bXBbJ3VzZXJuYW1lJ107CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAvLyBnZXQgdGhlIHVzZXJzIGZpcnN0IGVtYWlsIGFkZHJlc3MuCiAgICAgICAgICAgICRxID0gJ1NFTEVDVCBkYXRhIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BkZWZuLCcuCiAgICAgICAgICAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMgV0hFUkUgbmFtZT10aXRsZSBBTkQgdHlwZT0yIEFORCB1c2VyaWQgPSA/JzsKICAgICAgICAgICAgJHJlc3VsdCA9ICRkYi0+R2V0T25lKCAkcSwgYXJyYXkoICR1aWQgKSApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCgogICAgLy8gdG9kbzogbW92ZSB0aGlzIHRvIG1haW4gbW9kdWxlLgogICAgZnVuY3Rpb24gSXNWYWxpZEVtYWlsQWRkcmVzcyggJGVtYWlsLCAkdWlkID0gLTEsICRjaGVja19leGlzdGluZyA9IEZBTFNFICkKICAgIHsKICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgIGlmKCAhaXNfZW1haWwoJGVtYWlsKSApIHsKICAgICAgICAgICAgJHJlc3VsdFswXSA9IGZhbHNlOwogICAgICAgICAgICAkcmVzdWx0WzFdID0gJG1vZHVsZS0+TGFuZygnZXJyb3JfaW1wcm9wZXJlbWFpbGZvcm1hdCcpOwogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CgogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwoKICAgICAgICBpZiggJGNoZWNrX2V4aXN0aW5nICkgewogICAgICAgICAgICBpZiAoJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSkgewogICAgICAgICAgICAgICAgJHEgPSAnU0VMRUNUIHVzZXJuYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIFdIRVJFIHVzZXJuYW1lID0gPyc7CiAgICAgICAgICAgICAgICAkcGFybSA9IGFycmF5KCRlbWFpbCk7CiAgICAgICAgICAgICAgICBpZiAoJHVpZCA+IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgJHEgLj0gJyBBTkQgaWQgIT0gPyc7CiAgICAgICAgICAgICAgICAgICAgJHBhcm1bXSA9ICR1aWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCAkcGFybSApOwogICAgICAgICAgICAgICAgaWYoICRkYnJlc3VsdCAmJiAkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlc3VsdFswXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICRyZXN1bHRbMV0gPSAkbW9kdWxlLT5MYW5nKCdlcnJvcl9lbWFpbGFscmVhZHl1c2VkJyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggISRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnKSApIHsKICAgICAgICAgICAgICAgICRxID0gIlNFTEVDVCBkYXRhIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BkZWZuLCIuCiAgICAgICAgICAgICAgICAgICAgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzIFdIRVJFIG5hbWU9dGl0bGUgQU5EIHR5cGU9MiBBTkQgZGF0YSBMSUtFID8iOwogICAgICAgICAgICAgICAgJHBhcm1zID0gYXJyYXkoICRlbWFpbCApOwogICAgICAgICAgICAgICAgaWYoICR1aWQgPiAtMSApIHsKICAgICAgICAgICAgICAgICAgICAkcSAuPSAnIEFORCB1c2VyaWQgIT0gPyc7CiAgICAgICAgICAgICAgICAgICAgJHBhcm1zW10gPSAkdWlkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRlbWFpbCApICk7CiAgICAgICAgICAgICAgICBpZiggJGRicmVzdWx0ICYmICRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSApIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0WzBdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHJlc3VsdFsxXSA9ICRtb2R1bGUtPkxhbmcoJ2Vycm9yX2VtYWlsYWxyZWFkeXVzZWQnKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHJlc3VsdFswXSA9IHRydWU7CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgoKICAgIGZ1bmN0aW9uIEdldFVzZXJuYW1lUHJvbXB0KCkKICAgIHsKICAgICAgICAkY29uc3VtZXIgPSBmZXVfdXRpbHM6OmdldF9hdXRoX2NvbnN1bWVyKCk7CiAgICAgICAgcmV0dXJuICRjb25zdW1lci0+Z2V0X3VzZXJuYW1lX3Byb21wdCgpOwogICAgfQoKLy8gdG9kbzogbW92ZSB0aGlzIHRvIHRoZSBtYWluIG1vZHVsZS4KICAgIGZ1bmN0aW9uIElzVmFsaWRVc2VybmFtZSggJHVzZXJuYW1lLCAkY2hlY2tfZW1haWwgPSB0cnVlLCAkdWlkID0gLTEgKQogICAgewogICAgICAgICRjb25zdW1lciA9IGZldV91dGlsczo6Z2V0X2F1dGhfY29uc3VtZXIoKTsKICAgICAgICByZXR1cm4gJGNvbnN1bWVyLT52YWxpZGF0ZV91c2VybmFtZSgkdXNlcm5hbWUsJGNoZWNrX2VtYWlsLCR1aWQpOwogICAgfQoKCiAgICAvLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICAvLyByZXR1cm5zIGFuIGFycmF5CiAgICBmdW5jdGlvbiBSZW1vdmVVc2VyRnJvbUdyb3VwKCAkdWlkLCAkZ2lkICkKICAgIHsKICAgICAgICAkdWlkID0gKGludCkgJHVpZDsKICAgICAgICAkZ2lkID0gKGludCkgJGdpZDsKICAgICAgICAkZGIgPSBcY21zX3V0aWxzOjpnZXRfZGIoKTsKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiggJHVpZCA8IDEgKSByZXR1cm4gYXJyYXkoRkFMU0UpOwogICAgICAgICAgICAkZGItPkJlZ2luVHJhbnMoKTsKICAgICAgICAgICAgJHBhcm1zID0gYXJyYXkoICR1aWQgKTsKICAgICAgICAgICAgJHEgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2JlbG9uZ3MgV0hFUkUgdXNlcmlkID0gPyI7CiAgICAgICAgICAgIGlmKCAkZ2lkID4gMCApIHsKICAgICAgICAgICAgICAgICRxIC49ICIgQU5EIGdyb3VwaWQgPSA/IjsKICAgICAgICAgICAgICAgICRwYXJtc1tdID0gJGdpZDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZGItPkV4ZWN1dGUoICRxLCAkcGFybXMgKTsKICAgICAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwogICAgICAgICAgICByZXR1cm4gYXJyYXkoIFRSVUUgKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRkYi0+Um9sbGJhY2tUcmFucygpOwogICAgICAgICAgICAkbW9kID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICAgICBhdWRpdCgkdWlkLCRtb2QtPkdldE5hbWUoKSwnQ291bGQgbm90IHJlbW92ZSB1c2VyIGZyb20gZ3JvdXAgJy4kZ2lkKTsKICAgICAgICAgICAgZGVidWdfdG9fbG9nKF9fTUVUSE9EX18pOwogICAgICAgICAgICBkZWJ1Z190b19sb2coJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIHJldHVybiBhcnJheShGQUxTRSwkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgovLyByZXR1cm5zIGFycmF5CiAgICBmdW5jdGlvbiBTZXRHcm91cCggJGlkLCAkbmFtZSwgJGRlc2MgPSBudWxsICkKICAgIHsKICAgICAgICAkaWQgPSAoaW50KSAkaWQ7CiAgICAgICAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAgICAgICAkZGVzYyA9IHRyaW0oJGRlc2MpOwoKICAgICAgICAkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSA9IG51bGw7CiAgICAgICAgaWYoICRpZCA8IDEgfHwgISRuYW1lICkgewogICAgICAgICAgICByZXR1cm4gYXJyYXkoRkFMU0UsJG1vZC0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwogICAgICAgIH0KCiAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CgogICAgICAgICRlaWQgPSAkdGhpcy0+R2V0R3JvdXBJRCggJG5hbWUgKTsKICAgICAgICBpZiggJGVpZCAhPSBmYWxzZSAmJiAkZWlkICE9ICRpZCApIHsKICAgICAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCRtb2QtPkxhbmcoJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnKSk7CiAgICAgICAgfQoKICAgICAgICAkcSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcyBTRVQgZ3JvdXBuYW1lID0gPywgZ3JvdXBkZXNjID0gPyBXSEVSRSBpZCA9ID8iOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkbmFtZSwgJGRlc2MsICRpZCApICk7CiAgICAgICAgaWYoICEkZGJyZXN1bHQgKSByZXR1cm4gYXJyYXkoRkFMU0UsJGRiLT5FcnJvck1zZygpKTsKCiAgICAgICAgJHRoaXMtPl9ncm91cGluZm9fY2FjaGUgPSBudWxsOwogICAgICAgIHJldHVybiBhcnJheSggVFJVRSApOwogICAgfQoKCiAgICBmdW5jdGlvbiBFbmNyeXB0UGFzc3dvcmQoICR1aWQsICRwbGFpbl9wYXNzd29yZCApCiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+dXNlX3VzZXJzYWx0KCkgKSB7CiAgICAgICAgICAgIHJldHVybiBtZDUoJHBsYWluX3Bhc3N3b3JkLiR0aGlzLT5nZXRfc2FsdCgpKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRkYiA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERiKCk7CiAgICAgICAgICAgICRzYWx0ID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCBzYWx0IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIFdIRVJFIGlkID0gPycsYXJyYXkoJHVpZCkpOwogICAgICAgICAgICBpZiggISRzYWx0ICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignVXNpbmcgdXNlciBzYWx0ZWQgcGFzc3dvcmRzLCBidXQgbm8gc2FsdCBzZXQgZm9yIHRoaXMgdXNlciAob3IgdGhlIHVzZXIgY291bGQgbm90IGJlIGZvdW5kKScpOwogICAgICAgICAgICByZXR1cm4gc2hhMSgkcGxhaW5fcGFzc3dvcmQuJHNhbHQpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBTZXRVc2VyUGFzc3dvcmQoICR1aWQsICRwYXNzd29yZCApCiAgICB7CiAgICAgICAgJHVpZCA9IChpbnQpICR1aWQ7CiAgICAgICAgJHBhc3N3b3JkID0gdHJpbSgoc3RyaW5nKSAkcGFzc3dvcmQpOwogICAgICAgICRtb2QgPSAkdGhpcy0+R2V0TW9kdWxlKCk7CiAgICAgICAgaWYoICR1aWQgPCAxIHx8ICEkcGFzc3dvcmQgKSByZXR1cm4gYXJyYXkoRkFMU0UsJG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKCiAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICBpZiggISR1aWQgKSByZXR1cm4gYXJyYXkoRkFMU0UsJG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiAgICAgICAgJHB3ID0gJHRoaXMtPkVuY3J5cHRQYXNzd29yZCgkdWlkLCRwYXNzd29yZCk7CiAgICAgICAgJHEgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc191c2VycyBTRVQgcGFzc3dvcmQgPSA/IFdIRVJFIGlkID0gPyI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRwdywgJHVpZCApKTsKICAgICAgICBpZiggISRkYnJlc3VsdCApIHJldHVybiBhcnJheShGQUxTRSwkZGItPkVycm9yTXNnKCkpOwoKICAgICAgICBmZXVfdXNlcl9jYWNoZTo6ZGVsX3VzZXIoJHVpZCk7CiAgICAgICAgcmV0dXJuIGFycmF5KFRSVUUpOwogICAgfQoKICAgIGZ1bmN0aW9uIFNldFVzZXJEaXNhYmxlZCggJHVpZCwgJGZsYWcgPSBUUlVFICkKICAgIHsKICAgICAgICAkdWlkID0gKGludCkgJHVpZDsKICAgICAgICAkZmxhZyA9IChib29sKSAkZmxhZzsKICAgICAgICBpZiggJHVpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHVpZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgU0VUIGRpc2FibGVkID0gPyBXSEVSRSBpZCA9ID8nOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRmbGFnLCR1aWQpKTsKICAgICAgICBpZiggISRkYnIgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdwcm9ibGVtIHNldHRpbmcgdWlkICcuJHVpZC4nIHRvIGRpc2FibGVkJyk7CgogICAgICAgIGlmKCAkZmxhZyApIHsKICAgICAgICAgICAgJHRoaXMtPkxvZ291dFVzZXIoJHVpZCwndXNlciBkaXNhYmxlZCcpOwogICAgICAgICAgICAkdGhpcy0+YWRkX2hpc3RvcnkoJHVpZCwndXNlciBkaXNhYmxlZCcpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPmFkZF9oaXN0b3J5KCR1aWQsJ3VzZXIgZW5hYmxlZCcpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBGb3JjZVBhc3N3b3JkQ2hhbmdlKCAkdWlkLCAkZmxhZyA9IFRSVUUgKQogICAgewogICAgICAgICR1aWQgPSAoaW50KSAkdWlkOwogICAgICAgICRmbGFnID0gKGJvb2wpICRmbGFnOwogICAgICAgIGlmKCAkdWlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdWlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyBTRVQgZm9yY2VfbmV3cHcgPSA/IFdIRVJFIGlkID0gPyc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGZsYWcsJHVpZCkpOwogICAgICAgIGlmKCAhJGRiciApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ3Byb2JsZW0gc2V0dGluZyBmb3JjZV9uZXdwdyBmbGFnIGZvciB1c2VyICcuJHVpZCk7CgogICAgICAgIGlmKCAkZmxhZyApICR0aGlzLT5hZGRfaGlzdG9yeSgkdWlkLCdmb3JjZXB3cmVzZXQnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBGb3JjZUNoYW5nZVNldHRpbmdzKCAkdWlkLCAkZmxhZyA9IFRSVUUgKQogICAgewogICAgICAgICR1aWQgPSAoaW50KSAkdWlkOwogICAgICAgICRmbGFnID0gKGJvb2wpICRmbGFnOwogICAgICAgIGlmKCAkdWlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdWlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyBTRVQgZm9yY2VfY2hzZXR0aW5ncyA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkZmxhZywkdWlkKSk7CiAgICAgICAgaWYoICEkZGJyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigncHJvYmxlbSBzZXR0aW5nIGZvcmNlX2Noc2V0dGluZ3MgZmxhZyBmb3IgdXNlciAnLiR1aWQpOwoKICAgICAgICBpZiggJGZsYWcgKSAkdGhpcy0+YWRkX2hpc3RvcnkoJHVpZCwnZm9yY2VjaHNldHRpbmdzJyk7CiAgICB9CgogICAgZnVuY3Rpb24gRm9yY2VWZXJpZnkoICR1aWQsICRmbGFnID0gVFJVRSApCiAgICB7CiAgICAgICAgJHVpZCA9IChpbnQpICR1aWQ7CiAgICAgICAgJGZsYWcgPSAoYm9vbCkgJGZsYWc7CiAgICAgICAgaWYoICR1aWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB1aWQgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIFNFVCBtdXN0X3ZhbGlkYXRlID0gPyBXSEVSRSBpZCA9ID8nOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRmbGFnLCR1aWQpKTsKICAgICAgICAvL2lmKCAhJGRiciApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ3Byb2JsZW0gc2V0dGluZyBmb3JjZSB2ZXJpZnkgZmxhZyBmb3IgdXNlciAnLiR1aWQpOwoKICAgICAgICBpZiggJGZsYWcgKSAkdGhpcy0+YWRkX2hpc3RvcnkoJHVpZCwnaW5pdF92ZXJpZnknKTsKICAgIH0KCiAgICAvLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICAvLyByZXR1cm5zIGFycmF5CiAgICBmdW5jdGlvbiBTZXRVc2VyKCAkdWlkLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMgPSBmYWxzZSApCiAgICB7CiAgICAgICAgaWYoICEkdWlkICkgcmV0dXJuIGFycmF5KEZBTFNFLCIiKTsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwoKICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB0aGlzIHVzZXIgZXhpc3RzCiAgICAgICAgJHJldCA9ICR0aGlzLT5HZXRVc2VySW5mbyggJHVpZCApOwogICAgICAgIGlmKCAkcmV0WzBdID09IEZBTFNFICkgcmV0dXJuIGFycmF5KEZBTFNFLCAkbW9kdWxlLT5MYW5nKCdlcnJvcl91c2Vybm90Zm91bmQnKSk7CgogICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoaXMgdXNlcm5hbWUgaXMgbm90IHRha2VuIGJ5IHNvbWUgb3RoZXIgaWQKICAgICAgICAkbnVpZCA9ICR0aGlzLT5HZXRVc2VySUQoJHVzZXJuYW1lKTsKICAgICAgICBpZiggJG51aWQgIT0gZmFsc2UgJiYgJG51aWQgIT0gJHVpZCApIHJldHVybiBhcnJheShGQUxTRSwgJG1vZHVsZS0+TGFuZygnZXJyb3JfdXNlcm5hbWV0YWtlbicsJHVpZCkpOwoKICAgICAgICAkZGJyZXN1bHQgPSAnJzsKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICRxID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdXNlcnMgU0VUIHVzZXJuYW1lID0gPyI7CiAgICAgICAgJHBhcm1zW10gPSAkdXNlcm5hbWU7CgogICAgICAgIGlmKCAkZXhwaXJlcyAhPSBmYWxzZSApIHsKICAgICAgICAgICAgJHEgLj0gIiwgZXhwaXJlcyA9ID8iOwogICAgICAgICAgICAkcGFybXNbXSA9IHRyaW0oJGRiLT5EQlRpbWVTdGFtcCgkZXhwaXJlcyksIiciKTsKICAgICAgICB9CiAgICAgICAgJHEgLj0gIiBXSEVSRSBpZCA9ID8iOwogICAgICAgICRwYXJtc1tdID0gJHVpZDsKICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCAkcGFybXMgKTsKICAgICAgICBpZiggJGRicmVzdWx0ID09IGZhbHNlICkgcmV0dXJuIGFycmF5KCBGQUxTRSwgJGRiLT5FcnJvck1zZygpICk7CgogICAgICAgIGlmKCAkcGFzc3dvcmQgKSB7CiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+U2V0VXNlclBhc3N3b3JkKCR1aWQsICRwYXNzd29yZCk7CiAgICAgICAgICAgIGlmKCAhJHJlc1swXSApIHJldHVybiAkcmVzOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPl91c2VyaWRieW5hbWUgPSBhcnJheSgpOwogICAgICAgIGZldV91c2VyX2NhY2hlOjpkZWxfdXNlcigkdWlkKTsKCiAgICAgICAgLy8gQ2hhbmdlZCB0byBwYXNzICR1aWQgYmFjayBzbyBpdCBtYXRjaGVzIEFkZFVzZXIoKQogICAgICAgIHJldHVybiBhcnJheSggVFJVRSwgJHVpZCApOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSB1c2VyIGdyb3VwIG1lbWJlcnNoaXBzCiAgICAgKiBkb2VzIG5vdCBhbHRlciBhbnkgdXNlciBwcm9wZXJ0aWVzLgogICAgICogZG9lcyBub3QgdmFsaWRhdGUgZ3JvdXAgaWRzLCBidXQgZG9lcyB2YWxpZGF0ZSB1aWQKICAgICAqCiAgICAgKiBAcGFyYW0gaW50IHVzZXJpZAogICAgICogQHBhcmFtIGFycmF5IGFycmF5IG9mIGludGVnZXIgZ3JvdXAgaWRzCiAgICAgKiBAcmV0dXJuIGFycmF5IChzdGF0dXMsbXNnKQogICAgICovCiAgICBmdW5jdGlvbiBTZXRVc2VyR3JvdXBzKCAkdWlkLCAkZ3JwaWRzICkKICAgIHsKICAgICAgICBpZiggISR1aWQgKSByZXR1cm4gYXJyYXkoRkFMU0UsIiIpOwogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwoKICAgICAgICAvLyBmaXJzdCBtYWtlIHN1cmUgdGhpcyB1c2VyIGV4aXN0cwogICAgICAgICRyZXQgPSAkdGhpcy0+R2V0VXNlckluZm8oICR1aWQgKTsKICAgICAgICBpZiggJHJldFswXSA9PSBGQUxTRSApIHJldHVybiBhcnJheShGQUxTRSwgIlVzZXIgZG9lcyBub3QgZXhpc3QiKTsKCiAgICAgICAgLy8gdGhlbiByZW1vdmUgYWxsIGhpcyBjdXJyZW50IGFzc2lnbm1lbnRzCiAgICAgICAgJHEgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2JlbG9uZ3MgV0hFUkUgdXNlcmlkID0gPyI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICR1aWQgKSk7CiAgICAgICAgaWYoICEkZGJyZXN1bHQgKSByZXR1cm4gYXJyYXkoIEZBTFNFLCAkZGItPkVycm9yTXNnKCkgICk7CgogICAgICAgIGlmKCBpc19hcnJheSgkZ3JwaWRzKSAmJiBjb3VudCgkZ3JwaWRzKSApIHsKICAgICAgICAgICAgLy8gYW5kIGFkZCBhbGwgb2YgdGhlbSBpbgogICAgICAgICAgICAkcSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfYmVsb25ncyBWQUxVRVMgKD8sPykiOwogICAgICAgICAgICBmb3JlYWNoKCAkZ3JwaWRzIGFzICRncnBpZCApIHsKICAgICAgICAgICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkdWlkLCAkZ3JwaWQgKSApOwogICAgICAgICAgICAgICAgaWYoICEkZGJyZXN1bHQgKSByZXR1cm4gYXJyYXkoIEZBTFNFLCAkZGItPkVycm9yTXNnKCkgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCBUUlVFLCAiIiApOwogICAgfQoKICAgIGZ1bmN0aW9uIEFkZFVzZXJUb0dyb3VwKCAkdWlkLCAkZ2lkICkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkFzc2lnblVzZXJUb0dyb3VwKCR1aWQsJGdpZCk7CiAgICB9CgogICAgLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgLy8gcmV0dXJucyB0cnVlL2ZhbHNlCiAgICBmdW5jdGlvbiBTZXRVc2VyUHJvcGVydGllcyggJHVpZCwgJHByb3BzICkKICAgIHsKICAgICAgICBpZiggISR1aWQgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgLy8gRGVsZXRlIGFsbCB0aGUgdXNlciBwcm9wZXJ0aWVzCiAgICAgICAgLy8gYW5kIHNldCBuZXcgb25lcwogICAgICAgICR0aGlzLT5EZWxldGVVc2VyUHJvcGVydHlGdWxsKCAnJywgJHVpZCwgdHJ1ZSApOwogICAgICAgIGZldV91c2VyX2NhY2hlOjpkZWxfdXNlcigkdWlkKTsKCiAgICAgICAgaWYoIGlzX2FycmF5KCRwcm9wcykgJiYgY291bnQoJHByb3BzKSApIHsKICAgICAgICAgICAgaWYoIGNnZV9hcnJheTo6aXNfaGFzaCgkcHJvcHMpICkgewogICAgICAgICAgICAgICAgZm9yZWFjaCggJHByb3BzIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICgkciA9ICR0aGlzLT5TZXRVc2VyUHJvcGVydHlGdWxsKCAka2V5LCAkdmFsLCAkdWlkICkpID09IGZhbHNlKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcHJvcHMgYXMgJHByb3AgKSB7CiAgICAgICAgICAgICAgICAgICAgbGlzdCggJGtleSwgJHZhbCApID0gZXhwbG9kZSgnPScsJHByb3AsMik7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAoJHIgPSAkdGhpcy0+U2V0VXNlclByb3BlcnR5RnVsbCggJGtleSwgJHZhbCwgJHVpZCApKSA9PSBmYWxzZSkgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVFJ1RTsKICAgIH0KCgogICAgLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgLy8gcmV0dXJucyB0cnVlL2ZhbHNlCiAgICBmdW5jdGlvbiBVc2VyRXhpc3RzQnlJRCggJHVpZCApCiAgICB7CiAgICAgICAgaWYoICEkdWlkICkgcmV0dXJuIGZhbHNlOwogICAgICAgICRkYXRhID0gJHRoaXMtPkdldFVzZXJJbmZvKCAkdWlkICk7CiAgICAgICAgcmV0dXJuKCAkZGF0YVswXSAhPT0gRkFMU0UgKTsKICAgIH0KCgogICAgLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgLy8gcmV0dXJucyBhbiBhcnJheSBvciBmYWxzZQogICAgZnVuY3Rpb24gR2V0VXNlclByb3BlcnRpZXMoJHVpZCkKICAgIHsKICAgICAgICBpZiggISR1aWQgKSByZXR1cm4gZmFsc2U7CiAgICAgICAgJHVpbmZvID0gZmV1X3VzZXJfY2FjaGU6OmdldF91c2VyKCR1aWQsVFJVRSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkdWluZm8gKSB8fCAhaXNzZXQoJHVpbmZvWydmcHJvcHMnXSkgKSByZXR1cm4gRkFMU0U7CgogICAgICAgIHJldHVybiAkdWluZm9bJ2Zwcm9wcyddOwogICAgfQoKCiAgICAvLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICAvLyByZXR1cm5zIGFuIGFycmF5IG9mIHJlY29yZHMgb3IgZmFsc2UKICAgIGZ1bmN0aW9uIEdldE1lbWJlckdyb3Vwc0FycmF5KCR1c2VyaWQpCiAgICB7CiAgICAgICAgJGF1dGhfY29uc3VtZXIgPSBmZXVfdXRpbHM6OmdldF9hdXRoX2NvbnN1bWVyKCk7CiAgICAgICAgaWYoICRhdXRoX2NvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkYXV0aF9jb25zdW1lcjo6Q0FQQUJJTElUWV9HUk9VUE1FTUJFUlNISVApICkgewogICAgICAgICAgICAkb3V0ID0gJGF1dGhfY29uc3VtZXItPmdldF9ncm91cF9tZW1iZXJzaGlwKCR1c2VyaWQpOwogICAgICAgICAgICBpZiggIWlzX2FycmF5KCRvdXQpIHx8IGNvdW50KCRvdXQpID09IDAgKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICRyZXMgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkb3V0IGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkcmVzW10gPSBhcnJheSgndXNlcmlkJz0+JHVzZXJpZCwnZ3JvdXBpZCc9PiRvbmUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkcmVzOwogICAgICAgIH0KCiAgICAgICAgLy8gc2hvdWxkbid0IGJlIHVzZWQgYW55IG1vcmUuLi4gYnV0IGp1c3QgaW4gY2FzZS4KICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAkcSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIFdIRVJFIHVzZXJpZD0/IjsKICAgICAgICAkZGJyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxLGFycmF5KCR1c2VyaWQpKTsKICAgICAgICBpZiAoJGRicmVzdWx0ICYmICRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSkgewogICAgICAgICAgICAkcmVzdWx0PWFycmF5KCk7OwogICAgICAgICAgICB3aGlsZSAoJHJvdz0kZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgICAgICAgICAgICAgICRyZXN1bHRbXSA9ICRyb3c7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0KCi8vCi8vIGVuZCBvZiByYyBmdW5jdGlvbnMKLy8KCiAgICAvLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHkoJHRpdGxlLCRkZWZhdWx0dmFsdWU9ZmFsc2UpCiAgICB7CiAgICAgICAgJHVzZXJpZD0kdGhpcy0+TG9nZ2VkSW5JZCgpOwogICAgICAgIGlmICgkdXNlcmlkPT09ZmFsc2UpIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gJHRoaXMtPkdldFVzZXJQcm9wZXJ0eUZ1bGwoJHRpdGxlLCR1c2VyaWQsJGRlZmF1bHR2YWx1ZSk7CiAgICB9CgoKICAgIC8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KICAgIGZ1bmN0aW9uIEdldFVzZXJQcm9wZXJ0eUZ1bGwoJHRpdGxlLCR1c2VyaWQsICRkZWZhdWx0dmFsdWU9ZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCR1c2VyaWQ9PT1mYWxzZSkgcmV0dXJuIGZhbHNlOwogICAgICAgICR1aW5mbyA9IGZldV91c2VyX2NhY2hlOjpnZXRfdXNlcigkdXNlcmlkLFRSVUUpOwoKICAgICAgICAkZGVmbiA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm4oJHRpdGxlKTsKICAgICAgICBpZiggISRkZWZuICkgcmV0dXJuIGZhbHNlOwoKICAgICAgICBpZiggaXNzZXQoJHVpbmZvWydmcHJvcHMnXSkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICR1aW5mb1snZnByb3BzJ10gYXMgJG9uZXByb3AgKSB7CiAgICAgICAgICAgICAgICBpZiggJG9uZXByb3BbJ3RpdGxlJ10gPT0gJHRpdGxlICkgcmV0dXJuICRvbmVwcm9wWydkYXRhJ107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRkZWZhdWx0dmFsdWU7CiAgICB9CgoKICAgIC8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KICAgIGZ1bmN0aW9uIElzVXNlclByb3BlcnR5VmFsdWVVbmlxdWUoJHVpZCwkdGl0bGUsJGRhdGEpCiAgICB7CiAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICAgJGRiciA9ICcnOwogICAgICAgIGlmKCAkdWlkID4gMCApIHsKICAgICAgICAgICAgJHEgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMKICAgICAgICAgICAgV0hFUkUgdGl0bGUgPSA/IEFORCB1c2VyaWQgIT0gPyBBTkQgZGF0YSA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5HZXRPbmUoJHEsYXJyYXkoJHRpdGxlLCR1aWQsJGRhdGEpKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRxID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzCiAgICAgICAgICAgIFdIRVJFIHRpdGxlID0gPyBBTkQgZGF0YSA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5HZXRPbmUoJHEsYXJyYXkoJHRpdGxlLCRkYXRhKSk7CiAgICAgICAgfQogICAgICAgIGlmKCAkZGJyICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICAvLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBTZXRVc2VyUHJvcGVydHkoJHRpdGxlLCRkYXRhKQogICAgewogICAgICAgICR1c2VyaWQ9JHRoaXMtPkxvZ2dlZEluSWQoKTsKICAgICAgICBpZiAoJHVzZXJpZD09PWZhbHNlKSByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0dXJuICR0aGlzLT5TZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkZGF0YSwkdXNlcmlkKTsKICAgIH0KCgovLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBTZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkZGF0YSwkdXNlcmlkKQogICAgewogICAgICAgIGlmICgkdXNlcmlkPT09ZmFsc2UpIHJldHVybiBGQUxTRTsKICAgICAgICAkZGVmbiA9ICR0aGlzLT5HZXRQcm9wZXJ0eURlZm4oJHRpdGxlKTsKICAgICAgICBpZiggISRkZWZuICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICBpZiggJGRlZm5bJ2VuY3J5cHQnXSApIHsKICAgICAgICAgICAgLy8gZ290dGEgZW5jcnlwdC4KICAgICAgICAgICAgJHRoaXMtPlNldEVuY3J5cHRpb25LZXkoJHVzZXJpZCxUUlVFKTsKICAgICAgICAgICAgJGRhdGEgPSBiYXNlNjRfZW5jb2RlKGNnZV9lbmNyeXB0OjplbmNyeXB0KCR0aGlzLT5fZW5jcnlwdGlvbl9rZXksJGRhdGEpKTsKICAgICAgICB9CgogICAgICAgIGlmKCAkZGVmblsnZm9yY2VfdW5pcXVlJ10gJiYgISR0aGlzLT5Jc1VzZXJQcm9wZXJ0eVZhbHVlVW5pcXVlKCR1c2VyaWQsJHRpdGxlLCRkYXRhKSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgICAgICRkYiA9ICR0aGlzLT5HZXREQigpOwogICAgICAgICAgICAkcT0iU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBXSEVSRSB0aXRsZT0/IEFORCB1c2VyaWQ9PyI7CiAgICAgICAgICAgICRwPWFycmF5KCR0aXRsZSwkdXNlcmlkKTsKICAgICAgICAgICAgJHI9JGRiLT5FeGVjdXRlKCRxLCRwKTsKICAgICAgICAgICAgaWYgKCEkciB8fCAoJHItPk51bVJvd3MoKT09MCkpIHsKICAgICAgICAgICAgICAgICRxPSJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyAodXNlcmlkLHRpdGxlLGRhdGEpIFZBTFVFUyAoPyw/LD8pIjsKICAgICAgICAgICAgICAgICRwPWFycmF5KCR1c2VyaWQsJHRpdGxlLCRkYXRhKTsKICAgICAgICAgICAgICAgICRyPSRkYi0+RXhlY3V0ZSgkcSwkcCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcm93PSRyLT5GZXRjaFJvdygpOwogICAgICAgICAgICAgICAgJHE9IlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBTRVQgZGF0YT0/IFdIRVJFIGlkPT8iOwogICAgICAgICAgICAgICAgJHA9YXJyYXkoJGRhdGEsKGludCkkcm93WyJpZCJdKTsKICAgICAgICAgICAgICAgICRyPSRkYi0+RXhlY3V0ZSgkcSwkcCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgZmV1X3VzZXJfY2FjaGU6OmRlbF91c2VyKCR1c2VyaWQpOwogICAgICAgIHJldHVybiAoJHIhPWZhbHNlKTsKICAgIH0KCgogICAgLy8gZGVsZXRlIGFsbCBvY2N1cmFuY2VzIG9mIHRoZSB1c2VycHJvcGVydHkgYnkgbmFtZQogICAgZnVuY3Rpb24gRGVsZXRlVXNlclByb3BlcnR5QnlOYW1lKCAkdGl0bGUgKQogICAgewogICAgICAgICRkYiA9ICR0aGlzLT5HZXREQigpOwogICAgICAgICRxID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzIFdIRVJFIHRpdGxlPT8iOwogICAgICAgICRwID0gYXJyYXkoICR0aXRsZSApOwogICAgICAgICRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCAkcCApOwoKICAgICAgICBmZXVfdXNlcl9jYWNoZTo6Y2xlYXJfYWxsKCk7CiAgICAgICAgcmV0dXJuICgkcmVzdWx0IT1mYWxzZSk7CiAgICB9CgoKICAgIC8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KICAgIGZ1bmN0aW9uIERlbGV0ZVVzZXJQcm9wZXJ0eSgkdGl0bGUsJGFsbD1mYWxzZSkKICAgIHsKICAgICAgICAkdXNlcmlkPSR0aGlzLT5Mb2dnZWRJbklkKCk7CiAgICAgICAgaWYgKCR1c2VyaWQ9PT1mYWxzZSkgcmV0dXJuIGZhbHNlOwogICAgICAgIHJldHVybiAkdGhpcy0+RGVsZXRlVXNlclByb3BlcnR5RnVsbCgkdGl0bGUsJHVzZXJpZCwkYWxsKTsKICAgIH0KCgogICAgLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgZnVuY3Rpb24gRGVsZXRlVXNlclByb3BlcnR5RnVsbCgkdGl0bGUsJHVzZXJpZCwkYWxsPWZhbHNlKQogICAgewogICAgICAgICRkYj0kdGhpcy0+R2V0REIoKTsKICAgICAgICAkcT0iREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMgV0hFUkUgdXNlcmlkPT8iOwogICAgICAgIGlmICghJGFsbCkgJHEuPSIgQU5EIHRpdGxlPT8iOwogICAgICAgICRwPWFycmF5KCk7CiAgICAgICAgaWYgKCRhbGwpICRwPWFycmF5KCR1c2VyaWQpOyBlbHNlICRwPWFycmF5KCR1c2VyaWQsJHRpdGxlKTsKICAgICAgICAkcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcSwkcCk7CgogICAgICAgIGZldV91c2VyX2NhY2hlOjpkZWxfdXNlcigkdXNlcmlkKTsKICAgICAgICByZXR1cm4gKCRyZXN1bHQhPWZhbHNlKTsKICAgIH0KCgogICAgLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgZnVuY3Rpb24gRGVsZXRlQWxsVXNlclByb3BlcnRpZXMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+RGVsZXRlVXNlclByb3BlcnR5KCIiLHRydWUpOwogICAgfQoKCiAgICAvLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBEZWxldGVBbGxVc2VyUHJvcGVydGllc0Z1bGwoJHVzZXJpZCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkRlbGV0ZVVzZXJQcm9wZXJ0eUZ1bGwoIiIsJHVzZXJpZCx0cnVlKTsKICAgIH0KCgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHVzZV91c2Vyc2FsdCgpCiAgICB7CiAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICByZXR1cm4gKGludCkgJG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlX3VzZXJzYWx0JywwKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gQ2hlY2tQYXNzd29yZCgkdXNlcm5hbWUsJHBhc3N3b3JkLCRncm91cHMgPSAnJykKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAkcT0iU0VMRUNUIHUuaWQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdXNlcnMgdSI7CiAgICAgICAgaWYgKCRncm91cHMgIT0gJycpIHsKICAgICAgICAgICAgJHEgLj0gJyBJTk5FUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIGIgT04gdS5pZCA9IGIudXNlcmlkIElOTkVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2dyb3VwcyBnIE9OIGcuaWQgPSBiLmdyb3VwaWQgJzsKICAgICAgICB9CiAgICAgICAgJHdoZXJlID0gJHBhcm1zID0gYXJyYXkoKTsKICAgICAgICAkd2hlcmVbXSA9ICd1LnVzZXJuYW1lID0gPyc7ICRwYXJtc1tdID0gJHVzZXJuYW1lOwogICAgICAgICR3aGVyZVtdID0gJ0NPQUxFU0NFKHUuZGlzYWJsZWQsMCkgPSAwJzsKICAgICAgICAvLyR3aGVyZVtdID0gJ0NPQUxFU0NFKHUubXVzdF92YWxpZGF0ZSwwKSA9IDAnOwoKICAgICAgICBpZiggISR0aGlzLT51c2VfdXNlcnNhbHQoKSApIHsKICAgICAgICAgICAgJHdoZXJlW10gPSAndS5wYXNzd29yZCA9ID8nOwogICAgICAgICAgICAkdG1wID0gbWQ1KHRyaW0oJHBhc3N3b3JkKS4kdGhpcy0+Z2V0X3NhbHQoKSk7CiAgICAgICAgICAgICRwYXJtc1tdID0gJHRtcDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRxMiA9ICdTRUxFQ1QgVS5zYWx0IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIFUgV0hFUkUgdXNlcm5hbWUgPSA/JzsKICAgICAgICAgICAgJHNhbHQgPSAkZGItPkdldE9uZSgkcTIsYXJyYXkoJHVzZXJuYW1lKSk7CiAgICAgICAgICAgICR3aGVyZVtdID0gJ3UucGFzc3dvcmQgPSA/JzsKICAgICAgICAgICAgJHBhcm1zW10gPSBzaGExKCRwYXNzd29yZC4kc2FsdCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGdyb3VwcyAhPSAnJykgewogICAgICAgICAgICAvL3NwbGl0IHRoZSBzdHJpbmcgb24gdGhlIGNvbW1hcwogICAgICAgICAgICAkZ3JvdXBzID0gZXhwbG9kZSgnLCcsJGdyb3Vwcyk7CiAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRncm91cHMpOyAkaSsrICkgewogICAgICAgICAgICAgICAgJGdyb3Vwc1skaV0gPSAkZGItPnFzdHIodHJpbSgkZ3JvdXBzWyRpXSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRncm91cHMgPSAnKCcuaW1wbG9kZSgnLCcsJGdyb3VwcykuJyknOwogICAgICAgICAgICAkd2hlcmVbXSA9ICdnLmdyb3VwbmFtZSBJTiAnLiRncm91cHM7CiAgICAgICAgfQoKICAgICAgICAkcSAuPSAnIFdIRVJFICcuaW1wbG9kZSgnIEFORCAnLCR3aGVyZSk7CiAgICAgICAgJHJlc3VsdD0gKGludCkgJGRiLT5HZXRPbmUoJHEsJHBhcm1zKTsKICAgICAgICBpZiggJHJlc3VsdCA+IDAgKSByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAvLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBMb2dnZWRJbk5hbWUoKQogICAgewogICAgICAgICR1c2VyaWQ9JHRoaXMtPkxvZ2dlZEluSWQoKTsKICAgICAgICBpZiAoJHVzZXJpZCkgcmV0dXJuICR0aGlzLT5HZXRVc2VyTmFtZSgkdXNlcmlkKTsgZWxzZSByZXR1cm4gIiI7CiAgICB9CgoKICAgIC8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KICAgIGZ1bmN0aW9uIExvZ291dCgkdWlkID0gJycsJG1lc3NhZ2UgPSAnbG9nb3V0JykKICAgIHsKICAgICAgICAkZ0NtcyA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCk7CiAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICAgJHEgPSAnJzsKICAgICAgICAkcCA9ICcnOwogICAgICAgIGlmKCAkdWlkID09ICcnICkgewogICAgICAgICAgICAkdWlkID0gJHRoaXMtPkxvZ2dlZEluSWQoKTsKICAgICAgICAgICAgaWYoICEkdWlkICkgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPl9jbGVhcl9sb2dpbmRldGFpbHMoJHVpZCk7CgogICAgICAgIC8vIGFuZCBhZGQgaGlzdG9yeSBpbmZvCiAgICAgICAgJHRoaXMtPmFkZF9oaXN0b3J5KCR1aWQsJG1lc3NhZ2UpOwoKICAgICAgICAvLyBzZW5kIHRoZSBldmVudC4KICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICRtb2R1bGUtPlNlbmRFdmVudCgnT25Mb2dvdXQnLGFycmF5KCdpZCc9PiR1aWQpKTsKICAgIH0KCgogICAgLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgZnVuY3Rpb24gTG9nb3V0VXNlcigkdWlkLCRldmVudG1zZyA9ICdsb2dvdXQnKQogICAgewogICAgICAgIGlmKCAhJHVpZCApIHJldHVybjsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgICAkcT0iREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2xvZ2dlZGluIFdIRVJFIHVzZXJpZD0/IjsKICAgICAgICAkcD1hcnJheSgkdWlkKTsKICAgICAgICAkcmVzdWx0PSRkYi0+RXhlY3V0ZSgkcSwkcCk7CgogICAgICAgICR0aGlzLT5hZGRfaGlzdG9yeSgkdWlkLCRldmVudG1zZyk7CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgZnVuY3Rpb24gRXhwaXJlVXNlcnMoKQogICAgewogICAgICAgIC8vIHRvZG86IG1vdmVkIHRvIGNvbnN1bWVyLi4uCiAgICAgICAgaWYoICR0aGlzLT5faGFzcnVuMSApIHJldHVybjsKICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICRleHBpcmVfaW50ZXJ2YWwgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdleHBpcmV1c2Vyc19pbnRlcnZhbCcsNjApOwogICAgICAgICRleHBpcmVfbGFzdHJ1biA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2V4cGlyZXVzZXJzX2xhc3RydW4nKTsKICAgICAgICBkZWJ1Z19idWZmZXIoJ0ZFVSBFeHBpcmVVc2VycyAnLiRleHBpcmVfaW50ZXJ2YWwuJyAtLSAnLiRleHBpcmVfbGFzdHJ1bik7CiAgICAgICAgaWYoIHRpbWUoKSAtICRleHBpcmVfbGFzdHJ1biA+PSAkZXhwaXJlX2ludGVydmFsICkgewogICAgICAgICAgICAkZXhwaXJ5dGltZSA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3VzZXJfc2Vzc2lvbl9leHBpcmVzJyk7CiAgICAgICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAgICAgICAkcT0iU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfbG9nZ2VkaW4gV0hFUkUgbGFzdHVzZWQ8PyI7CiAgICAgICAgICAgICRwPWFycmF5KHRpbWUoKS0kZXhwaXJ5dGltZSk7CiAgICAgICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsICRwICk7CiAgICAgICAgICAgIHdoaWxlKCAkZGJyZXN1bHQgJiYgKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpICkgewogICAgICAgICAgICAgICAgJHRoaXMtPmFkZF9oaXN0b3J5KCRyb3dbJ3VzZXJpZCddLCdleHBpcmUnKTsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkX1NFU1NJT05bJ19fRkVVX18nXSkgJiYgJF9TRVNTSU9OWydfX0ZFVV9fJ10gIT0gJycgKSB7CiAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSB1bnNlcmlhbGl6ZShiYXNlNjRfZGVjb2RlKCRfU0VTU0lPTlsnX19GRVVfXyddKSk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRkYXRhWyd1aWQnXSkgJiYgJGRhdGFbJ3VpZCddID09ICRyb3dbJ3VzZXJpZCddICkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2NsZWFyX2xvZ2luZGV0YWlscygkcm93Wyd1c2VyaWQnXSxUUlVFKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdGhpcy0+Tm90aWZ5RXhwaXJlZFVzZXIoICRyb3dbJ3VzZXJpZCddICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRxPSJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfbG9nZ2VkaW4gV0hFUkUgbGFzdHVzZWQ8PyI7CiAgICAgICAgICAgICRyZXN1bHQ9JGRiLT5FeGVjdXRlKCRxLCRwKTsKCiAgICAgICAgICAgICRtb2R1bGUtPlNldFByZWZlcmVuY2UoJ2V4cGlyZXVzZXJzX2xhc3RydW4nLHRpbWUoKSk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5faGFzcnVuMSA9IDE7CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgZnVuY3Rpb24gTG9nZ2VkSW5JZCgpCiAgICB7CiAgICAgICAgLy8gaWYgdGhlIHVzZXIgaXMgYXV0aGVudGljYXRlZCB1c2luZyB0aGUgYXV0aCBtb2R1bGUKICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwogICAgICAgICRhdXRoX2NvbnN1bWVyID0gZmV1X3V0aWxzOjpnZXRfYXV0aF9jb25zdW1lcigpOwogICAgICAgIGlmKCAhJGF1dGhfY29uc3VtZXItPmhhc19jYXBhYmlsaXR5KCRhdXRoX2NvbnN1bWVyOjpDQVBBQklMSVRZX0xPR0lOKSApIHsKICAgICAgICAgICAgLy8gaXRzIHRoZSBidWlsdCBpbiBzdHVmZi4KICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5fc3RkX0xvZ2dlZEluSWQoKTsKICAgICAgICAgICAgaWYoICRyZXMgKSByZXR1cm4gJHJlczsKICAgICAgICB9CgogICAgICAgIC8vIGVpdGhlciB0aGUgY29uc3VtZXIgZG9lc24ndCBwcm92aWRlIGFic29sdXRlIGxvZ2luIChDQVBBQklMSVRZX0xPR0lOKSBPUiB0aGUgdXNlciBpcyBub3QKICAgICAgICAvLyBhdXRoZW50aWNhdGVkIHZpYSB0aGUgb2xkIHN0dWZmLgogICAgICAgIGlmKCAkYXV0aF9jb25zdW1lci0+aXNfYXV0aGVudGljYXRlZCgpICkgewogICAgICAgICAgICAvLyBhdXRoZW50aWNhdGVkIHZpYSBzb21lIGV4dGVybmFsIG1lY2hhbmlzbS4uLiBzdGlsbCBuZWVkIHRvIHRpZSB0aGlzIHRvIGFuCiAgICAgICAgICAgIC8vIGludGVybmFsIHVzZXIgcmVjb3JkIGZvciBwcm9wZXJ0aWVzIGFuZCBncm91cHMgYW5kIGNydWZ0LgoKICAgICAgICAgICAgLy8gc2VhcmNoIGZvciBhIHVzZXJpZCBiYXNlZCBvbiBhIHByb3BlcnR5CiAgICAgICAgICAgICRwcm9wID0gJGF1dGhfY29uc3VtZXItPmdldF9jb25uZWN0aW5nX3Byb3BlcnR5X25hbWUoKTsKICAgICAgICAgICAgJHZhbCAgPSAkYXV0aF9jb25zdW1lci0+Z2V0X3VuaXF1ZV9pZGVudGlmaWVyKCk7CiAgICAgICAgICAgIGlmKCAhJHZhbCApIHJldHVybiBGQUxTRTsKCiAgICAgICAgICAgICR1aW5mbyA9ICcnOwogICAgICAgICAgICAkdXNlcHJvcCA9IGZhbHNlOwogICAgICAgICAgICBpZiggJHByb3AgPT0gJycgfHwgJHByb3AgPT0gZmV1X2F1dGhfY29uc3VtZXI6OlBST1BFUlRZX1VTRVJOQU1FICkgewogICAgICAgICAgICAgICAgLy8gZ2V0IHVzZXIgYnkgbmFtZQogICAgICAgICAgICAgICAgJHVpbmZvID0gJHRoaXMtPkdldFVzZXJJbmZvQnlOYW1lKCAkYXV0aF9jb25zdW1lci0+Z2V0X3VzZXJuYW1lKCR2YWwpICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggJHByb3AgPT0gZmV1X2F1dGhfY29uc3VtZXI6OlBST1BFUlRZX1VJRCApIHsKICAgICAgICAgICAgICAgIC8vIHNlZSBpZiB0aGUgdWlkIGV4aXN0cy4KICAgICAgICAgICAgICAgICR1aW5mbyA9ICR0aGlzLT5HZXRVc2VySW5mbyggJHZhbCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgLy8gaXQncyBhIHByb3BlcnR5IG9mIHNvbWUgdHlwZS4KICAgICAgICAgICAgICAgICR1aW5mbyA9ICR0aGlzLT5HZXRVc2VySW5mb0J5UHJvcGVydHkoJHByb3AsJHZhbCk7CiAgICAgICAgICAgICAgICAkdXNlcHJvcCA9IHRydWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHVpbmZvKSB8fCAoaXNfYXJyYXkoJHVpbmZvKSAmJiAkdWluZm9bMF0gPT0gRkFMU0UpICkgewogICAgICAgICAgICAgICAgLy8gdXNlciBhdXRoZW50aWNhdGVkIGJ1dCBub3QgZm91bmQsIGRvIHdlIG5lZWQgdG8gY3JlYXRlIG9uZT8KICAgICAgICAgICAgICAgIGlmKCAkYXV0aF9jb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoZmV1X2F1dGhfY29uc3VtZXI6OkNBUEFCSUxJVFlfQUxUTE9HSU4pIHx8ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2F1dG9fY3JlYXRlX3Vua25vd24nKSApIHsKCiAgICAgICAgICAgICAgICAgICAgLy8gd2UncmUgZ29ubmEgY3JlYXRlIGEgbmV3IHVzZXIuCiAgICAgICAgICAgICAgICAgICAgJHVzZXJuYW1lID0gJyc7CgogICAgICAgICAgICAgICAgICAgIGlmKCAkYXV0aF9jb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGF1dGhfY29uc3VtZXI6OkNBUEFCSUxJVFlfVVNFUk5BTUUpICkgewogICAgICAgICAgICAgICAgICAgICAgICAkdXNlcm5hbWUgPSAkYXV0aF9jb25zdW1lci0+Z2V0X3VzZXJuYW1lKCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiggISR1c2VybmFtZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHVzZXJuYW1lID0gJHZhbDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3VzZV9yYW5kb211c2VybmFtZScpICYmCiAgICAgICAgICAgICAgICAgICAgICAgICRwcm9wICE9IGZldV9hdXRoX2NvbnN1bWVyOjpQUk9QRVJUWV9VU0VSTkFNRSAmJgogICAgICAgICAgICAgICAgICAgICAgICAkcHJvcCAhPSBmZXVfYXV0aF9jb25zdW1lcjo6UFJPUEVSVFlfVUlEICYmCiAgICAgICAgICAgICAgICAgICAgICAgICRwcm9wICE9ICcnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHVzZXJuYW1lID0gJG1vZHVsZS0+R2VuZXJhdGVSYW5kb21Vc2VybmFtZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkdG1wID0gJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnZXhwaXJlYWdlX21vbnRocycsNik7CiAgICAgICAgICAgICAgICAgICAgJGV4cGlyZXMgPSBzdHJ0b3RpbWUoc3ByaW50ZigiKyVkIG1vbnRocyIsJHRtcCkpOwoKICAgICAgICAgICAgICAgICAgICAkcmV0ID0gJHRoaXMtPkFkZFVzZXIoICR1c2VybmFtZSwKICAgICAgICAgICAgICAgICAgICBmZXVfdXRpbHM6OmdlbmVyYXRlX3JhbmRvbV9wcmludGFibGVfc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgJGV4cGlyZXMsIFRSVUUsIFRSVUUgKTsKCiAgICAgICAgICAgICAgICAgICAgaWYoICRyZXRbMF0gPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRtb2R1bGUtPkF1ZGl0KCcnLCRtb2R1bGUtPkdldE5hbWUoKSwkcmV0WzFdKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkdWlkID0gJHJldFsxXTsKCiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGhpcyBncm91cHMuCiAgICAgICAgICAgICAgICAgICAgJGRmbHRfZ3JvdXBzID0gJHRoaXMtPkdldERmbHRHcm91cHMoKTsKICAgICAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJGRmbHRfZ3JvdXBzKSAmJiBjb3VudCgkZGZsdF9ncm91cHMpICkgJHJlcyA9ICR0aGlzLT5TZXRVc2VyR3JvdXBzKCR1aWQsJGRmbHRfZ3JvdXBzKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gbm93IHNldCBhIHByb3BlcnR5LgogICAgICAgICAgICAgICAgICAgIGlmKCAkdXNlcHJvcCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJldCA9ICR0aGlzLT5TZXRVc2VyUHJvcGVydHlGdWxsKCRwcm9wLCR2YWwsJHVpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkcmV0ID09IGZhbHNlICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkIHJlbW92ZSB0aGUgdXNlci4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZHVsZS0+QXVkaXQoJycsJG1vZHVsZS0+R2V0TmFtZSgpLCRtb2R1bGUtPkxhbmcoJ2Vycm9yX3Byb2JsZW1zZXR0aW5naW5mbycpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJG1vZHVsZS0+QXVkaXQoJHVpZCwkbW9kdWxlLT5HZXROYW1lKCksJG1vZHVsZS0+TGFuZygnYXVkaXRfdXNlcl9jcmVhdGVkJykpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdWlkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuICR1aW5mb1sxXVsnaWQnXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZGVjcnlwdCgka2V5LCRlbmNkYXRhKQogICAgewogICAgICAgIGlmKCAhZnVuY3Rpb25fZXhpc3RzKCdtY3J5cHRfbW9kdWxlX29wZW4nKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkZGF0YSA9IEZBTFNFOwogICAgICAgICR0ZCA9IEBtY3J5cHRfbW9kdWxlX29wZW4oTUNSWVBUX0RFUywnJyxNQ1JZUFRfTU9ERV9FQ0IsJycpOwogICAgICAgIGlmKCAkdGQgPT09IEZBTFNFICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAka2V5ID0gc3Vic3RyKCRrZXksMCxtY3J5cHRfZW5jX2dldF9rZXlfc2l6ZSgkdGQpKTsKICAgICAgICAkaXZfc2l6ZSA9IEBtY3J5cHRfZW5jX2dldF9pdl9zaXplKCR0ZCk7CiAgICAgICAgJGl2ID0gQG1jcnlwdF9jcmVhdGVfaXYoJGl2X3NpemUsIE1DUllQVF9SQU5EKTsKCiAgICAgICAgLy8gaW5pdGlhbGl6ZSBlbmNyeXB0aW9uIGhhbmRsZQogICAgICAgICR0bXAgPSBAbWNyeXB0X2dlbmVyaWNfaW5pdCgkdGQsJGtleSwgJGl2KTsKICAgICAgICBpZiggJHRtcCAhPSAtMSApIHsKICAgICAgICAgICAgJGRhdGEgPSBAbWRlY3J5cHRfZ2VuZXJpYygkdGQsJGVuY2RhdGEpOwogICAgICAgICAgICBtY3J5cHRfZ2VuZXJpY19kZWluaXQoJHRkKTsKICAgICAgICB9CiAgICAgICAgQG1jcnlwdF9tb2R1bGVfY2xvc2UoJHRkKTsKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgLyoqCiAgICAgKiBOT1QgRk9SIEVYVEVSTkFMIFVTRQogICAgICoKICAgICAqIEBpbnRlcm5hbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX3N0ZF9Mb2dnZWRJbklkKCkKICAgIHsKICAgICAgICAkc2Vzc2lvbmlkID0gc2Vzc2lvbl9pZCgpOwogICAgICAgIGlmKCAkc2Vzc2lvbmlkID09ICIiICkgcmV0dXJuIEZBTFNFOwogICAgICAgICR0aGlzLT5FeHBpcmVVc2VycygpOwoKICAgICAgICAkZGF0YSA9ICR0aGlzLT5fZ2V0X3NhdmVkX2xvZ2luZGV0YWlscygpOwogICAgICAgIGlmKCAhJGRhdGEgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICFpc3NldCgkZGF0YVsndWlkJ10pICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkdWlkID0gJGRhdGFbJ3VpZCddOwogICAgICAgICR0aGlzLT5fc2V0X3NhdmVkX2xvZ2luZGV0YWlscygkdWlkKTsKICAgICAgICByZXR1cm4gJHVpZDsKICAgIH0KCgogICAgLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgZnVuY3Rpb24gTG9nZ2VkSW4oKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPkxvZ2dlZEluSWQoKSApIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmUgaWYgdGhlIHVzZXIgaWQgaXMgYSBtZW1iZXIgb2YgdGhlIGdyb3VwKHMpIHNwZWNpZmllZC4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ZWdlciB1c2VyaWQKICAgICAqIEBwYXJhbSBtaXhlZCBpbnRlZ2VyIChwb3NpdGl2ZSkgZ3JvdXAgaWQsIG9yIGFuIGFycmF5IG9mIHBvc2l0aXZlIGludGVnZXIgZ3JvdXAgaWRzLgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIGZ1bmN0aW9uIE1lbWJlck9mR3JvdXAoJHVzZXJpZCwkZ3JvdXBpZCkKICAgIHsKICAgICAgICBpZiggJHVzZXJpZCA8IDEgKSByZXR1cm4gRkFMU0U7CgogICAgICAgIC8vIGNsZWFudXAgdGhlIGlucHV0IGdyb3VwaWQgbGlzdC4KICAgICAgICBpZiggIWlzX2FycmF5KCRncm91cGlkKSApICRncm91cGlkID0gYXJyYXkoKGludCkkZ3JvdXBpZCk7CiAgICAgICAgJGdyb3VwaWQgPSBhcnJheV92YWx1ZXMoJGdyb3VwaWQpOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRncm91cGlkKTsgJGkrKyApIHsKICAgICAgICAgICAgaWYoICRncm91cGlkWyRpXSA8IDEgKSB1bnNldCgkZ3JvdXBpZFskaV0pOwogICAgICAgIH0KICAgICAgICBpZiggIWlzX2FycmF5KCRncm91cGlkKSB8fCBjb3VudCgkZ3JvdXBpZCkgPT0gMCApIHJldHVybiBGQUxTRTsKCiAgICAgICAgJHRtcCA9ICR0aGlzLT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdXNlcmlkKTsKICAgICAgICBpZiggIWlzX2FycmF5KCR0bXApIHx8IGNvdW50KCR0bXApID09IDAgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJG1lbWJlcnNoaXAgPSBjZ2VfYXJyYXk6OmV4dHJhY3RfZmllbGQoJHRtcCwnZ3JvdXBpZCcpOwoKICAgICAgICAkdG1wID0gYXJyYXlfaW50ZXJzZWN0KCRtZW1iZXJzaGlwLCRncm91cGlkKTsKICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIC8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KICAgIGZ1bmN0aW9uIEdldFVzZXJOYW1lKCR1c2VyaWQpCiAgICB7CiAgICAgICAgJHJvdyA9IGZldV91c2VyX2NhY2hlOjpnZXRfdXNlcigkdXNlcmlkKTsKICAgICAgICBpZiggISRyb3cgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuICRyb3dbJ3VzZXJuYW1lJ107CiAgICB9CgoKICAgIC8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KICAgIGZ1bmN0aW9uIEdldFVzZXJJRCgkdXNlcm5hbWUpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X3VzZXJpZGJ5bmFtZSkgKSAkdGhpcy0+X3VzZXJpZGJ5bmFtZSA9IGFycmF5KCk7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X3VzZXJpZGJ5bmFtZVskdXNlcm5hbWVdKSApIHsKICAgICAgICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICAgICAgICRxID0gIlNFTEVDVCBpZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc191c2VycyBXSEVSRSB1c2VybmFtZSA9ID8iOwogICAgICAgICAgICAkdWlkID0gKGludCkgJGRiLT5HZXRPbmUoJHEsYXJyYXkoJHVzZXJuYW1lKSk7CiAgICAgICAgICAgIGlmKCAkdWlkIDwgMSApIHJldHVybjsKICAgICAgICAgICAgJHRoaXMtPl91c2VyaWRieW5hbWVbJHVzZXJuYW1lXSA9ICR1aWQ7CiAgICAgICAgICAgIHJldHVybiAkdWlkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPl91c2VyaWRieW5hbWVbJHVzZXJuYW1lXTsKICAgIH0KCgogICAgLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgLy8gcmV0dXJucyBhcnJheQogICAgZnVuY3Rpb24gQWRkR3JvdXAoICRuYW1lLCAkZGVzY3JpcHRpb24gKQogICAgewogICAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwoKICAgICAgICAvLyBzZWUgaWYgaXQgZXhpc3RzIGFscmVhZHkgb3Igbm90IChieSBuYW1lKQogICAgICAgICRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcyBXSEVSRSBncm91cG5hbWUgPSA/IjsKICAgICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJG5hbWUgKSApOwogICAgICAgIGlmKCAhJGRicmVzdWx0ICkgcmV0dXJuIGFycmF5KEZBTFNFLCRkYi0+RXJyb3JNc2coKSk7CiAgICAgICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKICAgICAgICBpZiggJHJvdyApIHsKICAgICAgICAgICAgJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCRtb2R1bGUtPkxhbmcoJ2Vycm9yX2dyb3VwbmFtZV9leGlzdHMnKSk7CiAgICAgICAgfQoKICAgICAgICAkcSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfZ3JvdXBzIChncm91cG5hbWUsZ3JvdXBkZXNjKSBWQUxVRVMgKD8sPykiOwogICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkbmFtZSwgJGRlc2NyaXB0aW9uICkgKTsKICAgICAgICBpZiggISRkYnJlc3VsdCApIHJldHVybiBhcnJheShGQUxTRSwkZGItPkVycm9yTXNnKCkpOwogICAgICAgICRncnBpZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CiAgICAgICAgdW5zZXQoJHRoaXMtPl9ncm91cGluZm9fY2FjaGUpOwogICAgICAgIHJldHVybiBhcnJheShUUlVFLCRncnBpZCk7CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgovLyByZXR1cm5zIGFycmF5CiAgICBmdW5jdGlvbiBBZGRVc2VyKCAkbmFtZSwgJHBhc3N3b3JkLCAkZXhwaXJlcywgJG5vbnN0ZCA9IEZBTFNFICkKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiAgICAgICAgLy8gc2VlIGlmIGl0IGV4aXN0cyBhbHJlYWR5IG9yIG5vdCAoYnkgbmFtZSkKICAgICAgICAkdWlkID0gJHRoaXMtPkdldFVzZXJJRCgkbmFtZSk7CiAgICAgICAgaWYoICR1aWQgKSB7CiAgICAgICAgICAgICRtb2R1bGUgPSAkdGhpcy0+R2V0TW9kdWxlKCk7CiAgICAgICAgICAgIHJldHVybiBhcnJheShGQUxTRSwkbW9kdWxlLT5MYW5nKCdlcnJvcl91c2VybmFtZV9leGlzdHMnKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBnZW5lcmF0ZSB0aGUgc2FsdC4KICAgICAgICAkc2FsdCA9IG1kNSh0aW1lKCkuJG5hbWUuJGV4cGlyZXMuX19GSUxFX18pOwoKICAgICAgICAvLyBpbnNlcnQgdGhlIHJlY29yZAogICAgICAgICRxID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc191c2VycyAodXNlcm5hbWUscGFzc3dvcmQsY3JlYXRlZGF0ZSxleHBpcmVzLG5vbnN0ZCxzYWx0KSBWQUxVRVMgKD8sPyw/LD8sPyw/KSI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRuYW1lLCAnICcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW0oJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCkpLCInIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW0oJGRiLT5EYlRpbWVTdGFtcCgkZXhwaXJlcyksIiciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vbnN0ZCwgJHNhbHQgKSApOwogICAgICAgIGlmKCAhJGRicmVzdWx0ICkgcmV0dXJuIGFycmF5KEZBTFNFLCRkYi0+RXJyb3JNc2coKSk7CiAgICAgICAgJHVpZCA9ICRkYi0+SW5zZXJ0X0lEKCk7CgogICAgICAgIC8vIHNldCB0aGUgcGFzc3dvcmQKICAgICAgICAkcmVzID0gJHRoaXMtPlNldFVzZXJQYXNzd29yZCgkdWlkLCRwYXNzd29yZCk7CiAgICAgICAgaWYoICEkcmVzWzBdICkgcmV0dXJuICRyZXM7CgogICAgICAgICR0aGlzLT5fdXNlcmlkYnluYW1lID0gYXJyYXkoKTsKICAgICAgICByZXR1cm4gYXJyYXkoVFJVRSwkdWlkKTsKICAgIH0KCi8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KICAgIGZ1bmN0aW9uIEdldEdyb3VwTmFtZSgkZ2lkKQogICAgewogICAgICAgICR0aGlzLT5fZ2V0X2dyb3VwaW5mbygpOwogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSkgJiYgaXNzZXQoJHRoaXMtPl9ncm91cGluZm9fY2FjaGVbJGdpZF0pICkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9ncm91cGluZm9fY2FjaGVbJGdpZF1bJ2dyb3VwbmFtZSddOwogICAgICAgIH0KICAgIH0KCgovLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBHZXRHcm91cERlc2MoJGdyb3VwaWQpCiAgICB7CiAgICAgICAgJHRoaXMtPl9nZXRfZ3JvdXBpbmZvKCk7CiAgICAgICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fZ3JvdXBpbmZvX2NhY2hlKSAmJiBpc3NldCgkdGhpcy0+X2dyb3VwaW5mb19jYWNoZVskZ2lkXSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2dyb3VwaW5mb19jYWNoZVskZ2lkXVsnZ3JvdXBkZXNjJ107CiAgICAgICAgfQogICAgfQoKCi8vIHVzZXJpZCBhcGkgZnVuY3Rpb24KLy8gcmV0dXJucyBhbiBhcnJheQogICAgZnVuY3Rpb24gRGVsZXRlR3JvdXBGdWxsKCAkaWQgKQogICAgewogICAgICAgICRkYiA9IFxjZ2VfdXRpbHM6OmdldF9kYigpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRkYi0+QmVnaW5UcmFucygpOwoKICAgICAgICAgICAgLy8gZGVsZXRlIGFsbCBwcm9wZXJ0eSByZWxhdGlvbnMgZnJvbSB0aGlzIGdyb3VwCiAgICAgICAgICAgICRxID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19ncm91cHByb3BtYXAgV0hFUkUgZ3JvdXBfaWQgPSA/IjsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRpZCApICk7CgogICAgICAgICAgICAvLyBkZWxldGUgYWxsIGluZGljYXRpb24gdGhhdCBhbnlib2R5IGlzIGEgbWVtYmVyCiAgICAgICAgICAgIC8vIG9mIHRoaXMgZ3JvdXAKICAgICAgICAgICAgJHEgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2JlbG9uZ3MgV0hFUkUgZ3JvdXBpZCA9ID8iOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJGlkICkgKTsKCiAgICAgICAgICAgIC8vIGFuZCB0aGVuIGRlbGV0ZSB0aGUgZ3JvdXAKICAgICAgICAgICAgJHEgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcyBXSEVSRSBpZCA9ID8iOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJGlkICkgKTsKCiAgICAgICAgICAgICRkYi0+Q29tbWl0VHJhbnMoKTsKICAgICAgICAgICAgJHRoaXMtPl9ncm91cGluZm9fY2FjaGUgPSBudWxsOwogICAgICAgICAgICByZXR1cm4gYXJyYXkoIFRSVUUsICcnICk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkZGItPlJvbGxiYWNrVHJhbnMoKTsKICAgICAgICAgICAgJG1vZCA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICAgICAgYXVkaXQoJGlkLCRtb2QtPkdldE5hbWUoKSwnUHJvYmxlbSBEZWxldGluZyBHcm91cDogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgZGVidWdfdG9fbG9nKF9fTUVUSE9EX18pOwogICAgICAgICAgICBkZWJ1Z190b19sb2coJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIHJldHVybiBhcnJheShGQUxTRSwkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CgoKLy8gdXNlcmlkIGFwaSBmdW5jdGlvbgogICAgZnVuY3Rpb24gR2V0R3JvdXBMaXN0KCkKICAgIHsKICAgICAgICAkdGhpcy0+X2dldF9ncm91cGluZm8oKTsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9ncm91cGluZm9fY2FjaGUpICkgewogICAgICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSBhcyAkZ2lkID0+ICRpbmZvICkgewogICAgICAgICAgICAgICAgJHJlc3VsdFskaW5mb1snZ3JvdXBuYW1lJ11dID0gKGludCkgJGdpZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCgovLyB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBHZXRHcm91cExpc3RGdWxsKCR3aXRoX2NvdW50ID0gRkFMU0UpCiAgICB7CiAgICAgICAgJHRoaXMtPl9nZXRfZ3JvdXBpbmZvKCR3aXRoX2NvdW50KTsKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9ncm91cGluZm9fY2FjaGUpICkgJHJlc3VsdCA9ICR0aGlzLT5fZ3JvdXBpbmZvX2NhY2hlOwogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKCi8vIG9sZCB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBHZXRHcm91cElEKCRncm91cG5hbWUpCiAgICB7CiAgICAgICAgJHRoaXMtPl9nZXRfZ3JvdXBpbmZvKCk7CiAgICAgICAgaWYoIGlzX2FycmF5KCAkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSApICkgewogICAgICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2dyb3VwaW5mb19jYWNoZSBhcyAkZ2lkID0+ICRpbmZvICkgewogICAgICAgICAgICAgICAgaWYoICRpbmZvWydncm91cG5hbWUnXSA9PSAkZ3JvdXBuYW1lICkgcmV0dXJuICRnaWQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKCi8qKgogKiBSZXR1cm4gYSBsaXN0IG9mIGdyb3VwcyB0aGF0IHRoZSB1c2VyIGlzIGEgbWVtYmVyIG9mCiAqCiAqIEBkZXByZWNhdGVkCiAqIEBwYXJhbSBpbnRlZ2VyIFRoZSB1c2VyIGlkZW50aWZpZXIKICogQHJldHVybiBzdHJpbmcgQSBjb21tYSBkZWxpbWl0ZWQgc3RyaW5nIGNvbnRhaW5pbmcgbWVtYmVyIGdyb3VwIG5hbWVzLiAgb3IgJ25vbmUnCiAqLwogICAgZnVuY3Rpb24gR2V0TWVtYmVyR3JvdXBzKCR1c2VyaWQpCiAgICB7CiAgICAgICAgJGF1dGhfY29uc3VtZXIgPSBmZXVfdXRpbHM6OmdldF9hdXRoX2NvbnN1bWVyKCk7CiAgICAgICAgaWYoICEkYXV0aF9jb25zdW1lci0+aGFzX2NhcGFiaWxpdHkoJGF1dGhfY29uc3VtZXI6OkNBUEFCSUxJVFlfR1JPVVBNRU1CRVJTSElQKSApIHsKICAgICAgICAgICAgcmV0dXJuICdub25lJzsKICAgICAgICB9CgogICAgICAgICRvdXQgPSAkYXV0aF9jb25zdW1lci0+Z2V0X2dyb3VwX21lbWJlcnNoaXAoJHVzZXJpZCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkb3V0KSB8fCBjb3VudCgkb3V0KSA9PSAwICkgcmV0dXJuICdub25lJzsKCiAgICAgICAgJGluZm8gPSAkdGhpcy0+X2dldF9ncm91cGluZm8oKTsKICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkb3V0IGFzICRvbmUgKSB7CiAgICAgICAgICAgIGlmKCBpc3NldCgkaW5mb1skb25lXSkgKSAkdG1wW10gPSAkaW5mb1skb25lXVsnZ3JvdXBuYW1lJ107CiAgICAgICAgfQogICAgICAgIGlmKCBjb3VudCgkb3V0KSA9PSAwICkgcmV0dXJuICdub25lJzsKCiAgICAgICAgcmV0dXJuIGltcGxvZGUoJywnLCR0bXApOwogICAgfQoKCi8vIG9sZCB1c2VyaWQgYXBpIGZ1bmN0aW9uCiAgICBmdW5jdGlvbiBEZWxldGVVc2VyKCRpZCkKICAgIHsKICAgICAgICAkcmVzID0gJHRoaXMtPkRlbGV0ZVVzZXJGdWxsKCRpZCk7CiAgICAgICAgaWYoICRyZXNbMF0gKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIEdldERmbHRHcm91cHMoKQogICAgewogICAgICAgICRjb25zdW1lciA9IGZldV91dGlsczo6Z2V0X2F1dGhfY29uc3VtZXIoKTsKICAgICAgICBpZiggJGNvbnN1bWVyLT5oYXNfY2FwYWJpbGl0eSgkY29uc3VtZXI6OkNBUEFCSUxJVFlfREVGQVVMVEdST1VQUykgKSByZXR1cm4gJGNvbnN1bWVyLT5nZXRfZGVmYXVsdF9ncm91cHMoKTsKCiAgICAgICAgJGZldSA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX0ZST05URU5EVVNFUlMpOwogICAgICAgICRkZmx0X2dyb3VwID0gJGZldS0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9ncm91cCcpOwogICAgICAgIHJldHVybiBhcnJheSgoaW50KSRkZmx0X2dyb3VwKTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRfc2F2ZWRfbG9naW5kZXRhaWxzKCkKICAgIHsKICAgICAgICAka2V5ID0gJ19fRkVVX18nOwogICAgICAgICRrZXkyID0gJ19fRkVVX19scic7CiAgICAgICAgJHNlc3Npb25pZCA9IHNlc3Npb25faWQoKTsKICAgICAgICBpZiggISRzZXNzaW9uaWQgKSByZXR1cm47CiAgICAgICAgJGxhc3RyID0gMDsKICAgICAgICAkZG9fcmVhZCA9IEZBTFNFOwogICAgICAgICRkYXRhID0gbnVsbDsKICAgICAgICAkbW9kdWxlID0gJHRoaXMtPkdldE1vZHVsZSgpOwoKICAgICAgICBpZiggJHRoaXMtPl9yZWFkZGF0YTEgKSByZXR1cm4gJHRoaXMtPl9yZWFkZGF0YTE7CgogICAgICAgIGlmKCBpc3NldCgkX1NFU1NJT05bJGtleTJdKSApICRsYXN0ciA9ICRfU0VTU0lPTlska2V5Ml07CiAgICAgICAgaWYoICRsYXN0ciA+IDAgJiYgJGxhc3RyIDwgdGltZSgpIC0gMTgwICkgJGRvX3JlYWQgPSBUUlVFOwoKICAgICAgICBpZiggISRkb19yZWFkICkgewogICAgICAgICAgICAvLyBzZWUgaWYgdWlkIGluZm8gaXMgaW4gdGhlIHNlc3Npb24KICAgICAgICAgICAgaWYoICFlbXB0eSgkX1NFU1NJT05bJGtleV0pICkgJGRhdGEgPSB1bnNlcmlhbGl6ZShiYXNlNjRfZGVjb2RlKCRfU0VTU0lPTlska2V5XSkpOwogICAgICAgIH0KCiAgICAgICAgaWYoICEkZG9fcmVhZCAmJiAhJGRhdGEgKSB7CiAgICAgICAgICAgIC8vIGdldCBkYXRhIGZyb20gYSBzZXNzaW9uIGNvb2tpZQogICAgICAgICAgICBpZiggJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnY29va2llX2tlZXBhbGl2ZScsMCkgJiYgIWVtcHR5KCRfQ09PS0lFWyRrZXldKSApICRkYXRhID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkX0NPT0tJRVska2V5XSkpOwogICAgICAgIH0KCiAgICAgICAgaWYoICEkZG9fcmVhZCAmJiAhJGRhdGEgKSB7CiAgICAgICAgICAgIC8vIHNlZSBpZiB3ZSBjYW4gZ2V0IHRoZSBkYXRhIGZyb20gYSBwZXJtYW5lbnQgY29va2llLgogICAgICAgICAgICBpZiggKCRjbiA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ2Nvb2tpZW5hbWUnKSkgIT0gJycpIHsKICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgcmVtZW1iZXIgbWUgZnVuY3Rpb25hbGl0eS4gYXMgb3Bwb3NlZCB0byBhIHNlc3Npb24gY29va2llLgogICAgICAgICAgICAgICAgJHRtcCA9IFxjbXNfY29va2llczo6Z2V0KCRjbik7CiAgICAgICAgICAgICAgICBpZiggJHRtcCApICRkYXRhID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkdG1wKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKCAhJGRvX3JlYWQgJiYgJGRhdGEgKSB7CiAgICAgICAgICAgICR0aGlzLT5fcmVhZGRhdGExID0gJGRhdGE7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CgogICAgICAgIC8vIHJlYWQgbG9nZ2VkIGluIGRhdGEgZnJvbSBkYXRhYmFzZQogICAgICAgICRkYiA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERiKCk7CiAgICAgICAgJHEgPSAnU0VMRUNUIHVzZXJpZCBBUyB1aWQsbGFzdHVzZWQgQVMgdGltZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19sb2dnZWRpbiBXSEVSRSBzZXNzaW9uaWQgPSA/JzsKICAgICAgICAkZGF0YSA9ICRkYi0+R2V0Um93KCRxLGFycmF5KCRzZXNzaW9uaWQpKTsKICAgICAgICAkdGhpcy0+X2hhc3JlYWQxID0gVFJVRTsKICAgICAgICBpZiggaXNfYXJyYXkoJGRhdGEpICYmIGNvdW50KCRkYXRhKSApIHsKICAgICAgICAgICAgJF9TRVNTSU9OWyRrZXkyXSA9IHRpbWUoKTsKICAgICAgICAgICAgJHRoaXMtPl9yZWFkZGF0YTEgPSAkZGF0YTsKICAgICAgICAgICAgcmV0dXJuICRkYXRhOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9zZXRfc2F2ZWRfbG9naW5kZXRhaWxzKCR1aWQpCiAgICB7CiAgICAgICAgLy8gZG8gdGhpcyBvbmx5IG9uY2UgcGVyIHJlcXVlc3QuCiAgICAgICAgaWYoICR0aGlzLT5faGFzcnVuMiA9PSBUUlVFICkgcmV0dXJuOwogICAgICAgICR0aGlzLT5faGFzcnVuMiA9IFRSVUU7CgogICAgICAgICRrZXkgPSAnX19GRVVfXyc7CiAgICAgICAgJHNlc3Npb25pZCA9IHNlc3Npb25faWQoKTsKICAgICAgICBpZiggISRzZXNzaW9uaWQgKSByZXR1cm47CiAgICAgICAgJGxhc3R1cGRhdGUgPSAwOwogICAgICAgIGlmKCBpc3NldCgkX1NFU1NJT05bJGtleS4nX2x1J10pICkgJGxhc3R1cGRhdGUgPSAkX1NFU1NJT05bJGtleS4nX2x1J107CgogICAgICAgICRkYXRhID0gYXJyYXkoJ3VpZCc9PihpbnQpJHVpZCwndGltZSc9PnRpbWUoKSwnc2Vzc2lvbmlkJz0+JHNlc3Npb25pZCk7CiAgICAgICAgJF9TRVNTSU9OWyRrZXldID0gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJGRhdGEpKTsKCiAgICAgICAgJG1vZHVsZSA9ICR0aGlzLT5HZXRNb2R1bGUoKTsKICAgICAgICBpZiggJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnY29va2llX2tlZXBhbGl2ZScsMCkgKSB7CiAgICAgICAgICAgICR1c2VyX3Nlc3Npb25fZXhwaXJlcyA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3VzZXJfc2Vzc2lvbl9leHBpcmVzJyk7CiAgICAgICAgICAgIGlmKCAkdXNlcl9zZXNzaW9uX2V4cGlyZXMgKSBAc2V0Y29va2llKCRrZXksYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJGRhdGEpKSx0aW1lKCkrJHVzZXJfc2Vzc2lvbl9leHBpcmVzLCcvJyk7IC8vIGV4cGlyeSB0byAyNCBob3Vycy4KICAgICAgICB9CgogICAgICAgIGlmKCB0aW1lKCkgLSAxODAgPiAkbGFzdHVwZGF0ZSApIHsKICAgICAgICAgICAgLy8gb25seSB1cGRhdGUgdGhlIHVzZXIgZXZlcnkgMyBtaW51dGVzLi4uCiAgICAgICAgICAgICRkYiA9IENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERiKCk7CiAgICAgICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2xvZ2dlZGluIFNFVCBsYXN0dXNlZCA9ID8gV0hFUkUgdXNlcmlkID0gPyBBTkQgc2Vzc2lvbmlkID0gPyc7CiAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRkYXRhWyd0aW1lJ10sJGRhdGFbJ3VpZCddLCRkYXRhWydzZXNzaW9uaWQnXSkpOwogICAgICAgICAgICBpZiggISRkYnIgfHwgJGRiLT5BZmZlY3RlZF9Sb3dzKCkgPT0gMCApIHsKICAgICAgICAgICAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfbG9nZ2VkaW4gKHNlc3Npb25pZCxsYXN0dXNlZCx1c2VyaWQpIFZBTFVFUyAoPyw/LD8pJzsKICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRkYXRhWydzZXNzaW9uaWQnXSwkZGF0YVsndGltZSddLCRkYXRhWyd1aWQnXSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRfU0VTU0lPTlska2V5LidfbHUnXSA9IHRpbWUoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfY2xlYXJfbG9naW5kZXRhaWxzKCR1aWQsJHNlc3Npb25fb25seSA9IEZBTFNFKQogICAgewogICAgICAgICRrZXkgPSAnX19GRVVfXyc7CiAgICAgICAgJHNlc3Npb25pZCA9IHNlc3Npb25faWQoKTsKICAgICAgICBpZiggISRzZXNzaW9uaWQgKSByZXR1cm47CgogICAgICAgIGZvcmVhY2goICRfU0VTU0lPTiBhcyAkayA9PiAkdiApIHsKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGssJGtleSkgKSB1bnNldCgkX1NFU1NJT05bJGtdKTsKICAgICAgICB9CgogICAgICAgIGlmKCAkc2Vzc2lvbl9vbmx5ID09IFRSVUUgKSByZXR1cm47CiAgICAgICAgQHNldGNvb2tpZSgka2V5LCcnLHRpbWUoKS02MDAwMCwnLycpOwogICAgICAgICRmZXUgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9GUk9OVEVORFVTRVJTKTsKICAgICAgICBpZiggKCRjbiA9ICRmZXUtPkdldFByZWZlcmVuY2UoJ2Nvb2tpZW5hbWUnKSkgIT0gJycgKSBAc2V0Y29va2llKCRjbiwnJyx0aW1lKCktNjAwMDAsJy8nKTsKCiAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19sb2dnZWRpbiBXSEVSRSB1c2VyaWQgPSA/JzsKICAgICAgICAkZGIgPSBDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXREYigpOwogICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHVpZCkpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX19yZXNldCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9oYXNydW4xID0gbnVsbDsKICAgICAgICAkdGhpcy0+X2hhc3J1bjIgPSBudWxsOwogICAgICAgICR0aGlzLT5fcmVhZGRhdGExID0gbnVsbDsKICAgICAgICAkdGhpcy0+X2hhc3JlYWQxID0gbnVsbDsKICAgIH0KfSAvLyBjbGFzcwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.property_editor_defn.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBGcm9udEVuZFVzZXJzOwoKY2xhc3MgcHJvcGVydHlfZWRpdG9yX2RlZm4KewogICAgcHJpdmF0ZSAkX3Byb3BkZWZuOwogICAgcHJpdmF0ZSAkX3JlbGF0aW9uOwogICAgcHJpdmF0ZSAkX3VzZXI7CiAgICBwcml2YXRlICRfYXR0cmliczsKICAgIHByaXZhdGUgJF9yZXFfY29sb3I7CiAgICBwcml2YXRlICRfcmVxX21hcmtlcjsKICAgIHByaXZhdGUgJF9oaWRkZW5fY29sb3I7CiAgICBwcml2YXRlICRfaGlkZGVuX21hcmtlcjsKICAgIHByaXZhdGUgJF9lcnJvcjsgLy8gYW4gZXJyb3Iga2V5CiAgICBwcml2YXRlICRfdG1wMTsgLy8gc29tZSB0ZW1wb3Jhcnkgc3RvcmFnZSBkYXRhLgogICAgcHJpdmF0ZSAkX3RtcDI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRwcm9wZGVmbiwkcmVsYXRpb24sdXNlcl9lZGl0X2Fzc2lzdGFudCAmJHVzZXIpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkcHJvcGRlZm5bJ25hbWUnXSkgfHwgISRwcm9wZGVmblsnbmFtZSddIHx8ICFpc3NldCgkcHJvcGRlZm5bJ3R5cGUnXSkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgcHJvcGVydHkgZGVmIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIH0KICAgICAgICBpZiggIWlzc2V0KCRyZWxhdGlvblsnbmFtZSddKSB8fCAhJHJlbGF0aW9uWyduYW1lJ10gfHwgIWlzc2V0KCRyZWxhdGlvblsnZ3JvdXBfaWQnXSkgfHwgISRyZWxhdGlvblsnZ3JvdXBfaWQnXSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBwcm9wZXJ0eSByZWxhdGlvbiBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICB9CiAgICAgICAgaWYoICRwcm9wZGVmblsnbmFtZSddICE9ICRyZWxhdGlvblsnbmFtZSddICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTWlzbWF0Y2hlZCBwcm9wZXJ0eSBhbmQgcmVsYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICR0aGlzLT5fcHJvcGRlZm4gPSAkcHJvcGRlZm47CiAgICAgICAgJHRoaXMtPl9yZWxhdGlvbiA9ICRyZWxhdGlvbjsKICAgICAgICAkdGhpcy0+X3VzZXIgPSYgJHVzZXI7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fcHJvcGRlZm5bJ2F0dHJpYnMnXSkgJiYgJHRoaXMtPl9wcm9wZGVmblsnYXR0cmlicyddICkgJHRoaXMtPl9hdHRyaWJzID0gdW5zZXJpYWxpemUoJHRoaXMtPl9wcm9wZGVmblsnYXR0cmlicyddKTsKCiAgICAgICAgJHRoaXMtPl9yZXFfY29sb3IgPSBcZmV1X3V0aWxzOjpnZXRfbW9kKCktPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVkX2ZpZWxkX2NvbG9yJywnYmx1ZScpOwogICAgICAgICR0aGlzLT5faGlkZGVuX2NvbG9yID0gXGZldV91dGlsczo6Z2V0X21vZCgpLT5HZXRQcmVmZXJlbmNlKCdoaWRkZW5fZmllbGRfY29sb3InLCdncmVlbicpOwogICAgICAgICR0aGlzLT5fcmVxX21hcmtlciA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKS0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfbWFya2VyJywnKicpOwogICAgICAgICR0aGlzLT5faGlkZGVuX21hcmtlciA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKS0+R2V0UHJlZmVyZW5jZSgnaGlkZGVuX2ZpZWxkX21hcmtlcicsJyEhJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgJG1vZCA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKTsKCiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9wcm9wZGVmblsnbmFtZSddOwoKICAgICAgICBjYXNlICdyZXF1aXJlZCc6CiAgICAgICAgICAgIHJldHVybiAoJHRoaXMtPl9yZWxhdGlvblsncmVxdWlyZWQnXSA9PSAyKTsKCiAgICAgICAgY2FzZSAncHJvbXB0JzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fcHJvcGRlZm5bJ3Byb21wdCddOwoKICAgICAgICBjYXNlICd0eXBlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fcHJvcGRlZm5bJ3R5cGUnXTsKCiAgICAgICAgY2FzZSAnY29sb3InOgogICAgICAgICAgICBpZiggJHRoaXMtPnJlcXVpcmVkICkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fcmVxX2NvbG9yOwogICAgICAgICAgICB9IGVsc2UgaWYoICR0aGlzLT5fcmVsYXRpb25bJ3JlcXVpcmVkJ10gPT0gMyApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2hpZGRlbl9jb2xvcjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGNhc2UgJ2xlbmd0aCc6CiAgICAgICAgY2FzZSAnc2l6ZSc6CiAgICAgICAgICAgIGlmKCAkdGhpcy0+dHlwZSA9PSAwIHx8ICR0aGlzLT50eXBlID09IDIgKSByZXR1cm4gKGludCkgJHRoaXMtPl9wcm9wZGVmblsnbGVuZ3RoJ107CiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgY2FzZSAnaW1hZ2VfcGF0aCc6CiAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+dmFsdWU7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+dHlwZSAhPSA2IHx8ICEkdmFsICkgcmV0dXJuOwogICAgICAgICAgICByZXR1cm4gJG1vZC0+Z2V0X3VwbG9hZF9kaXJuYW1lKCkuJy8nLiR2YWw7CgogICAgICAgIGNhc2UgJ2ltYWdlX3VybCc6CiAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+dmFsdWU7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+dHlwZSAhPSA2IHx8ICEkdmFsICkgcmV0dXJuOwogICAgICAgICAgICByZXR1cm4gJG1vZC0+Z2V0X3VwbG9hZF9kaXJ1cmwoKS4nLycuJHZhbDsKCiAgICAgICAgY2FzZSAnbWF4bGVuZ3RoJzoKICAgICAgICBjYXNlICdtYXhsZW5uJzoKICAgICAgICAgICAgaWYoICR0aGlzLT50eXBlID09IDAgfHwgJHRoaXMtPnR5cGUgPT0gMiApIHJldHVybiAoaW50KSAkdGhpcy0+X3Byb3BkZWZuWydtYXhsZW5ndGgnXTsKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICBjYXNlICd3eXNpd3lnJzoKICAgICAgICAgICAgaWYoICR0aGlzLT50eXBlID09IDMgKSB7CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9hdHRyaWJzWyd3eXNpd3lnJ10pICkgcmV0dXJuICR0aGlzLT5fYXR0cmlic1snd3lzaXd5ZyddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgY2FzZSAnbWFya2VyJzoKICAgICAgICAgICAgaWYoICR0aGlzLT5yZXF1aXJlZCApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3JlcV9tYXJrZXI7CiAgICAgICAgICAgIH0gZWxzZSBpZiggJHRoaXMtPl9yZWxhdGlvblsncmVxdWlyZWQnXSA9PSAzICkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5faGlkZGVuX21hcmtlcjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGNhc2UgJ29wdGlvbnMnOgogICAgICAgICAgICBzd2l0Y2goICR0aGlzLT50eXBlICkgewogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgICAgJG9wdHMgPSBcZmV1X3V0aWxzOjpnZXRfbW9kKCktPkdldFNlbGVjdE9wdGlvbnMoJHRoaXMtPl9wcm9wZGVmblsnbmFtZSddKTsKICAgICAgICAgICAgICAgIGlmKCAhY291bnQoJG9wdHMpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdObyBzZWxlY3Qgb3B0aW9ucyBmb3IgYSBkcm9wZG93bi9hcnJheSBwcm9wZXJ0eScpOwogICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5X2ZsaXAoJG9wdHMpOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgLy8gbm8gYXJyYXkgdG8gcmV0dXJuLgogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgY2FzZSAnZGZsdCc6CiAgICAgICAgY2FzZSAnZGVmYXVsdCc6CiAgICAgICAgICAgIHN3aXRjaCggJHRoaXMtPnR5cGUgKSB7CiAgICAgICAgICAgIGNhc2UgMDogLy8gdGV4dAogICAgICAgICAgICBjYXNlIDI6IC8vIGVtYWlsCiAgICAgICAgICAgIGNhc2UgMzogLy8gdGV4dGFyZWEKICAgICAgICAgICAgY2FzZSA0OiAvLyBkcm9wZG93bgogICAgICAgICAgICBjYXNlIDU6IC8vIG11bHRpc2VsZWN0CiAgICAgICAgICAgIGNhc2UgNjogLy8gaW1hZ2UKICAgICAgICAgICAgY2FzZSA3OiAvLyByYWRpbyBidXR0b24gZ3JvdXAKICAgICAgICAgICAgY2FzZSA4OiAvLyBkYXRlCiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMTogLy8gY2hlY2tib3gKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2F0dHJpYnNbJ2NoZWNrZWQnXSkgKSByZXR1cm4gJHRoaXMtPl9hdHRyaWJzWydjaGVja2VkJ107CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGNhc2UgJ3ZhbCc6CiAgICAgICAgY2FzZSAndmFsdWUnOgogICAgICAgICAgICAkdmFsID0gJHRoaXMtPl91c2VyLT5nZXRfcHJvcGVydHkoJHRoaXMtPm5hbWUpOwogICAgICAgICAgICBzd2l0Y2goICR0aGlzLT50eXBlICkgewogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICBpZiggIWlzX2FycmF5KCR2YWwpICkgewogICAgICAgICAgICAgICAgICAgIGlmKCBzdHJwb3MoJHZhbCwnLCcpICE9PSBGQUxTRSApICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSBleHBsb2RlKCcsJywkdmFsKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiggc3RycG9zKCR2YWwsJzonKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSBleHBsb2RlKCc6JywkdmFsKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gWyAkdmFsIF07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkdmFsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X3ZhbHVlKCR2YWwpCiAgICB7CiAgICAgICAgJG1vZCA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKTsKCiAgICAgICAgLy8gJHZhbCBjYW4gYmUgbWl4ZWQKICAgICAgICBzd2l0Y2goICR0aGlzLT50eXBlICkgewogICAgICAgIGNhc2UgMDogLy8gdGV4dCBmaWVsZAogICAgICAgICAgICAkdmFsID0gKHN0cmluZykgJHZhbDsKICAgICAgICAgICAgJGwgPSBzdHJsZW4oJHZhbCk7CiAgICAgICAgICAgIGlmKCAkbCA+ICR0aGlzLT5tYXhsZW5ndGggKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX2ZsZHZhbGxlbmd0aCcsJHRoaXMtPm5hbWUpKTsKICAgICAgICAgICAgJHRoaXMtPl91c2VyLT5zZXRfcHJvcGVydHkoJHRoaXMtPm5hbWUsJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDE6IC8vIGNoZWNrYm94CiAgICAgICAgICAgICR0aGlzLT5fdXNlci0+c2V0X3Byb3BlcnR5KCR0aGlzLT5uYW1lLChpbnQpICR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAyOiAvLyBlbWFpbAogICAgICAgICAgICAkdmFsID0gKHN0cmluZykgJHZhbDsKICAgICAgICAgICAgJHRoaXMtPl91c2VyLT5zZXRfcHJvcGVydHkoJHRoaXMtPm5hbWUsJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDM6IC8vIHRleHRhcmVhCiAgICAgICAgICAgICR2YWwgPSAoc3RyaW5nKSAkdmFsOwogICAgICAgICAgICAkdGhpcy0+X3VzZXItPnNldF9wcm9wZXJ0eSgkdGhpcy0+bmFtZSwkdmFsKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgNDogLy8gZHJvcGRvd24KICAgICAgICAgICAgJHZhbCA9IChzdHJpbmcpICR2YWw7CiAgICAgICAgICAgICR0aGlzLT5fdXNlci0+c2V0X3Byb3BlcnR5KCR0aGlzLT5uYW1lLCR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA1OiAvLyBtdWx0aXNlbGVjdAogICAgICAgICAgICBpZiggaXNfYXJyYXkoJHZhbCkgKSAkdmFsID0gaW1wbG9kZSgnLCcsJHZhbCk7CiAgICAgICAgICAgICR0aGlzLT5fdXNlci0+c2V0X3Byb3BlcnR5KCR0aGlzLT5uYW1lLCR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA2OiAvLyBpbWFnZQogICAgICAgICAgICAvLyB3ZSBjaGVjayBpZiBhbnl0aGluZyBpcyB1cGxvYWRlZC4KICAgICAgICAgICAgaWYoIGlzc2V0KCRfRklMRVMpICYmIGlzc2V0KCRfRklMRVNbJHZhbF0pICYmICRfRklMRVNbJHZhbF1bJ25hbWUnXSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fdG1wMSA9ICR2YWw7IC8vIHRoZSBrZXkKICAgICAgICAgICAgICAgICR0aGlzLT5fdG1wMiA9ICR0aGlzLT5fdXNlci0+Z2V0X3Byb3BlcnR5KCR0aGlzLT5uYW1lKTsgLy8gY3VycmVudCB2YWx1ZS4KICAgICAgICAgICAgICAgICRuZXd2YWwgPSAkbW9kLT5nZXRfdXBsb2FkX2ZpbGVuYW1lKCR0aGlzLT5uYW1lLCRfRklMRVNbJHZhbF1bJ25hbWUnXSk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X3VzZXItPnNldF9wcm9wZXJ0eSgkdGhpcy0+bmFtZSwkbmV3dmFsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA3OiAvLyByYWRpbyBidXR0b24gZ3JvdXAKICAgICAgICAgICAgJHZhbCA9IChzdHJpbmcpICR2YWw7CiAgICAgICAgICAgICR0aGlzLT5fdXNlci0+c2V0X3Byb3BlcnR5KCR0aGlzLT5uYW1lLCR2YWwpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA4OiAvLyBkYXRlCiAgICAgICAgICAgICR2YWwgPSAoaW50KSAkdmFsOwogICAgICAgICAgICAkdGhpcy0+X3VzZXItPnNldF9wcm9wZXJ0eSgkdGhpcy0+bmFtZSwkdmFsKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgJG5hbWUgPSAkdGhpcy0+bmFtZTsKICAgICAgICAkdmFsID0gJHRoaXMtPl91c2VyLT5nZXRfcHJvcGVydHkoJG5hbWUpOwogICAgICAgICRtb2QgPSBcZmV1X3V0aWxzOjpnZXRfbW9kKCk7CgogICAgICAgIGlmKCAkdGhpcy0+X2Vycm9yICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkbW9kLT5MYW5nKCR0aGlzLT5fZXJyb3IpKTsKICAgICAgICBzd2l0Y2goICR0aGlzLT50eXBlICkgewogICAgICAgIGNhc2UgMDogLy8gdGV4dAogICAgICAgICAgICBpZiggISR2YWwgJiYgJHRoaXMtPnJlcXVpcmVkICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX21pc3NpbmdfcmVxdWlyZWRfcGFyYW0nLCRuYW1lKSk7CiAgICAgICAgICAgICRsID0gc3RybGVuKCR2YWwpOwogICAgICAgICAgICBpZiggJGwgPiAkdGhpcy0+bWF4bGVuZ3RoICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9mbGR2YWxsZW5ndGgnLCRuYW1lKSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDI6IC8vIGVtYWlsCiAgICAgICAgICAgIGlmKCAhJHZhbCAmJiAkdGhpcy0+cmVxdWlyZWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbScsJG5hbWUpKTsKICAgICAgICAgICAgJGwgPSBzdHJsZW4oJHZhbCk7CiAgICAgICAgICAgIGlmKCAkbCA+ICR0aGlzLT5tYXhsZW5ndGggKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKFxmZXVfdXRpbHM6OmdldF9tb2QoKS0+TGFuZygnZXJyb3JfZmxkdmFsbGVuZ3RoJywkbmFtZSkpOwogICAgICAgICAgICBpZiggIWlzX2VtYWlsKCR2YWwpICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbihcZmV1X3V0aWxzOjpnZXRfbW9kKCktPkxhbmcoJ2Vycm9yX2ludmFsaWRlbWFpbGFkZHJlc3MnKSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDE6IC8vIGNoZWNrYm94CiAgICAgICAgICAgIGlmKCAkdmFsID09PSAnJyAmJiAkdGhpcy0+cmVxdWlyZWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbScsJG5hbWUpKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMzogLy8gdGV4dGFyZWEKICAgICAgICAgICAgaWYoICR2YWwgPT09ICcnICYmICR0aGlzLT5yZXF1aXJlZCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJywkbmFtZSkpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSA0OiAvLyBkcm9wZG93bgogICAgICAgICAgICBpZiggJHZhbCA9PT0gJycgJiYgJHRoaXMtPnJlcXVpcmVkICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX21pc3NpbmdfcmVxdWlyZWRfcGFyYW0nLCRuYW1lKSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDU6IC8vIG11bHRpc2VsZWN0CiAgICAgICAgICAgIGlmKCAkdmFsID09PSAnJyAmJiAkdGhpcy0+cmVxdWlyZWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfbWlzc2luZ19yZXF1aXJlZF9wYXJhbScsJG5hbWUpKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgNjogLy8gaW1hZ2UKICAgICAgICAgICAgaWYoICR0aGlzLT5fdG1wMSApIHsKICAgICAgICAgICAgICAgICRyZXQgPSBcZmV1X3V0aWxzOjpjaGVja1VwbG9hZCgkdGhpcy0+X3RtcDEpOwogICAgICAgICAgICAgICAgaWYoICEkcmV0WzBdICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRyZXRbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDc6IC8vIHJhZGlvIGJ1dHRvbiBncm91cAogICAgICAgICAgICBpZiggJHZhbCA9PT0gJycgJiYgJHRoaXMtPnJlcXVpcmVkICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX21pc3NpbmdfcmVxdWlyZWRfcGFyYW0nLCRuYW1lKSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIDg6IC8vIGRhdGUKICAgICAgICAgICAgaWYoICR2YWwgPCAxICYmICR0aGlzLT5yZXF1aXJlZCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9taXNzaW5nX3JlcXVpcmVkX3BhcmFtJywkbmFtZSkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyX3ZhbHVlKCkKICAgIHsKICAgICAgICBzd2l0Y2goICR0aGlzLT50eXBlICkgewogICAgICAgIGNhc2UgNjogLy8gaW1hZ2UKICAgICAgICAgICAgJG1vZCA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKTsKICAgICAgICAgICAgaWYoICR0aGlzLT52YWx1ZSApIHsKICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgYW4gZXhpc3RpbmcgaWFtZ2UKICAgICAgICAgICAgICAgICRwYXRoID0gJG1vZC0+Z2V0X3VwbG9hZF9kaXJuYW1lKCkuJy8nLiR0aGlzLT52YWx1ZTsKICAgICAgICAgICAgICAgIEB1bmxpbmsoJHBhdGgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X3VzZXItPnNldF9wcm9wZXJ0eSgkdGhpcy0+bmFtZSxudWxsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcG9zdHByb2Nlc3MoJHVzZXIpCiAgICB7CiAgICAgICAgc3dpdGNoKCAkdGhpcy0+dHlwZSApIHsKICAgICAgICBjYXNlIDY6IC8vIGltYWdlCiAgICAgICAgICAgICRtb2QgPSBcZmV1X3V0aWxzOjpnZXRfbW9kKCk7CiAgICAgICAgICAgIGlmKCAhJHRoaXMtPl90bXAxICkgcmV0dXJuOwogICAgICAgICAgICBpZiggJHRoaXMtPl90bXAyICkgewogICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBmaWxlIHRvIGdldCByaWQgb2YuCiAgICAgICAgICAgICAgICAkcGF0aCA9ICRtb2QtPmdldF91cGxvYWRfZGlybmFtZSgpLicvJy4kdGhpcy0+X3RtcDI7CiAgICAgICAgICAgICAgICBAdW5saW5rKCRwYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBub3cgd2UgZ290dGEgbW92ZSB0aGUgdXBsb2FkIGZyb20gdGVtcG9yYXJ5IGxvY2F0aW9uIHRvIHBlcm1hbmVudCBsb2NhdGlvbgogICAgICAgICAgICAkcmVzID0gJG1vZC0+TWFuYWdlSW1hZ2VVcGxvYWQoJHRoaXMtPl90bXAxLCAkdGhpcy0+bmFtZSk7CiAgICAgICAgfQogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.Random.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNCRUdJTl9MSUNFTlNFCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBGcm9udEVuZFVzZXJzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgbWFuYWdlbWVudCBvZiBmcm9udGVuZAojICB1c2VycywgYW5kIHRoZWlyIGxvZ2luIHByb2Nlc3Mgd2l0aGluIGEgQ01TIE1hZGUgU2ltcGxlIHBvd2VyZWQKIyAgd2Vic2l0ZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoNCi8qKg0KICogR2VuZXJhdGUgcmFuZG9tIGNoYXJhY3RlcnMuDQogKg0KICogQGF1dGhvciAgICBMYXVyZW50aXUgVGFuYXNlIDxleHBlcnRwaHBAeWFob28uY29tPg0KICogQHZlcnNpb24gICAxLjENCiAqLw0KDQpjbGFzcyBSYW5kb20NCnsNCgkvKioNCgkgKiBTZXQgZGVmYXVsdCBjaGFyYWN0ZXJzLg0KICAgICAqDQogICAgICogQHZhciAgICAgIHN0cmluZw0KICAgICAqIEBhY2Nlc3MgICBwcml2YXRlDQogICAgICovDQoNCgl2YXIgJF92Y3JzOw0KDQoJLyoqDQoJICogSWYgaGF2ZSBudW1iZXINCiAgICAgKg0KICAgICAqIEB2YXIgICAgICBib29sDQogICAgICogQGFjY2VzcyAgIHByaXZhdGUNCiAgICAgKi8NCg0KCXZhciAkX3ZudW07DQoNCgkvKioNCgkgKiBJZiBkb2Vzbid0IGhhdmUgbnVtYmVyDQogICAgICoNCiAgICAgKiBAdmFyICAgICAgYm9vbA0KICAgICAqIEBhY2Nlc3MgICBwcml2YXRlDQogICAgICovDQoNCgl2YXIgJF92bm90Ow0KDQoJLyoqDQoJICogQ29uc3RydWN0b3INCgkgKg0KCSAqIFNldCBkZWZhdWx0IHZhbHVlcw0KCSAqDQoJICogQHBhcmFtICBzdHJpbmcgICRjcnMgICBDaGFyYWN0ZXJzIG91dHB1dA0KCSAqIEBwYXJhbSAgYm9vbCAgICAkbnVtICAgV2l0aCBudW1iZXINCgkgKiBAcGFyYW0gIGJvb2wgICAgJG5vdCAgIFdpdGggbm90IG51bWJlcg0KCSAqLw0KDQoJZnVuY3Rpb24gUmFuZG9tKCRjcnMgPSBmYWxzZSwgJG51bSA9IGZhbHNlLCAkbm90ID0gZmFsc2Upew0KCQkkdGhpcy0+X3ZudW0gPSAkbnVtOw0KCQkkdGhpcy0+X3Zub3QgPSAkbm90Ow0KCQlpZighJGNycyl7DQoJCQkkdGhpcy0+X3ZjcnMgPSAiMDEyMzQ1Njc4OSIuDQoJCQkJImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ii4NCgkJCQkiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiOw0KCQl9ZWxzZXsNCgkJCSR0aGlzLT5fdmNycyA9ICRjcnM7DQoJCQlpZigoJG51bSB8fCAkbm90KSAmJiAhJHRoaXMtPl9yZWMoJGNycywgJG51bSwgJG5vdCkpew0KCQkJCWlmKCRudW0gJiYgJG5vdCkgJGVyciA9ICJudW1iZXIgb3Igbm90IG51bWJlciI7DQoJCQkJZWxzZWlmKCRudW0pICRlcnIgPSAibnVtYmVyIjsNCgkJCQllbHNlaWYoJG5vdCkgJGVyciA9ICJub3QgbnVtYmVyIjsNCgkJCQllbHNlICRlcnIgPSAiY29tcGFyYXRpb24iOw0KCQkJCXRyaWdnZXJfZXJyb3IoIkNsYXNzIFJhbmRvbSAtIFN0cmluZyBpbnB1dCBbICIuJGNycy4iIF0gZG9lc24ndCBoYXZlICIuJGVyciwgRV9VU0VSX0VSUk9SKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIENvbXBhcmUgaW5wdXQgc3RyaW5nDQoJICoNCgkgKiBAYWNjZXNzICBwcml2YXRlDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHN0ciAgICAgIENoYXJhY3RlcnMgaW5wdXQNCgkgKiBAcGFyYW0gICBib29sICAgICAkbnVtYmVyICAgSGF2ZSBudW1iZXINCgkgKiBAcGFyYW0gICBib29sICAgICAkbm90bnVtICAgSGF2ZSBub3QgbnVtYmVyDQoJICogQHJldHVybiAgYm9vbCAgICAgSWYgaGF2ZSBudW1iZXIgb3IvYW5kIG5vdCBudW1iZXINCgkgKi8NCg0KCWZ1bmN0aW9uIF9yZWMoJHN0ciwgJG51bWJlciA9IHRydWUsICRub3RudW0gPSB0cnVlKXsNCgkJJGNudCA9IHN0cmxlbigkc3RyKTsNCgkJJHNldDEgPSAkc2V0MiA9IGZhbHNlOw0KCQlpZigkbnVtYmVyIHx8ICRub3RudW0pew0KCQkJZm9yKCRpPTA7JGk8JGNudDskaSsrKXsNCgkJCQlpZigkc3RyeyRpfSA9PT0gc3RydmFsKGludHZhbCgkc3RyeyRpfSkpKSAkc2V0MSA9IHRydWU7DQoJCQkJZWxzZSAkc2V0MiA9IHRydWU7DQoJCQkJaWYoJHNldDEgJiYgJHNldDIpIGJyZWFrOw0KCQkJfQ0KCQkJaWYoJG51bWJlciAmJiAkbm90bnVtKSByZXR1cm4gKCRzZXQxICYmICRzZXQyKTsNCgkJCWVsc2VpZigkbnVtYmVyKSByZXR1cm4gJHNldDE7DQoJCQllbHNlaWYoJG5vdG51bSkgcmV0dXJuICRzZXQyOw0KCQkJZWxzZSByZXR1cm4gdHJ1ZTsNCgkJfWVsc2UgcmV0dXJuIHRydWU7DQoJfQ0KDQoJLyoqDQoJICogR2VuZXJhdGUgcmFuZG9tIGNoYXJhY3RlcnMNCgkgKg0KCSAqIEBhY2Nlc3MgIHB1YmxpYw0KCSAqIEBwYXJhbSAgIGludCAgICAgICRsZW4gICBMZW5ndGggb2YgdGhlIHN0cmluZyB5b3Ugd2FudCBnZW5lcmF0ZWQNCgkgKiBAcmV0dXJuICBzdHJpbmcgICBSYW5kb20gY2hhcmFjdGVycw0KCSAqLw0KDQoJZnVuY3Rpb24gZ2V0KCRsZW4pew0KCQlpZighKGlzX2ludCgkbGVuKSAmJiAkbGVuID4gMCkpIHJldHVybiAkdGhpcy0+X3ZjcnM7DQoJCSRyZXQgPSAiIjsNCgkJJGNudCA9IHN0cmxlbigkdGhpcy0+X3ZjcnMpLTE7DQoJCWZvcigkaT0wOyRpPCRsZW47JGkrKykgJHJldCAuPSAkdGhpcy0+X3ZjcnN7cmFuZCgwLCAkY250KX07DQoJCWlmKCR0aGlzLT5fdm51bSB8fCAkdGhpcy0+X3Zub3QpIHJldHVybiAkdGhpcy0+X3JlYygkcmV0LCAkdGhpcy0+X3ZudW0sICR0aGlzLT5fdm5vdCkgPyAkcmV0IDogUmFuZG9tOjpnZXQoJGxlbik7DQoJCWVsc2UgcmV0dXJuICRyZXQ7DQoJfQ0KDQp9DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/lib/class.RRUtils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgpjbGFzcyBSUlV0aWxzCnsKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGFycmF5X21lcmdlX2J5X25hbWVfcmVxdWlyZWQoICRhcnIxLCAkYXJyMiApCiAgewogICAgICAkeHhyZXN1bHQgPSBhcnJheSgpOwogICAgICAvLyBhZGQgaXRlbXMgY29tbW9uIHRvIGFycjEgYW5kIGFycjIKICAgICAgLy8gYnV0IGZhdm9yIHJlcXVpcmVkIGl0ZW1zCiAgICAgIGlmKCAhaXNfYXJyYXkoICRhcnIxICkgfHwgIWlzX2FycmF5KCAkYXJyMiApICkgIHJldHVybjsKICAgICAgZm9yZWFjaCggJGFycjEgYXMgJGExICkgewogICAgICAgICAgZm9yZWFjaCggJGFycjIgYXMgJGEyICkgewogICAgICAgICAgICAgIGlmKCAkYTFbJ25hbWUnXSA9PSAkYTJbJ25hbWUnXSApIHsKICAgICAgICAgICAgICAgICAgaWYoICRhMVsncmVxdWlyZWQnXSA9PSAyICkgewogICAgICAgICAgICAgICAgICAgICAgJHh4cmVzdWx0W10gPSAkYTE7CiAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICR4eHJlc3VsdFtdID0gJGEyOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIGFkZCBpdGVtcyBpbiBhcnIxIG5vdCBpbiByZXN1bHQKICAgICAgZm9yZWFjaCggJGFycjEgYXMgJGExICkgewogICAgICAgICAgJGZvdW5kID0gZmFsc2U7CiAgICAgICAgICBmb3JlYWNoKCAkeHhyZXN1bHQgYXMgJHJlcyApIHsKICAgICAgICAgICAgICBpZiggJGExWyduYW1lJ10gPT0gJHJlc1snbmFtZSddICkgewogICAgICAgICAgICAgICAgICAkZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiggISRmb3VuZCApICR4eHJlc3VsdFtdID0gJGExOwogICAgICB9CgogICAgICAvLyBhZGQgaXRlbXMgaW4gYXJyMiBub3QgaW4gcmVzdWx0CiAgICAgIGZvcmVhY2goICRhcnIyIGFzICRhMiApIHsKICAgICAgICAgICRmb3VuZCA9IGZhbHNlOwogICAgICAgICAgZm9yZWFjaCggJHh4cmVzdWx0IGFzICRyZXMgKSB7CiAgICAgICAgICAgICAgaWYoICRhMlsnbmFtZSddID09ICRyZXNbJ25hbWUnXSApIHsKICAgICAgICAgICAgICAgICAgJGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYoICEkZm91bmQgKSAkeHhyZXN1bHRbXSA9ICRhMjsKICAgICAgfQogICAgICByZXR1cm4gJHh4cmVzdWx0OwogIH0KCiAgZnVuY3Rpb24gY29tcGFyZV9lbGVtZW50c19ieV9zb3J0b3JkZXJfa2V5KCAkZTEsICRlMiApCiAgewogICAgICBpZiggJGUxWydzb3J0X2tleSddIDwgJGUyWydzb3J0X2tleSddICkgewogICAgICAgICAgcmV0dXJuIC0xOwogICAgICB9CiAgICAgIGVsc2UgaWYoICRlMVsnc29ydF9rZXknXSA+ICRlMlsnc29ydF9rZXknXSApIHsKICAgICAgICAgIHJldHVybiAxOwogICAgICB9CiAgICAgIHJldHVybiAwOwogIH0KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBpbXBsb2RlX3dpdGhfa2V5KCRhc3NvYywgJGluZ2x1ZSA9ICc9JywgJG91dGdsdWUgPSAnJicpCiAgewogICAgICAkcmV0dXJuID0gbnVsbDsKICAgICAgZm9yZWFjaCAoJGFzc29jIGFzICR0ayA9PiAkdHYpICRyZXR1cm4gLj0gJG91dGdsdWUuJHRrLiRpbmdsdWUuJHR2OwogICAgICByZXR1cm4gc3Vic3RyKCRyZXR1cm4sc3RybGVuKCRvdXRnbHVlKSk7CiAgfQoKICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIG15Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICRuYW1lLCAkdmFsdWU9JycsICRzZWxlY3RlZHZhbHVlPScnLCAkYWRkdHRleHQ9JycpCiAgewogICAgICAkdGV4dCA9ICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IicuJGlkLiRuYW1lLiciIHZhbHVlPSInLiR2YWx1ZS4nIic7CiAgICAgICRhcnIgPSBleHBsb2RlKCIsIiwkc2VsZWN0ZWR2YWx1ZSk7CiAgICAgIGZvcmVhY2goICRhcnIgYXMgJGEgKSB7CiAgICAgICAgICBpZiAoJGEgPT0gJHZhbHVlKSAkdGV4dCAuPSAnICcgLiAnY2hlY2tlZD0iY2hlY2tlZCInOwogICAgICB9CiAgICAgIGlmICgkYWRkdHRleHQgIT0gJycpICR0ZXh0IC49ICcgJy4kYWRkdHRleHQ7CiAgICAgICR0ZXh0IC49ICIgLz5cbiI7CiAgICAgIHJldHVybiAkdGV4dDsKICB9Cgp9IC8vIEVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.user.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBGcm9udEVuZFVzZXJzOwoKY2xhc3MgdXNlciBpbXBsZW1lbnRzIFxBcnJheUFjY2Vzcwp7CiAgICBwcml2YXRlICRfZGF0YSA9IFsgJ2lkJyA9PiBudWxsLCAndXNlcm5hbWUnID0+IG51bGwsICdjcmVhdGVkYXRlJyA9PiBudWxsLCAnZXhwaXJlcycgPT4gbnVsbCwgJ25vbnN0ZCcgPT4gRkFMU0UsICdkaXNhYmxlZCcgPT4gRkFMU0UsICdmb3JjZV9uZXdwdycgPT4gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZvcmNlX2Noc2V0dGluZ3MnID0+IEZBTFNFLCAnbXVzdF92YWxpZGF0ZScgPT4gRkFMU0UsICdsb2dnZWRpbicgPT4gbnVsbCBdOwogICAgcHJpdmF0ZSAkX25ld19wYXNzd29yZDsKICAgIHByaXZhdGUgJF9wcm9wczsKICAgIHByaXZhdGUgJF9ncm91cHM7IC8vIGxhenkgbG9hZGVkLgogICAgcHJpdmF0ZSAkX2RpcnR5OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBPZmZzZXRHZXQoJGtleSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9fZ2V0KCRrZXkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBPZmZzZXRTZXQoJGtleSwkdmFsKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X19zZXQoJGtleSwkdmFsKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gT2Zmc2V0VW5zZXQoJGtleSkgeyAvKiBkbyBub3RoaW5nICovIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gT2Zmc2V0RXhpc3RzKCRrZXkpIHsKICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPl9kYXRhWyRrZXldOwoKICAgICAgICBjYXNlICd1c2VybmFtZSc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CgogICAgICAgIGNhc2UgJ2NyZWF0ZWRhdGVfdHMnOgogICAgICAgICAgICBpZiggISR0aGlzLT5fZGF0YVsnY3JlYXRlZGF0ZSddICkgcmV0dXJuIDA7CiAgICAgICAgICAgICRkYiA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXREYigpOwogICAgICAgICAgICByZXR1cm4gJGRiLT5Vbml4VGltZVN0YW1wKCR0aGlzLT5fZGF0YVsnY3JlYXRlZGF0ZSddKTsKCiAgICAgICAgY2FzZSAnY3JlYXRlZGF0ZV9zdHInOiAvLyBkYiBkYXRlCiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVsnY3JlYXRlZGF0ZSddKTsKCiAgICAgICAgY2FzZSAnZXhwaXJlc190cyc6CiAgICAgICAgICAgIGlmKCAhJHRoaXMtPl9kYXRhWydleHBpcmVzJ10gKSByZXR1cm4gMDsKICAgICAgICAgICAgJGRiID0gXENtc0FwcDo6Z2V0X2luc3RhbmNlKCktPkdldERiKCk7CiAgICAgICAgICAgIHJldHVybiAkZGItPlVuaXhUaW1lU3RhbXAoJHRoaXMtPl9kYXRhWydleHBpcmVzJ10pOwoKICAgICAgICBjYXNlICdleHBpcmVzX3N0cic6IC8vIGRiIGRhdGUKICAgICAgICAgICAgcmV0dXJuIHRyaW0oJHRoaXMtPl9kYXRhWydleHBpcmVzJ10pOwoKICAgICAgICBjYXNlICdub25zdGQnOgogICAgICAgIGNhc2UgJ2Rpc2FibGVkJzoKICAgICAgICBjYXNlICdmb3JjZV9uZXdwdyc6CiAgICAgICAgY2FzZSAnZm9yY2VfY2hzZXR0aW5ncyc6CiAgICAgICAgY2FzZSAnbXVzdF92YWxpZGF0ZSc6CiAgICAgICAgY2FzZSAnbG9nZ2VkaW4nOgogICAgICAgICAgICByZXR1cm4gKGJvb2wpICR0aGlzLT5fZGF0YVska2V5XTsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNfZXhwaXJlZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICgkdGhpcy0+ZXhwaXJlc190cyA8IHRpbWUoKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9wZXJ0eSgka2V5KQogICAgewogICAgICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgICAgIGlmKCAhJGtleSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQga2V5IHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X3Byb3BzWyRrZXldKSApIHJldHVybiAkdGhpcy0+X3Byb3BzWyRrZXldOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvcGVydGllcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fcHJvcHM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9ncm91cHMoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9ncm91cHMgKSB7CiAgICAgICAgICAgIGlmKCAhJHRoaXMtPmlkICkgcmV0dXJuOwogICAgICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfRlJPTlRFTkRVU0VSUyk7CiAgICAgICAgICAgICR0bXAgPSAkbW9kLT5HZXRNZW1iZXJHcm91cHNBcnJheSgkdGhpcy0+aWQpOwogICAgICAgICAgICBpZiggJHRtcCAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgJG91dFtdID0gKGludCkgJG9uZVsnZ3JvdXBpZCddOwogICAgICAgICAgICAgICAgJHRoaXMtPl9ncm91cHMgPSAkb3V0OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+X2dyb3VwczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbWVtYmVyb2YoJGdpZCkKICAgIHsKICAgICAgICAkZ2lkID0gKGludCkgJGdpZDsKICAgICAgICBpZiggJGdpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGdpZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkZ3JvdXBzID0gJHRoaXMtPmdldF9ncm91cHMoKTsKICAgICAgICByZXR1cm4gaW5fYXJyYSgkZ2lkLCRncm91cHMpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZCgkdXNlcl9pZCkKICAgIHsKICAgICAgICAkdXNlcl9pZCA9IChpbnQpICR1c2VyX2lkOwogICAgICAgIGlmKCAkdXNlcl9pZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHVzZXJfaWQgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICRyb3cgPSBcZmV1X3VzZXJfY2FjaGU6OmdldF91c2VyKCR1c2VyX2lkLFRSVUUpOwogICAgICAgICRvYmogPSBuZXcgc2VsZigpOwoKICAgICAgICAka2V5cyA9IGFycmF5X2tleXMoJG9iai0+X2RhdGEpOwogICAgICAgIGZvcmVhY2goICRrZXlzIGFzICRrZXkgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgICAgICAgJG9iai0+X2RhdGFbJGtleV0gPSAoaW50KSAkcm93WyRrZXldOwogICAgICAgICAgICBjYXNlICd1c2VybmFtZSc6CiAgICAgICAgICAgIGNhc2UgJ2NyZWF0ZWRhdGUnOgogICAgICAgICAgICBjYXNlICdleHBpcmVzJzoKICAgICAgICAgICAgICAgICRvYmotPl9kYXRhWyRrZXldID0gdHJpbSgkcm93WyRrZXldKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbm9uc3RkJzoKICAgICAgICAgICAgY2FzZSAnZGlzYWJsZWQnOgogICAgICAgICAgICBjYXNlICdmb3JjZV9uZXdwdyc6CiAgICAgICAgICAgIGNhc2UgJ2ZvcmNlX2Noc2V0dGluZ3MnOgogICAgICAgICAgICBjYXNlICdtdXN0X3ZhbGlkYXRlJzoKICAgICAgICAgICAgY2FzZSAnbG9nZ2VkaW4nOgogICAgICAgICAgICAgICAgJG9iai0+X2RhdGFbJGtleV0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcm93WyRrZXldKSApICRvYmotPl9kYXRhWyRrZXldID0gKGJvb2wpICRyb3dbJGtleV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gbm90ZTogZW5jcnlwdGVkIHByb3BlcnRpZXMgYXJlIGFscmVhZHkgZGVjcnlwdGVkIGhlcmUuCiAgICAgICAgaWYoIGlzc2V0KCRyb3dbJ2Zwcm9wcyddKSAmJiBjb3VudCgkcm93WydmcHJvcHMnXSkgKSB7CiAgICAgICAgICAgICRvYmotPl9wcm9wcyA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCAkcm93WydmcHJvcHMnXSBhcyAkcHJvcCApIHsKICAgICAgICAgICAgICAgICRvYmotPl9wcm9wc1skcHJvcFsndGl0bGUnXV0gPSAkcHJvcFsnZGF0YSddOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.UserManipulator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgphYnN0cmFjdCBjbGFzcyBVc2VyTWFuaXB1bGF0b3IKewogICAgcHJpdmF0ZSAkbW9kOwogICAgcHJpdmF0ZSAkX2V4cGlyZV9ub3RpZmllcl9jYWxsYmFjazsKCiAgICAvLwogICAgLy8gSW50ZXJuYWxzCiAgICAvLwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggJiR0aGVfbW9kdWxlICkKICAgIHsKICAgICAgICAkdGhpcy0+bW9kID0mICR0aGVfbW9kdWxlOwogICAgfQoKCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gJkdldERiKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPm1vZC0+R2V0RGIoKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gJkdldE1vZHVsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5tb2Q7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFNldEV4cGlyZU5vdGlmaWVyKCRjYWxsYmFjaykKICAgIHsKICAgICAgICBpZiggaXNfY2FsbGFibGUoJGNhbGxiYWNrKSApICR0aGlzLT5fZXhwaXJlX25vdGlmaWVyX2NhbGxiYWNrID0gJGNhbGxiYWNrOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBOb3RpZnlFeHBpcmVkVXNlcigkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCRwYXJhbXMpICYmIChpc19zdHJpbmcoJHBhcmFtcykgfHwgaXNfaW50KCRwYXJhbXMpKSAmJiAkcGFyYW1zICE9ICcnICkgJHBhcmFtcyA9IGFycmF5KCRwYXJhbXMpOwogICAgICAgIGlmKCAkdGhpcy0+X2V4cGlyZV9ub3RpZmllcl9jYWxsYmFjayApIGNhbGxfdXNlcl9mdW5jX2FycmF5KCR0aGlzLT5fZXhwaXJlX25vdGlmaWVyX2NhbGxiYWNrLCRwYXJhbXMpOwogICAgfQoKICAgIC8vCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAvLwoKICAgIHB1YmxpYyBmdW5jdGlvbiBBZGRHcm91cFByb3BlcnR5UmVsYXRpb24oICRncnBpZCwgJHByb3BuYW1lLCAkc29ydGtleSwgJGxvc3R1biwgJHZhbCApCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiKTsKICAgIH0KCiAgICAvLyEgQWRkIGEgc2luZ2xlIHByb3BlcnR5IGRlZmluaXRpb24KICAgIC8vISBccGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKICAgIC8vISBccGFyYW0gcHJvbXB0IFRoZSBwcm9tcHQgdG8gZGlzcGxheSB0byB0aGUgdXNlcgogICAgLy8hICAgICAgIG5vdGUsIHRoaXMgd2lsbCBiZSBMYW5naWZpZWQKICAgIC8vISBccGFyYW0gdHlwZSAgVGhlIHR5cGUgb2YgdGhlIHByb3BlcnR5CiAgICAvLyEgICAgICAgMCA9IHRleHQsIDEgPSBjaGVja2JveCwgMiA9IGVtYWlsCiAgICAvLyEgXHBhcmFtIHJlcXVpcmVkIHdldGhlciBvciBub3QgdGhlIHByb3BlcnR5IGlzIHJlcXVpcmVkCiAgICAvLyEgXHJldHVybiBBbiBhcnJheSwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgYSBib29sZWFuIHdoaWNoIGluZGljYXRlcyBzdWNjZXNzIG9yIGZhaWx1cmUsIHRoZQogICAgLy8hICAgIHNlY29uZCBlbGVtZW50IChvcHRpb25hbCkgY29udGFpbnMgYW4gZXJyb3IgbWVzc2FnZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBBZGRQcm9wZXJ0eURlZm4oICRuYW1lLCAkcHJvbXB0LCAkdHlwZSwgJGxlbmd0aCApCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCJOb3QgSW1wbGVtZW50ZWQiKTsKICAgIH0KCiAgICAvLyEgQWRkIGEgbmV3IGdyb3VwCiAgICAvLyEKICAgIC8vISBBZGRzIGEgbmV3IGdyb3VwIHdpdGggdGhlIHN1cHBsaWVkIG5hbWUgYW5kIGRlc2NyaXB0aW9uCiAgICAvLyEKICAgIC8vISBccGFyYW0gbmFtZSBUaGUgbmV3IGdyb3VwIG5hbWUKICAgIC8vISBccGFyYW0gZGVzY3JpcHRpb24gdGhlIGdyb3VwIGRlc2NyaXB0aW9uCiAgICAvLyEgXHJldHVybiBhbiBhcnJheSwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgYSBkZXNjcmlwdGlvbiBkZXNjcmliaW5nIHRoZSByZXR1cm4gc3RhdHVzCiAgICAvLyEgICAgKHRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24gZXJyb3IpLiAgVGhlIHNlY29uZCBlbGVtZW50IChvcHRpb25hbCkgaXMgYW4gZXJyb3Igc3RyaW5nIGluIHRoZQogICAgLy8hICAgIGV2ZW50IG9mIGFuIGVycm9yLgogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gQWRkR3JvdXAoICRuYW1lLCAkZGVzY3JpcHRpb24gKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiRnVuY3Rpb24gbm90IGRlZmluZWQiKTsKICAgIH0KCiAgICAvLyEgQWRkIGEgbmV3IHVzZXIKICAgIC8vIQogICAgLy8hIEFkZCB0aGUgc3BlY2lmaWVkIHVzZXIgdG8gdGhlIGRhdGFiYXNlCiAgICAvLyEKICAgIC8vISBccGFyYW0gbmFtZSBUaGUgZGVzaXJlZCB1c2VybmFtZQogICAgLy8hIFxwYXJhbSBwYXNzd29yZCBUaGUgZGVzaXJlZCBwYXNzd29yZCAodW5lbmNyeXB0ZWQpCiAgICAvLyEgXHBhcmFtIGV4cGlyZXMgVGhlIGV4cGlyeSBkYXRlCiAgICAvLyEgXHJldHVybiBhbiBhcnJheSwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgYSBkZXNjcmlwdGlvbiBkZXNjcmliaW5nIHRoZSByZXR1cm4gc3RhdHVzCiAgICAvLyEgICAgKHRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24gZXJyb3IpLiAgVGhlIHNlY29uZCBlbGVtZW50IChvcHRpb25hbCkgaXMgYW4gZXJyb3Igc3RyaW5nIGluIHRoZQogICAgLy8hICAgIGV2ZW50IG9mIGFuIGVycm9yLCBvciB0aGUgdXNlcmlkIG90aGVyd2lzZQogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gQWRkVXNlciggJG5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMgKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiRnVuY3Rpb24gbm90IGRlZmluZWQiKTsKICAgIH0KCiAgICAvLyEgQ2hlY2sgaWYgdGhlIHNwZWNpZmllZCB1c2VyIGhhcyB0aGUgc3BlY2lmaWVkIHBlcm1pc3Npb24KICAgIC8vISBBc3NpZ24gdGhlIHVzZXIgc3BlY2lmaWVkIChieSBpZCkgdG8gdGhlIGdyb3VwIHNwZWNpZmllZCAoYnkgaWQpCiAgICAvLyEKICAgIC8vIVxwYXJhbSAgdWlkICBUaGUgdXNlcmlkIGZvciB0aGUgbmV3IGFzc29jaWF0aW9uCiAgICAvLyFccGFyYW0gIGdpZCAgVGhlIGdyb3VwIGlkIGZvciB0aGUgbmV3IGFzc29jaWF0aW9uCiAgICAvLyFccmV0dXJuIHRydWUgb24gc3VjY2VzcywgZmFsc2Ugb3RoZXJ3aXNlCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBBc3NpZ25Vc2VyVG9Hcm91cCggJHVpZCwgJGdpZCApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBDaGVjayBpZiB0aGUgZ3JvdXAgc3BlY2lmaWVkIGhhcyB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbgogICAgcHVibGljIGZ1bmN0aW9uIENoZWNrR3JvdXBQZXJtaXNzaW9uKCAkZ2lkLCAkcGVybSApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBDaGVjayBpZiB0aGUgdXNlciBoYXMgdGhlIHNwZWNpZmllZCBwZXJtaXNzaW9uCiAgICBwdWJsaWMgZnVuY3Rpb24gQ2hlY2tVc2VyUGVybWlzc2lvbiggJHBlcm0gKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gQ2hlY2tVc2VyUGVybWlzc2lvbkJ5VWlkKCAkdWlkLCAkcGVybSApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBDb3VudFRlbXBDb2RlUmVjb3JkcygpCiAgICB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBEZWxldGVBbGxHcm91cFByb3BlcnR5UmVsYXRpb25zKCAkZ3JwaWQgKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiRnVuY3Rpb24gbm90IGltcGxlbWVudGVkIik7CiAgICB9CgogICAgLy8hIERlbGV0ZSBhbGwgb2YgdGhlIGN1cnJlbnQgdXNlcnMgcHJvcGVydGllcwogICAgLy8hCiAgICAvLyEgXHJldHVybiB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIG90aGVyd2lzZQogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gRGVsZXRlQWxsVXNlclByb3BlcnRpZXMoKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyEgRGVsZXRlIEFsbCBwcm9wZXJ0aWVzIGZvciBhIHNwZWNpZmllZCB1c2VyIGlkCiAgICAvLyEKICAgIC8vISBccGFyYW0gdXNlcmlkCiAgICAvLyEgXHJldHVybiB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIG90aGVyd2lzZQogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gRGVsZXRlQWxsVXNlclByb3BlcnRpZXNGdWxsKCR1c2VyaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBEZWxldGUgdGhlIHNwZWNpZmllZCBncm91cAogICAgLy8hCiAgICAvLyEgRGVsZXRlIHRoZSBncm91cCByZWNvcmQgZm9yIHRoZSBtYXRjaGluZCBpZAogICAgLy8hCiAgICAvLyEgXHJldHVybiBhbiBhcnJheSwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgYSBkZXNjcmlwdGlvbiBkZXNjcmliaW5nIHRoZSByZXR1cm4gc3RhdHVzCiAgICAvLyEgICAgKHRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24gZXJyb3IpLiAgVGhlIHNlY29uZCBlbGVtZW50IChvcHRpb25hbCkgaXMgYW4gZXJyb3Igc3RyaW5nIGluIHRoZQogICAgLy8hICAgIGV2ZW50IG9mIGFuIGVycm9yLgogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gRGVsZXRlR3JvdXBGdWxsKCAkaWQgKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiRnVuY3Rpb24gbm90IGRlZmluZWQiKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gRGVsZXRlR3JvdXBQcm9wZXJ0eVJlbGF0aW9uKCAkZ3JwaWQsICRwcm9wbmFtZSApCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gRGVsZXRlUHJvcGVydHlEZWZuKCAkbmFtZSApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBEZWxldGUgYWxsIHByb3BlcnR5IGRlZmluaXRpb25zICh1c2Ugd2l0aCBjYXV0aW9uKQogICAgcHVibGljIGZ1bmN0aW9uIERlbGV0ZVByb3BlcnR5RGVmbnMoKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiTm90IEltcGxlbWVudGVkIik7CiAgICB9CgogICAgLy8hIERlbGV0ZSB0aGUgdXNlciB3aXRoIHRoZSBzcGVjaWZpZWQgaWQKICAgIC8vISBcbm90ZSBUaGlzIGlzIGEgZGVwcmVjYXRlZCBmdW5jdGlvbiBhcyBpdCByZWxpZXMgb24gdGhlIHVzZXJpZCBiZWluZyBzZXQgaW4gdGhlIF9HRVQKICAgIC8vISB2YXJpYWJsZS4KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIERlbGV0ZVVzZXIoJGlkKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyEgQ29tcGxldGVseSBkZWxldGUgYWxsIHJlZmVyZW5jZXMgdG8gdGhlIHN1cHBsaWVkIHVzZXIgaWQKICAgIC8vIQogICAgLy8hVGhpcyBtZXRob2QgY29tcGxldGVseSBkZWxldGVzIGFueXRoaW5nIGZyb20gdGhlIGRhdGFiYXNlIHJlbGF0ZWQgdG8gdGhlIHNwZWNpZmllZCB1c2VyIGlkLgogICAgLy8hc3BlY2lmaWNhbGx5LCBncm91cCBhc3NvY2lhdGlvbnMsIHByb3BlcnRpZXMsIGFuZCB0aGUgdXNlciByZWNvcmQgaXRzZWxmLgogICAgLy8hCiAgICAvLyFccGFyYW0gdWlkIHRoZSB1c2VyaWQgdG8gZGVsZXRlIGFsbCByZWZlcmVuY2VzIHRvCiAgICAvLyFccmV0dXJuIGFycmF5LCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgYSBib29sZWFuIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLgogICAgLy8hICAgaWYgdGhlIGZpcnN0IGVsZW1lbnQgaXMgZmFsc2UsIHRoZW4gdGhlIHNlY29uZCBlbGVtZW50IHdpbGwgY29udGFpbiBhbiBlcnJvciBtZXNzYWdlLgogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gRGVsZXRlVXNlckZ1bGwoICR1aWQgKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiTm8gZnVuY3Rpb24gZGVmaW5lZCIpOwogICAgfQoKCiAgICAvLyEgRGVsZXRlIGEgcHJvcGVydHkgZm9yIHRoZSBjdXJyZW50IHVzZXIKICAgIC8vIQogICAgLy8hIFJlbW92ZSBhIHByb3BlcnR5IGZyb20gdGhlIGRhdGFiYXNlIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyCiAgICAvLyEKICAgIC8vISBccGFyYW0gdGl0bGUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGRlbGV0ZQogICAgLy8hIFxwYXJhbSBhbGwgICBPcHRpb25hbGx5IGRlbGV0ZSBhbGwgcHJvcGVydGllcyBmb3IgdGhpcyB1c2VyCiAgICAvLyEgXHJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvdGh3ZXJpc2VuCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBEZWxldGVVc2VyUHJvcGVydHkoJHRpdGxlLCRhbGw9ZmFsc2UpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBEZWxldGUgYSBwcm9wZXJ0eSBmb3IgYSBzcGVjaWZpZWQgdXNlcgogICAgLy8hCiAgICAvLyFccGFyYW0gdGl0bGUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGRlbGV0ZQogICAgLy8hXHBhcmFtIHVzZXJpZCBUaGUgaWQgdG8gZGVsZXRlIHRoZSBwcm9wZXJ0eSBmb3IKICAgIC8vIVxwYXJhbSBhbGwgKG9wdGlvbmFsKSBEZWxldGUgYWxsIHByb3BlcnRpZXMgZm9yIHRoZSBzcGVjaWZpZWQgdXNlcmlkLgogICAgLy8hXHJldHVybiB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIG90aGVyd2lzZS4KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIERlbGV0ZVVzZXJQcm9wZXJ0eUZ1bGwoJHRpdGxlLCR1c2VyaWQsJGFsbD1mYWxzZSkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyogZXhwaXJ5Y29kZSBpcyBhIHN0cnRvdGltZSBzdHJpbmcgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBFeHBpcmVUZW1wQ29kZXMoJGV4cGlyeWNvZGUpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBFeHBpcmUgYW55IGFuZCBhbGwgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYXdheSBmb3IgdG9vIGxvbmcKICAgIHB1YmxpYyBmdW5jdGlvbiBFeHBpcmVVc2VycygpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBHZXQgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGlkCiAgICAvLyEKICAgIC8vIVxyZXR1cm4gRW1haWwgYWRkcmVzcywgb3IgZmFsc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdldEVtYWlsKCR1c2VyaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBHZW5lcmF0ZSBhIHJhbmRvbSAoYnV0IG5vdCB1c2VkKSB1c2VybmFtZQogICAgLy8hCiAgICAvLyFcIHJldHVybiB1c2VybmFtZSwgb3IgZmFsc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdlbmVyYXRlUmFuZG9tVXNlcm5hbWUoICRwcmVmaXggPSAndXNlcicgKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyEgR2V0IHRoZSBncm91cGlkIGdpdmVuIGEgZ3JvdXAgbmFtZQogICAgLy8hCiAgICAvLyEgXHJldHVybiBncm91cGlkIG9yIGZhbHNlCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRHcm91cElEKCRncm91cG5hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBHZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdyb3VwCiAgICAvLyEKICAgIC8vISBUaGlzIG1ldGhvZCByZXR1cm5zIGFuIGFzc29jaWF0aW9uIHdpdGggdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkCiAgICAvLyEgZ3JvdXAgaWQKICAgIC8vISAgICBpZCA9PiBUaGUgcmVxdWVzdGVkIGdyb3VwIGlkCiAgICAvLyEgICAgZ3JvdXBuYW1lID0+IFRoZSBuYW1lIG9mIHRoZSBncm91cAogICAgLy8hICAgIGdyb3VwZGVzYyA9PiBUaGUgZ3JvdXAgZGVzY3JpcHRpb24KICAgIC8vIQogICAgLy8hIFxwYXJhbSBnaWQgVGhlIGdyb3VwIGlkCiAgICAvLyEgXHBhcmFtIGFzc29jaWF0aXZlIGFycmF5LCBvciBhcnJheSB3aXRoIGZpcnN0IGVsZW1lbnQgb2YgZmFsc2UsIHNlY29uZCBlbGVtZW50IGNvbnRhaW5zIGVycm9yIG1lc3NhZ2UKICAgIC8vISBccmV0dXJuIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggZ3JvdXAgaW5mbywgb3IgZmFsc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdldEdyb3VwSW5mbyggJGdpZCApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBHZXQgYSBsaXN0IG9mIGFsbCBvZiB0aGUgZ3JvdXBzLCBhbmQgdGhlaXIgaWQncwogICAgLy8hCiAgICAvLyEgXHJldHVybiBhbiBhc3NvY2lhdGl2ZSBhcnJheSBjb250YWluaW5nIGdyb3VwIG5hbWVzIGFzIGtleXMsIGFuZCBpZCdzIGFzIHZhbHVlcwogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0R3JvdXBMaXN0KCkKICAgIHsKICAgICAgICByZXR1cm4gYXJyYXkoKTsKICAgIH0KCiAgICAvLyEgR2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21wbGV0ZSBsaXN0IG9mIGdyb3VwcwogICAgLy8hCiAgICAvLyEgVGhpcyBtZXRob2QgcmV0dXJucyBhbiBhcnJheSBvZiBncm91cGluZm8gYXNzb2NpYXRpb25zLCByZXByZXNlbnRpbmcgYWxsIG9mIHRoZQogICAgLy8hIGdyb3VwcyBpbiB0aGUgdGFibGUuCiAgICAvLyEKICAgIC8vISBccmV0dXJucyBhbiBhcnJheSBvZiBncm91cGluZm8gYXNzb2NpYXRpb25zCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRHcm91cExpc3RGdWxsKCkKICAgIHsKICAgICAgICByZXR1cm4gYXJyYXkoKTsKICAgIH0KCiAgICAvLyEgR2V0IHRoZSBncm91cCBuYW1lIGdpdmVuIGEgZ3JvdXAgaWQKICAgIC8vIQogICAgLy8hIFxyZXR1cm4gZ3JvdXAgbmFtZSwgb3IgZmFsc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdldEdyb3VwTmFtZSgkZ3JvdXBpZCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8hIEdldCB0aGUgZ3JvdXAgZGVzY3JpcHRpb24gZ2l2ZW4gYSBncm91cCBpZAogICAgLy8hCiAgICAvLyEgXHJldHVybiBncm91cCBkZXNjcmlwdGlvbiwgb3IgZmFsc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdldEdyb3VwRGVzYygkZ3JvdXBpZCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldEdyb3VwUHJvcGVydHlSZWxhdGlvbnMoICRncnBpZCApCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiKTsKICAgIH0KCiAgICAvLyEgR2V0IGEgbGlzdCBvZiB0aGUgZ3JvdXBzIHRoYXQgdGhlIHNwZWNpZmllZCB1c2VyIGJlbG9uZ3MgdG8KICAgIC8vIQogICAgLy8hIFJldHVybiBhIHN0cmluZyBvZiBjb21tYSBkZWxpbWl0ZWQgZ3JvdXAgbmFtZXMsIGNvcnJlc3BvbmRpbmcgdG8gdGhlCiAgICAvLyEgZ3JvdXBzIHRoYXQgdGhlIHVzZXIgaXMgYSBtZW1iZXIgb2YKICAgIC8vIQogICAgLy8hIFxyZXR1cm4gYSBjb21tYSBkZWxpbWl0ZWQgbGlzdCBvZiBncm91cCBuYW1lcywgb3IgIm5vbmUiCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRNZW1iZXJHcm91cHMoJHVzZXJpZCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8hIFJldHVybiBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIGdyb3VwcyB0aGF0IHRoaXMgdXNlciBiZWxvbmdzIHRvCiAgICAvLyEKICAgIC8vISBSZXR1cm5zIGFuIGFycmF5IG9mIGdyb3VwaW5mbyByZWNvcmRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdyb3VwcyB0aGF0CiAgICAvLyEgdGhpcyB1c2VyIGlzIGFzc29jaWF0ZWQgd2l0aC4KICAgIC8vIQogICAgLy8hIFxwYXJhbSB1c2VyaWQgVGhlIHVzZXJpZCB0byB0ZXN0CiAgICAvLyEgXHJldHVybiBmYWxzZSBvbiBlcnJvciwgb3RoZXJ3aXNlLCBhbiBhcnJheSBvZiBncm91cGluZm8gcmVjb3Jkcy4KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdldE1lbWJlckdyb3Vwc0FycmF5KCR1c2VyaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBHZXQgYSBzaW5nbGUgcHJvcGVydHkgZGVmaW5pdGlvbiBieSBuYW1lCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0UHJvcGVydHlEZWZuKCAkbmFtZSApCiAgICB7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIC8vISBHZXQgYW4gYXJyYXkgb2YgcHJvcGVydHkgZGVmaW5pdGlvbnMKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRQcm9wZXJ0eURlZm5zKCkKICAgIHsKICAgICAgICByZXR1cm4gYXJyYXkoRkFMU0UsIk5vdCBJbXBsZW1lbnRlZCIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRQcm9wZXJ0eUdyb3VwUmVsYXRpb25zKCAkdGl0bGUgKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiRnVuY3Rpb24gbm90IGltcGxlbWVudGVkIik7CiAgICB9CgogICAgLy8hIEdldCB0aGUgdXNlcmlkIG9mIHRoZSB1c2VyIHdpdGggdGhlIG1hdGNoaW5nIG5hbWUKICAgIC8vIQogICAgLy8hIFxyZXR1cm4gVXNlcklELCBvciBmYWxzZQogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VXNlcklEKCR1c2VybmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8hIEdldCBpbmZvcm1hdGlvbiBhYm91dCBhIHVzZXIKICAgIC8vIQogICAgLy8hIFRoaXMgbWV0aG9kIHJldHVybnMgYW4gYXNzb2NpYXRpb24gd2l0aCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQKICAgIC8vISB1c2VyIGlkCiAgICAvLyEgICBpZCA9IHRoZSByZXF1ZXN0ZWQgdXNlciBpZAogICAgLy8hICAgdXNlcm5hbWUgPSB0aGUgdXNlcnMgbmFtZQogICAgLy8hICAgcGFzc3dvcmQgPSB0aGUgKGVuY3J5cHRlZCkgdXNlciBwYXNzd29yZAogICAgLy8hICAgZW1haWwgICAgPSB0aGUgdXNlcnMgZW1haWwgYWRkcmVzcwogICAgLy8hICAgZXhwaXJlcyAgPSB0aGUgdXNlcnMgZXhwaXJ5IGRhdGUKICAgIC8vISAgIHN0YXR1cyAgID0gdGhlIHVzZXJzIHN0YXR1cwogICAgLy8hCiAgICAvLyEgXHBhcmFtIHVpZCBUaGUgdXNlcmlkIHRvIGlucXVpcmUgYWJvdXQKICAgIC8vISBccmV0dXJuIGFuIGFycmF5LCB0aGUgZmlyc3QgZWxlbWVudCBjb250YWlucyByZXR1cm4gc3RhdHVzICh0cnVlL2ZhbHNlKSwgdGhlIHNlY29uZCBlbGVtZW50CiAgICAvLyEgICAgaXMgZWl0aGVyIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRldGFpbHMgYWJvdmUsIG9yIGFuIGVycm9yIG1lc3NhZ2UuCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRVc2VySW5mbyggJHVpZCApCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCJGdW5jdGlvbiBub3QgZGVmaW5lZCIpOwogICAgfQoKICAgIC8vISBSZXR1cm4gdGhlIHVzZXJuYW1lIHRoYXQgbWFjaGVzIHRoZSBzcGVjaWZpZWQgdXNlciBpZAogICAgLy8hCiAgICAvLyFccmV0dXJuIFRoZSBtYXRjaGluZyB1c2VybmFtZSwgb3IgZmFsc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdldFVzZXJOYW1lKCR1c2VyaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBHZXQgYSBzaW5nbGUgcHJvcGVydHkgZm9yIHRoZSBjdXJyZW50IHVzZXIKICAgIC8vIQogICAgLy8hIEdldCBhIHNpbmdsZSBwcm9wZXJ0eSBmb3IgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlci4KICAgIC8vIQogICAgLy8hIFxwYXJhbSB0aXRsZSBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHRvIHJldHVybgogICAgLy8hIFxwYXJhbSBkZWZhdWx0dmFsdWUgQSB2YWx1ZSB0byByZXR1cm4gaWYgdGhlIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0IGZvciB0aGF0IHVzZXIKICAgIC8vISBccmV0dXJuIFRoZSBwcm9wZXJ0eSB2YWx1ZSwgb3IgZmFsc2UuCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHkoJHRpdGxlLCRkZWZhdWx0dmFsdWU9ZmFsc2UpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBHZXQgcHJvcGVydHkgaW5mb3JtYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdXNlciBpZAogICAgLy8hCiAgICAvLyEgXHBhcmFtIHRpdGxlIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3ZSBhcmUgc2VhcmNoaW5nIGZvcgogICAgLy8hIFxwYXJhbSB1c2VyaWQgVGhlIHVzZXJpZCBmb3Igd2hvJ3MgcHJvcGVydHkgd2UgYXJlIHNlYXJjaGluZwogICAgLy8hIFxwYXJhbSBkZWZhdWx0dmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBpZiB0aGlzIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0IGZvciB0aGlzIHVzZXIKICAgIC8vISBccmV0dXJuIFRoZSBwcm9wZXJ0eSB2YWx1ZSwgb3IgZmFsc2UuCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRVc2VyUHJvcGVydHlGdWxsKCR0aXRsZSwkdXNlcmlkLCAkZGVmYXVsdHZhbHVlPWZhbHNlKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyEgR2V0IGEgbGlzdCBvZiBhbGwgb2YgdGhlIHVzZXJzIHRoYXQgYmVsb25nIHRvIHRoZSBzcGVjaWZpZWQgZ3JvdXAKICAgIC8vISBpbmNsdWRpbmcgYWxsIG9mIHRoZWlyIHByb3BlcnRpZXMKICAgIC8vIQogICAgLy8hIFRoaXMgbWV0aG9kIHJldHVybnMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgKHdpdGggdXNlcmlkIGFzIHRoZSBrZXkpCiAgICAvLyEKICAgIC8vISBccGFyYW0gZ3JvdXBpZCB0aGUgZGVzaXJlZCBncm91cCBpZAogICAgLy8hIFxyZXR1cm4gYW4gYXJyYXkgb2YgdXNlciBpbmZvcm1hdGlvbiAoc2VlIEdldFVzZXJJbmZvKSwgb3IgZmFsc2UKICAgIC8vISBcc2EgR2V0VXNlckluZm8KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdldEZ1bGxVc2Vyc0luR3JvdXAoJGdyb3VwaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBHZXQgYSBsaXN0IG9mIHRoZSB1c2VycyB0aGF0IGJlbG9uZyB0byB0aGUgc3BlY2lmaWVkIGdyb3VwCiAgICAvLyEKICAgIC8vISBUaGlzIG1ldGhvZCByZXR1cm5zIGFuIGFzc29jaWF0aXZlIGFycmF5IGNvbnRhaW5pbmcgYSBjb21wbGV0ZSBzZXQgb2YgdGhlCiAgICAvLyEgaW5mb3JtYXRpb24gYWJvdXQgYWxsIG9mIHRoZSB1c2VycyB0aGF0IGJlbG9uZyB0byB0aGUgc3BlY2lmaWVkIGdyb3VwCiAgICAvLyEKICAgIC8vISBccGFyYW0gZ3JvdXBpZCB0aGUgZGVzaXJlZCBncm91cCBpZAogICAgLy8hIFxyZXR1cm4gYW4gYXJyYXkgb2YgdXNlciBpbmZvcm1hdGlvbiAoc2VlIEdldFVzZXJJbmZvKSwgb3IgZmFsc2UKICAgIC8vISBcc2EgR2V0VXNlckluZm8KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdldFVzZXJzSW5Hcm91cCggJGdyb3VwaWQgPSAnJyApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBSZXR1cm4gYW4gYXJyYXkgb2YgdGhlIHVzZXIncyBwcm9wZXJ0aWVzCiAgICAvLyEKICAgIC8vISBSZXR1cm5zIGEgY29tcGxldGUgbGlzdCBvZiB0aGUgdXNlcnMgcHJvcGVydGllcwogICAgLy8hCiAgICAvLyEgXHBhcmFtIHVpZCBUaGUgdWlkIHRvIHRlc3QKICAgIC8vISBccmV0dXJuIGZhbHNlIG9uIGVycm9yLCBvdGhlcndpc2UgYW4gYXJyYXkgb2YgYXNzb2NpYXRpb25zLCBlYWNoIGFzc29jaWF0aW9uCiAgICAvLyEgICBoYXMgdGhlIGZvbGxvd2luZyBrZXlzOgogICAgLy8hICAgICAgaWQgICAgID0gVGhlIHByb3BlcnR5IGlkCiAgICAvLyEgICAgICB1c2VyaWQgPSBUaGUgbWF0Y2hpbmcgdXNlciBpZAogICAgLy8hICAgICAgdGl0bGUgID0gVGhlIHByb3BlcnR5IHRpdGxlCiAgICAvLyEgICAgICBkYXRhICAgPSBUaGUgcHJvcGVydHkgZGF0YQogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VXNlclByb3BlcnRpZXMoJHVpZCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldFVzZXJUZW1wQ29kZSggJHVpZCApCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiKTsKICAgIH0KCiAgICAvLyEgQSBmdW5jdGlvbiB0aGF0IHRlc3RzIHdldGhlciBhIGdyb3VwIHdpdGggdGhlIHNwZWZpZmllZCBpZCBleGlzdHMKICAgIC8vIQogICAgLy8hIFxwYXJhbSBnaWQgVGhlIGRlc2lyZWQgZ3JvdXAgaWQKICAgIC8vISBccmV0dXJuIGJvb2xlYW4KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdyb3VwRXhpc3RzQnlJRCggJGdpZCApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBBIHB1YmxpYyBmdW5jdGlvbiB0aGF0IHRlc3RzIHdldGhlciBhIGdyb3VwIHdpdGggdGhlIG5hbWUgZXhpc3RzCiAgICAvLyEKICAgIC8vISBccGFyYW0gZ2lkIFRoZSBkZXNpcmVkIGdyb3VwIG5hbWUKICAgIC8vISBccmV0dXJuIGJvb2xlYW4KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIEdyb3VwRXhpc3RzQnlOYW1lKCAkbmFtZSApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRFeHBpcnlEYXRlKCAkdWlkICkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIElzQWNjb3VudEV4cGlyZWQoICR1aWQgKQogICAgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8vISBUZXN0IHdldGhlciB0aGUgc3BlY2lmaWVkIGVtYWlsIGFkZHJlc3MgcGFzc2VzIHRoZSBydWxlcy4KICAgIC8vIQogICAgLy8hIFRoaXMgbWV0aG9kIHdpbGwgdGVzdCBpZiB0aGUgZW1haWwgYWRkcmVzcyBzdXBwbGllZCBtYXRjaGVzIHRoZQogICAgLy8hIHNldCBydWxlcy4gIE9wdGlvbmFsbHksIHRoZSBlbWFpbCBhZGRyZXNzIGNhbiBiZSB2YWxpZGF0ZWQgdmlhCiAgICAvLyEgc210cC4KICAgIC8vIQogICAgLy8hIFxwYXJhbSAgZW1haWwgVGhlIGFkZHJlc3MgdG8gdGVzdAogICAgLy8hIFxyZXR1cm4gYW4gYXJyYXksIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSBpbmRpY3VhdGVzIHN1Y2Nlc3Mgb3IgZmFpbHVyZQogICAgLy8hICAgIHRoZSBzZWNvbmQgZWxlbWVudCBpcyB0aGUgZXJyb3IgbWVzc2FnZSwgaWYgYW4gZXJyb3Igb2NjdXJyZWQKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIElzVmFsaWRFbWFpbEFkZHJlc3MoICRlbWFpbCApCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCJGdW5jdGlvbiBub3QgZGVmaW5lZCIpOwogICAgfQoKICAgIC8vISBDaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIHN1cHBsaWVkIHBhc3N3b3JkCiAgICAvLyEKICAgIC8vIVxwYXJhbSAgcGFzc3dvcmQgVGhlIHBhc3N3b3JkIHRvIHRlc3QuCiAgICAvLyFccmV0dXJuIHRydWUgaWYgdGhlIHBhc3N3b3JkIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIElzVmFsaWRQYXNzd29yZCggJHBhc3N3b3JkICkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8hIENoZWNrIHdldGhlciB0aGUgdXNlcm5hbWUgc3VwcGxpZWQgcGFzc2VzIHRoZSBydWxlcwogICAgLy8hCiAgICAvLyFccGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIHRvIGJlIHRlc3RlZAogICAgLy8hXHJldHVybiBib29sZWFuIHRydWUvZmFsc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIElzVmFsaWRVc2VybmFtZSggJHVzZXJuYW1lICkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8hIFRlc3RzIHdldGhlciB0aGUgY3VycmVudCB1c2VyIGlzIGxvZ2dlZCBpbiBvciBub3QuCiAgICBwdWJsaWMgZnVuY3Rpb24gTG9nZ2VkSW4oKQogICAgewogICAgICAgIGlmICgkdGhpcy0+TG9nZ2VkSW5JZCgpPT1mYWxzZSkgcmV0dXJuIGZhbHNlOyBlbHNlIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8vISBSZXR1cm4gdGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgdXNlcgogICAgLy8hCiAgICAvLyEgXHJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIKICAgIC8vISAgIGlmIG5vb25lIGlzIGxvZ2dlZCBpbiwgdGhlbiBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIExvZ2dlZEluRW1haWwoKQogICAgewogICAgICAgIHJldHVybiAiIjsKICAgIH0KCiAgICAvLyEgUmV0dXJuIHRoZSB1c2VyaWQgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlcgogICAgcHVibGljIGZ1bmN0aW9uIExvZ2dlZEluSWQoKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyEgUmV0dXJuIHRoZSB1c2VybmFtZSBvZiB0aGUgY3VycmVudCB1c2VyCiAgICAvLyEKICAgIC8vISBccmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHVzZXJuYW1lIG9mIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIKICAgIC8vISAgIGlmIG5vb25lIGlzIGxvZ2dlZCBpbiwgdGhlbiBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIExvZ2dlZEluTmFtZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBMb2dpbiggJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRncm91cHMgPSAnJywgJG1kNXB3ID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3JjZV9sb2dvdXQgPSBmYWxzZSkKICAgIHsKICAgICAgICByZXR1cm4gYXJyYXkoRkFMU0UsIkZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZCIpOwogICAgfQoKCiAgICAvLyEgTG9nb3V0IHRoZSBjdXJyZW50IHVzZXIKICAgIHB1YmxpYyBmdW5jdGlvbiBMb2dvdXQoKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyEgVGVzdCB3ZXRoZXIgYW4gYXNzb2NpYXRpb24gZXhpc3RzIGJldHdlZW4gdGhlIHNwZWNpZmllZCB1c2VyIGFuZCBncm91cAogICAgLy8hCiAgICAvLyEgXHBhcmFtIHVzZXJpZCBUaGUgdXNlcmlkIHRvIHRlc3QKICAgIC8vISBccGFyYW0gZ3JvdXBpZCBUaGUgZ3JvdXBpZCB0byB0ZXN0CiAgICAvLyEgXHJldHVybiB0cnVlIGlmIGFuIGFzc29jaWF0aW9uIGV4aXN0cywgZmFsc2Ugb3RoZXJ3aXNlCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBNZW1iZXJPZkdyb3VwKCR1c2VyaWQsJGdyb3VwaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBSZW1vdmUgdGhlIHNwZWNpZmllZCB1c2VyIGZyb20gdGhlIHNwZWNpZmllZCBncm91cAogICAgLy8hCiAgICAvLyFUaGlzIG1ldGhvZCByZXZva2VzIHRoZSBtZW1iZXJzaGlwIG9mIHVzZXIgJHVpZCBmcm9tIGdyb3VwICRnaWQKICAgIC8vIQogICAgLy8hXHBhcmFtIHVpZAogICAgLy8hXHBhcmFtIGdpZAogICAgLy8hXHJldHVybiBhcnJheSwgdGhlIGZpcnN0IGVsZW1lbnQgY29udGFpbnMgZXhpdCBzdGF0dXMgKGJvb2xlYW4pLCB0aGUgc2Vjb25kIGVsZW1lbnQKICAgIC8vISAgIChvcHRpb25hbCkgcmV0dXJucyBhbiBlcnJvciBtZXNzYWdlLCBpZiBhbiBlcnJvciBvY2N1cnJlZC4KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIFJlbW92ZVVzZXJGcm9tR3JvdXAoICR1aWQsICRnaWQgKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiRnVuY3Rpb24gbm90IGRlZmluZWQiKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gUmVtb3ZlVXNlclRlbXBDb2RlKCAkdWlkICkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8hIEEgbWV0aG9kIHRvIG1vZGlmeSBhbiBleGlzdGluZyBncm91cAogICAgLy8hCiAgICAvLyFccGFyYW0gZ2lkIEFuIGV4aXN0aW5nIGdyb3VwIGlkCiAgICAvLyFccGFyYW0gbmFtZSBUaGUgbmV3IGdyb3VwIG5hbWUKICAgIC8vIVxwYXJhbSBkZXNjIFRoZSBuZXcgZ3JvdXAgZGVzY3JpcHRpb24KICAgIC8vIVxyZXR1cm4gQW4gYXJyYXksIHRoZSBmaXJzdCBlbGVtZW50IGlzIGEgYm9vbGVhbiB3aGljaCBpbmRpY2F0ZXMgc3VjY2VzcyBvciBmYWlsdXJlLCB0aGUKICAgIC8vISAgc2Vjb25kIGVsZW1lbnQgKG9wdGlvbmFsKSBjb250YWlucyBhbiBlcnJvciBtZXNzYWdlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci4KICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIFNldEdyb3VwKCAkZ2lkLCAkbmFtZSwgJGRlc2MgKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiRnVuY3Rpb24gbm90IGRlZmluZWQiKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0UHJvcGVydHlEZWZuKCAkbmFtZSwgJG5ld25hbWUsICRwcm9tcHQsICRsZW5ndGgsICR0eXBlICkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8hIE1vZGlmeSBhbiBleGlzdGluZyBncm91cAogICAgLy8hCiAgICAvLyEgXHBhcmFtIHVpZCBUaGUgaWQgb2YgdGhlIGV4aXN0aW5nIHVzZXIKICAgIC8vISBccGFyYW0gdXNlcm5hbWUgVGhlIG5ldyB1c2VyIG5hbWUKICAgIC8vISBccGFyYW0gZW1haWwgVGhlIG5ldyBlbWFpbCBhZGRyZXNzCiAgICAvLyEgXHBhcmFtIHBhc3N3b3JkIFRoZSBuZXcgKHVuZW5jcnlwdGVkKSBwYXNzd29yZAogICAgLy8hIFxwYXJhbSBleHBpcmVzIFRoZSBuZXcgZXhwaXJ5IGRhdGUKICAgIC8vISBccGFyYW0gc3RhdHVzIHRoZSBuZXcgc3RhdHVzCiAgICAvLyEgXHJldHVybiBBbiBhcnJheSwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgYSBib29sZWFuIHdoaWNoIGluZGljYXRlcyBzdWNjZXNzIG9yIGZhaWx1cmUsIHRoZQogICAgLy8hICAgIHNlY29uZCBlbGVtZW50IChvcHRpb25hbCkgY29udGFpbnMgYW4gZXJyb3IgbWVzc2FnZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRVc2VyKCAkdWlkLCAkdXNlcm5hbWUsICRwYXNzd29yZCwgJGV4cGlyZXMgPSBmYWxzZSApCiAgICB7CiAgICAgICAgcmV0dXJuIGFycmF5KEZBTFNFLCJGdW5jdGlvbiBub3QgZGVmaW5lZCIpOwogICAgfQoKICAgIC8vISBTZXQgdGhlIHVzZXIncyBncm91cCBtZW1iZXJzaGlwcyBhYnNvbHV0ZWx5CiAgICAvLyEKICAgIC8vIVRoaXMgbWV0aG9kIHJlbW92ZXMgYWxsIHByZXZpb3VzIGdyb3VwIGFzc29jaWF0aW9ucywgYW5kIHNldHMgbmV3IG9uZXMKICAgIC8vIXRvIG1hdGNoIHRob3NlIGluIHRoZSBncnBpZHMgYXJyYXkuCiAgICAvLyEKICAgIC8vIVxwYXJhbSB1aWQgVGhlIHVzZXIgaWQgdG8gZWRpdAogICAgLy8hXHBhcmFtIGdycGlkcyBBbiBhcnJheSBvZiB1c2VyIGlkcyB0byBhc3NvY2lhdGUgd2l0aAogICAgLy8hXHJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvdGhlcndpc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIFNldFVzZXJHcm91cHMoICR1aWQsICRncnBpZHMgKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VXNlclBhc3N3b3JkKCAkdWlkLCAkcGFzc3dvcmQgKQogICAgewogICAgICAgIHJldHVybiBhcnJheShGQUxTRSwiRnVuY3Rpb24gbm90IGRlZmluZWQiKTsKICAgIH0KCiAgICAvLyEgU2V0IHRoZSB1c2VyJ3MgcHJvcGVydGllcyBhYnNvbHV0ZWx5LgogICAgLy8hCiAgICAvLyEgVGhpcyBtZXRob2QgZGVsZXRlcyBhbnkgZXhpc3RpbmcgdXNlciBwcm9wZXJ0aWVzIGFuZCBzZXRzIHRoZW0gYWNjb3JkaW5nIHRvIHRoZSBwcm9wZXJ0aWVzCiAgICAvLyEgc3VwcGxpZWQuCiAgICAvLyEKICAgIC8vISBccGFyYW0gdWlkIFRoZSB1c2VyIGlkIHRvIGJlIGVkaXRlZAogICAgLy8hIFxwYXJhbSBwcm9wcyBBbiBhcnJheSBvZiBLZXk9VmFsdWUgc3RyaW5ncyBjb25zaXN0aW5nIG9mIHRoZSB1c2VyIHByb3BlcnRpZXMuCiAgICAvLyEgXHJldHVybiB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIG90aGVyd2lzZQogICAgLy8hCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0VXNlclByb3BlcnRpZXMoICR1aWQsICRwcm9wcyApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vISBTZXQgYSBwcm9wZXJ0eSBmb3IgdGhlIGN1cnJlbnQgdXNlcgogICAgLy8hCiAgICAvLyEgU2V0cyBhIHByb3BlcnR5IGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyCiAgICAvLyEKICAgIC8vISBccGFyYW0gdGl0bGUgVGhlIHByb3BlcnR5IG5hbWUKICAgIC8vISBccGFyYW0gZGF0YSAgVGhlIHByb3BlcnR5IHZhbHVlCiAgICAvLyEgXHJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvdGhlcndpc2UKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIFNldFVzZXJQcm9wZXJ0eSgkdGl0bGUsJGRhdGEpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKCiAgICAvLyEgU2V0IGEgcHJvcGVydHkgZm9yIHRoZSBwcm92aWRlZCB1c2VyaWQKICAgIC8vIQogICAgLy8hIFNldHMgYSBwcm9wZXJ0eSBleGNsdXNpdmVseSBmb3IgYSBjZXJ0YWluIHVzZXIKICAgIC8vIQogICAgLy8hIFxwYXJhbSB0aXRsZSBUaGUgcHJvcGVydHkgbmFtZQogICAgLy8hIFxwYXJhbSBkYXRhICBUaGUgcHJvcGVydHkgdmFsdWUKICAgIC8vISBccGFyYW0gdXNlcmlkIFRoZSBkZXNpcmVkIHVzZXIgaWQKICAgIC8vIQogICAgcHVibGljIGZ1bmN0aW9uIFNldFVzZXJQcm9wZXJ0eUZ1bGwoJHRpdGxlLCRkYXRhLCR1c2VyaWQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBTZXRVc2VyVGVtcENvZGUoICR1aWQsICRjb2RlICkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8hIFRlc3QgaWYgdGhlIHVzZXIgaWQgaXMgYWxyZWFkeSB0YWtlbgogICAgLy8hCiAgICAvLyEgVGVzdHMgaWYgYSB1c2VyIGJ5IHRoYXQgaWQgYWxyZWFkeSBleGlzdHMKICAgIC8vIQogICAgLy8hIFxwYXJhbSB1aWQgVGhlIHVzZXJpZCB0byB0ZXN0CiAgICAvLyEgXHJldHVybiBib29sZWFuCiAgICAvLyEKICAgIHB1YmxpYyBmdW5jdGlvbiBVc2VyRXhpc3RzQnlJRCggJHVpZCApCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAvLwoKfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.user_edit_assistant.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCm5hbWVzcGFjZSBGcm9udEVuZFVzZXJzOwoKLy8gdGhpcyBjbGFzcyBhaWRzIGluIGFkZGluZyBvciBlZGl0aW5nIGEgdXNlcgovLyBpdCBlbmNhcHN1bGF0ZXMgdGhlIHJlYWQgb25seSB1c2VyIG9iamVjdC4KLy8gYW5kIHByb3ZpZGVzIGVkaXRpbmcgYW5kIHNhdmluZyBmdW5jdGlvbmFsaXR5LgpjbGFzcyB1c2VyX2VkaXRfYXNzaXN0YW50CnsKICAgIHByaXZhdGUgJF91c2VyOwogICAgcHJpdmF0ZSAkX25ld191aWQ7CiAgICBwcml2YXRlICRfbmV3X3VzZXJuYW1lOwogICAgcHJpdmF0ZSAkX25ld19wYXNzd29yZDsKICAgIHByaXZhdGUgJF9yZXBlYXRfcGFzc3dvcmQ7CiAgICBwcml2YXRlICRfZHJhZnRfZ3JvdXBzOwogICAgcHJpdmF0ZSAkX2RyYWZ0X3Byb3BzOwogICAgcHJpdmF0ZSAkX2V4cGlyZXM7CiAgICBwcml2YXRlICRfaXNfZGlzYWJsZWQ7CiAgICBwcml2YXRlICRfZm9yY2VfcGFzc3dvcmRfY2hhbmdlOwogICAgcHJpdmF0ZSAkX2ZvcmNlX2NoYW5nZV9zZXR0aW5nczsKICAgIHByaXZhdGUgJF9tdXN0X3ZhbGlkYXRlOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdXNlcl9pZCkKICAgIHsKICAgICAgICAkbW9kID0gXGZldV91dGlsczo6Z2V0X21vZCgpOwogICAgICAgICR1c2VyX2lkID0gKGludCkgJHVzZXJfaWQ7CiAgICAgICAgaWYoICR1c2VyX2lkIDwgMSApIHsKICAgICAgICAgICAgLy8gYSBicmFuZCBuZXcgdXNlci4uLiBzZXQgc29tZSBkZWZhbHQgdmFsdWVzLgogICAgICAgICAgICAkdXNlciA9IG5ldyB1c2VyOwogICAgICAgICAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgndXNlX3JhbmRvbXVzZXJuYW1lJykgKSAkdGhpcy0+bmV3X3VzZXJuYW1lID0gJG1vZC0+R2VuZXJhdGVSYW5kb21Vc2VybmFtZSgpOwogICAgICAgICAgICAkZGZsdF9ncm91cCA9IChpbnQpICRtb2QtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfZ3JvdXAnKTsKICAgICAgICAgICAgJG9uZV9ncm91cCA9IChib29sKSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX29uZWdyb3VwJyk7CiAgICAgICAgICAgICRncm91cHMgPSAkbW9kLT5HZXRHcm91cExpc3QoKTsKICAgICAgICAgICAgaWYoICFjb3VudCgkZ3JvdXBzKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYW55IGdyb3Vwcy4uLiBjYW5ub3QgY3JlYXRlIHVzZXJzJyk7CiAgICAgICAgICAgICRncm91cHMgPSBhcnJheV9mbGlwKCRncm91cHMpOyAvLyBpdCdzIGJhY2t3YXJkcyBmb3IgaGlzdG9yaWNhbCByZWFzb25zLgogICAgICAgICAgICBpZiggJGRmbHRfZ3JvdXAgKSB7CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJGdyb3Vwc1skZGZsdF9ncm91cF0pICkgJHRoaXMtPl9kcmFmdF9ncm91cHNbXSA9ICRkZmx0X2dyb3VwOwogICAgICAgICAgICB9IGVsc2UgaWYoICRvbmVfZ3JvdXAgKSB7CiAgICAgICAgICAgICAgICAka2V5cyA9IGFycmF5X2tleXMoJGdyb3Vwcyk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RyYWZ0X2dyb3Vwc1tdID0gJGtleXNbMF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRtcCA9IChpbnQpICRtb2QtPkdldFByZWZlcmVuY2UoJ2V4cGlyZWFnZV9tb250aHMnLDUyMCk7CiAgICAgICAgICAgICR0aGlzLT5fZXhwaXJlcyA9IHN0cnRvdGltZSgiK3skdG1wfSBtb250aHMiKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdXNlciA9IHVzZXI6OmxvYWQoJHVzZXJfaWQpOwogICAgICAgICAgICAkdGhpcy0+X2RyYWZ0X2dyb3VwcyA9ICR1c2VyLT5nZXRfZ3JvdXBzKCk7CiAgICAgICAgICAgICR0aGlzLT5fZXhwaXJlcyA9ICR1c2VyLT5leHBpcmVzX3RzOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2RyYWZ0X3Byb3BzID0gJHVzZXItPmdldF9wcm9wZXJ0aWVzKCk7CiAgICAgICAgJHRoaXMtPl91c2VyID0gJHVzZXI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICAgICAgaWYoIGlzX251bGwoJHRoaXMtPl9uZXdfdWlkKSApIHJldHVybiAkdGhpcy0+X3VzZXItPmlkOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9uZXdfdWlkOwoKICAgICAgICBjYXNlICduZXdfdXNlcm5hbWUnOgogICAgICAgICAgICBpZiggISR0aGlzLT5fbmV3X3VzZXJuYW1lICkgcmV0dXJuICR0aGlzLT5fdXNlci0+dXNlcm5hbWU7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X25ld191c2VybmFtZTsKCiAgICAgICAgY2FzZSAnbmV3X3Bhc3N3b3JkJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbmV3X3Bhc3N3b3JkOwoKICAgICAgICBjYXNlICdyZXBlYXRfcGFzc3dvcmQnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9yZXBlYXRfcGFzc3dvcmQ7CgogICAgICAgIGNhc2UgJ2V4cGlyZXMnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9leHBpcmVzOwoKICAgICAgICBjYXNlICdmb3JjZV9wYXNzd29yZF9jaGFuZ2UnOgogICAgICAgICAgICBpZiggaXNfbnVsbCgkdGhpcy0+X2ZvcmNlX3Bhc3N3b3JkX2NoYW5nZSkgKSByZXR1cm4gJHRoaXMtPl91c2VyLT5mb3JjZV9uZXdwdzsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZm9yY2VfcGFzc3dvcmRfY2hhbmdlOwoKICAgICAgICBjYXNlICdmb3JjZV9jaGFuZ2Vfc2V0dGluZ3MnOgogICAgICAgICAgICBpZiggaXNfbnVsbCgkdGhpcy0+X2ZvcmNlX2NoYW5nZV9zZXR0aW5ncykgKSByZXR1cm4gJHRoaXMtPl91c2VyLT5mb3JjZV9jaHNldHRpbmdzOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9mb3JjZV9jaGFuZ2Vfc2V0dGluZ3M7CgogICAgICAgIGNhc2UgJ211c3RfdmFsaWRhdGUnOgogICAgICAgICAgICBpZiggaXNfbnVsbCgkdGhpcy0+X211c3RfdmFsaWRhdGUpICkgcmV0dXJuICR0aGlzLT5fdXNlci0+bXVzdF92YWxpZGF0ZTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fbXVzdF92YWxpZGF0ZTsKCiAgICAgICAgY2FzZSAnaXNfZGlzYWJsZWQnOgogICAgICAgICAgICBpZiggaXNfbnVsbCgkdGhpcy0+X2lzX2Rpc2FibGVkKSApIHJldHVybiAkdGhpcy0+X3VzZXItPmRpc2FibGVkOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9pc19kaXNhYmxlZDsKCiAgICAgICAgY2FzZSAndmVyaWZ5Y29kZSc6CiAgICAgICAgICAgIC8vIGdldHRhYmxlIG9ubHkKICAgICAgICAgICAgaWYoICR0aGlzLT5pZCA+IDEgKSByZXR1cm4gJGZldS0+R2V0VXNlclRlbXBDb2RlKCAkdGhpcy0+aWQgKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3VzZXItPl9fZ2V0KCRrZXkpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGtleSwkdmFsKQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICduZXdfdXNlcm5hbWUnOgogICAgICAgICAgICAkdGhpcy0+X25ld191c2VybmFtZSA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICduZXdfcGFzc3dvcmQnOgogICAgICAgICAgICAkdGhpcy0+X25ld19wYXNzd29yZCA9ICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdyZXBlYXRfcGFzc3dvcmQnOgogICAgICAgICAgICAkdGhpcy0+X3JlcGVhdF9wYXNzd29yZCA9ICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdleHBpcmVzJzoKICAgICAgICAgICAgJHRoaXMtPl9leHBpcmVzID0gKGludCkgJHZhbDsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2lzX2Rpc2FibGVkJzoKICAgICAgICAgICAgJHRoaXMtPl9pc19kaXNhYmxlZCA9IChib29sKSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZm9yY2VfcGFzc3dvcmRfY2hhbmdlJzoKICAgICAgICAgICAgJHRoaXMtPl9mb3JjZV9wYXNzd29yZF9jaGFuZ2UgPSAoYm9vbCkgJHZhbDsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ZvcmNlX2NoYW5nZV9zZXR0aW5ncyc6CiAgICAgICAgICAgICR0aGlzLT5fZm9yY2VfY2hhbmdlX3NldHRpbmdzID0gKGJvb2wpICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdtdXN0X3ZhbGlkYXRlJzoKICAgICAgICAgICAgJHRoaXMtPl9tdXN0X3ZhbGlkYXRlID0gKGJvb2wpICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkdGhpcy0+X3VzZXItPl9fc2V0KCRrZXksJHZhbCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGUoKQogICAgewogICAgICAgICRtb2QgPSBcZmV1X3V0aWxzOjpnZXRfbW9kKCk7CiAgICAgICAgaWYoICR0aGlzLT5fdXNlci0+aWQgPCAxICkgewogICAgICAgICAgICAvLyBuZXcgdXNlcgogICAgICAgICAgICAvLyBtdXN0IGhhdmUgYSB1c2VybmFtZSwgYW5kIGl0IG11c3QgYmUgdmFsaWQKICAgICAgICAgICAgaWYoICEkbW9kLT5Jc1ZhbGlkVXNlcm5hbWUoICR0aGlzLT5uZXdfdXNlcm5hbWUgKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXNlcm5hbWUnKSk7CiAgICAgICAgICAgICR0X3VpZCA9ICRtb2QtPkdldFVzZXJJRCgkdGhpcy0+bmV3X3VzZXJuYW1lKTsKICAgICAgICAgICAgaWYoICR0X3VpZCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl91c2VybmFtZV9leGlzdHMnKSk7CgogICAgICAgICAgICAvLyBtdXN0IGhhdmUgYSBwYXNzd29yZCwgYW5kIGl0IG11c3QgYmUgdmFsaWQKICAgICAgICAgICAgaWYoICEkdGhpcy0+bmV3X3Bhc3N3b3JkICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXNzd29yZCcpKTsKICAgICAgICAgICAgaWYoICEkbW9kLT5pc1ZhbGlkUGFzc3dvcmQoJHRoaXMtPm5ld19wYXNzd29yZCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZHBhc3N3b3JkJykpOwoKICAgICAgICAgICAgLy8gcmVwZWF0IHBhc3N3b3JkIG11c3QgYmUgdmFsaWQuCiAgICAgICAgICAgIGlmKCAkdGhpcy0+bmV3X3Bhc3N3b3JkICE9ICR0aGlzLT5yZXBlYXRfcGFzc3dvcmQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCcpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBlZGl0aW5nIGEgdXNlci4KICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIHVzZXJuYW1lLCBpdCBtdXN0IGJlIHZhbGlkIChjaGFuZ2luZyB1c2VybmFtZSkKICAgICAgICAgICAgaWYoICR0aGlzLT5fbmV3X3VzZXJuYW1lICYmICEkbW9kLT5Jc1ZhbGlkVXNlcm5hbWUoJHRoaXMtPl9uZXdfdXNlcm5hbWUsIEZBTFNFKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXNlcm5hbWUnKSk7CiAgICAgICAgICAgICR0X3VpZCA9ICRtb2QtPkdldFVzZXJJRCgkdGhpcy0+bmV3X3VzZXJuYW1lKTsKICAgICAgICAgICAgaWYoICR0X3VpZCAmJiAkdF91aWQgIT0gJHRoaXMtPl91c2VyLT5pZCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkbW9kLT5MYW5nKCdlcnJvcl91c2VybmFtZV9leGlzdHMnKSk7CgogICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgcGFzc3dvcmQsIGl0IG11c3QgYmUgdmFsaWQsIGFuZCByZXBlYXQgbXVzdCBtYXRjaAogICAgICAgICAgICBpZiggJHRoaXMtPm5ld19wYXNzd29yZCApIHsKICAgICAgICAgICAgICAgIGlmKCAhJG1vZC0+aXNWYWxpZFBhc3N3b3JkKCR0aGlzLT5uZXdfcGFzc3dvcmQpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXNzd29yZCcpKTsKCiAgICAgICAgICAgICAgICAvLyByZXBlYXQgcGFzc3dvcmQgbXVzdCBiZSB2YWxpZC4KICAgICAgICAgICAgICAgIGlmKCAkdGhpcy0+bmV3X3Bhc3N3b3JkICE9ICR0aGlzLT5yZXBlYXRfcGFzc3dvcmQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfcGFzc3dvcmRtaXNtYXRjaCcpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gbmVlZCBhIHZhbGlkIGV4cGlyeSBkYXRlIHdoZW4gYWRkaW5nL2VkaXRpbmcgYSB1c2VyLgogICAgICAgIGlmKCAhJHRoaXMtPmV4cGlyZXMgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfaW52YWxpZGV4cGlyeWRhdGUnKSk7CgogICAgICAgIC8vIGlmIHJlcXVpcmUgbWVtYmVyc2hpcCBpbiBvbmUgZ3J1b3AsIG1ha2Ugc3VyZSB3ZSBoYXZlIG9uZS4KICAgICAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZV9vbmVncm91cCcpICYmIGNvdW50KCR0aGlzLT5fZHJhZnRfZ3JvdXBzKSA8IDEgKSB0aHJvdyBuZXcgXFJ1bnRpbWVleGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3Jfb25lZ3JvdXByZXF1aXJlZCcpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2dyb3VwcygkZ3JvdXBzKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJGdyb3VwcykgfHwgIWNvdW50KCRncm91cHMpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBncm91cCBhcnJheSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkZ3JvdXBzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRvbmUgPSAoaW50KSAkb25lOwogICAgICAgICAgICBpZiggJG9uZSA8IDEgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkb25lLCR0bXApICkgJHRtcFtdID0gJG9uZTsKICAgICAgICB9CiAgICAgICAgJHRtcCA9IGFycmF5X3VuaXF1ZSgkdG1wKTsKICAgICAgICAkdGhpcy0+X2RyYWZ0X2dyb3VwcyA9ICR0bXA7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIG1lbWJlcm9mKCRnaWQpCiAgICB7CiAgICAgICAgJGdpZCA9IChpbnQpICRnaWQ7CiAgICAgICAgaWYoICRnaWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBnaWQgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgcmV0dXJuIChpc19hcnJheSgkdGhpcy0+X2RyYWZ0X2dyb3VwcykgJiYgaW5fYXJyYXkoJGdpZCwkdGhpcy0+X2RyYWZ0X2dyb3VwcykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3JvdXBzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kcmFmdF9ncm91cHM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wcm9wZXJ0eSgkbmFtZSwkdmFsKQogICAgewogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYoICEkbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbmFtZSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2RyYWZ0X3Byb3BzWyRuYW1lXSA9IChzdHJpbmcpICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9wZXJ0eSgkbmFtZSkKICAgIHsKICAgICAgICAkbmFtZSA9IHRyaW0oJG5hbWUpOwogICAgICAgIGlmKCAhJG5hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIG5hbWUgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZHJhZnRfcHJvcHNbJG5hbWVdKSApIHJldHVybiAkdGhpcy0+X2RyYWZ0X3Byb3BzWyRuYW1lXTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZXJhc2VfcHJvcGVydHkoJG5hbWUpCiAgICB7CiAgICAgICAgJG5hbWUgPSB0cmltKCRuYW1lKTsKICAgICAgICBpZiggISRuYW1lICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBuYW1lIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RyYWZ0X3Byb3BzWyRuYW1lXSkgKSB1bnNldCgkdGhpcy0+X2RyYWZ0X3Byb3BzWyRuYW1lXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNhbl92YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgLy8gdGVzdCBpZiB0aGVyZSBpcyBlbm91Z2ggaW5mb3JtYXRpb24gZm9yIHRoaXMgdXNlciB0byBiZSBhYmxlIHRvIHJlLXZhbGlkYXRlIGhpbXNlbGYKICAgICAgICBpZiggJHRoaXMtPmlkIDwgMSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgJGZldSA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKTsKICAgICAgICBpZiggJGZldS0+R2V0UHJlZmVyZW5jZSgndXNlcm5hbWVfaXNfZW1haWwnKSApIHJldHVybiBUUlVFOwoKICAgICAgICAkcHJvcHMgPSBcZmV1X3V0aWxzOjpnZXRfcHJvcGVydGllc19mb3JfZ3JvdXBzKCAkdGhpcy0+Z2V0X2dyb3VwcygpICk7CiAgICAgICAgaWYoICFjb3VudCgkcHJvcHMpICkgcmV0dXJuIEZBTFNFOwogICAgICAgICRhbGxkZWZucyA9ICRmZXUtPkdldFByb3BlcnR5RGVmbnMoKTsKICAgICAgICAkZm5kID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkcHJvcHMgYXMgJHByb3AgKSB7CiAgICAgICAgICAgICRwcm9wX25hbWUgPSAkcHJvcFsnbmFtZSddOwogICAgICAgICAgICBpZiggaXNzZXQoJGFsbGRlZm5zWyRwcm9wX25hbWVdKSAmJiAkYWxsZGVmbnNbJHByb3BfbmFtZV1bJ3R5cGUnXSA9PSAyICkgewogICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5nZXRfcHJvcGVydHkoJHByb3BfbmFtZSk7CiAgICAgICAgICAgICAgICBpZiggJHZhbCApIHJldHVybiBUUlVFOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc3RvcmUoKQogICAgewogICAgICAgICRrZXkgPSBtZDUoX19GSUxFX18pOwogICAgICAgICRfU0VTU0lPTlska2V5XSA9IHNlcmlhbGl6ZSgkdGhpcyk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZXRyaWV2ZSgpCiAgICB7CiAgICAgICAgJGtleSA9IG1kNShfX0ZJTEVfXyk7CiAgICAgICAgaWYoICFpc3NldCgkX1NFU1NJT05bJGtleV0pICkgcmV0dXJuOwogICAgICAgICRvYmogPSB1bnNlcmlhbGl6ZSgkX1NFU1NJT05bJGtleV0pOwogICAgICAgIHVuc2V0KCRfU0VTU0lPTlska2V5XSk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoKQogICAgewogICAgICAgICR1aWQgPSAkdGhpcy0+aWQ7CiAgICAgICAgJG1vZCA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKTsKICAgICAgICBpZiggJHVpZCA8IDEgKSB7CiAgICAgICAgICAgIC8vIGFkZGluZyBhIG5ldyB1c2VyCiAgICAgICAgICAgICRyZXQgPSAkbW9kLT5BZGRVc2VyKCAkdGhpcy0+bmV3X3VzZXJuYW1lLCAkdGhpcy0+bmV3X3Bhc3N3b3JkLCAkdGhpcy0+ZXhwaXJlcyApOwogICAgICAgICAgICBpZiggIWlzX2FycmF5KCRyZXQpIHx8ICRyZXRbMF0gPT0gRkFMU0UgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oICRyZXRbMV0gKTsKICAgICAgICAgICAgJHVpZCA9ICR0aGlzLT5fbmV3X3VpZCA9IChpbnQpICRyZXRbMV07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gdXBkYXRpbmcgYW4gZXhpc3RpbmcgdXNlcgogICAgICAgICAgICAkcmVzID0gJG1vZC0+U2V0VXNlciggJHVpZCwgJHRoaXMtPm5ld191c2VybmFtZSwgJHRoaXMtPm5ld19wYXNzd29yZCwgJHRoaXMtPmV4cGlyZXMgKTsKICAgICAgICAgICAgaWYoICFpc19hcnJheSgkcmVzKSB8fCAkcmVzWzBdID09IEZBTFNFICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdFcnJvciBzZXR0aW5nIHVzZXIgJy4kcmVzWzFdKTsKICAgICAgICB9CgogICAgICAgICRtb2QtPlNldFVzZXJEaXNhYmxlZCggJHVpZCwgJHRoaXMtPmlzX2Rpc2FibGVkICk7CiAgICAgICAgJG1vZC0+Rm9yY2VQYXNzd29yZENoYW5nZSggJHVpZCwgJHRoaXMtPmZvcmNlX3Bhc3N3b3JkX2NoYW5nZSApOwogICAgICAgICRtb2QtPkZvcmNlQ2hhbmdlU2V0dGluZ3MoICR1aWQsICR0aGlzLT5mb3JjZV9jaGFuZ2Vfc2V0dGluZ3MgKTsKICAgICAgICAkbW9kLT5Gb3JjZVZlcmlmeSggJHVpZCwgJHRoaXMtPm11c3RfdmFsaWRhdGUgKTsKCiAgICAgICAgLy8gZG8gdGhpcywganVzdCBpIG4gY2FzZS4KICAgICAgICAkbW9kLT5SZW1vdmVVc2VyVGVtcENvZGUoICR1aWQgKTsKCiAgICAgICAgLy8gYWRkIHRoZSB1c2VyIHRvIGhpcyBncm91cHMKICAgICAgICAkcmV0ID0gJG1vZC0+U2V0VXNlckdyb3VwcyggJHVpZCwgJHRoaXMtPl9kcmFmdF9ncm91cHMgKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRyZXQpIHx8ICRyZXRbMF0gPT0gRkFMU0UgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJG1vZC0+TGFuZygnZXJyb3JfY2FudGFzc2lnbnVzZXInKSk7CgogICAgICAgIC8vIGFuZCB0aGVuIGFkZCBoaXMgcHJvcGVydGllcy4KICAgICAgICAkbW9kLT5TZXRFbmNyeXB0aW9uS2V5KCR1aWQpOwoKICAgICAgICAvLyRtb2QtPkRlbGV0ZVVzZXJQcm9wZXJ0eUZ1bGwoICcnLCAkdWlkLCBUUlVFICk7IC8vIERFTEVURSBBTEwgUFJPUEVSVElFUwogICAgICAgIGlmKCBjb3VudCgkdGhpcy0+X2RyYWZ0X3Byb3BzKSApICB7CiAgICAgICAgICAgIGZvcmVhY2goICR0aGlzLT5fZHJhZnRfcHJvcHMgYXMgJHByb3BfbmFtZSA9PiAkdmFsICkgewogICAgICAgICAgICAgICAgJHJldCA9ICRtb2QtPlNldFVzZXJQcm9wZXJ0eUZ1bGwoICRwcm9wX25hbWUsICR2YWwsICR1aWQgKTsKICAgICAgICAgICAgICAgIGlmKCAhJHJldCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignRXJyb3IgU2V0dGluZyBwcm9wZXJ0eSAnLiRwcm9wX25hbWUuJyB0byAnLiR2YWwuJyBmb3IgdXNlciAnLiR1aWQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9]]></data>
	</file>
	<file>
	  <filename>/lib/class.verification_assistant.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIEZyb250RW5kVXNlcnM7CgphYnN0cmFjdCBjbGFzcyB2ZXJpZmljYXRpb25fYXNzaXN0YW50CnsKICAgIHByaXZhdGUgJF91aWQ7CiAgICBwcml2YXRlICRfZGVzdHBhZ2U7CiAgICBwcml2YXRlICRfY29kZTsKCiAgICBwcml2YXRlIGZ1bmN0aW9uIGdlbmVyYXRlX2NvZGUoKQogICAgewogICAgICAgICRjb2RlID0gc3Vic3RyKHN0cnRvdXBwZXIobWQ1KF9fRklMRV9fLnNlc3Npb25faWQoKS5taWNyb3RpbWUoVFJVRSkpKSwwLDI1KTsKICAgICAgICAkZmV1ID0gXGZldV91dGlsczo6Z2V0X21vZCgpOwogICAgICAgICRmZXUtPlNldFVzZXJUZW1wQ29kZSgkdGhpcy0+X3VpZCwkY29kZSk7CiAgICAgICAgcmV0dXJuICRjb2RlOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gZ2VuZXJhdGVfZGVzdHBhZ2UoKQogICAgewogICAgICAgICRkZmx0ID0gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+R2V0RGVmYXVsdENvbnRlbnQoKTsKICAgICAgICAkcGFnZSA9IFxmZXVfdXRpbHM6OnJlc29sdmVfcHJlZnRwbF90b19wYWdlKCdwYWdlaWRfb252ZXJpZnknLCR0aGlzLT5fdWlkKTsKICAgICAgICBpZiggISRwYWdlICkgJHBhZ2UgPSAkZGZsdDsKICAgICAgICByZXR1cm4gJHBhZ2U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR1aWQsICRjb2RlID0gbnVsbCkKICAgIHsKICAgICAgICAkdWlkID0gKGludCkgJHVpZDsKICAgICAgICBpZiggJHVpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHVpZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJGZldSA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKTsKICAgICAgICAkdGhpcy0+X3VpZCA9ICR1aWQ7CiAgICAgICAgJHRoaXMtPl9jb2RlID0gJGNvZGU7CiAgICAgICAgaWYoICEkdGhpcy0+X2NvZGUgKSAkdGhpcy0+X2NvZGUgPSAkZmV1LT5HZXRVc2VyVGVtcENvZGUoJHVpZCk7CiAgICAgICAgaWYoICEkdGhpcy0+X2NvZGUgKSAkdGhpcy0+X2NvZGUgPSAkdGhpcy0+Z2VuZXJhdGVfY29kZSgpOwogICAgICAgICR0aGlzLT5fZGVzdHBhZ2UgPSAkdGhpcy0+Z2VuZXJhdGVfZGVzdHBhZ2UoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3VpZCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fdWlkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29kZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fY29kZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Rlc3RwYWdlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPl9kZXN0cGFnZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0RGVzdFBhZ2UoJHN0cikKICAgIHsKICAgICAgICBpZiggJHN0ciApIHsKICAgICAgICAgICAgJGZldSA9IFxmZXVfdXRpbHM6OmdldF9tb2QoKTsKICAgICAgICAgICAgJHRoaXMtPl9kZXN0cGFnZSA9ICRmZXUtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHN0ciwkdGhpcy0+X2Rlc3RwYWdlKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldFZlcmlmeUZvcm1VcmwoJHdpdGhjb2RlID0gdHJ1ZSkKICAgIHsKICAgICAgICAkY29kZSA9ICR0aGlzLT5fY29kZTsKICAgICAgICBpZiggISR3aXRoY29kZSApICRjb2RlID0gJ3h4eHgnOwogICAgICAgICRmZXUgPSBcZmV1X3V0aWxzOjpnZXRfbW9kKCk7CiAgICAgICAgJHVybCA9ICRmZXUtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCd2ZXJpZnlvbmx5JywkdGhpcy0+X2Rlc3RwYWdlLFsgJ3VpZCc9PiR0aGlzLT5fdWlkLCAnY29kZSc9PiRjb2RlIF0gKTsKICAgICAgICByZXR1cm4gJHVybDsKICAgIH0KCiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gc2VuZCgpOwp9]]></data>
	</file>
	<file>
	  <filename>/lib/interface.feu_auth_consumer.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgppbnRlcmZhY2UgZmV1X2F1dGhfY29uc3VtZXIKewogIGNvbnN0IENBUEFCSUxJVFlfQUxUTE9HSU4gPSAnQ0FQQUJJTElUWV9BTFRMT0dJTic7CiAgY29uc3QgQ0FQQUJJTElUWV9MT0dJTiA9ICdDQVBBQklMSVRZX0xPR0lOJzsKICBjb25zdCBDQVBBQklMSVRZX0xPR09VVCA9ICdDQVBBQklMSVRZX0xPR09VVCc7CiAgY29uc3QgQ0FQQUJJTElUWV9DSEFOR0VTRVRUSU5HUyA9ICdDQVBBQklMSVRZX0NIQU5HRVNFVFRJTkdTJzsKICBjb25zdCBDQVBBQklMSVRZX0xPU1RVU0VSTkFNRSA9ICdDQVBBQklMSVRZX0xPU1RVU0VSTkFNRSc7CiAgY29uc3QgQ0FQQUJJTElUWV9GT1JHT1RQQVNTV0QgPSAnQ0FQQUJJTElUWV9GT1JHT1RQQVNTV0QnOwogIGNvbnN0IENBUEFCSUxJVFlfVVNFU1REQ0hBTkdFU0VUVElOR1MgPSAnQ0FQQUJJTElUWV9VU0VTVERDSEFOR0VTRVRUSU5HUyc7CiAgY29uc3QgQ0FQQUJJTElUWV9VU0VTVERHUk9VUFMgPSAnQ0FQQUJJTElUWV9VU0VTVERHUk9VUFMnOwogIGNvbnN0IENBUEFCSUxJVFlfQ0hBTkdFUEFTU1dEID0gJ0NBUEFCSUxJVFlfQ0hBTkdFUEFTU1dEJzsKICBjb25zdCBDQVBBQklMSVRZX0NIQU5HRVVTRVJOQU1FID0gJ0NBUEFCSUxJVFlfQ0hBTkdFVVNFUk5BTUUnOwogIGNvbnN0IENBUEFCSUxJVFlfTElTVFBST1BTID0gJ0NBUEFCSUxJVFlfTElTVFBST1BTJzsKICBjb25zdCBDQVBBQklMSVRZX0VESVRQUk9QUyA9ICdDQVBBQklMSVRZX0VESVRQUk9QUyc7CiAgY29uc3QgQ0FQQUJJTElUWV9MSVNUR1JPVVBTID0gJ0NBUEFCSUxJVFlfTElTVEdST1VQUyc7CiAgY29uc3QgQ0FQQUJJTElUWV9FRElUR1JPVVBTID0gJ0NBUEFCSUxJVFlfRURJVEdST1VQUyc7CiAgY29uc3QgQ0FQQUJJTElUWV9FRElUR1JPVVBQUk9QUyA9ICdDQVBBQklMSVRZX0VESVRHUk9VUFBST1BTJzsKICBjb25zdCBDQVBBQklMSVRZX0dST1VQTUVNQkVSU0hJUCA9ICdDQVBBQklMSVRZX0dST1VQTUVNQkVSU0hJUCc7CiAgY29uc3QgQ0FQQUJJTElUWV9ERUZBVUxUR1JPVVBTID0gJ0NBUEFCSUxJVFlfREVGQVVMVEdST1VQUyc7CiAgY29uc3QgQ0FQQUJJTElUWV9VU0VSTkFNRSA9ICdDQVBBQklMSVRZX1VTRVJOQU1FJzsgLy8gcmV0cmlldmUgcmVhZGFibGUgdXNlcm5hbWUgZ2l2ZW4gYSB1bmlxdWUgaWRlbnRpZmllci4KCiAgY29uc3QgUFJPUEVSVFlfVVNFUk5BTUUgPSAnX19VU0VSTkFNRV9fJzsKICBjb25zdCBQUk9QRVJUWV9VSUQgICAgICA9ICdfX1VJRF9fJzsKCiAgLyoqCiAgICogUmV0dXJuIGEgZmxhZyBpZiB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBpc19hdXRoZW50aWNhdGVkKCk7CgogIC8qKgogICAqIFJldHVybiBhbiBhcnJheSB3aXRoIHRoaXMgYXV0aGVudGljYXRpb24gbWV0aG9kcyBjYXBhYmlsaXRpZXMKICAgKgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2FwYWJpbGl0aWVzKCk7CgogIC8qKgogICAqIFRlc3QgaWYgdGhlIGNvbnN1bWVyIGhhcyB0aGUgY2FwYWJpbGl0eQogICAqCiAgICogQWNjZXB0cyBhIHNpbmdsZSBjYXBhYmlsaXR5IGlkZW50aWZpZXIsIG9yIGxpc3Qgb2YgYXJndW1lbnQgY2FwYWJpbGl0aWVzLgogICAqIHJldHVybnMgVFJVRSBpZiBhbnkgb2YgdGhlIHBhc3NlZCBpbiBwcm9wZXJ0aWVzIG1hdGNoLgogICAqIHJldHVybnMgRkFMU0Ugb3RoZXJ3aXNlLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBoYXNfY2FwYWJpbGl0eSgpOwoKICAvKioKICAgKiBBIGZ1bmN0aW9uIHRvIGRpc3BsYXkgbG9naW4gaW5mb3JtYXRpbwogICAqIChvciBhIGxpbmsgdG8gYSBsb2dpbiBwYWdlKQogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfbG9naW5fZGlzcGxheSgkaWQsJHJldHVybmlkLCRwYXJhbXMpOwoKICAvKioKICAgKiBBIGZ1bmN0aW9uIHRvIGRpc3BsYXkgbG9naW4gaW5mb3JtYXRpb24KICAgKiAob3IgYSBsaW5rIHRvIGEgbG9naW4gcGFnZSkKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xvZ291dF9kaXNwbGF5KCRpZCwkcmV0dXJuaWQsJHBhcmFtcyk7CgogIC8qKgogICAqIEEgZnVuY3Rpb24gdG8gZGlzcGxheSB0aGUgY2hhbmdlIHNldHRpbmdzIHBhZ2UKICAgKgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2hhbmdlc2V0dGluZ3NfZGlzcGxheSgkaWQsJHJldHVybmlkLCRwYXJhbXMpOwoKCiAgLyoqCiAgICogR2V0IHRoZSB1c2VyIGluZm9ybWF0aW9uIGZyb20gdGhlIGV4dGVybmFsIGF1dGhlbnRpY2F0aW9uIHN5c3RlbQogICAqIGZvciB1c2UgYnkgRkVVIAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXNlcl9pbmZvKCk7CgoKICAvKioKICAgKiBHZXQgdGhlIG5hbWUgb2YgYW4gRkVVIHByb3BlcnR5IHRoYXQgaXMgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeQogICAqIGEgdXNlciAKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2Nvbm5lY3RpbmdfcHJvcGVydHlfbmFtZSgpOwoKCiAgLyoqCiAgICogR2V0IGFuIGlkZW50aWZpZXIgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGEgdXNlciBpbiB0aGlzIGVudmlyb25tZW50CiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF91bmlxdWVfaWRlbnRpZmllcigpOwoKICAvKioKICAgKiBHZXQgYSBsaXN0IG9mIGFsbCBncm91cHMKICAgKgogICAqIEByZXR1cm4gQXNzb2NpYXRpdmUgYXJyYXkgb2YgZ3JvdXBuYW1lcyBhbmQgZ3JvdXBpZCdzLgogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfZ3JvdXBfbGlzdCgkd2l0aF9jb3VudCA9IEZBTFNFKTsKCiAgLyoqCiAgICogR2V0IHRoZSBsaXN0IG9mIGdyb3VwIChpZHMpIHRoYXQgYSB1c2VyIGlzIGEgbWVtYmVyIG9mLgogICAqCiAgICogQHBhcmFtIGludGVnZXIgVGhlIHVzZXIgaWQuICBNYXkgYmUgbmVnYXRpdmUgdG8gaW5kaWNhdGUgdGhhdCB0aGUgdXNlciBhY2NvdW50IGlzIHJlcHJlc2VudGluZyBhIG5ldyB1c2VyLgogICAqIEByZXR1cm4gbWl4ZWQgYXJyYXkgb2YgaW50ZWdlcnMsIG9yIG51bGwKICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2dyb3VwX21lbWJlcnNoaXAoJHVzZXJpZCk7CgogIC8qKgogICAqIEdldCB0aGUgbGlzdCBvZiBncm91cCAoaWRzKSB0aGF0IGJ5IGRlZmF1bHQsIGEgbmV3IHVzZXIgc2hvdWxkIGJlbG9uZyB0by4KICAgKgogICAqIEByZXR1cm4gbWl4ZWQgYXJyYXkgb2YgaW50ZWdlcnMsIG9yIG51bGwuCiAgICovCiAgcHVibGljIGZ1bmN0aW9uIGdldF9kZWZhdWx0X2dyb3VwcygpOwoKICAvKioKICAgKiBHZXQgdGhlIHVzZXJuYW1lIHByb21wdAogICAqLwogIHB1YmxpYyBmdW5jdGlvbiBnZXRfdXNlcm5hbWVfcHJvbXB0KCk7CgogIC8qKgogICAqIFZhbGlkYXRlIHVzZXJuYW1lLgogICAqCiAgICogQHBhcmFtIHN0cmluZyB0aGUgcHJvcG9zZWQgdXNlZXJuYW1lIAogICAqIEBwYXJhbSBib29sZWFuIGluZGljYXRlcyB3ZXRoZXIgdGhlIHVzZXJuYW1lIHNob3VsZCBiZSB0cmVhdGVkIGFzIGFuIGVtYWlsIGFkZHJlc3MsIGFuZCB2YWxpZGF0ZWQKICAgKiBAcGFyYW0gaW50ZWdlciBUaGUgdXNlciBpZCAoaWYgaXRzIGFuIGV4aXN0aW5nIHVzZXIpLi4uIHRvIHVzZSBmb3IgY2hlY2tpbmcgZm9yIGR1cGxpY2F0ZSBhZGRyZXNzZXMKICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgKi8KICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVfdXNlcm5hbWUoJHVzZXJuYW1lLCRjaGVja19lbWFpbF9hZGRyID0gRkFMU0UsJHVpZCA9IC0xKTsKfQoKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMycpIDwgMCApIHsKICAgIHJldHVybiAiTWluaW11bSBQSFAgdmVyc2lvbiBvZiA1LjQuMyByZXF1aXJlZCI7Cn0KCiRsb2dfZXhjZXB0aW9uID0gZnVuY3Rpb24oXEV4Y2VwdGlvbiAkZSkgewogICAgJG91dCA9ICctLSBFWENFUFRJT04gRFVNUCAtLScuIlxuIjsKICAgICRvdXQgLj0gIlRZUEU6ICIuZ2V0X2NsYXNzKCRlKS4iXG4iOwogICAgJG91dCAuPSAiTUVTU0FHRTogIi4kZS0+Z2V0TWVzc2FnZSgpLiJcbiI7CiAgICAkb3V0IC49ICJGSUxFOiAiLiRlLT5nZXRGaWxlKCkuJzonLiRlLT5HZXRMaW5lKCkuIlxuIjsKICAgICRvdXQgLj0gIlRSRUFDRTpcbiI7CiAgICAkb3V0IC49ICRlLT5nZXRUcmFjZUFzU3RyaW5nKCk7CiAgICBkZWJ1Z190b19sb2coJG91dCwnLS0gJy5fX01FVEhPRF9fLicgLS0nKTsKfTsKCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdFTkdJTkU9SW5ub0RCJyk7CgovL1VzZXIgbGlzdAokZmxkcyA9ICIKICAgICAgICAgaWQgSSBLRVkgQVVUTyBOT1ROVUxMLAogICAgICAgICB1c2VybmFtZSBDKDgwKSBOT1ROVUxMLAogICAgICAgICBwYXNzd29yZCBDKDY0KSBOT1ROVUxMLAogICAgICAgICBjcmVhdGVkYXRlICIuQ01TX0FET0RCX0RULiIsCiAgICAgICAgIGV4cGlyZXMgICAgIi5DTVNfQURPREJfRFQuIiwKICAgICAgICAgbm9uc3RkICAgSTEsCiAgICAgICAgIGRpc2FibGVkIEkxLAogICAgICAgICBzYWx0ICAgICBDKDMyKSwKICAgICAgICAgZm9yY2VfbmV3cHcgSTEsCiAgICAgICAgIGZvcmNlX2Noc2V0dGluZ3MgSTEsCiAgICAgICAgIG11c3RfdmFsaWRhdGUgSTEKICAgICAgICAiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc191c2VycyIsICRmbGRzLCAkdGFib3B0YXJyYXkgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7CgovL0dyb3VwIGxpc3QKJGZsZHMgPSAiCgkgICAgIGlkIEkgS0VZIEFVVE8gTk9UTlVMTCwKCSAgICAgZ3JvdXBuYW1lIEMoMzIpIE5PVE5VTEwsCgkgICAgIGdyb3VwZGVzYyBDKDEyOCkKCSAgICAiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19ncm91cHMiLCAkZmxkcywgJHRhYm9wdGFycmF5ICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwoKLy8gbG9nZ2VkaW4KJGZsZHMgPSAiCgkgICAgIHNlc3Npb25pZCBDKDI1NSksCgkgICAgIGxhc3R1c2VkIEksCgkgICAgIHVzZXJpZCBJCgkgICAgIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfbG9nZ2VkaW4iLCAkZmxkcywgJHRhYm9wdGFycmF5ICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwoKLy9Db25uZWN0aW9ucyBiZXR3ZWVuIHVzZXJzIGFuZCBncm91cHMKJGZsZHMgPSAiCgkgICAgIHVzZXJpZCBJIEtFWSBOT1ROVUxMLAoJICAgICBncm91cGlkIEkgS0VZIE5PVE5VTEwKCSAgICAiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIiwgJGZsZHMsICR0YWJvcHRhcnJheSApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKCi8vcHJvcGVydHkgZGVmaW5pdGlvbgokZmxkcyA9ICIKICAgICAgICAgbmFtZSAgICAgIEMoNDApIEtFWSBOT1ROVUxMLAogICAgICAgICBwcm9tcHQgICAgQygyNTUpIE5PVE5VTEwsCiAgICAgICAgIHR5cGUgICAgICBDKDIwKSBOT1ROVUxMLAogICAgICAgICBsZW5ndGggICAgSSwKICAgICAgICAgbWF4bGVuZ3RoIEksCiAgICAgICAgIGF0dHJpYnMgICBDKDI1NSksCiAgICAgICAgIGZvcmNlX3VuaXF1ZSBJMSwKICAgICAgICAgZW5jcnlwdCAgIEkxLAogICAgICAgICBleHRyYSAgICAgWAogICAgICAgICI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNxbChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BkZWZuIiwgJGZsZHMsICR0YWJvcHRhcnJheSApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKCi8vZHJvcGRvd24gc2VsZWN0IG9wdGlvbnMKJGZsZHMgPSAiCiAgICAgICAgIG9yZGVyX2lkCQlJIE5PVE5VTEwsCiAgICAgICAgIG9wdGlvbl9uYW1lCUMoNDApIE5PVE5VTEwsCiAgICAgICAgIG9wdGlvbl90ZXh0CUMoMjU1KSBOT1ROVUxMLAogICAgICAgICBjb250cm9sX25hbWUJQyg0MCkgTk9UTlVMTDsKICAgICAgICAiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTcWwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19kcm9wZG93bnMiLCAkZmxkcywgJHRhYm9wdGFycmF5ICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwoKLy8gZ3JvdXAgcHJvcGVydHkgbWFwCi8vIHVzZWQgdG8gYXNzb2NpYXRlIGEgcHJvcGVydHkgdG8gYSBncm91cAokZmxkcyA9ICIKICAgICAgICAgbmFtZSAgICBDKDQwKSBLRVkgTk9UTlVMTCwKICAgICAgICAgZ3JvdXBfaWQgSSBLRVkgTk9UTlVMTCwKICAgICAgICAgc29ydF9rZXkgSSBOT1ROVUxMLAogICAgICAgICByZXF1aXJlZCBJIE5PVE5VTEwsCiAgICAgICAgIGxvc3R1bmZsYWcgSQogICAgICAgICI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNxbChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCIsICRmbGRzLCAkdGFib3B0YXJyYXkgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7CgovL3VzZXIgcHJvcGVydGllcwokZmxkcyA9ICIKCSAgICAgaWQgSSBLRVkgQVVUTyBOT1ROVUxMLAoJICAgICB1c2VyaWQgSSBOT1ROVUxMLAoJICAgICB0aXRsZSBDKDEwMCkgTk9UTlVMTCwKCSAgICAgZGF0YSBYMgoJICAgICI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMiLCAkZmxkcywgJHRhYm9wdGFycmF5ICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwovLyRkYi0+Q3JlYXRlU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllc19zZXEiICk7CgovLyBmb3Jnb3R0ZW4gcGFzc3dvcmQgc3R1ZmYKJGZsZHMgPSAiCgkgICAgIHVzZXJpZCBJIEtFWSwKICAgICAgICAgY29kZSBDKDI1KSBOT1ROVUxMLAogICAgICAgICBjcmVhdGVkICIuQ01TX0FET0RCX0RUOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc190ZW1wY29kZSIsICRmbGRzLCAkdGFib3B0YXJyYXkgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7CgovLyBsb2dpbiBoaXN0b3J5IHN0dWZmCiRmbGRzID0gIgogICAgICAgICB1c2VyaWQgSSBOT1ROVUxMLAoJICAgICBzZXNzaW9uaWQgQygzMikgTk9UTlVMTCwKICAgICAgICAgYWN0aW9uIEMoMjU1KSBOT1ROVUxMLAogICAgICAgICByZWZkYXRlICIuQ01TX0FET0RCX0RULiIsCiAgICAgICAgIGlwYWRkcmVzcyBDKDY0KSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2hpc3RvcnkiLCAkZmxkcywgJHRhYm9wdGFycmF5ICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwoKLy8gaW5kZXhlcwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidmZXVfaWR4X2JlbG9uZ3MnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfYmVsb25ncycsJ2dyb3VwaWQnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidmZXVfaWR4X3VzZXJuYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzJywndXNlcm5hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidmZXVfaWR4X2V4cGlyZXMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMnLCdleHBpcmVzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4nZmV1X2lkeF9yZWZkYXRlJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2hpc3RvcnknLCd1c2VyaWQscmVmZGF0ZSxhY3Rpb24nKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidmZXVfaWR4X3Byb3B1c2VydGl0bGUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcycsJ3VzZXJpZCx0aXRsZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ2ZldV9pZHhfcHJvcHRpdGxlJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMnLCd0aXRsZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgovLyBzZXR1cCBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzCiRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2JlbG9uZ3MgQUREIEZPUkVJR04gS0VZICh1c2VyaWQpIFJFRkVSRU5DRVMgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIChpZCknOwokZGItPkV4ZWN1dGUoJHNxbCk7CiRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2xvZ2dlZGluIEFERCBGT1JFSUdOIEtFWSAodXNlcmlkKSBSRUZFUkVOQ0VTICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyAoaWQpJzsKJGRiLT5FeGVjdXRlKCRzcWwpOwokc3FsID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIEFERCBGT1JFSUdOIEtFWSAoZ3JvdXBpZCkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBzIChpZCknOwokZGItPkV4ZWN1dGUoJHNxbCk7CiRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2Ryb3Bkb3ducyBBREQgRk9SRUlHTiBLRVkgKGNvbnRyb2xfbmFtZSkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gKG5hbWUpJzsKJGRiLT5FeGVjdXRlKCRzcWwpOwokc3FsID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19ncm91cHByb3BtYXAgQUREIEZPUkVJR04gS0VZIChncm91cF9pZCkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBzIChpZCknOwokZGItPkV4ZWN1dGUoJHNxbCk7CiRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCBBREQgRk9SRUlHTiBLRVkgKG5hbWUpIFJFRkVSRU5DRVMgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BkZWZuIChuYW1lKSc7CiRkYi0+RXhlY3V0ZSgkc3FsKTsKJHNxbCA9ICdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBBREQgRk9SRUlHTiBLRVkgKHVzZXJpZCkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgKGlkKSc7CiRkYi0+RXhlY3V0ZSgkc3FsKTsKJHNxbCA9ICdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBBREQgRk9SRUlHTiBLRVkgKHRpdGxlKSBSRUZFUkVOQ0VTICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19wcm9wZGVmbiAobmFtZSknOwokZGItPkV4ZWN1dGUoJHNxbCk7CiRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3RlbXBjb2RlIEFERCBGT1JFSUdOIEtFWSAodXNlcmlkKSBSRUZFUkVOQ0VTICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyAoaWQpJzsKJGRiLT5FeGVjdXRlKCRzcWwpOwokc3FsID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IEFERCBGT1JFSUdOIEtFWSAodXNlcmlkKSBSRUZFUkVOQ0VTICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyAoaWQpJzsKJGRiLT5FeGVjdXRlKCRzcWwpOwoKJHVpZCA9IGdldF91c2VyaWQoKTsKJGxvZ2luX3RwbF90eXBlID0gJGxvZ291dF90cGxfdHlwZSA9ICRjaHNldHRpbmdzX3RwbF90eXBlID0gJGZvcmdvdHB3Zm9ybV90cGxfdHlwZSA9ICRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZSA9CiAgICAkZm9yY2VuZXdwd190cGxfdHlwZSA9ICRsb3N0dW5mb3JtX3RwbF90eXBlID0gJGxvc3R1bmNvbmZpcm1fdHBsX3R5cGUgPSAkdmlld3VzZXJfdHBsX3R5cGUgPSAkcmVzZXRzZXNzaW9uX3RwbF90eXBlID0gbnVsbDsKCiRtb2QgPSAkdGhpczsKJGNyZWF0ZV9kZmx0X3RlbXBsYXRlID0gZnVuY3Rpb24oJG5ld190eXBlKSB1c2UgKCYkbW9kLCYkX2ZpeF9uYW1lLCR1aWQpIHsKICAgIHRyeSB7CiAgICAgICAgJHByb3RvdHlwZSA9ICdGRVUgJy4kbmV3X3R5cGUtPmdldF9uYW1lKCk7CiAgICAgICAgJHRwbCA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZTsKICAgICAgICAkdHBsLT5zZXRfbmFtZSgkdHBsOjpnZW5lcmF0ZV91bmlxdWVfbmFtZSgkcHJvdG90eXBlKSk7CiAgICAgICAgJHRwbC0+c2V0X293bmVyKCR1aWQpOwogICAgICAgICR0cGwtPnNldF90eXBlKCRuZXdfdHlwZSk7CiAgICAgICAgJHRwbC0+c2V0X2NvbnRlbnQoJG5ld190eXBlLT5nZXRfZGZsdF9jb250ZW50cygpKTsKICAgICAgICAkdHBsLT5zZXRfdHlwZV9kZmx0KFRSVUUpOyAvLyBGRVUgb25seSBoYWQgb25lIHRlbXBsYXRlIG9mIGVhY2ggdHlwZS4KICAgICAgICAkdHBsLT5zYXZlKCk7CiAgICB9CiAgICBjYXRjaCggXENtc0ludmFsaWREYXRhRXhjZXB0aW9uICRlICkgewogICAgICAgICRsb2dfZXhjZXB0aW9uKCRlKTsKICAgICAgICBhdWRpdCgnJywkbW9kLT5HZXROYW1lKCksJ1VwZ3JhZGUgUHJvYmxlbSAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgfQp9OwoKdHJ5IHsKICAgICRsb2dpbl90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAkbG9naW5fdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgJGxvZ2luX3RwbF90eXBlLT5zZXRfbmFtZSgnbG9naW4gZm9ybScpOwogICAgJGxvZ2luX3RwbF90eXBlLT5zZXRfZGZsdF9mbGFnKFRSVUUpOwogICAgJGxvZ2luX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRsb2dpbl90cGxfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cycpOwogICAgJGxvZ2luX3RwbF90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICRsb2dpbl90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICRsb2dvdXRfdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgJGxvZ291dF90cGxfdHlwZS0+c2V0X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgICAkbG9nb3V0X3RwbF90eXBlLT5zZXRfbmFtZSgnbG9nb3V0IGZvcm0nKTsKICAgICRsb2dvdXRfdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7CiAgICAkbG9nb3V0X3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRsb2dvdXRfdHBsX3R5cGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpyZXNldF9wYWdlX3R5cGVfZGVmYXVsdHMnKTsKICAgICRsb2dvdXRfdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgJGxvZ291dF90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICRjaHNldHRpbmdzX3RwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICRjaHNldHRpbmdzX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICRjaHNldHRpbmdzX3RwbF90eXBlLT5zZXRfbmFtZSgnY2hzZXR0aW5ncyBmb3JtJyk7CiAgICAkY2hzZXR0aW5nc190cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICRjaHNldHRpbmdzX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRjaHNldHRpbmdzX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkY2hzZXR0aW5nc190cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAkY2hzZXR0aW5nc190cGxfdHlwZS0+c2F2ZSgpOwoKICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgJGZvcmdvdHB3Zm9ybV90cGxfdHlwZS0+c2V0X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgICAkZm9yZ290cHdmb3JtX3RwbF90eXBlLT5zZXRfbmFtZSgnZm9yZ290IHBhc3N3b3JkIGZvcm0nKTsKICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7CiAgICAkZm9yZ290cHdmb3JtX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpyZXNldF9wYWdlX3R5cGVfZGVmYXVsdHMnKTsKICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgJGZvcmdvdHB3Zm9ybV90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlLT5zZXRfbmFtZSgnZm9yZ290IHBhc3N3b3JkIGVtYWlsJyk7CiAgICAkZm9yZ290cHdlbWFpbF90cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkZm9yZ290cHdlbWFpbF90cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAkZm9yZ290cHdlbWFpbF90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAkZm9yZ290cHd2ZXJpZnlfdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgJGZvcmdvdHB3dmVyaWZ5X3RwbF90eXBlLT5zZXRfbmFtZSgnZm9yZ290IHBhc3N3b3JkIHZlcmlmeScpOwogICAgJGZvcmdvdHB3dmVyaWZ5X3RwbF90eXBlLT5zZXRfZGZsdF9mbGFnKFRSVUUpOwogICAgJGZvcmdvdHB3dmVyaWZ5X3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cycpOwogICAgJGZvcmdvdHB3dmVyaWZ5X3RwbF90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICRmb3JjZW5ld3B3X3RwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICRmb3JjZW5ld3B3X3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICRmb3JjZW5ld3B3X3RwbF90eXBlLT5zZXRfbmFtZSgnZm9yY2UgbmV3IHBhc3N3b3JkJyk7CiAgICAkZm9yY2VuZXdwd190cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICRmb3JjZW5ld3B3X3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRmb3JjZW5ld3B3X3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkZm9yY2VuZXdwd190cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAkZm9yY2VuZXdwd190cGxfdHlwZS0+c2F2ZSgpOwoKICAgICRsb3N0dW5mb3JtX3RwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICRsb3N0dW5mb3JtX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICRsb3N0dW5mb3JtX3RwbF90eXBlLT5zZXRfbmFtZSgnbG9zdCB1c2VybmFtZSBmb3JtJyk7CiAgICAkbG9zdHVuZm9ybV90cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICRsb3N0dW5mb3JtX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRsb3N0dW5mb3JtX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkbG9zdHVuZm9ybV90cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAkbG9zdHVuZm9ybV90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICRsb3N0dW5jb25maXJtX3RwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICRsb3N0dW5jb25maXJtX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICRsb3N0dW5jb25maXJtX3RwbF90eXBlLT5zZXRfbmFtZSgnbG9zdCB1c2VybmFtZSBjb25maXJtJyk7CiAgICAkbG9zdHVuY29uZmlybV90cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICRsb3N0dW5jb25maXJtX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICRsb3N0dW5jb25maXJtX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkbG9zdHVuY29uZmlybV90cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAkbG9zdHVuY29uZmlybV90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICR2aWV3dXNlcl90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAkdmlld3VzZXJfdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgJHZpZXd1c2VyX3RwbF90eXBlLT5zZXRfbmFtZSgndmlldyB1c2VyJyk7CiAgICAkdmlld3VzZXJfdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7CiAgICAkdmlld3VzZXJfdHBsX3R5cGUtPnNldF9sYW5nX2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpwYWdlX3R5cGVfbGFuZ19jYWxsYmFjaycpOwogICAgJHZpZXd1c2VyX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkdmlld3VzZXJfdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgJHZpZXd1c2VyX3RwbF90eXBlLT5zYXZlKCk7CgogICAgJHJlc2V0c2Vzc2lvbl90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAkcmVzZXRzZXNzaW9uX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICRyZXNldHNlc3Npb25fdHBsX3R5cGUtPnNldF9uYW1lKCdyZXNldCBzZXNzaW9uJyk7CiAgICAkcmVzZXRzZXNzaW9uX3RwbF90eXBlLT5zZXRfZGZsdF9mbGFnKFRSVUUpOwogICAgJHJlc2V0c2Vzc2lvbl90cGxfdHlwZS0+c2V0X2xhbmdfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAkcmVzZXRzZXNzaW9uX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkcmVzZXRzZXNzaW9uX3RwbF90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICRyZXNldHNlc3Npb25fdHBsX3R5cGUtPnNhdmUoKTsKCiAgICAkdmVyaWZ5Zm9ybV90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAkdmVyaWZ5Zm9ybV90cGxfdHlwZS0+c2V0X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgICAkdmVyaWZ5Zm9ybV90cGxfdHlwZS0+c2V0X25hbWUoJ3ZlcmlmeV9mb3JtJyk7CiAgICAkdmVyaWZ5Zm9ybV90cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICR2ZXJpZnlmb3JtX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICR2ZXJpZnlmb3JtX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAkdmVyaWZ5Zm9ybV90cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAkdmVyaWZ5Zm9ybV90cGxfdHlwZS0+c2F2ZSgpOwp9CmNhdGNoKCBcQ21zU1FMRXJyb3JFeGNlcHRpb24gJGUgKSB7CiAgICAkbG9nX2V4Y2VwdGlvbigkZSk7CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdVcGdyYWRlIEVycm9yOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJGxvZ19leGNlcHRpb24oJGUpOwogICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnVXBncmFkZSBFcnJvcjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIHJldHVybiAnRVJST1I6ICcuJGUtPkdldE1lc3NhZ2UoKTsKfQoKLy8gbm93IGNyZWF0ZSB0aGUgdGVtcGxhdGVzIHRoZW1zZWx2ZXMuCiRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgkbG9naW5fdHBsX3R5cGUpOwokY3JlYXRlX2RmbHRfdGVtcGxhdGUoJGxvZ291dF90cGxfdHlwZSk7CiRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgkY2hzZXR0aW5nc190cGxfdHlwZSk7CiRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgkZm9yZ290cHdmb3JtX3RwbF90eXBlKTsKJGNyZWF0ZV9kZmx0X3RlbXBsYXRlKCRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlKTsKJGNyZWF0ZV9kZmx0X3RlbXBsYXRlKCRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZSk7CiRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgkZm9yY2VuZXdwd190cGxfdHlwZSk7CiRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgkbG9zdHVuZm9ybV90cGxfdHlwZSk7CiRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgkbG9zdHVuY29uZmlybV90cGxfdHlwZSk7CiRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgkdmlld3VzZXJfdHBsX3R5cGUpOwokY3JlYXRlX2RmbHRfdGVtcGxhdGUoJHJlc2V0c2Vzc2lvbl90cGxfdHlwZSk7CiRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgkdmVyaWZ5Zm9ybV90cGxfdHlwZSk7CgovLyBwcmVmZXJlbmNlcwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWluX3Bhc3N3b3JkbGVuZ3RoJywgNik7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYXhfcGFzc3dvcmRsZW5ndGgnLCAyMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbmhhbmNlZF9wYXNzd29yZCcsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwd3JlcXVpcmVkY2hhcnMnLCd+QCMkJV4mKj0rXy0oKScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWluX3VzZXJuYW1lbGVuZ3RoJywgNCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtYXhfdXNlcm5hbWVsZW5ndGgnLCA0MCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VyX3Nlc3Npb25fZXhwaXJlcycsIDE4MDApOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY29va2llX2tlZXBhbGl2ZScsMCk7CiRzdHIgPSAneCcuc3Vic3RyKHN0cl9zaHVmZmxlKG1kNSh0aW1lKCkuJGNvbmZpZ1sncm9vdF91cmwnXS5fX0ZJTEVfXykpLDAsNyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjb29raWVuYW1lJywkc3RyKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfZ3JvdXAnLCAtMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXF1aXJlZF9maWVsZF9tYXJrZXInLCAnKicpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVxdWlyZWRfZmllbGRfY29sb3InLCAnYmx1ZScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVxdWlyZV9vbmVncm91cCcsIDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaGlkZGVuX2ZpZWxkX21hcmtlcicsICchJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdoaWRkZW5fZmllbGRfY29sb3InLCAnZ3JlZW4nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhZ2VpZF9mb3Jnb3RwYXNzd2QnLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYWdlaWRfY2hhbmdlc2V0dGluZ3MnLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYWdlaWRfbG9naW4nLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhZ2VpZF9sb2dvdXQnLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhZ2VpZF9hZnRlcnZlcmlmeScsJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfZHVwbGljYXRlX2VtYWlscycsMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VybmFtZV9pc19lbWFpbCcsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYXNzd29yZGZsZGxlbmd0aCcsIDIwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJuYW1lZmxkbGVuZ3RoJywgNDApOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dfcmVwZWF0ZWRfbG9naW5zJywwKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGgnLCdfZmV1c2VycycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZV9leHRlbnNpb25zJywnLmdpZiwucG5nLC5qcGcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbl9zdWJqZWN0JywkdGhpcy0+TGFuZygnZmV1X2V2ZW50X25vdGlmaWNhdGlvbicpKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2V4cGlyZWFnZV9tb250aHMnLDYwKTsKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VfdXNlcnNhbHQnLDEpOwoKLy8gRXZlbnRzCiR0aGlzLT5DcmVhdGVFdmVudCggJ0FmdGVyTG9naW5BdXRoJyApOwokdGhpcy0+Q3JlYXRlRXZlbnQoICdCZWZvcmVMb2dpbicgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Mb2dpbicgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Mb2dpbkZhaWxlZCcgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Mb2dvdXQnICk7CiR0aGlzLT5DcmVhdGVFdmVudCggJ09uRXhwaXJlVXNlcicgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25DcmVhdGVVc2VyJyApOwokdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkRlbGV0ZVVzZXInICk7CiR0aGlzLT5DcmVhdGVFdmVudCggJ09uVXBkYXRlVXNlcicgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25DcmVhdGVHcm91cCcgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25VcGRhdGVHcm91cCcpOwokdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkRlbGV0ZUdyb3VwJyApOwokdGhpcy0+Q3JlYXRlRXZlbnQoICdPblJlZnJlc2hVc2VyJyApOwoKLy8gcGVybWlzc2lvbnMKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBGcm9udEVuZFVzZXJQcm9wcycsJ01vZGlmeSBGcm9udEVuZFVzZXIgUHJvcGVydGllcycpOw==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfbG9nZ2VkaW4iICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19iZWxvbmdzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2Ryb3Bkb3ducyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3RlbXBjb2RlIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfaGlzdG9yeSIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZGVmbiIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3VzZXJzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgovLyB0ZW1wbGF0ZXMKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CgovLyBwcmVmZXJlbmNlcwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKLy8gcGVybWlzc2lvbnMKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBGcm9udEVuZFVzZXJQcm9wcycpOwoKLy8gRkVVc2Vycy1zcGVjaWZpYyBwZXJtaXNzaW9ucyAuLi4gbWF5IG9yIG1heSBub3QgZXhpc3QKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0ZFVSBBZGQgVXNlcnMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0ZFVSBNb2RpZnkgVXNlcnMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0ZFVSBSZW1vdmUgVXNlcnMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0ZFVSBBZGQgR3JvdXBzJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdGRVUgTW9kaWZ5IEdyb3VwcycpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignRkVVIE1vZGlmeSBHcm91cCBBc3NpZ25tZW50cycpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignRkVVIFJlbW92ZSBHcm91cHMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ0ZFVSBNb2RpZnkgRnJvbnRFbmRVc2VyUHJvcHMnKTsKCi8vIEV2ZW50cwokdGhpcy0+UmVtb3ZlRXZlbnQoICdBZnRlckxvZ2luQXV0aCcgKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCAnQmVmb3JlTG9naW4nICk7CiR0aGlzLT5SZW1vdmVFdmVudCggJ09uTG9naW4nICk7CiR0aGlzLT5SZW1vdmVFdmVudCggJ09uTG9naW4nICk7CiR0aGlzLT5SZW1vdmVFdmVudCggJ09uTG9naW5GYWlsZWQnICk7CiR0aGlzLT5SZW1vdmVFdmVudCggJ09uTG9nb3V0JyApOwokdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkV4cGlyZVVzZXInICk7CiR0aGlzLT5SZW1vdmVFdmVudCggJ09uQ3JlYXRlVXNlcicgKTsKJHRoaXMtPlJlbW92ZUV2ZW50KCAnT25EZWxldGVVc2VyJyApOwokdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkNyZWF0ZUdyb3VwJyApOwokdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkRlbGV0ZUdyb3VwJyApOwokdGhpcy0+UmVtb3ZlRXZlbnQoICdPblVwZGF0ZVVzZXInICk7CgokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywnQ29udGVudFBvc3RSZW5kZXInKTsKJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJVcGRhdGVkJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyRGVsZXRlZCcpOw==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZyb250RW5kVXNlcnMgKGMpIDIwMDgtMjAxNCBieSBSb2JlcnQgQ2FtcGJlbGwKIyAgICAgICAgIChjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnKQojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGZyb250ZW5kCiMgIHVzZXJzLCBhbmQgdGhlaXIgbG9naW4gcHJvY2VzcyB3aXRoaW4gYSBDTVMgTWFkZSBTaW1wbGUgcG93ZXJlZAojICB3ZWJzaXRlLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBWaXNpdCB0aGUgQ01TTVMgSG9tZXBhZ2UgYXQ6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAojIGFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQojIGluIGFueSBOb24gR1BMIHZlcnNpb24gb2YgQ01TIE1hZGUgc2ltcGxlLCBvciBpbiBhbnkgdmVyc2lvbiBvZiBDTVMKIyBNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4KIyBzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KI0VORF9MSUNFTlNFCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMycpIDwgMCApIHsKICAgIHJldHVybiAiTWluaW11bSBQSFAgdmVyc2lvbiBvZiA1LjQuMyByZXF1aXJlZCI7Cn0KCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR1aWQgPSBnZXRfdXNlcmlkKCk7CiRtb2QgPSAkdGhpczsKJGNyZWF0ZV9kZmx0X3RlbXBsYXRlID0gZnVuY3Rpb24oJG9sZF90cGxfbmFtZSwkbmV3X3R5cGUpIHVzZSAoJiRtb2QsJHVpZCkgewogICAgJGNvbnRlbnRzID0gJG1vZC0+R2V0VGVtcGxhdGUoJG9sZF90cGxfbmFtZSk7CiAgICBpZiggISRjb250ZW50cyApIHJldHVybjsKICAgICRwcm90b3R5cGUgPSAnRkVVICcuJG5ld190eXBlLT5nZXRfbmFtZSgpOwoKICAgIHRyeSB7CiAgICAgICAgJHRwbCA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZSgpOwogICAgICAgICR0cGwtPnNldF9uYW1lKCR0cGw6OmdlbmVyYXRlX3VuaXF1ZV9uYW1lKCRwcm90b3R5cGUpKTsKICAgICAgICAkdHBsLT5zZXRfb3duZXIoJHVpZCk7CiAgICAgICAgJHRwbC0+c2V0X2NvbnRlbnQoJGNvbnRlbnRzKTsKICAgICAgICAkdHBsLT5zZXRfdHlwZSgkbmV3X3R5cGUpOwogICAgICAgICR0cGwtPnNldF90eXBlX2RmbHQoVFJVRSk7IC8vIEZFVSBvbmx5IGhhZCBvbmUgdGVtcGxhdGUgb2YgZWFjaCB0eXBlLgogICAgICAgICR0cGwtPnNhdmUoKTsKCiAgICAgICAgaWYoICRvbGRfdHBsX25hbWUgKSAkbW9kLT5EZWxldGVUZW1wbGF0ZSgkb2xkX3RwbF9uYW1lKTsKICAgIH0KICAgIGNhdGNoKCBcQ21zSW52YWxpZERhdGFFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgXGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAgICAgYXVkaXQoJycsJG1vZC0+R2V0TmFtZSgpLCdVcGdyYWRlIFByb2JsZW0gJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KfTsKCgpzd2l0Y2goICRvbGR2ZXJzaW9uICkgewpjYXNlICcwLjEuMCc6CmNhc2UgJzAuMS4xJzoKewogICAgLy8gcGVybWlzc2lvbnMKICAgICR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNb2RpZnkgRnJvbnRFbmRVc2VyUHJvcHMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01vZGlmeSBGcm9udEVuZFVzZXIgUHJvcGVydGllcycpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmZXVzZXJzX2ZvcmdvdHBhc3N3b3JkZm9ybScsICR0aGlzLT5kZmx0X2ZvcmdvdHBhc3N3b3JkdGVtcGxhdGUxKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmV1c2Vyc19mb3Jnb3RwYXNzd29yZGVtYWlsZm9ybScsICR0aGlzLT5kZmx0X2ZvcmdvdHBhc3N3b3JkdGVtcGxhdGUyKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmV1c2Vyc19mb3Jnb3RwYXNzd29yZHZlcmlmeWZvcm0nLCAkdGhpcy0+ZGZsdF9mb3Jnb3RwYXNzd29yZHRlbXBsYXRlMyk7CgogICAgLy8gZm9yZ290dGVuIHBhc3N3b3JkIHN0dWZmCiAgICAkZmxkcyA9ICIKCSAgICAgICAgICAgICB1c2VyaWQgSSBLRVksCiAgICAgICAgICAgICAgICAgY29kZSBDKDI1KSwKICAgICAgICAgICAgICAgICBjcmVhdGVkICIuQ01TX0FET0RCX0RUOwogICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdGVtcGNvZGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmbGRzLCAkdGFib3B0YXJyYXkgKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwogICAgLy8gbm90aWNlIG5vIGJyZWFrCn0KCmNhc2UgJzAuMS4yJzoKewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhZ2VpZF9mb3Jnb3RwYXNzd2QnLCAnJyk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncGFnZWlkX2NoYW5nZXNldHRpbmdzJywgJycpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhZ2VpZF9sb2dpbicsJycpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3BhZ2VpZF9sb2dvdXQnLCcnKTsKICAgIC8vIG5vdGljZSBubyBicmVhawp9CgpjYXNlICcwLjEuMyc6CmNhc2UgJzAuMS40JzoKY2FzZSAnMC4xLjUnOgpjYXNlICcwLjEuNic6CnsKICAgIC8vZHJvcGRvd24gc2VsZWN0IG9wdGlvbnMKICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiAgICAkZmxkcyA9ICIKCQkJIG9yZGVyX2lkCQlJLAoJCQkgb3B0aW9uX25hbWUJQyg0MCkgTk9UIE5VTEwsCgkJCSBvcHRpb25fdGV4dAlDKDgwKSBOT1QgTlVMTCwKCQkJIGNvbnRyb2xfbmFtZQlDKDQwKSBOT1QgTlVMTDsKCQkJIjsKICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNxbChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2Ryb3Bkb3ducyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZsZHMsICR0YWJvcHRhcnJheSApOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7CgogICAgLy8gYW5kIGNsZWFudXAgcHJvcGVydHkgbmFtZXMKICAgICRxID0gJ3VwZGF0ZSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gc2V0IG5hbWUgPSBsY2FzZShyZXBsYWNlKG5hbWUsIiAiLCJfIikpJzsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEgKTsKfSAvL2Nhc2UKCmNhc2UgJzAuMS43JzoKewogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZGNvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BkZWZuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1heGxlbmd0aCBJIik7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKfSAvLyBjYXNlCgpjYXNlICcxLjAuMCc6CnsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd19kdXBsaWNhdGVfZW1haWxzJywxKTsKfQoKY2FzZSAnMS4wLjEnOgp7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncGFzc3dvcmRmbGRsZW5ndGgnLCAyMCk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlcm5hbWVmbGRsZW5ndGgnLCAyMCk7Cn0KCmNhc2UgJzEuMC41JzoKY2FzZSAnMS4wLjYnOgp7CiAgICAvLyBFdmVudHMKICAgICR0aGlzLT5DcmVhdGVFdmVudCggJ09uTG9naW4nICk7CiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkxvZ291dCcgKTsKICAgICR0aGlzLT5DcmVhdGVFdmVudCggJ09uRXhwaXJlVXNlcicgKTsKICAgICR0aGlzLT5DcmVhdGVFdmVudCggJ09uQ3JlYXRlVXNlcicgKTsKICAgICR0aGlzLT5DcmVhdGVFdmVudCggJ09uRGVsZXRlVXNlcicgKTsKICAgICR0aGlzLT5DcmVhdGVFdmVudCggJ09uQ3JlYXRlR3JvdXAnICk7CiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkRlbGV0ZUdyb3VwJyApOwoKICAgIC8vIFByZWZlcmVuY2VzCiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnYWxsb3dfcmVwZWF0ZWRfbG9naW5zJywxKTsKCiAgICAvLyBUYWJsZXMKICAgICRmbGRzID0gIgogICAgICAgICB1c2VyaWQgSSBLRVksCgkgICAgIHNlc3Npb25pZCBDKDMyKSwKICAgICAgICAgYWN0aW9uIEMoMzIpLAogICAgICAgICB3aGVuIERUCiAgICAgICAgIjsKICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmxkcywgJHRhYm9wdGFycmF5ICk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKfQoKICBjYXNlICcxLjEuMCc6CiAgICB7CiAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5DaGFuZ2VUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2Ryb3Bkb3ducyIsCgkJCQkJIm9wdGlvbl90ZXh0IEMoMjU1KSBOT1QgTlVMTCIpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKICAgIH0KCiAgY2FzZSAnMS4yLjEnOgogICAgewogICAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoICdPblVwZGF0ZVVzZXInICk7CiAgICB9CgogIGNhc2UgJzEuMi4yJzoKICAgIHsKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLgoJCQkJICAgICAgICJtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IiApOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwogICAgICAkZmxkcyA9ICIKICAgICAgICAgICAgIHVzZXJpZCBJLAoJICAgICBzZXNzaW9uaWQgQygzMiksCiAgICAgICAgICAgICBhY3Rpb24gQygzMiksCiAgICAgICAgICAgICByZWZkYXRlICIuQ01TX0FET0RCX0RULiIsCiAgICAgICAgICAgICBpcGFkZHJlc3MgQygyMCkiOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLgoJCQkJCSJtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IiwKCQkJCQkkZmxkcywgJHRhYm9wdGFycmF5ICk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwogICAgfQoKCiAgY2FzZSAnMS4zJzoKICAgIHsKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZGNvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCIsCgkJCQkgICAgICAibG9zdHVuZmxhZyBJIik7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSk7CgogICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncGFnZWlkX2FmdGVydmVyaWZ5JywnJyk7CiAgICB9CgogIGNhc2UgJzEuMy4xJzoKICAgIHsKICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmaWNhdGlvbl9zdWJqZWN0JywkdGhpcy0+TGFuZygnZmV1X2V2ZW50X25vdGlmaWNhdGlvbicpKTsKICAgICAgJGZuID0gY21zX2pvaW5fcGF0aChfX0RJUl9fLCd0ZW1wbGF0ZXMnLCdvcmlnX25vdGlmaWNhdGlvbl90ZW1wbGF0ZS50cGwnKTsKICAgICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCgl7CgkgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJICAkdGhpcy0+U2V0VGVtcGxhdGUoJ25vdGlmaWNhdGlvbl90ZW1wbGF0ZScsJHRlbXBsYXRlKTsKCX0KICAgIH0KCiAgY2FzZSAnMS4zLjInOgogICAgewogICAgICAkdG1wX25hbWUgPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXNfdG1wJzsKICAgICAgJHJlYWxfbmFtZSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyc7CgogICAgICAvLyAxIENyZWF0ZSB0ZW1wb3JhcnkgdGFibGUKICAgICAgLy91c2VyIHByb3BlcnRpZXMKICAgICAgJGZsZHMgPSAiCgkgICAgICBpZCBJIEtFWSwKICAJICAgICAgdXNlcmlkIEksCiAJICAgICAgdGl0bGUgQygxMDApLAoJICAgICAgZGF0YSBYMgoJICAgICI7CiAgICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTCgkdG1wX25hbWUsJGZsZHMsJHRhYm9wdGFycmF5KTsKICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSggJHNxbGFycmF5ICk7CgogICAgICAvLyAyLiAgQ29weSBhbGwgZGF0YSBmcm9tIGZldXNlcnNfcHJvcGVydGllcyB0byB0ZW1wb3JhcnkgdGFibGUKICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuJHRtcF9uYW1lLicgKGlkLHVzZXJpZCx0aXRsZSxkYXRhKQogICAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGlkLHVzZXJpZCx0aXRsZSxkYXRhIEZST00gJy4kcmVhbF9uYW1lOwogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCiAgICAgIC8vIDMuICBEcm9wIGZldXNlcnNfcHJvcGVydGllcwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMiICk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgIC8vIDQuICBSZW5hbWUgdGFibGUKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPlJlbmFtZVRhYmxlU1FMKCR0bXBfbmFtZSwkcmVhbF9uYW1lKTsKICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgfQoKICBjYXNlICcxLjMuMyc6CiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sJ3RlbXBsYXRlcycsJ29yaWdfdmlld3VzZXJfdGVtcGxhdGUudHBsJyk7CiAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgewoJJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZldXNlcnNfdmlld3VzZXInLCR0ZW1wbGF0ZSk7CiAgICAgIH0KCiAgY2FzZSAnMS40JzoKICBjYXNlICcxLjQuMSc6CiAgY2FzZSAnMS40LjInOgogIGNhc2UgJzEuNC4zJzoKICBjYXNlICcxLjQuNCc6CiAgY2FzZSAnMS41JzoKICAgIHsKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkFsdGVyQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4iLCAicHJvbXB0IEMoMjU1KSBOT1QgTlVMTCIpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICB9CgogIGNhc2UgJzEuNS4xJzoKICBjYXNlICcxLjUuMic6CiAgY2FzZSAnMS41LjMnOgogICAgewogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWx0ZXJDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19sb2dnZWRpbicsICJzZXNzaW9uaWQgQygyNTUpIik7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgIH0KCiAgY2FzZSAnMS41LjQnOgogICAgewogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkY29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4iLAoJCQkJICAgICAgImF0dHJpYnMgQygyNTUpIik7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgIH0KCiAgY2FzZSAnMS42LjUnOgogIGNhc2UgJzEuNi42JzoKICBjYXNlICcxLjYuNyc6CiAgY2FzZSAnMS42LjgnOgogIGNhc2UgJzEuNi45JzoKICBjYXNlICcxLjYuMTAnOgogICAgewogICAgICAkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCAnQ29yZScsICdDb250ZW50UG9zdFJlbmRlcicsIGZhbHNlICk7CiAgICB9CgogIGNhc2UgJzEuNi4xMSc6CiAgY2FzZSAnMS42LjEyJzoKICBjYXNlICcxLjYuMTMnOgogIGNhc2UgJzEuNi4xNCc6CiAgY2FzZSAnMS42LjE1JzoKICBjYXNlICcxLjYuMTYnOgogICAgewogICAgICAkZm4gPSBjbXNfam9pbl9wYXRoKF9fRElSX18sJ3RlbXBsYXRlcycsJ29yaWdfcmVzZXRzZXNzaW9uX3RlbXBsYXRlLnRwbCcpOwogICAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKCXsKCSAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmV1c2Vyc19yZXNldHNlc3Npb24nLCR0ZW1wbGF0ZSk7Cgl9CiAgICB9CgogIGNhc2UgJzEuNy4xMSc6CiAgY2FzZSAnMS44JzoKICBjYXNlICcxLjguMSc6CiAgY2FzZSAnMS44LjInOgogIGNhc2UgJzEuOC4zJzoKICBjYXNlICcxLjguNSc6CiAgY2FzZSAnMS45JzoKICBjYXNlICcxLjkuMSc6CiAgY2FzZSAnMS45LjInOgogICAgewogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkY29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4iLAoJCQkJICAgICAgImZvcmNlX3VuaXF1ZSBJMSIpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICB9CgogIGNhc2UgJzEuMTAnOgogIGNhc2UgJzEuMTAuMSc6CiAgY2FzZSAnMS4xMC4yJzoKICBjYXNlICcxLjEwLjMnOgogICAgewogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkY29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4iLAoJCQkJICAgICAgImVuY3J5cHQgSTEiKTsKICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgfQoKICBjYXNlICcxLjExJzoKICBjYXNlICcxLjExLjEnOgogIGNhc2UgJzEuMTInOgogIGNhc2UgJzEuMTIuMSc6CiAgY2FzZSAnMS4xMi4yJzoKICAgIHsKICAgICAgJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJVcGRhdGVkJyk7CiAgICAgICR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyRGVsZXRlZCcpOwogICAgICAkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdDb3JlJywnTW9kdWxlSW5zdGFsbGVkJyk7CiAgICAgICR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCdNb2R1bGVVbmluc3RhbGxlZCcpOwogICAgfQoKICBjYXNlICcxLjEyLjMnOgogIGNhc2UgJzEuMTIuNCc6CiAgY2FzZSAnMS4xMi41JzoKICBjYXNlICcxLjEyLjYnOgogIGNhc2UgJzEuMTIuNyc6CiAgY2FzZSAnMS4xMi44JzoKICBjYXNlICcxLjEyLjknOgogIGNhc2UgJzEuMTIuMTAnOgogIGNhc2UgJzEuMTIuMTEnOgogIGNhc2UgJzEuMTIuMTInOgogIGNhc2UgJzEuMTIuMTMnOgogICAgewogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkY29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4iLCJlbmNyeXB0IEkxIik7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgIH0KCiAgY2FzZSAnMS4xMi4xNCc6CiAgY2FzZSAnMS4xMi4xNSc6CiAgY2FzZSAnMS4xMi4xNic6CiAgY2FzZSAnMS4xMi4xNyc6CiAgICB7CiAgICAgICR0aGlzLT5DcmVhdGVFdmVudCggJ09uUmVmcmVzaFVzZXInICk7CiAgICB9CiAgfSAvLyBzd2l0Y2gKCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMTYuMicpIDwgMCApCiAgewogICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdpZHhfdXNlcm5hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMnLCd1c2VybmFtZScpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdpZHhfZXhwaXJlcycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycycsJ2V4cGlyZXMnKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnaWR4X3JlZmRhdGUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfaGlzdG9yeScsJ3VzZXJpZCxyZWZkYXRlLGFjdGlvbicpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogIH0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4xOS4xJykgPCAwICkgewogICRzcWxhcnJheSA9ICRkaWN0LT5BZGRjb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZGVmbiIsImV4dHJhIFgiKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKfQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjIxJykgPCAwICkgewogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ2ZldV9pZHhfdXNlcm5hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfYmVsb25ncycsJ2dyb3VwaWQnKTsKICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cn0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4yMS43JykgPCAwICkgewogICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycycsJ25vbnN0ZCBJMScpOwogICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKfQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjIxLjE2JykgPCAwICkgewogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ2ZldV9pZHhfcHJvcHVzZXJ0aXRsZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzJywndXNlcmlkLHRpdGxlJyk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ2ZldV9pZHhfcHJvcHRpdGxlJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMnLCd0aXRsZScpOwogICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4yMy41JykgPCAwICkgewogICAgJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ29yZScsJ0NvbnRlbnRQb3N0UmVuZGVyJyk7Cn0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMjgnKSA8IDAgKSB7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkY29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdXNlcnMiLCJkaXNhYmxlZCBJMSwgc2FsdCBDKDMyKSwgZm9yY2VfbmV3cHcgSTEiKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwoKICAgICR0cGwgPSBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvdGVtcGxhdGVzL29yaWdfZm9yY2VfbmV3cHdfZm9ybS50cGwnKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZm9yY2VfbmV3cHdfdGVtcGxhdGUnLCR0cGwpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjMwJykgPCAwICkgewogICAgLy8gZ29ubmEgdXNlIGlubm9kYiBub3cuCiAgICAkZGIgPSBcY2dlX3V0aWxzOjpnZXRfZGIoKTsKICAgIHRyeSB7CiAgICAgICAgJHRhYmxlcyA9IGFycmF5KCk7ICAvLyBpZ25vcmUgc2VxIHRhYmxlcwogICAgICAgICR0YWJsZXNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMnOwogICAgICAgICR0YWJsZXNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBzJzsKICAgICAgICAkdGFibGVzW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2xvZ2dlZGluJzsKICAgICAgICAkdGFibGVzW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2JlbG9uZ3MnOwogICAgICAgICR0YWJsZXNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4nOwogICAgICAgICR0YWJsZXNbXSA9IGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZHJvcGRvd25zJzsKICAgICAgICAkdGFibGVzW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2dyb3VwcHJvcG1hcCc7CiAgICAgICAgJHRhYmxlc1tdID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzJzsKICAgICAgICAkdGFibGVzW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3RlbXBjb2RlJzsKICAgICAgICAkdGFibGVzW10gPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2hpc3RvcnknOwogICAgICAgICRzcWxfaSA9ICJBTFRFUiBUQUJMRSAlcyBFTkdJTkU9SW5ub0RCIjsKICAgICAgICBmb3JlYWNoKCAkdGFibGVzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRzcWwgPSBzcHJpbnRmKCRzcWxfaSwkb25lKTsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgIH0KCiAgICAgICAgLy8gYWx0ZXIgdGhlIGlwIGFkZHJlc3MgZmllbGQgaW4gdGhlIGhpc3RvcnkgdGFibGUgdG8gYmUgYSBiaXQgbG9uZ2VyCiAgICAgICAgJHNxbCA9ICdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfaGlzdG9yeSBNT0RJRlkgaXBhZGRyZXNzIHZhcmNoYXIoNjQpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CgogICAgICAgICRkYi0+QmVnaW5UcmFucygpOwoKICAgICAgICAvLyBnZXQgYSBsaXN0IG9mIGFsbCBvZiB0aGUgdXNlciBpZHMgdGhhdCBhcmUgaW4gdGhpcyBoaXN0b3J5IHRhYmxlLCBidXQgbm90IGluIHRoZQogICAgICAgIC8vIHVzZXJzIHRhYmxlLgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgQS51c2VyaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfaGlzdG9yeSBBCiAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgQiBPTiBBLnVzZXJpZCA9IEIuaWQKICAgICAgICAgICAgICAgICAgV0hFUkUgQi5pZCBJUyBOVUxMJzsKICAgICAgICAkZGVsX3VzZXJpZHMgPSAkZGItPkdldENvbCgkcXVlcnkpOwogICAgICAgICRkZWxfdXNlcmlkcyA9IGFycmF5X3VuaXF1ZSgkZGVsX3VzZXJpZHMpOwogICAgICAgIGlmKCBjb3VudCgkZGVsX3VzZXJpZHMpICkgewogICAgICAgICAgICAkc3RyID0gaW1wbG9kZSgnLCcsJGRlbF91c2VyaWRzKTsKICAgICAgICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCcsLCcsJywnLCRzdHIpOwogICAgICAgICAgICAkc3RyID0gdHJpbSgkc3RyLCcsJyk7CiAgICAgICAgICAgIGlmKCAkc3RyICkgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IFdIRVJFIHVzZXJpZCBJUyBOVUxMIE9SIHVzZXJpZCBJTiAoJy4kc3RyLicpJzsKICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgYSBsaXN0IG9mIGFsbCBvZiB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgaW4gdGhlIHByb3BkZWZuIHRhYmxlIChjbGVhbiB1cCB0aGUgcHJvcGVydGllcyB0YWJsZSkKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIEEuaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBBCiAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gQiBPTiBBLnRpdGxlID0gQi5uYW1lCiAgICAgICAgICAgICAgICAgIFdIRVJFIEIubmFtZSBJUyBOVUxMJzsKICAgICAgICAkZGVsX3Byb3BpZHMgPSAkZGItPkdldENvbCgkcXVlcnkpOwogICAgICAgIGlmKCBjb3VudCgkZGVsX3Byb3BpZHMpICkgewogICAgICAgICAgICAkc3RyID0gaW1wbG9kZSgnLCcsJGRlbF91c2VyaWRzKTsKICAgICAgICAgICAgaWYoICRzdHIgKSB7CiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMgV0hFUkUgaWQgSU4gKCcuJHN0ci4nKSc7CiAgICAgICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gZ2V0IGEgbGlzdCBvZiBhbGwgb2YgdGhlIHByb3BlcnRpZXMgdGhhdCBhcmUgbm90IGluIHRoZSBncm91cHByb3BtYXAgdGFibGUgKGNsZWFuIHVwIHRoZSBncm91cHByb3BtYXAgdGFibGUpCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBBLm5hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBwcm9wbWFwICBBCiAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gQiBPTiBBLm5hbWUgPSBCLm5hbWUKICAgICAgICAgICAgICAgICAgV0hFUkUgQi5uYW1lIElTIE5VTEwnOwogICAgICAgICRkZWxfZ3JwcHJvcCA9ICRkYi0+R2V0Q29sKCRxdWVyeSk7CiAgICAgICAgaWYoIGNvdW50KCRkZWxfZ3JwcHJvcCkgKSB7CiAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBwcm9wbWFwIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgICAgICAgZm9yKCAkaSA9IDAsICRuID0gY291bnQoJGRlbF9ncnBwcm9wKTsgJGkgPCAkbjsgJGkrKyApIHsKICAgICAgICAgICAgICAgICR0bXAxID0gJGRlbF9ncnBwcm9wWyRpXTsKICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHRtcDEpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJGRiLT5Db21taXRUcmFucygpOwoKICAgICAgICAvLyBnZXQgcmlkIG9mIHRoZSB1c2VycyBzZXEgdGFibGUuCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHZhbCA9ICRkYi0+R2VuSUQoIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnNfc2VxJyk7CiAgICAgICAgICAgICRxdWVyeSA9ICdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgTU9ESUZZIENPTFVNTiBpZCBJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQnOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyBBVVRPX0lOQ1JFTUVOVCA9ID8nOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR2YWwpKTsKICAgICAgICAgICAgJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfdXNlcnNfc2VxIiApOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgLy8gc2lsZW50bHkgaWdub3JlLCBpbmNhc2UgdGhpcyBpcyBhbHJlYWR5IGRvbmUuCiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgcmlkIG9mIHRoZSBncm91cHMgc2VxIHRhYmxlCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHZhbCA9ICRkYi0+R2VuSUQoIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBzX3NlcScpOwogICAgICAgICAgICAkcXVlcnkgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2dyb3VwcyBNT0RJRlkgQ09MVU1OIGlkIElOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgICAgICAgICAkcXVlcnkgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2dyb3VwcyBBVVRPX0lOQ1JFTUVOVCA9ID8nOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR2YWwpKTsKICAgICAgICAgICAgJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZldXNlcnNfZ3JvdXBzX3NlcSIgKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIC8vIHNpbGVudGx5IGlnbm9yZSwgaW5jYXNlIHRoaXMgaXMgYWxyZWFkeSBkb25lLgogICAgICAgIH0KCiAgICAgICAgLy8gZ2V0IHJpZCBvZiB0aGUgcHJvcGVydGllcyBzZXEgdGFibGUKICAgICAgICB0cnkgewogICAgICAgICAgICAkdmFsID0gJGRiLT5HZW5JRCggY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzX3NlcScpOwogICAgICAgICAgICAkcXVlcnkgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMgTU9ESUZZIENPTFVNTiBpZCBJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQnOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzIEFVVE9fSU5DUkVNRU5UID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHZhbCkpOwogICAgICAgICAgICAkZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzX3NlcSIgKTsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19wcm9wZXJ0aWVzIE1PRElGWSBDT0xVTU4gdXNlcmlkIElOVCBOT1QgTlVMTCc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgICAgICAgICAkcXVlcnkgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMgTU9ESUZZIENPTFVNTiB0aXRsZSB2YXJjaGFyKDEwMCkgTk9UIE5VTEwnOwogICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIC8vIHNpbGVudGx5IGlnbm9yZSwgaW5jYXNlIHRoaXMgaXMgYWxyZWFkeSBkb25lLgogICAgICAgIH0KCiAgICAgICAgLy8gc2V0dXAgZm9yZWlnbiBrZXkgcmVsYXRpb25zaGlwcwogICAgICAgICRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2JlbG9uZ3MgQUREIEZPUkVJR04gS0VZICh1c2VyaWQpIFJFRkVSRU5DRVMgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIChpZCknOwogICAgICAgICRkYi0+RXhlY3V0ZSgkc3FsKTsKICAgICAgICAkc3FsID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19sb2dnZWRpbiBBREQgRk9SRUlHTiBLRVkgKHVzZXJpZCkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgKGlkKSc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2JlbG9uZ3MgQUREIEZPUkVJR04gS0VZIChncm91cGlkKSBSRUZFUkVOQ0VTICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19ncm91cHMgKGlkKSc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2Ryb3Bkb3ducyBBREQgRk9SRUlHTiBLRVkgKGNvbnRyb2xfbmFtZSkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gKG5hbWUpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgJHNxbCA9ICdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBwcm9wbWFwIEFERCBGT1JFSUdOIEtFWSAoZ3JvdXBfaWQpIFJFRkVSRU5DRVMgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX2dyb3VwcyAoaWQpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgJHNxbCA9ICdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfZ3JvdXBwcm9wbWFwIEFERCBGT1JFSUdOIEtFWSAobmFtZSkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gKG5hbWUpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgJHNxbCA9ICdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGVydGllcyBBREQgRk9SRUlHTiBLRVkgKHVzZXJpZCkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdXNlcnMgKGlkKSc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgICRzcWwgPSAnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3Byb3BlcnRpZXMgQUREIEZPUkVJR04gS0VZICh0aXRsZSkgUkVGRVJFTkNFUyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfcHJvcGRlZm4gKG5hbWUpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgJHNxbCA9ICdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfdGVtcGNvZGUgQUREIEZPUkVJR04gS0VZICh1c2VyaWQpIFJFRkVSRU5DRVMgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mZXVzZXJzX3VzZXJzIChpZCknOwogICAgICAgICRkYi0+RXhlY3V0ZSgkc3FsKTsKICAgICAgICAkc3FsID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc19oaXN0b3J5IEFERCBGT1JFSUdOIEtFWSAodXNlcmlkKSBSRUZFUkVOQ0VTICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmV1c2Vyc191c2VycyAoaWQpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CgogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgZGllKCRkYi0+c3FsLicgJy4kZGItPkVycm9yTXNnKCkpOwogICAgICAgIGRlYnVnX3RvX2xvZygkZGItPnNxbCk7CiAgICAgICAgZGVidWdfdG9fbG9nKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ1VwZ3JhZGUgRmFpbGVkOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIHJldHVybiAkZS0+R2V0TWVzc2FnZSgpOwogICAgfQp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjMxJykgPCAwICkgewogICAgJGRiID0gXGNnZV91dGlsczo6Z2V0X2RiKCk7CgogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZGNvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3VzZXJzIiwiZm9yY2VfY2hzZXR0aW5ncyBJMSIpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwp9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMzEuMycpIDwgMCApIHsKICAgICRkYiA9IFxjZ2VfdXRpbHM6OmdldF9kYigpOwogICAgJGRiLT5FeGVjdXRlKCdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZldXNlcnNfaGlzdG9yeSBNT0RJRlkgYWN0aW9uIHZhcmNoYXIoMjU1KScpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjAnKSA8IDAgKSB7CiAgICAkbG9naW5fdHBsX3R5cGUgPSAkbG9nb3V0X3RwbF90eXBlID0gJGNoc2V0dGluZ3NfdHBsX3R5cGUgPSAkZm9yZ290cHdmb3JtX3RwbF90eXBlID0gJGZvcmdvdHB3dmVyaWZ5X3RwbF90eXBlID0KICAgICAgICAkZm9yY2VuZXdwd190cGxfdHlwZSA9ICRsb3N0dW5mb3JtX3RwbF90eXBlID0gJGxvc3R1bmNvbmZpcm1fdHBsX3R5cGUgPSAkdmlld3VzZXJfdHBsX3R5cGUgPSAkcmVzZXRzZXNzaW9uX3RwbF90eXBlID0gbnVsbDsKCiAgICB0cnkgewogICAgICAgICRsb2dpbl90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAgICAgJGxvZ2luX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICAgICAkbG9naW5fdHBsX3R5cGUtPnNldF9uYW1lKCdsb2dpbiBmb3JtJyk7CiAgICAgICAgJGxvZ2luX3RwbF90eXBlLT5zZXRfZGZsdF9mbGFnKFRSVUUpOwogICAgICAgICRsb2dpbl90cGxfdHlwZS0+c2V0X2xhbmdfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAgICAgJGxvZ2luX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAgICAgJGxvZ2luX3RwbF90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICAgICAkbG9naW5fdHBsX3R5cGUtPnNhdmUoKTsKCiAgICAgICAgJGxvZ291dF90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAgICAgJGxvZ291dF90cGxfdHlwZS0+c2V0X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgICAgJGxvZ291dF90cGxfdHlwZS0+c2V0X25hbWUoJ2xvZ291dCBmb3JtJyk7CiAgICAgICAgJGxvZ291dF90cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICAgICAkbG9nb3V0X3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICAgICAkbG9nb3V0X3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAgICAgJGxvZ291dF90cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAgICAgJGxvZ291dF90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICAgICAkY2hzZXR0aW5nc190cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAgICAgJGNoc2V0dGluZ3NfdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgICAgICRjaHNldHRpbmdzX3RwbF90eXBlLT5zZXRfbmFtZSgnY2hzZXR0aW5ncyBmb3JtJyk7CiAgICAgICAgJGNoc2V0dGluZ3NfdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7CiAgICAgICAgJGNoc2V0dGluZ3NfdHBsX3R5cGUtPnNldF9sYW5nX2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpwYWdlX3R5cGVfbGFuZ19jYWxsYmFjaycpOwogICAgICAgICRjaHNldHRpbmdzX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAgICAgJGNoc2V0dGluZ3NfdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgICAgICRjaHNldHRpbmdzX3RwbF90eXBlLT5zYXZlKCk7CgogICAgICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUtPnNldF9uYW1lKCdmb3Jnb3QgcGFzc3dvcmQgZm9ybScpOwogICAgICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7CiAgICAgICAgJGZvcmdvdHB3Zm9ybV90cGxfdHlwZS0+c2V0X2xhbmdfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAgICAgJGZvcmdvdHB3Zm9ybV90cGxfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cycpOwogICAgICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgICAgICRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUtPnNhdmUoKTsKCiAgICAgICAgJGZvcmdvdHB3ZW1haWxfdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICAgICAkZm9yZ290cHdlbWFpbF90cGxfdHlwZS0+c2V0X25hbWUoJ2ZvcmdvdCBwYXNzd29yZCBlbWFpbCcpOwogICAgICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlLT5zZXRfZGZsdF9mbGFnKFRSVUUpOwogICAgICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICAgICAkZm9yZ290cHdlbWFpbF90cGxfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cycpOwogICAgICAgICRmb3Jnb3Rwd2VtYWlsX3RwbF90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICAgICAkZm9yZ290cHdlbWFpbF90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICAgICAkZm9yZ290cHd2ZXJpZnlfdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgICAgICRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZS0+c2V0X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgICAgJGZvcmdvdHB3dmVyaWZ5X3RwbF90eXBlLT5zZXRfbmFtZSgnZm9yZ290IHBhc3N3b3JkIHZlcmlmeScpOwogICAgICAgICRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICAgICAkZm9yZ290cHd2ZXJpZnlfdHBsX3R5cGUtPnNldF9sYW5nX2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpwYWdlX3R5cGVfbGFuZ19jYWxsYmFjaycpOwogICAgICAgICRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cycpOwogICAgICAgICRmb3Jnb3Rwd3ZlcmlmeV90cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAgICAgJGZvcmdvdHB3dmVyaWZ5X3RwbF90eXBlLT5zYXZlKCk7CgogICAgICAgICRmb3JjZW5ld3B3X3RwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICAgICAkZm9yY2VuZXdwd190cGxfdHlwZS0+c2V0X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgICAgJGZvcmNlbmV3cHdfdHBsX3R5cGUtPnNldF9uYW1lKCdmb3JjZSBuZXcgcGFzc3dvcmQnKTsKICAgICAgICAkZm9yY2VuZXdwd190cGxfdHlwZS0+c2V0X2RmbHRfZmxhZyhUUlVFKTsKICAgICAgICAkZm9yY2VuZXdwd190cGxfdHlwZS0+c2V0X2xhbmdfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAgICAgJGZvcmNlbmV3cHdfdHBsX3R5cGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpyZXNldF9wYWdlX3R5cGVfZGVmYXVsdHMnKTsKICAgICAgICAkZm9yY2VuZXdwd190cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAgICAgJGZvcmNlbmV3cHdfdHBsX3R5cGUtPnNhdmUoKTsKCiAgICAgICAgJGxvc3R1bmZvcm1fdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgICAgICRsb3N0dW5mb3JtX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICAgICAkbG9zdHVuZm9ybV90cGxfdHlwZS0+c2V0X25hbWUoJ2xvc3QgdXNlcm5hbWUgZm9ybScpOwogICAgICAgICRsb3N0dW5mb3JtX3RwbF90eXBlLT5zZXRfZGZsdF9mbGFnKFRSVUUpOwogICAgICAgICRsb3N0dW5mb3JtX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICAgICAkbG9zdHVuZm9ybV90cGxfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cycpOwogICAgICAgICRsb3N0dW5mb3JtX3RwbF90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICAgICAkbG9zdHVuZm9ybV90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICAgICAkbG9zdHVuY29uZmlybV90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAgICAgJGxvc3R1bmNvbmZpcm1fdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCR0aGlzLT5HZXROYW1lKCkpOwogICAgICAgICRsb3N0dW5jb25maXJtX3RwbF90eXBlLT5zZXRfbmFtZSgnbG9zdCB1c2VybmFtZSBjb25maXJtJyk7CiAgICAgICAgJGxvc3R1bmNvbmZpcm1fdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7CiAgICAgICAgJGxvc3R1bmNvbmZpcm1fdHBsX3R5cGUtPnNldF9sYW5nX2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpwYWdlX3R5cGVfbGFuZ19jYWxsYmFjaycpOwogICAgICAgICRsb3N0dW5jb25maXJtX3RwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cmVzZXRfcGFnZV90eXBlX2RlZmF1bHRzJyk7CiAgICAgICAgJGxvc3R1bmNvbmZpcm1fdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgICAgICRsb3N0dW5jb25maXJtX3RwbF90eXBlLT5zYXZlKCk7CgogICAgICAgICR2aWV3dXNlcl90cGxfdHlwZSA9IG5ldyBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlKCk7CiAgICAgICAgJHZpZXd1c2VyX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICAgICAkdmlld3VzZXJfdHBsX3R5cGUtPnNldF9uYW1lKCd2aWV3IHVzZXInKTsKICAgICAgICAkdmlld3VzZXJfdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7CiAgICAgICAgJHZpZXd1c2VyX3RwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnRnJvbnRFbmRVc2Vyczo6cGFnZV90eXBlX2xhbmdfY2FsbGJhY2snKTsKICAgICAgICAkdmlld3VzZXJfdHBsX3R5cGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpyZXNldF9wYWdlX3R5cGVfZGVmYXVsdHMnKTsKICAgICAgICAkdmlld3VzZXJfdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgICAgICR2aWV3dXNlcl90cGxfdHlwZS0+c2F2ZSgpOwoKICAgICAgICAkcmVzZXRzZXNzaW9uX3RwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICAgICAkcmVzZXRzZXNzaW9uX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICAgICAkcmVzZXRzZXNzaW9uX3RwbF90eXBlLT5zZXRfbmFtZSgncmVzZXQgc2Vzc2lvbicpOwogICAgICAgICRyZXNldHNlc3Npb25fdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoVFJVRSk7CiAgICAgICAgJHJlc2V0c2Vzc2lvbl90cGxfdHlwZS0+c2V0X2xhbmdfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnBhZ2VfdHlwZV9sYW5nX2NhbGxiYWNrJyk7CiAgICAgICAgJHJlc2V0c2Vzc2lvbl90cGxfdHlwZS0+c2V0X2NvbnRlbnRfY2FsbGJhY2soJ0Zyb250RW5kVXNlcnM6OnJlc2V0X3BhZ2VfdHlwZV9kZWZhdWx0cycpOwogICAgICAgICRyZXNldHNlc3Npb25fdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgICAgICRyZXNldHNlc3Npb25fdHBsX3R5cGUtPnNhdmUoKTsKICAgIH0KICAgIGNhdGNoKCBcQ21zU1FMRXJyb3JFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgXGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnVXBncmFkZSBFcnJvcjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgIFxjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwogICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ1VwZ3JhZGUgRXJyb3I6ICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgcmV0dXJuICdFUlJPUjogJy4kZS0+R2V0TWVzc2FnZSgpOwogICAgfQoKICAgIC8vIG5vdyBjcmVhdGUgdGhlIHRlbXBsYXRlcyB0aGVtc2VsdmVzLgogICAgJGNyZWF0ZV9kZmx0X3RlbXBsYXRlKCdmZXVzZXJzX2xvZ2luZm9ybScsJGxvZ2luX3RwbF90eXBlKTsKICAgICRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgnZmV1c2Vyc19sb2dvdXRmb3JtJywkbG9nb3V0X3RwbF90eXBlKTsKICAgICRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgnZmV1c2Vyc19jaGFuZ2VzZXR0aW5nc2Zvcm0nLCRjaHNldHRpbmdzX3RwbF90eXBlKTsKICAgICRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgnZmV1c2Vyc19mb3Jnb3RwYXNzd29yZGZvcm0nLCRmb3Jnb3Rwd2Zvcm1fdHBsX3R5cGUpOwogICAgJGNyZWF0ZV9kZmx0X3RlbXBsYXRlKCdmZXVzZXJzX2ZvcmdvdHBhc3N3b3JkZW1haWxmb3JtJywkZm9yZ290cHdlbWFpbF90cGxfdHlwZSk7CiAgICAkY3JlYXRlX2RmbHRfdGVtcGxhdGUoJ2ZldXNlcnNfZm9yZ290cGFzc3dvcmR2ZXJpZnlmb3JtJywkZm9yZ290cHd2ZXJpZnlfdHBsX3R5cGUpOwogICAgJGNyZWF0ZV9kZmx0X3RlbXBsYXRlKCdmb3JjZW53cHdfdGVtcGxhdGUnLCRmb3JjZW5ld3B3X3RwbF90eXBlKTsKICAgICRjcmVhdGVfZGZsdF90ZW1wbGF0ZSgnZmV1c2Vyc19sb3N0dW5mb3JtJywkbG9zdHVuZm9ybV90cGxfdHlwZSk7CiAgICAkY3JlYXRlX2RmbHRfdGVtcGxhdGUoJ2ZldXNlcnNfbG9zdHVuZm9ybV9jb25maXJtJywkbG9zdHVuY29uZmlybV90cGxfdHlwZSk7CiAgICAkY3JlYXRlX2RmbHRfdGVtcGxhdGUoJ2ZldXNlcnNfdmlld3VzZXInLCR2aWV3dXNlcl90cGxfdHlwZSk7CiAgICAkY3JlYXRlX2RmbHRfdGVtcGxhdGUoJ2ZldXNlcnNfcmVzZXRzZXNzaW9uJywkcmVzZXRzZXNzaW9uX3RwbF90eXBlKTsKfQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjAuMScpIDwgMCApIHsKICAgICR0aGlzLT5DcmVhdGVFdmVudCggJ09uTG9naW5GYWlsZWQnICk7Cn0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMi4yJykgPCAwICkgewogICAgJGRiID0gXGNtc191dGlsczo6Z2V0X2RiKCk7CgogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZGNvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mZXVzZXJzX3VzZXJzIiwibXVzdF92YWxpZGF0ZSBJMSIpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwp9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzIuMi4wLjEnKSA8IDAgKSB7CiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoICdCZWZvcmVMb2dpbicgKTsKfQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjIuMC4yJykgPCAwICkgewogICAgJGNyZWF0ZV9kZmx0X3RlbXBsYXRlID0gZnVuY3Rpb24oJG5ld190eXBlKSB1c2UgKCYkbW9kLCR1aWQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkcHJvdG90eXBlID0gJ0ZFVSAnLiRuZXdfdHlwZS0+Z2V0X25hbWUoKTsKICAgICAgICAgICAgJHRwbCA9IG5ldyBDbXNMYXlvdXRUZW1wbGF0ZTsKICAgICAgICAgICAgJHRwbC0+c2V0X25hbWUoJHRwbDo6Z2VuZXJhdGVfdW5pcXVlX25hbWUoJHByb3RvdHlwZSkpOwogICAgICAgICAgICAkdHBsLT5zZXRfb3duZXIoJHVpZCk7CiAgICAgICAgICAgICR0cGwtPnNldF90eXBlKCRuZXdfdHlwZSk7CiAgICAgICAgICAgICR0cGwtPnNldF9jb250ZW50KCRuZXdfdHlwZS0+Z2V0X2RmbHRfY29udGVudHMoKSk7CiAgICAgICAgICAgICR0cGwtPnNldF90eXBlX2RmbHQoVFJVRSk7IC8vIEZFVSBvbmx5IGhhZCBvbmUgdGVtcGxhdGUgb2YgZWFjaCB0eXBlLgogICAgICAgICAgICAkdHBsLT5zYXZlKCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcQ21zSW52YWxpZERhdGFFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRsb2dfZXhjZXB0aW9uKCRlKTsKICAgICAgICAgICAgYXVkaXQoJycsJG1vZC0+R2V0TmFtZSgpLCdVcGdyYWRlIFByb2JsZW0gJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9OwoKICAgICR2ZXJpZnlmb3JtX3RwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICR2ZXJpZnlmb3JtX3RwbF90eXBlLT5zZXRfb3JpZ2luYXRvcigkdGhpcy0+R2V0TmFtZSgpKTsKICAgICR2ZXJpZnlmb3JtX3RwbF90eXBlLT5zZXRfbmFtZSgndmVyaWZ5X2Zvcm0nKTsKICAgICR2ZXJpZnlmb3JtX3RwbF90eXBlLT5zZXRfZGZsdF9mbGFnKFRSVUUpOwogICAgJHZlcmlmeWZvcm1fdHBsX3R5cGUtPnNldF9sYW5nX2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpwYWdlX3R5cGVfbGFuZ19jYWxsYmFjaycpOwogICAgJHZlcmlmeWZvcm1fdHBsX3R5cGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdGcm9udEVuZFVzZXJzOjpyZXNldF9wYWdlX3R5cGVfZGVmYXVsdHMnKTsKICAgICR2ZXJpZnlmb3JtX3RwbF90eXBlLT5yZXNldF9jb250ZW50X3RvX2ZhY3RvcnkoKTsKICAgICR2ZXJpZnlmb3JtX3RwbF90eXBlLT5zYXZlKCk7CgogICAgJGNyZWF0ZV9kZmx0X3RlbXBsYXRlKCR2ZXJpZnlmb3JtX3RwbF90eXBlKTsKfQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjIuMC43JykgPCAwICkgewogICAgJHRoaXMtPkNyZWF0ZUV2ZW50KCAnQWZ0ZXJMb2dpbkF1dGgnICk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IEZyb250RW5kVXNlcnMKdmVyc2lvbiA9IDIuMi4wLjYKZGVzY3JpcHRpb24gPSAKYXV0aG9yID0gY2FsZ3V5MTAwMAphdXRob3JlbWFpbCA9IGNhbGd1eTEwMDBAaG90bWFpbC5jb20KbWluY21zdmVyc2lvbiA9IDIuMS4zCmxhenlsb2FkYWRtaW4gPSAxCmxhenlsb2FkZnJvbnRlbmQgPSAwCltkZXBlbmRzXQpDR0V4dGVuc2lvbnMgPSAxLjUzLjE1CkNHU2ltcGxlU21hcnR5ID0gMi4xLjUK]]></data>
	</file>
	<file>
	  <filename>/phpdoc.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+CjxwaHBkb2M+CiAgPHRpdGxlPjwhW0NEQVRBW0Zyb250RW5kVXNlcnMgZm9yICNjbXNtcyBieSBjYWxndXkxMDAwXV0+PC90aXRsZT4KICA8cGFyc2VyPgogICAgPHRhcmdldD4vdG1wL0Zyb250RW5kVXNlcnMueDwvdGFyZ2V0PgogIDwvcGFyc2VyPgogIDx0cmFuc2Zvcm1lcj4KICAgIDx0YXJnZXQ+ZG9jcy9hcGlkb2M8L3RhcmdldD4KICA8L3RyYW5zZm9ybWVyPgogIDxmaWxlcz4KICAgIDxmaWxlPkZyb250RW5kVXNlcnMubW9kdWxlLnBocDwvZmlsZT4KICAgIDxmaWxlPmxpYi9jbGFzcy5mZXVfdXNlcl9xdWVyeS5waHA8L2ZpbGU+CiAgICA8ZmlsZT5saWIvY2xhc3MuZmV1X3VzZXJfcXVlcnlfcmVzdWx0c2V0LnBocDwvZmlsZT4KICA8L2ZpbGVzPgo8L3BocGRvYz4K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/addgroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9OjwvaDM+Cgp7aWYgaXNzZXQoJG1lc3NhZ2UpIH0KICB7aWYgaXNzZXQoJGVycm9yKSB9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Key9pZn0KCnskc3RhcnRmb3JtfQp7aWYgaXNzZXQoJGhpZGRlbil9CjxkaXY+eyRoaWRkZW59PC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZ3JvdXBuYW1lfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2dyb3VwbmFtZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZ3JvdXBkZXNjfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2dyb3VwZGVzY308L3A+CjwvZGl2PgoKe2lmICRwcm9wY291bnQgPiAwfQo8YnIvPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPnskbmFtZXRleHR9PC90aD4KICAgICAgPHRoPnskcHJvbXB0dGV4dH08L3RoPgogICAgICA8dGg+eyR0eXBldGV4dH08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ2VuY3J5cHRlZCcpfTwvdGg+CiAgICAgIDx0aD57JGZpZWxkc3RhdHVzdGV4dH08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCAkcHJvcHMgYXMgJHByb3BlfQogICAge2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KICAgIDx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CiAgICAgIDx0ZD57JHByb3BlLT5oaWRkZW59eyRwcm9wZS0+bmFtZX08L3RkPgogICAgICA8dGQ+eyRwcm9wZS0+cHJvbXB0fTwvdGQ+CiAgICAgIDx0ZD57JHByb3BlLT50eXBlfTwvdGQ+CiAgICAgIDx0ZD57aWYgJHByb3BlLT5lbmNyeXB0ZWR9PHNwYW4gaW5mbz0ieyRtb2QtPkxhbmcoJ2luZm9fZW5jcnlwdGVkJyl9IiBzdHlsZT0iY29sb3I6IHJlZDsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij57JG1vZC0+TGFuZygneWVzJyl9PC9zcGFuPnsvaWZ9PC90ZD4KICAgICAgPHRkPnskcHJvcGUtPnJlcXVpcmVkfTwvdGQ+CiAgICAgIDx0ZD4KICAgICAgICB7aWYgaXNzZXQoJHByb3BlLT5tb3ZldXBfaWR4KX0KICAgICAgICAgIDxidXR0b24gbmFtZT0ieyRhY3Rpb25pZH1tb3ZldXAiIHRpdGxlPSJ7JG1vZC0+TGFuZygnbW92ZV91cCcpfSIgdmFsdWU9InskcHJvcGUtPm1vdmV1cF9pZHh9Ij57JGltZ191cH08L2J1dHRvbj4KICAgICAgICB7L2lmfQogICAgICA8L3RkPgogICAgICA8dGQ+CiAgICAgICAge2lmIGlzc2V0KCRwcm9wZS0+bW92ZWRvd25faWR4KX0KICAgICAgICAgIDxidXR0b24gbmFtZT0ieyRhY3Rpb25pZH1tb3ZlZG93biIgdGl0bGU9InskbW9kLT5MYW5nKCdtb3ZlX2Rvd24nKX0iIHZhbHVlPSJ7JHByb3BlLT5tb3ZlZG93bl9pZHh9Ij57JGltZ19kb3dufTwvYnV0dG9uPgogICAgICAgIHsvaWZ9CiAgICAgIDwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgo8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/addprop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4Ke2lmIGlzc2V0KCRtZXNzYWdlKSB9CiAge2lmIGlzc2V0KCRlcnJvcikgfQogICAgPHA+PGZvbnQgY29sb3I9InJlZCI+eyRtZXNzYWdlfTwvZm9udD48L3A+CiAge2Vsc2V9CiAgICA8cD57JG1lc3NhZ2V9PC9wPgogIHsvaWZ9CnsvaWZ9Cnskc3RhcnRmb3JtfQo8ZGl2Pnskb3JpZ190eXBlfTwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICA8cCBjbGFzcz0iZ3JpZF80Ij57JHByb21wdF9uYW1lfTo8L3A+CiAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JGlucHV0X25hbWV9PC9wPgogICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICAgPHAgY2xhc3M9ImdyaWRfNCI+eyRwcm9tcHRfcHJvbXB0fTo8L3A+CiAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JGlucHV0X3Byb21wdH08L3A+CiAgICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICA8cCBjbGFzcz0iZ3JpZF80Ij57JHByb21wdF90eXBlfTo8L3A+CiAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JGlucHV0X3R5cGV9PC9wPgogICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KICA8L2Rpdj4KICB7aWYgaXNzZXQoJGZpZWxkcyl9CiAge2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09J29uZWZsZCd9CiAgPGRpdiBjbGFzcz0iY19mdWxsIj4KICAgIDxwIGNsYXNzPSJncmlkXzQiPnskb25lZmxkWzBdfTo8L3A+CiAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JG9uZWZsZFsxXX08L3A+CiAgICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgogIDwvZGl2PgogIHsvZm9yZWFjaH0KICB7L2lmfQp7aWYgaXNzZXQoJGlucHV0X2ZvcmNlX3VuaXF1ZSkgJiYgJGRlZm4udHlwZSAhPSA2fQogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICA8cCBjbGFzcz0iZ3JpZF80Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZvcmNlX3VuaXF1ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JGlucHV0X2ZvcmNlX3VuaXF1ZX08L3A+CiAgICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgogIDwvZGl2Pgp7L2lmfQp7aWYgJGRlZm4udHlwZSAhPSAyICYmICRkZWZuLnR5cGUgIT0gNn0KICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICAgPHAgY2xhc3M9ImdyaWRfNCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbmNyeXB0Jyl9OjwvcD4KICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+eyRpbnB1dF9lbmNyeXB0fTxwPnskbW9kLT5MYW5nKCdpbmZvX2VuY3J5cHQnKX08L3A+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgogIDwvZGl2Pgp7L2lmfQogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JGhpZGRlbnxkZWZhdWx0OicnfXskc3VibWl0fXskY2FuY2VsfTwvcD4KICAgIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CiAgPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/adminprefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQp7JHN0YXJ0Zm9ybX0KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdnZW5lcmFsX3NldHRpbmdzJyl9OjwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdhdXRoX21vZHVsZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWF1dGhfbW9kdWxlIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGF1dGhfbW9kdWxlcyBzZWxlY3RlZD0kYXV0aF9tb2R1bGV9CiAgICAgIDwvc2VsZWN0PgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX2F1dGhfbW9kdWxlJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hdXRvX2NyZWF0ZV91bmtub3duJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPSdhdXRvX2NyZWF0ZV91bmtub3duJyBzZWxlY3RlZD0kYXV0b19jcmVhdGVfdW5rbm93bn0KICAgICAgPGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fYXV0b19jcmVhdGVfdW5rbm93bicpfQogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2FsbG93X3JlcGVhdGVkX2xvZ2luc306PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hbGxvd19yZXBlYXRlZF9sb2dpbnN9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZXhwaXJlYWdlJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZXhwaXJlYWdlfSZuYnNwOyh7JG1vZC0+TGFuZygnbW9udGhzJyl9KTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3JhbmRvbXVzZXJuYW1lJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmFuZG9tdXNlcm5hbWV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2ZldXNlcnNfc3BlY2lmaWNfcGVybWlzc2lvbnN9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZmV1c2Vyc19zcGVjaWZpY19wZXJtaXNzaW9uc308YnIvPnskaW5mb19mZXVzZXJzX3NwZWNpZmljX3Blcm1pc3Npb25zfTwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdzZXNzaW9uX3NldHRpbmdzJyl9OjwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3Nlc3Npb250aW1lb3V0fTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3Nlc3Npb250aW1lb3V0fQogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3Nlc3Npb250aW1lb3V0Jyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9leHBpcmV1c2Vyc19pbnRlcnZhbCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZXhwaXJldXNlcnNfaW50ZXJ2YWwiIHZhbHVlPSJ7JGV4cGlyZXVzZXJzX2ludGVydmFsfSIgc2l6ZT0iNCIgbWF4bGVuZ3RoPSI0Ii8+CiAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZXhwaXJldXNlcnNfaW50ZXJ2YWwnKX0KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZvcmNlbG9nb3V0X3RpbWVzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1mb3JjZWxvZ291dF90aW1lcyIgc2l6ZT0iNDAiIG1heGxlbmd0aD0iMjU1IiB2YWx1ZT0ieyRmb3JjZWxvZ291dF90aW1lc30iLz4KICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19mb3JjZWxvZ291dF90aW1lcycpfQogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Zm9yY2Vsb2dvdXRfc2Vzc2lvbmFnZSIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI1IiB2YWx1ZT0ieyRmb3JjZWxvZ291dF9zZXNzaW9uYWdlfSIvPgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX2ZvcmNlbG9nb3V0X3Nlc3Npb25hZ2UnKX0KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9wZXJ0eV9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pbWFnZV9kZXN0aW5hdGlvbl9wYXRofTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2ltYWdlX2Rlc3RpbmF0aW9uX3BhdGh9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2FsbG93ZWRfaW1hZ2VfZXh0ZW5zaW9uc306PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hbGxvd2VkX2ltYWdlX2V4dGVuc2lvbnN9PC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0PgogIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ25vdGlmaWNhdGlvbl9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9ub3RpZmljYXRpb25zfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X25vdGlmaWNhdGlvbnN9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X25vdGlmaWNhdGlvbl9hZGRyZXNzfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X25vdGlmaWNhdGlvbl9hZGRyZXNzfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9ub3RpZmljYXRpb25fc3ViamVjdH06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9ub3RpZmljYXRpb25fc3ViamVjdH08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfbm90aWZpY2F0aW9uX3RlbXBsYXRlfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X25vdGlmaWNhdGlvbl90ZW1wbGF0ZX08L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygncGFnZXR5cGVfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3BhZ2V0eXBlX2dyb3VwcycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXBhZ2V0eXBlX2dyb3Vwc1tdIiBtdWx0aXBsZT0ibXVsdGlwbGUiIHNpemU9IjUiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kYWxsX2dyb3VwcyBzZWxlY3RlZD0kcGFnZXR5cGVfZ3JvdXBzfQogICAgICA8L3NlbGVjdD4KICAgICAgPGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fcGFnZXR5cGVfZ3JvdXBzJyl9CiAgICA8L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+Cgp7aWYgaXNzZXQoJGRhdGFfbnVtcmVzZXRyZWNvcmRzKX0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPGhyIHdpZHRoPSI1MCUiIGFsaWduPSJsZWZ0Ii8+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfbnVtcmVzZXRyZWNvcmRzfTwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGF0YV9udW1yZXNldHJlY29yZHN9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlbW92ZTF3ZWVrfXskaW5wdXRfcmVtb3ZlMW1vbnRofXskaW5wdXRfcmVtb3ZlYWxsfTwvcD4KICA8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW58ZGVmYXVsdDonJ317JHN1Ym1pdH17JGNhbmNlbH08L3A+CjwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admintasks.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9PGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbWVzc2FnZX08L2Rpdj57L2lmfQoKeyogQSBmb3JtIChzaW1wbGUgYnV0dG9uKSBmb3IgZXhwb3J0aW5nIHVzZXJzIHRvIGNzdiAqfQp7JHN0YXJ0Zm9ybX17JGlucHV0X2hpZGRlbn0KCjxmaWVsZHNldD4KPGxlZ2VuZD57JGxlZ2VuZF91c2VyaGlzdG9yeW1haW50ZW5hbmNlfTwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZXhwb3J0dXNlcmhpc3Rvcnl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2V4cG9ydHVzZXJoaXN0b3J5fSZuYnNwO3skYnV0dG9uX2V4cG9ydHVzZXJoaXN0b3J5fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9jbGVhcnVzZXJoaXN0b3J5fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9jbGVhcnVzZXJoaXN0b3J5fSZuYnNwO3skYnV0dG9uX2NsZWFydXNlcmhpc3Rvcnl9PC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KeyRlbmRmb3JtfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_authtab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19zdGRfYXV0aF9zZXR0aW5ncycpfTwvZGl2Pgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygnYXV0aF9zZXR0aW5ncycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfcmVxdWlyZW9uZWdyb3VwJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPXJlcXVpcmVfb25lZ3JvdXAgc2VsZWN0ZWQ9JHJlcXVpcmVfb25lZ3JvdXB9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZmx0Z3JvdXAnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1kZWZhdWx0X2dyb3VwIj4KICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGdyb3VwbGlzdCBzZWxlY3RlZD0kZGVmYXVsdF9ncm91cH0KICAgICAgPC9zZWxlY3Q+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9zdXBwb3J0X2xvc3R1bicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1zdXBwb3J0X2xvc3R1biBzZWxlY3RlZD0kc3VwcG9ydF9sb3N0dW59CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX3N1cHBvcnRfbG9zdHVuJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hbGxvd19jaGFuZ2V1c2VybmFtZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1hbGxvd19jaGFuZ2V1c2VybmFtZSBzZWxlY3RlZD0kYWxsb3dfY2hhbmdldXNlcm5hbWV9CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2FsbG93X2NoYW5nZXVzZXJuYW1lJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9zdXBwb3J0X2xvc3RwdycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1zdXBwb3J0X2xvc3RwdyBzZWxlY3RlZD0kc3VwcG9ydF9sb3N0cHd9CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX3N1cHBvcnRfbG9zdHB3Jyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9wd2ZsZGxlbicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cHdmbGRsZW4iIHZhbHVlPSJ7JHB3ZmxkbGVufSIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIi8+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9taW5wd2xlbicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bWlucHdsZW4iIHZhbHVlPSJ7JG1pbnB3bGVufSIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIi8+CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCcpfQogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbWF4cHdsZW4nKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1heHB3bGVuIiB2YWx1ZT0ieyRtYXhwd2xlbn0iIHNpemU9IjIiIG1heGxlbmd0aD0iMiIvPgogICAgICA8YnIvPgogICAgICB7JG1vZC0+TGFuZygnd2FybmluZ19lZmZlY3RzZmllbGRsZW5ndGgnKX0KICAgIDwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lbmhhbmNlZHB3Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWVuaGFuY2VkcHcgc2VsZWN0ZWQ9JGVuaGFuY2VkcHd9CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2VuaGFuY2VkcHcnKX0KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3B3cmVxdWlyZWRjaGFycycpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cHdyZXF1aXJlZGNoYXJzIiB2YWx1ZT0ieyRwd3JlcXVpcmVkY2hhcnN9IiBtYXhsZW5ndGg9IjQwIi8+CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX3B3cmVxdWlyZWRjaGFycycpfQogICAgPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X3VuZmxkbGVuJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH11bmZsZGxlbiIgdmFsdWU9InskdW5mbGRsZW59IiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiLz4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X21pbnVubGVuJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1taW51bmxlbiIgdmFsdWU9InskbWludW5sZW59IiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiLz4KICAgICAgPGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ3dhcm5pbmdfZWZmZWN0c2ZpZWxkbGVuZ3RoJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9tYXh1bmxlbicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9bWF4dW5sZW4iIHZhbHVlPSJ7JG1heHVubGVufSIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIi8+CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCd3YXJuaW5nX2VmZmVjdHNmaWVsZGxlbmd0aCcpfQogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY29va2llbmFtZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y29va2llbmFtZSIgdmFsdWU9InskeGNvb2tpZW5hbWV8ZGVmYXVsdDonJ30iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjUwIi8+CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2Nvb2tpZW5hbWUnKX0KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2Nvb2tpZWtlZXBhbGl2ZScpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1jb29raWVfa2VlcGFsaXZlIHNlbGVjdGVkPSRjb29raWVfa2VlcGFsaXZlfQogICAgICA8YnIvPgogICAgICB7JG1vZC0+TGFuZygnaW5mb19jb29raWVfa2VlcGFsaXZlJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF91c2VybmFtZV9pc19lbWFpbCcpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT11c2VybmFtZV9pc19lbWFpbCBzZWxlY3RlZD0kdXNlcm5hbWVfaXNfZW1haWx9CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX3VzZXJuYW1lX2lzX2VtYWlsJyl9CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hbGxvd19kdXBsaWNhdGVfZW1haWxzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWFsbG93X2R1cGxpY2F0ZV9lbWFpbHMgc2VsZWN0ZWQ9JGFsbG93X2R1cGxpY2F0ZV9lbWFpbHN9CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2FsbG93X2R1cGxpY2F0ZV9lbWFpbHMnKX0KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2FsbG93X2R1cGxpY2F0ZV9yZW1pbmRlcnMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9YWxsb3dfZHVwbGljYXRlX3JlbWluZGVycyBzZWxlY3RlZD0kYWxsb3dfZHVwbGljYXRlX3JlbWluZGVyc30KICAgICAgPGJyLz4KICAgICAgeyRtb2QtPkxhbmcoJ2luZm9fYWxsb3dfZHVwbGljYXRlX3JlbWluZGVycycpfQogICAgPC9wPgogIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdkaXNwbGF5X3NldHRpbmdzJyl9PC9sZWdlbmQ+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9zaWduaW5fYnV0dG9uJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zaWduaW5fYnV0dG9uIiB2YWx1ZT0ieyRzaWduaW5fYnV0dG9ufSIgc2l6ZT0iMTUiIG1heGxlbmd0aD0iMTUiLz4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncmVxdWlyZWRmaWVsZG1hcmtlcicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cmVxdWlyZWRfZmllbGRfbWFya2VyIiB2YWx1ZT0ieyRyZXF1aXJlZF9maWVsZF9tYXJrZXJ9IiBzaXplPSIyIiBtYXhsZW5ndGg9IjIiLz4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncmVxdWlyZWRmaWVsZGNvbG9yJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1yZXF1aXJlZF9maWVsZF9jb2xvciIgdmFsdWU9InskcmVxdWlyZWRfZmllbGRfY29sb3J9IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzZWN1cmVmaWVsZG1hcmtlcicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9c2VjdXJlX2ZpZWxkX21hcmtlciIgdmFsdWU9Inskc2VjdXJlX2ZpZWxkX21hcmtlcn0iIHNpemU9IjIiIG1heGxlbmd0aD0iMiIvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzZWN1cmVmaWVsZGNvbG9yJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zZWN1cmVfZmllbGRfY29sb3IiIHZhbHVlPSJ7JHNlY3VyZV9maWVsZF9jb2xvcn0iIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIi8+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2hpZGRlbmZpZWxkbWFya2VyJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1oaWRkZW5fZmllbGRfbWFya2VyIiB2YWx1ZT0ieyRoaWRkZW5fZmllbGRfbWFya2VyfSIgc2l6ZT0iMiIgbWF4bGVuZ3RoPSIyIi8+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2hpZGRlbmZpZWxkY29sb3InKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWhpZGRlbl9maWVsZF9jb2xvciIgdmFsdWU9InskaGlkZGVuX2ZpZWxkX2NvbG9yfSIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTAiLz4KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4KCntpZiBpc3NldCgkZWNvbW1fb3JkZXJjYW5jZWxsZWQpfQo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygnZWNvbW1lcmNlX3NldHRpbmdzJyl9OjwvbGVnZW5kPgogIDxwIGNsYXNzPSJwYWdlb3ZlcmZsb3ciPnskbW9kLT5MYW5nKCdpbmZvX3BhaWRyZWdfc2V0dGluZ3MnKX08L3A+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9lY29tbV9wYWlkcmVnaXN0cmF0aW9uJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbiI+CiAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kZWNvbW1fcGFpZHJlZ2lzdHJhdGlvbn0KICAgICAgPC9zZWxlY3Q+CiAgICAgIDxici8+CiAgICAgIHskbW9kLT5MYW5nKCdpbmZvX2Vjb21tX3BhaWRyZWdpc3RyYXRpb24nKX0KICAgIDwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hY3Rpb25fb3JkZXJjYW5jZWxsZWQnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1lY29tbV9vcmRlcmNhbmNlbGxlZCI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZWNvbW1lcmNlX2FjdGlvbnMgc2VsZWN0ZWQ9JGVjb21tX29yZGVyY2FuY2VsbGVkfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hY3Rpb25fb3JkZXJkZWxldGVkJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9ZWNvbW1fb3JkZXJkZWxldGVkIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRlY29tbWVyY2VfYWN0aW9ucyBzZWxlY3RlZD0kZWNvbW1fb3JkZXJkZWxldGVkfQogICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4Key9pZn0KCjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygncmVkaXJlY3Rpb25fc2V0dGluZ3MnKX06PC9sZWdlbmQ+CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19zdGFyJyl9PC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ZvcmdvdHB3X3BhZ2UnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cGFnZWlkZm9yZ290cGFzc3dkIiB2YWx1ZT0ieyRwYWdlaWRmb3Jnb3RwYXNzd2R9IiBzaXplPSI4MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9jaGFuZ2VzZXR0aW5nc19wYWdlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXBhZ2VpZF9jaGFuZ2VzZXR0aW5ncyIgdmFsdWU9InskcGFnZWlkX2NoYW5nZXNldHRpbmdzfSIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfbG9naW5fcGFnZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1wYWdlaWRfbG9naW4iIHZhbHVlPSJ7JHBhZ2VpZF9sb2dpbn0iIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2xvZ291dF9wYWdlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXBhZ2VpZF9sb2dvdXQiIHZhbHVlPSJ7JHBhZ2VpZF9sb2dvdXR9IiBzaXplPSI4MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF92ZXJpZnlfcGFnZScpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1wYWdlaWRfb252ZXJpZnkiIHZhbHVlPSJ7JHBhZ2VpZF9vbnZlcmlmeX0iIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2FmdGVyX3ZlcmlmeV9jb2RlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXBhZ2VpZF9hZnRlcnZlcmlmeSIgdmFsdWU9InskcGFnZWlkX2FmdGVydmVyaWZ5fSIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWZ0ZXJfY2hhbmdlX3NldHRpbmdzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXBhZ2VpZF9hZnRlcmNoYW5nZXNldHRpbmdzIiB2YWx1ZT0ieyRwYWdlaWRfYWZ0ZXJjaGFuZ2VzZXR0aW5nc30iIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIvPgogIDwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+Cgp7aWYgaXNzZXQoJHB3c2FsdCl9CjxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdhZHZhbmNlZF9zZXR0aW5ncycpfTwvbGVnZW5kPgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfcHdzYWx0Jyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1wd3NhbHQiIHZhbHVlPSJ7JHB3c2FsdH0iIHNpemU9IjUiIG1heGxlbmd0aD0iNSIge2lmICR0b3RhbF91c2VyX2NvdW50IGd0IDB9cmVhZG9ubHk9InJlYWRvbmx5InsvaWZ9Lz4KICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19wd3NhbHQnKX0KICAgIDwvcD4KICA8L2Rpdj4KPC9maWVsZHNldD4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvcD4KPC9kaXY+Cgp7JGZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_bulk_setexpiry.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdoZHJfYnVsa19zZXRleHBpcnknKX08L2gzPgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRtb2QtPkxhbmcoJ2luZm9fYnVsa19zZXRleHBpcnknKX08L2Rpdj4KCntmb3JtX3N0YXJ0IGpvYj0kam9iIHVpZHM9JHVpZHN9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZXhwaXJlcycpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9InskYWN0aW9uaWR8Y2F0OidleHBpcmVzJ30iIHN0YXJ0X3llYXI9Ii0xMCIgZW5kX3llYXI9IjIwMzgiIHRpbWU9IntzdHJ0b3RpbWUoJys1IHllYXJzJyl9In0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_bulk_setpasswd.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdoZHJfYnVsa19zZXRwYXNzd29yZCcpfTwvaDM+CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19idWxrX3NldHBhc3N3b3JkJyl9PC9kaXY+Cgp7Zm9ybV9zdGFydCBqb2I9JGpvYiB1aWRzPSR1aWRzfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Bhc3N3b3JkJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InskYWN0aW9uaWR9cGFzc3dvcmQiLz48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3JlcGVhdHBhc3N3b3JkJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InskYWN0aW9uaWR9cmVwZWF0cGFzc3dvcmQiLz48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_deleteprop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdoZHJfZGVsZXRlcHJvcCcpfTo8L2gzPgo8ZGl2IGNsYXNzPSJ3YXJuaW5nIj57JG1vZC0+TGFuZygnd2Fybl9kZWxldGVwcm9wJyl9PC9kaXY+Cgo8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JGRlZm4ucHJvbXB0fSA8ZW0+KHskZGVmbi5uYW1lfSk8L2VtPjwvbGVnZW5kPgogIDxwPlR5cGU6IHskZmllbGR0eXBlc1skZGVmbi50eXBlXX08L3A+CjwvZmllbGRzZXQ+Cgp7JGZvcm1zdGFydH0KICA8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfY29uZmlybV9kZWxldGVwcm9wJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgPHNlbGVjdCBpZD0iZmV1X2NvbmZpcm0iIG5hbWU9InskYWN0aW9uaWR9ZmV1X2NvbmZpcm0iPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMCI+eyRtb2QtPkxhbmcoJ25vJyl9PC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxIj57JG1vZC0+TGFuZygneWVzJyl9PC9vcHRpb24+CiAgICAgICA8L3NlbGVjdD4KICAgIDwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImZldV9zdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICAgIDwvcD4KICA8L2Rpdj4KCnskZm9ybWVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edituser.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICR1c2VyLT5pZH0KPGgzPnskbW9kLT5MYW5nKCdlZGl0dXNlcicpfTwvaDM+CntlbHNlfQo8aDM+eyRtb2QtPkxhbmcoJ2FkZHVzZXInKX08L2gzPgp7L2lmfQoKeyogcGFzc3dvcmQgaXMgcmVhZG9ubHkgZm9yIG5vbiBzdGFuZGFyZCBhY2NvdW50cywgYnV0IHJlcXVpcmVkIGZvciBuZXcsIHN0YW5kYXJkIGFjY291bnRzICp9CnskcHdyZWFkb25seT0nJ30Ke2lmICR1c2VyLT5ub25zdGR9eyRwd3JlYWRvbmx5PSdyZWFkb25seSd9ey9pZn0KeyRwd3JlcXVpcmVkPScnfQp7aWYgISRwd3JlYWRvbmx5ICYmICR1c2VyLT5pZCA8IDF9eyRwd3JlcXVpcmVkPSdyZXF1aXJlZCd9ey9pZn0KCntmb3JtX3N0YXJ0IHVzZXJfaWQ9JHVzZXItPmlkfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnbmV4dCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CiAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgPGxhYmVsIGNsYXNzPSJncmlkXzQgdGV4dC1yaWdodCI+eyRwcm9tcHRfdXNlcm5hbWV9OjwvbGFiZWw+CiAgIDxwIGNsYXNzPSJncmlkXzgiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXVzZXJuYW1lIiB2YWx1ZT0ieyR1c2VyLT5uZXdfdXNlcm5hbWV9IiBzaXplPSJ7JHVuZmxkbGVufSIgbWF4bGVuZ3RoPSJ7JG1heF91bmZsZGxlbn0iIHJlcXVpcmVkLz4KICAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgPGxhYmVsIGNsYXNzPSJncmlkXzQgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ3Bhc3N3b3JkJyl9OjwvbGFiZWw+CiAgIDxwIGNsYXNzPSJncmlkXzgiPgogICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ieyRhY3Rpb25pZH1wYXNzd29yZCIgdmFsdWU9InskdXNlci0+bmV3X3Bhc3N3b3JkfSIgc2l6ZT0ieyRwd2ZsZGxlbn0iIG1heGxlbmd0aD0ieyRtYXhfcHdmbGRsZW59IiB7JHB3cmVhZG9ubHl9eyRwd3JlcXVpcmVkfS8+CiAgICAge2lmICR1c2VyLT5pZCA+IDB9eyRtb2QtPkxhbmcoJ2luZm9fYWRtaW5fcGFzc3dvcmQnKX17L2lmfQogICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICA8bGFiZWwgY2xhc3M9ImdyaWRfNCB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygncmVwZWF0cGFzc3dvcmQnKX06PC9sYWJlbD4KICAgPHAgY2xhc3M9ImdyaWRfOCI+CiAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJ7JGFjdGlvbmlkfXJlcGVhdHBhc3N3b3JkIiB2YWx1ZT0ieyR1c2VyLT5yZXBlYXRfcGFzc3dvcmR9IiBzaXplPSJ7JHB3ZmxkbGVufSIgbWF4bGVuZ3RoPSJ7JG1heF9wd2ZsZGxlbn0iIHskcHdyZWFkb25seX17JHB3cmVxdWlyZWR9Lz4KICAgICB7aWYgJHVzZXItPmlkID4gMH17JG1vZC0+TGFuZygnaW5mb19hZG1pbl9yZXBlYXRwYXNzd29yZCcpfXsvaWZ9CiAgIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgIDxsYWJlbCBjbGFzcz0iZ3JpZF80IHRleHQtcmlnaHQiPjxzcGFuIHN0eWxlPSJjb2xvcjogcmVkOyI+ISE8L3NwYW4+Jm5ic3A7IHskbW9kLT5MYW5nKCdwcm9tcHRfZGlzYWJsZWQnKX06PC9sYWJlbD4KICAgPHAgY2xhc3M9ImdyaWRfOCI+CiAgICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1kaXNhYmxlZCBzZWxlY3RlZD0kdXNlci0+aXNfZGlzYWJsZWR9CiAgIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgIDxsYWJlbCBjbGFzcz0iZ3JpZF80IHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfZm9yY2VfY2hzZXR0aW5ncycpfTo8L2xhYmVsPgogICA8cCBjbGFzcz0iZ3JpZF84Ij4KICAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWZvcmNlX2Noc2V0dGluZ3Mgc2VsZWN0ZWQ9JHVzZXItPmZvcmNlX2NoYW5nZV9zZXR0aW5nc30KICAgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgPGxhYmVsIGNsYXNzPSJncmlkXzQgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9mb3JjZV9uZXdwdycpfTo8L2xhYmVsPgogICA8cCBjbGFzcz0iZ3JpZF84Ij4KICAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWZvcmNlX25ld3B3IHNlbGVjdGVkPSR1c2VyLT5mb3JjZV9wYXNzd29yZF9jaGFuZ2V9CiAgIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgIDxsYWJlbCBjbGFzcz0iZ3JpZF80IHRleHQtcmlnaHQiPjxzcGFuIHN0eWxlPSJjb2xvcjogb3JhbmdlOyI+Kio8L3NwYW4+Jm5ic3A7IHskbW9kLT5MYW5nKCdwcm9tcHRfZm9yY2VfcmV2YWxpZGF0ZScpfTo8L2xhYmVsPgogICA8cCBjbGFzcz0iZ3JpZF84Ij4KICAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPW11c3RfdmFsaWRhdGUgc2VsZWN0ZWQ9JHVzZXItPm11c3RfdmFsaWRhdGV9CiAgICAgeyRjb2RlPSRtb2QtPkdldFVzZXJUZW1wQ29kZSgkdXNlci0+aWQpfQogICAgIHtpZiAkY29kZX08c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiPnskbW9kLT5MYW5nKCdpbmZvX3ZlcmlmeWVtYWlsX3NlbnQnKX17L2lmfQogICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICA8bGFiZWwgY2xhc3M9ImdyaWRfNCB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnZXhwaXJlcycpfTo8L2xhYmVsPgogICA8cCBjbGFzcz0iZ3JpZF84Ij4KICAgICB7aHRtbF9zZWxlY3RfZGF0ZSBwcmVmaXg9InskYWN0aW9uaWR9ZXhwaXJlcyIgdGltZT0ieyR1c2VyLT5leHBpcmVzfSIgc3RhcnRfeWVhcj0yMDAwIGVuZF95ZWFyPTIwMzd9CiAgIDwvcD4KPC9kaXY+Cgp7aWYgJGdyb3Vwc30KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdpZCcpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnZGVzY3JpcHRpb24nKX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj48L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCAkZ3JvdXBzIGFzICRncm91cH0KICAgIHskY2hlY2tlZD0wfQogICAge2lmICR1c2VyLT5pZCA+IDAgJiYgJHVzZXItPm1lbWJlcm9mKCRncm91cC5pZCl9CiAgICAgIHskY2hlY2tlZD0xfQogICAge2Vsc2VpZiAkZGVmYXVsdF9ncm91cCA9PSAkZ3JvdXAuaWR9CiAgICAgIHskY2hlY2tlZD0xfQogICAgey9pZn0KICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgogICAgICAgPHRkPnskZ3JvdXAuaWR9PC90ZD4KICAgICAgIDx0ZD57JGdyb3VwLmdyb3VwbmFtZX08L3RkPgogICAgICAgPHRkPnskZ3JvdXAuZ3JvdXBkZXNjfTwvdGQ+CiAgICAgICA8dGQ+CiAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9bWVtYmVyb2ZbXSIgdmFsdWU9InskZ3JvdXAuaWR9IiB7aWYgJGNoZWNrZWR9Y2hlY2tlZHsvaWZ9Lz4KICAgICAgIDwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgp7L2lmfQp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edituser2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICR1c2VyLT5pZCA+IDAgfQo8aDM+eyRtb2QtPkxhbmcoJ2VkaXR1c2VyJyl9IHskdXNlci0+dXNlcm5hbWV9IC8geyR1c2VyLT5pZH08L2gzPgp7ZWxzZX0KPGgzPnskbW9kLT5MYW5nKCdhZGR1c2VyJyl9PC9oMz4Key9pZn0KCntmb3JtX3N0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1iYWNrIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2JhY2snKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CiAgPC9wPgo8L2Rpdj4KCntmb3JlYWNoICRmaWVsZHMgYXMgJGZpZWxkfQogIHskZmxkaWQ9ImZsZF97JGZpZWxkLT5uYW1lfSJ9CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0iY29udF97JGZpZWxkLT5uYW1lfSI+CiAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48bGFiZWwge2lmICRmaWVsZC0+Y29sb3J9c3R5bGU9ImNvbG9yOiB7JGZpZWxkLT5jb2xvcn0iey9pZn0+eyRmaWVsZC0+bWFya2VyfXskZmllbGQtPnByb21wdH06PC9sYWJlbD48L3A+CiAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAge2lmICRmaWVsZC0+dHlwZSA9PSAwfQogICAgICAgIHsqIHRleHQgZmllbGQgKn0KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ieyRmbGRpZH0iIG5hbWU9InskYWN0aW9uaWR9cHJvcF97JGZpZWxkLT5uYW1lfSIgdmFsdWU9InskZmllbGQtPnZhbHVlfSIgc2l6ZT0ieyRmaWVsZC0+c2l6ZX0iIG1heGxlbj0ieyRmaWVsZC0+bWF4bGVufSIvPgogICAgIHtlbHNlaWYgJGZpZWxkLT50eXBlID09IDF9CiAgICAgICAgeyogY2hlY2tib3ggKn0KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9cHJvcF97JGZpZWxkLT5uYW1lfSIgdmFsdWU9IjAiLz4KCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InskZmxkaWR9IiBuYW1lPSJ7JGFjdGlvbmlkfXByb3BfeyRmaWVsZC0+bmFtZX0iIHZhbHVlPSIxIiB7aWYgJGZpZWxkLT52YWx1ZX1jaGVja2Vkey9pZn0vPgogICAgIHtlbHNlaWYgJGZpZWxkLT50eXBlID09IDJ9CiAgICAgICAgeyogZW1haWwgKn0KCTxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9InskZmxkaWR9IiBuYW1lPSJ7JGFjdGlvbmlkfXByb3BfeyRmaWVsZC0+bmFtZX0iIHZhbHVlPSJ7JGZpZWxkLT52YWx1ZX0iIHNpemU9InskZmllbGQtPnNpemV9IiBtYXhsZW49InskZmllbGQtPm1heGxlbn0iLz4KICAgICB7ZWxzZWlmICRmaWVsZC0+dHlwZSA9PSAzfQogICAgICAgIHsqIHRleHRhcmVhICp9CiAgICAgICAge2NnZV90ZXh0YXJlYSBpZD0kZmxkaWQgbmFtZT0ieyRhY3Rpb25pZH1wcm9wX3skZmllbGQtPm5hbWV9IiB2YWx1ZT0kZmllbGQtPnZhbHVlIHd5c2l3eWc9JGZpZWxkLT53eXNpd3lnfQogICAgIHtlbHNlaWYgJGZpZWxkLT50eXBlID09IDR9CiAgICAgICAgeyogZHJvcGRvd24gKn0KCTxzZWxlY3QgaWQ9InskZmxkaWR9IiBuYW1lPSJ7JGFjdGlvbmlkfXByb3BfeyRmaWVsZC0+bmFtZX0iPgoJICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkLT5vcHRpb25zIHNlbGVjdGVkPSRmaWVsZC0+dmFsdWV9Cgk8L3NlbGVjdD4KICAgICB7ZWxzZWlmICRmaWVsZC0+dHlwZSA9PSA1fQogICAgICAgIHsqIG11bHRpc2VsZWN0ICp9Cgl7JHRtcD1jb3VudCgkZmllbGQtPm9wdGlvbnMpfXtpZiAkdG1wID4gOH17JHRtcD04fXsvaWZ9Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfXByb3BfeyRmaWVsZC0+bmFtZX0iIHZhbHVlPSIiLz4KCTxzZWxlY3QgaWQ9InskZmxkaWR9IiBuYW1lPSJ7JGFjdGlvbmlkfXByb3BfeyRmaWVsZC0+bmFtZX1bXSIgc2l6ZT0ieyR0bXB9IiBtdWx0aXBsZT4KCSAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRmaWVsZC0+b3B0aW9ucyBzZWxlY3RlZD0kZmllbGQtPnZhbHVlfTxici8+Cgk8L3NlbGVjdD4KICAgICB7ZWxzZWlmICRmaWVsZC0+dHlwZSA9PSA2fQogICAgICAgIHsqIGltYWdlICp9Cgl7JHRtcD0kZmllbGQtPmltYWdlX3VybH0KCXtpZiAkdG1wfQoJICAgPGltZyBzcmM9InskdG1wfSIgd2lkdGg9IjEwMCIgYWx0PSJ7JGZpZWxkLT52YWx1ZX0iLz4KICAgICAgICAgICA8bGFiZWw+CgkgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ieyRhY3Rpb25pZH1wcm9wZGVsX3skZmllbGQtPm5hbWV9IiB2YWx1ZT0iMSIvPgoJICAgICB7JG1vZC0+TGFuZygncHJvbXB0X2NsZWFyJyl9CgkgICA8L2xhYmVsPgoJICAgPGJyLz4KCXsvaWZ9Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfXByb3BfeyRmaWVsZC0+bmFtZX0iIHZhbHVlPSIqKkZJTEUqKiIvPgoJPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9cHJvcF97JGZpZWxkLT5uYW1lfSIvPgogICAgIHtlbHNlaWYgJGZpZWxkLT50eXBlID09IDd9CiAgICAgICAgeyogcmFkaW9idXR0b25zICp9Cgl7Zm9yZWFjaCAkZmllbGQtPm9wdGlvbnMgYXMgJGtleSA9PiAkdmFsfQoJPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieyRhY3Rpb25pZH1wcm9wX3skZmllbGQtPm5hbWV9IiB2YWx1ZT0ieyRrZXl9IiB7aWYgJGtleSA9PSAkZmllbGQtPnZhbHVlfWNoZWNrZWR7L2lmfS8+IHskdmFsfTwvbGFiZWw+Cgl7L2ZvcmVhY2h9CiAgICAge2Vsc2VpZiAkZmllbGQtPnR5cGUgPT0gOH0KICAgICAgICB7KiBkYXRlICp9Cgl7JHRtcD0ieyRhY3Rpb25pZH1wcm9wX3skZmllbGQtPm5hbWV9In0KCXtodG1sX3NlbGVjdF9kYXRlIHByZWZpeD0kdG1wIHRpbWU9JGZpZWxkLT52YWx1ZSBzdGFydF95ZWFyPTE5MDAgZW5kX3llYXI9MjAzNn0KICAgICB7L2lmfQogICAgIDwvcD57KiAucGFnZWlucHV0ICp9CiAgPC9kaXY+CnsvZm9yZWFjaH0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWJhY2siIHZhbHVlPSJ7JG1vZC0+TGFuZygnYmFjaycpfSIgZm9ybW5vdmFsaWRhdGUvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8L3A+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import_users.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0dXNlcnMnKX08L2gzPgoKPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2ltcG9ydF9mb3JtYXQnKX08L2Rpdj4KCntjZ2VfaGVscGhhbmRsZXJ9CnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZWxldGVfdXNlcnMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWRlbGV0ZV91c2VycyI+CiAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kb3B0aW9ucy5kZWxldGVfdXNlcnN9CiAgICA8L3NlbGVjdD4KICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9faW1wb3J0X2RlbGV0ZV91c2VycycpfQogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2RlbGltaXRlcicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1kZWxpbWl0ZXIiIHZhbHVlPSJ7JG9wdGlvbnMuZGVsaW1pdGVyfSIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIxIi8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygncHJvbXB0X2ltcG9ydGZpbGVuYW1lJyl9OiZuYnNwO3tjZ2VfaGVscHRhZyBrZXk9J2ltcG9ydF9mb3JtYXQnfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ7JGFjdGlvbmlkfWZpbGUiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQoKPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgp7Y2dlX2hlbHBjb250ZW50IGtleT0naW1wb3J0X2Zvcm1hdCcgdGV4dD0kbW9kLT5MYW5nKCdpbmZvX2ltcG9ydHVzZXJzZmlsZWZvcm1hdDInKX0KPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import_users2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0dXNlcnMnKX08L2gzPgoKe2Ntc19qcXVlcnl9Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBwcm9ncmVzc19tYXggPSAxMDA7CmZ1bmN0aW9uIGltcG9ydF9wcm9ncmVzc19tYXgodmFsKSB7CiAgcHJvZ3Jlc3NfbWF4ID0gcGFyc2VJbnQodmFsKTsKICBpZiggcHJvZ3Jlc3NfbWF4IDwgMSApIHByb2dyZXNzX21heCA9IDE7CiAgcHJvZ3Jlc3NfdmFsID0gMDsKICAkKCcjcHJvZ3Jlc3MnKS53aWR0aCgwKTsKfQpmdW5jdGlvbiBpbXBvcnRfcHJvZ3Jlc3Nfc2V0KG4pIHsKICBuID0gcGFyc2VJbnQobik7CiAgaWYoIG4gPCAxICkgbiA9IDE7CiAgdmFyIHYgPSBNYXRoLnJvdW5kKG4gLyBwcm9ncmVzc19tYXggKiAxMDAuMCk7CiAgJCgnI3Byb2dyZXNzJykud2lkdGgodisnJScpLmh0bWwodisnJScpOwp9CmZ1bmN0aW9uIGltcG9ydF9zdGF0dXMobXNnKSB7CiAgJCgnI3N0YXR1c19hcmVhJykuYXBwZW5kKCc8cD4nK21zZysnPC9wPicpOwp9CmZ1bmN0aW9uIGltcG9ydF93YXJuaW5nKG1zZykgewogICQoJyNzdGF0dXNfYXJlYScpLmFwcGVuZCgnPHAgY2xhc3M9ImltcG9ydF93YXJuaW5nIj4nK21zZysnPC9wPicpOwp9CmZ1bmN0aW9uIGltcG9ydF9lcnJvcihtc2cpIHsKICAkKCcjc3RhdHVzX2FyZWEnKS5hcHBlbmQoJzxwIGNsYXNzPSJpbXBvcnRfZXJyb3IiPicrbXNnKyc8L3A+Jyk7Cn0KZnVuY3Rpb24gaW1wb3J0X2ZpbmlzaCgpIHsKICBhbGVydCgnYWxsIGRvbmUnKTsKICAkKCcjZmluaXNoX2FyZWEnKS5zaG93KCdzbG93Jyk7Cn0KPC9zY3JpcHQ+Cgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojbWV0ZXIgewogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogIGNvbG9yOiBncmF5OwogIGhlaWdodDogMmVtOwogIG1hcmdpbi1ib3R0b206IDJlbTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KI3Byb2dyZXNzIHsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdzogaGlkZGVuOwogIGhlaWdodDogMTAwJTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAgY3lhbjsKICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyOwogIGxpbmUtaGVpZ2h0OiAyZW07Cn0KI3N0YXR1c19hcmVhID4gcCB7CiAgZm9udC1zaXplOiAxMXB4OwogIGxpbmUtaGVpZ2h0OiAxLjFlbTsKfQojc3RhdHVzX2FyZWEgPiBwLmltcG9ydF93YXJuaW5nIHsKICBiYWNrZ3JvdW5kOiAjZmFmNmQ0OwogIGJvcmRlcjogMXB4IHNvbGlkICNlNmMyNmU7Cn0KI3N0YXR1c19hcmVhID4gcC5pbXBvcnRfZXJyb3IgewogIGJhY2tncm91bmQ6ICNmMmQ0Y2U7CiAgYm9yZGVyOiAxcHggc29saWQgI2FlNDMyZTsKfQojZmluaXNoX2FyZWEgewogIG1hcmdpbi10b3A6IDFlbTsKICBtYXJnaW4tYm90dG9tOiAxZW07Cn0KPC9zdHlsZT4KCjxkaXYgaWQ9Im1ldGVyIj4KICA8c3BhbiBpZD0icHJvZ3Jlc3MiPjwvc3Bhbj4KPC9kaXY+Cgo8ZGl2IGlkPSJzdGF0dXNfYXJlYSI+PC9kaXY+Cgo8ZGl2IGlkPSJmaW5pc2hfYXJlYSIgY2xhc3M9InBhZ2VvdmVyZmxvdyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICA8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGEgaHJlZj0ieyRyZXR1cm5fdXJsfSI+eyRtb2QtPkxhbmcoJ3Byb21wdF9yZXR1cm4nKX08L2E+CiAgPC9kaXY+CjwvZGl2Pgo8aWZyYW1lIGlkPSJpbXBvcnRfaWZyYW1lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiIHNyYz0ieyRpZnJhbWVfc3JjfSI+PC9pZnJhbWU+]]></data>
	</file>
	<file>
	  <filename>/templates/edituserprops.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0aXRsZX0Ke2lmIGlzc2V0KCRtZXNzYWdlKSB9CiAge2lmIGlzc2V0KCRlcnJvcikgfQogICAgPHA+PGZvbnQgY29sb3I9InJlZCI+eyRtZXNzYWdlfTwvZm9udD48L3A+CiAge2Vsc2V9CiAgICA8cD57JG1lc3NhZ2V9PC9wPgogIHsvaWZ9CnsvaWZ9Cnskc3RhcnRmb3JtfQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3Byb3BuYW1lfTwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcHJvcG5hbWV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3Byb3B2YWx1ZX08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3Byb3B2YWx1ZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVucGFyYW1zfXskc3VibWl0fTwvcD4KICA8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmIGlzc2V0KCRtZXNzYWdlKX08cD57JG1lc3NhZ2V9PC9wPnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/forgotpw_templateform.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxwPnskcHJvbXB0X3RlbXBsYXRlMX08L3A+CnskaW5wdXRfdGVtcGxhdGUxfQo8YnIvPgo8cD57JHByb21wdF90ZW1wbGF0ZTJ9PC9wPgp7JGlucHV0X3RlbXBsYXRlMn0KPGJyLz4Ke2lmIGlzc2V0KCRwcm9tcHRfdGVtcGxhdGUzKX0KPHA+eyRwcm9tcHRfdGVtcGxhdGUzfTwvcD4KeyRpbnB1dF90ZW1wbGF0ZTN9Cjxici8+CnsvaWZ9Cnskc3VibWl0fXskZGVmYXVsdHN9CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/grouplist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CntpZiAkbnByb3BzID09IDB9CiAgPGRpdiBjbGFzcz0icmVkIGNlbnRlciI+eyRtb2QtPkxhbmcoJ2Vycm9yX25vcHJvcGVydGllcycpfTwvZGl2Pgp7ZWxzZX0KICB7aWYgIWlzc2V0KCRpdGVtY291bnQpIHx8ICRpdGVtY291bnQgPT0gMH0KICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj4wJm5ic3A7eyRncm91cHNmb3VuZH08L2Rpdj4KICB7L2lmfQogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICA8ZGl2IGNsYXNzPSJncmlkXzgiIHN0eWxlPSJtYXJnaW4tbGVmdDogMDsiPgogICAgICB7aWYgJHByb3Bjb3VudCA+IDB9eyRhZGRncm91cGxpbmt8ZGVmYXVsdDonJ30mbmJzcDt7L2lmfQogICAgICB7aWYgaXNzZXQoJGl0ZW1jb3VudCkgJiYgJGl0ZW1jb3VudCA+IDAgJiYgaXNzZXQoJGV4cG9ydGxpbmspfXskZXhwb3J0bGlua30mbmJzcDt7L2lmfQogICAgICB7JGltcG9ydGxpbmt8ZGVmYXVsdDonJ30KICAgIDwvZGl2PgogICAge2lmIGlzc2V0KCRpdGVtY291bnQpICYmICRpdGVtY291bnQgPiAwfQogICAgPGRpdiBjbGFzcz0iZ3JpZF80IHRleHQtcmlnaHQiPnskaXRlbWNvdW50fSZuYnNwO3skZ3JvdXBzZm91bmR9PC9kaXY+CiAgICB7L2lmfQogICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KICA8L2Rpdj4KCiAge2lmIGlzc2V0KCRpdGVtcyl9CiAgPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoIHdpZHRoPSI1JSI+eyRpZHRleHR9PC90aD4KCQkJPHRoPnskbmFtZXRleHR9PC90aD4KCQkJPHRoPnskZGVzY3RleHR9PC90aD4KCQkJPHRoPnskbW9kLT5MYW5nKCdtZW1iZXJzJyl9PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24ge2xpdGVyYWx9e3NvcnRlcjogZmFsc2V9ey9saXRlcmFsfSI+Jm5ic3A7PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keT4KCQl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9Ij4KCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5kZXNjfTwvdGQ+CgkgICAgICAgICAgICAgICAgPHRkPnskZW50cnktPm51c2Vyc3xkZWZhdWx0OiRtb2QtPkxhbmcoJ25vdF9hdmFpbGFibGUnKX08L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZXhwb3J0bGlua3xkZWZhdWx0OicnfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua3xkZWZhdWx0OicnfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfGRlZmF1bHQ6Jyd9PC90ZD4KCQk8L3RyPgoJCXsvZm9yZWFjaH0KCTwvdGJvZHk+CiAgPC90YWJsZT4KICB7L2lmfQp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/group_xml.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgZmV1X2dyb3VwIFsKICA8IUVMRU1FTlQgZmV1X2dyb3VwIChncnBfbmFtZSxncnBfZGVzY3JpcHRpb24scHJvcGVydHkqKT4KICA8IUVMRU1FTlQgZ3JwX25hbWUgKCNQQ0RBVEEpPgogIDwhRUxFTUVOVCBncnBfZGVzY3JpcHRpb24gKCNQQ0RBVEEpPgogIDwhRUxFTUVOVCBwcm9wZXJ0eSAocHJvcF9uYW1lLHByb3BfcHJvbXB0LHByb3BfdHlwZSxwcm9wX29wdGlvbj8scHJvcF9sZW5ndGg/LHByb3BfbWF4bGVuZ3RoPyxwcm9wX3NvcnRvcmRlcixwcm9wX3N0YXR1cyxwcm9wX2xvc3R1bmZsYWcpPgogIDwhRUxFTUVOVCBwcm9wX25hbWUgKCNQQ0RBVEEpPgogIDwhRUxFTUVOVCBwcm9wX3Byb21wdCAoI1BDREFUQSk+CiAgPCFFTEVNRU5UIHByb3BfdHlwZSAoI1BDREFUQSk+CiAgPCFFTEVNRU5UIHByb3Bfb3B0aW9uIChvcF9uYW1lLG9wX3RleHQpPgogIDwhRUxFTUVOVCBwcm9wX2xlbmd0aCAoI1BDREFUQSk+CiAgPCFFTEVNRU5UIHByb3BfbWF4bGVuZ3RoICgjUENEQVRBKT4KICA8IUVMRU1FTlQgcHJvcF9zb3J0b3JkZXIgKCNQQ0RBVEEpPgogIDwhRUxFTUVOVCBwcm9wX3N0YXR1cyAoI1BDREFUQSk+CiAgPCFFTEVNRU5UIHByb3BfbG9zdHVuZmxhZyAoI1BDREFUQSk+CiAgPCFFTEVNRU5UIG9wX25hbWUgKCNQQ0RBVEEpPgogIDwhRUxFTUVOVCBvcF90ZXh0ICgjUENEQVRBKT4KXT4KPGZldV9ncm91cD4KICA8Z3JwX25hbWU+eyRncm91cF9uYW1lfTwvZ3JwX25hbWU+CiAgPGdycF9kZXNjcmlwdGlvbj57JGdyb3VwX2Rlc2NyaXB0aW9ufTwvZ3JwX2Rlc2NyaXB0aW9uPgp7Zm9yZWFjaCBmcm9tPSRwcm9wZXJ0aWVzIGl0ZW09J3Byb3AnfQogIDxwcm9wZXJ0eT4KICAgIDxwcm9wX25hbWU+eyRwcm9wLT5uYW1lfTwvcHJvcF9uYW1lPgogICAgPHByb3BfcHJvbXB0PjwhW0NEQVRBW3skcHJvcC0+cHJvbXB0fV1dPjwvcHJvcF9wcm9tcHQ+CiAgICA8cHJvcF90eXBlPnskcHJvcC0+dHlwZX08L3Byb3BfdHlwZT4KICAgIHtpZiBpc3NldCgkcHJvcC0+b3B0aW9ucyl9e2ZvcmVhY2ggZnJvbT0kcHJvcC0+b3B0aW9ucyBpdGVtPSdvcHRpb24nfQogICAgPHByb3Bfb3B0aW9uPgogICAgICA8b3BfbmFtZT48IVtDREFUQVt7JG9wdGlvbi0+bmFtZX1dXT48L29wX25hbWU+CiAgICAgIDxvcF90ZXh0PjwhW0NEQVRBW3skb3B0aW9uLT50ZXh0fV1dPjwvb3BfdGV4dD4KICAgIDwvcHJvcF9vcHRpb24+CiAgICB7L2ZvcmVhY2h9ey9pZn0KICAgIHtpZiBpc3NldCgkcHJvcC0+bGVuZ3RoKX0KICAgIDxwcm9wX2xlbmd0aD57JHByb3AtPmxlbmd0aH08L3Byb3BfbGVuZ3RoPgogICAgey9pZn0KICAgIHtpZiBpc3NldCgkcHJvcC0+bWF4bGVuZ3RoKX0KICAgIDxwcm9wX21heGxlbmd0aD57JHByb3AtPm1heGxlbmd0aH08L3Byb3BfbWF4bGVuZ3RoPgogICAgey9pZn0KICAgIDxwcm9wX3NvcnRvcmRlcj57JHByb3AtPnNvcnRvcmRlcn08L3Byb3Bfc29ydG9yZGVyPgogICAgPHByb3Bfc3RhdHVzPnskcHJvcC0+c3RhdHVzfTwvcHJvcF9zdGF0dXM+CiAgICA8cHJvcF9sb3N0dW5mbGFnPnskcHJvcC0+bG9zdHVuZmxhZ308L3Byb3BfbG9zdHVuZmxhZz4KICA8L3Byb3BlcnR5Pgp7L2ZvcmVhY2h9CjwvZmV1X2dyb3VwPg==]]></data>
	</file>
	<file>
	  <filename>/templates/importgroup.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZmlsZW5hbWV9PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9maWxlbmFtZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfbmV3bmFtZX08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X25ld25hbWV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH0mbmJzcDt7JGNhbmNlbH08L3A+CiAgPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/orig_changesettings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBjaGFuZ2Ugc2V0dGluZ3MgdGVtcGxhdGUgLS0+CjxkaXYgaWQ9ImZldV9jaGFuZ2VzZXR0aW5nc2Zvcm0iPgo8aDQ+eyRtb2QtPkxhbmcoJ3VzZXJfc2V0dGluZ3MnKX08L2g0PgoKe2lmIGlzc2V0KCRtZXNzYWdlKSAmJiAkbWVzc2FnZSAhPSAnJ30KICB7aWYgaXNzZXQoJGVycm9yKSAmJiAkZXJyb3IgIT0gJyd9CiAgICA8cCBjbGFzcz0iYWxlcnQgYWxlcnQtZXJyb3IiPnskbWVzc2FnZX08L3A+CiAge2Vsc2V9CiAgICA8cCBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtZXNzYWdlfTwvcD4KICB7L2lmfQp7L2lmfQoKeyRzdGFydGZvcm19CiAge2lmICRjb250cm9sY291bnQgPiAwfQogIHtmb3JlYWNoICRjb250cm9scyBhcyAka2V5PT4kZmllbGR9CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICA8bGFiZWwgZm9yPSIkZmllbGQtPmlucHV0X2lkIiBjbGFzcz0iY29sLXNtLTMgdGV4dC1yaWdodCIgc3R5bGU9ImNvbG9yOiB7JGZpZWxkLT5jb2xvcnxkZWZhdWx0Oidpbmhlcml0J30iPnskZmllbGQtPm1hcmtlcnxkZWZhdWx0OicnfSB7JGZpZWxkLT5wcm9tcHR9OjwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS05Ij4KICAgICAgICB7JGZpZWxkLT5oaWRkZW58ZGVmYXVsdDonJ30KICAgICAgICB7aWYgaXNzZXQoJGZpZWxkLT5oaWRkZW4pfXskZmllbGQtPmhpZGRlbn17L2lmfQoKCXsqIGJ1aWxkIHRoZSBmaWVsZCBpdHNlbGYgKn0KCXtpZiAkZmllbGQtPnR5cGUgPT0gJzAnfSB7KiB0ZXh0ICp9CgkgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ieyRmaWVsZC0+aW5wdXRfaWR9IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJ7JGZpZWxkLT5pbnB1dF9uYW1lfSIgc2l6ZT0ieyRmaWVsZC0+bGVuZ3RofSIgbWF4bGVuZ3RoPSJ7JGZpZWxkLT5tYXhsZW5ndGh9IiB2YWx1ZT0ieyRmaWVsZC0+dmFsdWV9IiB7aWYgJGZpZWxkLT5yZWFkb25seX1yZWFkb25seXsvaWZ9Lz4KCXtlbHNlaWYgJGZpZWxkLT50eXBlID09ICdwYXNzd29yZCd9IHsqIHRleHQgKn0KCSAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0ieyRmaWVsZC0+aW5wdXRfaWR9IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJ7JGZpZWxkLT5pbnB1dF9uYW1lfSIgc2l6ZT0ieyRmaWVsZC0+bGVuZ3RofSIgbWF4bGVuZ3RoPSJ7JGZpZWxkLT5tYXhsZW5ndGh9IiB2YWx1ZT0ieyRmaWVsZC0+dmFsdWV9IiB7aWYgJGZpZWxkLT5yZWFkb25seX1yZWFkb25seXsvaWZ9Lz4KCXtlbHNlaWYgJGZpZWxkLT50eXBlID09IDJ9IHsqIGVtYWlsICp9CgkgIDxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9InskZmllbGQtPmlucHV0X2lkfSIgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0ieyRmaWVsZC0+aW5wdXRfbmFtZX0iIHNpemU9InskZmllbGQtPmxlbmd0aH0iIG1heGxlbmd0aD0ieyRmaWVsZC0+bWF4bGVuZ3RofSIgdmFsdWU9InskZmllbGQtPnZhbHVlfSIge2lmICRmaWVsZC0+cmVhZG9ubHl9cmVhZG9ubHl7L2lmfS8+Cgl7ZWxzZWlmICRmaWVsZC0+dHlwZSA9PSAzfSB7KiB0ZXh0YXJlYSAqfQogICAgICAgICAge2NnZV90ZXh0YXJlYSBpZD0kZmllbGQtPmlucHV0X2lkIHd5c2l3eWc9JGZpZWxkLT53eXNpd3lnIG5hbWU9JGZpZWxkLT5pbnB1dF9uYW1lIGNvbnRlbnQ9JGZpZWxkLT52YWx1ZSBjbGFzcz0iZm9ybS1jb250cm9sIn0KCXtlbHNlaWYgJGZpZWxkLT50eXBlID09IDF9IHsqIGNoZWNrYm94ICp9CgkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskZmllbGQtPmlucHV0X25hbWV9IiB2YWx1ZT0iMCIvPgoJICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ7JGZpZWxkLT5pbnB1dF9pZH0iIGNsYXNzPSJjaGVja2JveCIgbmFtZT0ieyRmaWVsZC0+aW5wdXRfbmFtZX0iIHZhbHVlPSIxIiB7aWYgJGZpZWxkLT52YWx1ZX1jaGVja2Vkey9pZn0vPgoJe2Vsc2VpZiAkZmllbGQtPnR5cGUgPT0gNH0geyogZHJvcGRvd24gKn0KCSAgIDxzZWxlY3QgaWQ9InskZmllbGQtPmlucHV0X2lkfSIgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0ieyRmaWVsZC0+aW5wdXRfbmFtZX0iIHtpZiAkZmllbGQtPnJlYWRvbmx5fXJlYWRvbmx5ey9pZn0+CgkgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkLT5vcHRpb25zIHNlbGVjdGVkPSRmaWVsZC0+dmFsdWV9CgkgICA8L3NlbGVjdD4KCXtlbHNlaWYgJGZpZWxkLT50eXBlID09IDV9IHsqIG11bHRpc2VsZWN0ICp9CgkgICA8c2VsZWN0IGlkPSJ7JGZpZWxkLT5pbnB1dF9pZH0iIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9InskZmllbGQtPmlucHV0X25hbWV9W10iIHtpZiAkZmllbGQtPnJlYWRvbmx5fXJlYWRvbmx5ey9pZn0gbXVsdGlwbGU+CgkgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkLT5vcHRpb25zIHNlbGVjdGVkPSRmaWVsZC0+c2VsZWN0ZWR9CgkgICA8L3NlbGVjdD4KCXtlbHNlaWYgJGZpZWxkLT50eXBlID09IDd9IHsqIHJhZGlvIGdyb3VwICp9CgkgICB7Zm9yZWFjaCAkZmllbGQtPm9wdGlvbnMgYXMgJGtleSA9PiAkdmFsfQoJICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0ieyRmaWVsZC0+aW5wdXRfbmFtZX0iIHZhbHVlPSJ7JGtleX0iIHtpZiAka2V5PT0kZmllbGQtPnZhbHVlfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0+IHskdmFsfTwvbGFiZWw+CgkgICB7L2ZvcmVhY2h9Cgl7ZWxzZWlmICRmaWVsZC0+dHlwZSA9PSA2fSB7KiBpbWFnZSAqfQoJICAge2lmIGlzc2V0KCRmaWVsZC0+aW1hZ2VfdXJsKSAmJiAkZmllbGQtPmltYWdlX3VybH08aW1nIHNyYz0ieyRmaWVsZC0+aW1hZ2VfdXJsfSIgYWx0PSJ7JGZpZWxkLT5pbWFnZV91cmx9IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPnsvaWZ9CgkgICB7aWYgaXNzZXQoJGZpZWxkLT5wcm9tcHQyKSAmJiAkZmllbGQtPnByb21wdDJ9PGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImNoZWNrYm94IiBuYW1lPSJ7JGZpZWxkLT5pbnB1dF9uYW1lMn0iIHZhbHVlPSJjbGVhciIvPiB7JGZpZWxkLT5wcm9tcHQyfTwvbGFiZWw+ey9pZn0KCSAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskZmllbGQtPmlucHV0X25hbWV9IiB2YWx1ZT0ieyRmaWVsZC0+dmFsdWV9Ii8+CiAJICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJ7JGZpZWxkLT5pbnB1dF9pZH0iIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9InskZmllbGQtPmlucHV0X25hbWV9IiB7aWYgJGZpZWxkLT5yZWFkb25seX1yZWFkb25seXsvaWZ9Lz4KCXtlbHNlaWYgJGZpZWxkLT50eXBlID09IDh9IHsqIGRhdGUgKn0KCSAgIHtodG1sX3NlbGVjdF9kYXRlIHByZWZpeD0kZmllbGQtPmlucHV0X25hbWUgc3RhcnRfeWVhcj0nLTUnIGVuZF95ZWFyPScrMTAnIHRpbWU9JGZpZWxkLT52YWx1ZX0KCXsvaWZ9CiAgICAgICAgeyRmaWVsZC0+YWRkdGV4dHxkZWZhdWx0OicnfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIHsvZm9yZWFjaH0KICB7L2lmfQoKICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTMiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgogICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG5fYWN0aXZlIiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCI+eyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYnV0dG9uPgogICAgPC9kaXY+CiAgPC9kaXY+CnskaGlkZGVufGRlZmF1bHQ6Jyd9eyRlbmRmb3JtfQo8L2Rpdj4KPCEtLSBjaGFuZ2Ugc2V0dGluZ3MgdGVtcGxhdGUgLS0+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_force_newpw_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc3lzdGVtIGRlZmF1bHQgZm9yY2UgbmV3IHBhc3N3b3JkIGZvcm0gdGVtcGxhdGUgKn0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtb2QtPkxhbmcoJ21zZ19mb3JjZV9uZXdwdycpfTwvZGl2PgoKe2lmIGlzc2V0KCRlcnJvcil9CjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciI+eyRlcnJvcn08L2Rpdj4Key9pZn0KCnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxkaXYgY2xhc3M9ImNvbC14cy0zIHRleHQtcmlnaHQiPiogeyRtb2QtPkxhbmcoJ3Bhc3N3b3JkJyl9OjwvZGl2PgogIDxkaXYgY2xhc3M9ImNvbC14cy05Ij4KICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfcGFzc3dvcmQiIHZhbHVlPSIiIHJlcXVpcmVkLz4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InJvdyI+CiAgPGRpdiBjbGFzcz0iY29sLXhzLTMgdGV4dC1yaWdodCI+KiB7JG1vZC0+TGFuZygncmVwZWF0cGFzc3dvcmQnKX06PC9kaXY+CiAgPGRpdiBjbGFzcz0iY29sLXhzLTkiPgogICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJ7JGFjdGlvbmlkfWZldV9yZXBlYXRwYXNzd29yZCIgdmFsdWU9IiIgcmVxdWlyZWQvPgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJjb2wteHMtMyI+Jm5ic3A7PC9kaXY+CiAgPGRpdiBjbGFzcz0iY29sLXhzLTkiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDwvZGl2Pgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_forgotpassword1.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZm9yZ290IHBhc3N3b3JkIHRlbXBsYXRlICp9CjxoND57JG1vZC0+TGFuZygndGl0bGVfZm9yZ290cHcnKX08L2g0Pgp7aWYgIWVtcHR5KCRtZXNzYWdlKSB9CiAge2lmICFlbXB0eSgkZXJyb3IpIH0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciI+eyRtZXNzYWdlfTwvZGl2PgogIHtlbHNlfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtZXNzYWdlfTwvZGl2PgogIHsvaWZ9CntlbHNlfQogIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskbW9kLT5MYW5nKCdsb3N0cHdfbWVzc2FnZScpfTwvZGl2Pgp7L2lmfQoKe2lmICFpc3NldCgkZm9yZ290cHdkb25lKX0KICB7aWYgaXNzZXQoJHN0YXJ0Zm9ybSl9CiAgICB7JHN0YXJ0Zm9ybX0KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0yIHRleHQtcmlnaHQiPgogICAgICAgIHtpZiAkdXNlcm5hbWVfaXNfZW1haWx9CiAgICAgICAgICB7JG1vZC0+TGFuZygncHJvbXB0X2VtYWlsJyl9OgogICAgICAgIHtlbHNlfQogICAgICAgICAgeyRtb2QtPkxhbmcoJ3Byb21wdF91c2VybmFtZScpfToKICAgICAgICB7L2lmfQogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTEwIj4KICAgICAgICA8aW5wdXQgbmFtZT0ieyRhY3Rpb25pZH1mZXVfdXNlcm5hbWUiIHR5cGU9IntpZiAkdXNlcm5hbWVfaXNfZW1haWx9ZW1haWx7ZWxzZX10ZXh0ey9pZn0iIHNpemU9InskdW5mbGRsZW59IiBtYXhsZW5ndGg9InskbWF4X3VuZmxkbGVufSIgdmFsdWU9InskdXNlcm5hbWV9IiByZXF1aXJlZC8+ICoKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIHtpZiBpc3NldCgkY2FwdGNoYSl9CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMiB0ZXh0LXJpZ2h0Ij57JGNhcHRjaGFfdGl0bGV9OjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMTAiPnskY2FwdGNoYX0KICAgICAgICB7aWYgaXNzZXQoJGlucHV0X2NhcHRjaGEpfTxkaXYgY2xhc3M9InJvdyI+eyRpbnB1dF9jYXB0Y2hhfTwvcD57L2lmfQogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgey9pZn0KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMCBjb2wtc20tb2Zmc2V0LTIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZmV1X3N1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgICAgICA8aW5wdXQgaWQ9ImZldV9jYW5jZWwiIHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfY2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgeyRlbmRmb3JtfQogIHsvaWZ9CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_forgotpassword2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdmVyaWZ5IGVtYWlsIHRlbXBsYXRlIC0tIGZvcm1lcmx5IGZvZ290IHBhc3N3b3JkIGVtYWlsIHRlbXBsYXRlICp9CjxoMz57JHRpdGxlfTwvaDM+CjxkaXY+eyRtZXNzYWdlfTwvZGl2Pgo8aDQ+eyRwcm9tcHRfY29kZX06IHskZGF0YV9jb2RlfTwvaDQ+CjxwPnskcHJvbXB0X2xpbmt9OiA8YSBocmVmPSJ7JGRhdGFfdXJsfSI+eyRkYXRhX3VybH08L2E+PC9wPgp7L3N0cmlwfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_forgotpassword3.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZm9yZ290IHBhc3N3b3JkIHZlcmlmaWNhdGlvbiB0ZW1wbGF0ZSAqfQo8aDQ+eyRtb2QtPkxhbmcoJ3ZlcmlmeV9pZGVudGl0eScpfTwvaDQ+CntpZiAhZW1wdHkoJG1lc3NhZ2UpfQogIHtpZiAhZW1wdHkoJGVycm9yKSB9CiAgICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1kYW5nZXIiPnskbWVzc2FnZX08L2Rpdj4KICB7ZWxzZX0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskbWVzc2FnZX08L2Rpdj4KICB7L2lmfQp7L2lmfQoKe2lmIGlzc2V0KCRzdGFydGZvcm0pfQogIHskc3RhcnRmb3JtfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygncHJvbXB0X3VzZXJuYW1lJyl9OjwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgogICAgICA8aW5wdXQgdHlwZT0ie2lmICR1c2VybmFtZV9pc19lbWFpbH1lbWFpbHtlbHNlfXRleHR7L2lmfSIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfdXNlcm5hbWUiIHNpemU9InskdW5mbGRsZW59IiBtYXhsZW5ndGg9InskbWF4X3VuZmxkbGVufSIgdmFsdWU9InskdXNlcm5hbWV9IiBkaXNhYmxlZD0iZGlzYWJsZWQiLz4KICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygncHJvbXB0X2NvZGUnKX06PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWZldV9jb2RlIiB2YWx1ZT0ieyRjb2RlfSIgc2l6ZT0iNDAiIG1heGxlbmd0aD0iNDAiIHJlcXVpcmVkIC8+ICoKICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygncHJvbXB0X3Bhc3N3b3JkJyl9OjwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgogICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InskYWN0aW9uaWR9ZmV1X3Bhc3N3b3JkMSIgdmFsdWU9InskcGFzc3dvcmQxfSIgc2l6ZT0ieyRwd2ZsZGxlbn0iIG1heGxlbmd0aD0ieyRtYXhfcHdmbGRsZW59IiByZXF1aXJlZC8+ICoKICAgIDwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygncmVwZWF0cGFzc3dvcmQnKX06PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOSI+CiAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfcGFzc3dvcmQyIiB2YWx1ZT0ieyRwYXNzd29yZDJ9IiBzaXplPSJ7JHB3ZmxkbGVufSIgbWF4bGVuZ3RoPSJ7JG1heF9wd2ZsZGxlbn0iIHJlcXVpcmVkLz4gKgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icm93Ij4KICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0zIHRleHQtcmlnaHQiPiZuYnNwOzwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgogICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWZldV9zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8L2Rpdj4KICA8L2Rpdj4KeyRlbmRmb3JtfQp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_loginform.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbG9naW4gZm9ybSB0ZW1wbGF0ZSAqfQp7KiB0aGlzIGlzIGEgc2FtcGxlIHRlbXBsYXRlLCBmZWVsIGZyZWUgdG8gY3VzdG9taXplIGl0ICp9CntpZiBpc3NldCgkYWx0X2xvZ2luZm9ybSl9CiAgPGRpdiBjbGFzcz0icm93IiBpZD0iYWx0bG9naW4iPnskYWx0X2xvZ2luZm9ybX08L2Rpdj48YnIvPgp7L2lmfQoKPGZpZWxkc2V0IGlkPSJsb2dpbmZvcm0iPgogIDxsZWdlbmQ+eyRGcm9udEVuZFVzZXJzLT5MYW5nKCdwcm9tcHRfbm9ybWFsbG9naW4nKX06PC9sZWdlbmQ+CiAgeyRzdGFydGZvcm19CgogIHsqCiAgICogYSBzaW1wbGUgaG9uZXlwb3QgY2FwdGNoYS4uLi5pZiB0aGlzIGZpZWxkIGhhcyBhIHZhbHVlIGFmdGVyIHN1Ym1pdCBhbiBlcnJvciB3aWxsIGJlIHRocm93bgogICAqIGRlbGV0aW5nIHRoaXMgZmllbGQgd2lsbCBzaW1wbHkgZGlzYWJsZSB0aGUgaG9uZXlwb3QuCiAgICogaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIGZpZWxkIGJlIGhpZGRlbiB3aXRoIENTUyByYXRoZXIgdGhhbiB1c2luZyBhIGhpZGRlbiBpbnB1dCBmaWVsZC4KICAgKn0KICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfX2RhdGEiIHZhbHVlPSIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPgoKICB7aWYgJGVycm9yfTxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciI+eyRlcnJvcn08L2Rpdj57L2lmfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLW1kLTQgdGV4dC1yaWdodCI+PGxhYmVsIGZvcj0iZmV1X3VzZXJuYW1lIj4qeyRwcm9tcHRfdXNlcm5hbWV9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9ImNvbC1tZC04Ij4KICAgICAgPGlucHV0IHR5cGU9IntpZiAkdXNlcm5hbWVfaXNfZW1haWx9ZW1haWx7ZWxzZX10ZXh0ey9pZn0iIGlkPSJmZXVfdXNlcm5hbWUiIG5hbWU9InskZmxkbmFtZV91c2VybmFtZX0iIHZhbHVlPSJ7JHVzZXJuYW1lfSIgc2l6ZT0ieyR1c2VybmFtZV9zaXplfSIgbWF4bGVuZ3RoPSJ7JHVzZXJuYW1lX21heGxlbmd0aH0iIHtpZiAhJHVzZXJuYW1lX2lzX2VtYWlsfWF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiey9pZn0gcmVxdWlyZWQvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLW1kLTQgdGV4dC1yaWdodCI+PGxhYmVsIGZvcj0iZmV1X3Bhc3N3b3JkIj4qeyRwcm9tcHRfcGFzc3dvcmR9OjwvbGFiZWw+PC9wPgogICAgPHAgY2xhc3M9ImNvbC1tZC04Ij4KICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iZmV1X3Bhc3N3b3JkIiBuYW1lPSJ7JGZsZG5hbWVfcGFzc3dvcmR9IiB2YWx1ZT0ieyRwYXNzd29yZH0iIHNpemU9InskcGFzc3dvcmRfc2l6ZX0iIG1heGxlbmd0aD0ieyRwYXNzd29yZF9tYXhsZW5ndGh9IiByZXF1aXJlZC8+CiAgICA8L3A+CiAgPC9kaXY+CiAge2lmIGlzc2V0KCRjYXB0Y2hhKX0KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPHAgY2xhc3M9ImNvbC1tZC00IHRleHQtcmlnaHQiPnskY2FwdGNoYV90aXRsZX08L3A+CiAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+eyRjYXB0Y2hhfQogICAgICB7aWYgJG5lZWRfY2FwdGNoYV9pbnB1dH0KICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfaW5wdXRfY2FwdGNoYSIgc2l6ZT0iMTAiLz4KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICA8L2Rpdj4KICA8L2Rpdj4KICB7L2lmfQoKICB7aWYgaXNzZXQoJHByb21wdF9yZW1lbWJlcm1lKX0KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPHAgY2xhc3M9ImNvbC1tZC00Ij48L3A+CiAgICA8cCBjbGFzcz0iY29sLW1kLTgiPgogICAgICA8bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWZldV9yZW1lbWJlcm1lIiB2YWx1ZT0iMSIge2lmICRyZW1lbWJlcm1lPT0xfWNoZWNrZWR7L2lmfS8+IHskcHJvbXB0X3JlbWVtYmVybWV9PC9sYWJlbD4KICAgIDwvcD4KICA8L2Rpdj4KICB7L2lmfQoKICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPHAgY2xhc3M9ImNvbC1tZC00Ij48L3A+CiAgICA8cCBjbGFzcz0iY29sLW1kLTgiPgogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWFjdGl2ZSIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfc3VibWl0Ij57JEZyb250RW5kVXNlcnMtPkxhbmcoJ2xvZ2luJyl9PC9idXR0b24+CiAgICA8L3A+CiAgPC9kaXY+CgogIHtpZiBpc3NldCgkdXJsX2xvc3R1bikgfHwgaXNzZXQoJHVybF9mb3Jnb3QpfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8cCBjbGFzcz0iY29sLW1kLTQiPjwvcD4KICAgIDxwIGNsYXNzPSJjb2wtc20tOCI+CiAgICAgIHtpZiBpc3NldCgkdXJsX2ZvcmdvdCl9CiAgICAgICAgPGEgaHJlZj0ieyR1cmxfZm9yZ290fSIgdGl0bGU9InskRnJvbnRFbmRVc2Vycy0+TGFuZygnaW5mb19mb3Jnb3RwdycpfSI+eyRGcm9udEVuZFVzZXJzLT5MYW5nKCdmb3Jnb3RwdycpfTwvYT4KICAgICAgey9pZn0KICAgICAge2lmIGlzc2V0KCR1cmxfbG9zdHVuKX0KICAgICAgICB8IDxhIGhyZWY9InskdXJsX2xvc3R1bn0iIHRpdGxlPSJ7JEZyb250RW5kVXNlcnMtPkxhbmcoJ2luZm9fbG9zdHVuJyl9Ij57JEZyb250RW5kVXNlcnMtPkxhbmcoJ2xvc3R1c2VybmFtZScpfTwvYT4KICAgICAgey9pZn0KICAgIDwvcD4KICA8L2Rpdj4KICB7L2lmfQogIHskZW5kZm9ybX0KPC9maWVsZHNldD4K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_logoutform.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbG9nb3V0IGZvcm0gdGVtcGxhdGUgKn0Ke2lmIGlzc2V0KCRhbHRfbG9nb3V0Zm9ybSl9eyRhbHRfbG9nb3V0Zm9ybX17L2lmfQp7aWYgaXNzZXQoJG1lc3NhZ2UpfTxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPnskbWVzc2FnZX08L2Rpdj57L2lmfQo8cD57JHByb21wdF9sb2dnZWRpbn0mbmJzcDt7JHVzZXJuYW1lfTwvcD4KPHA+PGEgaHJlZj0ieyR1cmxfY2hhbmdlc2V0dGluZ3N9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2luZm9fY2hhbmdlc2V0dGluZ3MnKX0iPnskbW9kLT5MYW5nKCdwcm9tcHRfY2hhbmdlc2V0dGluZ3MnKX08L2E+PC9wPgp7aWYgaXNzZXQoJHVybF9sb2dvdXQpfQo8cD48YSBocmVmPSJ7JHVybF9sb2dvdXR9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2luZm9fbG9nb3V0Jyl9Ij57JG1vZC0+TGFuZygnbG9nb3V0Jyl9PC9hPjwvcD4Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_lostunform_confirm_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbG9zdCB1c2VybmFtZSBjb25maXJtIHRlbXBsYXRlIGZvcm0gKn0KPGgzPnskcHJlbXNnfTwvaDM+CjxwPnskcHJvbXB0X3lvdXJ1c2VybmFtZWlzfTogPHN0cm9uZz57JHVzZXJuYW1lfTwvc3Ryb25nPi48L3A+CjxwPnskcG9zdG1zZ308L3A+]]></data>
	</file>
	<file>
	  <filename>/templates/orig_lostunform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbG9zdCB1c2VybmFtZSBjb25maXJtIHRlbXBsYXRlIGZvcm0gKn0KPGg0PnskbW9kLT5MYW5nKCd0aXRsZV9sb3N0dXNlcm5hbWUnKX08L2g0Pgo8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1pbmZvIj57JG1vZC0+TGFuZygnaW5mb19sb3N0dXNlcm5hbWUnKX08L2Rpdj4Ke2lmIGlzc2V0KCRtZXNzYWdlKX08ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1kYW5nZXIiPnskbWVzc2FnZX08L2Rpdj57L2lmfQp7aWYgY291bnQoJGNvbnRyb2xzKX0KICB7JHN0YXJ0Zm9ybX0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9ZmV1X19kYXRhIiB2YWx1ZT0iIi8+eyogc2ltcGxlIGhvbmV5cG90IGNhcHRjaGEgKn0KICAgIHtmb3JlYWNoIGZyb209JGNvbnRyb2xzIGl0ZW09J2VudHJ5J30KICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tNCB0ZXh0LXJpZ2h0Ij57JGVudHJ5LT5wcm9tcHR9PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOCI+CgkgICAge2lmICRlbnRyeS0+dHlwZSA9PSAnX3Bhc3N3b3JkJ30KCSAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ieyRlbnRyeS0+ZmxkbmFtZX0iIHZhbHVlPSJ7JGVudHJ5LT52YWx9IiBzaXplPSJ7JGVudHJ5LT5sZW5ndGh9IiBtYXhsZW5ndGg9InskZW50cnktPm1heGxlbmd0aH0iLz4KCSAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fbG9zdHVuX3B3ZmllbGQnKX0KCSAgICB7ZWxzZSBpZiAkZW50cnktPnR5cGUgPT0gMH0KCSAgICAgIHsqIHRleHQgKn0KCSAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGVudHJ5LT5mbGRuYW1lfSIgdmFsdWU9InskZW50cnktPnZhbH0iIHNpemU9InskZW50cnktPmxlbmd0aH0iIG1heGxlbmd0aD0ieyRlbnRyeS0+bWF4bGVuZ3RofSIvPgoJICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19sb3N0dW5fdGV4dGZpZWxkJyl9CgkgICAge2Vsc2VpZiAkZW50cnktPnR5cGUgPT0gMX0KCSAgICAgIHsqIGNoZWNrYm94ICp9CgkgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskZW50cnktPmZsZG5hbWV9IiB2YWx1ZT0iMSIge2lmICRlbnRyeS0+dmFsfWNoZWNrZWR7L2lmfS8+CgkgICAge2Vsc2VpZiAkZW50cnktPnR5cGUgPT0gMn0KCSAgICAgIHsqIGVtYWlsICp9CgkgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIG5hbWU9InskZW50cnktPmZsZG5hbWV9IiB2YWx1ZT0ieyRlbnRyeS0+dmFsfSIgc2l6ZT0ieyRlbnRyeS0+bGVuZ3RofSIgbWF4bGVuZ3RoPSJ7JGVudHJ5LT5tYXhsZW5ndGh9Ii8+CgkgICAge2Vsc2VpZiAkZW50cnktPnR5cGUgPT0gM30KCSAgICAgIHsqIHRleHRhcmVhICp9CgkgICAgICA8dGV4dGFyZWEgbmFtZT0ieyRlbnRyeS0+ZmxkbmFtZX0iIHJvd3M9IjMiIGNvbHM9IjUwIj57JGVudHJ5LT52YWx9PC90ZXh0YXJlYT4KCSAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fbG9zdHVuX3RleHRhcmVhJyl9CgkgICAge2Vsc2VpZiAkZW50cnktPnR5cGUgPT0gNH0KCSAgICAgIHsqIGRyb3Bkb3duICp9CgkgICAgICA8c2VsZWN0IG5hbWU9InskZW50cnktPmZsZG5hbWV9Ij4KCSAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj57JG1vZC0+TGFuZygnZG9ub3Rrbm93Jyl9PC9vcHRpb24+CgkJe2h0bWxfb3B0aW9ucyBvcHRpb25zPSRlbnRyeS0+b3B0aW9ucyBzZWxlY3RlZD0kZW50cnktPnZhbH0KCSAgICAgIDwvc2VsZWN0PgoJICAgIHtlbHNlaWYgJGVudHJ5LT50eXBlID09IDV9CgkgICAgICB7KiBtdWx0aXNlbGVjdCAqfQoJICAgICAgPHNlbGVjdCBuYW1lPSJ7JGVudHJ5LT5mbGRuYW1lfVtdIiBtdWx0aXBsZSBzaXplPSJ7JGVudHJ5LT5sZW5ndGh9Ij4KCQl7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGVudHJ5LT5vcHRpb25zIHNlbGVjdGVkPSRlbnRyeS0+dmFsfQoJICAgICAgPC9zZWxlY3Q+CgkgICAge2Vsc2VpZiAkZW50cnktPnR5cGUgPT0gN30KCSAgICAgIHsqIHJhZGlvYnRucyAqfQoJICAgICAge2ZvcmVhY2ggJGVudHJ5LT5vcHRpb25zIGFzICRrZXkgPT4gJHZhbH0KCSAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ieyRlbnRyeS0+ZmxkbmFtZX0iIHZhbHVlPSJ7JGtleX0iIHtpZiAka2V5ID09ICRlbnRyeS0+dmFsfWNoZWNrZWR7L2lmfS8+IHskdmFsfTwvbGFiZWw+CgkgICAgICAgIHtpZiAhJHZhbEBsYXN0fTxici8+ey9pZn0KCSAgICAgIHsvZm9yZWFjaH0KCSAgICB7ZWxzZWlmICRlbnRyeS0+dHlwZSA9PSA4fQoJICAgICAgeyogZGF0ZSAqfQoJICAgICAge2h0bWxfc2VsZWN0X2RhdGUgcHJlZml4PSRlbnRyeS0+ZmxkbmFtZSBzdGFydF95ZWFyPSRlbnRyeS0+c3RhcnRfeWVhciBlbmRfeWVhcj0kZW50cnktPmVuZF95ZWFyIHRpbWU9JGVudHJ5LT52YWwgYWxsX2VtcHR5PSctLSd9CgkgICAgey9pZn0KCSAgPC9kaXY+CiAgICAgICA8L2Rpdj4KICAgIHsvZm9yZWFjaH0KICAgIHtpZiBpc3NldCgkY2FwdGNoYSl9CiAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPHAgY2xhc3M9ImNvbC1zbS00IHRleHQtcmlnaHQiPnskY2FwdGNoYV90aXRsZX08L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTgiPnskY2FwdGNoYX0KICAgICAgICAgIHtpZiAkbmVlZF9jYXB0Y2hhX2lucHV0fQogICAgICAgICAgPGRpdiBjbGFzcz0icm93IGNvbC1zbS0xMiI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWZldV9pbnB1dF9jYXB0Y2hhIiBzaXplPSIxMCIvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICB7L2lmfQoJPC9kaXY+CiAgICAgIDwvZGl2PgogICAgey9pZn0KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS00IHRleHQtcmlnaHQiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tOCI+CiAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZmV1X2NhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICB7JGVuZGZvcm19CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_notification_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGhpcyB0ZW1wbGF0ZSBkZWZpbmVzIGhvdyBub3RpZmljYXRpb24gZW1haWxzIHdpbGwgYmUgc2VudCAqfQp7KiB0aGUgc2FtZSB0ZW1wbGF0ZSBpcyB1c2VkIGZvciBhbGwgbm90aWZpY2F0aW9uIGV2ZW50cyBzbyB5b3UgbWF5IG5lZWQgCiAgIHRvIHRocm93IGluIHNvbWUgbG9naWMgaGVyZSB0byBkaXNwbGF5IGFsbCBvZiB0aGUgaW5mb3JtYXRpb24geW91IHdhbnQKICAgaW4gZWFjaCBlbWFpbC4gKn0KeyogYWxsIHNtYXJ0eSB2YXJpYWJsZXMgY2FuIGJlIHVzZWQgaW4gdGhpcyB0ZW1wbGF0ZSwgaW5jbHVkaW5nIGZ1bmN0aW9ucwogICBmcm9tIGN1c3RvbWNvbnRlbnQgZm9yIGZyb250ZW5kIGdlbmVyYXRlZCBldmVudHMgKn0KeyogSSBlbmNvdXJhZ2UgeW91IHRvIHVzZSB0aGUge2dldF90ZW1wbGF0ZV92YXJzfSBzbWFydHkgcGx1Z2luIGFuZCB0aGUKICAgcHJpbnRfciBzbWFydHkgbW9kaWZpZXIgdG8gc2VlIHdoYXQgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgKn0KCntnZXRfdGVtcGxhdGVfdmFyc30=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_resetsession_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogcmVzZXQgc2Vzc2lvbiB0ZW1wbGF0ZSAqfQp7KiBOT1RFOiB0aGlzIHRlbXBsYXRlIHJlcXVpcmVzIGpxdWVyeSBiZSBhdmFpbGFibGUgaW4gYW55IHBhZ2UgdGhhdCBpdCBpcyB1c2VkIG9uICp9Cgo8cD48YSBocmVmPSJqYXZhc2NyaXB0OjsiIG5hbWU9ImZldV9tYW51YWxfcmVzZXQiPkNsaWNrIEhlcmUgVG8gQ29uZmlybSBMb2dpbiBTdGF0dXM8L2E+PC9wPnsqIHNhZmUgdG8gcmVtb3ZlIHRoaXMgKn0KCnsqIHN0eWxlIGluZm9ybWF0aW9uIGZvciB0aGUgbW9kYWwgd2luZG93IGFuZCB0aGUgbWFzay4uLiB0aGVzZSBjYW4gYmUgcmVtb3ZlZCBhbmQgcGxhY2VkIGluIGEgQ01TTVMgc3R5bGVzaGVldCAqfQp7bGl0ZXJhbH0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI2ZldV9tb2RhbCB7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICBib3JkZXI6IDFweCBzb2xpZCAjMDBmOwogIHBhZGRpbmc6IDJweDsKICBtYXJnaW46ICAycHg7Cn0KI2ZldV9tYXNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwp9CiNmZXVfbW9kYWwgLnRpdGxlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmOwogIGNvbG9yOiAgI2ZmZjsKICBwYWRkaW5nOiAwcHg7Cn0KPC9zdHlsZT4Key9saXRlcmFsfQoKe2NhcHR1cmUgYXNzaWduPSdmZXVfdGhlZm9ybSd9e3N0cmlwfQp7KiB0aGUgcmVzZXQtc2Vzc2lvbiBmb3JtLCBhIHNpbXBsZSBmb3JtIHRvIGRpc3BsYXkgYSBtZXNzYWdlIHdpdGggYSB0aXRsZSB0byB0aGUgdXNlciB3aXRoIHR3byBvcHRpb25zLi4uIG9rYXksIGFuZCBjYW5jZWwuLi4gdGhlIG5hbWUgb2YgdGhlc2UgYnV0dG9ucyBpcyBpbXBvcnRhbnQsIGFzIHdlbGwgdGhlIHN0cmlwIHRhZyBpcyBpbXBvcnRhbnQgKn0KPGZvcm0gYWN0aW9uPSJqYXZhc2NyaXB0OjsiPgo8cCBjbGFzcz0idGl0bGUiPnskbW9kLT5MYW5nKCd0aXRsZV9yZXNldF9zZXNzaW9uJyl9PC9wPgo8cCBjbGFzcz0icm93Ij57JG1vZC0+TGFuZygnbXNnX3Jlc2V0X3Nlc3Npb24nKX08L3A+CjxwIGNsYXNzPSJyb3ciPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImZldV9vayIgdmFsdWU9InskbW9kLT5MYW5nKCdvaycpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImZldV9jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CjwvcD4KPC9mb3JtPgp7L3N0cmlwfXsvY2FwdHVyZX0KCntsaXRlcmFsfQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vPCFbQ0RBVEFbCi8vIHRoZSB0aW1lciBpbnRlcnZhbCAoaG93IG9mdGVuIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGRpYWxvZyB0byB5b3VyIHVzZXJzCnZhciB0aW1lcl9pbnRlcnZhbCA9IHsvbGl0ZXJhbH17JHNlc3Npb25fdGltZW91dH17bGl0ZXJhbH0gLSAzMDsKCi8vIGEgZnVuY3Rpb24gdG8gaGlkZSB0aGUgbW9kYWwgZGlhbG9nIC0tIHlvdSBjYW4gbW9kaWZ5IHRoaXMgZnVuY3Rpb24KZnVuY3Rpb24gZmV1X2Nsb3NlX21vZGFsKCkKewogICBqUXVlcnkoJyNmZXVfbW9kYWwnKS5mYWRlT3V0KDIwMDApOwogICBqUXVlcnkoJyNmZXVfbWFzaycpLmZhZGVPdXQoMTAwMCk7Cn0KCi8vIGEgZnVuY3Rpb24gdG8gZGlzcGxheSB0aGUgbW9kYWwgZGlhbG9nLi4uIHlvdSBjYW4gbW9kaWZ5IHRoaXMgZnVuY3Rpb24KZnVuY3Rpb24gZmV1X29wZW5fbW9kYWwoKQp7CiAgdmFyIG1hc2tIZWlnaHQgPSBqUXVlcnkoZG9jdW1lbnQpLmhlaWdodCgpOwogIHZhciBtYXNrV2lkdGggPSBqUXVlcnkoZG9jdW1lbnQpLndpZHRoKCk7CgogIC8vIHNldCB0aGUgbWFzayBzaXplIHRvIGZpbGwgdXAgdGhlIHdob2xlIHNjcmVlbgogIGpRdWVyeSgnI2ZldV9tYXNrJykuY3NzKHsnd2lkdGgnOm1hc2tXaWR0aCwnaGVpZ2h0JzptYXNrSGVpZ2h0fSk7CgogIC8vIHRyYW5zaXRpb24gZWZmZWN0CiAgalF1ZXJ5KCcjZmV1X21hc2snKS5mYWRlSW4oMTAwMCk7CiAgalF1ZXJ5KCcjZmV1X21hc2snKS5mYWRlVG8oInNsb3ciLDAuOCk7CgogIC8vIGdldCB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBwb3B1cAogIHZhciB3aW5IZWlnaHQgPSBqUXVlcnkod2luZG93KS5oZWlnaHQoKTsKICB2YXIgd2luV2lkdGggPSBqUXVlcnkod2luZG93KS53aWR0aCgpOwoKICB2YXIgcG9wdXBIZWlnaHQgPSBqUXVlcnkoJyNmZXVfbW9kYWwnKS5oZWlnaHQoKTsKICB2YXIgcG9wdXBXaWR0aCAgPSBqUXVlcnkoJyNmZXVfbW9kYWwnKS53aWR0aCgpOwoKICB2YXIgdG9wID0gd2luSGVpZ2h0LzIgLSBwb3B1cEhlaWdodC8yOwogIHZhciBsZWZ0ID0gd2luV2lkdGgvMiAtIHBvcHVwV2lkdGgvMjsKICAvLyBzZXQgdGhlIHBvcHVwIHdpbmRvdyB0byBjZW50ZXIKICBqUXVlcnkoJyNmZXVfbW9kYWwnKS5jc3Moeyd0b3AnOnRvcCwnbGVmdCc6bGVmdH0pOwoKICAvLyB0cmFuc2l0aW9uIGVmZmVjdAogIGpRdWVyeSgnI2ZldV9tb2RhbCcpLmZhZGVJbigyMDAwKTsKfQoKZnVuY3Rpb24gZmV1X3VzZXJfY2FuY2VsbGVkKCkKewogIC8vIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBtYXkgYmUgY3VzdG9taXplZCB0byBhbGxvdyBkaXNwbGF5aW5nIGEgbWVzc2FnZSB0byB0aGUgdXNlcgogIC8vIHRvIGluZGljYXRlIHRoYXQgdGhleSBtYXkgYmUgbG9nZ2VkIG91dCBhdCBhbnkgdGltZS4KICBhbGVydCgnWW91IGhhdmUgY2hvc2VuIHRvIGRpc3JlZ2FyZCB0aGUgc2Vzc2lvbiB3YXJuaW5nLCB5b3UgbWF5IGNvbnRpbnVlIHRvIGJyb3dzZSB0aGlzIHNpdGUgaG93ZXZlciBzb21lIGZ1bmN0aW9uYWxpdHkgbWF5IGJlIHVuYXZhaWxhYmxlIHRvIHlvdSB1bnRpbCB5b3UgbG9naW4gYWdhaW4nKTsKfQoKLy8gKgovLyAqIGRvIG5vdCBtb2RpZnkgYmVsb3cgaGVyZSB1bmxlc3MgeW91IGFyZSBhbiBleHBlcmllbmNlZCBqcXVlcnkgcHJvZ3JhbW1lciAqCi8vICoKCmlmKCB0aW1lcl9pbnRlcnZhbCA8PSAwICkKICB7CiAgICAgdGltZXJfaW50ZXJ2YWwgPSAwOwogIH0KdmFyIGRpYWxvZ2NvbnRlbnRzID0gJ3svbGl0ZXJhbH17JGZldV90aGVmb3JtfXtsaXRlcmFsfSc7CgoKLy8gd2UgaGF2ZSBqUXVlcnkKalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIC8vIGNyZWF0ZSBhIG5ldyBpZCBmb3Igb3VyIHN0dWZmCiAgalF1ZXJ5KCdib2R5JykuYXBwZW5kKCc8ZGl2IGlkPSJmZXVfYm9keSI+PC9kaXY+Jyk7CiAgCiAgLy8gY3JlYXRlIHRoZSBtYXNrIGFuZCBhcHBlbmQgaXQgdG8gdGhlIGRvbQogIGpRdWVyeSgnI2ZldV9ib2R5JykuYXBwZW5kKCc8ZGl2IGlkPSJmZXVfbWFzayI+PC9kaXY+Jyk7CgogIC8vIGNyZWF0ZSB0aGUgbW9kYWwgZGlhbG9nIGFuZCBhcHBlbmQgaXQgdG8gdGhlIERPTQogIGpRdWVyeSgnI2ZldV9ib2R5JykuYXBwZW5kKCc8ZGl2IGlkPSJmZXVfbW9kYWwiPicrZGlhbG9nY29udGVudHMrJzwvZGl2PicpOwogIAogIC8vIGFuZCBhIGp1bmsgZGl2CiAgalF1ZXJ5KCcjZmV1X2JvZHknKS5hcHBlbmQoJzxkaXYgaWQ9ImZldV9qdW5rIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjwvZGl2PicpOwoKICAvLyBoYW5kbGUgY2xpY2sgZXZlbnRzCiAgalF1ZXJ5KCcjZmV1X21vZGFsIGlucHV0W25hbWU9ZmV1X29rXScpLmNsaWNrKGZ1bmN0aW9uKGUpewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKICAgIC8vIGRvIHRoZSBhamF4IHJlcXVlc3QKICAgIHZhciB1cmwgPSAney9saXRlcmFsfXskcmVzZXRfdXJsfXtsaXRlcmFsfSc7CiAgICB2YXIgdXJsID0gdXJsLnJlcGxhY2UoL2FtcDsvZywnJyk7CiAgICBqUXVlcnkoJyNmZXVfanVuaycpLmxvYWQodXJsKTsKCiAgICAvLyBhbmQgZG9uZS4KICAgIGZldV9jbG9zZV9tb2RhbCgpOwogICB9KTsKICBqUXVlcnkoJyNmZXVfbW9kYWwgaW5wdXRbbmFtZT1mZXVfY2FuY2VsXScpLmNsaWNrKGZ1bmN0aW9uKGUpewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgZmV1X2Nsb3NlX21vZGFsKCk7CiAgICBmZXVfdXNlcl9jYW5jZWxsZWQoKTsKICB9KTsKICBqUXVlcnkoJ2FbbmFtZT1mZXVfbWFudWFsX3Jlc2V0XScpLmNsaWNrKGZ1bmN0aW9uKGUpewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgZmV1X29wZW5fbW9kYWwoKTsKICB9KTsKCiAgLy8gY3JlYXRlIG91ciB0aW1lcgogIGlmKCB0aW1lcl9pbnRlcnZhbCA+IDAgKQogICAgIHsKICAgICAgICBzZXRUaW1lb3V0KGZldV9vcGVuX21vZGFsLHRpbWVyX2ludGVydmFsICogMTAwMCk7CiAgICAgfQoKfSk7Ci8vXV0+Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9Cgp7KiByZXF1aXJlZCBjc3MgKn0Ke2xpdGVyYWx9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNmZXVfbW9kYWwgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiA5OTk5OwogIGRpc3BsYXk6IG5vbmU7Cn0KI2ZldV9tYXNrIHsKICB0b3A6IDA7CiAgbGVmdDogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgei1pbmRleDogOTAwMDsKICBkaXNwbGF5OiBub25lOwp9Cjwvc3R5bGU+CnsvbGl0ZXJhbH0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_verifyform.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogb3JpZ2luYWwgdmVyaWZpY2F0aW9uIGZvcm0gKn0KPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtb2QtPkxhbmcoJ2luZm9fdmVyaWZ5X2lkZW50aXR5Jyl9PC9kaXY+Cntmb3JtX3N0YXJ0IHVpZD0kdWlkfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICA8bGFiZWw+eyRtb2QtPkxhbmcoJ2NvZGUnKX06IDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybV9jb250cm9sIiBuYW1lPSJ7JGFjdGlvbmlkfWNvZGUiIHZhbHVlPSJ7JGNvZGV9IiByZXF1aXJlZC8+PC9sYWJlbD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZmV1X3N1Ym1pdCIgY2xhc3M9ImJ0biBidG5fYWN0aXZlIj57JG1vZC0+TGFuZygndmVyaWZ5Jyl9PC9idXR0b24+CiAgPC9kaXY+CjwvZGl2Pgp7Zm9ybV9lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_viewuser_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdmlldyB1c2VyIHRlbXBsYXRlICp9CjxwPnskbW9kLT5MYW5nKCdpZCcpfTombmJzcDt7JHVzZXJpbmZvLmlkfTwvcD4KPHA+eyRtb2QtPkxhbmcoJ3VzZXJuYW1lJyl9OiZuYnNwO3skdXNlcmluZm8udXNlcm5hbWV9PC9wPgo8cD57JG1vZC0+TGFuZygnZW1haWwnKX06Jm5ic3A7PGEgaHJlZj0ibWFpbHRvOnskZW1haWxfYWRkcmVzc30iPnskZW1haWxfYWRkcmVzc308L3A+CjxwPnskbW9kLT5MYW5nKCdleHBpcmVzJyl9OiZuYnNwO3skdXNlcmluZm8uZXhwaXJlc308L3A+Cntmb3JlYWNoIGZyb209JHVzZXJfcHJvcGVydGllcyBpdGVtPSdlbnRyeSd9CntpZiAkZW50cnkudHlwZSAhPSAwfQo8cD57JGVudHJ5LnByb21wdH06Jm5ic3A7eyRlbnRyeS5kYXRhfTwvcD4Key9pZn0Key9mb3JlYWNofQo=]]></data>
	</file>
	<file>
	  <filename>/templates/propertiesform.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKSB9CiAge2lmIGlzc2V0KCRlcnJvcikgfQogICAgPHAgY2xhc3M9InJlZCI+eyRtZXNzYWdlfTwvZm9udD48L3A+CiAge2Vsc2V9CiAgICA8cD57JG1lc3NhZ2V9PC9wPgogIHsvaWZ9CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogIDxwIGNsYXNzPSJncmlkXzgiIHN0eWxlPSJtYXJnaW4tbGVmdDogMDsiPgogICAge2lmIGlzc2V0KCRhZGRfdXJsKX0KICAgICAgPGEgaHJlZj0ieyRhZGRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdhZGRwcm9wJyl9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnfSB7JG1vZC0+TGFuZygnYWRkcHJvcCcpfTwvYT4KICAgIHsvaWZ9CiAgPC9wPgogIDxwIGNsYXNzPSJncmlkXzQgdGV4dC1yaWdodCI+eyRwcm9wY291bnR9Jm5ic3A7eyRwcm9wc2ZvdW5kfTwvcD4KICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgo8L2Rpdj4KCntpZiAkcHJvcGNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JG5hbWV0ZXh0fTwvdGg+CgkJCTx0aD57JHByb21wdHRleHR9PC90aD4KCQkJPHRoPnskdHlwZXRleHR9PC90aD4KCQkJPHRoPnskbGVuZ3RodGV4dH08L3RoPgoJCQk8dGg+eyRtb2QtPkxhbmcoJ3VuaXF1ZScpfTwvdGg+CgkJCTx0aD57JG1vZC0+TGFuZygnZW5jcnlwdGVkJyl9PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JHByb3BzIGl0ZW09cHJvcGV9CgkJPHRyIGNsYXNzPSJ7JHByb3BlLT5yb3djbGFzc30iPgoJCQk8dGQ+eyRwcm9wZS0+bmFtZX08L3RkPgoJCQk8dGQ+eyRwcm9wZS0+cHJvbXB0fTwvdGQ+CgkJCTx0ZD57JHByb3BlLT50eXBlfTwvdGQ+CgkJCTx0ZD57JHByb3BlLT5sZW5ndGh9PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntpZiAkcHJvcGUtPmZvcmNlX3VuaXF1ZX17JG1vZC0+TGFuZygneWVzJyl9e2Vsc2V9eyRtb2QtPkxhbmcoJ25vJyl9ey9pZn08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e2lmICRwcm9wZS0+ZW5jcnlwdH17JG1vZC0+TGFuZygneWVzJyl9ey9pZn08L3RkPgoJCQk8dGQ+eyRwcm9wZS0+ZWRpdGxpbmt8ZGVmYXVsdDonJ308L3RkPgoJCQk8dGQ+CgkJCSAge2lmIGlzc2V0KCRwcm9wZS0+ZGVsZXRlX3VybCl9CgkJCSAgICA8YSBocmVmPSJ7JHByb3BlLT5kZWxldGVfdXJsfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlJyl9PC9hPgoJCQkgIHsvaWZ9CgkJCTwvdGQ+CgkJPC90cj4Key9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/protectedcontent.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0cmlwfQp7aWYgJGZldV9hdXRob3JpemVkID09IDB9CiAgICB7aWYgJGFjdGlvbiA9PSAncmVkaXJlY3QnfSAKICAgICAge2lmICRmZXVfcGFnZSA9PSAtMX0KICAgICAgICB7JG1vZC0+TGFuZygncGFnZXR5cGVfdW5hdXRob3JpemVkJyl9CiAgICAgIHtlbHNlfQogICAgICAgIHtyZWRpcmVjdF9wYWdlIHBhZ2U9JGZldV9wYWdlfQogICAgICB7L2lmfQogICAge2Vsc2VpZiAkc2hvd193aGF0ID09ICdjb250ZW50X2VuJ30KICAgICAge2lmICRkb2NhcHRjaGEgPT0gMX0KICAgICAgICB7RnJvbnRFbmRVc2VycyBmb3JtPWxvZ2lufQogICAgICB7ZWxzZX0KICAgICAgICB7RnJvbnRFbmRVc2VycyBmb3JtPWxvZ2luIG5vY2FwdGNoYT0xfQogICAgICB7L2lmfQogICAgey9pZn0Ke2Vsc2V9CiAgIHskb3V0cHV0fGRlZmF1bHQ6Jyd9CnsvaWZ9Cnsvc3RyaXB9]]></data>
	</file>
	<file>
	  <filename>/templates/resetsession_templateform.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90ZW1wbGF0ZTF9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RlbXBsYXRlMX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fSZuYnNwO3skZGVmYXVsdHN9PC9wPgo8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/templateform.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxwPnskcHJvbXB0X3RlbXBsYXRlfTwvcD4KeyRpbnB1dF90ZW1wbGF0ZX0KPGJyLz4KeyRzdWJtaXR9eyRkZWZhdWx0c30KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/userhistory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRtZXNzYWdlKX0KICB7aWYgaXNzZXQoJGVycm9yKX0KICAgIDxmb250IGNvbG9yPSJyZWQiPjxoND57JG1lc3NhZ2V9PC9oND48L2ZvbnQ+CiAge2Vsc2V9CiAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRtZXNzYWdlfTwvZGl2PgogIHsvaWZ9CnsvaWZ9Cgp7aWYgIWlzc2V0KCRtdWx0aXVzZXIpfQo8aDQ+eyR0aXRsZV91c2VyaGlzdG9yeX0mbmJzcDt7JGZvcn0mbmJzcDt7JHVzZXJfdXNlcm5hbWV9PC9oND4Key9pZn0KeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9ImNfZnVsbCI+CjxmaWVsZHNldCBjbGFzcz0iZ3JpZF82Ij4KPGxlZ2VuZD57JHRpdGxlX2xlZ2VuZF9maWx0ZXJ9OjwvbGVnZW5kPgogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRwcm9tcHRfZmlsdGVyX2V2ZW50dHlwZX06PC9wPgogICAgIDxwIGNsYXNzPSJncmlkXzkiPnskaW5wdXRfZmlsdGVyX2V2ZW50dHlwZX08L3A+CiAgICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KICA8L2Rpdj4Ke2lmIGlzc2V0KCRtdWx0aXVzZXIpfQogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRwcm9tcHRfdXNlcm5hbWVfcmVnZXh9OjwvcD4KICAgICA8cCBjbGFzcz0iZ3JpZF85Ij57JGlucHV0X3VzZXJuYW1lX3JlZ2V4fTwvcD4KICAgICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgogIDwvZGl2Pgp7L2lmfQogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRwcm9tcHRfZmlsdGVyX2RhdGV9OjwvcD4KICAgICA8cCBjbGFzcz0iZ3JpZF85Ij57JGlucHV0X2ZpbHRlcl9kYXRlfTwvcD4KICAgICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRwcm9tcHRfcGFnZWxpbWl0fTo8L3A+CiAgICAgPHAgY2xhc3M9ImdyaWRfOSI+eyRpbnB1dF9wYWdlbGltaXR9PC9wPgogICAgIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CiAgPC9kaXY+CjwvZmllbGRzZXQ+CjxmaWVsZHNldCBjbGFzcz0iZ3JpZF82Ij4KPGxlZ2VuZD57JHRpdGxlX2xlZ2VuZF9ncm91cHNvcnR9OjwvbGVnZW5kPgogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRwcm9tcHRfZ3JvdXBfaXB9OjwvcD4KICAgICA8cCBjbGFzcz0iZ3JpZF85Ij57JGlucHV0X2dyb3VwX2lwfTwvcD4KICAgICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRwcm9tcHRfc29ydG9yZGVyfTo8L3A+CiAgICAgPHAgY2xhc3M9ImdyaWRfOSI+eyRpbnB1dF9zb3J0b3JkZXJ9PC9wPgogICAgIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CiAgPC9kaXY+CjwvZmllbGRzZXQ+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICA8cCBjbGFzcz0iZ3JpZF85Ij57JHN1Ym1pdH0mbmJzcDt7JHJlc2V0fTwvcD4KICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KPC9kaXY+CnskZm9ybWVuZH0KPGJyLz4KCjxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgPGRpdiBjbGFzcz0iZ3JpZF82IiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDA7Ij4KICAgIHskcmVjb3JkY291bnR9Jm5ic3A7eyRwcm9tcHRfcmVjb3Jkc2ZvdW5kfQogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImdyaWRfNiB0ZXh0LXJpZ2h0Ij4KICAgIHtpZiAkaXRlbWNvdW50ID4gMH17aWYgJHBhZ2Vjb3VudCA+IDF9e2lmICRwYWdlbnVtYmVyID4gMX17JGZpcnN0cGFnZX0mbmJzcDt7JHByZXZwYWdlfSZuYnNwO3svaWZ9CiAgICAgIHskcGFnZW51bWJlcn0mbmJzcDt7JG9mdGV4dH0mbmJzcDt7JHBhZ2Vjb3VudH0KICAgICAge2lmICRwYWdlbnVtYmVyIDwgJHBhZ2Vjb3VudH0KICAgICAgJm5ic3A7eyRuZXh0cGFnZX0mbmJzcDt7JGxhc3RwYWdlfQogICAgey9pZn0KICAgIHsvaWZ9CiA8L2Rpdj4KPC9kaXY+Cgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4Ke2lmIGlzc2V0KCRtdWx0aXVzZXIpfQoJPHRoPnskcHJvbXB0X3VzZXJuYW1lfTwvdGg+CnsvaWZ9Cgk8dGg+eyRwcm9tcHRfaXBhZGRyZXNzfTwvdGg+Cgk8dGg+eyRwcm9tcHRfYWN0aW9ufTwvdGg+Cgk8dGg+eyRwcm9tcHRfcmVmZGF0ZX08L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KICA8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSI+CntpZiBpc3NldCgkbXVsdGl1c2VyKX0KICAgICAgICA8dGQ+eyRlbnRyeS0+dXNlcm5hbWV9PC90ZD4Key9pZn0KCTx0ZD57JGVudHJ5LT5pcGFkZHJlc3N9PC90ZD4KCTx0ZD57JGVudHJ5LT5hY3Rpb259PC90ZD4KCTx0ZD57JGVudHJ5LT5yZWZkYXRlfGRhdGVfZm9ybWF0OiIlYiAlZSwgJVkgLSAlWCJ9PC90ZD4KICA8L3RyPgp7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/userlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovKjwhW0NEQVRBWyovCiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgJCgnI2ZldV9maWx0ZXJib3gnKS5jbGljayhmdW5jdGlvbigpewogICAgaWYoIHRoaXMuY2hlY2tlZCApIHsKICAgICAgJCgnI2ZldV9maWx0ZXJmb3JtJykuc2hvdygpOwogICAgfQogICAgZWxzZSB7CiAgICAgICQoJyNmZXVfZmlsdGVyZm9ybScpLmhpZGUoKTsKICAgIH0KICB9KTsKCiAgJCgnI2RvYnVsaycpLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICB2YXIgbGVuID0gJCgnaW5wdXQuYnVsa3NlbGVjdDpjaGVja2VkJykubGVuZ3RoOwogICAgIGlmKCBsZW4gPT0gMCApIHsKICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwoJY21zX2FsZXJ0KCd7JG1vZC0+TGFuZygnYnVsa19zZWxlY3RvbmUnfGNtc19lc2NhcGUpfScpOwogICAgIH0KICB9KQp9KTsKZnVuY3Rpb24gc2VsZWN0X2FsbCgpCnsKICBjYiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCd7JGFjdGlvbmlkfXNlbGVjdGVkW10nKTsKICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWxlY3RhbGwnKTsKICBzdCA9IGVsLmNoZWNrZWQ7CiAgZm9yKCBpID0gMDsgaSA8IGNiLmxlbmd0aDsgaSsrICkgewogICAgaWYoIGNiW2ldLnR5cGUgPT0gImNoZWNrYm94IiApICBjYltpXS5jaGVja2VkPXN0OwogIH0KfQoKZnVuY3Rpb24gY29uZmlybV9kZWxldGUoKQp7CiAgdmFyIGNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoJ3skYWN0aW9uaWR9c2VsZWN0ZWRbXScpOwogIHZhciBjb3VudCA9IDA7CiAgZm9yKCBpID0gMDsgaSA8IGNiLmxlbmd0aDsgaSsrICkgewogICAgIGlmKCBjYltpXS5jaGVja2VkICkgY291bnQrKzsKICB9CgogIGlmKCBjb3VudCA+IDI1MCApIHsKICAgICBhbGVydCgneyRtb2QtPkxhbmcoJ2Vycm9yX3Rvb21hbnlzZWxlY3RlZCcpfSd8Y21zX2VzY2FwZSk7CiAgICAgcmV0dXJuIGZhbHNlOwogIH0KICByZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJyl9Jyk7Cn0KLypdXT4gKi8KPC9zY3JpcHQ+Cgp7JHN0YXJ0Zm9ybX0KPGRpdiBpZD0iZmV1X2ZpbHRlcmZvcm0iIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+Cjx0YWJsZSB3aWR0aD0iMTAwJSI+Cjx0cj48dGQgd2lkdGg9IjUwJSIgdmFsaWduPSJ0b3AiPgogIDxmaWVsZHNldD4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCdmaWx0ZXInKX06PC9sZWdlbmQ+CiAge2lmIGlzc2V0KCRncm91cHMpfQogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgIDxwIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdncm91cCcpfTo8L3A+CiAgIDxwIGNsYXNzPSJncmlkXzkiPgogICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfZ3JvdXAiPgogICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZ3JvdXBzIHNlbGVjdGVkPSRmaWx0ZXIuZ3JvdXB9CiAgICAgPC9zZWxlY3Q+CiAgIDwvcD4KICA8L2Rpdj4KICB7L2lmfQoKICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICA8cCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygndXNlcmZpbHRlcicpfTo8L3A+CiAgIDxwIGNsYXNzPSJncmlkXzkiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9yZWdleCIgdmFsdWU9InskZmlsdGVyLnJlZ2V4fSIvPgogICA8L3A+CiAgIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIj4KICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb3BlcnR5ZmlsdGVyJyl9OjwvcD4KICAgPHAgY2xhc3M9ImdyaWRfOSI+CiAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9wcm9wZXJ0eXNlbCI+e2h0bWxfb3B0aW9ucyBvcHRpb25zPSRkZWZubGlzdCBzZWxlY3RlZD0kZmlsdGVyLnByb3BzZWx9PC9zZWxlY3Q+CiAgIDwvcD4KICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICA8cCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygndmFsdWVyZWdleCcpfTo8L3A+CiAgIDxwIGNsYXNzPSJncmlkXzkiPgogICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9wcm9wZXJ0eSIgdmFsdWU9InskZmlsdGVyLnByb3B2YWx9IiBzaXplPSIzMCIvPgogICA8L3A+CiAgIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImNfZnVsbCI+CiAgIDxwIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfbG9nZ2VkaW5vbmx5Jyl9OjwvcD4KICAgPHAgY2xhc3M9ImdyaWRfOSI+CiAgICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT0nZmlsdGVyX2xvZ2dlZGlub25seScgc2VsZWN0ZWQ9JGZpbHRlci5sb2dnZWRpbm9ubHl9CiAgIDwvcD4KICAgPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwiPgogICA8cCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygndXNlcmxpbWl0Jyl9OjwvcD4KICAgPHAgY2xhc3M9ImdyaWRfOSI+CiAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9saW1pdCI+e2h0bWxfb3B0aW9ucyBvcHRpb25zPSRsaW1pdHMgc2VsZWN0ZWQ9JGZpbHRlci5saW1pdH08L3NlbGVjdD4KICAgPC9wPgogICA8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2PgogIDwvZGl2PgogIDwvZmllbGRzZXQ+CjwvdGQ+PHRkIHZhbGlnbj0idG9wIj4KICA8ZmllbGRzZXQ+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygndmlldycpfTo8L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwcm9tcHRfdmlld3Byb3BzJyl9OjwvcD4KICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl92aWV3cHJvcHNbXSIgbXVsdGlwbGU9Im11bHRpcGxlIiBzaXplPSI1Ij4KICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kYWxsZGVmbnMgc2VsZWN0ZWQ9JHZpZXdwcm9wc30KICAgICA8L3NlbGVjdD4KICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3NvcnRieScpfTo8L3A+CiAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1maWx0ZXJfc29ydGJ5Ij57aHRtbF9vcHRpb25zIG9wdGlvbnM9JHNvcnRsaXN0IHNlbGVjdGVkPSRmaWx0ZXIuc29ydGJ5fTwvc2VsZWN0PgogICA8L3A+CiAgPC9kaXY+CjwvZmllbGRzZXQ+CjwvdGQ+PC90cj4KPHRyPgogIDx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZmlsdGVyIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2FwcGx5ZmlsdGVyJyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWZpbHRlcl9yZXNldCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldCcpfSIvPgogIDwvdGQ+CjwvdHI+CjwvdGFibGU+Cjxici8+CjwvZGl2PnsqICNmZXVfZmlsdGVyZm9ybSAqfQoKPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzkiIHN0eWxlPSJtYXJnaW4tbGVmdDogMDsiPgogICAgPGlucHV0IGlkPSJmZXVfZmlsdGVyYm94IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiLz48bGFiZWwgZm9yPSJmZXVfZmlsdGVyYm94Ij57JG1vZC0+TGFuZygndmlld19maWx0ZXInKX0ge2lmICRmaWx0ZXJfYXBwbGllZH0oeyRtb2QtPkxhbmcoJ2FwcGxpZWQnKX0pey9pZn08L2xhYmVsPiZuYnNwOwogICAgPHNwYW4gdGl0bGU9InskbW9kLT5MYW5nKCd1c2Vyc2luZ3JvdXAnKX0iPntjZ2ltYWdlIGltYWdlPSd1c2Vycy5naWYnIGFsdD0iIn0gPSB7JG51bXVzZXJzfTwvc3Bhbj4mbmJzcDsKICAgIHtpZiBpc3NldCgkYWRkX3VybCl9PGEgaHJlZj0ieyRhZGRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCd0aXRsZV9hZGRfdXNlcicpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJ30geyRtb2QtPkxhbmcoJ2FkZHVzZXInKX08L2E+ey9pZn0KICAgIHtpZiBpc3NldCgkaW1wb3J0X3VybCl9PGEgaHJlZj0ieyRpbXBvcnRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCd0aXRsZV9pbXBvcnRfdXNlcnMnKX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vaW1wb3J0LmdpZid9IHskbW9kLT5MYW5nKCdwcm9tcHRfaW1wb3J0dXNlcnMnKX08L2E+ey9pZn0KICAgIHtpZiBpc3NldCgkZXhwb3J0X3VybCl9PGEgaHJlZj0ieyRleHBvcnRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCd0aXRsZV9leHBvcnRfdXNlcnMnKX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vZXhwb3J0LmdpZid9IHskbW9kLT5MYW5nKCdwcm9tcHRfZXhwb3J0dXNlcnMnKX08L2E+ey9pZn0KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJncmlkXzMgdGV4dC1yaWdodCI+CiAge2lmICRpdGVtY291bnQgPiAwfQogICAge2lmIGlzc2V0KCRuYXZpZ2F0aW9uLmZpcnN0cGFnZV91cmwpfQogICAgICA8YSBocmVmPSJ7JG5hdmlnYXRpb24uZmlyc3RwYWdlX3VybH0iPnskbW9kLT5MYW5nKCdmaXJzdHBhZ2UnKX08L2E+Jm5ic3A7CiAgICAgIDxhIGhyZWY9InskbmF2aWdhdGlvbi5wcmV2cGFnZV91cmx9Ij57JG1vZC0+TGFuZygncHJldnBhZ2UnKX08L2E+Jm5ic3A7CiAgICB7L2lmfQogICAgeyRtb2QtPkxhbmcoJ3BhZ2UnKX0geyRuYXZpZ2F0aW9uLmN1cnBhZ2V9IHskbW9kLT5MYW5nKCdwcm9tcHRfb2YnKX0geyRuYXZpZ2F0aW9uLm5wYWdlc30KICAgIHtpZiBpc3NldCgkbmF2aWdhdGlvbi5sYXN0cGFnZV91cmwpfQogICAgICAmbmJzcDs8YSBocmVmPSJ7JG5hdmlnYXRpb24ubmV4dHBhZ2VfdXJsfSI+eyRtb2QtPkxhbmcoJ25leHRwYWdlJyl9PC9hPgogICAgICAmbmJzcDs8YSBocmVmPSJ7JG5hdmlnYXRpb24ubGFzdHBhZ2VfdXJsfSI+eyRtb2QtPkxhbmcoJ2xhc3RwYWdlJyl9PC9hPgogICAgey9pZn0KICB7L2lmfQogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CjwvZGl2Pgp7aWYgIWlzc2V0KCRncm91cHMpfQogIDxkaXYgY2xhc3M9InJlZCBjZW50ZXIiPnskbW9kLT5MYW5nKCdub2dyb3VwcycpfTwvZGl2Pgp7ZWxzZWlmICRpdGVtY291bnQgPiAwfQo8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+eyR1c2VybmFtZXRleHR9PC90aD4KCQkJPHRoPnskY3JlYXRlZHRleHR9PC90aD4KCQkJPHRoPnskZXhwaXJlc3RleHR9PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAge2lmIGlzc2V0KCR2aWV3cHJvcHMpICYmIGlzX2FycmF5KCR2aWV3cHJvcHMpfQogICAgICAgICAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSR2aWV3cHJvcHMgaXRlbT0nb25lJ30KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskYWxsZGVmbnMuJG9uZX08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICAgICAgICAgICAgICAgICAgIHsvaWZ9CgkJCTx0aCBjbGFzcz0icGFnZWljb24ge2xpdGVyYWx9e3NvcnRlcjogZmFsc2V9ey9saXRlcmFsfSI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24ge2xpdGVyYWx9e3NvcnRlcjogZmFsc2V9ey9saXRlcmFsfSI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij4mbmJzcDs8L3RoPgoJCQk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPjxpbnB1dCBpZD0ic2VsZWN0YWxsIiB0eXBlPSJjaGVja2JveCIgbmFtZT0ianVuayIgb25jbGljaz0ic2VsZWN0X2FsbCgpOyIvPjwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CgkJPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSdyb3cxLHJvdzInfSI+CgkJCTx0ZD4KCQkJICB7aWYgJGVudHJ5LT5kaXNhYmxlZH0KCQkJICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiIHRpdGxlPSJ7JG1vZC0+TGFuZygnaW5mb19kaXNhYmxlZCcpfSI+ISEmbmJzcDsgeyRlbnRyeS0+dXNlcm5hbWV9PC9zcGFuPgoJCQkgIHtlbHNlIGlmICRlbnRyeS0+bXVzdF92YWxpZGF0ZX0KCQkJICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IG9yYW5nZTsiIHRpdGxlPSJ7JG1vZC0+TGFuZygnaW5mb19tdXN0X3ZhbGlkYXRlJyl9Ij4qKiZuYnNwOyB7JGVudHJ5LT51c2VybmFtZX08L3NwYW4+CgkJCSAge2Vsc2V9CgkJCSAgICAgeyRlbnRyeS0+dXNlcm5hbWV9CgkJCSAgey9pZn0KCQkJPC90ZD4KCQkJPHRkPnskZW50cnktPmNyZWF0ZWR9PC90ZD4KCQkJPHRkPnskZW50cnktPmV4cGlyZXN9PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAge2lmIGlzc2V0KCR2aWV3cHJvcHMpICYmIGlzc2V0KCRlbnRyeS0+ZXh0cmEpfQogICAgICAgICAgICAgICAgICAgICAgICB7Zm9yZWFjaCBmcm9tPSR2aWV3cHJvcHMgaXRlbT0nb25lJ30KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPntpZiBpc3NldCgkZW50cnktPmV4dHJhLiRvbmUpICYmICRlbnRyeS0+ZXh0cmEuJG9uZX17JGVudHJ5LT5leHRyYS4kb25lfXsvaWZ9PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgey9mb3JlYWNofQogICAgICAgICAgICAgICAgICAgICAgICB7L2lmfQoJCQk8dGQ+CgkJCSAge2lmICRlbnRyeS0+ZGlzYWJsZWR9CgkJCSAgICA8YSBocmVmPSJ7bW9kdWxlX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2VuYWJsZV91c2VyIHVpZD0kZW50cnktPmlkIHN0YXRlPTF9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicgYWx0PSRtb2QtPkxhbmcoJ2VuYWJsZV91c2VyJyl9PC9hPgoJCQkgIHtlbHNlfQoJCQkgICAgPGEgaHJlZj0ie21vZHVsZV9hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lbmFibGVfdXNlciB1aWQ9JGVudHJ5LT5pZCBzdGF0ZT0wfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS90cnVlLmdpZicgYWx0PSRtb2QtPkxhbmcoJ2Rpc2FibGVfdXNlcicpfTwvYT4KCQkJICB7L2lmfQoJCQk8L3RkPgoJCQk8dGQ+e2lmIGlzc2V0KCRlbnRyeS0+bG9nb3V0bGluayl9eyRlbnRyeS0+bG9nb3V0bGlua317L2lmfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5oaXN0b3J5bGlua3xkZWZhdWx0OicnfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua3xkZWZhdWx0OicnfTwvdGQ+CgkJCTx0ZD57aWYgaXNzZXQoJGVudHJ5LT5kZWxldGVsaW5rKX17JGVudHJ5LT5kZWxldGVsaW5rfXsvaWZ9PC90ZD4KCQkJPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9ImJ1bGtzZWxlY3QiIG5hbWU9InskYWN0aW9uaWR9c2VsZWN0ZWRbXSIgdmFsdWU9InskZW50cnktPmlkfSIvPjwvdGQ+CgkJPC90cj4Key9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Key9pZn0Ke2lmICRpdGVtY291bnQgPiAwICYmICFlbXB0eSgkYnVsa19hY3Rpb25zKX0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7Ij48L2Rpdj4KICAgIDxkaXYgc3R5bGU9ImZsb2F0OiByaWdodDsiPgogICAgICA8bGFiZWw+eyRtb2QtPkxhbmcoJ3dpdGhfc2VsZWN0ZWQnKX06CiAgICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1idWxrX2FjdGlvbiI+Cgkge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRidWxrX2FjdGlvbnN9CgkgPC9zZWxlY3Q+CiAgICAgIDwvbGFiZWw+CiAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJkb2J1bGsiIG5hbWU9InskYWN0aW9uaWR9ZG9idWxrIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPC9kaXY+CiAgPC9kaXY+CnsvaWZ9CnskZW5kZm9ybX0K]]></data>
	</file>
</module>
