PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiINCiAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiLz4NCjx0aXRsZT5BYm91dCBFY2xpcHNlTGluayAxLjEuMjwvdGl0bGU+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1VUyI+DQo8aDE+RWNsaXBzZUxpbmsgMS4xLjI8L2gxPg0KPHA+DQo8L3A+DQo8aDI+QWJvdXQ8L2gyPg0KPHA+VGhlIEVjbGlwc2UgUGVyc2lzdGVuY2UgU2VydmljZXMgUHJvamVjdCAoIEVjbGlwc2VMaW5rKSBwcm9qZWN0J3MgZ29hbCBpcyB0byBwcm92aWRlIGEgY29tcGxldGUgcGVyc2lzdGVuY2UgZnJhbWV3b3JrIHRoYXQgaXMgYm90aCBjb21wcmVoZW5zaXZlIGFuZCB1bml2ZXJzYWwuIEl0IHdpbGwgcnVuIGluIGFueSBKYXZhIGVudmlyb25tZW50IGFuZCByZWFkIGFuZCB3cml0ZSBvYmplY3RzIHRvIHZpcnR1YWxseSBhbnkgdHlwZSBvZiBkYXRhIHNvdXJjZSwgaW5jbHVkaW5nIHJlbGF0aW9uYWwgZGF0YWJhc2VzLCBhbmQgWE1MLiBFY2xpcHNlTGluayB3aWxsIGZvY3VzIG9uIHByb3ZpZGluZyBsZWFkaW5nIGVkZ2Ugc3VwcG9ydCwgaW5jbHVkaW5nIGFkdmFuY2VkIGZlYXR1cmUgZXh0ZW5zaW9ucywgZm9yIHRoZSBkb21pbmFudCBwZXJzaXN0ZW5jZSBzdGFuZGFyZHMgZm9yIGVhY2ggdGFyZ2V0IGRhdGEgc291cmNlOyBKYXZhIFBlcnNpc3RlbmNlIEFQSSAoSlBBKSBmb3IgcmVsYXRpb25hbCBkYXRhYmFzZXMsIEphdmEgQVBJIGZvciBYTUwgQmluZGluZyAoSkFYQikgZm9yIFhNTCwgSmF2YSBDb25uZWN0b3IgQXJjaGl0ZWN0dXJlIChKQ0EpIGZvciBFSVMgYW5kIG90aGVyIHR5cGVzIG9mIGxlZ2FjeSBzeXN0ZW1zLCBhbmQgU2VydmljZSBEYXRhIE9iamVjdHMgKFNETykuIDwvcD4NCg0KPHA+Rm9yIHRpcHMgb24gZ2V0dGluZyBzdGFydGVkIHdpdGggRWNsaXBzZUxpbmssIHBsZWFzZSBzZWUgdGhlIGZvbGxvd2luZyByZXNvdXJjZXM6IDwvcD4NCjxwPjx1bD4NCjxsaT4gPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvRWNsaXBzZUxpbmsvVXNlck1hbnVhbCI+RG9jdW1lbnRhdGlvbjwvYT48L2xpPg0KPGxpPiA8YSBocmVmPSJodHRwOi8vd2lraS5lY2xpcHNlLm9yZy9FY2xpcHNlTGluay9FeGFtcGxlcyI+RXhhbXBsZXMgYW5kIEhvdyBUbzwvYT48L2xpPg0KPC91bD4NCjwvcD4NCjxoMj5MaWNlbnNlIDwvaDI+DQo8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiANCiAgICBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyANCglhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KSBhbmQgDQoJRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAok0VETJQpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgYXQgDQoJPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4gDQoJYW5kIGEgY29weSBvZiB0aGUgRURMIGlzIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHAiPiANCglodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHA8L2E+LiAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiANCgl3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPg0KPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgDQogIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5ICgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSANCiAgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkgYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIA0KICBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlIFJlZGlzdHJpYnV0b3ImIzgyMTc7cyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggDQogIHRoZSBDb250ZW50LiBJZiBubyBzdWNoIGxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIA0KICBpbmRpY2F0ZWQgYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIGFuZCBFREwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZSANCiAgY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uPC9wPg0KPGgyPlRoaXJkIFBhcnR5IENvbnRlbnQ8L2gyPg0KPHA+VGhlIENvbnRlbnQgaW5jbHVkZXMgaXRlbXMgdGhhdCBoYXZlIGJlZW4gc291cmNlZCBmcm9tIHRoaXJkIHBhcnRpZXMgYXMgc2V0IA0KICBvdXQgYmVsb3cuIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgDQogIHRoZSBmb2xsb3dpbmcgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSwgYW5kIHlvdSBzaG91bGQgbG9vayANCiAgdG8gdGhlIFJlZGlzdHJpYnV0b3ImIzgyMTc7cyBsaWNlbnNlIGZvciB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UuPC9wPg0KPHVsPg0KICA8bGk+PGEgaHJlZj0iI0FTTSI+QVNNPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSIjQU5UTFIiPkFOVExSPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSIjSkFYQiI+SmF2YSBBcmNoaXRlY3R1cmUgZm9yIFhNTCBCaW5kaW5nIChKQVhCKTwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iI01BSUwiPkphdmEgTWFpbDwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iI0FDVElWQVRJT04iPkphdmEgQWN0aXZhdGlvbiBGcmFtZXdvcms8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9IiNTdEFYIj5TdHJlYW1pbmcgQVBJIGZvciBYTUwgKFN0QVgpPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSIjU0RPIj5TZXJ2aWNlIERhdGEgT2JqZWN0cyAoU0RPKTwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iI0pQQTEiPkphdmEgUGVyc2lzdGVuY2UgQVBJIChKUEEpIDEuMCAtIEVKQiAzLjA8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9IiNKVEEiPkphdmF4IFRyYW5zYWN0aW9uczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iI0pNUyI+Sk1TPC9hPjwvbGk+DQogIDxsaT48YSBocmVmPSIjSkNBIj5KYXZhIENvbm5lY3RvcjwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iI0FOVDE3Ij5BTlQ8L2E+PC9saT4NCiAgPGxpPjxhIGhyZWY9IiNYRVJDRVMiPlhlcmNlczwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iI0pBWCI+SmF4IFJQQzwvYT48L2xpPg0KICA8bGk+PGEgaHJlZj0iI1dTREw0SiI+V1NETDRKIDEuNi4yIDwvYT48L2xpPg0KDQo8L3VsPg0KPGgzPjxhIG5hbWU9IkFTTSIgaWQ9IkFTTSI+PC9hPkFTTSB2MS41LjMgPC9oMz4NCjxibG9ja3F1b3RlPiANCiAgPHA+VGhlIEVjbGlwc2UgUGVyc2lzdGVuY2UgU2VydmljZXMgUHJvamVjdCBpbmNsdWRlcyBBU00gZm9yIHRoZSBwdXJwb3NlIG9mIA0KICAgIGJ5dGUgY29kZSB3ZWF2aW5nLiBUaGUgQU1TIGxpYnJhcnkgaXMgcmUtcGFja2FnZWQgd2l0aGluIHRoZSBzb3VyY2Ugb2YgdGhlIA0KICAgIHByb2plY3QgKG9yZy5wZXJzaXN0ZW5jZS5lY2xpcHNlLmludGVybmFsLmxpYnJhcmllcy5hc20uKikgdG8gYXZvaWQgdmVyc2lvbiANCiAgICBjb2xsaXNpb25zIHdpdGggb3RoZXIgdXNhZ2Ugb2YgQVNNLiBBIGN1c3RvbSBwYXRjaCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgQVNNIA0KICAgIDEuNS4zIHNvdXJjZSB0byBoYW5kbGUgYW4gaXNzdWUgd2l0aCB0aGUgT3JhY2xlIEphdmEgQ29tcGlsZXIuIFRoaXMgZml4IGhhcyANCiAgICBhbHNvIGJlZW4gY29udHJpYnV0ZWQgYmFjayB0byB0aGUgQVNNIHByb2plY3QgZm9yIGluY2x1c2lvbiBpbiBsYXRlciBwcm9qZWN0cy4gDQogIDwvcD4NCiAgPHA+VGhlIHNvdXJjZSBjb2RlIGlzIGF2YWlsYWJsZSB3aXRoaW4gdGhlIHByb2plY3QncyBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnkuPC9wPg0KICA8cD4gPGEgaHJlZj0iaHR0cDovL2FzbS5vYmplY3R3ZWIub3JnL2xpY2Vuc2UuaHRtbCI+aHR0cDovL2FzbS5vYmplY3R3ZWIub3JnL2xpY2Vuc2UuaHRtbDwvYT48L3A+DQogIDxwPkNvcHlyaWdodCAoYykgMjAwMC0yMDA1IElOUklBLCBGcmFuY2UgVGVsZWNvbSwgQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A+DQogIDxwPlJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIA0KICAgIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDo8L3A+DQogIDxvbD4NCiAgICA8bGk+IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgDQogICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLjwvbGk+DQogICAgPGxpPiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIA0KICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiANCiAgICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLjwvbGk+DQogICAgPGxpPiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVycyBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgDQogICAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCANCiAgICAgIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi48L2xpPg0KICA8L29sPg0KICA8cD5USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICZxdW90O0FTIA0KICAgIElTJnF1b3Q7QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgDQogICAgVE8sIFRIRUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiANCiAgICBQVVJQT1NFQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIA0KICAgIEJFTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUkNPTlNFUVVFTlRJQUwgDQogICAgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GU1VCU1RJVFVURSBHT09EUyBPUiANCiAgICBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiANCiAgICBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIA0KICAgIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSlBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgDQogICAgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLjwvcD4NCjwvYmxvY2txdW90ZT4NCjxoMz48YSBuYW1lPSJBTlRMUiIgaWQ9IkFOVExSIj48L2E+QU5UTFIgdjMuMDwvaDM+DQo8YmxvY2txdW90ZT4NCiAgPHA+VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYW50bHIub3JnLyI+QU5UTFIgbGlicmFyeTwvYT4gKDxhIGhyZWY9Imh0dHA6Ly93d3cuYW50bHIub3JnL2xpY2Vuc2UuaHRtbCI+bGljZW5zZTwvYT4pIA0KICAgIGlzIGluY2x1ZGVkIHdpdGggdGhlIEVjbGlwc2UgUGVyc2lzdGVuY2UgU2VydmljZXMgUHJvamVjdCB0byBlbmFibGUgcGFyc2luZyANCiAgICBvZiB0aGUgSmF2YSBQZXJzaXN0ZW5jZSBRdWVyeSBsYW5ndWFnZSAoSlAgUUwpLiBUaGUgQU5UTFIgbGlicmFyeSBpcyByZS1wYWNrYWdlZCANCiAgICB3aXRoaW4gdGhlIHByb2plY3QgaW4gdGhlIG9yZy5lY2xpcHNlLnBlcnNpc3RlbmNlLmludGVybmFsLmxpYnJhcmllcy5hbnRsci4qIA0KICAgIHBhY2thZ2VzLiA8L3A+DQogIDxwPlRoZSBzb3VyY2UgaXMgYXZhaWxhYmxlIHdpdGggdGhlIHByb2plY3QncyBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnkuPC9wPg0KPC9ibG9ja3F1b3RlPg0KPGgzPjxhIG5hbWU9IkpBWEIiIGlkPSJKQVhCIj48L2E+SmF2YSBBcmNoaXRlY3R1cmUgZm9yIFhNTCBCaW5kaW5nIChKQVhCKSB2Mi4wLjU8L2gzPg0KPGJsb2NrcXVvdGU+DQogIDxwPlRoZSA8YSBocmVmPSJodHRwczovL2pheGIuZGV2LmphdmEubmV0LzIuMC41LyI+SkFYQiBsaWJyYXJpZXM8L2E+IGRpc3RyaWJ1dGVkIA0KICAgIHVuZGVyIDxhIGhyZWY9Imh0dHBzOi8vZ2xhc3NmaXNoLmRldi5qYXZhLm5ldC9wdWJsaWMvQ0RETHYxLjAuaHRtbCI+Q0RETCB2MS4wPC9hPiANCiAgICBhcmUgaW5jbHVkZWQgd2l0aGluIHRoZSBFY2xpcHNlIFBlcnNpc3RlbmNlIFNlcnZpY2VzIFByb2plY3QgdG8gZW5hYmxlIHRoZSANCiAgICBNT1hZIGNvbXBvbmVudCdzIGltcGxlbWVudGF0aW9uIG9mIEpBWEIuPC9wPg0KICA8aDQ+SkFYQiBMaWJyYXJpZXM6PC9oND4NCiAgPHVsPg0KICAgIDxsaT5qYXhiLWFwaS5qYXIgPC9saT4NCiAgICA8bGk+amF4Yi1pbXBsLmphciA8L2xpPg0KICAgIDxsaT5qYXhiLnhqYy5qYXIgPC9saT4NCiAgPC91bD4NCjwvYmxvY2txdW90ZT4NCjxoMz48YSBuYW1lPSJNQUlMIiBpZD0iTUFJTCI+PC9hPkphdmEgTWFpbCB2MS40PC9oMz4NCjxibG9ja3F1b3RlPg0KICA8cD5UaGUgSmF2YSBNYWlsIGxpYnJhcnkgKG1haWwuamFyKSBpcyBkaXN0cmlidXRlZCB3aXRoIHRoZSA8YSBocmVmPSJodHRwczovL2pheGIuZGV2LmphdmEubmV0LzIuMC41LyI+SkFYQiANCiAgICB2Mi4wLjU8L2E+IHVuZGVyIDxhIGhyZWY9Imh0dHBzOi8vZ2xhc3NmaXNoLmRldi5qYXZhLm5ldC9wdWJsaWMvQ0RETHYxLjAuaHRtbCI+Q0RETCANCiAgICB2MS4wPC9hPiBhbmQgaXMgaW5jbHVkZWQgd2l0aGluIHRoZSBFY2xpcHNlIFBlcnNpc3RlbmNlIFNlcnZpY2VzIFByb2plY3QgZGlzdHJpYnV0aW9uIA0KICAgIHRvIHN1cHBvcnQgV2ViIFNlcnZpY2VzIGF0dGFjaG1lbnQgaGFuZGxpbmcgaW4gdGhlIE1PWHkgY29tcG9uZW50LiBJdCBpcyBvbmx5IA0KICAgIHJlcXVpcmVkIHdoZW4gdXNpbmcgSmF2YSBTRSA1IChKYXZhIE1haWwgaXMgaW5jbHVkZWQgaW4gSmF2YSBTRSA2KS48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDM+PGEgbmFtZT0iQUNUSVZBVElPTiIgaWQ9IkFDVElWQVRJT04iPjwvYT5KYXZhIEFjdGl2YXRpb24gRnJhbWV3b3JrIHYxLjE8L2gzPg0KPGJsb2NrcXVvdGU+DQogIDxwPlRoZSBKYXZhIEFjdGl2YXRpb24gRnJhbWV3b3JrIChhY3RpdmF0aW9uLmphcikgaXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9qYXhiLmRldi5qYXZhLm5ldC8yLjAuNS8iPkpBWEIgDQogICAgdjIuMC41PC9hPiB1bmRlciA8YSBocmVmPSJodHRwczovL2dsYXNzZmlzaC5kZXYuamF2YS5uZXQvcHVibGljL0NEREx2MS4wLmh0bWwiPkNEREwgDQogICAgdjEuMDwvYT4gYW5kIGlzIGluY2x1ZGVkIHdpdGhpbiB0aGUgRWNsaXBzZSBQZXJzaXN0ZW5jZSBTZXJ2aWNlcyBQcm9qZWN0IGRpc3RyaWJ1dGlvbiANCiAgICB0byBzdXBwb3J0IFdlYiBTZXJ2aWNlcyBhdHRhY2htZW50IGhhbmRsaW5nIGluIHRoZSBNT1h5IGNvbXBvbmVudC4gSXQgaXMgb25seSANCiAgICByZXF1aXJlZCB3aGVuIHVzaW5nIEphdmEgU0UgNSAoVGhlIEphdmEgQWN0aXZhdGlvbiBGcmFtZXdvcmsgaXMgaW5jbHVkZWQgaW4gDQogICAgSmF2YSBTRSA2KS48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDM+PGEgbmFtZT0iU3RBWCIgaWQ9IlN0QVgiPjwvYT5TdHJlYW1pbmcgQVBJIGZvciBYTUwgKFN0QVgpIHYxLjA8L2gzPg0KPGJsb2NrcXVvdGU+DQogIDxwPlRoZSBTdHJlYW1pbmcgQVBJIGZvciBYTUwgKFN0QVgpIGxpYnJhcnkgKGpzcjE3M18xLjBfYXBpLmphcikgaXMgZGlzdHJpYnV0ZWQgDQogICAgd2l0aCB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9qYXhiLmRldi5qYXZhLm5ldC8yLjAuNS8iPkpBWEIgdjIuMC41PC9hPiB1bmRlciANCiAgICA8YSBocmVmPSJodHRwczovL2dsYXNzZmlzaC5kZXYuamF2YS5uZXQvcHVibGljL0NEREx2MS4wLmh0bWwiPkNEREwgdjEuMDwvYT4gDQogICAgYW5kIGlzIGluY2x1ZGVkIHdpdGhpbiB0aGUgRWNsaXBzZSBQZXJzaXN0ZW5jZSBTZXJ2aWNlcyBQcm9qZWN0IGRpc3RyaWJ1dGlvbiANCiAgICBhcyBhbiBvcHRpb25hbCBYTUwgcHJvY2Vzc2luZyBhcHByb2FjaCBpbiB0aGUgTU9YeSBjb21wb25lbnQuIDwvcD4NCjwvYmxvY2txdW90ZT4NCjxoMz48YSBuYW1lPSJTRE8iIGlkPSJTRE8iPjwvYT5TZXJ2aWNlIERhdGEgT2JqZWN0cyAoU0RPKSB2Mi4xLjE8L2gzPg0KPGJsb2NrcXVvdGU+DQogIDxwPlRoZSA8YSBocmVmPSJodHRwOi8vamNwLm9yZy9hYm91dEphdmEvY29tbXVuaXR5cHJvY2Vzcy9wci9qc3IyMzUvaW5kZXguaHRtbCI+U2VydmljZSANCiAgICBEYXRhIE9iamVjdHMgKFNETykgQVBJPC9hPiBpcyBkaXN0cmlidXRlZCB1bmRlciBhIDxhIGhyZWY9Imh0dHBzOi8vZ2xhc3NmaXNoLmRldi5qYXZhLm5ldC9wdWJsaWMvQ0RETHYxLjAuaHRtbCI+IENEREx2MS4wIDwvYT4gYW5kICA8YSBocmVmPSJodHRwOi8vamNwLm9yZy9hYm91dEphdmEvY29tbXVuaXR5cHJvY2Vzcy9wci9qc3IyMzUvaW5kZXguaHRtbCI+Y3VzdG9tIA0KICAgIGxpY2Vuc2U8L2E+LiBJdCBwcm92aWRlcyB0aGUgc3RhbmRhcmQgQVBJIGltcGxlbWVudGVkIGJ5IHRoZSBFY2xpcHNlIFBlcnNpc3RlbmNlIA0KICAgIFNlcnZpY2VzIFByb2plY3QncyBTRE8gY29tcG9uZW50LjwvcD4NCjwvYmxvY2txdW90ZT4NCjxwPjwvcD4NCjxoMz48YSBuYW1lPSJKUEExIiBpZD0iSlBBMSI+PC9hPkphdmEgUGVyc2lzdGVuY2UgQVBJIChKUEEpIDEuMCAtIEVKQiAzLjA8L2gzPg0KPGJsb2NrcXVvdGU+DQo8cD5UaGUgSmF2YSBQZXJzaXN0ZW5jZSBBUEksIGluY2x1ZGVkIHdpdGggRUpCIDMuMCwgaXMgYXZhaWxhYmxlIGZvciBkb3dubG9hZCBmcm9tIHRoZSA8YSBocmVmPSJodHRwczovL2dsYXNzZmlzaC5kZXYuamF2YS5uZXQvc291cmNlL2Jyb3dzZS9nbGFzc2Zpc2gvZWpiLWFwaSI+ZWpiLWFwaSBkaXJlY3Rvcnk8L2E+IGluIHRoZSBnbGFzc2Zpc2ggQ1ZTIHJlcG9zaXRvcnkuSXQgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgPGEgaHJlZj0iaHR0cHM6Ly9nbGFzc2Zpc2guZGV2LmphdmEubmV0L3B1YmxpYy9DRERMdjEuMC5odG1sIj4gQ0RETHYxLjAgPC9hPi4gIFRoZSBqYXIgaXMgYmVpbmcgc2hpcHBlZCBhcyBhbiBPU0dpIGJ1bmRsZSBhbmQgaXMgcmVxdWlyZWQgZm9yIGNvbXBpbGF0aW9uIG9mIHNvbWUgY29udGFpbmVyIGJhc2VkIGZ1Y3Rpb25hbGl0eS48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8cD48L3A+DQo8aDM+PGEgbmFtZT0iSlRBIiBpZD0iSlRBIj48L2E+SmF2YXggVHJhbnNhY3Rpb25zIHYxLjE8L2gzPg0KPGJsb2NrcXVvdGU+DQogIDxwPlRoZSBKVEEgMS4xIEFQSSBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkIGZyb20gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZ2xhc3NmaXNoLmRldi5qYXZhLm5ldC9zb3VyY2UvYnJvd3NlL2dsYXNzZmlzaC90cmFuc2FjdGlvbi1hcGkiPnRyYW5zYWN0aW9uLWFwaSBkaXJlY3Rvcnk8L2E+IGluIHRoZSBnbGFzc2Zpc2ggQ1ZTIHJlcG9zaXRvcnkuIEl0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIDxhIGhyZWY9Imh0dHBzOi8vZ2xhc3NmaXNoLmRldi5qYXZhLm5ldC9wdWJsaWMvQ0RETHYxLjAuaHRtbCI+IENEREx2MS4wIDwvYT4uICBUaGUgamFyIGlzIGJlaW5nIHNoaXBwZWQgYXMgYW4gT1NHaSBidW5kbGUgYW5kIGlzIHJlcXVpcmVkIGZvciBjb21waWxhdGlvbiBvZiB0aGUgSlRBIGludGVncmF0aW9uLjwvcD4NCjwvYmxvY2txdW90ZT4NCjxwPjwvcD4NCjxoMz48YSBuYW1lPSJKTVMiIGlkPSJKTVMiPjwvYT5KTVMgdjEuMTwvaDM+DQo8YmxvY2txdW90ZT4NCiAgPHA+VGhlIEpNUyAxLjEgQVBJIGlzIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgZnJvbSB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9nbGFzc2Zpc2guZGV2LmphdmEubmV0L3NvdXJjZS9icm93c2UvZ2xhc3NmaXNoL2ptcy1hcGkiPmptcy1hcGkgZGlyZWN0b3J5PC9hPiBpbiB0aGUgZ2xhc3NmaXNoIENWUyByZXBvc2l0b3J5LiBJdCBpcyBkaXN0cmlidXRlZCB1bmRlciA8YSBocmVmPSJodHRwczovL2dsYXNzZmlzaC5kZXYuamF2YS5uZXQvcHVibGljL0NEREx2MS4wLmh0bWwiPiBDRERMdjEuMCA8L2E+LiAgVGhlIGphciBpcyBiZWluZyBzaGlwcGVkIGFzIGFuIE9TR2kgYnVuZGxlIGFuZCBpcyByZXF1aXJlZCBmb3IgY29tcGlsYXRpb24gb2YgdGhlIEpNUyBpbnRlZ3JhdGlvbi48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8cD48L3A+DQo8aDM+PGEgbmFtZT0iSkNBIiBpZD0iSkNBIj48L2E+SmF2YSBDb25uZWN0b3IgdjEuNTwvaDM+DQo8YmxvY2txdW90ZT4NCiAgPHA+VGhlIEpDQSAxLjUgQVBJIGlzIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgZnJvbSB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9nbGFzc2Zpc2guZGV2LmphdmEubmV0L3NvdXJjZS9icm93c2UvZ2xhc3NmaXNoL2Nvbm5lY3Rvci1hcGkiPmNvbm5lY3Rvci1hcGkgZGlyZWN0b3J5PC9hPiBpbiB0aGUgZ2xhc3NmaXNoIENWUyByZXBvc2l0b3J5LiBJdCBpcyBkaXN0cmlidXRlZCB1bmRlciA8YSBocmVmPSJodHRwczovL2dsYXNzZmlzaC5kZXYuamF2YS5uZXQvcHVibGljL0NEREx2MS4wLmh0bWwiPiBDRERMdjEuMCA8L2E+LiAgVGhlIGphciBpcyBiZWluZyBzaGlwcGVkIGFuZCByZXF1aXJlZCBieSB0aGUgd29ya2JlbmNoLCBhbmQgdGhlIHJ1bnRpbWUgd2hlbiBpbnRlZ3JhdGluZyB3aXRoIEpDQS4gPC9wPg0KPC9ibG9ja3F1b3RlPg0KPHA+PC9wPg0KPGgzPjxhIG5hbWU9IkFOVDE3IiBpZD0iQU5UMTciPjwvYT5BbnQgdjEuNzwvaDM+DQo8YmxvY2txdW90ZT4NCiAgPHA+QW50IDEuNyBpcyBhdmFpbGFibGUgZnJvbSB0aGUgPGEgaHJlZj0iaHR0cDovL2FudC5hcGFjaGUub3JnLyI+IEFudCBob21lIHBhZ2U8L2E+IGFuZCBpcyBkaXN0cmlidXRlZCB1bmRlciA8YSBocmVmPSJodHRwOi8vYW50LmFwYWNoZS5vcmcvbGljZW5zZS5odG1sIj4gQXBhY2hlIDIuMDwvYT4uICBUaGUgamFyIGlzIGJlaW5nIHNoaXBwZWQgYXMgYSBPU0dpIGJ1bmRsZSBhbmQgaXMgcmVxdWlyZWQgZm9yIGNvbXBpbGF0aW9uIHRoZSBzdGF0aWMgd2VhdmluZyB0b29sLjwvcD4NCjwvYmxvY2txdW90ZT4NCjxwPjwvcD4NCjxoMz48YSBuYW1lPSJYRVJDRVMiIGlkPSJYRVJDRVMiPjwvYT5YZXJjZXMgdjIuOS4wPC9oMz4NCjxibG9ja3F1b3RlPg0KICA8cD5YZXJjZXMgMi45LjAgaXMgYXZhaWxhYmxlIGZyb20gPGEgaHJlZj0iaHR0cDovL3hlcmNlcy5hcGFjaGUub3JnL3hlcmNlcy1qLyI+IHRoZSBYZXJjZXMgaG9tZSBwYWdlPC9hPi4gIEl0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIDxhIGhyZWY9Imh0dHA6Ly9hbnQuYXBhY2hlLm9yZy9saWNlbnNlLmh0bWwiPiBBcGFjaGUgMi4wPC9hPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxwPjwvcD4NCjxoMz48YSBuYW1lPSJKQVgiIGlkPSJKQVgiPjwvYT5KQVggUlBDIHYxLjEuMDwvaDM+DQo8YmxvY2txdW90ZT4NCiAgPHA+SkFYIFJQQyAxLjEuMCBBUEkgaXMgYXZhaWxhYmxlIGZvciBkb3dubG9hZCBmcm9tIHRoZSA8YSBocmVmPSJodHRwczovL2pheC1ycGMuZGV2LmphdmEubmV0L3NvdXJjZS9icm93c2UvamF4LXJwYy8iPmpheC1ycGMgPC9hPiBDVlMgcmVwb3NpdG9yeS4gIEl0IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIDxhIGhyZWY9Imh0dHBzOi8vZ2xhc3NmaXNoLmRldi5qYXZhLm5ldC9wdWJsaWMvQ0RETHYxLjAuaHRtbCI+IENEREx2MS4wIDwvYT4uICBUaGlzIGFwaSBpcyBkZXBlbmRlZCB1cG9uIGJ5IEVKQiAzLjA8L3A+DQo8L2Jsb2NrcXVvdGU+DQo8cD48L3A+DQo8aDM+PGEgbmFtZT0iV1NETDRKIiBpZD0iV1NETDRKIj48L2E+V1NENGogdjEuNi4yPC9oMz4NCjxibG9ja3F1b3RlPg0KICA8cD5XU0Q0SiAxLjYuMiBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkIGZyb20gdGhlIDxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvd3NkbDRqIj53c2RsNGogcHJvamVjdDwvYT4uIEl0IGRpc3RyaWJ1dGVkIHVuZGVyIDxhIGhyZWY9Imh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2Yvd2Vic2VydmljZXMvd3NzNGovdHJ1bmsvbGVnYWwvTElDRU5TRS53c2RsNGoiPiBDUEx2MS4wIDwvYT4uICBUaGlzIGphciBpcyBiZWluZyBzaGlwcGVkIGFzIGEgT1NHaSBidW5kbGUgYW5kIGlzIHJlcXVpcmVkIGZvciB0aGUgREJXUyBmZWF0dXJlIGF0IHJ1dGltZS48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8cD48L3A+DQo8L2JvZHk+DQo8L2h0bWw+DQo=