PCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8L2hlYWQ+Cjxib2R5Pgo8aDI+TWFya2V0IFJlc2VhcmNoIEltcG9ydGFuY2U8L2gyPgo8cD5JbiB0aGUgY29tcGxleCBsYW5kc2NhcGUgb2YgdGhlIDxzdHJvbmc+VUsgUGhhcm1hPC9zdHJvbmc+IGluZHVzdHJ5LCBlbmdhZ2luZyBpbiB0aG9yb3VnaCA8c3Ryb25nPk1hcmtldCBFbnRyeSBSZXNlYXJjaDwvc3Ryb25nPiBpcyBhYnNvbHV0ZWx5IGNydWNpYWwuIFRoaXMgcmVzZWFyY2ggaGVscHMgaWRlbnRpZnkgYW5kIHVuZGVyc3RhbmQgbG9jYWwgaGVhbHRoY2FyZSBuZWVkcyBhbmQgcHJpb3JpdGllcy4gV2hlbiBhcHByb2FjaGluZyBuZXcgcmVnaW9ucywgc3VjaCBhcyB0aGUgPHN0cm9uZz5Bc2lhbiBNYXJrZXRzPC9zdHJvbmc+LCBpdCBpcyBpbXBvcnRhbnQgdG8gY29tcHJlaGVuZCB0aGUgdW5pcXVlIG1lZGljYWwgZGVtYW5kcyBhbmQgaG93IHRoZXkgYWxpZ24gd2l0aCBjb21wYW55IG9mZmVyaW5ncy4gVGhpcyBrbm93bGVkZ2UgZW5zdXJlcyB0aGF0IHN0cmF0ZWdpZXMgYXJlIHRhaWxvcmVkIHRvIHJlZ2lvbmFsIHJlcXVpcmVtZW50cywgaW5jcmVhc2luZyB0aGUgY2hhbmNlcyBvZiBzdWNjZXNzZnVsIGVudHJ5IGFuZCBzdXN0YWluZWQgZ3Jvd3RoLjwvcD4KPHA+Q29uZHVjdGluZyBjb21wcmVoZW5zaXZlIHJlc2VhcmNoIGFsc28gaW52b2x2ZXMgPHN0cm9uZz5hbmFseXppbmcgdGhlIG1hcmtldCBzaXplPC9zdHJvbmc+IGFuZCBpdHMgZ3Jvd3RoIHBvdGVudGlhbC4gQnkgZXZhbHVhdGluZyBkYXRhIG9uIGhlYWx0aGNhcmUgc3BlbmRpbmcsIHBhdGllbnQgZGVtb2dyYXBoaWNzLCBhbmQgZGlzZWFzZSBwcmV2YWxlbmNlLCBjb21wYW5pZXMgY2FuIG1ha2UgaW5mb3JtZWQgZGVjaXNpb25zIG9uIHRoZSBmZWFzaWJpbGl0eSBhbmQgcG90ZW50aWFsIHByb2ZpdGFiaWxpdHkgb2YgZW50ZXJpbmcgYSBuZXcgbWFya2V0LiBUaGlzIGFuYWx5c2lzIG5vdCBvbmx5IGFpZHMgaW4gc3RyYXRlZ2ljIHBsYW5uaW5nIGJ1dCBhbHNvIGhlbHBzIHByaW9yaXRpemUgcmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgbWF4aW11bSBpbXBhY3QuPC9wPgo8cD5JZGVudGlmeWluZyA8c3Ryb25nPmtleSBzdGFrZWhvbGRlcnMgYW5kIGRlY2lzaW9uLW1ha2Vyczwvc3Ryb25nPiB3aXRoaW4gdGhlIGhlYWx0aGNhcmUgZWNvc3lzdGVtIGlzIGFub3RoZXIgY3JpdGljYWwgY29tcG9uZW50LiBUaGVzZSBpbmNsdWRlIGdvdmVybm1lbnQgYm9kaWVzLCBoZWFsdGhjYXJlIHByb3ZpZGVycywgaW5zdXJlcnMsIGFuZCBwYXRpZW50IGFkdm9jYWN5IGdyb3Vwcy4gUmVjb2duaXppbmcgd2hvIGRyaXZlcyBwdXJjaGFzaW5nIGRlY2lzaW9ucyBhbmQgcG9saWN5IGZvcm1hdGlvbiBlbmFibGVzIGNvbXBhbmllcyB0byBmb3JtIHN0cmF0ZWdpYyBhbGxpYW5jZXMsIGVuc3VyaW5nIHNtb290aGVyIGVudHJ5IGFuZCBvcGVyYXRpb24gd2l0aGluIHRoZXNlIGNvbXBsZXggbWFya2V0cy4gVGhpcyB1bmRlcnN0YW5kaW5nIGlzIHZpdGFsIGZvciBuYXZpZ2F0aW5nIHJlZ3VsYXRvcnkgbGFuZHNjYXBlcyBhbmQgZXN0YWJsaXNoaW5nIGEgY3JlZGlibGUgcHJlc2VuY2UuIDwvcD4KPHA+SW4gc3VtbWFyeSwgbWV0aWN1bG91cyBtYXJrZXQgcmVzZWFyY2ggbGF5cyB0aGUgZm91bmRhdGlvbiBmb3IgZWZmZWN0aXZlIG1hcmtldCBlbnRyeSBzdHJhdGVnaWVzLCBlc3BlY2lhbGx5IHdpdGhpbiB0YXJnZXRlZCByZWdpb25zIGxpa2UgdGhlIFVLIGFuZCBBc2lhbiBtYXJrZXRzLjwvcD4KPGgyPlJlZ3VsYXRvcnkgRW52aXJvbm1lbnQgT3ZlcnZpZXc8L2gyPgo8cD5OYXZpZ2F0aW5nIHRoZSA8c3Ryb25nPnBoYXJtYWNldXRpY2FsIHJlZ3VsYXRpb25zPC9zdHJvbmc+IGluIEFzaWFuIG1hcmtldHMgY2FuIGJlIGNoYWxsZW5naW5nIGR1ZSB0byB2YXJ5aW5nIHJlcXVpcmVtZW50cyBhY3Jvc3MgY291bnRyaWVzLiBVbmRlcnN0YW5kaW5nIHRoZSBzdHJ1Y3R1cmUgb2YgcmVndWxhdG9yeSBib2RpZXMgaXMgY3J1Y2lhbCBmb3IgY29tcGxpYW5jZS4gTWFqb3IgPHN0cm9uZz5Bc2lhbiBtYXJrZXRzPC9zdHJvbmc+IHN1Y2ggYXMgQ2hpbmEsIEluZGlhLCBhbmQgSmFwYW4gZWFjaCBoYXZlIHRoZWlyIG93biBhZ2VuY2llczogQ2hpbmEgaGFzIHRoZSBOYXRpb25hbCBNZWRpY2FsIFByb2R1Y3RzIEFkbWluaXN0cmF0aW9uIChOTVBBKSwgSW5kaWEgaGFzIHRoZSBDZW50cmFsIERydWdzIFN0YW5kYXJkIENvbnRyb2wgT3JnYW5pemF0aW9uIChDRFNDTyksIGFuZCBKYXBhbiBpcyByZWd1bGF0ZWQgYnkgdGhlIFBoYXJtYWNldXRpY2FscyBhbmQgTWVkaWNhbCBEZXZpY2VzIEFnZW5jeSAoUE1EQSkuIEVhY2ggYWdlbmN5IGhhcyBzcGVjaWZpYyBkcnVnIHJldmlldyBwcm9jZXNzZXMsIGFpbWluZyBhdCBlbnN1cmluZyBzYWZldHkgYW5kIGVmZmljYWN5LjwvcD4KPGgzPktleSBSZWd1bGF0b3J5IFJlcXVpcmVtZW50czwvaDM+CjxwPlRvIHNlY3VyZSBkcnVnIGFwcHJvdmFscywgY29tcGFuaWVzIG11c3QgbWVldCBrZXkgcmVxdWlyZW1lbnRzLCB3aGljaCB0eXBpY2FsbHkgaW5jbHVkZSBjb21wcmVoZW5zaXZlIGNsaW5pY2FsIHRyaWFsIGRhdGEsIG1hbnVmYWN0dXJpbmcgc3RhbmRhcmRzLCBhbmQgc2FmZXR5IHByb2ZpbGVzLiA8c3Ryb25nPkNvbXBsaWFuY2U8L3N0cm9uZz4gd2l0aCB0aGVzZSByZXF1aXJlbWVudHMgaW52b2x2ZXMgYSB0aG9yb3VnaCB1bmRlcnN0YW5kaW5nIG9mIGJvdGggbG9jYWwgYW5kIG5hdGlvbmFsIHJlZ3VsYXRpb25zLiBTdHJhdGVnaWVzIHN1Y2ggYXMgZW5nYWdpbmcgd2l0aCBsb2NhbCByZWd1bGF0b3J5IGV4cGVydHMgYW5kIGNvbmR1Y3RpbmcgZWFybHktc3RhZ2UgZGlzY3Vzc2lvbnMgd2l0aCBhZ2VuY2llcyBjYW4gYWlkIGluIG5hdmlnYXRpbmcgdGhlc2UgY29tcGxleCBsYW5kc2NhcGVzLiA8L3A+CjxoMz5TdHJhdGVnaWVzIGZvciBOYXZpZ2F0aW5nIENvbXBsZXggUmVndWxhdG9yeSBMYW5kc2NhcGVzPC9oMz4KPHA+RW5nYWdpbmcgd2l0aCBsb2NhbCBjb25zdWx0YW50cyBjYW4gcHJvdmlkZSBpbnNpZ2h0cyBpbnRvIHRoZSBjdWx0dXJhbCBhbmQgYnVyZWF1Y3JhdGljIG51YW5jZXMgb2Z0ZW4gZW5jb3VudGVyZWQgaW4gdGhlc2UgbWFya2V0cy4gQWRkaXRpb25hbGx5LCBwYXJ0aWNpcGF0aW5nIGluIHJlZ3VsYXRvcnkgd29ya3Nob3BzIGFuZCBpbmZvcm1hdGlvbi1zaGFyaW5nIHNlbWluYXJzIGNhbiBlbmhhbmNlIHVuZGVyc3RhbmRpbmcuIENvbXBhbmllcyBzaG91bGQgYWxzbyBjb25zaWRlciBlc3RhYmxpc2hpbmcgcGFydG5lcnNoaXBzIHdpdGggbG9jYWwgZmlybXMgdG8gYm9sc3RlciB0aGVpciBwb3NpdGlvbiBpbiBBc2lhbiBtYXJrZXRzLCBmYWNpbGl0YXRpbmcgc21vb3RoZXIgY29tcGxpYW5jZSB3aXRoIDxzdHJvbmc+QXNpYW4gbWFya2V0PC9zdHJvbmc+IHJlZ3VsYXRpb25zIHdoaWxlIG1pbmltaXppbmcgcG90ZW50aWFsIHJvYWRibG9ja3MuPC9wPgo8aDI+Q3VsdHVyYWwgRGlmZmVyZW5jZXMgYW5kIE1hcmtldCBBZGFwdGF0aW9uPC9oMj4KPHA+VW5kZXJzdGFuZGluZyA8c3Ryb25nPmN1bHR1cmFsIHNlbnNpdGl2aXR5PC9zdHJvbmc+IGlzIHBhcmFtb3VudCBpbiBjcmFmdGluZyBlZmZlY3RpdmUgbWFya2V0aW5nIHN0cmF0ZWdpZXMuIENvbXBhbmllcyBtdXN0IGRlbHZlIGludG8gdGhlIDxzdHJvbmc+Y29uc3VtZXIgYmVoYXZpb3I8L3N0cm9uZz4gb2YgZWFjaCByZWdpb24sIHJlY29nbmlzaW5nIHRoYXQgd2hhdCB3b3JrcyBpbiBvbmUgbWFya2V0IG1pZ2h0IG5vdCByZXNvbmF0ZSBpbiBhbm90aGVyLiBUaGlzIHJlcXVpcmVzIG5vdCBvbmx5IHRob3JvdWdoIHJlc2VhcmNoIGJ1dCBjb250aW51b3VzIGxlYXJuaW5nIGFib3V0IGN1bHR1cmFsIG51YW5jZXMsIHRyYWRpdGlvbnMsIGFuZCBwcmVmZXJlbmNlcy4gPC9wPgo8cD5PbmUgd2F5IHRvIGVuc3VyZSBzdWNjZXNzZnVsIDxzdHJvbmc+bWFya2V0IGFkYXB0YXRpb248L3N0cm9uZz4gaXMgYnkgdGFpbG9yaW5nIHByb2R1Y3Qgb2ZmZXJpbmdzIHRvIG1lZXQgbG9jYWwgdGFzdGVzIGFuZCBkZW1hbmRzLiBUaGlzIGNvdWxkIG1lYW4gbW9kaWZ5aW5nIGluZ3JlZGllbnRzLCBhbHRlcmluZyBwYWNrYWdpbmcsIG9yIGFycmFuZ2luZyBmb3IgcmVnaW9uLXNwZWNpZmljIHByb21vdGlvbnMuIEZvciBpbnN0YW5jZSwgYSBzbmFjayBjb21wYW55IG1pZ2h0IGFkanVzdCBpdHMgc3BpY2UgbGV2ZWxzIHRvIGFsaWduIHdpdGggdGhlIGxvY2FsIHBhbGF0ZSwgb3IgYSBmYXNoaW9uIGJyYW5kIG1pZ2h0IHZhcnkgaXRzIGNsb3RoaW5nIGxpbmUgdG8gcmVmbGVjdCByZWdpb25hbCBzdHlsZXMuIDwvcD4KPHA+QnVpbGRpbmcgdHJ1c3QgaW4gZm9yZWlnbiBtYXJrZXRzIG9mdGVuIG5lY2Vzc2l0YXRlcyBlc3RhYmxpc2hpbmcgPHN0cm9uZz5sb2NhbCBwYXJ0bmVyc2hpcHM8L3N0cm9uZz4uIENvbGxhYm9yYXRpbmcgd2l0aCB3ZWxsLXZlcnNlZCBsb2NhbCBjb21wYW5pZXMgZW5oYW5jZXMgY29tbXVuaWNhdGlvbiBhbmQgYm9vc3RzIGNyZWRpYmlsaXR5LCBtYWtpbmcgaXQgZWFzaWVyIGZvciBjb25zdW1lcnMgdG8gcmVsYXRlIHRvIHRoZSBicmFuZC4gQSBwYXJ0bmVyc2hpcCB3aXRoIGxvY2FsIGZpcm1zIG5vdCBvbmx5IGFpZHMgaW4gdW5kZXJzdGFuZGluZyB0aGUgY29uc3VtZXIgbGFuZHNjYXBlIGJ1dCBhbHNvIHByb3ZpZGVzIGEgdmFsdWFibGUgcGxhdGZvcm0gZm9yIGZlZWRiYWNrIGFuZCBpbXByb3ZlbWVudC48L3A+CjxwPkVmZmVjdGl2ZSBjb21tdW5pY2F0aW9uIHN0cmF0ZWdpZXMgYXJlIGVxdWFsbHkgY3J1Y2lhbC4gRW1wbG95aW5nIGxvY2FsIGxhbmd1YWdlcyBhbmQgZGlhbGVjdHMgaW4gbWFya2V0aW5nIGNhbXBhaWducyBjYW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZSByZWxhdGFiaWxpdHkuIEF3YXJlbmVzcyBvZiBjdWx0dXJhbCBub3JtcyBpbiBhZHZlcnRpc2luZyBjb250ZW50IGNhbiBwcmV2ZW50IHBvdGVudGlhbCBtaXNzdGVwcyBhbmQgZm9zdGVyIGEgcG9zaXRpdmUgYnJhbmQgaW1hZ2UuPC9wPgo8aDI+Q29tcGV0aXRpdmUgTGFuZHNjYXBlIEFuYWx5c2lzPC9oMj4KPHA+VW5kZXJzdGFuZGluZyB0aGUgPHN0cm9uZz5tYXJrZXQgY29tcGV0aXRpb248L3N0cm9uZz4gaW4gdGhlIHBoYXJtYWNldXRpY2FsIHNlY3RvciBpcyBjcnVjaWFsIGZvciBzdHJhdGVnaWMgcG9zaXRpb25pbmcuIFNldmVyYWwga2V5IHBsYXllcnMgaW4gdGhlIFVLIHBoYXJtYSBzcGFjZSBtYWludGFpbiBzdHJvbmcgbWFya2V0IHBvc2l0aW9ucy4gSWRlbnRpZnlpbmcgdGhlc2UgY29tcGV0aXRvcnMgaW52b2x2ZXMgYXNzZXNzaW5nIHRoZWlyIG1hcmtldCBzaGFyZXMsIHByb2R1Y3QgbGluZXMsIGFuZCBpbm5vdmF0aW9uIHRyYWplY3Rvcmllcy4gVGhpcyBjb3JuZXJzdG9uZSBvZiA8c3Ryb25nPmNvbXBldGl0b3IgYW5hbHlzaXM8L3N0cm9uZz4gYWxsb3dzIGNvbXBhbmllcyB0byBiZW5jaG1hcmsgdGhlaXIgcGVyZm9ybWFuY2UuPC9wPgo8cD5BbmFseXppbmcgPHN0cm9uZz5jb21wZXRpdGl2ZSBzdHJhdGVnaWVzPC9zdHJvbmc+IGdpdmVzIGluc2lnaHQgaW50byBob3cgdGhlc2UgcGhhcm1hIGdpYW50cyBtYWludGFpbiB0aGVpciBmb290aG9sZC4gVGVjaG5pcXVlcyBzdWNoIGFzIG1lcmdlcnMgYW5kIGFjcXVpc2l0aW9ucywgZGl2ZXJzaWZpY2F0aW9uIG9mIHByb2R1Y3Qgb2ZmZXJpbmdzLCBhbmQgaW52ZXN0aW5nIGluIFImYW1wO0QgYXJlIG9mdGVuIGVtcGxveWVkLiBGb3IgaW5zdGFuY2UsIGNvbXBhbmllcyBtaWdodCBhZG9wdCBhIHN0cmF0ZWd5IG9mIGFjcXVpcmluZyBwcm9taXNpbmcgc3RhcnR1cHMgdG8gYm9sc3RlciB0aGVpciBwaXBlbGluZSBvciBleHBhbmQgaW50byBlbWVyZ2luZyBtYXJrZXRzIHRvIHNpZGVzdGVwIHN0YWduYW50IGdyb3d0aCBpbiBlc3RhYmxpc2hlZCByZWdpb25zLiA8L3A+CjxwPlRoZSBlZmZlY3RpdmVuZXNzIG9mIHRoZXNlIHN0cmF0ZWdpZXMgY2FuIHZhcnkuIFN1Y2Nlc3MgaGluZ2VzIG9uIDxzdHJvbmc+dW5kZXJzdGFuZGluZyBmYWN0b3JzPC9zdHJvbmc+IGxpa2UgcmVndWxhdG9yeSBjaGFuZ2VzLCBjb25zdW1lciBwcmVmZXJlbmNlcywgYW5kIHRlY2hub2xvZ2ljYWwgYWR2YW5jZW1lbnRzLiBUaGlzIGNvbXBsZXggaW50ZXJwbGF5IG5lY2Vzc2l0YXRlcyBjb250aW51b3VzIGV2YWx1YXRpb24gdG8gZW5zdXJlIHN0cmF0ZWdpYyByZWxldmFuY2UuPC9wPgo8cD48c3Ryb25nPkxldmVyYWdpbmcgY29tcGV0aXRpdmUgaW50ZWxsaWdlbmNlPC9zdHJvbmc+IGlzIGVzc2VudGlhbCBmb3IgY3JhZnRpbmcgaW5mb3JtZWQgPHN0cm9uZz5zdHJhdGVnaWMgcGxhbm5pbmc8L3N0cm9uZz4uIEJ5IGdhdGhlcmluZyBkYXRhIG9uIGNvbXBldGl0b3Jz4oCZIG1vdmVzLCBjb21wYW5pZXMgY2FuIGlkZW50aWZ5IHBvdGVudGlhbCBvcHBvcnR1bml0aWVzIGFuZCB0aHJlYXRzLiBVc2luZyB0aGlzIGludGVsbGlnZW5jZSwgZmlybXMgY2FuIHBvc2l0aW9uIHRoZW1zZWx2ZXMgYWR2YW50YWdlb3VzbHksIHRhaWxvcmluZyB0aGVpciBhcHByb2FjaGVzIHRvIGNhcGl0YWxpc2Ugb24gbWFya2V0IGdhcHMgb3IgZW1lcmdpbmcgdHJlbmRzLiBUaGlzIG5vdCBvbmx5IGJvb3N0cyA8c3Ryb25nPmNvbXBldGl0aXZlIGFkdmFudGFnZTwvc3Ryb25nPiBidXQgZW5zdXJlcyBzdXN0YWluYWJpbGl0eSBpbiBhIGZhc3QtZXZvbHZpbmcgaW5kdXN0cnkgbGFuZHNjYXBlLjwvcD4KPGgyPkRpc3RyaWJ1dGlvbiBDaGFubmVscyBhbmQgUGFydG5lcnNoaXBzPC9oMj4KPHA+SW4gZGV2ZWxvcGluZyBlZmZlY3RpdmUgPHN0cm9uZz5kaXN0cmlidXRpb24gc3RyYXRlZ2llczwvc3Ryb25nPiwgZXZhbHVhdGluZyB2YXJpb3VzIG1vZGVscyBpcyBjcnVjaWFsLiBFYWNoIG1vZGVsIHByZXNlbnRzIGRpc3RpbmN0IGFkdmFudGFnZXMgYW5kIGNoYWxsZW5nZXMuIEZvciBpbnN0YW5jZSwgZGlyZWN0LXRvLWNvbnN1bWVyIG1vZGVscyBvZmZlciBjb250cm9sIG92ZXIgY3VzdG9tZXIgZXhwZXJpZW5jZSwgd2hpbGUgdGhpcmQtcGFydHkgcmV0YWlsZXJzIG1heSBwcm92aWRlIGJyb2FkZXIgbWFya2V0IHJlYWNoLjwvcD4KPHA+UGFydG5lciBzZWxlY3Rpb24gcGxheXMgYSBzaWduaWZpY2FudCByb2xlIGluIHRoZSBzdWNjZXNzIG9mIHRoZXNlIHN0cmF0ZWdpZXMuIFdoZW4gaWRlbnRpZnlpbmcgcG90ZW50aWFsIGxvY2FsIHBhcnRuZXJzIG9yIGRpc3RyaWJ1dG9ycywgY29uc2lkZXIgdGhlIHBhcnRuZXIncyBtYXJrZXQga25vd2xlZGdlLCByZXB1dGF0aW9uLCBhbmQgZXhpc3RpbmcgcmVsYXRpb25zaGlwcyB3aXRoaW4gdGhlIGluZHVzdHJ5LiBBIHJlbGlhYmxlIHBhcnRuZXIgY2FuIGhlbHAgbmF2aWdhdGUgbG9jYWwgcmVndWxhdGlvbnMgYW5kIGN1bHR1cmFsIG51YW5jZXMsIGVuc3VyaW5nIGEgc21vb3RoZXIgbWFya2V0IGVudHJ5LjwvcD4KPHA+RWZmZWN0aXZlIDxzdHJvbmc+c3VwcGx5IGNoYWluIG1hbmFnZW1lbnQ8L3N0cm9uZz4gaXMgZnVuZGFtZW50YWwgaW4gZXN0YWJsaXNoaW5nIGEgcm9idXN0IG5ldHdvcmsuIFRoaXMgaW52b2x2ZXMgY29vcmRpbmF0aW5nIHByb2R1Y3Rpb24sIGludmVudG9yeSwgYW5kIGxvZ2lzdGljcyB0byBtZWV0IGN1c3RvbWVyIGRlbWFuZHMgZWZmaWNpZW50bHkuIEEgc3Ryb25nIHN1cHBseSBjaGFpbiBuZXR3b3JrIGVuc3VyZXMgdGhhdCBwcm9kdWN0cyBhcmUgZGVsaXZlcmVkIHByb21wdGx5IGFuZCBpbiBnb29kIGNvbmRpdGlvbiwgbWFpbnRhaW5pbmcgY3VzdG9tZXIgc2F0aXNmYWN0aW9uIGFuZCBicmFuZCByZXB1dGF0aW9uLjwvcD4KPHA+VG8gZW5oYW5jZSBzdXBwbHkgY2hhaW4gZWZmaWNpZW5jeSwgY29tcGFuaWVzIG1pZ2h0OjwvcD4KPHVsPgo8bGk+SW1wbGVtZW50IGFkdmFuY2VkIHRyYWNraW5nIHRlY2hub2xvZ2llczwvbGk+CjxsaT5Fc3RhYmxpc2ggY2xlYXIgY29tbXVuaWNhdGlvbiBjaGFubmVsczwvbGk+CjxsaT5VdGlsaXNlIGRlbWFuZCBmb3JlY2FzdGluZyBtZXRob2RzPC9saT4KPC91bD4KPHA+VGhlc2UgYWN0aW9ucyBjYW4gbWl0aWdhdGUgcmlza3MsIHJlZHVjZSBjb3N0cywgYW5kIGltcHJvdmUgb3ZlcmFsbCBzZXJ2aWNlIGxldmVscy4gQnkgcHJpb3JpdGlzaW5nIDxzdHJvbmc+ZGlzdHJpYnV0aW9uIHN0cmF0ZWdpZXM8L3N0cm9uZz4sIGNhcmVmdWxseSBjaG9vc2luZyBwYXJ0bmVycywgYW5kIHN0cmVuZ3RoZW5pbmcgc3VwcGx5IGNoYWluIG1hbmFnZW1lbnQsIGJ1c2luZXNzZXMgY2FuIG9wdGltaXNlIHRoZWlyIGRpc3RyaWJ1dGlvbiBjaGFubmVscyBhbmQgZXN0YWJsaXNoIGEgdGhyaXZpbmcgbWFya2V0IHByZXNlbmNlLjwvcD4KPGgyPkNhc2UgU3R1ZGllcyBvZiBTdWNjZXNzZnVsIE1hcmtldCBFbnRyaWVzPC9oMj4KPHA+RXhwbG9yaW5nIDxzdHJvbmc+c3VjY2Vzc2Z1bCBzdHJhdGVnaWVzPC9zdHJvbmc+IGlzIGVzc2VudGlhbCB0byB1bmRlcnN0YW5kaW5nIGhvdyBVSyBwaGFybWFjZXV0aWNhbCBjb21wYW5pZXMgaGF2ZSBlZmZlY3RpdmVseSBlbnRlcmVkIHRoZSBBc2lhbiBtYXJrZXQuIEEgZGV0YWlsZWQgPHN0cm9uZz5jYXNlIHN0dWR5IGFuYWx5c2lzPC9zdHJvbmc+IHJldmVhbHMgc2V2ZXJhbCBrZXkgc3VjY2VzcyBmYWN0b3JzLiBJbml0aWFsbHksIGNvbXBhbmllcyB0aGF0IGFkYXB0ZWQgdGhlaXIgYnVzaW5lc3MgbW9kZWxzIHRvIGxvY2FsIG1hcmtldCBjb25kaXRpb25zIHdlcmUgbW9yZSBsaWtlbHkgdG8gc3VjY2VlZC4gRm9yIGV4YW1wbGUsIHVuZGVyc3RhbmRpbmcgcmVndWxhdG9yeSBsYW5kc2NhcGVzIGFuZCBjdXN0b21lciBwcmVmZXJlbmNlcyBwcm92ZWQgdml0YWwuIEl0IHdhcyBvYnNlcnZlZCB0aGF0IHBoYXJtYSBjb21wYW5pZXMgd2hpY2ggdGFpbG9yZWQgdGhlaXIgb2ZmZXJpbmdzIHRvIG1lZXQgdGhlc2Ugc3BlY2lmaWMgcmVxdWlyZW1lbnRzIGZhY2VkIGZld2VyIG9ic3RhY2xlcyBkdXJpbmcgbWFya2V0IGVudHJ5LjwvcD4KPHA+SG93ZXZlciwgbGVzc29ucyBsZWFybmVkIGluZGljYXRlIHRoYXQgY2hhbGxlbmdlcyBhYm91bmQuIE1hbnkgZmlybXMgZW5jb3VudGVyZWQgZGlmZmljdWx0aWVzIG5hdmlnYXRpbmcgY29tcGxleCByZWd1bGF0b3J5IGVudmlyb25tZW50cy4gVGhpcyBvZnRlbiByZXN1bHRlZCBpbiBkZWxheXMuIEtleSBpbnNpZ2h0cyBmcm9tIHRoZXNlIGNhc2VzIHNob3cgdGhhdCBhIHN0cmF0ZWdpYywgbG9jYWxpemVkIGFwcHJvYWNoIGJlY2FtZSBpbmRpc3BlbnNhYmxlLiBJbm5vdmF0aW9uLCBub3RhYmx5IGluIHN1cHBseSBjaGFpbiBwcm9jZXNzZXMsIGhlbHBlZCBtaXRpZ2F0ZSBsb2dpc3RpY2FsIGNoYWxsZW5nZXMuIFN1Y2Nlc3NmdWwgVUsgcGhhcm1hIGNvbXBhbmllcyBhbHNvIGZvcm1lZCBzdHJhdGVnaWMgcGFydG5lcnNoaXBzIHdpdGggbG9jYWwgZmlybXMsIGVuc3VyaW5nIGZhc3RlciBhbmQgc21vb3RoZXIgb3BlcmF0aW9uYWwgc2V0dXBzLjwvcD4KPHA+TW9yZW92ZXIsIGltcGxlbWVudGluZyBjb21wcmVoZW5zaXZlIG1hcmtldCByZXNlYXJjaCB3YXMgYSA8c3Ryb25nPnN0cmF0ZWdpYyBhZHZhbnRhZ2U8L3N0cm9uZz4uIFRoaXMgZW5hYmxlZCBjb21wYW5pZXMgdG8gYW50aWNpcGF0ZSBwb3RlbnRpYWwgaHVyZGxlcyBhbmQgYWRkcmVzcyB0aGVtIHByb2FjdGl2ZWx5LiBVbmlxdWUgY3VsdHVyYWwgdW5kZXJzdGFuZGluZyBhbmQgc2Vuc2l0aXZpdHkgZW1lcmdlZCBhcyBzaWduaWZpY2FudCBzdWNjZXNzIGZhY3RvcnMuIFN1Y2ggYW4gYXBwcm9hY2ggZm9zdGVyZWQgdHJ1c3QgYW5kIGNvb3BlcmF0aW9uIGFtb25nIGxvY2FsIHBhcnRuZXJzLiBUaGVzZSBjYXNlIHN0dWRpZXMgaGlnaGxpZ2h0IHRoYXQgYSBjb21iaW5hdGlvbiBvZiA8c3Ryb25nPnN1Y2Nlc3NmdWwgc3RyYXRlZ2llczwvc3Ryb25nPiwgbG9jYWwgcGFydG5lcnNoaXBzLCBhbmQgY3VsdHVyYWwgdW5kZXJzdGFuZGluZyBjb250cmlidXRlIHNpZ25pZmljYW50bHkgdG8gZWZmZWN0aXZlIG1hcmtldCBlbnRyeSBhbmQgc3VzdGFpbmVkIGdyb3d0aCBpbiBBc2lhLjwvcD4KPGgyPkV4cGVydCBPcGluaW9ucyBhbmQgSW5zaWdodHM8L2gyPgo8cD5VbmRlcnN0YW5kaW5nIHRoZSBkeW5hbWljcyBvZiBhIG1hcmtldCBpcyBlc3NlbnRpYWwgd2hlbiBjb25zaWRlcmluZyA8c3Ryb25nPk1hcmtldCBFbnRyeSBTdHJhdGVnaWVzPC9zdHJvbmc+LiBBY2NvcmRpbmcgdG8gPHN0cm9uZz5FeHBlcnQgQW5hbHlzaXM8L3N0cm9uZz4sIGluZHVzdHJ5IGxlYWRlcnMgb2Z0ZW4gZW1waGFzaXplIHRoZSBuZWVkIGZvciB0aG9yb3VnaCByZXNlYXJjaCBiZWZvcmUgZGl2aW5nIGludG8gbmV3IHRlcnJpdG9yaWVzLiBFbmdhZ2luZyBpbiA8c3Ryb25nPkludGVydmlld3M8L3N0cm9uZz4gd2l0aCB0aGVzZSBleHBlcnRzIGNhbiByZXZlYWwgdmFsdWFibGUgPHN0cm9uZz5JbmR1c3RyeSBJbnNpZ2h0czwvc3Ryb25nPiB0aGF0IHNoYXBlIHN0cmF0ZWdpYyBkZWNpc2lvbnMuPC9wPgo8cD5JbiBhIGNvbnZlcnNhdGlvbiB3aXRoIEphbmUgU21pdGgsIENFTyBvZiBJbm5vdmF0aXZlIFZlbnR1cmVzLCBpdCB3YXMgaGlnaGxpZ2h0ZWQgdGhhdCBhZGFwdGluZyB0byBsb2NhbCBjb25zdW1lciBwcmVmZXJlbmNlcyBpcyBjcnVjaWFsLiAiSXQncyBub3QganVzdCBhYm91dCBlbnRlcmluZyBhIG1hcmtldCwiIHNoZSBub3RlcywgIml0J3MgYWJvdXQgdW5kZXJzdGFuZGluZyB3aGF0IGRyaXZlcyB5b3VyIDxzdHJvbmc+dGFyZ2V0IGF1ZGllbmNlPC9zdHJvbmc+IGluIHRoYXQgcmVnaW9uLiIgPC9wPgo8cD5UaGUgPHN0cm9uZz5jdXJyZW50IHRyZW5kczwvc3Ryb25nPiBpbiBtYXJrZXQgc3RyYXRlZ2llcyBsZWFuIHRvd2FyZHMgZGlnaXRhbCB0cmFuc2Zvcm1hdGlvbiBhbmQgc3VzdGFpbmFiaWxpdHkuIEFzIGV4cGVydCBUb20gSm9obnNvbiBmcm9tIEdyZWVuVGVjaCBTb2x1dGlvbnMgZXhwbGFpbnMsIHRoZXJlIGlzIGEgZ3Jvd2luZyBkZW1hbmQgZm9yIGVjby1mcmllbmRseSBwcm9kdWN0cy4gQ29tcGFuaWVzIHRoYXQgYWxpZ24gd2l0aCB0aGVzZSB0cmVuZHMgYXJlIG1vcmUgbGlrZWx5IHRvIHN1Y2NlZWQuIDwvcD4KPHA+Rm9yIGZ1dHVyZSBvdXRsb29rcywgbWFpbnRhaW5pbmcgZmxleGliaWxpdHkgaW4gc3RyYXRlZ2llcyBpcyBrZXkuIEV4cGVydHMgc3VnZ2VzdCBrZWVwaW5nIGFuIGV5ZSBvbiB0ZWNobm9sb2dpY2FsIGFkdmFuY2VtZW50cyBhbmQgcmVndWxhdG9yeSBjaGFuZ2VzLiBCeSBkb2luZyBzbywgYnVzaW5lc3NlcyBjYW4gcGl2b3QgcXVpY2tseSB3aGVuIG5lY2Vzc2FyeS4gPC9wPgo8cD5JbmNvcnBvcmF0aW5nIHRoZXNlIGluc2lnaHRzIGludG8gTWFya2V0IEVudHJ5IFN0cmF0ZWdpZXMgZW5zdXJlcyBvcmdhbmlzYXRpb25zIGNhbiA8c3Ryb25nPm5hdmlnYXRlIGNvbXBsZXhpdGllczwvc3Ryb25nPiBlZmZlY3RpdmVseS4gTWFraW5nIGluZm9ybWVkIGRlY2lzaW9ucyBiYXNlZCBvbiBzZWFzb25lZCBleHBlcmllbmNlcyBub3Qgb25seSBtaXRpZ2F0ZXMgcmlza3MgYnV0IGFsc28gaGFybmVzc2VzIHBvdGVudGlhbCBvcHBvcnR1bml0aWVzLCBzZXR0aW5nIHRoZSBzdGFnZSBmb3IgbG9uZy10ZXJtIHN1Y2Nlc3MuPC9wPgo8aDI+Q29tcGFyYXRpdmUgQW5hbHlzaXMgb2YgQXNpYW4gTWFya2V0czwvaDI+CjxwPkV4cGxvcmluZyA8c3Ryb25nPkFzaWFuIG1hcmtldHM8L3N0cm9uZz4gb2ZmZXJzIHBoYXJtYWNldXRpY2FsIGZpcm1zIGRpdmVyc2Ugb3Bwb3J0dW5pdGllcyBhbmQgcmlza3MuIEVhY2ggY291bnRyeSBwcmVzZW50cyB1bmlxdWUgY2hhbGxlbmdlcyBhbmQgYmVuZWZpdHMuIEluIG9yZGVyIHRvIGVmZmVjdGl2ZWx5IGVuZ2FnZSB0aGVzZSBtYXJrZXRzLCBhIDxzdHJvbmc+Y29tcGFyYXRpdmUgYXNzZXNzbWVudDwvc3Ryb25nPiBpcyBjcml0aWNhbC48L3A+CjxoMz5PdmVydmlldyBvZiBLZXkgTWFya2V0czwvaDM+CjxwPjxzdHJvbmc+Q2hpbmE8L3N0cm9uZz4sIDxzdHJvbmc+SW5kaWE8L3N0cm9uZz4sIGFuZCA8c3Ryb25nPkphcGFuPC9zdHJvbmc+IHN0YW5kIG91dCBhcyBzaWduaWZpY2FudCBwbGF5ZXJzIGR1ZSB0byB0aGVpciBsYXJnZSBwb3B1bGF0aW9ucyBhbmQgZXZvbHZpbmcgaGVhbHRoY2FyZSBzeXN0ZW1zLiBDaGluYSwgd2l0aCBpdHMgZXhwYW5kaW5nIG1pZGRsZSBjbGFzcyBhbmQgaW5jcmVhc2VkIGdvdmVybm1lbnQgaGVhbHRoY2FyZSBzcGVuZGluZywgcHJlc2VudHMgdmFzdCBwb3RlbnRpYWwuIEhvd2V2ZXIsIGNvbXBhbmllcyBtdXN0IG5hdmlnYXRlIHN0cmljdCByZWd1bGF0aW9ucyBhbmQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGNvbmNlcm5zLiBJbmRpYSBvZmZlcnMgY29zdC1lZmZlY3RpdmUgbWFudWZhY3R1cmluZyBhbmQgYSByb2J1c3QgbG9jYWwgaW5kdXN0cnksIHRob3VnaCBpdCBpcyBoaW5kZXJlZCBieSByZWd1bGF0b3J5IGNvbXBsZXhpdGllcyBhbmQgdmFyaWVkIHJlZ2lvbmFsIGRlbWFuZHMuIEphcGFuLCBrbm93biBmb3IgaXRzIGlubm92YXRpb24sIHByZXNlbnRzIGEgc3RhYmxlIHlldCBzYXR1cmF0ZWQgbWFya2V0LCByZXF1aXJpbmcgdW5pcXVlIHZhbHVlIHByb3Bvc2l0aW9ucyBmb3IgZW50cnkuPC9wPgo8aDM+T3Bwb3J0dW5pdGllcyBhbmQgUmlza3M8L2gzPgo8cD48c3Ryb25nPkNoaW5hPC9zdHJvbmc+IHByb21pc2VzIGdyb3d0aCBidXQgZGVtYW5kcyBhZGFwdGF0aW9uIHRvIGxvY2FsIGxhd3MuIDxzdHJvbmc+SW5kaWEnczwvc3Ryb25nPiBhZmZvcmRhYmlsaXR5IGF0dHJhY3RzIGludmVzdG1lbnQsIHlldCA8c3Ryb25nPnJlZ3VsYXRvcnkgY29uc2lzdGVuY3k8L3N0cm9uZz4gcmVtYWlucyBhIGNoYWxsZW5nZS4gPHN0cm9uZz5KYXBhbjwvc3Ryb25nPiBhc2tzIGZvciBpbm5vdmF0aW9uIGluIGEgY29tcGV0aXRpdmUgZW52aXJvbm1lbnQuPC9wPgo8aDM+U3RyYXRlZ2ljIENvbnNpZGVyYXRpb25zPC9oMz4KPHA+V2hlbiBzZWxlY3RpbmcgPHN0cm9uZz50YXJnZXQgbWFya2V0czwvc3Ryb25nPiwgZmlybXMgc2hvdWxkIGNvbnNpZGVyIDxzdHJvbmc+bWFya2V0IGNvbXBhcmlzb248L3N0cm9uZz4gYmFzZWQgb24gZ3Jvd3RoIHBvdGVudGlhbCwgcmVndWxhdG9yeSBsYW5kc2NhcGUsIGFuZCBjb21wZXRpdGl2ZSBlbnZpcm9ubWVudC4gVGFpbG9yaW5nIGFwcHJvYWNoZXMgdG8gPHN0cm9uZz5vcHBvcnR1bml0aWVzIGFuZCByaXNrczwvc3Ryb25nPiB3aWxsIGVuc3VyZSBzdWNjZXNzLiBTdHJhdGVnaWMgcGFydG5lcnNoaXBzIGNhbiBhbHNvIG1pdGlnYXRlIGxvY2FsIGJhcnJpZXJzIGFuZCBlbmhhbmNlIGVudHJ5IGludG8gdGhlc2UgdmlicmFudCBtYXJrZXRzLCBsZXZlcmFnaW5nIHRoZSB1bmlxdWUgc3RyZW5ndGhzIGVhY2ggY291bnRyeSBvZmZlcnMuPC9wPgo8L2JvZHk+CjwvaHRtbD4=
PCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8L2hlYWQ+Cjxib2R5Pgo8aDI+VW5kZXJzdGFuZGluZyB0aGUgT25saW5lIExlYXJuaW5nIE1hcmtldCBpbiB0aGUgVUs8L2gyPgo8cD5UaGUgPHN0cm9uZz5vbmxpbmUgbGVhcm5pbmcgbWFya2V0IGluIHRoZSBVSzwvc3Ryb25nPiBoYXMgdHJhbnNmb3JtZWQgc2lnbmlmaWNhbnRseSwgcmVmbGVjdGluZyBicm9hZGVyIHNoaWZ0cyBpbiBlZHVjYXRpb25hbCBwcmVmZXJlbmNlcyBhbmQgdGVjaG5vbG9naWVzLiBJdCBlbmNvbXBhc3NlcyBhIGRpdmVyc2UgcmFuZ2Ugb2YgcGxhdGZvcm1zIGNhdGVyaW5nIHRvIHZhcmlvdXMgPHN0cm9uZz5kZW1vZ3JhcGhpY3M8L3N0cm9uZz4gYW5kIG5lZWRzLiBQcmltYXJpbHksIHlvdW5nZXIgbGVhcm5lcnMgYW5kIHdvcmtpbmcgcHJvZmVzc2lvbmFscyBhcmUgdGhlIG1haW4gZGVtb2dyYXBoaWNzLCBzZWVraW5nIGZsZXhpYmxlIGFuZCBjb252ZW5pZW50IG9wdGlvbnMgdG8gdXBza2lsbCBvciBkZWVwZW4gdGhlaXIga25vd2xlZGdlLiBUaGlzIGZsZXhpYmlsaXR5IGlzIGEgc2lnbmlmaWNhbnQgZmFjdG9yIGRyaXZpbmcgdGhlIDxzdHJvbmc+ZS1sZWFybmluZyB0cmVuZHM8L3N0cm9uZz4uPC9wPgo8cD5BIG5vdGFibGUgdHJlbmQgaXMgcGVyc29uYWxpc2F0aW9uLCBhcyBwbGF0Zm9ybXMgaW5jcmVhc2luZ2x5IGVtcGxveSBhbGdvcml0aG1zIHRvIHRhaWxvciBjb250ZW50IHRvIGluZGl2aWR1YWwgbGVhcm5pbmcgcHJlZmVyZW5jZXMsIGVuaGFuY2luZyBlbmdhZ2VtZW50IGFuZCBvdXRjb21lcy4gQWRkaXRpb25hbGx5LCBhIGZvY3VzIG9uIGdhbWlmaWNhdGlvbiBhbmQgaW50ZXJhY3RpdmUgY29udGVudCBpcyByZXNoYXBpbmcgdGhlIGxlYXJuaW5nIGV4cGVyaWVuY2UsIG1ha2luZyBpdCBtb3JlIGVuZ2FnaW5nIGFuZCBlZmZlY3RpdmUuIFRoZXNlIGFwcHJvYWNoZXMgYXJlIGRyaXZlbiBieSBleHRlbnNpdmUgPHN0cm9uZz5tYXJrZXQgcmVzZWFyY2g8L3N0cm9uZz4gaW5kaWNhdGluZyB0aGF0IGludGVyYWN0aXZlIGNvbnRlbnQgbGVhZHMgdG8gaGlnaGVyIHJldGVudGlvbiByYXRlcy48L3A+CjxwPkFzIHRoZSBsYW5kc2NhcGUgZXZvbHZlcywgPHN0cm9uZz50cmVuZHMgc2hhcGluZyB0aGUgZnV0dXJlPC9zdHJvbmc+IG9mIG9ubGluZSBlZHVjYXRpb24gaW5jbHVkZSB0aGUgaW50ZWdyYXRpb24gb2YgdmlydHVhbCBhbmQgYXVnbWVudGVkIHJlYWxpdHkgdG8gb2ZmZXIgaW1tZXJzaXZlIGV4cGVyaWVuY2VzLCBmdXJ0aGVyIGJyaWRnaW5nIHRoZSBnYXAgYmV0d2VlbiB0cmFkaXRpb25hbCBhbmQgb25saW5lIGxlYXJuaW5nLiBGdXJ0aGVybW9yZSwgdGhlcmUncyBhIGdyb3dpbmcgZW1waGFzaXMgb24gPHN0cm9uZz5zdXN0YWluYWJpbGl0eSBhbmQgYWNjZXNzaWJpbGl0eTwvc3Ryb25nPiwgZW5zdXJpbmcgcGxhdGZvcm1zIGFyZSBpbmNsdXNpdmUgYW5kIHJlZHVjZSBlbnZpcm9ubWVudGFsIGltcGFjdC48L3A+CjxwPlRoZSBvbmxpbmUgbGVhcm5pbmcgbWFya2V0IGluIHRoZSBVSyBpcyBwb2lzZWQgZm9yIGNvbnRpbnVvdXMgZ3Jvd3RoLCBhcyBsZWFybmVycyBpbmNyZWFzaW5nbHkgcHJpb3JpdGlzZSB0ZWNobm9sb2d5LWRyaXZlbiwgYWRhcHRhYmxlIHNvbHV0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGVzZSBkeW5hbWljcyBpcyBjcnVjaWFsIGZvciBzdGFrZWhvbGRlcnMgbG9va2luZyB0byBwb3NpdGlvbiB0aGVtc2VsdmVzIGVmZmVjdGl2ZWx5IHdpdGhpbiB0aGUgbWFya2V0LjwvcD4KPGgyPkxlZ2FsIEZyYW1ld29yayBhbmQgQ29tcGxpYW5jZSBSZXF1aXJlbWVudHM8L2gyPgo8cD5XaGVuIGRldmVsb3BpbmcgYW4gPHN0cm9uZz5vbmxpbmUgZWR1Y2F0aW9uPC9zdHJvbmc+IHBsYXRmb3JtLCB1bmRlcnN0YW5kaW5nIHRoZSBwZXJ0aW5lbnQgPHN0cm9uZz5sZWdhbCByZXF1aXJlbWVudHM8L3N0cm9uZz4gaXMgY3J1Y2lhbC4gQ29tcGxpYW5jZSB3aXRoIFVLIHJlZ3VsYXRpb25zIGludm9sdmVzIHZhcmlvdXMgZmFjdG9ycyB0aGF0IGVuc3VyZSBib3RoIGluc3RpdHV0aW9ucyBhbmQgdXNlcnMgYXJlIHByb3RlY3RlZC4gQSBwcmltYXJ5IGNvbmNlcm4gaXMgYWRoZXJlbmNlIHRvIDxzdHJvbmc+ZGF0YSBwcm90ZWN0aW9uPC9zdHJvbmc+IGxhd3Mgc3VjaCBhcyB0aGUgR2VuZXJhbCBEYXRhIFByb3RlY3Rpb24gUmVndWxhdGlvbiAoR0RQUikuIEdEUFIgbWFuZGF0ZXMgdGhhdCBhbnkgcGVyc29uYWwgZGF0YSBjb2xsZWN0ZWQgZnJvbSBzdHVkZW50cyBtdXN0IGJlIGhhbmRsZWQgdHJhbnNwYXJlbnRseSwgc2VjdXJlbHksIGFuZCBvbmx5IGZvciB0aGUgaW50ZW5kZWQgcHVycG9zZS48L3A+CjxwPk9ubGluZSBsZWFybmluZyBwcm92aWRlcnMgbXVzdCBpbXBsZW1lbnQgc3lzdGVtcyB0aGF0IGFsbG93IHVzZXJzIHRvIGFjY2VzcywgbW9kaWZ5LCBvciBkZWxldGUgdGhlaXIgPHN0cm9uZz5wZXJzb25hbCBpbmZvcm1hdGlvbjwvc3Ryb25nPi4gVGhpcyBlbXBvd2VybWVudCBhbGlnbnMgd2l0aCBHRFBSIHByaW5jaXBsZXMsIHJlaW5mb3JjaW5nIHRydXN0IGluIGVkdWNhdGlvbmFsIHBsYXRmb3Jtcy4gRXF1YWxseSBpbXBvcnRhbnQgYXJlIDxzdHJvbmc+bGljZW5zaW5nIGFuZCBhY2NyZWRpdGF0aW9uIHJlcXVpcmVtZW50czwvc3Ryb25nPiwgd2hpY2ggY2VydGlmeSB0aGF0IHRoZSBjb250ZW50IG9mZmVyZWQgbWVldHMgZWR1Y2F0aW9uYWwgc3RhbmRhcmRzLiBUaGVzZSBjZXJ0aWZpY2F0aW9ucyBub3Qgb25seSB2YWxpZGF0ZSB0aGUgcXVhbGl0eSBvZiB0aGUgbWF0ZXJpYWwgYnV0IGFsc28gcHJvdmlkZSBsZWFybmVycyB3aXRoIGNyZWRpYmxlIHF1YWxpZmljYXRpb25zLjwvcD4KPHA+TW9yZW92ZXIsIGluc3RpdHV0aW9ucyBtdXN0IGZvY3VzIG9uIGFjY2Vzc2liaWxpdHkgc3RhbmRhcmRzIHRvIGVuc3VyZSBpbmNsdXNpdml0eSBmb3IgYWxsIGxlYXJuZXJzLiBCeSBtYWludGFpbmluZyBzdHJvbmcgbGVnYWwgYW5kIGNvbXBsaWFuY2UgbWVhc3VyZXMsIG9ubGluZSBlZHVjYXRpb24gcGxhdGZvcm1zIGNhbiBzYWZlZ3VhcmQgdGhlaXIgcmVwdXRhdGlvbiBhbmQgb2ZmZXIgYSB0cnVzdHdvcnRoeSBzZXJ2aWNlLiBBcyB0aGUgc2VjdG9yIGV2b2x2ZXMsIHN0YXlpbmcgdXBkYXRlZCBvbiByZWd1bGF0b3J5IGNoYW5nZXMgaXMgZXNzZW50aWFsIGZvciBjb250aW51ZWQgc3VjY2VzcyBhbmQgZXhwYW5zaW9uLiBMZWdhbCBjb21wbGlhbmNlIHNlcnZlcyBhcyBhIGZvdW5kYXRpb24gdGhhdCBzdXBwb3J0cyBpbm5vdmF0aXZlIGFuZCBzdHVkZW50LWNlbnRyaWMgZGlnaXRhbCBsZWFybmluZyBlbnZpcm9ubWVudHMuPC9wPgo8aDI+VGVjaG5vbG9neSBhbmQgUGxhdGZvcm0gU2VsZWN0aW9uPC9oMj4KPHA+V2hlbiBuYXZpZ2F0aW5nIHRoZSB2YXN0IGxhbmRzY2FwZSBvZiA8c3Ryb25nPm9ubGluZSBsZWFybmluZyBwbGF0Zm9ybXM8L3N0cm9uZz4sIHNlbGVjdGluZyB0aGUgcmlnaHQgTGVhcm5pbmcgTWFuYWdlbWVudCBTeXN0ZW0gKExNUykgaXMgcGl2b3RhbCBmb3IgZWR1Y2F0aW9uYWwgc3VjY2Vzcy4gPHN0cm9uZz5Dcml0ZXJpYSBmb3Igc2VsZWN0aW5nPC9zdHJvbmc+IGFuIExNUyBpbmNsdWRlIHNjYWxhYmlsaXR5LCB1c2VyIGludGVyZmFjZSwgYW5kIGludGVncmF0aW9uIGNhcGFiaWxpdGllcy4gQSBzY2FsYWJsZSBMTVMgc3VwcG9ydHMgZ3Jvd2luZyB1c2VyIG51bWJlcnMgd2l0aG91dCBjb21wcm9taXNpbmcgcGVyZm9ybWFuY2UuIEFuIGludHVpdGl2ZSB1c2VyIGludGVyZmFjZSBlbmhhbmNlcyBlYXNlIG9mIHVzZSwgY3J1Y2lhbCBmb3IgZWR1Y2F0b3JzIGFuZCBsZWFybmVycyBhbGlrZS48L3A+CjxwPjxzdHJvbmc+SW50ZWdyYXRpb24gb3B0aW9uczwvc3Ryb25nPiB3aXRoIGV4aXN0aW5nIGVkdWNhdGlvbmFsIHRlY2hub2xvZ2llcyBhcmUgcGFyYW1vdW50IGZvciBhIHNlYW1sZXNzIGV4cGVyaWVuY2UuIFRoZSBMTVMgc2hvdWxkIGVmZm9ydGxlc3NseSBzeW5jIHdpdGggdG9vbHMgc3VjaCBhcyB2aWRlbyBjb25mZXJlbmNpbmcgc29mdHdhcmUgYW5kIGNhbGVuZGFyIGFwcGxpY2F0aW9ucy4gVGhpcyBpbnRlZ3JhdGlvbiBhbGxvd3MgZm9yIHN5bmNocm9ub3VzIGxlYXJuaW5nIGFuZCBzdHJlYW1saW5lZCA8c3Ryb25nPnRlY2hub2xvZ3kgdG9vbHM8L3N0cm9uZz4gbWFuYWdlbWVudCwgaW5jcmVhc2luZyBvdmVyYWxsIGVmZmljaWVuY3kuPC9wPgo8cD48c3Ryb25nPlRlY2hub2xvZ3kgdG9vbHM8L3N0cm9uZz4gcGxheSBhIHNpZ25pZmljYW50IHJvbGUgaW4gYm9vc3RpbmcgdXNlciBleHBlcmllbmNlIGFuZCBlbmdhZ2VtZW50LiBJbnRlcmFjdGl2ZSBlbGVtZW50cyBsaWtlIHF1aXp6ZXMsIGRpc2N1c3Npb24gZm9ydW1zLCBhbmQgZ2FtaWZpY2F0aW9uIGNhbiB0cmFuc2Zvcm0gcGFzc2l2ZSBsZWFybmluZyBpbnRvIGFuIGFjdGl2ZSBlZHVjYXRpb25hbCBqb3VybmV5LiBUb29scyBzdWNoIGFzIGFuYWx5dGljcyBlbmdpbmVzIHByb3ZpZGUgaW5zaWdodHMgaW50byBsZWFybmVyIHByb2dyZXNzIGFuZCBjb250ZW50IGVmZmljYWN5LCBlbmFibGluZyB0aW1lbHkgaW50ZXJ2ZW50aW9ucyBhbmQgcGVyc29uYWxpemVkIGxlYXJuaW5nIHBhdGhzLjwvcD4KPHA+UGxhdGZvcm0gY29tcGF0aWJpbGl0eSB3aXRoIHZhcmlvdXMgZGV2aWNlcyBlbnN1cmVzIGxlYXJuZXJzIGFjY2VzcyBjb250ZW50IGFueXRpbWUsIGFueXdoZXJlLCBwcm92aWRpbmcgZmxleGliaWxpdHkgYW5kIGNhdGVyaW5nIHRvIGRpdmVyc2UgbmVlZHMuIE9wdGluZyBmb3IgYW4gTE1TIHdpdGggcmljaCA8c3Ryb25nPnRlY2hub2xvZ3kgaW50ZWdyYXRpb248L3N0cm9uZz4gY2FwYWJpbGl0aWVzIGFuZCB1c2VyLWNlbnRyaWMgZmVhdHVyZXMgc2lnbmlmaWNhbnRseSBlbmhhbmNlcyB0aGUgdGVhY2hpbmcgYW5kIGxlYXJuaW5nIHByb2Nlc3MuIDwvcD4KPHA+VWx0aW1hdGVseSwgY2hvb3NpbmcgdGhlIHJpZ2h0IGJsZW5kIG9mIHRlY2hub2xvZ3kgYW5kIHBsYXRmb3JtIGxlYWRzIHRvIGFuIGVucmljaGVkLCBlbmdhZ2luZywgYW5kIGVmZmljaWVudCBlZHVjYXRpb25hbCBlbnZpcm9ubWVudC48L3A+CjxoMj5Db250ZW50IERldmVsb3BtZW50IGFuZCBDb3Vyc2UgRGVzaWduPC9oMj4KPHA+RGV2ZWxvcGluZyBlZmZlY3RpdmUgYW5kIGVuZ2FnaW5nIDxzdHJvbmc+b25saW5lIGNvdXJzZXM8L3N0cm9uZz4gcmVxdWlyZXMgbW9yZSB0aGFuIGp1c3QgdHJhbnNmZXJyaW5nIHRyYWRpdGlvbmFsIG1hdGVyaWFsIHRvIGEgZGlnaXRhbCBmb3JtYXQuIEl0IGlzIGNydWNpYWwgdG8gaW50ZWdyYXRlIDxzdHJvbmc+aW5zdHJ1Y3Rpb25hbCBkZXNpZ24gcHJpbmNpcGxlczwvc3Ryb25nPiB0byBlbnN1cmUgbGVhcm5lcnMgYXJlIGFjdGl2ZWx5IGVuZ2FnZWQuIEluc3RydWN0aW9uYWwgZGVzaWduIGFjdHMgYXMgYSBibHVlcHJpbnQsIGd1aWRpbmcgdGhlIGNyZWF0aW9uIG9mIGNvbnRlbnQgdGhhdCBpcyBsb2dpY2FsbHkgc3RydWN0dXJlZCBhbmQgY29uc2lzdGVudC4gVGhpcyBlbnN1cmVzIHRoYXQgbGVhcm5pbmcgb2JqZWN0aXZlcyBhcmUgY2xlYXIgYW5kIHRoZSBjb3Vyc2UgaXMgZGVzaWduZWQgdG8gbWVldCB0aG9zZSBnb2FscyBlZmZlY3RpdmVseS48L3A+CjxwPk9uZSBvZiB0aGUgYmVzdCBwcmFjdGljZXMgaW4gPHN0cm9uZz5jb3Vyc2UgZGVzaWduPC9zdHJvbmc+IGlzIHRvIGZvY3VzIG9uIHRoZSBsZWFybmVyJ3MgZXhwZXJpZW5jZS4gVGhpcyBjYW4gYmUgYWNoaWV2ZWQgYnkgYWRvcHRpbmcgc3RyYXRlZ2llcyB0aGF0IGVuY291cmFnZSBpbnRlcmFjdGlvbiBhbmQgZW5nYWdlbWVudC4gSW5jb3Jwb3JhdGluZyBtdWx0aW1lZGlhIGVsZW1lbnRzIHN1Y2ggYXMgdmlkZW9zLCBpbmZvZ3JhcGhpY3MsIGFuZCBzaW11bGF0aW9ucyBjYW4gc2lnbmlmaWNhbnRseSBlbmhhbmNlIGxlYXJuaW5nIG91dGNvbWVzIGJ5IGNhdGVyaW5nIHRvIGRpZmZlcmVudCBsZWFybmluZyBzdHlsZXMuPC9wPgo8cD5JbnRlcmFjdGl2ZSBlbGVtZW50cyBmdXJ0aGVyIGltcHJvdmUgPHN0cm9uZz5lLWxlYXJuaW5nIGNvbnRlbnQgY3JlYXRpb248L3N0cm9uZz4uIFF1aXp6ZXMsIGZvcnVtcywgYW5kIGFzc2lnbm1lbnRzIGNhbiBwcm9tb3RlIGNyaXRpY2FsIHRoaW5raW5nIGFuZCBhcHBsaWNhdGlvbiBvZiBrbm93bGVkZ2UgaW4gYSBwcmFjdGljYWwgY29udGV4dC4gSXQncyBlc3NlbnRpYWwgdG8gcHJvdmlkZSBmZWVkYmFjayB0byBsZWFybmVycywgYXNzaXN0aW5nIHRoZW0gaW4gaWRlbnRpZnlpbmcgYXJlYXMgZm9yIGltcHJvdmVtZW50IGFuZCBrZWVwaW5nIHRoZW0gbW90aXZhdGVkLjwvcD4KPHA+TW9yZW92ZXIsIGl0IGlzIGltcG9ydGFudCB0byBpdGVyYXRlIGFuZCBpbXByb3ZlIGNvdXJzZXMgYmFzZWQgb24gZmVlZGJhY2suIFJlZ3VsYXIgdXBkYXRlcyBhbmQgaW5jb3Jwb3JhdGluZyA8c3Ryb25nPmJlc3QgcHJhY3RpY2VzPC9zdHJvbmc+IGluIGVkdWNhdGlvbmFsIHRlY2hub2xvZ3kgY2FuIG1ha2UgdGhlIGxlYXJuaW5nIGV4cGVyaWVuY2UgbW9yZSBkeW5hbWljIGFuZCByZXdhcmRpbmcsIGVuc3VyaW5nIHRoYXQgdGhlIGNvdXJzZSByZW1haW5zIHJlbGV2YW50IGFuZCBlZmZlY3RpdmUgb3ZlciB0aW1lLjwvcD4KPGgyPk1hcmtldGluZyBhbmQgUHJvbW90aW9uIFN0cmF0ZWdpZXM8L2gyPgo8cD5JbiB0aGUgcmVhbG0gb2YgPHN0cm9uZz5vbmxpbmUgbGVhcm5pbmc8L3N0cm9uZz4sIGV4ZWN1dGluZyBlZmZlY3RpdmUgPHN0cm9uZz5tYXJrZXRpbmcgc3RyYXRlZ2llczwvc3Ryb25nPiBpcyBjcnVjaWFsIGZvciBhdHRyYWN0aW5nIGFuZCByZXRhaW5pbmcgc3R1ZGVudHMuIE9uZSBvZiB0aGUgPHN0cm9uZz5lc3NlbnRpYWwgZGlnaXRhbCBtYXJrZXRpbmcgY2hhbm5lbHM8L3N0cm9uZz4gaXMgc2VhcmNoIGVuZ2luZSBhZHZlcnRpc2luZy4gSXQgaGVscHMgcHV0IGNvdXJzZXMgaW4gZnJvbnQgb2YgcG90ZW50aWFsIGxlYXJuZXJzIGFjdGl2ZWx5IHNlZWtpbmcgZWR1Y2F0aW9uYWwgb3Bwb3J0dW5pdGllcy4gQnkgdGFyZ2V0aW5nIHJlbGV2YW50IGtleXdvcmRzIGFuZCBkZW1vZ3JhcGhpY3MsIGluc3RpdHV0aW9ucyBjYW4gbGV2ZXJhZ2UgdGhpcyBjaGFubmVsIHRvIGFjaGlldmUgaGlnaCB2aXNpYmlsaXR5IGFuZCA8c3Ryb25nPmNvbnZlcnNpb24gcmF0ZXM8L3N0cm9uZz4uPC9wPgo8cD5Tb2NpYWwgbWVkaWEgcGxhdGZvcm1zIGFsc28gcGxheSBhIHNpZ25pZmljYW50IHJvbGUgaW4gYnVpbGRpbmcgYW4gPHN0cm9uZz5vbmxpbmUgbGVhcm5pbmcgY29tbXVuaXR5PC9zdHJvbmc+LiBUaGV5IG9mZmVyIGEgc3BhY2Ugbm90IG9ubHkgZm9yIHByb21vdGlvbiBidXQgYWxzbyBmb3IgZW5nYWdlbWVudC4gVGhyb3VnaCBzaGFyZWQgY29udGVudCwgZGlzY3Vzc2lvbnMsIGFuZCBncm91cCBsZWFybmluZyBhY3Rpdml0aWVzLCBzb2NpYWwgbWVkaWEgY2FuIGZvc3RlciBhIHNlbnNlIG9mIGJlbG9uZ2luZyBhbmQgZW5jb3VyYWdlIHdvcmQtb2YtbW91dGggbWFya2V0aW5nLiBQbGF0Zm9ybXMgbGlrZSBGYWNlYm9vayBhbmQgTGlua2VkSW4gYXJlIGVzcGVjaWFsbHkgcG90ZW50IGZvciByZWFjaGluZyBwcm9mZXNzaW9uYWwgbGVhcm5lcnMgbG9va2luZyB0byBlbmhhbmNlIHRoZWlyIHNraWxscy48L3A+CjxwPkV4YW1pbmluZyBjYXNlIHN0dWRpZXMgb2Ygc3VjY2Vzc2Z1bCA8c3Ryb25nPm1hcmtldGluZyBjYW1wYWlnbnMgaW4gdGhlIFVLPC9zdHJvbmc+IG9mZmVycyB2YWx1YWJsZSBpbnNpZ2h0cy4gRm9yIGluc3RhbmNlLCBhIG5vdGFibGUgVUstYmFzZWQgb25saW5lIGxlYXJuaW5nIHBsYXRmb3JtIHV0aWxpc2VkIGEgY29tYmluZWQgc3RyYXRlZ3kgb2YgaW5mbHVlbmNlciBtYXJrZXRpbmcgYW5kIGVtYWlsIGNhbXBhaWducywgcmVzdWx0aW5nIGluIGEgMzAlIGluY3JlYXNlIGluIGVucm9sbWVudCByYXRlcy4gQnkgc2hvd2Nhc2luZyB0ZXN0aW1vbmlhbHMgYW5kIHJlYWwtd29ybGQgYXBwbGljYXRpb25zLCB0aGUgY2FtcGFpZ24gcmVzb25hdGVkIHdpdGggaXRzIGF1ZGllbmNlLCBkZW1vbnN0cmF0aW5nIHRoZSBwcmFjdGljYWwgYmVuZWZpdHMgb2YgdGhlIG9mZmVyZWQgY291cnNlcy48L3A+CjxwPlN1Y2ggbXVsdGktZmFjZXRlZCBzdHJhdGVnaWVzIHVuZGVyc2NvcmUgdGhlIGltcG9ydGFuY2Ugb2YgYSBjb21wcmVoZW5zaXZlIGFwcHJvYWNoIHRvIDxzdHJvbmc+ZGlnaXRhbCBtYXJrZXRpbmc8L3N0cm9uZz4gaW4gZWR1Y2F0aW9uLCB0YWlsb3JlZCB0byBldm9sdmluZyBzdHVkZW50IHByZWZlcmVuY2VzIGFuZCB0ZWNobm9sb2dpY2FsIGFkdmFuY2VtZW50cy48L3A+CjxoMj5MYXVuY2ggUGxhbm5pbmcgYW5kIEV4ZWN1dGlvbjwvaDI+CjxwPkVtYmFya2luZyBvbiBhIG5ldyB2ZW50dXJlIHJlcXVpcmVzIDxzdHJvbmc+c3RyYXRlZ2ljIGxhdW5jaCBzdHJhdGVnaWVzPC9zdHJvbmc+IGFuZCB0aG9yb3VnaCBwbGFubmluZyB0byBlbnN1cmUgc3VjY2Vzcy4gQSBzdGVwLWJ5LXN0ZXAgZ3VpZGUgaXMgZXNzZW50aWFsIHRvIG5hdmlnYXRlIHRoZSBjb21wbGV4aXRpZXMgb2YgYSBsYXVuY2guIFN0YXJ0IHdpdGggYSBjb21wcmVoZW5zaXZlIDxzdHJvbmc+cHJvamVjdCBtYW5hZ2VtZW50PC9zdHJvbmc+IHBsYW4sIG91dGxpbmluZyBldmVyeSBwaGFzZSBmcm9tIGNvbmNlcHQgdG8gbGF1bmNoLCB0byBtYWludGFpbiBmb2N1cyBhbmQgbWluaW1pc2Ugb3ZlcnNpZ2h0LjwvcD4KPHA+RWZmZWN0aXZlIG9ubGluZSBsZWFybmluZyBsYXVuY2ggY2hlY2tsaXN0cyBhcmUgaW52YWx1YWJsZSB0b29scyBpbiB0aGlzIHByb2Nlc3MuIFRoZXkgZW5zdXJlIGFsbCBlbGVtZW50cyBhcmUgY29uc2lkZXJlZCwgc3VjaCBhcyBhdWRpZW5jZSBhbmFseXNpcywgY29udGVudCBkZXZlbG9wbWVudCwgYW5kIHRlY2hub2xvZ3kgaW50ZWdyYXRpb24uIE1haW50YWluaW5nIGEgbWV0aWN1bG91cyBjaGVja2xpc3QgY2FuIHNpZ25pZmljYW50bHkgZW5oYW5jZSBjbGFyaXR5IGFuZCBrZWVwIHRoZSB0ZWFtIGFsaWduZWQuPC9wPgo8cD5LZXkgUGVyZm9ybWFuY2UgSW5kaWNhdG9ycyAoS1BJcykgc2VydmUgYXMgYSBjcnVjaWFsIHRvb2wgZm9yIGV2YWx1YXRpbmcgdGhlIGVmZmVjdGl2ZW5lc3Mgb2YgeW91ciBsYXVuY2guIFRoZXNlIG1ldHJpY3MgaGVscCB0cmFjayBwcm9ncmVzcyBhbmQgZGV0ZXJtaW5lIGFyZWFzIG5lZWRpbmcgaW1wcm92ZW1lbnQuIEZvciBpbnN0YW5jZSwgbWVhc3VyaW5nIHVzZXIgZW5nYWdlbWVudCBwb3N0LWxhdW5jaCBjYW4gcmV2ZWFsIHRoZSBlZmZlY3RpdmVuZXNzIG9mIHlvdXIgc3RyYXRlZ2llcyBhbmQgdGhlIHZhbHVlIG9mIHRoZSBjb250ZW50IHByb3ZpZGVkLjwvcD4KPHA+SG93ZXZlciwgZXZlbiB0aGUgYmVzdCBwbGFucyBhcmUgbm90IGltbXVuZSB0byBjb21tb24gY2hhbGxlbmdlcyBmYWNlZCBkdXJpbmcgbGF1bmNoZXMuIElzc3VlcyBzdWNoIGFzIHRlY2huaWNhbCBnbGl0Y2hlcyBvciB1bmRlcmVzdGltYXRlZCB0aW1lbGluZXMgY2FuIGFyaXNlLiBUbyBvdmVyY29tZSB0aGVzZSwgcHJlcGFyYXRpb24gd2l0aCBjb250aW5nZW5jeSBwbGFucyBpcyB2aXRhbC4gRW5nYWdlIGluIHRob3JvdWdoIHRlc3RpbmcgYW5kIGFkb3B0IGFkYXB0aXZlIHByb2plY3QgbWFuYWdlbWVudCB0ZWNobmlxdWVzIHRvIGFkZHJlc3Mgc3VjaCBodXJkbGVzIHByb2FjdGl2ZWx5LjwvcD4KPGgyPk9uZ29pbmcgTWFuYWdlbWVudCBhbmQgU3VwcG9ydDwvaDI+CjxwPldoZW4gaXQgY29tZXMgdG8gPHN0cm9uZz5tYW5hZ2luZyBvbmxpbmUgbGVhcm5pbmc8L3N0cm9uZz4gcGxhdGZvcm1zLCBpbXBsZW1lbnRpbmcgYmVzdCBwcmFjdGljZXMgaXMgY3J1Y2lhbCBmb3IgZW5zdXJpbmcgc21vb3RoIG9wZXJhdGlvbiBhbmQgdXNlciBzYXRpc2ZhY3Rpb24uIEVmZmVjdGl2ZSBwbGF0Zm9ybSBtYWludGVuYW5jZSBpcyBub3QgYSBvbmUtdGltZSB0YXNrIGJ1dCBhbiBvbmdvaW5nIHByb2Nlc3MuIEJ5IGVzdGFibGlzaGluZyBhIHJvdXRpbmUgZm9yIDxzdHJvbmc+cGxhdGZvcm0gbWFpbnRlbmFuY2U8L3N0cm9uZz4sIHdoaWNoIGluY2x1ZGVzIHJlZ3VsYXIgdXBkYXRlcyBhbmQgc2VjdXJpdHkgY2hlY2tzLCBhZG1pbmlzdHJhdG9ycyBjYW4gc2FmZWd1YXJkIGFnYWluc3QgcG90ZW50aWFsIGRvd250aW1lcyBhbmQgZGF0YSBicmVhY2hlcy4gVGhpcyBwcm9hY3RpdmUgYXBwcm9hY2ggaXMgZXNzZW50aWFsIGZvciBtYWludGFpbmluZyB0aGUgcGxhdGZvcm0ncyByZWxpYWJpbGl0eSBhbmQgcGVyZm9ybWFuY2UuPC9wPgo8cD5UbyBlbmhhbmNlIHRoZSBsZWFybmluZyBleHBlcmllbmNlLCA8c3Ryb25nPnVzZXIgc3VwcG9ydCBzdHJhdGVnaWVzPC9zdHJvbmc+IHBsYXkgYSBwaXZvdGFsIHJvbGUuIFRoZXkgc2hvdWxkIGJlIGZvY3VzZWQgb24gYWRkcmVzc2luZyB1c2VyIGlucXVpcmllcyBwcm9tcHRseSBhbmQgYWNjdXJhdGVseS4gVGhpcyBjb3VsZCBpbnZvbHZlIHNldHRpbmcgdXAgYSByb2J1c3QgaGVscCBkZXNrIHN5c3RlbSwgb3Igb2ZmZXJpbmcgdHJhaW5pbmcgc2Vzc2lvbnMgZm9yIHVzZXJzIHRvIG5hdmlnYXRlIHRoZSBwbGF0Zm9ybSBlZmZpY2llbnRseS4gSW1wbGVtZW50aW5nIGEgZmVlZGJhY2sgbWVjaGFuaXNtIGlzIGVxdWFsbHkgaW1wb3J0YW50LCBhbGxvd2luZyB1c2VycyB0byBzaGFyZSB0aGVpciBleHBlcmllbmNlcyBhbmQgc3VnZ2VzdCBpbXByb3ZlbWVudHMuIFRoaXMgZmVlZGJhY2sgY2FuIGJlIGluc3RydW1lbnRhbCBpbiBldm9sdmluZyB0aGUgcGxhdGZvcm0gdG8gYmV0dGVyIG1lZXQgbGVhcm5lcnMnIG5lZWRzLjwvcD4KPHA+QWRkaXRpb25hbGx5LCBzdHJhdGVnaWVzIGZvciA8c3Ryb25nPmNvbnRpbnVvdXMgaW1wcm92ZW1lbnQ8L3N0cm9uZz4gYW5kIHNjYWxhYmlsaXR5IHNob3VsZCBiZSBhdCB0aGUgZm9yZWZyb250LiBSZWd1bGFybHkgYXNzZXNzaW5nIHRoZSBwbGF0Zm9ybSdzIGNhcGFiaWxpdGllcyBhbmQgcGVyZm9ybWFuY2UgcHJvdmlkZXMgdmFsdWFibGUgaW5zaWdodHMgZm9yIG1ha2luZyBpbmZvcm1lZCB1cGdyYWRlcyBvciBzY2FsaW5nIG9wZXJhdGlvbnMuIEl0IGhlbHBzIGluIGFkYXB0aW5nIHRvIGdyb3dpbmcgdXNlciBkZW1hbmRzIGFuZCBpbnRlZ3JhdGluZyBuZXcgdGVjaG5vbG9naWNhbCBhZHZhbmNlbWVudHMgc2VhbWxlc3NseS4gQnkgZm9jdXNpbmcgb24gdGhlc2Ugc3RyYXRlZ2llcywgb25saW5lIGxlYXJuaW5nIHBsYXRmb3JtcyBjYW4gYWNoaWV2ZSBsb25nLXRlcm0gc3VjY2VzcyBhbmQgcmVzaWxpZW5jZSBpbiBhIHJhcGlkbHkgY2hhbmdpbmcgZWR1Y2F0aW9uYWwgZW52aXJvbm1lbnQuPC9wPgo8aDI+RXZhbHVhdGluZyBTdWNjZXNzIGFuZCBBZGFwdGluZyBTdHJhdGVneTwvaDI+CjxwPldoZW4gY29uc2lkZXJpbmcgPHN0cm9uZz5zdWNjZXNzIG1ldHJpY3Mgb25saW5lIGVkdWNhdGlvbjwvc3Ryb25nPiwgYSBjcnVjaWFsIGZhY3RvciBpcyBhc3Nlc3NpbmcgdGhlIGVmZmVjdGl2ZW5lc3Mgb2YgZGlnaXRhbCBjb3Vyc2VzLiBFdmFsdWF0aW9uIHJlcXVpcmVzIGEgYmxlbmQgb2YgcXVhbnRpdGF0aXZlIGFuZCBxdWFsaXRhdGl2ZSBtZWFzdXJlcy4gRm9yIGluc3RhbmNlLCBjb21wbGV0aW9uIHJhdGVzIGFuZCB0ZXN0IHNjb3JlcyBzZXJ2ZSBhcyB0YW5naWJsZSBpbmRpY2F0b3JzIG9mIGVmZmljYWN5LCB3aGlsZSB1c2VyIHNhdGlzZmFjdGlvbiBzdXJ2ZXlzIHByb3ZpZGUgc3ViamVjdGl2ZSBpbnNpZ2h0cy4gQWNjdXJhdGVseSBtZWFzdXJpbmcgdGhlc2UgbWV0cmljcyByZXZlYWxzIHdoaWNoIGFzcGVjdHMgb2YgYW4gb25saW5lIHByb2dyYW0gcmVzb25hdGUgd2VsbCB3aXRoIHN0dWRlbnRzIGFuZCB3aGljaCBhcmVhcyByZXF1aXJlIHJlZmluZW1lbnQuPC9wPgo8cD5JbiB0ZXJtcyBvZiA8c3Ryb25nPmV2YWx1YXRpb24gbWV0aG9kczwvc3Ryb25nPiwgY29sbGVjdGluZyBhbmQgYW5hbHl6aW5nIHVzZXIgZmVlZGJhY2sgaXMgY3JpdGljYWwuIE1ldGhvZHMgc3VjaCBhcyBzdXJ2ZXlzLCBmb2N1cyBncm91cHMsIGFuZCBkaXNjdXNzaW9uIGZvcnVtcyBlbmFibGUgZWR1Y2F0b3JzIHRvIGdhaW4gY29tcHJlaGVuc2l2ZSBpbnNpZ2h0cyBpbnRvIGxlYXJuZXIgZXhwZXJpZW5jZXMuIFV0aWxpemluZyB0aGVzZSBjaGFubmVscyBhbGxvd3MgZm9yIHVuZGVyc3RhbmRpbmcgbGVhcm5lciBzYXRpc2ZhY3Rpb24gYW5kIGVuZ2FnZW1lbnQgbGV2ZWxzLCB3aGljaCBhcmUgdml0YWwgZm9yIGV2YWx1YXRpbmcgdGhlIG92ZXJhbGwgc3VjY2VzcyBvZiBlZHVjYXRpb25hbCBvZmZlcmluZ3MuPC9wPgo8cD5BcyB0aGUgbWFya2V0IGFuZCBsZWFybmVyIGV4cGVjdGF0aW9ucyBldm9sdmUsIGl0J3MgbmVjZXNzYXJ5IHRvIGFkYXB0IHN0cmF0ZWdpZXMgdG8gcmVtYWluIGNvbXBldGl0aXZlLiA8c3Ryb25nPkFkYXB0aW5nIHN0cmF0ZWdpZXM8L3N0cm9uZz4gaW52b2x2ZXMgYWRqdXN0aW5nIGNvdXJzZSBjb250ZW50LCB0ZWNobm9sb2dpZXMgdXNlZCwgYW5kIHRlYWNoaW5nIG1ldGhvZHMgYmFzZWQgb24gZW1lcmdpbmcgdHJlbmRzIGFuZCB1c2VyIGZlZWRiYWNrLiBGb3IgZXhhbXBsZSwgaW50ZWdyYXRpbmcgbXVsdGltZWRpYSByZXNvdXJjZXMgaW4gcmVzcG9uc2UgdG8gbGVhcm5lciBwcmVmZXJlbmNlcyBmb3IgaW50ZXJhY3RpdmUgY29udGVudCBjYW4gc2lnbmlmaWNhbnRseSBlbmhhbmNlIGVuZ2FnZW1lbnQgYW5kIGVmZmVjdGl2ZW5lc3MuIDwvcD4KPHA+RWR1Y2F0b3JzIG11c3QgY29udGludW91c2x5IG1vbml0b3IgbGVhcm5lciBuZWVkcyBhbmQgYWRhcHQgdG8gc2hpZnRzIGluIGVkdWNhdGlvbmFsIHRlY2hub2xvZ3ksIGVuc3VyaW5nIHRoZWlyIG9mZmVyaW5ncyByZW1haW4gcmVsZXZhbnQgYW5kIGltcGFjdGZ1bC4gVGhpcyBwcm9hY3RpdmUgYXBwcm9hY2ggZW5hYmxlcyBlZHVjYXRvcnMgdG8gbWFpbnRhaW4gYSBsZWFkaW5nIGVkZ2UgaW4gdGhlIGV2ZXItZXZvbHZpbmcgbGFuZHNjYXBlIG9mIG9ubGluZSBlZHVjYXRpb24uPC9wPgo8L2JvZHk+CjwvaHRtbD4=