PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iRVVDLUtSIiA/Pgo8IURPQ1RZUEUgbWFudWFscGFnZSBTWVNURU0gIi4vc3R5bGUvbWFudWFscGFnZS5kdGQiPgo8P3htbC1zdHlsZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSIuL3N0eWxlL21hbnVhbC5rby54c2wiPz4KPCEtLSBFbmdsaXNoIFJldmlzaW9uOiAxNTE0MDg6MTIyMTY3MCAob3V0ZGF0ZWQpIC0tPgoKPCEtLQogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCiBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGgKIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4KIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wCiAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aAogdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0tPgoKPG1hbnVhbHBhZ2UgbWV0YWZpbGU9ImZpbHRlci54bWwubWV0YSI+CgogIDx0aXRsZT7HysXNPC90aXRsZT4KCiAgPHN1bW1hcnk+CiAgICA8cD7AzCC5rryttMIgvsbGxMShv6G8rSDHysXNuKYgu+e/68fPtMIguea5/cC7ILyzuO3H0bTZLjwvcD4KICA8L3N1bW1hcnk+CgogIDxzZWN0aW9uIGlkPSJmaWx0ZXJzIj4KICAgIDx0aXRsZT7HysXNPC90aXRsZT4KICAgIDxyZWxhdGVkPgogICAgICA8bW9kdWxlbGlzdD4KICAgICAgICA8bW9kdWxlPm1vZF9kZWZsYXRlPC9tb2R1bGU+CiAgICAgICAgPG1vZHVsZT5tb2RfZXh0X2ZpbHRlcjwvbW9kdWxlPgogICAgICAgIDxtb2R1bGU+bW9kX2luY2x1ZGU8L21vZHVsZT4KICAgICAgPC9tb2R1bGVsaXN0PgogICAgICA8ZGlyZWN0aXZlbGlzdD4KICAgICAgICA8ZGlyZWN0aXZlIG1vZHVsZT0ibW9kX21pbWUiPkFkZElucHV0RmlsdGVyPC9kaXJlY3RpdmU+CiAgICAgICAgPGRpcmVjdGl2ZSBtb2R1bGU9Im1vZF9taW1lIj5BZGRPdXRwdXRGaWx0ZXI8L2RpcmVjdGl2ZT4KICAgICAgICA8ZGlyZWN0aXZlIG1vZHVsZT0ibW9kX21pbWUiPlJlbW92ZUlucHV0RmlsdGVyPC9kaXJlY3RpdmU+CiAgICAgICAgPGRpcmVjdGl2ZSBtb2R1bGU9Im1vZF9taW1lIj5SZW1vdmVPdXRwdXRGaWx0ZXI8L2RpcmVjdGl2ZT4KICAgICAgICA8ZGlyZWN0aXZlIG1vZHVsZT0ibW9kX2V4dF9maWx0ZXIiPkV4dEZpbHRlckRlZmluZTwvZGlyZWN0aXZlPgogICAgICAgIDxkaXJlY3RpdmUgbW9kdWxlPSJtb2RfZXh0X2ZpbHRlciI+RXh0RmlsdGVyT3B0aW9uczwvZGlyZWN0aXZlPgogICAgICAgIDxkaXJlY3RpdmUgbW9kdWxlPSJjb3JlIj5TZXRJbnB1dEZpbHRlcjwvZGlyZWN0aXZlPgogICAgICAgIDxkaXJlY3RpdmUgbW9kdWxlPSJjb3JlIj5TZXRPdXRwdXRGaWx0ZXI8L2RpcmVjdGl2ZT4KICAgICAgPC9kaXJlY3RpdmVsaXN0PgogICAgPC9yZWxhdGVkPgoKICAgIDxwPjxlbT7HysXNKGZpbHRlcik8L2VtPrTCILytufawoSC6uLO7sMWzqiC53rTCIMDat+G/oQogICAgwPu/67XHtMIgwNu+98DMtNkuIMWstvPAzL7wxq6woSC8rbn2v6Gw1CC6uLO7tMIgwNq34bTCCiAgICA8ZW0+wNS3wsfKxc0oaW5wdXQgZmlsdGVyKTwvZW0+sKEgw7O4rsfPsO0sILytufawoQogICAgxay288DMvvDGrr+hsNQgurizu7TCIMDat+G0wiA8ZW0+w+K3wsfKxc0ob3V0cHV0IGZpbHRlcik8L2VtPrChCiAgICDDs7iux9G02S4gwNq34b+hIL+pt68gx8rFzbimILvnv+vH0iC89iDA1rDtLCDB98GiIMfKxc3AxwogICAgvPi8rbimIMH2waTH0iC89iDA1rTZLjwvcD4KCiAgICA8cD6+xsbExKG0wiDAzL7uud6x4ihieXRlLXJhbmdlKSC/5MO7ILXuwLsgw7O4rsfPseLAp8fYCiAgICCzu7rOwPvAuLfOIMfKxc24piC757/rx9G02S4gtscsILyzwaQgwfa9w77uuKYKICAgILvnv+vHz7+pILyxxcOwobTJx9Egx8rFzbimIMGmsPjHz7TCILjwteK1tSDA1rTZLgogICAgPGRpcmVjdGl2ZSBtb2R1bGU9ImNvcmUiPlNldElucHV0RmlsdGVyPC9kaXJlY3RpdmU+LAogICAgPGRpcmVjdGl2ZSBtb2R1bGU9ImNvcmUiPlNldE91dHB1dEZpbHRlcjwvZGlyZWN0aXZlPiwKICAgIDxkaXJlY3RpdmUgbW9kdWxlPSJtb2RfbWltZSI+QWRkSW5wdXRGaWx0ZXI8L2RpcmVjdGl2ZT4sCiAgICA8ZGlyZWN0aXZlIG1vZHVsZT0ibW9kX21pbWUiPkFkZE91dHB1dEZpbHRlcjwvZGlyZWN0aXZlPiwKICAgIDxkaXJlY3RpdmUgbW9kdWxlPSJtb2RfbWltZSI+UmVtb3ZlSW5wdXRGaWx0ZXI8L2RpcmVjdGl2ZT4sCiAgICA8ZGlyZWN0aXZlIG1vZHVsZT0ibW9kX21pbWUiPlJlbW92ZU91dHB1dEZpbHRlcjwvZGlyZWN0aXZlPgogICAgwfa9w77ut84gwNq34bimIMOzuK7Hz7TCIMfKxc24piDBtsD9x9G02S48L3A+CgogICAgPHA+x/bA5yC+xsbExKEgwKW8rbn2ILnoxve6u8C6ILvnv+vA2rChILyxxcPH0iC89iDA1rTCILTZwL2w+gogICAgsLDAuiDHysXNuKYgwaaw+MfRtNkuPC9wPgoKICAgIDxkbD4KICAgICAgPGR0PklOQ0xVREVTPC9kdD4KICAgICAgPGRkPjxtb2R1bGU+bW9kX2luY2x1ZGU8L21vZHVsZT6woSDDs7iux8+0wiBTZXJ2ZXItU2lkZSBJbmNsdWRlczwvZGQ+CiAgICAgIDxkdD5ERUZMQVRFPC9kdD4KICAgICAgPGRkPjxtb2R1bGU+bW9kX2RlZmxhdGU8L21vZHVsZT64piC757/rx8+/qSDD4rfCwLsKICAgICAgICAgIMWstvPAzL7wxq63ziC6uLO7seIgwPy/oSC+0MPgCiAgICAgIDwvZGQ+CiAgICA8L2RsPgoKICAgIDxwPrbHLCA8bW9kdWxlPm1vZF9leHRfZmlsdGVyPC9tb2R1bGU+ILjwteLAuyC757/rx8+/qQogICAgv9y6ziDHwbfOsde3pcC7IMfKxc23ziC757/rx9IgvPa1tSDA1rTZLjwvcD4KICA8L3NlY3Rpb24+CjwvbWFudWFscGFnZT4K