PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vY29tLmlibS5oZWxwLmRvYy9zd2dfaW5mb19jb21tb24uY3NzIiAvPgo8dGl0bGU+QWRkaW5nIGEgcmVkZWZpbmUgZWxlbWVudDwvdGl0bGU+CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgogICAgZnVuY3Rpb24gcG9wdXBfd2luZG93KCB1cmwsIGlkLCB3aWR0aCwgaGVpZ2h0ICkKICAgIHsKICAgICAgcG9wdXAgPSB3aW5kb3cub3BlbiggdXJsLCBpZCwgJ3Rvb2xiYXI9bm8sc2Nyb2xsYmFycz1ubyxsb2NhdGlvbj1ubyxzdGF0dXNiYXI9bm8sbWVudWJhcj1ubyxyZXNpemFibGU9bm8sd2lkdGg9JyArIHdpZHRoICsgJyxoZWlnaHQ9JyArIGhlaWdodCArICcsbGVmdD0sdG9wPScgKTsKICAgICAgcG9wdXAuZm9jdXMoKTsKICAgIH0KPC9zY3JpcHQ+PHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgc3JjPSJoZWxwL2xpdmVIZWxwLmpzIj48L3NjcmlwdD48L2hlYWQ+Cjxib2R5IGlkPSJ0YWRkcmRmbiI+PGEgbmFtZT0idGFkZHJkZm4iPjwhLS0gLS0+PC9hPgoKPGgxIGNsYXNzPSJ0b3BpY3RpdGxlMSI+QWRkaW5nIGEgcmVkZWZpbmUgZWxlbWVudDwvaDE+CjxkaXY+PHA+WW91IGNhbiB1c2UgdGhlIHJlZGVmaW5lIG1lY2hhbmlzbSB0byByZWRlZmluZSBzaW1wbGUgYW5kIGNvbXBsZXgKdHlwZXMsIGdyb3VwcywgYW5kIGF0dHJpYnV0ZSBncm91cHMgb2J0YWluZWQgZnJvbSBleHRlcm5hbCBzY2hlbWEgZmlsZXMuIExpa2UKdGhlIGluY2x1ZGUgbWVjaGFuaXNtLCByZWRlZmluZSByZXF1aXJlcyB0aGUgZXh0ZXJuYWwgY29tcG9uZW50cyB0byBiZSBpbgp0aGUgc2FtZSB0YXJnZXQgbmFtZXNwYWNlIGFzIHRoZSByZWRlZmluaW5nIHNjaGVtYSwgYWx0aG91Z2ggZXh0ZXJuYWwgY29tcG9uZW50cwpmcm9tIHNjaGVtYXMgdGhhdCBoYXZlIG5vIG5hbWVzcGFjZSBjYW4gYWxzbyBiZSByZWRlZmluZWQuPC9wPjxkaXYgY2xhc3M9InNraXBzcGFjZSI+PHA+SW4gdGhlIFhNTCBzY2hlbWEgZWRpdG9yLCB5b3UgY2FuIGFkZCBhIHJlZGVmaW5lIGVsZW1lbnQgdG8gYW4KWE1MIHNjaGVtYS48L3A+CjxwPlRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb25zIHdlcmUgd3JpdHRlbiBmb3IgdGhlIFJlc291cmNlCnBlcnNwZWN0aXZlLCBidXQgdGhleSB3aWxsIGFsc28gd29yayBpbiBtYW55IG90aGVyIHBlcnNwZWN0aXZlcy6gPC9wPgo8cD5UbwphZGQgYSByZWRlZmluZSBlbGVtZW50ICwgZm9sbG93IHRoZXNlIHN0ZXBzOjwvcD4KPC9kaXY+CjxvbD48bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+T3BlbiB5b3VyIFhNTCBzY2hlbWEgaW4gdGhlIFhNTCBzY2hlbWEgZWRpdG9yLjwvc3Bhbj48L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+SW4gdGhlIE91dGxpbmUgdmlldywgc2VsZWN0IHlvdXIgc2NoZW1hLjwvc3Bhbj4gVGhlIGVudGlyZQpzY2hlbWEgYW5kIGl0cyBjb250ZW50cyBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBHcmFwaCB2aWV3LjwvbGk+CjxsaSBjbGFzcz0ic2tpcHNwYWNlIj48c3Bhbj5JbiB0aGUgR3JhcGggdmlldywgcmlnaHQtY2xpY2sgaW4gdGhlIDxiPkRpcmVjdGl2ZXM8L2I+IHNlY3Rpb24KYW5kIGNsaWNrIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkFkZCBSZWRlZmluZTwvc3Bhbj4uPC9zcGFuPjwvbGk+CjxsaSBjbGFzcz0ic2tpcHNwYWNlIj48c3Bhbj5JbiB0aGUgUHJvcGVydGllcyB2aWV3LCBjbGljayB0aGUgPGI+R2VuZXJhbDwvYj4gdGFiIGFuZCBjbGljawp0aGUgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+TW9yZTwvc3Bhbj4gYnV0dG9uIHRvIHRoZSByaWdodCBvZiB0aGUgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+U2NoZW1hCmxvY2F0aW9uPC9zcGFuPiBmaWVsZC48L3NwYW4+IFRoZSBYTUwgc2NoZW1hIGZpbGUgeW91IHNlbGVjdCBtdXN0CmhhdmUgdGhlIHNhbWUgbmFtZXNwYWNlIGFzIHRoZSBjdXJyZW50IHNjaGVtYS48L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+SWYgeW91IHdhbnQgdG8gc2VsZWN0IGFuIFhNTCBzY2hlbWEgbG9jYXRlZCBpbiB0aGUgd29ya2JlbmNoLCBzZWxlY3QKdGhlIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPldvcmtiZW5jaCBwcm9qZWN0czwvc3Bhbj4gcmFkaW8gYnV0dG9uIGFuZCBjbGljayA8c3BhbiBjbGFzcz0idWljb250cm9sIj5OZXh0Ljwvc3Bhbj48L3NwYW4+PG9sIHR5cGU9ImEiPjxsaT48c3Bhbj4gU2VsZWN0IHRoZSBzY2hlbWEgeW91IHdhbnQgdG8gaW5jbHVkZSBhbmQgY2xpY2sgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+RmluaXNoPC9zcGFuPi48L3NwYW4+PC9saT4KPC9vbD4KPC9saT4KPGxpIGNsYXNzPSJza2lwc3BhY2UiPjxzcGFuPklmIHlvdSB3YW50IHRvIHNlbGVjdCBhbiBYTUwgc2NoZW1hIGxvY2F0ZWQgb24gdGhlIFdlYiwgc2VsZWN0CnRoZSA8c3BhbiBjbGFzcz0idWljb250cm9sIj5IVFRQPC9zcGFuPiByYWRpbyBidXR0b24gYW5kIGNsaWNrIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPk5leHQ8L3NwYW4+Ljwvc3Bhbj48b2wgdHlwZT0iYSI+PGxpPjxzcGFuPlR5cGUgdGhlIFVSTCBvZiB0aGUgWE1MIHNjaGVtYSBhbmQgY2xpY2sgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+RmluaXNoPC9zcGFuPi4KIDwvc3Bhbj48L2xpPgo8L29sPgogIDxkaXYgY2xhc3M9Im5vdGUiPjxzcGFuIGNsYXNzPSJub3RldGl0bGUiPk5vdGU6IDwvc3Bhbj5BIGxvY2FsIGNvcHkgb2YgdGhlIHNjaGVtYSB3aWxsIG5vdCBiZSBzdG9yZWQgaW4gdGhlIHdvcmtiZW5jaC4KRXZlcnkgdGltZSB5b3UgdmFsaWRhdGUgeW91ciBzY2hlbWEsIHRoZSBzY2hlbWEncyBjb250ZW50cyB3aWxsIGJlIGNoZWNrZWQKZnJvbSB0aGUgVVJMIHlvdSBzcGVjaWZ5LjwvZGl2Pgo8L2xpPgo8bGkgY2xhc3M9InNraXBzcGFjZSI+PHNwYW4+VGhlIFhNTCBzY2hlbWEgZWRpdG9yIHdpbGwgcmV0cmlldmUgdGhlIGxvY2F0aW9uIG9mIHRoZSBpbmNsdWRlZApYTUwgc2NoZW1hIGZpbGUgYW5kIGRpc3BsYXkgaXQgYXMgcmVhZC1vbmx5IGluIHRoZSAgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+U2NoZW1hIGxvY2F0aW9uPC9zcGFuPiBmaWVsZC48L3NwYW4+PC9saT4KPGxpIGNsYXNzPSJza2lwc3BhY2UiPjxzcGFuPkNsaWNrIHRoZSA8c3BhbiBjbGFzcz0idWljb250cm9sIj5Eb2N1bWVudGF0aW9uPC9zcGFuPiB0YWIgaWYgeW91IHdhbnQKdG8gcHJvdmlkZSBhbnkgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyByZWRlZmluZSBlbGVtZW50Ljwvc3Bhbj4gVGhlIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkRvY3VtZW50YXRpb248L3NwYW4+IHBhZ2UgaXMgdXNlZCBmb3IgaHVtYW4gcmVhZGFibGUKbWF0ZXJpYWwsIHN1Y2ggYXMgYSBkZXNjcmlwdGlvbiwgYW5kIHRoZSA8c3BhbiBjbGFzcz0idWljb250cm9sIj5BcHAgSW5mbzwvc3Bhbj4gcGFnZQpjYW4gYmUgdXNlZCB0byBwcm92aWRlIGluZm9ybWF0aW9uIGZvciBhcHBsaWNhdGlvbnMuoDwvbGk+Cjwvb2w+CjxkaXYgY2xhc3M9InNraXBzcGFjZSI+PHA+T25jZSB5b3UgaGF2ZSBhZGRlZCB0aGUgcmVkZWZpbmUgZWxlbWVudCB0byB5b3VyIFhNTCBzY2hlbWEsIHlvdQpjYW4gcmVkZWZpbmUgYW55IG9mIHRoZSBzaW1wbGUgYW5kIGNvbXBsZXggdHlwZXMsIGdyb3VwcywgYW5kIGF0dHJpYnV0ZSBncm91cHMKaW4gdGhlIFhNTCBzY2hlbWEgeW91IHNlbGVjdGVkIGluIHRoZSByZWRlZmluZSBlbGVtZW50LiCgPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2tpcHNwYWNlIj48cD4oYykgQ29weXJpZ2h0IDIwMDEsIFdvcmxkIFdpZGUgV2ViIENvbnNvcnRpdW0gKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlCm9mIFRlY2hub2xvZ3ksIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgZW4gQXV0b21hdGlxdWUsCktlaW8gVW5pdmVyc2l0eSkuPC9wPgo8L2Rpdj4KPC9kaXY+Cgo8ZGl2PjxwPjxiIGNsYXNzPSJyZWx0YXNrc2hkIj5SZWxhdGVkIHRhc2tzPC9iPjxiciAvPgo8YSBocmVmPSIuLi90b3BpY3MvdGFkZGltcHQuaHRtbCIgdGl0bGU9IkFzIHNjaGVtYXMgYmVjb21lIGxhcmdlciwgaXQgaXMgb2Z0ZW4gZGVzaXJhYmxlIHRvIGRpdmlkZSB0aGVpciBjb250ZW50IGFtb25nIHNldmVyYWwgc2NoZW1hIGRvY3VtZW50cyBmb3IgcHVycG9zZXMgc3VjaCBhcyBlYXNlIG9mIG1haW50ZW5hbmNlLCByZXVzZSwgYW5kIHJlYWRhYmlsaXR5LiBYTUwgc2NoZW1hIGRlZmluZXMgdHdvIGNvbnN0cnVjdHMgdG8gc3VwcG9ydCB0aGlzOiBpbmNsdWRlIGFuZCBpbXBvcnQuIFRoZSBpbmNsdWRlIGVsZW1lbnQgYnJpbmdzIGluIGRlZmluaXRpb25zIGFuZCBkZWNsYXJhdGlvbnMgZnJvbSB0aGUgaW5jbHVkZWQgc2NoZW1hIGludG8gdGhlIGN1cnJlbnQgc2NoZW1hLiBJdCByZXF1aXJlcyB0aGUgaW5jbHVkZWQgc2NoZW1hIHRvIGJlIGluIHRoZSBzYW1lIHRhcmdldCBuYW1lc3BhY2UgYXMgdGhlIGluY2x1ZGluZyBzY2hlbWEuIFRoZSBpbXBvcnQgZWxlbWVudCBiZWhhdmVzIGluIGEgc2ltaWxhciB3YXksIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IHRoZSBpbXBvcnRlZCBzY2hlbWEgY2FuIGNvbWUgZnJvbSBhIGRpZmZlcmVudCBuYW1lc3BhY2UuIj5BZGRpbmcgYW4gaW1wb3J0IGVsZW1lbnQ8L2E+PGJyIC8+CjxhIGhyZWY9Ii4uL3RvcGljcy90YWRkaW5jbC5odG1sIiB0aXRsZT0iQXMgc2NoZW1hcyBiZWNvbWUgbGFyZ2VyLCBpdCBpcyBvZnRlbiBkZXNpcmFibGUgdG8gZGl2aWRlIHRoZWlyIGNvbnRlbnQgYW1vbmcgc2V2ZXJhbCBzY2hlbWEgZG9jdW1lbnRzIGZvciBwdXJwb3NlcyBzdWNoIGFzIGVhc2Ugb2YgbWFpbnRlbmFuY2UsIHJldXNlLCBhbmQgcmVhZGFiaWxpdHkuIFhNTCBzY2hlbWEgZGVmaW5lcyB0d28gY29uc3RydWN0cyB0byBzdXBwb3J0IHRoaXM6IGluY2x1ZGUgYW5kIGltcG9ydC4gVGhlIGluY2x1ZGUgZWxlbWVudCBicmluZ3MgaW4gZGVmaW5pdGlvbnMgYW5kIGRlY2xhcmF0aW9ucyBmcm9tIHRoZSBpbmNsdWRlZCBzY2hlbWEgaW50byB0aGUgY3VycmVudCBzY2hlbWEuIEl0IHJlcXVpcmVzIHRoZSBpbmNsdWRlZCBzY2hlbWEgdG8gYmUgaW4gdGhlIHNhbWUgdGFyZ2V0IG5hbWVzcGFjZSBhcyB0aGUgaW5jbHVkaW5nIHNjaGVtYS4gVGhlIGltcG9ydCBlbGVtZW50IGJlaGF2ZXMgaW4gYSBzaW1pbGFyIHdheSwgd2l0aCB0aGUgZXhjZXB0aW9uIHRoYXQgdGhlIGltcG9ydGVkIHNjaGVtYSBjYW4gY29tZSBmcm9tIGEgZGlmZmVyZW50IG5hbWVzcGFjZS4iPkFkZGluZyBhbiBpbmNsdWRlIGVsZW1lbnQ8L2E+PGJyIC8+CjwvcD4KPHA+PGIgY2xhc3M9InJlbHJlZmhkIj5SZWxhdGVkIHJlZmVyZW5jZTwvYj48YnIgLz4KPGEgaHJlZj0iLi4vdG9waWNzL3JubXNwYy5odG1sIiB0aXRsZT0iIj5YTUwgbmFtZXNwYWNlczwvYT48YnIgLz4KPC9wPgo8L2Rpdj48cD4KCQkoQykgQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAyMDAwLCAyMDA1LiBBbGwgUmlnaHRzIFJlc2VydmVkLgo8L3A+CjwvYm9keT4KPC9odG1sPg==