PCFET0NUWVBFIHJlZmVudHJ5IFBVQkxJQyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFYzLjEvL0VOIiBbCjwhRU5USVRZIHZlcnNpb24gU1lTVEVNICJ2ZXJzaW9uLnNnbWwiPgpdPgo8IS0tCiAgICAkSWQkCiAgIAogICAgQ29weXJpZ2h0IKkgMjAwMyBLZWl0aCBQYWNrYXJkCiAgIAogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgZGlzdHJpYnV0ZSwgYW5kIHNlbGwgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCiAgICBkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBpcyBoZXJlYnkgZ3JhbnRlZCB3aXRob3V0IGZlZSwgcHJvdmlkZWQgdGhhdAogICAgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0aGF0CiAgICBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBzdXBwb3J0aW5nCiAgICBkb2N1bWVudGF0aW9uLCBhbmQgdGhhdCB0aGUgbmFtZSBvZiBLZWl0aCBQYWNrYXJkIG5vdCBiZSB1c2VkIGluCiAgICBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQKICAgIHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uICBLZWl0aCBQYWNrYXJkIG1ha2VzIG5vCiAgICByZXByZXNlbnRhdGlvbnMgYWJvdXQgdGhlIHN1aXRhYmlsaXR5IG9mIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLiAgSXQKICAgIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCiAgIAogICAgS0VJVEggUEFDS0FSRCBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSwKICAgIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8KICAgIEVWRU5UIFNIQUxMIEtFSVRIIFBBQ0tBUkQgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgSU5ESVJFQ1QgT1IKICAgIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLAogICAgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgogICAgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUgogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLS0+CjxyZWZlbnRyeT4KPHJlZm1ldGE+CiAgPHJlZmVudHJ5dGl0bGU+Zm9udHMtY29uZjwvcmVmZW50cnl0aXRsZT4KICA8bWFudm9sbnVtPjU8L21hbnZvbG51bT4KPC9yZWZtZXRhPgo8cmVmbmFtZWRpdj4KCTxyZWZuYW1lPmZvbnRzLmNvbmY8L3JlZm5hbWU+Cgk8cmVmcHVycG9zZT5Gb250IGNvbmZpZ3VyYXRpb24gZmlsZXM8L3JlZnB1cnBvc2U+CjwvcmVmbmFtZWRpdj4KPHJlZnN5bm9wc2lzZGl2Pgo8c3lub3BzaXM+CiAgIC9ldGMvZm9udHMvZm9udHMuY29uZgogICAvZXRjL2ZvbnRzL2ZvbnRzLmR0ZAogICB+Ly5mb250cy5jb25mCjwvc3lub3BzaXM+CjwvcmVmc3lub3BzaXNkaXY+CjxyZWZzZWN0MT48dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgogIDxwYXJhPgpGb250Y29uZmlnIGlzIGEgbGlicmFyeSBkZXNpZ25lZCB0byBwcm92aWRlIHN5c3RlbS13aWRlIGZvbnQgY29uZmlndXJhdGlvbiwKY3VzdG9taXphdGlvbiBhbmQgYXBwbGljYXRpb24gYWNjZXNzLgogIDwvcGFyYT4KPC9yZWZzZWN0MT4KPHJlZnNlY3QxPjx0aXRsZT5GdW5jdGlvbmFsIE92ZXJ2aWV3PC90aXRsZT4KICA8cGFyYT4KRm9udGNvbmZpZyBjb250YWlucyB0d28gZXNzZW50aWFsIG1vZHVsZXMsIHRoZSBjb25maWd1cmF0aW9uIG1vZHVsZSB3aGljaApidWlsZHMgYW4gaW50ZXJuYWwgY29uZmlndXJhdGlvbiBmcm9tIFhNTCBmaWxlcyBhbmQgdGhlIG1hdGNoaW5nIG1vZHVsZQp3aGljaCBhY2NlcHRzIGZvbnQgcGF0dGVybnMgYW5kIHJldHVybnMgdGhlIG5lYXJlc3QgbWF0Y2hpbmcgZm9udC4KICA8L3BhcmE+CiAgPHJlZnNlY3QyPjx0aXRsZT5Gb250IENvbmZpZ3VyYXRpb248L3RpdGxlPgogICAgPHBhcmE+ClRoZSBjb25maWd1cmF0aW9uIG1vZHVsZSBjb25zaXN0cyBvZiB0aGUgRmNDb25maWcgZGF0YXR5cGUsIGxpYmV4cGF0IGFuZApGY0NvbmZpZ1BhcnNlIHdoaWNoIHdhbGtzIG92ZXIgYW4gWE1MIHRyZWUgYW5kIGFtbWVuZHMgYSBjb25maWd1cmF0aW9uIHdpdGgKZGF0YSBmb3VuZCB3aXRoaW4uICBGcm9tIGFuIGV4dGVybmFsIHBlcnNwZWN0aXZlLCBjb25maWd1cmF0aW9uIG9mIHRoZQpsaWJyYXJ5IGNvbnNpc3RzIG9mIGdlbmVyYXRpbmcgYSB2YWxpZCBYTUwgdHJlZSBhbmQgZmVlZGluZyB0aGF0IHRvCkZjQ29uZmlnUGFyc2UuICBUaGUgb25seSBvdGhlciBtZWNoYW5pc20gcHJvdmlkZWQgdG8gYXBwbGljYXRpb25zIGZvcgpjaGFuZ2luZyB0aGUgcnVubmluZyBjb25maWd1cmF0aW9uIGlzIHRvIGFkZCBmb250cyBhbmQgZGlyZWN0b3JpZXMgdG8gdGhlCmxpc3Qgb2YgYXBwbGljYXRpb24tcHJvdmlkZWQgZm9udCBmaWxlcy4gIAogICAgPC9wYXJhPjxwYXJhPgpUaGUgaW50ZW50IGlzIHRvIG1ha2UgZm9udCBjb25maWd1cmF0aW9ucyByZWxhdGl2ZWx5IHN0YXRpYywgYW5kIHNoYXJlZCBieQphcyBtYW55IGFwcGxpY2F0aW9ucyBhcyBwb3NzaWJsZS4gIEl0IGlzIGhvcGVkIHRoYXQgdGhpcyB3aWxsIGxlYWQgdG8gbW9yZQpzdGFibGUgZm9udCBzZWxlY3Rpb24gd2hlbiBwYXNzaW5nIG5hbWVzIGZyb20gb25lIGFwcGxpY2F0aW9uIHRvIGFub3RoZXIuClhNTCB3YXMgY2hvc2VuIGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdCBiZWNhdXNlIGl0IHByb3ZpZGVzIGEgZm9ybWF0CndoaWNoIGlzIGVhc3kgZm9yIGV4dGVybmFsIGFnZW50cyB0byBlZGl0IHdoaWxlIHJldGFpbmluZyB0aGUgY29ycmVjdApzdHJ1Y3R1cmUgYW5kIHN5bnRheC4KICAgIDwvcGFyYT48cGFyYT4KRm9udCBjb25maWd1cmF0aW9uIGlzIHNlcGFyYXRlIGZyb20gZm9udCBtYXRjaGluZzsgYXBwbGljYXRpb25zIG5lZWRpbmcgdG8KZG8gdGhlaXIgb3duIG1hdGNoaW5nIGNhbiBhY2Nlc3MgdGhlIGF2YWlsYWJsZSBmb250cyBmcm9tIHRoZSBsaWJyYXJ5IGFuZApwZXJmb3JtIHByaXZhdGUgbWF0Y2hpbmcuICBUaGUgaW50ZW50IGlzIHRvIHBlcm1pdCBhcHBsaWNhdGlvbnMgdG8gcGljayBhbmQKY2hvb3NlIGFwcHJvcHJpYXRlIGZ1bmN0aW9uYWxpdHkgZnJvbSB0aGUgbGlicmFyeSBpbnN0ZWFkIG9mIGZvcmNpbmcgdGhlbSB0bwpjaG9vc2UgYmV0d2VlbiB0aGlzIGxpYnJhcnkgYW5kIGEgcHJpdmF0ZSBjb25maWd1cmF0aW9uIG1lY2hhbmlzbS4gIFRoZSBob3BlCmlzIHRoYXQgdGhpcyB3aWxsIGVuc3VyZSB0aGF0IGNvbmZpZ3VyYXRpb24gb2YgZm9udHMgZm9yIGFsbCBhcHBsaWNhdGlvbnMKY2FuIGJlIGNlbnRyYWxpemVkIGluIG9uZSBwbGFjZS4gIENlbnRyYWxpemluZyBmb250IGNvbmZpZ3VyYXRpb24gd2lsbApzaW1wbGlmeSBhbmQgcmVndWxhcml6ZSBmb250IGluc3RhbGxhdGlvbiBhbmQgY3VzdG9taXphdGlvbi4KICAgIDwvcGFyYT4KICA8L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj4KICAgIDx0aXRsZT5Gb250IFByb3BlcnRpZXM8L3RpdGxlPgogICAgPHBhcmE+CldoaWxlIGZvbnQgcGF0dGVybnMgbWF5IGNvbnRhaW4gZXNzZW50aWFsbHkgYW55IHByb3BlcnRpZXMsIHRoZXJlIGFyZSBzb21lCndlbGwga25vd24gcHJvcGVydGllcyB3aXRoIGFzc29jaWF0ZWQgdHlwZXMuICBGb250Y29uZmlnIHVzZXMgc29tZSBvZiB0aGVzZQpwcm9wZXJ0aWVzIGZvciBmb250IG1hdGNoaW5nIGFuZCBmb250IGNvbXBsZXRpb24uICBPdGhlcnMgYXJlIHByb3ZpZGVkIGFzIGEKY29udmVuaWVuY2UgZm9yIHRoZSBhcHBsaWNhdGlvbnMgcmVuZGVyaW5nIG1lY2hhbmlzbS4KICAgIDwvcGFyYT4KICAgIDxwcm9ncmFtbGlzdGluZz4KICBQcm9wZXJ0eSAgICAgICAgVHlwZSAgICBEZXNjcmlwdGlvbgogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZmFtaWx5ICAgICAgICAgIFN0cmluZyAgRm9udCBmYW1pbHkgbmFtZQogIHN0eWxlICAgICAgICAgICBTdHJpbmcgIEZvbnQgc3R5bGUuIE92ZXJyaWRlcyB3ZWlnaHQgYW5kIHNsYW50CiAgc2xhbnQgICAgICAgICAgIEludCAgICAgSXRhbGljLCBvYmxpcXVlIG9yIHJvbWFuCiAgd2VpZ2h0ICAgICAgICAgIEludCAgICAgTGlnaHQsIG1lZGl1bSwgZGVtaWJvbGQsIGJvbGQgb3IgYmxhY2sKICBzaXplICAgICAgICAgICAgRG91YmxlICBQb2ludCBzaXplCiAgYXNwZWN0ICAgICAgICAgIERvdWJsZSAgU3RyZXRjaGVzIGdseXBocyBob3Jpem9udGFsbHkgYmVmb3JlIGhpbnRpbmcKICBwaXhlbHNpemUgICAgICAgRG91YmxlICBQaXhlbCBzaXplCiAgc3BhY2luZyAgICAgICAgIEludCAgICAgUHJvcG9ydGlvbmFsLCBtb25vc3BhY2Ugb3IgY2hhcmNlbGwKICBmb3VuZHJ5ICAgICAgICAgU3RyaW5nICBGb250IGZvdW5kcnkgbmFtZQogIGFudGlhbGlhcyAgICAgICBCb29sICAgIFdoZXRoZXIgZ2x5cGhzIGNhbiBiZSBhbnRpYWxpYXNlZAogIGhpbnRpbmcgICAgICAgICBCb29sICAgIFdoZXRoZXIgdGhlIHJhc3Rlcml6ZXIgc2hvdWxkIHVzZSBoaW50aW5nCiAgdmVydGljYWxsYXlvdXQgIEJvb2wgICAgVXNlIHZlcnRpY2FsIGxheW91dAogIGF1dG9oaW50ICAgICAgICBCb29sICAgIFVzZSBhdXRvaGludGVyIGluc3RlYWQgb2Ygbm9ybWFsIGhpbnRlcgogIGdsb2JhbGFkdmFuY2UgICBCb29sICAgIFVzZSBmb250IGdsb2JhbCBhZHZhbmNlIGRhdGEKICBmaWxlICAgICAgICAgICAgU3RyaW5nICBUaGUgZmlsZW5hbWUgaG9sZGluZyB0aGUgZm9udAogIGluZGV4ICAgICAgICAgICBJbnQgICAgIFRoZSBpbmRleCBvZiB0aGUgZm9udCB3aXRoaW4gdGhlIGZpbGUKICBmdGZhY2UgICAgICAgICAgRlRfRmFjZSBVc2UgdGhlIHNwZWNpZmllZCBGcmVlVHlwZSBmYWNlIG9iamVjdAogIHJhc3Rlcml6ZXIgICAgICBTdHJpbmcgIFdoaWNoIHJhc3Rlcml6ZXIgaXMgaW4gdXNlCiAgb3V0bGluZSAgICAgICAgIEJvb2wgICAgV2hldGhlciB0aGUgZ2x5cGhzIGFyZSBvdXRsaW5lcwogIHNjYWxhYmxlICAgICAgICBCb29sICAgIFdoZXRoZXIgZ2x5cGhzIGNhbiBiZSBzY2FsZWQKICBzY2FsZSAgICAgICAgICAgRG91YmxlICBTY2FsZSBmYWN0b3IgZm9yIHBvaW50LT5waXhlbCBjb252ZXJzaW9ucwogIGRwaSAgICAgICAgICAgICBEb3VibGUgIFRhcmdldCBkb3RzIHBlciBpbmNoCiAgcmdiYSAgICAgICAgICAgIEludCAgICAgdW5rbm93biwgcmdiLCBiZ3IsIHZyZ2IsIHZiZ3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uZSAtIHN1YnBpeGVsIGdlb21ldHJ5CiAgbWluc3BhY2UgICAgICAgIEJvb2wgICAgRWxpbWluYXRlIGxlYWRpbmcgZnJvbSBsaW5lIHNwYWNpbmcKICBjaGFyc2V0ICAgICAgICAgQ2hhclNldCBVbmljb2RlIGNoYXJzIGVuY29kZWQgYnkgdGhlIGZvbnQKICBsYW5nICAgICAgICAgICAgU3RyaW5nICBMaXN0IG9mIFJGQy0zMDY2LXN0eWxlIGxhbmd1YWdlcyB0aGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udCBzdXBwb3J0cwogICAgPC9wcm9ncmFtbGlzdGluZz4KICA8L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj4KICA8dGl0bGU+Rm9udCBNYXRjaGluZzwvdGl0bGU+CiAgICA8cGFyYT4KRm9udGNvbmZpZyBwZXJmb3JtcyBtYXRjaGluZyBieSBtZWFzdXJpbmcgdGhlIGRpc3RhbmNlIGZyb20gYSBwcm92aWRlZApwYXR0ZXJuIHRvIGFsbCBvZiB0aGUgYXZhaWxhYmxlIGZvbnRzIGluIHRoZSBzeXN0ZW0uICBUaGUgY2xvc2VzdCBtYXRjaGluZwpmb250IGlzIHNlbGVjdGVkLiAgVGhpcyBlbnN1cmVzIHRoYXQgYSBmb250IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLCBidXQKZG9lc24ndCBlbnN1cmUgdGhhdCBpdCBpcyBhbnl0aGluZyBsaWtlIHRoZSByZXF1ZXN0ZWQgcGF0dGVybi4KICAgIDwvcGFyYT48cGFyYT4gCkZvbnQgbWF0Y2hpbmcgc3RhcnRzIHdpdGggYW4gYXBwbGljYXRpb24gY29uc3RydWN0ZWQgcGF0dGVybi4gIFRoZSBkZXNpcmVkCmF0dHJpYnV0ZXMgb2YgdGhlIHJlc3VsdGluZyBmb250IGFyZSBjb2xsZWN0ZWQgdG9nZXRoZXIgaW4gYSBwYXR0ZXJuLiAgRWFjaApwcm9wZXJ0eSBvZiB0aGUgcGF0dGVybiBjYW4gY29udGFpbiBvbmUgb3IgbW9yZSB2YWx1ZXM7IHRoZXNlIGFyZSBsaXN0ZWQgaW4KcHJpb3JpdHkgb3JkZXI7IG1hdGNoZXMgZWFybGllciBpbiB0aGUgbGlzdCBhcmUgY29uc2lkZXJlZCAiY2xvc2VyIiB0aGFuCm1hdGNoZXMgbGF0ZXIgaW4gdGhlIGxpc3QuCiAgICA8L3BhcmE+PHBhcmE+ClRoZSBpbml0aWFsIHBhdHRlcm4gaXMgbW9kaWZpZWQgYnkgYXBwbHlpbmcgdGhlIGxpc3Qgb2YgZWRpdGluZyBpbnN0cnVjdGlvbnMKc3BlY2lmaWMgdG8gcGF0dGVybnMgZm91bmQgaW4gdGhlIGNvbmZpZ3VyYXRpb247IGVhY2ggY29uc2lzdHMgb2YgYSBtYXRjaApwcmVkaWNhdGUgYW5kIGEgc2V0IG9mIGVkaXRpbmcgb3BlcmF0aW9ucy4gIFRoZXkgYXJlIGV4ZWN1dGVkIGluIHRoZSBvcmRlcgp0aGV5IGFwcGVhcmVkIGluIHRoZSBjb25maWd1cmF0aW9uLiAgRWFjaCBtYXRjaCBjYXVzZXMgdGhlIGFzc29jaWF0ZWQKc2VxdWVuY2Ugb2YgZWRpdGluZyBvcGVyYXRpb25zIHRvIGJlIGFwcGxpZWQuCiAgICA8L3BhcmE+PHBhcmE+CkFmdGVyIHRoZSBwYXR0ZXJuIGhhcyBiZWVuIGVkaXRlZCwgYSBzZXF1ZW5jZSBvZiBkZWZhdWx0IHN1YnN0aXR1dGlvbnMgYXJlCnBlcmZvcm1lZCB0byBjYW5vbmljYWxpemUgdGhlIHNldCBvZiBhdmFpbGFibGUgcHJvcGVydGllczsgdGhpcyBhdm9pZHMgdGhlCm5lZWQgZm9yIHRoZSBsb3dlciBsYXllcnMgdG8gY29uc3RhbnRseSBwcm92aWRlIGRlZmF1bHQgdmFsdWVzIGZvciB2YXJpb3VzCmZvbnQgcHJvcGVydGllcyBkdXJpbmcgcmVuZGVyaW5nLgogICAgPC9wYXJhPjxwYXJhPgpUaGUgY2Fub25pY2FsIGZvbnQgcGF0dGVybiBpcyBmaW5hbGx5IG1hdGNoZWQgYWdhaW5zdCBhbGwgYXZhaWxhYmxlIGZvbnRzLgpUaGUgZGlzdGFuY2UgZnJvbSB0aGUgcGF0dGVybiB0byB0aGUgZm9udCBpcyBtZWFzdXJlZCBmb3IgZWFjaCBvZiBzZXZlcmFsCnByb3BlcnRpZXM6IGZvdW5kcnksIGNoYXJzZXQsIGZhbWlseSwgbGFuZywgc3BhY2luZywgcGl4ZWxzaXplLCBzdHlsZSwKc2xhbnQsIHdlaWdodCwgYW50aWFsaWFzLCByYXN0ZXJpemVyIGFuZCBvdXRsaW5lLiAgVGhpcyBsaXN0IGlzIGluIHByaW9yaXR5Cm9yZGVyIC0tIHJlc3VsdHMgb2YgY29tcGFyaW5nIGVhcmxpZXIgZWxlbWVudHMgb2YgdGhpcyBsaXN0IHdlaWdoIG1vcmUKaGVhdmlseSB0aGFuIGxhdGVyIGVsZW1lbnRzLgogICAgPC9wYXJhPjxwYXJhPgpUaGVyZSBpcyBvbmUgc3BlY2lhbCBjYXNlIHRvIHRoaXMgcnVsZTsgZmFtaWx5IG5hbWVzIGFyZSBzcGxpdCBpbnRvIHR3bwpiaW5kaW5nczsgc3Ryb25nIGFuZCB3ZWFrLiAgU3Ryb25nIGZhbWlseSBuYW1lcyBhcmUgZ2l2ZW4gZ3JlYXRlciBwcmVjZWRlbmNlCmluIHRoZSBtYXRjaCB0aGFuIGxhbmcgZWxlbWVudHMgd2hpbGUgd2VhayBmYW1pbHkgbmFtZXMgYXJlIGdpdmVuIGxvd2VyCnByZWNlZGVuY2UgdGhhbiBsYW5nIGVsZW1lbnRzLiAgVGhpcyBwZXJtaXRzIHRoZSBkb2N1bWVudCBsYW5ndWFnZSB0byBkcml2ZQpmb250IHNlbGVjdGlvbiB3aGVuIGFueSBkb2N1bWVudCBzcGVjaWZpZWQgZm9udCBpcyB1bmF2YWlsYWJsZS4KICAgIDwvcGFyYT48cGFyYT4KVGhlIHBhdHRlcm4gcmVwcmVzZW50aW5nIHRoYXQgZm9udCBpcyBhdWdtZW50ZWQgdG8gaW5jbHVkZSBhbnkgcHJvcGVydGllcwpmb3VuZCBpbiB0aGUgcGF0dGVybiBidXQgbm90IGZvdW5kIGluIHRoZSBmb250IGl0c2VsZjsgdGhpcyBwZXJtaXRzIHRoZQphcHBsaWNhdGlvbiB0byBwYXNzIHJlbmRlcmluZyBpbnN0cnVjdGlvbnMgb3IgYW55IG90aGVyIGRhdGEgdGhyb3VnaCB0aGUKbWF0Y2hpbmcgc3lzdGVtLiAgRmluYWxseSwgdGhlIGxpc3Qgb2YgZWRpdGluZyBpbnN0cnVjdGlvbnMgc3BlY2lmaWMgdG8KZm9udHMgZm91bmQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gYXJlIGFwcGxpZWQgdG8gdGhlIHBhdHRlcm4uICBUaGlzIG1vZGlmaWVkCnBhdHRlcm4gaXMgcmV0dXJuZWQgdG8gdGhlIGFwcGxpY2F0aW9uLgogICAgPC9wYXJhPjxwYXJhPgpUaGUgcmV0dXJuIHZhbHVlIGNvbnRhaW5zIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gbG9jYXRlIGFuZCByYXN0ZXJpemUgdGhlCmZvbnQsIGluY2x1ZGluZyB0aGUgZmlsZSBuYW1lLCBwaXhlbCBzaXplIGFuZCBvdGhlciByZW5kZXJpbmcgZGF0YS4gIEFzCm5vbmUgb2YgdGhlIGluZm9ybWF0aW9uIGludm9sdmVkIHBlcnRhaW5zIHRvIHRoZSBGcmVlVHlwZSBsaWJyYXJ5LAphcHBsaWNhdGlvbnMgYXJlIGZyZWUgdG8gdXNlIGFueSByYXN0ZXJpemF0aW9uIGVuZ2luZSBvciBldmVuIHRvIHRha2UKdGhlIGlkZW50aWZpZWQgZm9udCBmaWxlIGFuZCBhY2Nlc3MgaXQgZGlyZWN0bHkuCiAgICA8L3BhcmE+PHBhcmE+ClRoZSBtYXRjaC9lZGl0IHNlcXVlbmNlcyBpbiB0aGUgY29uZmlndXJhdGlvbiBhcmUgcGVyZm9ybWVkIGluIHR3byBwYXNzZXMKYmVjYXVzZSB0aGVyZSBhcmUgZXNzZW50aWFsbHkgdHdvIGRpZmZlcmVudCBvcGVyYXRpb25zIG5lY2Vzc2FyeSAtLSB0aGUKZmlyc3QgaXMgdG8gbW9kaWZ5IGhvdyBmb250cyBhcmUgc2VsZWN0ZWQ7IGFsaWFzaW5nIGZhbWlsaWVzIGFuZCBhZGRpbmcKc3VpdGFibGUgZGVmYXVsdHMuICBUaGUgc2Vjb25kIGlzIHRvIG1vZGlmeSBob3cgdGhlIHNlbGVjdGVkIGZvbnRzIGFyZQpyYXN0ZXJpemVkLiAgVGhvc2UgbXVzdCBhcHBseSB0byB0aGUgc2VsZWN0ZWQgZm9udCwgbm90IHRoZSBvcmlnaW5hbCBwYXR0ZXJuCmFzIGZhbHNlIG1hdGNoZXMgd2lsbCBvZnRlbiBvY2N1ci4KICAgIDwvcGFyYT4KICA8L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+Rm9udCBOYW1lczwvdGl0bGU+CiAgICA8cGFyYT4KRm9udGNvbmZpZyBwcm92aWRlcyBhIHRleHR1YWwgcmVwcmVzZW50YXRpb24gZm9yIHBhdHRlcm5zIHRoYXQgdGhlIGxpYnJhcnkKY2FuIGJvdGggYWNjZXB0IGFuZCBnZW5lcmF0ZS4gIFRoZSByZXByZXNlbnRhdGlvbiBpcyBpbiB0aHJlZSBwYXJ0cywgZmlyc3QgYQpsaXN0IG9mIGZhbWlseSBuYW1lcywgc2Vjb25kIGEgbGlzdCBvZiBwb2ludCBzaXplcyBhbmQgZmluYWxseSBhIGxpc3Qgb2YKYWRkaXRpb25hbCBwcm9wZXJ0aWVzOgogICAgPC9wYXJhPgogICAgPHByb2dyYW1saXN0aW5nPgoJJmx0O2ZhbWlsaWVzJmd0Oy0mbHQ7cG9pbnQgc2l6ZXMmZ3Q7OiZsdDtuYW1lMSZndDs9Jmx0O3ZhbHVlczEmZ3Q7OiZsdDtuYW1lMiZndDs9Jmx0O3ZhbHVlczImZ3Q7Li4uCiAgICA8L3Byb2dyYW1saXN0aW5nPgogICAgPHBhcmE+ClZhbHVlcyBpbiBhIGxpc3QgYXJlIHNlcGFyYXRlZCB3aXRoIGNvbW1hcy4gIFRoZSBuYW1lIG5lZWRuJ3QgaW5jbHVkZSBlaXRoZXIKZmFtaWxpZXMgb3IgcG9pbnQgc2l6ZXM7IHRoZXkgY2FuIGJlIGVsaWRlZC4gIEluIGFkZGl0aW9uLCB0aGVyZSBhcmUKc3ltYm9saWMgY29uc3RhbnRzIHRoYXQgc2ltdWx0YW5lb3VzbHkgaW5kaWNhdGUgYm90aCBhIG5hbWUgYW5kIGEgdmFsdWUuCkhlcmUgYXJlIHNvbWUgZXhhbXBsZXM6CiAgICA8L3BhcmE+CiAgICA8cHJvZ3JhbWxpc3Rpbmc+CiAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZWFuaW5nCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFRpbWVzLTEyICAgICAgICAgICAgICAgICAgICAgICAgMTIgcG9pbnQgVGltZXMgUm9tYW4KICBUaW1lcy0xMjpib2xkICAgICAgICAgICAgICAgICAgIDEyIHBvaW50IFRpbWVzIEJvbGQKICBDb3VyaWVyOml0YWxpYyAgICAgICAgICAgICAgICAgIENvdXJpZXIgSXRhbGljIGluIHRoZSBkZWZhdWx0IHNpemUKICBNb25vc3BhY2U6bWF0cml4PTEgLjEgMCAxICAgICAgIFRoZSB1c2VycyBwcmVmZXJyZWQgbW9ub3NwYWNlIGZvbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggYXJ0aWZpY2lhbCBvYmxpcXVpbmcKICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgPC9yZWZzZWN0Mj4KPC9yZWZzZWN0MT4KPHJlZnNlY3QxPjx0aXRsZT5MYW5nIFRhZ3M8L3RpdGxlPgogIDxwYXJhPgpFYWNoIGZvbnQgaW4gdGhlIGRhdGFiYXNlIGNvbnRhaW5zIGEgbGlzdCBvZiBsYW5ndWFnZXMgaXQgc3VwcG9ydHMuICBUaGlzIGlzCmNvbXB1dGVkIGJ5IGNvbXBhcmluZyB0aGUgVW5pY29kZSBjb3ZlcmFnZSBvZiB0aGUgZm9udCB3aXRoIHRoZSBvcnRob2dyYXBoeQpvZiBlYWNoIGxhbmd1YWdlLiAgTGFuZ3VhZ2VzIGFyZSB0YWdnZWQgdXNpbmcgYW4gUkZDLTMwNjYgY29tcGF0aWJsZSBuYW1pbmcKYW5kIG9jY3VyIGluIHR3byBwYXJ0cyAtLSB0aGUgSVNPNjM5IGxhbmd1YWdlIHRhZyBmb2xsb3dlZCBhIGh5cGhlbiBhbmQgdGhlbgpieSB0aGUgSVNPIDMxNjYgY291bnRyeSBjb2RlLiAgVGhlIGh5cGhlbiBhbmQgY291bnRyeSBjb2RlIG1heSBiZSBlbGlkZWQuCiAgPC9wYXJhPjxwYXJhPgpGb250Y29uZmlnIGhhcyBvcnRob2dyYXBoaWVzIGZvciBzZXZlcmFsIGxhbmd1YWdlcyBidWlsdCBpbnRvIHRoZSBsaWJyYXJ5LgpObyBwcm92aXNpb24gaGFzIGJlZW4gbWFkZSBmb3IgYWRkaW5nIG5ldyBvbmVzIGFzaWRlIGZyb20gcmVidWlsZGluZyB0aGUKbGlicmFyeS4gIEl0IGN1cnJlbnRseSBzdXBwb3J0cyAxMjIgb2YgdGhlIDEzOSBsYW5ndWFnZXMgbmFtZWQgaW4gSVNPIDYzOS0xLAoxNDEgb2YgdGhlIGxhbmd1YWdlcyB3aXRoIHR3by1sZXR0ZXIgY29kZXMgZnJvbSBJU08gNjM5LTIgYW5kIGFub3RoZXIgMzAKbGFuZ3VhZ2VzIHdpdGggb25seSB0aHJlZS1sZXR0ZXIgY29kZXMuCiAgPC9wYXJhPgo8L3JlZnNlY3QxPgo8cmVmc2VjdDE+PHRpdGxlPkNvbmZpZ3VyYXRpb24gRmlsZSBGb3JtYXQ8L3RpdGxlPgogIDxwYXJhPgpDb25maWd1cmF0aW9uIGZpbGVzIGZvciBmb250Y29uZmlnIGFyZSBzdG9yZWQgaW4gWE1MIGZvcm1hdDsgdGhpcwpmb3JtYXQgbWFrZXMgZXh0ZXJuYWwgY29uZmlndXJhdGlvbiB0b29scyBlYXNpZXIgdG8gd3JpdGUgYW5kIGVuc3VyZXMgdGhhdAp0aGV5IHdpbGwgZ2VuZXJhdGUgc3ludGFjdGljYWxseSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gZmlsZXMuICBBcyBYTUwKZmlsZXMgYXJlIHBsYWluIHRleHQsIHRoZXkgY2FuIGFsc28gYmUgbWFuaXB1bGF0ZWQgYnkgdGhlIGV4cGVydCB1c2VyIHVzaW5nCmEgdGV4dCBlZGl0b3IuCiAgPC9wYXJhPjxwYXJhPgpUaGUgZm9udGNvbmZpZyBkb2N1bWVudCB0eXBlIGRlZmluaXRpb24gcmVzaWRlcyBpbiB0aGUgZXh0ZXJuYWwgZW50aXR5CiJmb250cy5kdGQiOyB0aGlzIGlzIG5vcm1hbGx5IHN0b3JlZCBpbiB0aGUgZGVmYXVsdCBmb250IGNvbmZpZ3VyYXRpb24KZGlyZWN0b3J5ICgvZXRjL2ZvbnRzKS4gIEVhY2ggY29uZmlndXJhdGlvbiBmaWxlIHNob3VsZCBjb250YWluIHRoZQpmb2xsb3dpbmcgc3RydWN0dXJlOgogICAgPHByb2dyYW1saXN0aW5nPgoJJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CgkmbHQ7IURPQ1RZUEUgZm9udGNvbmZpZyBTWVNURU0gImZvbnRzLmR0ZCImZ3Q7CgkmbHQ7Zm9udGNvbmZpZyZndDsKCS4uLgoJJmx0Oy9mb250Y29uZmlnJmd0OwogICAgPC9wcm9ncmFtbGlzdGluZz4KICA8L3BhcmE+CjxyZWZzZWN0Mj48dGl0bGU+PGxpdGVyYWw+Jmx0O2ZvbnRjb25maWcmZ3Q7PC9saXRlcmFsPjwvdGl0bGU+PHBhcmE+ClRoaXMgaXMgdGhlIHRvcCBsZXZlbCBlbGVtZW50IGZvciBhIGZvbnQgY29uZmlndXJhdGlvbiBhbmQgY2FuIGNvbnRhaW4KPHNnbWx0YWc+ZGlyPC8+LCA8c2dtbHRhZz5jYWNoZTwvPiwgPHNnbWx0YWc+aW5jbHVkZTwvPiwgPHNnbWx0YWc+bWF0Y2g8Lz4gYW5kIDxzZ21sdGFnPmFsaWFzPC8+IGVsZW1lbnRzIGluIGFueSBvcmRlci4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPmRpcjwvPjwvdGl0bGU+PHBhcmE+ClRoaXMgZWxlbWVudCBjb250YWlucyBhIGRpcmVjdG9yeSBuYW1lIHdoaWNoIHdpbGwgYmUgc2Nhbm5lZCBmb3IgZm9udCBmaWxlcwp0byBpbmNsdWRlIGluIHRoZSBzZXQgb2YgYXZhaWxhYmxlIGZvbnRzLgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+Y2FjaGU8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgY29udGFpbnMgYSBmaWxlIG5hbWUgZm9yIHRoZSBwZXItdXNlciBjYWNoZSBvZiBmb250CmluZm9ybWF0aW9uLiAgSWYgaXQgc3RhcnRzIHdpdGggJ34nLCBpdCByZWZlcnMgdG8gYSBmaWxlIGluIHRoZSB1c2Vycwpob21lIGRpcmVjdG9yeS4gIFRoaXMgZmlsZSBpcyB1c2VkIHRvIGhvbGQgaW5mb3JtYXRpb24gYWJvdXQgZm9udHMgdGhhdAppc24ndCBwcmVzZW50IGluIHRoZSBwZXItZGlyZWN0b3J5IGNhY2hlIGZpbGVzLiAgSXQgaXMgYXV0b21hdGljYWxseQptYWludGFpbmVkIGJ5IHRoZSBmb250Y29uZmlnIGxpYnJhcnkuICBUaGUgZGVmYXVsdCBmb3IgdGhpcyBmaWxlIAppcyBgYH4vLmZvbnRzLmNhY2hlLTxzZ21sdGFnPnZlcnNpb248Lz4nJywgd2hlcmUgPHNnbWx0YWc+dmVyc2lvbjwvPiBpcyB0aGUgZm9udCBjb25maWd1cmF0aW9uCmZpbGUgdmVyc2lvbiBudW1iZXIgKGN1cnJlbnRseSAxKS4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPmluY2x1ZGUgaWdub3JlX21pc3Npbmc9Im5vIjwvPjwvdGl0bGU+PHBhcmE+ClRoaXMgZWxlbWVudCBjb250YWlucyB0aGUgbmFtZSBvZiBhbiBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZmlsZS4gIFdoZW4KdGhlIFhNTCBkYXRhdHlwZSBpcyB0cmF2ZXJzZWQgYnkgRmNDb25maWdQYXJzZSwgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlCndpbGwgYWxzbyBiZSBpbmNvcnBvcmF0ZWQgaW50byB0aGUgY29uZmlndXJhdGlvbiBieSBwYXNzaW5nIHRoZSBmaWxlbmFtZSB0bwpGY0NvbmZpZ0xvYWRBbmRQYXJzZS4gIElmICdpZ25vcmVfbWlzc2luZycgaXMgc2V0IHRvICJ5ZXMiIGluc3RlYWQgb2YgdGhlCmRlZmF1bHQgIm5vIiwgYSBtaXNzaW5nIGZpbGUgd2lsbCBlbGljaXQgbm8gd2FybmluZyBtZXNzYWdlIGZyb20gdGhlIGxpYnJhcnkuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5jb25maWc8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgcHJvdmlkZXMgYSBwbGFjZSB0byBjb25zb2xvZGF0ZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24KaW5mb3JtYXRpb24uICA8c2dtbHRhZz5jb25maWc8Lz4gY2FuIGNvbnRhaW4gPHNnbWx0YWc+Ymxhbms8Lz4gYW5kIDxzZ21sdGFnPnJlc2NhbjwvPiBlbGVtZW50cyBpbiBhbnkKb3JkZXIuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5ibGFuazwvPjwvdGl0bGU+PHBhcmE+CkZvbnRzIG9mdGVuIGluY2x1ZGUgImJyb2tlbiIgZ2x5cGhzIHdoaWNoIGFwcGVhciBpbiB0aGUgZW5jb2RpbmcgYnV0IGFyZQpkcmF3biBhcyBibGFua3Mgb24gdGhlIHNjcmVlbi4gIFdpdGhpbiB0aGUgPHNnbWx0YWc+Ymxhbms8Lz4gZWxlbWVudCwgcGxhY2UgZWFjaApVbmljb2RlIGNoYXJhY3RlcnMgd2hpY2ggaXMgc3VwcG9zZWQgdG8gYmUgYmxhbmsgaW4gYW4gPHNnbWx0YWc+aW50PC8+IGVsZW1lbnQuCkNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGlzIHNldCB3aGljaCBhcmUgZHJhd24gYXMgYmxhbmsgd2lsbCBiZSBlbGlkZWQgZnJvbQp0aGUgc2V0IG9mIGNoYXJhY3RlcnMgc3VwcG9ydGVkIGJ5IHRoZSBmb250LgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+cmVzY2FuPC8+PC90aXRsZT48cGFyYT4KVGhlIDxzZ21sdGFnPnJlc2NhbjwvPiBlbGVtZW50IGhvbGRzIGFuIDxzZ21sdGFnPmludDwvPiBlbGVtZW50IHdoaWNoIGluZGljYXRlcyB0aGUgZGVmYXVsdAppbnRlcnZhbCBiZXR3ZWVuIGF1dG9tYXRpYyBjaGVja3MgZm9yIGZvbnQgY29uZmlndXJhdGlvbiBjaGFuZ2VzLgpGb250Y29uZmlnIHdpbGwgdmFsaWRhdGUgYWxsIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzIGFuZCBkaXJlY3RvcmllcyBhbmQKYXV0b21hdGljYWxseSByZWJ1aWxkIHRoZSBpbnRlcm5hbCBkYXRhc3RydWN0dXJlcyB3aGVuIHRoaXMgaW50ZXJ2YWwgcGFzc2VzLgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIjwvPjwvdGl0bGU+PHBhcmE+ClRoaXMgZWxlbWVudCBob2xkcyBmaXJzdCBhIChwb3NzaWJseSBlbXB0eSkgbGlzdCBvZiA8c2dtbHRhZz50ZXN0PC8+IGVsZW1lbnRzIGFuZCB0aGVuCmEgKHBvc3NpYmx5IGVtcHR5KSBsaXN0IG9mIDxzZ21sdGFnPmVkaXQ8Lz4gZWxlbWVudHMuICBQYXR0ZXJucyB3aGljaCBtYXRjaCBhbGwgb2YgdGhlCnRlc3RzIGFyZSBzdWJqZWN0ZWQgdG8gYWxsIHRoZSBlZGl0cy4gIElmICd0YXJnZXQnIGlzIHNldCB0byAiZm9udCIgaW5zdGVhZApvZiB0aGUgZGVmYXVsdCAicGF0dGVybiIsIHRoZW4gdGhpcyBlbGVtZW50IGFwcGxpZXMgdG8gdGhlIGZvbnQgbmFtZQpyZXN1bHRpbmcgZnJvbSBhIG1hdGNoIHJhdGhlciB0aGFuIGEgZm9udCBwYXR0ZXJuIHRvIGJlIG1hdGNoZWQuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz50ZXN0IHF1YWw9ImFueSIgbmFtZT0icHJvcGVydHkiIGNvbXBhcmU9ImVxIjwvPjwvdGl0bGU+PHBhcmE+ClRoaXMgZWxlbWVudCBjb250YWlucyBhIHNpbmdsZSB2YWx1ZSB3aGljaCBpcyBjb21wYXJlZCB3aXRoIHRoZSBwYXR0ZXJuCnByb3BlcnR5ICJwcm9wZXJ0eSIgKHN1YnN0aXR1dGUgYW55IG9mIHRoZSBwcm9wZXJ0eSBuYW1lcyBzZWVuIAphYm92ZSkuICdjb21wYXJlJyBjYW4gYmUgb25lIG9mICJlcSIsICJub3RfZXEiLCAibGVzcyIsICJsZXNzX2VxIiwgIm1vcmUiLCBvcgoibW9yZV9lcSIuICAncXVhbCcgbWF5IGVpdGhlciBiZSB0aGUgZGVmYXVsdCwgImFueSIsIGluIHdoaWNoIGNhc2UgdGhlIG1hdGNoCnN1Y2NlZWRzIGlmIGFueSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3BlcnR5IG1hdGNoZXMgdGhlIHRlc3QgdmFsdWUsIG9yCiJhbGwiLCBpbiB3aGljaCBjYXNlIGFsbCBvZiB0aGUgdmFsdWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvcGVydHkgbXVzdAptYXRjaCB0aGUgdGVzdCB2YWx1ZS4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPmVkaXQgbmFtZT0icHJvcGVydHkiIG1vZGU9ImFzc2lnbiIgYmluZGluZz0id2VhayI8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgY29udGFpbnMgYSBsaXN0IG9mIGV4cHJlc3Npb24gZWxlbWVudHMgKGFueSBvZiB0aGUgdmFsdWUgb3IKb3BlcmF0b3IgZWxlbWVudHMpLiAgVGhlIGV4cHJlc3Npb24gZWxlbWVudHMgYXJlIGV2YWx1YXRlZCBhdCBydW4tdGltZSBhbmQKbW9kaWZ5IHRoZSBwcm9wZXJ0eSAicHJvcGVydHkiLiAgVGhlIG1vZGlmaWNhdGlvbiBkZXBlbmRzIG9uIHdoZXRoZXIKInByb3BlcnR5IiB3YXMgbWF0Y2hlZCBieSBvbmUgb2YgdGhlIGFzc29jaWF0ZWQgPHNnbWx0YWc+dGVzdDwvPiBlbGVtZW50cywgaWYgc28sIHRoZQptb2RpZmljYXRpb24gbWF5IGFmZmVjdCB0aGUgZmlyc3QgbWF0Y2hlZCB2YWx1ZS4gIEFueSB2YWx1ZXMgaW5zZXJ0ZWQgaW50bwp0aGUgcHJvcGVydHkgYXJlIGdpdmVuIHRoZSBpbmRpY2F0ZWQgYmluZGluZy4gJ21vZGUnIGlzIG9uZSBvZjoKICAgIDxwcm9ncmFtbGlzdGluZz4KICBNb2RlICAgICAgICAgICAgICAgICAgICBXaXRoIE1hdGNoICAgICAgICAgICAgICBXaXRob3V0IE1hdGNoCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgImFzc2lnbiIgICAgICAgICAgICAgICAgUmVwbGFjZSBtYXRjaGluZyB2YWx1ZSAgUmVwbGFjZSBhbGwgdmFsdWVzCiAgImFzc2lnbl9yZXBsYWNlIiAgICAgICAgUmVwbGFjZSBhbGwgdmFsdWVzICAgICAgUmVwbGFjZSBhbGwgdmFsdWVzCiAgInByZXBlbmQiICAgICAgICAgICAgICAgSW5zZXJ0IGJlZm9yZSBtYXRjaGluZyAgSW5zZXJ0IGF0IGhlYWQgb2YgbGlzdAogICJwcmVwZW5kX2ZpcnN0IiAgICAgICAgIEluc2VydCBhdCBoZWFkIG9mIGxpc3QgIEluc2VydCBhdCBoZWFkIG9mIGxpc3QKICAiYXBwZW5kIiAgICAgICAgICAgICAgICBBcHBlbmQgYWZ0ZXIgbWF0Y2hpbmcgICBBcHBlbmQgYXQgZW5kIG9mIGxpc3QKICAiYXBwZW5kX2xhc3QiICAgICAgICAgICBBcHBlbmQgYXQgZW5kIG9mIGxpc3QgICBBcHBlbmQgYXQgZW5kIG9mIGxpc3QKICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5pbnQ8Lz4sIDxzZ21sdGFnPmRvdWJsZTwvPiwgPHNnbWx0YWc+c3RyaW5nPC8+LCA8c2dtbHRhZz5ib29sPC8+PC90aXRsZT48cGFyYT4KVGhlc2UgZWxlbWVudHMgaG9sZCBhIHNpbmdsZSB2YWx1ZSBvZiB0aGUgaW5kaWNhdGVkIHR5cGUuICA8c2dtbHRhZz5ib29sPC8+CmVsZW1lbnRzIGhvbGQgZWl0aGVyIHRydWUgb3IgZmFsc2UuICBBbiBpbXBvcnRhbnQgbGltaXRhdGlvbiBleGlzdHMgaW4KdGhlIHBhcnNpbmcgb2YgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyAtLSBmb250Y29uZmlnIHJlcXVpcmVzIHRoYXQKdGhlIG1hbnRpc3NhIHN0YXJ0IHdpdGggYSBkaWdpdCwgbm90IGEgZGVjaW1hbCBwb2ludCwgc28gaW5zZXJ0IGEgbGVhZGluZwp6ZXJvIGZvciBwdXJlbHkgZnJhY3Rpb25hbCB2YWx1ZXMgKGUuZy4gdXNlIDAuNSBpbnN0ZWFkIG9mIC41IGFuZCAtMC41Cmluc3RlYWQgb2YgLS41KS4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPm1hdHJpeDwvPjwvdGl0bGU+PHBhcmE+ClRoaXMgZWxlbWVudCBob2xkcyB0aGUgZm91ciA8c2dtbHRhZz5kb3VibGU8Lz4gZWxlbWVudHMgb2YgYW4gYWZmaW5lCnRyYW5zZm9ybWF0aW9uLgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+bmFtZTwvPjwvdGl0bGU+PHBhcmE+CkhvbGRzIGEgcHJvcGVydHkgbmFtZS4gIEV2YWx1YXRlcyB0byB0aGUgZmlyc3QgdmFsdWUgZnJvbSB0aGUgcHJvcGVydHkgb2YKdGhlIGZvbnQsIG5vdCB0aGUgcGF0dGVybi4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPmNvbnN0PC8+PC90aXRsZT48cGFyYT4KSG9sZHMgdGhlIG5hbWUgb2YgYSBjb25zdGFudDsgdGhlc2UgYXJlIGFsd2F5cyBpbnRlZ2VycyBhbmQgc2VydmUgYXMKc3ltYm9saWMgbmFtZXMgZm9yIGNvbW1vbiBmb250IHZhbHVlczoKICAgIDxwcm9ncmFtbGlzdGluZz4KICBDb25zdGFudCAgICAgICAgUHJvcGVydHkgICAgICAgIFZhbHVlCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGxpZ2h0ICAgICAgICAgICB3ZWlnaHQgICAgICAgICAgMAogIG1lZGl1bSAgICAgICAgICB3ZWlnaHQgICAgICAgICAgMTAwCiAgZGVtaWJvbGQgICAgICAgIHdlaWdodCAgICAgICAgICAxODAKICBib2xkICAgICAgICAgICAgd2VpZ2h0ICAgICAgICAgIDIwMAogIGJsYWNrICAgICAgICAgICB3ZWlnaHQgICAgICAgICAgMjEwCiAgcm9tYW4gICAgICAgICAgIHNsYW50ICAgICAgICAgICAwCiAgaXRhbGljICAgICAgICAgIHNsYW50ICAgICAgICAgICAxMDAKICBvYmxpcXVlICAgICAgICAgc2xhbnQgICAgICAgICAgIDExMAogIHByb3BvcnRpb25hbCAgICBzcGFjaW5nICAgICAgICAgMAogIG1vbm8gICAgICAgICAgICBzcGFjaW5nICAgICAgICAgMTAwCiAgY2hhcmNlbGwgICAgICAgIHNwYWNpbmcgICAgICAgICAxMTAKICB1bmtub3duICAgICAgICAgcmdiYSAgICAgICAgICAgIDAKICByZ2IgICAgICAgICAgICAgcmdiYSAgICAgICAgICAgIDEKICBiZ3IgICAgICAgICAgICAgcmdiYSAgICAgICAgICAgIDIKICB2cmdiICAgICAgICAgICAgcmdiYSAgICAgICAgICAgIDMKICB2YmdyICAgICAgICAgICAgcmdiYSAgICAgICAgICAgIDQKICBub25lICAgICAgICAgICAgcmdiYSAgICAgICAgICAgIDUKICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgIDwvcGFyYT4KICAgIDwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPgogICAgICA8dGl0bGU+PHNnbWx0YWc+b3I8Lz4sIDxzZ21sdGFnPmFuZDwvPiwgPHNnbWx0YWc+cGx1czwvPiwgPHNnbWx0YWc+bWludXM8Lz4sIDxzZ21sdGFnPnRpbWVzPC8+LCA8c2dtbHRhZz5kaXZpZGU8Lz48L3RpdGxlPgogICAgICA8cGFyYT4KVGhlc2UgZWxlbWVudHMgcGVyZm9ybSB0aGUgc3BlY2lmaWVkIG9wZXJhdGlvbiBvbiBhIGxpc3Qgb2YgZXhwcmVzc2lvbgplbGVtZW50cy4gIDxzZ21sdGFnPm9yPC8+IGFuZCA8c2dtbHRhZz5hbmQ8Lz4gYXJlIGJvb2xlYW4sIG5vdCBiaXR3aXNlLgogICAgICA8L3BhcmE+CiAgICA8L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj4KICAgIDx0aXRsZT48c2dtbHRhZz5lcTwvPiwgPHNnbWx0YWc+bm90X2VxPC8+LCA8c2dtbHRhZz5sZXNzPC8+LCA8c2dtbHRhZz5sZXNzX2VxPC8+LCA8c2dtbHRhZz5tb3JlPC8+LCA8c2dtbHRhZz5tb3JlX2VxPC8+PC90aXRsZT4KICAgIDxwYXJhPgpUaGVzZSBlbGVtZW50cyBjb21wYXJlIHR3byB2YWx1ZXMsIHByb2R1Y2luZyBhIGJvb2xlYW4gcmVzdWx0LgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+bm90PC8+PC90aXRsZT48cGFyYT4KSW52ZXJ0cyB0aGUgYm9vbGVhbiBzZW5zZSBvZiBpdHMgb25lIGV4cHJlc3Npb24gZWxlbWVudAogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+aWY8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgdGFrZXMgdGhyZWUgZXhwcmVzc2lvbiBlbGVtZW50czsgaWYgdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBpcwp0cnVlLCBpdCBwcm9kdWNlcyB0aGUgdmFsdWUgb2YgdGhlIHNlY29uZCwgb3RoZXJ3aXNlIGl0IHByb2R1Y2VzIHRoZSB2YWx1ZQpvZiB0aGUgdGhpcmQuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5hbGlhczwvPjwvdGl0bGU+PHBhcmE+CkFsaWFzIGVsZW1lbnRzIHByb3ZpZGUgYSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIHRoZSBzZXQgb2YgY29tbW9uIG1hdGNoCm9wZXJhdGlvbnMgbmVlZGVkIHRvIHN1YnN0aXR1dGUgb25lIGZvbnQgZmFtaWx5IGZvciBhbm90aGVyLiAgVGhleSBjb250YWluIGEKPHNnbWx0YWc+ZmFtaWx5PC8+IGVsZW1lbnQgZm9sbG93ZWQgYnkgb3B0aW9uYWwgPHNnbWx0YWc+cHJlZmVyPC8+LCA8c2dtbHRhZz5hY2NlcHQ8Lz4gYW5kIDxzZ21sdGFnPmRlZmF1bHQ8Lz4KZWxlbWVudHMuICBGb250cyBtYXRjaGluZyB0aGUgPHNnbWx0YWc+ZmFtaWx5PC8+IGVsZW1lbnQgYXJlIGVkaXRlZCB0byBwcmVwZW5kIHRoZQpsaXN0IG9mIDxzZ21sdGFnPnByZWZlcjwvPmVkIGZhbWlsaWVzIGJlZm9yZSB0aGUgbWF0Y2hpbmcgPHNnbWx0YWc+ZmFtaWx5PC8+LCBhcHBlbmQgdGhlCjxzZ21sdGFnPmFjY2VwdDwvPmFibGUgZmFtaWx5cyBhZnRlciB0aGUgbWF0Y2hpbmcgPHNnbWx0YWc+ZmFtaWx5PC8+IGFuZCBhcHBlbmQgdGhlIDxzZ21sdGFnPmRlZmF1bHQ8Lz4KZmFtaWxpZXMgdG8gdGhlIGVuZCBvZiB0aGUgZmFtaWx5IGxpc3QuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5mYW1pbHk8Lz48L3RpdGxlPjxwYXJhPgpIb2xkcyBhIHNpbmdsZSBmb250IGZhbWlseSBuYW1lCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5wcmVmZXI8Lz4sIDxzZ21sdGFnPmFjY2VwdDwvPiwgPHNnbWx0YWc+ZGVmYXVsdDwvPjwvdGl0bGU+PHBhcmE+ClRoZXNlIGhvbGQgYSBsaXN0IG9mIDxzZ21sdGFnPmZhbWlseTwvPiBlbGVtZW50cyB0byBiZSB1c2VkIGJ5IHRoZSA8c2dtbHRhZz5hbGlhczwvPiBlbGVtZW50Lgo8c2dtbHRhZz4vYXJ0aWNsZTwvPgogIDwvcGFyYT48L3JlZnNlY3QyPgo8L3JlZnNlY3QxPgo8cmVmc2VjdDE+PHRpdGxlPkVYQU1QTEUgQ09ORklHVVJBVElPTiBGSUxFPC90aXRsZT4KICA8cmVmc2VjdDI+PHRpdGxlPlN5c3RlbSBjb25maWd1cmF0aW9uIGZpbGU8L3RpdGxlPgogICAgPHBhcmE+ClRoaXMgaXMgYW4gZXhhbXBsZSBvZiBhIHN5c3RlbS13aWRlIGNvbmZpZ3VyYXRpb24gZmlsZQogICAgPC9wYXJhPgogICAgPHByb2dyYW1saXN0aW5nPgombHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKJmx0OyFET0NUWVBFIGZvbnRjb25maWcgU1lTVEVNICJmb250cy5kdGQiJmd0OwombHQ7IS0tIC9ldGMvZm9udHMvZm9udHMuY29uZiBmaWxlIHRvIGNvbmZpZ3VyZSBzeXN0ZW0gZm9udCBhY2Nlc3MgLS0mZ3Q7CiZsdDtmb250Y29uZmlnJmd0OwombHQ7IS0tIAoJRmluZCBmb250cyBpbiB0aGVzZSBkaXJlY3RvcmllcwotLSZndDsKJmx0O2RpciZndDsvdXNyL1gxMVI2L2xpYi9YMTEvZm9udHMvdHJ1ZXR5cGUmbHQ7L2RpciZndDsKJmx0O2RpciZndDsvdXNyL1gxMVI2L2xpYi9YMTEvZm9udHMvVHlwZTEmbHQ7L2RpciZndDsKCiZsdDshLS0KCUFjY2VwdCBkZXByZWNhdGVkICdtb25vJyBhbGlhcywgcmVwbGFjaW5nIGl0IHdpdGggJ21vbm9zcGFjZScKLS0mZ3Q7CiZsdDttYXRjaCB0YXJnZXQ9InBhdHRlcm4iJmd0OwoJJmx0O3Rlc3QgcXVhbD0iYW55IiBuYW1lPSJmYW1pbHkiJmd0OyZsdDtzdHJpbmcmZ3Q7bW9ubyZsdDsvc3RyaW5nJmd0OyZsdDsvdGVzdCZndDsKCSZsdDtlZGl0IG5hbWU9ImZhbWlseSIgbW9kZT0iYXNzaWduIiZndDsmbHQ7c3RyaW5nJmd0O21vbm9zcGFjZSZsdDsvc3RyaW5nJmd0OyZsdDsvZWRpdCZndDsKJmx0Oy9tYXRjaCZndDsKCiZsdDshLS0KCU5hbWVzIG5vdCBpbmNsdWRpbmcgYW55IHdlbGwga25vd24gYWxpYXMgYXJlIGdpdmVuICdzYW5zJwotLSZndDsKJmx0O21hdGNoIHRhcmdldD0icGF0dGVybiImZ3Q7CgkmbHQ7dGVzdCBxdWFsPSJhbGwiIG5hbWU9ImZhbWlseSIgbW9kZT0ibm90X2VxIiZndDtzYW5zJmx0Oy90ZXN0Jmd0OwoJJmx0O3Rlc3QgcXVhbD0iYWxsIiBuYW1lPSJmYW1pbHkiIG1vZGU9Im5vdF9lcSImZ3Q7c2VyaWYmbHQ7L3Rlc3QmZ3Q7CgkmbHQ7dGVzdCBxdWFsPSJhbGwiIG5hbWU9ImZhbWlseSIgbW9kZT0ibm90X2VxIiZndDttb25vc3BhY2UmbHQ7L3Rlc3QmZ3Q7CgkmbHQ7ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFwcGVuZF9sYXN0IiZndDsmbHQ7c3RyaW5nJmd0O3NhbnMmbHQ7L3N0cmluZyZndDsmbHQ7L2VkaXQmZ3Q7CiZsdDsvbWF0Y2gmZ3Q7CgombHQ7IS0tCglMb2FkIHBlci11c2VyIGN1c3RvbWl6YXRpb24gZmlsZSwgYnV0IGRvbid0IGNvbXBsYWluCglpZiBpdCBkb2Vzbid0IGV4aXN0Ci0tJmd0OwombHQ7aW5jbHVkZSBpZ25vcmVfbWlzc2luZz0ieWVzIiZndDt+Ly5mb250cy5jb25mJmx0Oy9pbmNsdWRlJmd0OwoKJmx0OyEtLQoJQWxpYXMgd2VsbCBrbm93biBmb250IG5hbWVzIHRvIGF2YWlsYWJsZSBUcnVlVHlwZSBmb250cy4KCVRoZXNlIHN1YnN0aXR1dGUgVHJ1ZVR5cGUgZmFjZXMgZm9yIHNpbWlsYXIgVHlwZTEKCWZhY2VzIHRvIGltcHJvdmUgc2NyZWVuIGFwcGVhcmFuY2UuCi0tJmd0OwombHQ7YWxpYXMmZ3Q7CgkmbHQ7ZmFtaWx5Jmd0O1RpbWVzJmx0Oy9mYW1pbHkmZ3Q7CgkmbHQ7cHJlZmVyJmd0OyZsdDtmYW1pbHkmZ3Q7VGltZXMgTmV3IFJvbWFuJmx0Oy9mYW1pbHkmZ3Q7Jmx0Oy9wcmVmZXImZ3Q7CgkmbHQ7ZGVmYXVsdCZndDsmbHQ7ZmFtaWx5Jmd0O3NlcmlmJmx0Oy9mYW1pbHkmZ3Q7Jmx0Oy9kZWZhdWx0Jmd0OwombHQ7L2FsaWFzJmd0OwombHQ7YWxpYXMmZ3Q7CgkmbHQ7ZmFtaWx5Jmd0O0hlbHZldGljYSZsdDsvZmFtaWx5Jmd0OwoJJmx0O3ByZWZlciZndDsmbHQ7ZmFtaWx5Jmd0O1ZlcmRhbmEmbHQ7L2ZhbWlseSZndDsmbHQ7L3ByZWZlciZndDsKCSZsdDtkZWZhdWx0Jmd0OyZsdDtmYW1pbHkmZ3Q7c2FucyZsdDsvZmFtaWx5Jmd0OyZsdDsvZGVmYXVsdCZndDsKJmx0Oy9hbGlhcyZndDsKJmx0O2FsaWFzJmd0OwoJJmx0O2ZhbWlseSZndDtDb3VyaWVyJmx0Oy9mYW1pbHkmZ3Q7CgkmbHQ7cHJlZmVyJmd0OyZsdDtmYW1pbHkmZ3Q7Q291cmllciBOZXcmbHQ7L2ZhbWlseSZndDsmbHQ7L3ByZWZlciZndDsKCSZsdDtkZWZhdWx0Jmd0OyZsdDtmYW1pbHkmZ3Q7bW9ub3NwYWNlJmx0Oy9mYW1pbHkmZ3Q7Jmx0Oy9kZWZhdWx0Jmd0OwombHQ7L2FsaWFzJmd0OwoKJmx0OyEtLQoJUHJvdmlkZSByZXF1aXJlZCBhbGlhc2VzIGZvciBzdGFuZGFyZCBuYW1lcwoJRG8gdGhlc2UgYWZ0ZXIgdGhlIHVzZXJzIGNvbmZpZ3VyYXRpb24gZmlsZSBzbyB0aGF0CglhbnkgYWxpYXNlcyB0aGVyZSBhcmUgdXNlZCBwcmVmZXJlbnRpYWxseQotLSZndDsKJmx0O2FsaWFzJmd0OwoJJmx0O2ZhbWlseSZndDtzZXJpZiZsdDsvZmFtaWx5Jmd0OwoJJmx0O3ByZWZlciZndDsmbHQ7ZmFtaWx5Jmd0O1RpbWVzIE5ldyBSb21hbiZsdDsvZmFtaWx5Jmd0OyZsdDsvcHJlZmVyJmd0OwombHQ7L2FsaWFzJmd0OwombHQ7YWxpYXMmZ3Q7CgkmbHQ7ZmFtaWx5Jmd0O3NhbnMmbHQ7L2ZhbWlseSZndDsKCSZsdDtwcmVmZXImZ3Q7Jmx0O2ZhbWlseSZndDtWZXJkYW5hJmx0Oy9mYW1pbHkmZ3Q7Jmx0Oy9wcmVmZXImZ3Q7CiZsdDsvYWxpYXMmZ3Q7CiZsdDthbGlhcyZndDsKCSZsdDtmYW1pbHkmZ3Q7bW9ub3NwYWNlJmx0Oy9mYW1pbHkmZ3Q7CgkmbHQ7cHJlZmVyJmd0OyZsdDtmYW1pbHkmZ3Q7QW5kYWxlIE1vbm8mbHQ7L2ZhbWlseSZndDsmbHQ7L3ByZWZlciZndDsKJmx0Oy9hbGlhcyZndDsKJmx0Oy9mb250Y29uZmlnJmd0OwogICAgPC9wcm9ncmFtbGlzdGluZz4KICA8L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+VXNlciBjb25maWd1cmF0aW9uIGZpbGU8L3RpdGxlPgogICAgPHBhcmE+ClRoaXMgaXMgYW4gZXhhbXBsZSBvZiBhIHBlci11c2VyIGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IGxpdmVzIGluCn4vLmZvbnRzLmNvbmYKICAgIDwvcGFyYT4KICAgIDxwcm9ncmFtbGlzdGluZz4KJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CiZsdDshRE9DVFlQRSBmb250Y29uZmlnIFNZU1RFTSAiZm9udHMuZHRkIiZndDsKJmx0OyEtLSB+Ly5mb250cy5jb25mIGZvciBwZXItdXNlciBmb250IGNvbmZpZ3VyYXRpb24gLS0mZ3Q7CiZsdDtmb250Y29uZmlnJmd0OwoKJmx0OyEtLQoJUHJpdmF0ZSBmb250IGRpcmVjdG9yeQotLSZndDsKJmx0O2RpciZndDt+L21pc2MvZm9udHMmbHQ7L2RpciZndDsKCiZsdDshLS0KCXVzZSByZ2Igc3ViLXBpeGVsIG9yZGVyaW5nIHRvIGltcHJvdmUgZ2x5cGggYXBwZWFyYW5jZSBvbgoJTENEIHNjcmVlbnMuICBDaGFuZ2VzIGFmZmVjdGluZyByZW5kZXJpbmcsIGJ1dCBub3QgbWF0Y2hpbmcKCXNob3VsZCBhbHdheXMgdXNlIHRhcmdldD0iZm9udCIuCi0tJmd0OwombHQ7bWF0Y2ggdGFyZ2V0PSJmb250IiZndDsKCSZsdDtlZGl0IG5hbWU9InJnYmEiIG1vZGU9ImFzc2lnbiImZ3Q7Jmx0O2NvbnN0Jmd0O3JnYiZsdDsvY29uc3QmZ3Q7Jmx0Oy9lZGl0Jmd0OwombHQ7L21hdGNoJmd0OwombHQ7L2ZvbnRjb25maWcmZ3Q7CiAgICA8L3Byb2dyYW1saXN0aW5nPgogIDwvcmVmc2VjdDI+CjwvcmVmc2VjdDE+CjxyZWZzZWN0MT48dGl0bGU+RmlsZXM8L3RpdGxlPgogIDxwYXJhPgo8ZW1waGFzaXM+Zm9udHMuY29uZjwvZW1waGFzaXM+CmNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBmb250Y29uZmlnIGxpYnJhcnkKY29uc2lzdGluZyBvZiBkaXJlY3RvcmllcyB0byBsb29rIGF0IGZvciBmb250IGluZm9ybWF0aW9uIGFzIHdlbGwgYXMKaW5zdHJ1Y3Rpb25zIG9uIGVkaXRpbmcgcHJvZ3JhbSBzcGVjaWZpZWQgZm9udCBwYXR0ZXJucyBiZWZvcmUgYXR0ZW1wdGluZyB0bwptYXRjaCB0aGUgYXZhaWxhYmxlIGZvbnRzLiAgSXQgaXMgaW4geG1sIGZvcm1hdC4KICA8L3BhcmE+CiAgPHBhcmE+CjxlbXBoYXNpcz5mb250cy5kdGQ8L2VtcGhhc2lzPgppcyBhIERURCB0aGF0IGRlc2NyaWJlcyB0aGUgZm9ybWF0IG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLgogIDwvcGFyYT4KICA8cGFyYT4KPGVtcGhhc2lzPn4vLmZvbnRzLmNvbmY8L2VtcGhhc2lzPgppcyB0aGUgY29udmVudGlvbmFsIGxvY2F0aW9uIGZvciBwZXItdXNlciBmb250IGNvbmZpZ3VyYXRpb24sIGFsdGhvdWdoIHRoZQphY3R1YWwgbG9jYXRpb24gaXMgc3BlY2lmaWVkIGluIHRoZSBnbG9iYWwgZm9udHMuY29uZiBmaWxlLgogIDwvcGFyYT4KICA8cGFyYT4KPGVtcGhhc2lzPiB+Ly5mb250cy5jYWNoZS0qPC9lbXBoYXNpcz4KaXMgdGhlIGNvbnZlbnRpb25hbCByZXBvc2l0b3J5IG9mIGZvbnQgaW5mb3JtYXRpb24gdGhhdCBpc24ndCBmb3VuZCBpbiB0aGUKcGVyLWRpcmVjdG9yeSBjYWNoZXMuICBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBtYWludGFpbmVkIGJ5IGZvbnRjb25maWcuCiAgPC9wYXJhPgo8L3JlZnNlY3QxPgo8cmVmc2VjdDE+PHRpdGxlPlZlcnNpb248L3RpdGxlPgoJICAgIDxwYXJhPgpGb250Y29uZmlnIHZlcnNpb24gJnZlcnNpb247CgkgICAgPC9wYXJhPgo8L3JlZnNlY3QxPgo8L3JlZmVudHJ5Pgo=