PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KPGh0bWw+CjxoZWFkPgogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KICAgPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNb3ppbGxhLzQuNzMgW2VuXSAoV2luOTg7IFUpIFtOZXRzY2FwZV0iPgogICA8bWV0YSBuYW1lPSJBdXRob3IiIGNvbnRlbnQ9IkdyZWcgQWRhbXMiPgogICA8dGl0bGU+SGVscCBQYXJ0IDE8L3RpdGxlPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2RlZmF1bHRfc3R5bGUuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgYWxpZ249cmlnaHQ+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWYiPjxmb250IHNpemU9LTE+Q29weXJpZ2h0CiZjb3B5OyAyMDAxIE9iamVjdCBUZWNobm9sb2d5IEludGVybmF0aW9uYWwsIEluYy48L2ZvbnQ+PC9mb250PjwvZGl2Pgo8ZGl2IEFMSUdOPXJpZ2h0Pjx0YWJsZSBCT1JERVI9MCBDRUxMU1BBQ0lORz0wIENFTExQQURESU5HPTIgV0lEVEg9IjEwMCUiID4KPHRyPgo8dGQgQUxJR049TEVGVCBWQUxJR049VE9QIENPTFNQQU49IjIiIEJHQ09MT1I9IiMwMDgwQzAiPjxiPjxmb250IGZhY2U9IkFyaWFsLEhlbHZldGljYSI+PGZvbnQgY29sb3I9IiNGRkZGRkYiPiZuYnNwO0VjbGlwc2UKQ29ybmVyIEFydGljbGU8L2ZvbnQ+PC9mb250PjwvYj48L3RkPgo8L3RyPgo8L3RhYmxlPjwvZGl2PgoKPGgxPiA8aW1nIFNSQz0iSWRlYS5qcGciIGhlaWdodD04NiB3aWR0aD0xMjA+PC9oMT4KCjxjZW50ZXI+CjxoMT4KSGVscCCWIFBhcnQgMTxicj4KQ29udHJpYnV0aW5nIGEgbGl0dGxlIGhlbHA8L2gxPjwvY2VudGVyPgo8Yj5TdW1tYXJ5PC9iPgo8YnI+VGhlIEVjbGlwc2UgcGxhdGZvcm2ScyBoZWxwIHN5c3RlbSBkZWZpbmVzIHR3byBleHRlbnNpb24gcG9pbnRzICg8dHQ+ImNvbnRyaWJ1dGlvbnMiCjwvdHQ+YW5kPHR0PiJjb250ZXh0cyI8L3R0PikKdGhhdCBhbGxvdyBpbmRpdmlkdWFsIHBsdWctaW5zIHRvIGNvbnRyaWJ1dGUgb25saW5lIGhlbHAgYW5kIGNvbnRleHQtc2Vuc2l0aXZlCmhlbHAgZm9yIHRoZWlyIGNvbXBvbmVudHMuIEluIHRoaXMgYXJ0aWNsZSB3ZSB3aWxsIGludmVzdGlnYXRlIHRoZSCTY29udHJpYnV0aW9uc5QKZXh0ZW5zaW9uIHBvaW50IGFuZCBob3cgeW91IGNhbiB1c2UgaXQgdG8gY29udHJpYnV0ZSBkb2N1bWVudGF0aW9uIGZvcgp5b3VyIHBsdWctaW4uCjxwPjxiPkJ5IEdyZWcgQWRhbXMsIE9USSBhbmQgRG9yaWFuIEJpcnNhbiwgSUJNPC9iPiA8YnI+CiAgPGZvbnQgc2l6ZT0tMT5VcGRhdGVkIE1heSAyOCwgMjAwMTwvZm9udD4gCjxwPjxmb250IHNpemU9Ii0xIj5FZGl0b3IncyBub3RlOiBUaGlzIGFydGljbGUgZGVzY3JpYmVzIHRoZSBoZWxwIHN5c3RlbSBmb3IgRWNsaXBzZSAKICByZWxlYXNlIDEuMC4gVGhlcmUgaXMgYW4gPGEgaHJlZj0iLi4vQXJ0aWNsZS1PbmxpbmUlMjBIZWxwJTIwZm9yJTIwMl8wL2hlbHAxLmh0bSI+dXBkYXRlZCAKICB2ZXJzaW9uIG9mIHRoaXMgYXJ0aWNsZTwvYT4gZm9yIEVjbGlwc2UgcmVsZWFzZSAyLjAuPC9mb250Pgo8Y2VudGVyPgogIDwvY2VudGVyPgo8Y2VudGVyPgo8aHIgc2l6ZT0yIHdpZHRoPSIxMDAlIiBhbGlnbj1jZW50ZXI+PC9jZW50ZXI+Cgo8aDI+CkludHJvZHVjdGlvbjwvaDI+ClRoZSBFY2xpcHNlIHBsYXRmb3JtknMgaGVscCBzeXN0ZW0gYWxsb3dzIHlvdSB0byBjb250cmlidXRlIHlvdXIgcGx1Zy1pbpJzIG9ubGluZSAKaGVscCB1c2luZyB0aGUgb3JnLmVjbGlwc2UuaGVscC5jb250cmlidXRpb25zIGV4dGVuc2lvbiBwb2ludC4gWW91IGNhbiBlaXRoZXIgCmNvbnRyaWJ1dGUgdGhlIG9ubGluZSBoZWxwIGFzIHBhcnQgb2YgeW91ciBjb2RlIHBsdWctaW4gb3IgcHJvdmlkZSBpdCBzZXBhcmF0ZWx5IAppbiBpdHMgb3duIGRvY3VtZW50YXRpb24gcGx1Zy1pbi4gVGhpcyBzZXBhcmF0aW9uIGlzIGJlbmVmaWNpYWwgaW4gdGhvc2Ugc2l0dWF0aW9ucyAKd2hlcmUgdGhlIGNvZGUgYW5kIGRvY3VtZW50YXRpb24gdGVhbXMgYXJlIGRpZmZlcmVudCBncm91cHMgb3Igd2hlcmUgeW91IHdhbnQgCnRvIHJlZHVjZSB0aGUgY291cGxpbmcvZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBkb2N1bWVudGF0aW9uIGFuZCBjb2RlLiBUaGUgcGxhdGZvcm2ScyAKaGVscCBmYWNpbGl0aWVzIHByb3ZpZGUgeW91IHdpdGggdGhlIHJhdyBidWlsZGluZyBibG9ja3MgdG8gc3RydWN0dXJlIGFuZCBjb250cmlidXRlIAp5b3VyIGhlbHAuIEl0IGRvZXMgbm90IGRpY3RhdGUgc3RydWN0dXJlIG9yIGdyYW51bGFyaXR5IG9mIGRvY3VtZW50YXRpb24uIFRoZSAKcGxhdGZvcm0gZG9lcyBob3dldmVyIHByb3ZpZGUgYW5kIGNvbnRyb2wgdGhlIGludGVncmF0ZWQgaGVscCB2aWV3ZXJzIHRodXMgZW5zdXJpbmcgCnNlYW1sZXNzIGludGVncmF0aW9uIG9mIHlvdXIgZG9jdW1lbnRhdGlvbi4gCjxwPlRoZSBvcmcuZWNsaXBzZS5oZWxwLmNvbnRyaWJ1dGlvbnMgZXh0ZW5zaW9uIHBvaW50IHByb3ZpZGVzIGZvdXIgZWxlbWVudHMKdGhyb3VnaCB3aGljaCB5b3UgY2FuIGNvbnRyaWJ1dGUgeW91ciBoZWxwLCB0aGV5IGFyZToKPHVsPgo8bGk+CnRvcGljczwvbGk+Cgo8bGk+CmluZm9zZXQgKGFsc28ga25vd24gYXMgYSBib29rKTwvbGk+Cgo8bGk+CmluZm92aWV3PC9saT4KCjxsaT4KYWN0aW9ucyAoYWxzbyBrbm93biBhcyB3aXJpbmcpPC9saT4KPC91bD4KVGhlIHRvcGljcywgaW5mb3NldCBhbmQgYWN0aW9ucyBjb250cmlidXRpb25zIGFsbCBzcGVjaWZ5IGFuIGFzc29jaWF0ZWQKeG1sIGZpbGUgdGhhdCBjb250YWlucyB0aGUgZGV0YWlscyBvZiB0aGUgY29udHJpYnV0aW9uLiBJbiB0aGUgcmVtYWluZGVyCm9mIHRoaXMgYXJ0aWNsZSB3ZSB3aWxsIGNyZWF0ZSBhIGRvY3VtZW50YXRpb24gcGx1Zy1pbiB0aGF0IHVzZXMgYWxsIGZvdXIKb2YgdGhlc2UgZWxlbWVudHMuIEJ5IHRoZSB0aW1lIHdlknJlIGRvbmUsIHlvdZJsbCBoYXZlIHlvdXIgZmlyc3Qgb25saW5lCmhlbHAgcGx1Zy1pbi4KPGgyPgpNYWtpbmcgdGhlIHBsdWctaW4gYW5kIGNvbnRlbnQ8L2gyPgpBIGNvbnRlbnQgYXV0aG9yIHN1cHBsaWVzIG9uZSBvciBtb3JlIEhUTUwgZmlsZXMgY29udGFpbmluZyB0aGUgYWN0dWFsCmRvY3VtZW50YXRpb24uIFRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMgaW1wb3NlZCBieSB0aGUgcGxhdGZvcm0gb24gdGhlCmdyYW51bGFyaXR5IG9mIHRoZSBIVE1MIGZpbGVzLiBUaGF0IGlzLCB0aGUgZG9jdW1lbnRhdGlvbiBhdXRob3JzIGNhbiBvcHQKdG8gdXNlIG9uZSBtYXNzaXZlIEhUTUwgZmlsZSwgb3IgbnVtZXJvdXMgc21hbGxlciBncmFudWxhcml0eSBIVE1MIGZpbGVzLgpXZSB3aWxsIHN0YXJ0IGJ5IGFzc3VtaW5nIHRoYXQgeW91IGFscmVhZHkgaGF2ZSBzb21lIGh0bWwgZmlsZXMgdGhhdCB5b3UKd2FudCB0byBpbnRlZ3JhdGUgaW50byB0aGUgRWNsaXBzZSBwbGF0Zm9ybS4gTGV0knMgYXNzdW1lIHlvdXIgY29udGVudAppcyBhcnJhbmdlZCBpbnRvIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3J5IHRyZWUuCjxibG9ja3F1b3RlPjx0dD5kb2MvPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsgY29uY2VwdHMvPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29uY2VwdDEuaHRtbDwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNvbmNlcHQxXzEuaHRtbDwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNvbmNlcHQxXzIuaHRtbDwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7IHRhc2tzLzwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRhc2sxLmh0bWw8L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0YXNrMi5odG1sPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdGFzazNfMS5odG1sPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdGFzazNfMi5odG1sPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsgcmVmLzwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlZjEuaHRtbDwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlZjIuaHRtbDwvdHQ+PC9ibG9ja3F1b3RlPgpDcmVhdGUgYSBwbHVnLWluIGRpcmVjdG9yeSBjYWxsZWQgb3JnLmVjbGlwc2UuaGVscGFydGljbGUgYW5kIHBsYWNlIHRoZSBhYm92ZSAKPGk+ZG9jXCA8L2k+c3ViLXRyZWUgaW50byBpdDxpPi4gPC9pPk5vdyBjcmVhdGUgYW4gaW5pdGlhbCBwbHVnaW4ueG1sIGZpbGUgd2l0aCAKdGhlIGZvbGxvd2luZyBjb250ZW50OiAKPGJsb2NrcXVvdGU+PHR0PiZsdDs/eG1sIHZlcnNpb249IjEuMCI/PjwvdHQ+Cjxicj48dHQ+Jmx0O3BsdWdpbjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7IG5hbWUgPSAiT25saW5lIEhlbHAgU2FtcGxlIjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7IGlkID0gIm9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlIjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7IHZlcnNpb24gPSAiMC45IjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7IHByb3ZpZGVyLW5hbWUgPSAiT2JqZWN0IFRlY2hub2xvZ3kgSW50ZXJuYXRpb25hbCwKSW5jLiI+PC90dD4KPGJyPjx0dD4mbHQ7L3BsdWdpbj48L3R0PjwvYmxvY2txdW90ZT4KVG8gaGVscCB5b3UgZ2V0IHN0YXJ0ZWQgaGVyZSBpcyBhIHppcCBmaWxlIGNvbnRhaW5pbmcgdGhlIGFib3ZlIDxhIGhyZWY9ImluaXRpYWxzdHJ1Y3R1cmUuemlwIj5pbml0aWFsIApwbHVnLWluIHN0cnVjdHVyZTwvYT4uIFRoaXMgcGx1Zy1pbiBtYW5pZmVzdCBmaWxlIGRvZXNuJ3QgYWN0dWFsbHkgaW50ZWdyYXRlIGFueXRoaW5nIAp5ZXQgYnV0IHNvb24gd2Ugd2lsbCBhZGQgb3VyIGNvbnRyaWJ1dGlvbnMgdG8gaXQuIDxicj4KJm5ic3A7Cjxicj4mbmJzcDsKPGgyPgpUb3BpY3MgJmFtcDsgSFRNTCBDb250ZW50PC9oMj4KTm93IHRoYXQgd2UgaGF2ZSBvdXIgc2FtcGxlIGNvbnRlbnQgZmlsZXMgd2UgYXJlIHJlYWR5IHRvIGNyZWF0ZSBvdXIgPGI+dG9waWNzCjwvYj5maWxlLgpBIHRvcGljcyBmaWxlIGRlZmluZXMgdGhlIGtleSBlbnRyeSBwb2ludHMgaW50byB0aGUgSFRNTCBjb250ZW50IGZpbGVzCmJ5IG1hcHBpbmcgYSB0b3BpYyBpZCBhbmQgbGFiZWwgdG8gYSByZWZlcmVuY2UgaW4gb25lIG9mIHRoZSBIVE1MIGZpbGVzLgpBIHRvcGljcyBmaWxlIGFjdHMgbGlrZSBhIHRhYmxlIG9mIGNvbnRlbnRzIGZvciBhIHNldCBvZiBodG1sIGNvbnRlbnQuClRlYW1zIG1pZ3JhdGluZyBvbnRvIHRoZSBFY2xpcHNlIHBsYXRmb3JtIGNhbiBxdWlja2x5IHJldXNlIGV4aXN0aW5nIGRvY3VtZW50YXRpb24KYnkgZGVmaW5pbmcgZW50cnkgcG9pbnRzIGludG8gdGhlaXIgZXhpc3RpbmcgZG9jdW1lbnRhdGlvbiB2aWEgdGhlIHRvcGljcwpmaWxlLiBBIHBsdWctaW4gY2FuIGhhdmUgb25lIG9yIG1vcmUgdG9waWNzIGZpbGVzLiBUb3BpY3MgZmlsZXMgYXJlIHNvbWV0aW1lcwpyZWZlcnJlZCB0byBhcyBuYXZpZ2F0aW9uIGZpbGVzIHNpbmNlIHRoZXkgZGVzY3JpYmUgaG93IHRvIG5hdmlnYXRlIHRoZQpodG1sIGNvbnRlbnQuIFdlIGhhdmUgdGhyZWUgbWFpbiBjb250ZW50IGFyZWFzLCBjb25jZXB0cywgdGFza3MgYW5kIHJlZmVyZW5jZS4KT3VyIG9idmlvdXMgY2hvaWNlcyBhcmUgb25lIGJpZyB0b3BpY3MgZmlsZSwgb3IgYSB0b3BpY3MgZmlsZSBmb3IgZWFjaAptYWluIGNvbnRlbnQgYXJlYS4gS2VlcCBpbiBtaW5kIHRoaXMgZGVjaXNpb24gaXMgb3VycyB0byBtYWtlLCBhbmQgaXMgbm90CmEgZGVjaXNpb24gdGhlIHBsYXRmb3JtIGRpY3RhdGVzIHRvIHVzLiBJZiB3ZSB3ZXJlIJNyZWFsbHmUIHdyaXRpbmcgb3VyCmRvY3VtZW50YXRpb24gd2Ugd291bGQgaGF2ZSBhIGxhcmdlciBudW1iZXIgb2YgZmlsZXMgc28sIHdpdGggdGhhdCBpbiBtaW5kCndlIHdpbGwgdHJ5IGFuZCBrZWVwIHRoaW5ncyBtYW5hZ2VhYmxlIGJ5IGNyZWF0aW5nIGEgdG9waWNzIGZpbGUgZm9yIGVhY2gKb2YgdGhlIHRocmVlIGNvbnRlbnQgYXJlYXMgYXMgZm9sbG93czoKCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPnRvcGljc19UYXNrcy54bWw8L2I+CjxibG9ja3F1b3RlPjx0dD4mbHQ7dG9waWNzIGlkPSJ0YXNrc0FsbCI+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3RvcGljIGlkPSJwbGFpblRhc2tzIiBsYWJlbD0iUGxhaW4gU3R1ZmYiPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpYyBsYWJlbD0iVGFzazEiCmhyZWY9ImRvYy90YXNrcy90YXNrMS5odG1sIi8+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3RvcGljIGxhYmVsPSJUYXNrMiIKaHJlZj0iZG9jL3Rhc2tzL3Rhc2syLmh0bWwiLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7L3RvcGljPjwvdHQ+Jm5ic3A7PHR0PiZuYnNwOyZuYnNwOyZuYnNwOwombHQ7dG9waWMgaWQ9ImZ1blRhc2tzIiBsYWJlbD0iRnVuIFN0dWZmIiA+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3RvcGljIGxhYmVsPSJUYXNrM18xIgpocmVmPSJkb2MvdGFza3MvdGFzazNfMS5odG1sIi8+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3RvcGljIGxhYmVsPSJUYXNrM18yIgpocmVmPSJkb2MvdGFza3MvdGFzazNfMi5odG1sIi8+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0Oy90b3BpYz48L3R0Pgo8YnI+PHR0PiZsdDsvdG9waWNzPjwvdHQ+PC9ibG9ja3F1b3RlPgo8Yj50b3BpY3NfQ29uY2VwdHMueG1sPC9iPgo8YmxvY2txdW90ZT48dHQ+Jmx0O3RvcGljcyBpZD0iY29uY2VwdHNBbGwiPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpYyBsYWJlbD0iQ29uY2VwdDEiIGhyZWY9ImRvYy9jb25jZXB0cy9jb25jZXB0MS5odG1sIj48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7dG9waWMgbGFiZWw9IkNvbmNlcHQxXzEiCmhyZWY9ImRvYy9jb25jZXB0cy9jb25jZXB0MV8xLmh0bWwiLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7dG9waWMgbGFiZWw9IkNvbmNlcHQxXzIiCmhyZWY9ImRvYy9jb25jZXB0cy9jb25jZXB0MV8yLmh0bWwiLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7L3RvcGljPjwvdHQ+IDx0dD4mbHQ7L3RvcGljcz48L3R0PjwvYmxvY2txdW90ZT4KPGI+dG9waWNzX1JlZi54bWw8L2I+CjxibG9ja3F1b3RlPjx0dD4mbHQ7dG9waWNzIGlkPSJyZWZBbGwiPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpYyBsYWJlbD0iUmVmMSIgaHJlZj0iZG9jL3JlZi9yZWYxLmh0bWwiLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7dG9waWMgbGFiZWw9IlJlZjIiIGhyZWY9ImRvYy9yZWYvcmVmMi5odG1sIi8+PC90dD4KPGJyPjx0dD4mbHQ7L3RvcGljcz48L3R0PjwvYmxvY2txdW90ZT4KVG9waWNzIGFyZSBjb250cmlidXRlZCBhcyBwYXJ0IG9mIHRoZSA8aT50b3BpY3M8L2k+IGNvbnRhaW5lciBlbGVtZW50LiBBIDxpPnRvcGljPC9pPiAKY2FuIGJlIGEgc2ltcGxlIGxpbmsgdG8gY29udGVudCAoZS5nLiBUYXNrMSkgb3IgYSBoaWVyYXJjaGljYWwgZ3JvdXBpbmcgb2Ygc3ViLXRvcGljcyAKKGUuZy4gRnVuIFN0dWZmKSwgb3IgYm90aCAoZS5nLiBDb25jZXB0MSkuIFdoZW4gd2Ugc3RhcnQgd2lyaW5nIHRoZXNlIHRvcGljcyBpbnRvIAp0aGUgb3ZlcmFsbCBkb2N1bWVudGF0aW9uIHdlYiB3ZSB3aWxsIHJlZmVyIHRvIHRoZW0gYnkgdGhlaXIgaWQuIFdoZW4gdXNlZCBhcyAKYSBsaW5rLCB0aGUgYXJndW1lbnQgdG8gaHJlZiBpcyBhc3N1bWVkIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBsdWctaW4uIApPbmx5IHRvcGljcyB3aXRoIGFuIGlkIGNhbiBiZSBtYW5pcHVsYXRlZC4gV2UgY2FuIGFsc28gcmVmZXIgdG8gdGhlIGlkIGFzc29jaWF0ZWQgCndpdGggdGhlIHRvcGljcyBlbGVtZW50IGlmIHdlIHdhbnQgdG8gcmVmZXIgdG8gYWxsIG9mIGl0cyBlbmNsb3NlZCB0b3BpYyBlbnRyaWVzLiAKTGF0ZXIgd2Ugd2lsbCBtb2RpZnkgdGhlIHBsdWdpbi54bWwgdG8gYWRkIHRoZSBhY3R1YWwgY29udHJpYnV0aW9ucyBwb2ludGluZyB0byAKdGhlc2UgZmlsZXMuIAo8aDI+CkNyZWF0aW5nIGEgYm9vazwvaDI+Ck5vdyB0aGF0IHdlIGhhdmUgb3VyIHJhdyBjb250ZW50IGFuZCB0b3BpYyBmaWxlcyBpdJJzIHRpbWUgdG8gY3JlYXRlIG91cgppbmZvc2V0LiBBbiBpbmZvcm1hdGlvbiBzZXQgKGluZm9zZXQpIGlzIGEgZG9jdW1lbnRhdGlvbiB3ZWIgb3IgYm9vay4gVGhlCkVjbGlwc2UgcGxhdGZvcm0gY2FuIGRpc3BsYXkgYW55IG51bWJlciBvZiBpbmZvc2V0cy4gQW4gaW5mb3NldCBjb250YWlucwpvbmUgb3IgbW9yZSBpbmZvdmlld3MuIEFuIGluZm92aWV3IHByb3ZpZGVzIGEgaGlnaC1sZXZlbCBzZW1hbnRpYyBncm91cGluZwp3aXRoaW4gdGhlIGluZm9zZXQuIEluZm92aWV3cyBjb3VsZCBiZSB1c2VkIHRvIGNyZWF0ZSBtdWx0aXBsZSB2aWV3cyBvbnRvCnRoZSBkb2N1bWVudCB3ZWIuIEZvciBleGFtcGxlIHdlIGNvdWxkIHVzZSB0aGVtIHRvIGNyZWF0ZSBhbiBpbnRlZ3JhdGVkCnZpZXcgb2YgZG9jdW1lbnRhdGlvbiBzdXBwbGllZCBieSBtYW55IGNvbXBvbmVudHMsIG9yIGEgY29tcG9uZW50IGJhc2VkCnZpZXcuIFdlIGNvdWxkIGFsc28gdXNlIHRoZW0gdG8gY3JlYXRlIHNlcGFyYXRlIHZpZXdzIGZvciBnZXR0aW5nIHN0YXJ0ZWQsCnRhc2tzIGFuZCBjb25jZXB0cywgb3IgYXMgd2Ugd2lsbCBzaG9ydGx5IGRvLCBjcmVhdGUgb25lIGluZm92aWV3IHRvIHNob3cKdGhlbSBhbGwuIFRoZSB0ZXJtIGluZm92aWV3IGlzIHVzZWQgdG8gYXZvaWQgY29sbGlzaW9uL2NvbmZ1c2lvbiB3aXRoIHRoZQp0ZXJtIHZpZXcgaW4gdGhlIHBsYXRmb3JtknMgdXNlciBpbnRlcmZhY2UuIEVhY2ggaW5mb3ZpZXcgY29udGFpbnMgYSBjb2xsZWN0aW9uCm9mIHRvcGljcy4gU29tZXRpbWVzIGEgaGlnaGVyLWxldmVsIGNvbXBvbmVudCBvciBwcm9kdWN0IHRlYW0gaXMgcmVzcG9uc2libGUKZm9yIHdlYXZpbmcgdG9nZXRoZXIgdGhlIGRvY3VtZW50YXRpb24gYW5kIHRvcGljcyBzdXBwbGllZCBieSBhIG51bWJlcgpvZiBpdHMgY29tcG9uZW50IHRlYW1zLiBGb3Igb3VyIHB1cnBvc2VzIHdlkmxsIGFzc3VtZSB0aGF0IG91ciBwbHVnLWluCnNob3VsZCBzdXBwbHkgYm90aCB0aGUgdG9waWNzIGFuZCB0aGUgYm9vayB0aGF0IGludGVncmF0ZXMgdGhlIHRvcGljcy4KVG93YXJkcyB0aGUgZW5kIG9mIHRoZSBhcnRpY2xlIHdlIHdpbGwgbG9vayBhdCBob3cgdG8gbWFrZSB5b3VyIGRvY3VtZW50YXRpb24KcGx1Zy1pbiBsaXZlIGhhcHBpbHkgaW4gYm90aCBhIGNvbXBvbmVudCB3b3JsZCBhbmQgYSBwcm9kdWN0IHdvcmxkLgo8YnI+Jm5ic3A7CjxwPlRoZSBmb2xsb3dpbmcgaW5mb3NldCBoYXMgaWQgk2luZm9zZXRfU2FtcGxlR3VpZGWUIGFuZCBkZWNsYXJlcyBvbmUKaW5mb3ZpZXcgd2hvc2UgaWQgaXMgk3ZpZXdfQ29udGVudHOULiBUaGUgaWQgb2YgdGhlIGluZm92aWV3IHdpbGwgYmVjb21lCmltcG9ydGFudCBhcyB3ZSBzdGFydCB3aXJpbmcgaW4gdGhlIGhpZ2ggbGV2ZWwgc3RydWN0dXJlIGZvciB0aGUgaW5mb3ZpZXcsCmFuZCB1bHRpbWF0ZWx5IHdpcmluZyBpbiB0aGUgdG9waWNzIHdlIGRlZmluZWQgZWFybGllci4KPHA+PGI+aW5mb3NldF9TYW1wbGVHdWlkZS54bWw8L2I+CjxibG9ja3F1b3RlPjx0dD4mbHQ7aW5mb3NldCBpZD0iaW5mb3NldF9TYW1wbGVHdWlkZSIgbGFiZWw9Ik9ubGluZSBIZWxwClNhbXBsZSIgaHJlZj0iPGI+ZG9jL3NwbGFzaC5odG1sPC9iPiI+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0OzxiPmluZm92aWV3PC9iPiBsYWJlbD0iQ29udGVudCIgaWQ9InZpZXdfQ29udGVudHMiCi8+PC90dD4KPGJyPjx0dD4mbHQ7L2luZm9zZXQ+PC90dD48L2Jsb2NrcXVvdGU+ClNlbGVjdGluZyB0aGUgYm9vayBjYWxsZWQgIk9ubGluZSBIZWxwIFNhbXBsZSIgc2hvd3Mgb25lIHBvc3NpYmxlIGluZm92aWV3CmNhbGxlZCAiQ29udGVudCIuIFRoZSBmb2xsb3dpbmcgZmlndXJlIHNob3dzIHRoZSBldmVudHVhbCBsb29rIG9mIG91ciBoZWxwLgpJZiBtdWx0aXBsZSBpbmZvdmlld3MgaGFkIGJlZW4gZGVjbGFyZWQgYnkgb3VyIHhtbCBmaWxlIHRoZXkgd291bGQgc2hvdwp1cCBhcyBhZGRpdGlvbmFsICJpbmZvdmlldyB0YWJzIiBhbG9uZ3NpZGUgdGhlICJDb250ZW50IiB0YWIuIE5vdGljZSB0aGF0Cm91ciBzcGxhc2ggcGFnZSAoY29udGFpbmVkIGluIHNwbGFzaC5odG1sJm5ic3A7IGFuZCBkZWNsYXJlZCBhYm92ZSkgaXMKYWxzbyBkaXNwbGF5ZWQuJm5ic3A7CjxibG9ja3F1b3RlPjxpbWcgU1JDPSJmaW5hbC5qcGciIGhlaWdodD00Mzcgd2lkdGg9NjY4PjwvYmxvY2txdW90ZT4KCjxicj4mbmJzcDsKPGgyPgpXaXJpbmcgaW4gdGhlIHRvcCBsZXZlbCBzdHJ1Y3R1cmU8L2gyPgpOZXh0IG9uIG91ciBhZ2VuZGEgaXMgdG8gZGVmaW5lIHRoZSB0b3AtbGV2ZWwgc3RydWN0dXJlIHRoYXQgYSB1c2VyIHdpbGwKc2VlIHdpdGhpbiBvdXIgk0NvbnRlbnRzlCBpbmZvdmlldy4gV2Ugc3RhcnQgYnkgY3JlYXRpbmcgdGhlIGZvbGxvd2luZwp0b3BpY3MgZmlsZSBmb3IgdGhlIHRvcC1sZXZlbCB0b3BpY3M6CjxwPjxiPnRvcGljc192aWV3X0NvbnRlbnRzLnhtbDwvYj4KPGJsb2NrcXVvdGU+PHR0PiZsdDt0b3BpY3MgaWQ9InRvcGljc192aWV3X0NvbnRlbnRzIj48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7dG9waWMgaWQ9ImNvbmNlcHRzUm9vdCIgbGFiZWw9IkNvbmNlcHRzIgovPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpYyBpZD0idGFza3NSb290IiBsYWJlbD0iVGFza3MiIC8+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3RvcGljIGlkPSJmdW5Sb290IiBsYWJlbD0iRnVuIFRoaW5ncyIgLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7dG9waWMgaWQ9InJlZlJvb3QiIGxhYmVsPSJSZWZlcmVuY2UiIC8+PC90dD4KPGJyPjx0dD4mbHQ7L3RvcGljcz48L3R0PjwvYmxvY2txdW90ZT4KTm93IGNvbWVzIHRoZSBmdW4gcGFydCwgdGltZSB0byCTd2lyZSBpbpQgdGhlc2UgdG9waWNzIGludG8gb3VyIJNDb250ZW50c5QKaW5mb3ZpZXcuIE9uY2Ugd2WSdmUgZG9uZSB0aGF0IHdlIGNhbiB0aGVuIHByb2NlZWQgdG8gd2lyZSBpbiBhbGwgb2Ygb3VyCm90aGVyIHRvcGljcyB1bmRlcm5lYXRoIHRoZSBhYm92ZSB0b3AtbGV2ZWwgdG9waWNzLiBXZSBzdGFydCBieSB3aXJpbmcKaW4gdGhlIHRvcC1sZXZlbCB0b3BpY3MgdXNpbmcgdGhlIGZvbGxvd2luZyA8Yj5hY3Rpb25zCjwvYj5maWxlLgo8cD48Yj5hY3Rpb25zX3ZpZXdfQ29udGVudHMueG1sPC9iPgo8YmxvY2txdW90ZT48dHQ+Jmx0O2FjdGlvbnMgaW5mb3ZpZXc9Im9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlLnZpZXdfQ29udGVudHMiPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtpbnNlcnQ8L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBmcm9tPSJvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZS50b3BpY3Nfdmlld19Db250ZW50cyI8L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0bz0ib3JnLmVjbGlwc2UuaGVscGFydGljbGUudmlld19Db250ZW50cyI8L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBhcz0iY2hpbGQiLz48L3R0Pgo8YnI+PHR0PiZsdDsvYWN0aW9ucz48L3R0PjwvYmxvY2txdW90ZT4KVGhlIGZvbGxvd2luZyBzbmFwc2hvdCBzaG93cyB3aGF0IG91ciBpbmZvc2V0IChPdXRsaW5lIEhlbHAgU2FtcGxlKSB3aWxsCmxvb2sgbGlrZSBhcyBhIHJlc3VsdCBvZiB3aXJpbmcgaW4gdGhlc2UgdG9wLWxldmVsIHRvcGljcy4gVGhlIHRpdGxlIChsYWJlbCkKb2YgdGhlIGluZm9zZXQgaXMgb25seSBkaXNwbGF5ZWQgaW4gdGhlIGNvbWJvIGJveCBpZiB0aGVyZSBpcyBtb3JlIHRoYW4Kb25lIGluZm9zZXQuCjxibG9ja3F1b3RlPiAKICA8ZGl2IGFsaWduPSJsZWZ0Ij48aW1nIFNSQz0idG9wbGV2ZWwuanBnIiBoZWlnaHQ9OTkgd2lkdGg9MTk3PjwvZGl2Pgo8L2Jsb2NrcXVvdGU+Cgo8aDI+ClRha2luZyBhIGNsb3NlciBsb29rIGF0IGFjdGlvbnM8L2gyPgo8ZGl2IGFsaWduPSJsZWZ0Ij5CZWZvcmUgd2UgY29udGludWUgbGV0knMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBhY3Rpb24gZmlsZSAKICBhbmQgdGhlIGFjdGlvbiBlbGVtZW50cyBpdCBjb250YWlucy4gVGhlIGFjdGlvbnMgZmlsZSBjb250YWlucyBzY3JpcHRpbmcgYWN0aW9ucyAKICB0byBiZSBwZXJmb3JtZWQgb24gdG9waWNzIGFuZCBpbmZvdmlld3MuIEN1cnJlbnRseSB0aGVyZSBpcyBvbmx5IG9uZSBraW5kIG9mIAogIGFjdGlvbiwgdGhlIGluc2VydCBhY3Rpb24sIHdoaWNoIGlzIHVzZWQgdG8gd2lyZSB0b3BpY3MgYW5kIHZpZXdzIHRvZ2V0aGVyIGludG8gCiAgb25lIGludGVncmF0ZWQgaW5mb3JtYXRpb24gd2ViLiBUaGUgYWN0aW9ucyBhcmUgc3RydWN0dXJhbCBhY3Rpb25zIChpbnNlcnQpIAogIGFuZCwgdGh1cywgYXBwbHkgdG8gYSBjZXJ0YWluIGluZm92aWV3LiBTbywgYWxsIHRoZSBpbnNlcnQgYWN0aW9ucyBpbiBhbiBhY3Rpb25zIAogIGZpbGUgd2lyZSB0aGVpciB0b3BpY3MgaW50byBvbmUgaW5mb3ZpZXcuIElmIHlvdSB3YW50IHRvIHdpcmUgaW50byBkaWZmZXJlbnQgCiAgaW5mb3ZpZXdzLCB5b3Ugd2lsbCBuZWVkIGFuIGFjdGlvbnMgZmlsZSBmb3IgZWFjaC4gVGhlIGluc2VydGlvbiBwb2ludHMgY2FuIAogIGJlIHRvcGljcyBvciBpbmZvdmlld3MuJm5ic3A7IEEgdG9waWMgaW5kaWNhdGVzIGl0cyB3aWxsaW5nbmVzcyB0byBiZSBhbiBpbnNlcnRpb24gCiAgcG9pbnQgYnkgcHJvdmlkaW5nIGFuIGlkLiBJbmZvdmlld3MgYXJlIHJlcXVpcmVkIHRvIGhhdmUgaWQncy4mbmJzcDsgT25seSBmdWxseSAKICBxdWFsaWZpZWQgaWRzIGFyZSB1c2VkIGFzIHJlZmVyZW5jZXMuIEZvciBleGFtcGxlLCB0aGUgZnVsbHkgcXVhbGlmaWVkIHRvcGljIAogIGlkIG9mIHRoZSB0b3BpYyAmbHQ7dG9waWMgaWQ9ImNvbmNlcHRzUm9vdCAiIGxhYmVsPSJDb25jZXB0cyI+Jm5ic3A7IGluIG91ciAKICBvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZSBwbHVnLWluIGlzIG9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlLmNvbmNlcHRzUm9vdC4gSW4gCiAgdGhlIGFib3ZlIGFjdGlvbnMgZmlsZSB3ZSB0b29rIHRoZSB0b3BpY3MgZWxlbWVudCB3aXRoIGZ1bGx5IHF1YWxpZmllZCBpZCAib3JnLmVjbGlwc2UuaGVscGFydGljbGUudG9waWNzX3ZpZXdDb250ZW50cyImbmJzcDsgCiAgYW5kIHdpcmVkIGl0IGludG8gdGhlIGluZm92aWV3IHdpdGggaWQgIm9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlLnZpZXdfQ29udGVudHMiLiAKPC9kaXY+CjxwPlNpbmNlIHRoZSBpbnNlcnRpb24gcG9pbnRzIGFyZSBzb21ldGltZXMgbG9jYXRlZCBpbiBvdGhlciBwbHVnLWlucywKYW5kIHRoZXNlIHBsdWctaW5zIG1heSBub3QgYmUgaW5zdGFsbGVkLCBvbmUgY2FuIHNwZWNpZnkgYW4gYWx0ZXJuYXRlIGluc2VydGlvbgpwb2ludC4gQnkgZGVmYXVsdCwgaWYgbm9uZSBvZiB0aGUgY2hvaWNlcyBzdWNjZWVkLCB0aGUgdG9waWMgc3RheXMgdW5kZXIKaXRzIGNvbXBvbmVudCBoaWVyYXJjaHkuIFRoZSAidG8iIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIHRhcmdldCBpbnNlcnRpb24KcG9pbnQuIFRoZSB0b3BpYyBzcGVjaWZpZWQgYnkgdGhlICJmcm9tIiBhdHRyaWJ1dGUgaXMgdGhlIHRvcGljIGJlaW5nIGluc2VydGVkLiZuYnNwOwpGb2xsb3dpbmdzIGFyZSBzb21lIHBvc3NpYmxlIHdheXMgdG8gaW5zZXJ0IGEgdG9waWMgYW5kIHRoZXkgYXJlIHNwZWNpZmllZAp1c2luZyB0aGUgIjxiPmFzPC9iPiIgYXR0cmlidXRlOgo8dWwgdHlwZT1kaXNjPgo8bGk+CkFzIGEgY2hpbGQgb2YgdGhlIGluc2VydGlvbiBwb2ludCwgd2hpY2ggaXMgdGhlIG1vc3QgY29tbW9uLiBBdHRyaWJ1dGU6Jm5ic3A7CmFzID0gImNoaWxkIi48L2xpPgoKPGxpPgpBcyB0aGUgZmlyc3QgY2hpbGQgb2YgdGhlIGluc2VydGlvbiBwb2ludC4gQXR0cmlidXRlIGFzID0gImZpcnN0LWNoaWxkIi48L2xpPgoKPGxpPgpBcyB0aGUgbGFzdCBjaGlsZCBvZiB0aGUgaW5zZXJ0aW9uIHBvaW50LiBBdHRyaWJ1dGUgYXMgPSAibGFzdC1jaGlsZCIuPC9saT4KCjxsaT4KQXMgdGhlIHByZXZpb3VzIHNpYmxpbmcgb2YgdGhlIGluc2VydGlvbiBwb2ludCAoaS5lLiwganVzdCBiZWZvcmUgdGhlIGluc2VydGlvbgpwb2ludCBhdCB0aGUgc2FtZSBsZXZlbCBpbiB0aGUgbmF2aWdhdGlvbiB0cmVlKS4gQXR0cmlidXRlIGFzID0gInByZXYtc2liIi48L2xpPgoKPGxpPgpBcyB0aGUgbmV4dCBzaWJsaW5nIG9mIHRoZSBpbnNlcnRpb24gcG9pbnQgKGkuZS4sIGp1c3QgYWZ0ZXIgdGhlIGluc2VydGlvbgpwb2ludCBhdCB0aGUgc2FtZSBsZXZlbCBpbiB0aGUgbmF2aWdhdGlvbiB0cmVlKS4gQXR0cmlidXRlIGFzID0gIm5leHQtc2liIi48L2xpPgo8L3VsPgpBbHRlcm5hdGl2ZSBpbnNlcnRpb24gb3B0aW9ucyBjYW4gYmUgcHJvdmlkZWQuIFRoZSBuZXN0ZWQgaW5zZXJ0IHN1Yi1lbGVtZW50cyAKb2YgdGhlIGluc2VydCBlbGVtZW50IHByb3ZpZGUgdGhlc2UgYWx0ZXJuYXRpdmVzLiBUaGlzIGNhbiBiZSB0aG91Z2h0IG9mIGFzIGEgCiJmYWxsLWJhY2siIG1lY2hhbmlzbSB3aGVyZSBpZiBhbiBpbnNlcnQgYWN0aW9uIGZhaWxzLCB0aGUgbmVzdGVkIGluc2VydCBhY3Rpb24gCndpbGwgYmUgZXhlY3V0ZWQuIE9uY2UgdGhlIGZpcnN0IGNob2ljZSBpbnNlcnRpb24gcG9pbnQgaGFzIGJlZW4gc2F0aXNmaWVkLCB0aGUgCm90aGVyIGFsdGVybmF0aXZlIGluc2VydGlvbiBwb2ludHMgYXJlIGlnbm9yZWQuIDxicj4KJm5ic3A7CjxoMj4KSW50ZWdyYXRpbmcgb3VyIHRvcGljczwvaDI+ClRoZSB0aW1lIGhhcyBjb21lIHRvIGZpbmFsbHkgaW50ZWdyYXRlIG91ciB0b3BpY3MgaW50byB0aGUgdG9wLWxldmVsIHRvcGljcyBvZiAKdGhlIJNDb250ZW50c5QgaW5mb3ZpZXcuIFRvIGRvIHRoaXMgd2UgbmVlZCBhbm90aGVyIGFjdGlvbnMgZmlsZSB0aGF0IHdlIHdpbGwgCmNhbGwgYWN0aW9uc19BbGwueG1sIChzaW5jZSBpdCBpbnRlZ3JhdGVzIGFsbCBvZiBvdXIgdG9waWNzKS4gCjxwPjxiPmFjdGlvbnNfQWxsLnhtbDwvYj4KPGJsb2NrcXVvdGU+PHR0PiZsdDthY3Rpb25zIGluZm92aWV3PSJvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZS52aWV3X0NvbnRlbnRzIj48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7aW5zZXJ0PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZnJvbT0ib3JnLmVjbGlwc2UuaGVscGFydGljbGUuY29uY2VwdHNBbGwiPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdG89Im9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlLmNvbmNlcHRzUm9vdCI8L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBhcz0iY2hpbGQiLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7aW5zZXJ0PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZnJvbT0ib3JnLmVjbGlwc2UuaGVscGFydGljbGUucmVmQWxsIjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRvPSJvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZS5yZWZSb290IjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFzPSJjaGlsZCIvPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtpbnNlcnQ8L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBmcm9tPSJvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZS5wbGFpblRhc2tzIjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRvPSJvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZS50YXNrc1Jvb3QiPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYXM9ImNoaWxkIi8+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0O2luc2VydDwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZyb209Im9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlLmZ1blRhc2tzIjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRvPSJvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZS5mdW5Sb290IjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFzPSJjaGlsZCIvPjwvdHQ+IDx0dD4mbHQ7L2FjdGlvbnM+PC90dD48L2Jsb2NrcXVvdGU+ClJlY2FsbCB0aGF0IHdlIGhhZCBhIG51bWJlciBvZiB0YXNrIHJlbGF0ZWQgaHRtbCBmaWxlcywgYW5kIHRoZSBzdHJ1Y3R1cmUvbmF2aWdhdGlvbgpvZiB0aGVzZSBmaWxlcyB3YXMgZGVmaW5lZCBieSB0b3BpY3NfdGFza3MueG1sIGFzIGZvbGxvd3M6CjxwPjxiPnRvcGljc19UYXNrcy54bWw8L2I+CjxibG9ja3F1b3RlPjx0dD4mbHQ7dG9waWNzIGlkPSJ0YXNrc0FsbCI+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3RvcGljIGlkPSJwbGFpblRhc2tzIiBsYWJlbD0iUGxhaW4gU3R1ZmYiPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpYyBsYWJlbD0iVGFzazEiCmhyZWY9ImRvYy90YXNrcy90YXNrMS5odG1sIi8+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3RvcGljIGxhYmVsPSJUYXNrMiIKaHJlZj0iZG9jL3Rhc2tzL3Rhc2syLmh0bWwiLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7L3RvcGljPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpYyBpZD0iZnVuVGFza3MiIGxhYmVsPSJGdW4gU3R1ZmYiID48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7dG9waWMgbGFiZWw9IlRhc2szXzEiCmhyZWY9ImRvYy90YXNrcy90YXNrM18xLmh0bWwiLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7dG9waWMgbGFiZWw9IlRhc2szXzIiCmhyZWY9ImRvYy90YXNrcy90YXNrM18yLmh0bWwiLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7L3RvcGljPjwvdHQ+Cjxicj48dHQ+Jmx0Oy90b3BpY3M+PC90dD48L2Jsb2NrcXVvdGU+CkluIHRoZSBhYm92ZSBhY3Rpb25zIGZpbGUgd2UgdXNlIHRoZSBpbnNlcnQgYXMgY2hpbGQgYWN0aW9uIHRvIHRha2UgdGhlIHRvcGljIAp3aXRoIGlkIG9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlLnBsYWluVGFza3MgYW5kIGluc2VydCBpdCBhbmQgaXRzIHN1Yi10b3BpY3MgdW5kZXIgCnRoZSB0b3BpYyB3aXRoIGlkIG9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlLnRhc2tzUm9vdCAKPGJsb2NrcXVvdGU+PHR0PiZsdDtpbnNlcnQ8L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyBmcm9tPSJvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZS5wbGFpblRhc2tzIjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRvPSJvcmcuZWNsaXBzZS5oZWxwYXJ0aWNsZS50YXNrc1Jvb3QiPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgYXM9ImNoaWxkIi8+PC90dD48L2Jsb2NrcXVvdGU+ClRoZSBhY3Rpb25zIGZpbGUgYWxzbyB0YWtlcyBzb21lIG9mIG91ciBtb3JlIGVudGVydGFpbmluZyB0YXNrcyBhbmQgaW5zZXJ0cwp0aGVtIGludG8gdGhlIJNGdW4gVGhpbmdzlCBhcmVhIG9mIHRoZSB3ZWIgdXNpbmcgdGhlIGZvbGxvd2luZyBhY3Rpb24uCjxibG9ja3F1b3RlPjx0dD4mbHQ7aW5zZXJ0PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgZnJvbT0ib3JnLmVjbGlwc2UuaGVscGFydGljbGUuZnVuVGFza3MiPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgdG89Im9yZy5lY2xpcHNlLmhlbHBhcnRpY2xlLmZ1blJvb3QiPC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgYXM9ImNoaWxkIi8+PC90dD48L2Jsb2NrcXVvdGU+Cgo8aDI+CkZpbmlzaGluZyBvdXIgcGx1Z2luPC9oMj4KQmVmb3JlIHdlIGNvbnRpbnVlIGEgYnJpZWYgcmVjYXAgaXMgaW4gb3JkZXI6Cjx1bD4KPGxpPgpXZSBzdGFydGVkIGJ5IGNyZWF0aW5nIG91ciBwbHVnLWluIGFuZCBkb2N1bWVudCBmaWxlcy48L2xpPgoKPGxpPgpOZXh0IHdlIGNyZWF0ZWQgdG9waWMgZmlsZXMgdG8gZGVzY3JpYmUgdGhlIHN0cnVjdHVyZS9uYXZpZ2F0aW9uIG9mIG91cgpjb250ZW50LjwvbGk+Cgo8bGk+CldlIHRoZW4gbW92ZWQgdXAgb25lIGxldmVsIGFib3ZlIGNvbnRlbnQsIHRvIHRoZSB3aXJpbmcgYW5kIGludGVncmF0aW9uCm9mIG91ciBib29rLiBUbyBkbyB0aGlzIHdlIGNyZWF0ZWQgb3VyIGluZm9zZXQgd2l0aCBpdHMgc2luZ2xlIENvbnRlbnRzCmluZm92aWV3LjwvbGk+Cgo8bGk+Ck5leHQgd2UgY3JlYXRlZCBhbm90aGVyIHRvcGljcyBmaWxlICh0b3BpY3Nfdmlld19Db250ZW50cy54bWwpIHRvIGRlZmluZQp0aGUgdG9wLWxldmVsIHRvcGljcy48L2xpPgoKPGxpPgpGaW5hbGx5IHdlIHdpcmVkIGl0IGFsbCB0b2dldGhlciB1c2luZyB0aGUgYWN0aW9uIGZpbGVzIGFjdGlvbnNfdmlld19Db250ZW50cy54bWwKKHRvIHdpcmUgaW4gdGhlIHRvcCBsZXZlbCB0b3BpY3MpIGFuZCBhY3Rpb25zX0FsbC54bWwgKHRvIHdpcmUgaW4gdGhlIGJ1bGsKb2Ygb3VyIHRvcGljcykuPC9saT4KPC91bD4KCjxwPjxicj5UaGUgb25lIHJlbWFpbmluZyBwaWVjZSBvZiB3b3JrIGlzIHRvIHVwZGF0ZSBvdXIgcGx1Z2luLnhtbCB0byBhY3R1YWxseQpjb250cmlidXRlIHRoZSBhY3Rpb24sIHRvcGljcywgYW5kIGluZm9zZXQgZmlsZXMgdGhhdCB3ZSBjcmVhdGVkLiBTdGFydAp3aXRoIHVwZGF0aW5nIHRoZSBwbHVnaW4ueG1sIHRvIGNvbnRyaWJ1dGUgb3VyIGluZm9zZXQ6CjxibG9ja3F1b3RlPjx0dD4mbHQ7ZXh0ZW5zaW9uIHBvaW50PSJvcmcuZWNsaXBzZS5oZWxwLmNvbnRyaWJ1dGlvbnMiPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtpbmZvc2V0IG5hbWU9ImluZm9zZXRfU2FtcGxlR3VpZGUueG1sIi8+Jmx0Oy9leHRlbnNpb24+PC90dD48L2Jsb2NrcXVvdGU+Ck5leHQgd2UgY29udHJpYnV0ZSB0aGUgdG9wLWxldmVsIHRvcGljcywgYW5kIHRoZSBhY3Rpb25zIGZpbGUgdGhhdCB3aXJlcwp0aGVtIGludG8gb3VyIGluZm9zZXQ6CjxibG9ja3F1b3RlPjx0dD4mbHQ7ZXh0ZW5zaW9uIHBvaW50PSJvcmcuZWNsaXBzZS5oZWxwLmNvbnRyaWJ1dGlvbnMiPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpY3MgbmFtZT0idG9waWNzX3ZpZXdfQ29udGVudHMueG1sIi8+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0O2FjdGlvbnMgbmFtZT0iYWN0aW9uc192aWV3X0NvbnRlbnRzLnhtbCIKLz48L3R0Pgo8YnI+PHR0PiZsdDsvZXh0ZW5zaW9uPjwvdHQ+PC9ibG9ja3F1b3RlPgpMYXN0bHkgd2UgY29udHJpYnV0ZSB0aGUgYnVsayBvZiBvdXIgdG9waWNzIGFuZCB3aXJlIHRoZW0gaW46CjxibG9ja3F1b3RlPjx0dD4mbHQ7ZXh0ZW5zaW9uIHBvaW50PSJvcmcuZWNsaXBzZS5oZWxwLmNvbnRyaWJ1dGlvbnMiPjwvdHQ+Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpY3MgbmFtZT0idG9waWNzX0NvbmNlcHRzLnhtbCIgLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7dG9waWNzIG5hbWU9InRvcGljc19UYXNrcy54bWwiIC8+PC90dD4KPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3RvcGljcyBuYW1lPSJ0b3BpY3NfUmVmLnhtbCIgLz48L3R0Pgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7YWN0aW9ucyBuYW1lPSJhY3Rpb25zX0FsbC54bWwiIC8+PC90dD4KPGJyPjx0dD4mbHQ7L2V4dGVuc2lvbj48L3R0PjwvYmxvY2txdW90ZT4KVGhhdJJzIGl0LCB5b3WScmUgZG9uZS4gTm93IHRha2UgeW91ciBwbHVnaW4gKGNsaWNrIGhlcmUgZm9yIGEgPGEgaHJlZj0iZmluYWwuemlwIj56aXAgCmZpbGU8L2E+IG9mIHRoZSBmaW5hbCBwbHVnaW4pIGFuZCBkcm9wIGl0IGludG8gdGhlIHBsYXRmb3JtknMgPGk+cGx1Z2luczwvaT4gZGlyZWN0b3J5LCAKc3RhcnQgZWNsaXBzZSBhbmQgY2hvb3NlIEhlbHAgLT4gSGVscCBDb250ZW50cy4gT25jZSB5b3UgZXhwYW5kIHRoZSB0b3BpY3MgaW4gCnRoZSCTQ29udGVudHOUIGluZm92aWV3IHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nLiA8YnI+CiZuYnNwOwo8cD48aW1nIFNSQz0iZmluYWwuanBnIiBoZWlnaHQ9NDM3IHdpZHRoPTY2OD4gPGJyPgogICZuYnNwOwo8YnI+Jm5ic3A7CjxoMj4KTm9uLWludGVncmF0ZWQgY29tcG9uZW50czwvaDI+CldoYXQgaWYgd2UgZXhwZWN0IG91ciBwbHVnLWluIHdpbGwgc29tZXRpbWVzIGJlIGluc3RhbGxlZCBieSBpdHNlbGYsIGFuZCBpbiBvdGhlciAKY2FzZXMgaXQgd2lsbCBiZSBpbnN0YWxsZWQgYXMgcGFydCBvZiBhIGxhcmdlciBjb21wb25lbnQgb3IgcHJvZHVjdC4gV2hlbiBkZXBsb3lpbmcgCmEgZnJlZSBmbG9hdGluZyBwbHVnLWluIHdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgb3VyIGluZm9zZXQgaXMgdmlzaWJsZS4gV2hlbiB0b3BpY3MgCmZyb20gYSBwbHVnLWluIGFyZSBpbnRlZ3JhdGVkIGludG8gYSBsYXJnZXIgd2ViIGl0IHByb2JhYmx5IGRvZXNuknQgbWFrZSBzZW5zZSAKZm9yIHRoZWlyIHN0YW5kYWxvbmUgYm9vayB0byBzaG93IHVwIGFueW1vcmUuIFRvIHN1cHBvcnQgdGhpcyBub25pbnRlZ3JhdGVkIG9yIApsb29zZWx5IGludGVncmF0ZWQgZG9jdW1lbnRhdGlvbiwgYSBwbHVnLWluIGNhbiBkZWZpbmUgYW4gaW5mb3NldCBhbmQgYXNzb2NpYXRlZCAKYWN0aW9ucyBhbmQgc2V0IHRoZWlyIDxiPnN0YW5kYWxvbmU8L2I+IGF0dHJpYnV0ZSB0byB0cnVlLiBUaGlzIGhhcyB0aGUgZWZmZWN0IApvZiBleGVjdXRpbmcgdGhlIGluc2VydHMgb25seSB3aGVuIHRob3NlIHRvcGljcyBoYXZlIG5ldmVyIGJlZW4gY29udHJpYnV0ZWQgYW55d2hlcmUgCmVsc2UgYW5kIG9ubHkgZGlzcGxheSB0aGUgaW5mb3NldCBpZiBpdCBpcyBub3QgZW1wdHkuIEluIG90aGVyIHdvcmRzLCB0aGlzIGJlaGF2ZXMgCmFzOiAiaWYgdGhpcyBpcyBhbiBpbmRlcGVuZGVudCBwbHVnLWluLCBhbmQgdGhlcmUgYXJlIG5vIHRvcGljcyBjb250cmlidXRlZCB0byAKc29tZSB3ZWxsLWtub3duIGluZm9zZXQsIHRoZW4gaW5zZXJ0IHRoZSBkb2N1bWVudGF0aW9uIGludG8gYSBzdGFuZGFsb25lIGluZm8gCnNldCIuIEVtcHR5IHN0YW5kYWxvbmUgaW5mb3NldHMgYXJlIG5vdCBzaG93bi4gVGhpcyByZWFsbHkgc2F5cyB0aGF0IGlmIHRoZSB0b3BpY3MgCmNvbnRyaWJ1dGVkIGJ5IHRoZSBwbHVnLWluIGFyZSBpbnNlcnRlZCBpbnRvIHdlbGwta25vd24gaW5mb3NldHMsIHRoZW4gdGhlIHN0YW5kYWxvbmUgCmFjdGlvbnMgZGlkIG5vdCBpbnNlcnQgYW55dGhpbmcgaW4gdGhlIHN0YW5kYWxvbmUgaW5mb3NldCwgc28ganVzdCBpZ25vcmUgdGhpcyAKZW1wdHkgaW5mb3NldC4gU2V0dGluZyBzdGFuZGFsb25lIGF0dHJpYnV0ZXMgb24gYWN0aW9ucyBhbmQgaW5mb3NldHMgaXMgdXNlZnVsIAp3aGVuIHByb3ZpZGluZyBhICJDYXRjaCBhbGwiIHNjZW5hcmlvLCB3aGVuIGRvY3VtZW50YXRpb24gY2Fubm90IGJlIGNvbnRyaWJ1dGVkIAp0byBhIHdlbGwta25vd24gaW5mb3NldCBidXQgdGhlIHBsdWctaW4gZG9jdW1lbnRhdGlvbiBzaG91bGQgc3RpbGwgYXBwZWFyIHNvbWV3aGVyZS4gClRvIHN1cHBvcnQgc3RhbmRhbG9uZSBtb2RlIHdlIG5lZWQgdG8gbWFrZSB0aGUgZm9sbG93aW5nIGFkZGl0aW9ucyB0byBvdXIgaW5mb3NldCAKYW5kIGFjdGlvbiB4bWwgZmlsZXMuIFRoZSBhZGRpdGlvbiBpcyBtYXJrZWQgaW4gYm9sZC4gCjxwPmluZm9zZXRfR3VpZGUueG1sCjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtpbmZvc2V0IGlkPSJpbmZvc2V0X0d1aWRlImxhYmVsPSJPbmxpbmUKSGVscCBTYW1wbGUiIGhyZWY9ImRvYy9zcGxhc2guaHRtbCIKPGI+c3RhbmRhbG9uZT0idHJ1ZSI8L2I+PjwvdHQ+CjxwPmFjdGlvbnNfQWxsLnhtbAo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7YWN0aW9ucyBpbmZvdmlldz0ib3JnLmVjbGlwc2UucGxhdGZvcm0uZG9jLnVzZXIudmlld19Db250ZW50cyIKPGI+c3RhbmRhbG9uZT0idHJ1ZSI8L2I+PjwvdHQ+CjxwPmFjdGlvbnNfdmlld19Db250ZW50cy54bWwKPGJyPjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJmx0O2FjdGlvbnMgaW5mb3ZpZXc9Im9yZy5lY2xpcHNlLnBsYXRmb3JtLmRvYy51c2VyLnZpZXdfQ29udGVudHMiCjxiPnN0YW5kYWxvbmU9InRydWUiPC9iPj48L3R0Pgo8cD5Ob3cgaWYgc29tZW9uZSBpbmNsdWRlcyBvdXIgdG9waWNzIG91ciBhY3Rpb25zIHdpbGwgbm90IGJlIHVzZWQsIGFuZApjb25zZXF1ZW50bHkgb3VyIGluZm9zZXQgd2lsbCBiZSBlbXB0eSBhbmQgbm90IHNob3cgdXAuCjxicj4mbmJzcDsKPGgyPiBFeHRlcm5hbGl6aW5nIFN0cmluZ3MgaW4geW91ciBYTUwgZmlsZXM8L2gyPgpQbHVnaW4ueG1sIGZpbGVzIGV4dGVybmFsaXplIHRoZWlyIHN0cmluZ3MgYnkgcmVwbGFjaW5nIHRoZSBzdHJpbmcgd2l0aAphIGtleSAoZS5nLiAlcGx1Z2luTmFtZSkgYW5kIGNyZWF0aW5nIGFuIGVudHJ5IGluIHRoZSBwbHVnaW4ucHJvcGVydGllcwpmaWxlIG9mIHRoZSBmb3JtOgo8YnI+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyBwbHVnaW5OYW1lID0gk09ubGluZSBIZWxwIFNhbXBsZSBQbHVnaW6UPC90dD4KPGJyPlRoZSBjb250cmlidXRpb24gWE1MIGZpbGVzIGFyZSBleHRlcm5hbGl6ZWQgdXNpbmcgYSBzaW1pbGFyIGFwcHJvYWNoLgpUbyBleHRlcm5hbGl6ZSAmbHQ7dG9waWMgaWQ9InBsYWluVGFza3MiIGxhYmVsPSJQbGFpbiBTdHVmZiI+IHdlIHJlcGxhY2UKaXRzIGxhYmVsIHdpdGggYSBrZXkgJXBsYWluU3R1ZmYgLiBPdXIgdG9waWMgbm93IGxvb2tzIGxpa2U6Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDt0b3BpYyBpZD0icGxhaW5UYXNrcyIgbGFiZWw9IiVwbGFpblN0dWZmIj48L3R0Pgo8YnI+Q3JlYXRlIGFuIGVudHJ5IGluIHRoZSBkb2N1bWVudC5wcm9wZXJ0aWVzIGZpbGUgY29udGFpbmluZyB0aGUgZW50cnk6Cjxicj48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBsYWluU3R1ZmYgPSBQbGFpbiBTdHVmZjwvdHQ+Cjxicj5UaGUgaGVscCBzeXN0ZW0gd2lsbCB1c2UgZG9jdW1lbnQucHJvcGVydGllcyB3aGVuIGxvb2tpbmcgdXAgc3RyaW5ncwpleHRlcm5hbGl6ZWQgYnkgb3VyIG9ubGluZSBoZWxwIGNvbnRyaWJ1dGlvbnMuCjxicj4mbmJzcDsKPGgyPgpTZXJ2ZXIgYW5kIHppcCBmaWxlczwvaDI+ClRoZSBwbGF0Zm9ybSB1dGlsaXplcyBpdHMgb3duIGRvY3VtZW50YXRpb24gc2VydmVyIHRvIHByb3ZpZGUgdGhlIGFjdHVhbCB3ZWIgcGFnZXMgCmZyb20gd2l0aGluIHRoZSBkb2N1bWVudCB3ZWIuJm5ic3A7IEEgY3VzdG9tIHNlcnZlciBhbGxvd3MgdGhlIHBsYXRmb3JtIHRvIGhhbmRsZSAKdGhlIHdpZGUgdmFyaWV0eSBvZiB3ZWIgYnJvd3NlcnMgaW4gYSBicm93c2VyIGluZGVwZW5kZW50IHdheSB3aGlsZSBhbHNvIHByb3ZpZGluZyAKcGx1Z2luIGF3YXJlIHN1cHBvcnQuIFRoZSBwbGF0Zm9ybSdzIGhlbHAgc2VydmVyIGFsbG93cyB0aGUgZG9jdW1lbnRhdGlvbiB0byBhbHNvIApiZSBkZWxpdmVyIGluIGEgemlwIGZpbGUgdGh1cyBhdm9pZGluZyBwcm9ibGVtcyB0aGF0IG1heSByZXN1bHQgd2hlbiBhIGxhcmdlIG51bWJlciAKb2YgZmlsZXMgYXJlIHByZXNlbnQuIEluIG91ciBleGFtcGxlIHBsdWdpbiB3ZSBjcmVhdGVkIGEgc3ViLWRpcmVjdG9yeSBjYWxsZWQgCiJkb2MiLiBBbHRlcm5hdGl2ZWx5IHdlIGNvdWxkIGhhdmUgcGxhY2VkIG91ciBodG1sIGZpbGVzIGludG8gYSB6aXAgZmlsZSBjYWxsZWQgCiJkb2MuemlwIi4gPGJyPgombmJzcDsKPGgyPgpDb25jbHVzaW9uczwvaDI+CldlIGhhdmUgc2VlbiBob3cgd2UgY2FuIHVzZSB0aGUgaW5mb3NldCwgaW5mb3ZpZXcgdG8gZGVjbGFyZSBib29rcyB0aGUKdXNlciBjYW4gc2VlLiBXZSB0aGVuIHVzZWQgdGhlIGFjdGlvbnMgY29udHJpYnV0aW9uIGFuZCB0aGUgdG9waWNzIGNvbnRyaWJ1dGlvbgp0byBkZWNsYXJlIGFuZCBpbnRlZ3JhdGUgb3VyIHRvcGljcy4gVGhlIHBsYXRmb3JtknMgbWVjaGFuaXNtcyBjYW4gYmUgdXNlZAp0byBpbnRlZ3JhdGUgbmV3IGRvY3VtZW50YXRpb24sIG9yIHRvIHF1aWNrbHkgd2lyZSBpbiBleGlzdGluZyBodG1sIGJhc2VkCmRvY3VtZW50YXRpb24gd2l0aG91dCByZXdyaXRpbmcgaXQuIFRoZSBtZWNoYW5pc21zIGFsbG93IHlvdSB0byBjcmVhdGUKbXVsdGlwbGUgZGlmZmVyZW50IHZpZXdzIG9udG8geW91ciBkb2N1bWVudGF0aW9uIHdlYi4gSW4gb3VyIHBsdWctaW4gd2UKb25seSBjcmVhdGVkIGEgc2luZ2xlIGluZm92aWV3IGJ1dCBhZGRpdGlvbmFsIGluZm92aWV3cyBjb3VsZCBlYXNpbHkgYmUKY3JlYXRlZC4gQ29tcG9uZW50IGRvY3VtZW50YXRpb24gY2FuIGVpdGhlciBiZSB3cml0dGVuIHRvIGJlIGEgc3RhbmRhbG9uZQpib29rLCBvciBvcHRpb25hbGx5IG1hcmtlZCBzdWNoIHRoYXQgaWYgaXQgaXMgaW50ZWdyYXRlZCBpbnRvIGEgbGFyZ2VyCmRvY3VtZW50IHdlYiwgdGhlIGluZGl2aWR1YWwgY29tcG9uZW50IGJvb2sgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGhpZGRlbi4KTGFzdGx5LCB3ZSBvYnNlcnZlZCB0aGF0IHRoZSBwbGF0Zm9ybSBwcm92aWRlcyB0aGUgYnVpbGRpbmcgYmxvY2tzIGZvcgpkb2MgaW50ZWdyYXRpb24gYnV0IGRvZXMgbm90IHNldCBvdXQgYW55IHN0eWxlIG9yIHN0cnVjdHVyaW5nIGd1aWRlbGluZXMuCjxicj4mbmJzcDsKPGJyPiZuYnNwOwo8L2JvZHk+CjwvaHRtbD4K