BAhJIgLaGjxoMiBpZD0iY29udHJpYnV0ZSI+V2F5cyB0byBDb250cmlidXRlIHRvIEFwYWNoZSBXaWNrZXQ8L2gyPgoKPHA+QSBsb3Qgb2Ygd29yayBnb2VzIGludG8gbWFpbnRhaW5pbmcgYSBwcm9qZWN0IGxpa2UgV2lja2V0IGFuZCB3ZSBjYW4KdXNlIHlvdXIgaGVscCE8L3A+Cgo8cD5Zb3UgY2FuIGhlbHAgdXMgaW4gbWFueSB3YXlzOjwvcD4KCjx1bD4KICA8bGk+SGVscCBvdXQgb3RoZXIgdXNlcnMgYXQgb3VyIDxhIGhyZWY9Ii4uL2hlbHAvZW1haWwuaHRtbCI+dXNlciBsaXN0PC9hPjwvbGk+CiAgPGxpPkFuc3dlciBxdWVzdGlvbnMgb24gPGEgaHJlZj0iaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy90YWdnZWQvd2lja2V0IiByZWw9Im5vZm9sbG93Ij5TdGFja292ZXJmbG93PC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9InVzZXJndWlkZS5odG1sIj5JbXByb3ZlIG91ciB1c2VyIGd1aWRlPC9hPjwvbGk+CiAgPGxpPlJlcG9ydCA8YSBocmVmPSIuLi9oZWxwLyNyZXBvcnRidWciPnlvdXIgYnVnczwvYT48L2xpPgogIDxsaT5JbXBsZW1lbnQgPGEgaHJlZj0icGF0Y2guaHRtbCI+bmV3IGZlYXR1cmVzIG9yIGZpeCBidWdzPC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9IndyaXRlLmh0bWwiPkltcHJvdmUgdGhpcyBzaXRlPC9hPjwvbGk+CjwvdWw+Cgo8cD5JZiB5b3Ugd2FudCB0byBoZWxwIG91dCB3aXRoIG9uZSBvZiBvdXIgYnVncyBvciB3YW50IHRvIGltcGxlbWVudCBhCmZlYXR1cmUsIGNvbnNpZGVyIHVzaW5nIG91ciA8YSBocmVmPSIjZ2l0aHViIj5HaXRodWIgbWlycm9yPC9hPi48L3A+Cgo8aHIgLz4KCjxoMiBpZD0iZ2l0aHViIj5HaXRodWIgTWlycm9yIGZvciBFYXN5IENvbnRyaWJ1dGluZzwvaDI+Cgo8cD5XaWNrZXQgaXMgbWlycm9yZWQgb24gZ2l0aHViIHNvIHlvdSBjYW4gY29udHJpYnV0ZSB3aXRoIGVhc2U6PC9wPgoKPG9sPgogIDxsaT5Gb3JrIFdpY2tldDwvbGk+CiAgPGxpPkltcGxlbWVudCB5b3VyIGZlYXR1cmUgb3IgZml4IHRoZSBidWcsIGFuZDwvbGk+CiAgPGxpPlNlbmQgYSBwdWxsIHJlcXVlc3QuPC9saT4KPC9vbD4KCjxwPlRoZSBHaXRodWIvQXBhY2hlIGludGVncmF0aW9uIHdpbGwgc2VuZCB0aGUgcHVsbCByZXF1ZXN0IHRvIG91cgpjb250cmlidXRvcnMgbGlzdCwgYW5kIHdlIHdpbGwgbG9vayBhdCB5b3VyIHB1bGwgcmVxdWVzdCBhcyBzb29uIGFzIHdlCmNhbi48L3A+Cgo8aDMgaWQ9ImZvcmsiPkZvcmsgV2lja2V0IHRvIHlvdXIgQWNjb3VudDwvaDM+Cgo8cD5TbyB5b3UgaGF2ZSBhbiBhY2NvdW50IHJlZ2lzdGVyZWQgYXQgR2l0aHViIGFuZCBhcmUgcmVhZHkgdG8gc3RhcnQKaGFja2luZyBhdCBXaWNrZXQuIEZpcnN0IHlvdSBuZWVkIHRvIDxlbT5mb3JrIHRoZSBjb2RlPC9lbT4gdG8geW91ciBvd24gR2l0aHViCmFjY291bnQuPC9wPgoKPHA+WW91IGNhbiBmaW5kIHRoZSBvZmZpY2lhbCBtaXJyb3IgZm9yIHRoZSBBcGFjaGUgV2lja2V0IHByb2plY3QgYXQgdGhlCmZvbGxvd2luZyBsb2NhdGlvbiBpbiB0aGUgb2ZmaWNpYWwgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24Kb3JnYW5pc2F0aW9uIGF0IEdpdGh1Yjo8L3A+Cgo8dWw+CiAgPGxpPkFwYWNoZSBXaWNrZXQgR2l0aHViIG1pcnJvcjogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS93aWNrZXQiIHJlbD0ibm9mb2xsb3ciPmh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvd2lja2V0PC9hPjwvbGk+CjwvdWw+Cgo8cD5PbiB0aGlzIHBhZ2UgeW91IHdpbGwgZmluZCBhIGJ1dHRvbiB3aXRoIHRoZSBjYXB0aW9uIOKAnEZvcmvigJ0uIENsaWNrIGl0Cm9yIHVzZSB0aGUgYnV0dG9uIGJlbG93LjwvcD4KCjxwPjxhIGNsYXNzPSJidXR0b24iIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvd2lja2V0L2ZvcmsiPgoJPGkgY2xhc3M9ImZhIGZhLWdpdGh1YiI+PC9pPiBGb3JrIHVzIG9uIGdpdGh1Ygo8L2E+PC9wPgoKPHA+Tm93IHlvdSBoYXZlIHlvdXIgb3duIGNvcHkgb2YgV2lja2V0IHRvIGhhY2sgb24uIFlvdSBjYW4gZWRpdCBkaXJlY3RseQppbiB0aGUgR2l0aHViIHdlYiBpbnRlcmZhY2XigJNnb29kIGZvciBtaW5vciBmaXhlcyBsaWtlIGRvY3VtZW50YXRpb24KZXJyb3Jz4oCTb3IgY2xvbmUgdGhlIHByb2plY3QgdG8geW91ciB3b3Jrc3RhdGlvbi48L3A+Cgo8aDMgaWQ9ImNsb25lIj5DbG9uZSBXaWNrZXQgdG8geW91ciBXb3Jrc3RhdGlvbjwvaDM+Cgo8cD5Zb3UgY2FuIHVzZSB0aGUgdG9vbGluZyBmb3IgR2l0aHViIHRvIGdldCBhIGNvcHkgb24geW91ciB3b3Jrc3RhdGlvbiBvcgp1c2UgdGhlIGNvbW1hbmRsaW5lOjwvcD4KCjxmaWd1cmUgY2xhc3M9ImhpZ2hsaWdodCI+PHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtYmFzaCIgZGF0YS1sYW5nPSJiYXNoIj48c3BhbiBjbGFzcz0ibnYiPiQgPC9zcGFuPmdpdCBjbG9uZSBnaXRAZ2l0aHViLmNvbTombHQ7eW91ciB1c2VyaWQmZ3Q7L3dpY2tldC5naXQ8L2NvZGU+PC9wcmU+PC9maWd1cmU+Cgo8cD48c3Ryb25nPk5CPC9zdHJvbmc+IEVuc3VyZSB0aGF0IHlvdSByZXBsYWNlIDxlbT4mbHQ7eW91ciB1c2VyaWQmZ3Q7PC9lbT4gd2l0aCB5b3VyIGFjdHVhbApHaXRodWIgdXNlciBpZCwgb3RoZXJ3aXNlIHlvdXIgY2xvbmUgY29tbWFuZCB3aWxsIGZhaWwuPC9wPgoKPHA+VGhpcyBzaGVsbCBjb21tYW5kIHdpbGwgY3JlYXRlIGEgbG9jYWwgY2hlY2tvdXQgb2YgdGhlIGdpdCByZXBvc2l0b3J5LgpOb3cgeW91IGNhbiBjaGVjayBvdXQgdGhlIGNvcnJlY3QgYnJhbmNoLjwvcD4KCjxoMyBpZD0iY2hlY2tvdXQiPlN0YXJ0IHdpdGggdGhlIENvcnJlY3QgQnJhbmNoPC9oMz4KCjxwPldpY2tldCBpcyBkZXZlbG9wZWQgaW4gc2V2ZXJhbCB2ZXJzaW9uIGJyYW5jaGVzLiBEZXBlbmRpbmcgb24gd2hhdCB5b3UKd2FudCB0byB3b3JrIG9uIHlvdSBuZWVkIHRvIHNlbGVjdCB0aGUgcmlnaHQgb25lLiBUaGUgZm9sbG93aW5nIHRhYmxlCnNob3dzIHRoZSBjb3JyZXNwb25kaW5nIGJyYW5jaCBmb3IgZWFjaCBXaWNrZXQgdmVyc2lvbi48L3A+Cgo8dGFibGU+CiAgICA8dGhlYWQ+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGg+V2lja2V0IHZlcnNpb248L3RoPgogICAgICAgICAgICA8dGg+QnJhbmNoIG5hbWU8L3RoPgoJCQk8dGg+U3RhdHVzPC90aD4KICAgICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD44Lng8L3RkPgogICAgICAgICAgICA8dGQ+bWFzdGVyPC90ZD4KCQkJPHRkPmFjdGl2ZTwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD43Lng8L3RkPgogICAgICAgICAgICA8dGQ+d2lja2V0LTcueDwvdGQ+CgkJCTx0ZD5zdXBwb3J0ZWQ8L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+Ni54PC90ZD4KICAgICAgICAgICAgPHRkPndpY2tldC02Lng8L3RkPgoJCQk8dGQ+c3VwcG9ydGVkPC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPjEuNS54PC90ZD4KICAgICAgICAgICAgPHRkPndpY2tldC0xLjUueDwvdGQ+CgkJCTx0ZD5zZWN1cml0eSBmaXhlcyBvbmx5PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPjxzPjEuNC54PC9zPjwvdGQ+CiAgICAgICAgICAgIDx0ZD48cz53aWNrZXQtMS40Lng8L3M+PC90ZD4KCQkJPHRkPjxzPmRpc2NvbnRpbnVlZDwvcz48L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+PHM+MS4zLng8L3M+PC90ZD4KICAgICAgICAgICAgPHRkPjxzPndpY2tldC0xLjMueDwvcz48L3RkPgoJCQk8dGQ+PHM+ZGlzY29udGludWVkPC9zPjwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZD48cz4xLjIueDwvcz48L3RkPgogICAgICAgICAgICA8dGQ+PHM+d2lja2V0LTEuMi54PC9zPjwvdGQ+CgkJCTx0ZD48cz5kaXNjb250aW51ZWQ8L3M+PC90ZD4KICAgICAgICA8L3RyPgogICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkPjxzPjEuMS54PC9zPjwvdGQ+CiAgICAgICAgICAgIDx0ZD48cz53aWNrZXQtMS4xLng8L3M+PC90ZD4KCQkJPHRkPjxzPmRpc2NvbnRpbnVlZDwvcz48L3RkPgogICAgICAgIDwvdHI+CiAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+PHM+MS4wLng8L3M+PC90ZD4KICAgICAgICAgICAgPHRkPjxzPndpY2tldC0xLjAueDwvcz48L3RkPgoJCQk8dGQ+PHM+ZGlzY29udGludWVkPC9zPjwvdGQ+CiAgICAgICAgPC90cj4KICAgIDwvdGJvZHk+CjwvdGFibGU+Cgo8cD5JZiB5b3Ugd2FudCB0byB3b3JrIG9uIFdpY2tldCA4LCB5b3UgbmVlZCB0byBjaGVjayBvdXQgdGhlIDxlbT5tYXN0ZXI8L2VtPiBicmFuY2guPC9wPgoKPHA+SWYgeW91IHdhbnQgdG8gd29yayBvbiBXaWNrZXQgNywgeW91IG5lZWQgdG8gY2hlY2sgb3V0IHRoZSA8ZW0+d2lja2V0LTcueDwvZW0+IGJyYW5jaC48L3A+Cgo8cD5JZiB5b3Ugd2FudCB0byB3b3JrIG9uIGFuIGlzc3VlIGZvciBXaWNrZXQgNiwgeW914oCZbGwgbmVlZCB0byBjaGVjayBvdXQgdGhlIDxlbT53aWNrZXQtNi54PC9lbT4gYnJhbmNoLjwvcD4KCjxwPldoZW4geW91IGFyZSByZWFkeSB3aXRoIHlvdXIgY2hhbmdlIHlvdSBjYW4gYXNrIHVzIHRvIHJldmlldyB5b3VyCmNoYW5nZXMgYW5kIHRvIGludGVncmF0ZSBpdCBpbnRvIFdpY2tldCBieSBjcmVhdGluZyBhIFB1bGwgUmVxdWVzdC48L3A+Cgo8aDMgaWQ9InB1bGxyZXF1ZXN0Ij5DcmVhdGUgYSBQdWxsIFJlcXVlc3Q8L2gzPgoKPHA+TWFrZSBzdXJlIHlvdSBoYXZlIHB1c2hlZCB5b3VyIGNoYW5nZXMgdG8geW91ciBHaXRodWIgcmVwb3NpdG9yeS4gVG8KY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIEdpdEh1YiBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyB5b3UgY2FuIGZpbmQgPGEgaHJlZj0iaHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20vYXJ0aWNsZXMvY3JlYXRpbmctYS1wdWxsLXJlcXVlc3QvIiByZWw9Im5vZm9sbG93Ij5oZXJlPC9hPi4gT25jZSB5b3UgaGF2ZSBmaW5pc2hlZCB0byB3b3JrIG9uIHlvdSBwdWxsCnJlcXVlc3QsIHNlbmQgdXMgYW4gZW1haWwgdXNpbmcgPGEgaHJlZj0ibWFpbHRvOmRldkB3aWNrZXQuYXBhY2hlLm9yZyI+ZGV2czwvYT4KbWFpbGluZyBsaXN0LjwvcD4KCjxwPlRoZSBHaXRodWLigJNBcGFjaGUgaW50ZWdyYXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5IHNlbmQgYSBtZXNzYWdlIHRvIHRoZQpXaWNrZXQgcHJvamVjdCB0aGF0IGEgbmV3IHB1bGwgcmVxdWVzdCBpcyB3YWl0aW5nIGZvciB1cy48L3A+Cgo8aDIgaWQ9ImRvY3VtZW50YXRpb24iPkRvY3VtZW50YXRpb24gZm9yIGNvbnRyaWJ1dG9yczwvaDI+Cgo8cD5UaGlzIHNlY3Rpb24gaXMgcGFydGljdWxhcmx5IG9mIGludGVyZXN0IGZvciB0aG9zZSB3aG8gd2FudCB0bwpjb250cmlidXRlIHRvIFdpY2tldC48L3A+Cgo8aDMgaWQ9Imhvdy10by1jb250cmlidXRlIj5Ib3cgdG8gY29udHJpYnV0ZTwvaDM+Cgo8cD5IZXJl4oCZcyBhIGxpc3Qgb2YgZG9jdW1lbnRzIHRoYXQgZXhwbGFpbiBob3cgeW91IGNhbiBiZXN0IGhlbHAgdGhlIFdpY2tldCB0ZWFtOjwvcD4KCjx1bD4KICA8bGk+PGEgaHJlZj0iL2NvbnRyaWJ1dGUvdXNlcmd1aWRlLmh0bWwiPldyaXRlIGRvY3VtZW50YXRpb248L2E+IC0gQ29udHJpYnV0ZSB0byBpbXByb3ZlIG91ciB1c2VyIGd1aWRlLjwvbGk+CiAgPGxpPjxhIGhyZWY9Ii9jb250cmlidXRlL3BhdGNoLmh0bWwiPlByb3ZpZGUgYSBwYXRjaCBvciBhIHB1bGwgcmVxdWVzdDwvYT4gLSBUaGluayB5b3UgaGF2ZSBmb3VuZCBhIGJ1ZyBvciBqdXN0IHdhbnQgdG8gcHJvcG9zZSBhIG5ldyBmZWF0dXJlPyBEbyBpdCBzZW5kaW5nIHVzIGEgcGF0Y2ggb3IgY3JlYXRpbmcgYSBwdWxsIHJlcXVlc3Qgb24gR2l0SHViLjwvbGk+CiAgPGxpPjxhIGhyZWY9Ii9jb250cmlidXRlL3dyaXRlLmh0bWwiPkNvbnRyaWJ1dGUgdG8gdGhlIHNpdGU8L2E+IC0gSGVscCB1cyB0byBpbXByb3ZlIG91ciBzaXRlLjwvbGk+CjwvdWw+Cgo8aDMgaWQ9ImNvbW1pdHRlcnMiPkNvbW1pdHRlcnM8L2gzPgoKPHA+SGVyZeKAmXMgYSBsaXN0IG9mIHRhc2tzIHRoYXQgb25seSBjb21taXR0ZXJzIGNhbiBkbzo8L3A+Cgo8dWw+CiAgPGxpPjxhIGhyZWY9Ii9jb250cmlidXRlL3JlbGVhc2UuaHRtbCI+QnVpbGQgYSByZWxlYXNlPC9hPjwvbGk+CjwvdWw+Cgo8aDMgaWQ9InN1YnNjcmliaW5nLWFuZC11bnN1YnNjcmliaW5nIj5TdWJzY3JpYmluZyBhbmQgdW5zdWJzY3JpYmluZzwvaDM+Cgo8cD48YSBocmVmPSJtYWlsdG86ZGV2QHdpY2tldC5hcGFjaGUub3JnIj5XaWNrZXQgZGV2ZWxvcG1lbnQgbGlzdDwvYT4KTWVkaXVtIHRyYWZmaWMKPGEgaHJlZj0iaHR0cDovL21haWwtYXJjaGl2ZXMuYXBhY2hlLm9yZy9tb2RfbWJveC93aWNrZXQtZGV2LyI+QXJjaGl2ZXM8L2E+CjxhIGhyZWY9Imh0dHA6Ly93aWNrZXQtZGV2Lm1hcmttYWlsLm9yZy8iPlNlYXJjaDwvYT4KPGEgaHJlZj0ibWFpbHRvOmRldi1zdWJzY3JpYmVAd2lja2V0LmFwYWNoZS5vcmc/c3ViamVjdD1TdWJzY3JpYmUgdG8gQXBhY2hlIFdpY2tldCBkZXZlbG9wbWVudCBsaXN0Ij5TdWJzY3JpYmU8L2E+CjxhIGhyZWY9Im1haWx0bzpkZXYtdW5zdWJzY3JpYmVAd2lja2V0LmFwYWNoZS5vcmc/c3ViamVjdD1VbnN1YnNjcmliZSBmcm9tIEFwYWNoZSBXaWNrZXQgZGV2ZWxvcG1lbnQgbGlzdCI+VW5zdWJzY3JpYmU8L2E+CjxhIGhyZWY9Im1haWx0bzpkZXYtaGVscEB3aWNrZXQuYXBhY2hlLm9yZz9zdWJqZWN0PUhlbHAgZm9yIEFwYWNoZSBXaWNrZXQgZGV2ZWxvcG1lbnQgbGlzdCI+SGVscDwvYT48L3A+CgoGOgZFVA==