ClNpbXBsZSBEaXJlY3RNZWRpYSBMYXllciBDUkVESVRTClRoYW5rcyB0byBldmVyeW9uZSB3aG8gbWFkZSB0aGlzIHBvc3NpYmxlLCBpbmNsdWRpbmc6CgoqIENsaWZmIE1hdHRoZXdzLCBmb3IgZ2l2aW5nIG1lIGEgcmVhc29uIHRvIHN0YXJ0IHRoaXMgcHJvamVjdC4gOikKIC0tIEV4ZWN1dG9yIHJvY2tzISAgKmdyaW4qCgoqIFRoZSBMaW51eCBGdW5kLCBDIE1hZ2F6aW5lLCBFZHVjYXRpb25hbCBUZWNobm9sb2d5IFJlc291cmNlcyBJbmMuLAogIEdhcmV0aCBOb3ljZSwgSmVzc2UgUGF2ZWwsIEtlaXRoIEtpdGNoaW4sIEplcmVteSBIb3J2YXRoLCBUaG9tYXMgTmljaG9sc29uLAogIEhhbnMtUGV0ZXIgR3lnYXgsIHRoZSBFdGVybmFsIExhbmRzIERldmVsb3BtZW50IFRlYW0sIExhcnMgQnJ1YmFrZXIsCiAgYW5kIFBob2VuaXggS29raWRvIGZvciBmaW5hbmNpYWwgY29udHJpYnV0aW9ucwoKKiBFZGdhciAiYm9iYmVucyIgU2ltbyBmb3IgaGlzIGZvcmNlIGZlZWRiYWNrIEFQSSBkZXZlbG9wbWVudCBkdXJpbmcgdGhlCiAgR29vZ2xlIFN1bW1lciBvZiBDb2RlIDIwMDgKCiogQWFyb24gV2lzaG5pY2sgZm9yIGhpcyB3b3JrIG9uIGF1ZGlvIHJlc2FtcGxpbmcgYW5kIHBpdGNoIHNoaWZ0aW5nIGR1cmluZwogIHRoZSBHb29nbGUgU3VtbWVyIG9mIENvZGUgMjAwOAoKKiBIb2xtZXMgRnV0cmVsbCBmb3IgcG9ydCBvZiBTREwgdG8gdGhlIGlQaG9uZSBhbmQgaVBvZCBUb3VjaCBkdXJpbmcgdGhlCiAgR29vZ2xlIFN1bW1lciBvZiBDb2RlIDIwMDgKCiogRGFycmVuIEFsdG9uIGZvciBwb3J0IG9mIFNETCB0byB0aGUgTmludGVuZG8gRFMgZHVyaW5nIHRoZSBHb29nbGUgU3VtbWVyCiAgb2YgQ29kZSAyMDA4CgoqIFN6eW1vbiAiV2lsa3UiIFdpbGN6ZWsgZm9yIGFkZGluZyBzdXBwb3J0IGZvciBtdWx0aXBsZSBtaWNlIGFuZCB0YWJsZXRzCiAgZHVyaW5nIHRoZSBHb29nbGUgU3VtbWVyIG9mIENvZGUgMjAwOAoKKiBNYXJ0eSBMZWlzbmVyLCBBbmRyZXcsIFdpbGwsIEVkZ2FyIFNpbW8sIERvbm55IFZpc3puZWtpLCBBbmRyZWEgTWF6em9sZW5pLAogIERteXRybyBCb2dvdnljaCwgYW5kIENvdXJpZXJzdWQgZm9yIGhlbHBpbmcgZmluZCBTREwgMS4zIGJ1Z3MgaW4gdGhlIGdyZWF0CiAgU0RMIEJ1ZyBIdW50IG9mIEphbnVhcnkgMjAwOSEKCiogRG9ubnkgVmlzem5la2kgZm9yIGhlbHBpbmcgZml4IFNETCAxLjMgYnVncyBpbiB0aGUgZ3JlYXQgU0RMIEJ1ZyBIdW50IG9mCiAgSmFudWFyeSAyMDA5IQoKKiBMdWtlIEJlbnN0ZWFkIGZvciBPcGVuR0wgMy4wIHN1cHBvcnQKCiogR2HrdGFuIGRlIE1lbnRlbiBmb3Igd3JpdGluZyB0aGUgUEhQIGFuZCBTUUwgYmVoaW5kIHRoZSBTREwgd2Vic2l0ZQoKKiBUaW0gSm9uZXMgZm9yIHRoZSBuZXcgbG9vayBvZiB0aGUgU0RMIHdlYnNpdGUKCiogUnlhbiBHb3Jkb24gZm9yIGhlbHBpbmcgZXZlcnlib2R5IG91dCBhbmQga2VlcGluZyB0aGUgZHJlYW0gYWxpdmUuIDopCgoqIE1hdHRpYXMgRW5nZGVn5XJkLCBmb3IgaGVscCB3aXRoIHRoZSBTb2xhcmlzIHBvcnQgYW5kIGxvdHMgb2Ygb3RoZXIgaGVscAoKKiBFcmljIFdpbmcsIE1heCBIb3JuLCBhbmQgRGFycmVsbCBXYWxpc3NlciBmb3IgdW5mbGFnZ2luZyB3b3JrIG9uIHRoZSBNYWMgT1MgWCBwb3J0CgoqIERhdmlkIENhcnLpLCBmb3IgdGhlIFBhbmRvcmEgcG9ydAoKKiBDb3VyaWVyc3VkIGZvciB0aGUgRGlyZWN0RkIgZHJpdmVyCgoqIEpvbiBBdGtpbnMgZm9yIFNETF9pbWFnZSwgU0RMX21peGVyIGFuZCBTRExfbmV0IGRvY3VtZW50YXRpb24KCiogQXJuZSBDbGF1cywgZm9yIHRoZSAyMDA0IHdpbm5pbmcgU0RMIGxvZ28sCiAgYW5kIFNoYW5keSBCcm93biwgSmFjLCBBbGV4IEx5bWFuLCBNaWtrZWwgR2pvZWwsICNHdXksIEpvbmFzIEhhcnRtYW5uLAogIERhbmllbCBMaWxqZWJlcmcsICBSb25hbGQgU293YSwgRG9jRCwgUGVra2EgSmFlcnZpbmVuLCBQYXRyaWNrIEF2ZWxsYSwKICBFcmtraSBLb250aWxsYSwgTGV2b24gR2F2YWxpYW4sIEhhbCBFbWVyaWNoLCBEYXZpZCBXaWt0b3Jzc29uLAogIFMuIFNjaHVyeSBhbmQgRi4gSHVmc2t5LCBDaXNrYSBkZSBSdXl2ZXIsIFNocmVkd2VhdCwgVHlsZXIgTW9udGJyaWFuZCwKICBNYXJ0aW4gQW5kZXJzc29uLCBNZXJseW4gV3lzYXJkLCBGZXJuYW5kbyBJYmFuZXosIERhdmlkIE1pbGxlciwKICBBbmRyZSBCb21tZWxlLCBsb3Zlc2J5LmNvbSwgRnJhbmNpc2NvIENhbWVuZm9ydGUgVG9ycmVzLCBhbmQgRGF2aWQgSWdyZWphCiAgZm9yIG90aGVyIGxvZ28gZW50cmllcy4KCiogQm9iIFBlbmRsZXRvbiBhbmQgRGF2aWQgT2xvZnNvbiBmb3IgYmVpbmcgbG9uZyB0aW1lIGNvbnRyaWJ1dG9ycyB0bwogIHRoZSBTREwgbWFpbGluZyBsaXN0LgoKKiBFdmVyeWJvZHkgYXQgTG9raSBTb2Z0d2FyZSwgSW5jLiBmb3IgdGhlaXIgZ3JlYXQgY29udHJpYnV0aW9ucyEKCiBBbmQgYSBiaWcgaGFuZCB0byBldmVyeW9uZSBlbHNlIHdobyBnYXZlIG1lIGFwcHJlY2lhdGlvbiwgYWR2aWNlLAogYW5kIHN1Z2dlc3Rpb25zLCBlc3BlY2lhbGx5IHRoZSBnb29kIGZvbGtzIG9uIHRoZSBTREwgbWFpbGluZyBsaXN0LgoKVEhBTktTISA6KQoKICAtLSBTYW0gTGFudGluZ2EJCQk8c2xvdWtlbkBsaWJzZGwub3JnPgoK