MIME-Version: 1.0 Content-type: multipart/mixed; boundary="simple boundary" This is MIME archive file ktfc0d5.64. Copyright (C) Peter Lyall Easthope, 2000. All rights reserved. Apply a MIME base64 decoder. MIME en/decoding programs are available for all operating systems in current use. In MS-DOS, MIME64 written by Karl Hahn will work. Search for mime64b.zip on the Web. After extracting the files, mime64 will report "No MIME base64 lines found in ktfc0d5.64". Don't worry about this message. --simple boundary Content-type: text/plain; charset=us-ascii; name="readme.kfc" Content-Disposition: inline; filename="readme.kfc" Content-Transfer-Encoding: base64 VGhpcyBpcyBmaWxlIHJlYWRtZS5rZmMgdG8gYWNjb21wYW55IEtURkMgdmVyc2lv biAwLjUuIA0KDQpLVEZDIGlzIHRoZSBhY3JvbnltIGZvciAiS2VybWl0IFRvIEZp cnN0Q2xhc3MiIGFuZCBpcyB0aGUgbmFtZQ0Kb2YgYSBzY3JpcHQgc2V0IHdoaWNo IGFsbG93cyBLZXJtaXQgdG8gY29tbXVuaWNhdGUgYXV0b21hdGljYWxseQ0Kd2l0 aCB0aGUgRmlyc3RDbGFzcyBTZXJ2ZXIgKHRyYWRlbWFyayBTb2Z0QXJjIEluYy4p LCB3aWRlbHkgdXNlZA0KdG8gcHJvdmlkZSBlLW1haWwgYW5kIEJCUyBzZXJ2aWNl cy4gIFdpdGggS1RGQywgbWVzc2FnZXMgYXJlDQpyZWFkIGFuZCBjb21wb3NlZCBv ZmYgbGluZS4gIE1lc3NhZ2VzIGluIGNvbmZlcmVuY2VzIG9uIHRoZQ0KRmlyc3RD bGFzcyBzZXJ2ZXIgY2FuIGJlIHJlYWQgYXV0b21hdGljYWxseS4NCg0KS1RGQyAw LjUgcmVxdWlyZXMgTVMtRE9TIEtlcm1pdCAzLjEuNiBvciBsYXRlci4gIFBvdGVu dGlhbGx5LA0KS1RGQyBjYW4gd29yayB3aXRoIGFueSBLZXJtaXQgd2hpY2ggaGFz IHNjcmlwdCBwcm9jZXNzaW5nIGFzDQpnb29kIGFzIE1TLURPUyBLZXJtaXQgMy4x LjYuICBMZWFybiBhYm91dCBLZXJtaXQgZnJvbQ0KaHR0cDovL3d3dy5jYy5jb2x1 bWJpYS5lZHUva2VybWl0Ly4NCiAgDQpLVEZDIDAuNSBoYXMgYmVlbiB0ZXN0ZWQg d2l0aCBGaXJzdENsYXNzIFNlcnZlciB2ZXJzaW9uIDMuNS4yLg0KDQpJbnN0YWxs YXRpb24NCg0KQ29weSB0aGUgNiBmaWxlcywgZGF0ZWZpbDAuNSwga3RmYzBkNS50 eHQsIG1haWxvdXQsIHByb2xvZzAuNSwNCnNjYW4wLjUgYW5kIHNyMC41IHRvIHlv dXIgS2VybWl0IGRpcmVjdG9yeS4NCg0Ka3RmYzBkNS50eHQgY29udGFpbnMgZXh0 ZW5zaXZlIGRldGFpbGVkIGluc3RydWN0aW9ucy4gIFJlYWQgaXQNCndpdGggYW55 IGVkaXRvci4gIEVESVQgaXMgYSBnb29kIGNob2ljZSBpbiBNUy1ET1MuDQoNCkFs dGVybmF0aXZlbHksIGNvcHkgdGhlIE1JTUUgYXJjaGl2ZSwga3RmYzBkNS42NCwg dG8geW91ciBLZXJtaXQgDQpkaXJlY3RvcnkgYW5kIGRlY29kZSBpdC4gIElmIHlv dSBoYXZlIGt0ZmMwZDUuNjQgb24gYSBkaXNrZXR0ZSANCmluIHRoZSBBOiBkcml2 ZSBhbmQgdGhlIEtlcm1pdCBkaXJlY3RvcnkgaXMgYzpcdXRpbFxrZXJtaXQgdHlw ZSANCnRoaXMuDQoNCmNvcHkgYTpca3RmYzBkNS42NCBjOlx1dGlsXGtlcm1pdDxl bnRlcj4NCg0KTW92ZSB0byB0aGUgS2VybWl0IGRpcmVjdG9yeS4gIEluIG91ciBl eGFtcGxlIHR5cGUgdGhpcy4NCg0KY2QgYzpcdXRpbFxrZXJtaXQ8ZW50ZXI+DQoN CkV4cGFuZCB0aGUgYXJjaGl2ZSB1c2luZyBhIE1JTUUgYmFzZTY0IGRlY29kZXIu ICBNSU1FIA0KZW4vZGVjb2RpbmcgcHJvZ3JhbXMgYXJlIGF2YWlsYWJsZSBmb3Ig YWxsIG9wZXJhdGluZyBzeXN0ZW1zIGluIA0KY3VycmVudCB1c2UuICBJbiBNUy1E T1MsIE1JTUU2NCB3cml0dGVuIGJ5IEthcmwgSGFobiB3aWxsIHdvcmsuICANClNl YXJjaCBmb3IgbWltZTY0Yi56aXAgb24gdGhlIFdlYi4gIElmIG1pbWU2NC5leGUg aXMgaW4gdGhlDQpcbWltZSBkaXJlY3RvcnkgdHlwZSB0aGlzIHRvIGV4cGFuZCB0 aGUgS1RGQyBhcmNoaXZlLg0KDQpcbWltZVxtaW1lNjQga3RmYzBkNS42NDxlbnRl cj4NCg0KVGhlIDYgZmlsZXMgcGx1cyB0aGlzIHJlYWRtZS5rZmMgd2lsbCBiZSBw cm9kdWNlZC4gIEFmdGVyDQpleHRyYWN0aW5nIHRoZSBmaWxlcywgbWltZTY0IHdp bGwgcmVwb3J0ICJObyBNSU1FIGJhc2U2NCBsaW5lcw0KZm91bmQgaW4ga3RmYzBk NS42NCIuICBEb24ndCB3b3JyeSBhYm91dCB0aGlzIG1lc3NhZ2UuDQoNCklmIHVz aW5nIGt0ZmMwZDUuemlwIGZvbGxvdyB0aGUgYW5hbG9nb3VzIHByb2NlZHVyZS4g IFVucGFjayB0aGUNCmFyY2hpdmUgd2l0aCBwa3VuemlwLmV4ZSB3aGljaCBpcyBy ZWFkaWx5IGF2YWlsYWJsZSBmcm9tIEJCUyBhbmQNCkludGVybmV0IHNlcnZlcnMu DQo= --simple boundary Content-type: application; charset=us-ascii; name="datefil0.5" Content-Disposition: inline; filename="datefil0.5" Content-Transfer-Encoding: base64 OyBGaWxlIGRhdGVmaWwwLjUsIGNvcHlyaWdodCAoQykgUGV0ZXIgTHlhbGwgRWFz dGhvcGUsIDIwMDAuDQo7IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo7DQo7IFRoaXMg S2VybWl0IHNjcmlwdCBkZXRlcm1pbmVzIHRoZSBuYW1lIG9mIGEgZmlsZSBhY2Nv cmRpbmcgdG8gdGhlIA0KOyBjdXJyZW50IGRhdGUuICBJZiB0aGUgZmlsZSBkb2Vz IG5vdCBleGlzdCwgb25lIGlzIGNyZWF0ZWQgYW5kIA0KOyBpbml0aWFsIHRleHQg aXMgcGxhY2VkIGluIGl0LiAgRmluYWxseSBhIERPUyBiYXRjaCBmaWxlIGNvbnRh aW5pbmcgDQo7IG9uZSBsaW5lLCB3aGljaCBvcGVucyBFRElUIG9uIHRoZSBkYXRl LW5hbWVkIGZpbGUsIGlzIGNyZWF0ZWQuDQo7DQplY2hvIHtCZWdpbm5pbmcgZGF0 ZWZpbH0NCmRlZiBJbml0T3V0IHsNCiAgb3BlbiB3cml0ZSBcdihuZGF0ZSkub3V0 DQogIHhpZiBmYWlsdXJlIHsNCiAgICBlY2hvIHtDYW4ndCBvcGVuIGVkaXRkYXRl LmJhdH0NCiAgICBlY2hvIHt9DQogICAgZXhpdA0KICB9DQogIHdyaXRlbG4gZmls ZSB7VG86IHBldGVyX2Vhc3Rob3BlQGd1bGZuZXQucGluYy5jb219DQogIHdyaXRl bG4gZmlsZSB7U3ViamVjdDogfQ0KICB3cml0ZWxuIGZpbGUgeyAgfQ0KICB3cml0 ZWxuIGZpbGUgeyoqRW5kT2ZNc2cqKn0NCiAgd3JpdGVsbiBmaWxlIHsqKkVuZE9m TXNnKip9DQogIGNsb3NlIHdyaXRlLWZpbGUNCn0NCg0KaWYgbm90IGV4aXN0IHtc dihuZGF0ZSkub3V0fSBJbml0T3V0DQoNCjsgTWFrZSBhIERPUyBiYXRjaCBmaWxl IHdpdGggYSBjb21tYW5kIHRvIGVkaXQgdGhlIA0KOyB5eXl5bW1kZC5vdXQgZmls ZS4NCm9wZW4gd3JpdGUgZWRpdGRhdGUuYmF0DQp4aWYgZmFpbHVyZSB7DQogIGVj aG8ge0Nhbid0IG9wZW4gZWRpdGRhdGUuYmF0fQ0KICBlY2hvIHt9DQogIGV4aXQN Cn0NCndyaXRlbG4gZmlsZSB7ZWRpdCBcdihuZGF0ZSkub3V0fQ0KY2xvc2Ugd3Jp dGUtZmlsZQ0KZXhpdA0K --simple boundary Content-type: text/plain; charset=us-ascii; name="ktfc0d5.txt" Content-Disposition: inline; filename="ktfc0d5.txt" Content-Transfer-Encoding: base64 RmlsZSBrdGZjMGQ1LnR4dCwgY29weXJpZ2h0IChDKSBQZXRlciBMeWFsbCBFYXN0 aG9wZSwgMjAwMC4NCkFsbCByaWdodHMgcmVzZXJ2ZWQuDQoNCioqIENvbnRlbnRz DQoNCldoYXQgaXMgaXQ/DQpCZW5lZml0cyBvZiB1c2luZyBLVEZDDQpEaXNjbGFp bWVyDQpSZXF1aXJlbWVudHMNCldoYXQgaXMgaW4gdGhlIHBhY2thZ2U/DQpIb3cg ZG8gSSBnZXQgS1RGQz8NCkluc3RhbGxhdGlvbg0KVXNlciBDb25maWd1cmF0aW9u DQpTZW5kaW5nIGEgbWVzc2FnZQ0KUmVjZWl2aW5nIGEgbWVzc2FnZQ0KU2lnbmF0 dXJlIExpbmVzDQpTZXJpYWwgUG9ydCBQcm9ibGVtcw0KVGlkeWluZyB0aGUgTWFp bGJveA0KU2Nhbm5pbmcgT3RoZXIgQ29uZmVyZW5jZXMNCkF1dG9tYXRlZCBTdGFy dHVwDQpGQVFzDQpTeXN0ZW0gU3BlY2lmaWMgTm90ZXMNCiAgIE1hY2ludG9zaA0K ICAgTWljcm9zb2Z0IFdpbmRvd3MNCiAgIE1TLURPUw0KICAgT2Jlcm9uDQogICBV bml4ZXMgYW5kIG90aGVyIHN5c3RlbXMgcnVubmluZyBDLUtlcm1pdA0KQnVncyAN CkxpbWl0YXRpb25zDQpTdXBwb3J0DQpSZWZlcmVuY2VzDQpDb25kaXRpb25zIG9m IFVzZQ0KRmVlDQpSZWdpc3RyYXRpb24NClRoYW5rcw0KSGlzdG9yeQ0KVHJhZGVt YXJrcw0KDQoqKiBXaGF0IGlzIGl0Pw0KDQpLVEZDIGlzIHRoZSBhY3JvbnltIGZv ciAiS2VybWl0IFRvIEZpcnN0Q2xhc3MiLiAgU2VlIHJlZmVyZW5jZXMgDQoxIGFu ZCAyIGJlbG93LiAgS1RGQyBpcyBhbHNvIHRoZSBuYW1lIG9mIGEgc2NyaXB0IHNl dCB3aGljaCANCmFsbG93cyBLZXJtaXQgdG8gY29tbXVuaWNhdGUgYXV0b21hdGlj YWxseSB3aXRoIGEgRmlyc3RDbGFzcyANClNlcnZlci4NCg0KKiogQmVuZWZpdHMg b2YgdXNpbmcgS1RGQw0KDQotIEtlcm1pdCB3b3JrcyBvbiBtYW55IHN5c3RlbXMg aW5jbHVkaW5nIE1TLURPUywgTVMgV2luZG93cyANCiAgYW5kIHVuaXhlcy4gIEtU RkMgaGFzIHRoZSBwb3RlbnRpYWwgdG8gd29yayB3aXRoIGFueSBLZXJtaXQgDQog IHdoaWNoIGhhcyBzY3JpcHQgcHJvY2Vzc2luZyBhdCBsZWFzdCBhcyBnb29kIGFz IE1TLURPUyBLZXJtaXQgDQogIDMuMS42LiAgU2VlIFN5c3RlbSBTcGVjaWZpYyBO b3RlcyBhbmQgcmVmZXJlbmNlIDEuDQotIE1lc3NhZ2VzIGFyZSByZWFkIGFuZCBj b21wb3NlZCBvZmYgbGluZSB1c2luZyBhIHRleHQgZWRpdG9yLg0KLSBPcHRpb25z IGZvciB1c2VyIGNvbmZpZ3VyYXRpb24gYXJlIHNldCBieSBzd2l0Y2hlcyB3aGlj aCBhcmUgDQogIGVhc2lseSBjaGFuZ2VkIHdpdGggYSB0ZXh0IGVkaXRvci4NCi0g U2lnbmF0dXJlIGxpbmVzIGNhbiBiZSBhcHBlbmRlZCB0byBhIG1lc3NhZ2UgYXV0 b21hdGljYWxseS4NCi0gVXNlciBjb25maXJtYXRpb24gYmVmb3JlIHNlbmRpbmcg YSBtZXNzYWdlIGFuZCBiZWZvcmUgZGVsZXRpbmcgDQogIGFuIG9sZCBtZXNzYWdl IGZyb20gdGhlIHNlcnZlciBpcyBvcHRpb25hbC4NCi0gTWVzc2FnZXMgY2FuIGJl IHJlYWQgZnJvbSBkaXJlY3RvcmllcyBvdGhlciB0aGFuIHRoZSANCiAgTWFpbGJv eC0tLWEgZGlyZWN0b3J5IGluIE9uZU5ldCBmb3IgZXhhbXBsZS4NCi0gVGhlIEtU RkMgc2NyaXB0cyBpbiB0aGVpciBlbnRpcmV0eSBhcmUgYWNjZXNzaWJsZSB0byB1 c2VyIA0KICBjdXN0b21pemF0aW9uLg0KDQoqKiBEaXNjbGFpbWVyDQoNClRoaXMg c29mdHdhcmUgaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGV4cHJlc3Mgb3Ig aW1wbGllZCANCndhcnJhbnR5Lg0KDQpUaGUgYXV0aG9yIGRpc2NsYWltcyBhbGwg d2FycmFudGllcyB3aXRoIHJlZ2FyZCB0byB0aGlzIA0Kc29mdHdhcmUsIGluY2x1 ZGluZyBhbGwgaW1wbGllZCB3YXJyYW50aWVzIG9mIG1lcmNoYW50YWJpbGl0eSAN CmFuZCBmaXRuZXNzLiAgSW4gbm8gZXZlbnQgc2hhbGwgdGhlIGF1dGhvciBiZSBs aWFibGUgZm9yIGFueSANCnNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRp YWwgZGFtYWdlcyBvciBhbnkgZGFtYWdlcyANCndoYXRzb2V2ZXIgcmVzdWx0aW5n IGZyb20gbG9zcyBvZiB1c2UsIGRhdGEgb3IgcHJvZml0cywgd2hldGhlciANCmlu IGFuIGFjdGlvbiBvZiBjb250cmFjdCwgbmVnbGlnZW5jZSBvciBvdGhlciB0b3J0 aW91cyBhY3Rpb24sIA0KYXJpc2luZyBvdXQgb2Ygb3IgaW4gY29ubmVjdGlvbiB3 aXRoIHRoZSB1c2Ugb3IgcGVyZm9ybWFuY2Ugb2YgDQp0aGlzIHNvZnR3YXJlLg0K DQpUaGUgYXV0aG9yIG1heSBjaGFuZ2UgdGhlIHNvZnR3YXJlIGFuZCBkb2N1bWVu dGF0aW9uIGFuZCBpc3N1ZSBhIA0KcmV2aXNpb24gYXQgYW55IHRpbWUgd2l0aG91 dCBwcmlvciBub3RpY2UuDQoNCioqIFJlcXVpcmVtZW50cw0KDQpLVEZDIGhhcyBi ZWVuIHRlc3RlZCB3aXRoIE1TLURPUyBLZXJtaXQgMy4xLjYgYW5kIEZpcnN0Q2xh c3MgDQpTZXJ2ZXIgMy41LjIuICBLZXJtaXQgaXMgYXZhaWxhYmxlIGZvciBtYW55 IG9wZXJhdGluZyBzeXN0ZW1zLiAgDQpTZWUgcmVmZXJlbmNlIDEgYW5kIFN5c3Rl bSBTcGVjaWZpYyBOb3Rlcy4NCg0KSW5zdGFsbGF0aW9uIGFuZCB1c2Ugb2YgS2Vy bWl0IGFuZCBLVEZDIHJlcXVpcmUgYW4gZWRpdG9yLiAgSW4gDQpET1MsIEVESVQg aXMgcmVjb21tZW5kZWQuICBWYXJpb3VzIHRleHQgcHJvY2Vzc29ycyBjYW4gYWxz byBiZSANCnVzZWQuICBUaGUgdmkgYW5kIGVtYWNzIGVkaXRvcnMgYXJlIGNvbW1v bmx5IHVzZWQgaW4gdW5peCANCnN5c3RlbXMuDQoNCkJlZm9yZSBhdHRlbXB0aW5n IHRvIGluc3RhbGwgS1RGQyB0aGUgdXNlciBzaG91bGQgaW5zdGFsbCBLZXJtaXQg DQphbmQgY29uZmlndXJlIGl0IHNvIHRoYXQgY29tbXVuaWNhdGlvbiBjYW4gYmUg ZXN0YWJsaXNoZWQgd2l0aCBhIA0KRmlyc3RDbGFzcyBzZXJ2ZXIuICBVc2luZyB0 aGUgdGVybWluYWwgZW11bGF0b3IgaW4gS2VybWl0LCB0aGUgDQp1c2VyIHNob3Vs ZCBiZSBhYmxlIHRvIGxvZyBpbiB0byB0aGUgc2VydmVyIGFuZCB0byByZWFkIGFu ZCBzZW5kIA0KbWFpbCBpbnRlcmFjdGl2ZWx5LiAgVG8gYWxsb3cgdGhlIDxkZWxl dGU+IGtleSBvbiBhIFBDIHRvIA0KcHJvZHVjZSBhIGJhY2tzcGFjZSBpbiB0aGUg RkMgU2VydmVyIHRhc2ssIHRoZSBLZXJtaXQgY29tbWFuZCANCiJzZXQga2V5IFwy NzAgXDgiIHNob3VsZCBiZSBpc3N1ZWQtLS11c3VhbGx5IGluIHRoZSBNU0NVU1RP TS5JTkkgDQpvciAua2VybXJjIGZpbGUuDQoNCioqIFdoYXQgaXMgaW4gdGhlIHBh Y2thZ2U/DQoNClRoZSBLVEZDIHZlcnNpb24gMC41IHBhY2thZ2UgY29tcHJpc2Vz IHRoZXNlIDcgZmlsZXMuICBFYWNoIGZpbGUgDQpjb250YWlucyBwbGFpbiB0ZXh0 Lg0KDQpkYXRlZmlsMC41ICBBbiBhdXhpbGlhcnkgc2NyaXB0OyBzZWUgQXV0b21h dGVkIFN0YXJ0dXAgYmVsb3cuDQoNCmt0ZmMwZDUudHh0IFRoaXMgZmlsZS4NCg0K bWFpbG91dCAgICAgRmlsZSB3aGVyZSBvdXRnb2luZyBtZXNzYWdlcyBhcmUgcXVl dWVkLg0KDQpwcm9sb2cwLjUgICBUaGUgc2NyaXB0IGNvbnRhaW5pbmcgdGhlIHVz ZXIgY29uZmlndXJhdGlvbiwgdGhlIA0KCQkJbG9naW4gY29kZSBhbmQgb3RoZXIg cHJvY2VkdXJlcyB1c2VkIGJ5IHNjYW4gYW5kIHNyLg0KDQpyZWFkbWUua2ZjICBB IGJyaWVmIGRlc2NyaXB0aW9uIG9mIHRoZSBwYWNrYWdlLg0KDQpzY2FuMC41ICAg ICBUaGUgc2NyaXB0IHdoaWNoIHJlYWRzIHRoZSBtYWlsYm94LCBkZWxldGVzIG91 dGRhdGVkIA0KCQkJbWVzc2FnZXMgZnJvbSB0aGUgRkMgc2VydmVyIGFuZCByZWFk cyBkaXJlY3RvcmllcyANCgkJCW90aGVyIHRoYW4gdGhlIG1haWxib3guDQoNCnNy MC41ICAgICAgIFRoZSBzY3JpcHQgZm9yIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBt ZXNzYWdlcy4NCg0KVGhlIHZlcnNpb24gbnVtYmVyIG0ubiBpcyByZWFsLiAgSW4g dGhlIGZvbGxvd2luZyBkaXNjdXNzaW9ucw0KdGhlIHZlcnNpb24gbnVtYmVyIGlz IG9taXR0ZWQgZnJvbSB0aGUgZmlsZSBuYW1lLiAgVGh1cywgYQ0KbWVudGlvbiBv ZiB0aGUgZmlsZSBuYW1lIHByb2xvZyBpcyByZWFsbHkgYSByZWZlcmVuY2UgdG8g dGhlDQpmaWxlIHByb2xvZzAuNS4NCg0KKiogSG93IGRvIEkgZ2V0IEtURkM/DQoN CktURkMgbWlnaHQgYmUgZm91bmQgb24gYW4gSW50ZXJuZXQgc2VydmVyIG9yIG9u IHlvdXIgRmlyc3RDbGFzcyANCnNlcnZlci4NCg0KSWYgeW91IGZpbmQgdGhlIDcg ZmlsZXMgb24gYSBmdHAgb3IgaWtzZCBzZXJ2ZXIgdHJhbnNmZXIgdGhlbSB0byAN CnlvdXIgS2VybWl0IGRpcmVjdG9yeS4gIElmIGJpbmFyeSBtb2RlIGlzIHVzZWQg Zm9yIHRoZSB0cmFuc2ZlciwgDQp0aGUgZmlsZXMgd2lsbCBiZSByZWNlaXZlZCBv biB5b3VyIG1hY2hpbmUgd2l0aCB0aGUgZW5kLW9mLWxpbmUgDQpub3RhdGlvbiB0 aGF0IHRoZXkgaGF2ZSBvbiB0aGUgc2VydmVyLiAgSWYgdGV4dCBtb2RlIGlzIHVz ZWQgZm9yIA0KdGhlIHRyYW5zZmVyLCB0aGUgZW5kLW9mLWxpbmUgbm90YXRpb24g d2lsbCBiZSB0cmFuc2xhdGVkIGZyb20gDQp0aGF0IG9uIHRoZSBzZXJ2ZXIgdG8g dGhhdCB1c2VkIGluIHlvdXIgc3lzdGVtLiAgVGV4dCBtb2RlIGlzIA0KYXBwcm9w cmlhdGUsIGZvciBleGFtcGxlLCBpZiB1bml4IGZpbGVzIGFyZSBicm91Z2h0IHRv IGEgTVMgDQpXaW5kb3dzIG1hY2hpbmUuICBWYXJpb3VzIHV0aWxpdGllcyBhbmQg ZWRpdG9yIGNhcGFiaWxpdGllcyBjYW4gDQphbHNvIHRyYW5zbGF0ZSBlbmQtb2Yt bGluZSBub3RhdGlvbnMuDQoNCkFsdGVybmF0aXZlbHksIGdldCB0aGUgTUlNRSBm aWxlIGt0ZmMwZDUuNjQuICBUaGlzIGlzIGEgdGV4dA0KZmlsZSB3aGljaCBjYW4g YmUgdHJhbnNtaXR0ZWQgaW4gYW4gZS1tYWlsIG1lc3NhZ2UuICAwZDUNCnJlcHJl c2VudHMgdGhlIHZlcnNpb24gbnVtYmVyIDAuNS4gIFRoZSAuNjQgZXh0ZW5zaW9u IG9uIHRoZQ0KZmlsZSBuYW1lIHJlZmVycyB0byBNSU1FIGJhc2U2NCBlbmNvZGlu Zy4gIFRyYW5zZmVyIHRoaXMgZmlsZSB0bw0KeW91ciBLZXJtaXQgZGlyZWN0b3J5 IGluIHRleHQgbW9kZSBpZiB5b3Ugd2lzaCB0byB1c2UgaXQuDQoNCkFsdGVybmF0 aXZlbHksIGdldCB0aGUgWklQIGZpbGUga3RmYzBkNS56aXAuICBUcmFuc2ZlciB0 aGlzIGZpbGUNCnRvIHlvdXIgS2VybWl0IGRpcmVjdG9yeSBpbiBiaW5hcnkgbW9k ZSBpZiB5b3Ugd2lzaCB0byB1c2UgaXQuDQoNCioqIEluc3RhbGxhdGlvbg0KDQpU aGUgb2JqZWN0aXZlIG9mIGluc3RhbGxhdGlvbiBpcyBzaW1wbHkgdG8gaGF2ZSB0 aGUgNyBmaWxlcyBvZiANCnRoZSBLVEZDIHBhY2thZ2UgaW4gdGhlIEtlcm1pdCBk aXJlY3Rvcnkgd2l0aCB0aGUgY29ycmVjdCANCmVuZC1vZi1saW5lIG5vdGF0aW9u IGZvciB0aGUgc3lzdGVtLiAgVGhlc2UgYXJlIGEgZmV3IHN5c3RlbSANCnNwZWNp ZmljIG5vdGVzLg0KDQoqKiogTVMtRE9TDQoNClRoaXMgaXMgdGhlIHByb2NlZHVy ZSBmb3IgZXh0cmFjdGluZyB0aGUgZmlsZXMgZnJvbSB0aGUgTUlNRSANCmFyY2hp dmUgaW4gTVMtRE9TLg0KDQpJZiBrdGZjMGQ1LjY0IGlzIG9uIGEgZGlza2V0dGUg aW4gdGhlIGE6IGRyaXZlIGFuZCB0aGUgS2VybWl0IA0KZGlyZWN0b3J5IGlzIGM6 XHV0aWxca2VybWl0IHR5cGUgdGhpcy4NCg0KY29weSBhOlxrdGZjMGQ1LjY0IGM6 XHV0aWxca2VybWl0PGVudGVyPg0KDQpNb3ZlIHRvIHRoZSBLZXJtaXQgZGlyZWN0 b3J5LiAgSW4gb3VyIGV4YW1wbGUgdHlwZSB0aGlzLg0KDQpjZCBjOlx1dGlsXGtl cm1pdDxlbnRlcj4NCg0KRXhwYW5kIHRoZSBhcmNoaXZlIHVzaW5nIGEgTUlNRSBi YXNlNjQgZGVjb2Rlci4gIE1JTUUgDQplbi9kZWNvZGluZyBwcm9ncmFtcyBhcmUg YXZhaWxhYmxlIGZvciBhbGwgb3BlcmF0aW5nIHN5c3RlbXMgaW4gDQpjdXJyZW50 IHVzZS4gIEluIE1TLURPUyBJIHVzZSBNSU1FNjQgd3JpdHRlbiBieSBLYXJsIEhh aG4uICANClNlYXJjaCBmb3IgbWltZTY0Yi56aXAgb24gdGhlIFdlYi4gIElmIG1p bWU2NC5leGUgaXMgaW4gdGhlDQpcbWltZSBkaXJlY3RvcnkgdHlwZSB0aGlzIHRv IGV4cGFuZCB0aGUgS1RGQyBhcmNoaXZlLg0KDQpcbWltZVxtaW1lNjQga3RmYzBk NS42NDxlbnRlcj4NCg0KVGhlIDYgZmlsZXMgcGx1cyB0aGlzIHJlYWRtZS5rZmMg d2lsbCBiZSBwcm9kdWNlZC4gIEFmdGVyDQpleHRyYWN0aW5nIHRoZSBmaWxlcywg bWltZTY0IHdpbGwgcmVwb3J0ICJObyBNSU1FIGJhc2U2NCBsaW5lcw0KZm91bmQg aW4ga3RmYzBkNS42NCIuICBEb24ndCB3b3JyeSBhYm91dCB0aGlzIG1lc3NhZ2Uu DQoNCklmIHVzaW5nIGt0ZmMwZDUuemlwIGZvbGxvdyB0aGUgYW5hbG9nb3VzIHBy b2NlZHVyZS4gIFVucGFjayB0aGUNCmFyY2hpdmUgd2l0aCBwa3VuemlwLmV4ZSB3 aGljaCBpcyByZWFkaWx5IGF2YWlsYWJsZSBmcm9tIEJCUyBhbmQNCkludGVybmV0 IHNlcnZlcnMuDQoNCioqKiBNYWNpbnRvc2gNCg0KQXMgb2YgZWFybHkgMTk5OSwg ZGV2ZWxvcG1lbnQgb2YgTWFjIEtlcm1pdCB3YXMgbm90IGtlZXBpbmcgcGFjZQ0K d2l0aCBNUy1ET1MgS2VybWl0IG9yIHdpdGggQy1LZXJtaXQuICBLVEZDIGhhcyBu b3QgYmVlbiB0ZXN0ZWQNCndpdGggTWFjIEtlcm1pdC4gIE1hYyB1c2VycyBzaG91 bGQgY29uc2lkZXIgb25lIG9mIHRoZSBvZmYtbGluZQ0KRmlyc3RDbGFzcyBjbGll bnRzLS0tQnVsa1JhdGUgYnkgR3JlZyBOZWFnbGUgZm9yIGV4YW1wbGUuDQoNCioq KiBNaWNyb3NvZnQgV2luZG93cw0KDQpNUyBXaW5kb3dzIHVzZXJzIHNob3VsZCBh bHNvIGNvbnNpZGVyIHRoZSBPZmZSb2FkIGNsaWVudCB3cml0dGVuIA0KYnkgSGFu cyBIYWlkZXIuDQoNCkkgaGF2ZSBub3QgdGVzdGVkIEtURkMgd2l0aCBLZXJtaXQt OTUgYnV0LCBvZiBjb3Vyc2UsIGFueW9uZSBpcw0Kd2VsY29tZSB0byB0cnkgdGhh dCBjb25maWd1cmF0aW9uLiAgVW50aWwgc3VjY2Vzc2Z1bCB1c2Ugb2YgS1RGQw0K d2l0aCBLZXJtaXQtOTUgaXMgZXN0YWJsaXNoZWQgSSBjYW4gbm90IG9mZmVyIHRo ZSBzYW1lIGxldmVsIG9mDQpzdXBwb3J0IGZvciB0aGF0IGNvbmZpZ3VyYXRpb24g YXMgaXMgcHJvdmlkZWQgZm9yIEtURkMgaW4gdGhlDQpNUy1ET1Mgc3lzdGVtLg0K DQoqKiogVW5peGVzDQoNClRlc3RpbmcgaW4gYSB1bml4IHN5c3RlbSBpcyBvbiBt eSAidG8gZG8iIGxpc3QuICBVbnRpbCB0ZXN0aW5nDQppcyBjb21wbGV0ZWQgSSBj YW4gbm90IG9mZmVyIHRoZSBzYW1lIGxldmVsIG9mIHN1cHBvcnQgZm9yIEtURkMN CmluIGEgdW5peCBzeXN0ZW0gYXMgaXMgcHJvdmlkZWQgZm9yIEtURkMgaW4gdGhl IE1TLURPUyBzeXN0ZW0uIA0KSWYgeW91IHdpc2ggdG8gdHJ5IEtURkMsIGdldCB0 aGUgaW5kaXZpZHVhbCBmaWxlcyBpbiB0ZXh0IG1vZGUuIA0KQWx0ZXJuYXRpdmVs eSwgZ2V0IGt0ZmMwZDUuNjQgb3Iga3RmYzBkNS56aXAsIHVucGFjayB0aGUgYXJj aGl2ZQ0KYW5kIHRyYW5zbGF0ZSB0aGUgZW5kLW9mLWxpbmVzIHVzaW5nIGRvczJ1 bml4IG9yIHRoZSBsaWtlLg0KDQoqKiogT3RoZXIgU3lzdGVtcw0KDQpGaWxlcyBp biB0aGUgLjY0IGFuZCAuemlwIGFyY2hpdmVzIGhhdmUgbGluZXMgZW5kaW5nIGlu DQo8Y3I+PGxmPi4gIFRoZSBlbmQtb2YtbGluZSBub3RhdGlvbiBtYXkgaGF2ZSB0 byBiZSB0cmFuc2xhdGVkDQpmb3IgeW91ciBzeXN0ZW0uICBSZXBvcnRzIG9mIHBy b2JsZW1zIGFuZCBzdWNjZXNzZXMgYXJlIHdlbGNvbWUuDQoNCioqIFVzZXIgQ29u ZmlndXJhdGlvbg0KDQpBcHByb3hpbWF0ZWx5IHRoZSBmaXJzdCA3MCBsaW5lcyBv ZiB0aGUgcHJvbG9nIHNjcmlwdCBpcyB0aGUgDQpVc2VyIENvbmZpZ3VyYXRpb24u ICBUaGlzIGlzIHdoZXJlIHlvdSBzZXQgcGFyYW1ldGVycyBhbmQgDQpzd2l0Y2hl cyBhY2NvcmRpbmcgdG8gZXF1aXBtZW50IGFuZCBwcmVmZXJlbmNlcy4NCg0KT3Bl biBhbiBlZGl0b3Igb24gcHJvbG9nIGFuZCBjaGFuZ2UgdGhlIGxpbmUgInNldCBt b2RlbSBIQVlFUyIgDQphY2NvcmRpbmcgdG8geW91ciBtb2RlbS4gIEluIE1TLURP UywgbW9kZW0gZmlsZXMgYXJlIGluIHRoZSANCm1vZGVtcyBkaXJlY3RvcnkgaW4g eW91ciBLZXJtaXQgZGlyZWN0b3J5LiAgWW91IHNob3VsZCBhbHJlYWR5IA0KaGF2 ZSBhIG1vZGVtIGZpbGUgc3BlY2lmaWVkIGluIHRoZSBNU0NVU1RPTS5JTkkgZmls ZS4NCg0KSWYgeW91ciBtb2RlbSBkb2VzIG5vdCB1c2UgQ09NMiBjaGFuZ2UgdGhl IGxpbmUgInNldCBwb3J0IGNvbTIiIA0KYWNjb3JkaW5nbHkuICBJZiB5b3UgZG8g bm90IGtub3cgd2hpY2ggY29tIHBvcnQgaXMgdXNlZCB0cnkgDQpjb20yLiAgSWYg dGhpcyBmYWlscyBjaGVjayB5b3VyIE1TQ1VTVE9NLklOSSBmaWxlLg0KDQpJbiB0 aGUgbGluZSAiZGVmIF9kaWFsbnVtIHt9IiBpbnNlcnQgdGhlIG51bWJlciBvZiB5 b3VyIEZDIA0Kc2VydmVyIGluc2lkZSB0aGUge30gYnJhY2tldHMuICBQcmVmaXgg dGhlIG51bWJlciB3aXRoIFQgZm9yIA0KdG9uZSBkaWFsaW5nLiAgRm9yIHB1bHNl IGRpYWxpbmcgZ2l2ZSB0aGUgbnVtYmVyIGFsb25lLg0KDQpUbyBhdm9pZCBiZWlu ZyBhc2tlZCBmb3IgeW91ciBVc2VySUQgZXZlcnkgdGltZSB5b3UgbG9nIGluLCAN CmNoYW5nZSB0aGUgbGluZSAiZGVmIEFVIDEiIHRvICJkZWYgQVUgMCIuDQoNClRv IGF2b2lkIGJlaW5nIGFza2VkIGZvciB5b3VyIFBhc3N3b3JkIGV2ZXJ5IHRpbWUg eW91IGxvZyBpbiwgDQpjaGFuZ2UgdGhlIGxpbmUgImRlZiBBUCAxIiB0byAiZGVm IEFQIDAiLg0KDQpJZiBBVSBpcyBkZWZpbmVkIHRvIDAgcmVwbGFjZSAiZ3Vlc3Qi IHdpdGggeW91ciBVc2VySUQuDQoNCklmIEFQIGlzIGRlZmluZWQgdG8gMCByZXBs YWNlICJwbGVhc2UiIHdpdGggeW91ciBQYXNzd29yZC4NCg0KQWRkaXRpb25hbCBj b25maWd1cmF0aW9uIGZlYXR1cmVzIGFyZSBkaXNjdXNzZWQgYXMgRkFRcyBiZWxv dy4NCg0KU2F2ZSBwcm9sb2cuIFF1aXQgdGhlIGVkaXRvci4gIEtURkMgaXMgcmVh ZHkgdG8gdXNlLg0KDQoqKiBTZW5kaW5nIGEgbWVzc2FnZQ0KDQpUaGVzZSBpbnN0 cnVjdGlvbnMgYXNzdW1lIHRoYXQgeW91IGFyZSBpbiB0aGUgS2VybWl0IGRpcmVj dG9yeQ0KYW5kIHRoYXQgS2VybWl0IHdvcmtzLiAgVG8gdmVyaWZ5IHRoYXQgS2Vy bWl0IGlzIHdvcmtpbmcsIGxvZyBpbg0KdG8geW91ciBGaXJzdENsYXNzIHNlcnZl ciBhbmQgc2VuZCBvciByZWFkIGEgbWVzc2FnZQ0KaW50ZXJhY3RpdmVseS4gIFNv bHZlIGFueSBwcm9ibGVtIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHVzZSBLVEZDLg0K DQpVc2luZyBhbiBlZGl0b3IsIGNvbXBvc2Ugb3V0Z29pbmcgbWVzc2FnZXMgaW4g dGhlIGZpbGUgbWFpbG91dA0KKHl5eXltbWRkLm91dCBpZiB0aGUgZGF0ZWQgT3V0 RmlsZSBpcyBjb25maWd1cmVkLiAgRm9yIG1vcmUNCmluZm9ybWF0aW9uIHNlZSAi RkFRcyA+IC4uLiAgSG93IGlzIHRoZSBuYW1lIG9mIHRoZSBvdXRnb2luZw0KZmls ZSBjaGFuZ2VkPyIpLiAgU3ludGF4IGlzIGV4cGxhaW5lZCBiZWxvdy4gIENsb3Nl IHRoZSBlZGl0b3IuIA0KVHlwZSB0aGUgY29tbWFuZCB0byBpbnZva2UgS2VybWl0 IHRvIHByb2Nlc3Mgc3IgYW5kIHN0cmlrZSB0aGUNCjxlbnRlcj4gb3IgPHJldHVy bj4ga2V5LiAgV2l0aCBNUy1ET1MgS2VybWl0IHZlcnNpb24gMy4xLjYgYW5kDQpL VEZDIHZlcnNpb24gMC41LCB0eXBlIHRoaXMuDQoNCm1zazMxNiAtZiBzcjAuNTxl bnRlcj4NCg0KVGhlIEtURkMgdmVyc2lvbiBhbmQgdGhlIGxvZ2luIHByb2Nlc3Mg c2hvdWxkIGJlIHJlcG9ydGVkIG9uIHRoZQ0Kc2NyZWVuLiAgSWYgdGhlIGxvZ2lu IGZhaWxzLCB0cnkgdG8gaWRlbnRpZnkgdGhlIHByb2JsZW0NCnByZWNpc2VseS4g IE9uY2UgYSBwcm9ibGVtIGlzIGlkZW50aWZpZWQgdGhlIHNvbHV0aW9uIG1heSBi ZQ0Kc2ltcGxlLg0KDQpBIHByb21wdCBmb3IgZWFjaCBtZXNzYWdlIGdpdmVzIHRo ZSBvcHBvcnR1bml0eSB0byBhdm9pZCANCnNlbmRpbmcuICBUaGlzIGlzIHVzZWZ1 bCBpZiBhbiBvbGQgbWVzc2FnZSBoYXMgYmVlbiBsZWZ0IGluIHRoZSANCk91dEZp bGUuICBPbmNlIHlvdSBoYXZlIHNlbnQgYSBmZXcgbWVzc2FnZXMgYW5kIGJlY29t ZSBmYW1pbGlhciANCndpdGggS1RGQyB5b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRv IHNodXQgb2ZmIHRoaXMgcHJvbXB0OyBzZWUgDQoiRkFRcyA+IFdoYXQgaXMgdGhl IHB1cnBvc2Ugb2YgdGhlIENTIGZsYWcgLi4uICA/Ig0KDQpBZnRlciBzciBzZW5k cyBhbmQgcmVhZHMgYWxsIHBlbmRpbmcgbWVzc2FnZXMgS2VybWl0IHdpbGwgcXVp dCANCmFuZCB0aGUgcHJvbXB0IGZyb20geW91ciBvcGVyYXRpbmcgc3lzdGVtIHdp bGwgYXBwZWFyLiAgVXNpbmcgDQp0aGUgZWRpdG9yIGFnYWluLCBkZWxldGUgZnJv bSB0aGUgT3V0RmlsZSBhbnkgbWVzc2FnZSB5b3UgZG8gbm90IA0Kd2FudCB0byBz ZW5kIHRoZSBuZXh0IHRpbWUgc3IgaXMgcHJvY2Vzc2VkLiAgQWx0ZXJuYXRpdmVs eSwgb2xkIA0KbWVzc2FnZXMgY2FuIGJlIGxlZnQgaW4gdGhlIE91dEZpbGUgYW5k IHR3byBtZXNzYWdlIHNlcGFyYXRvciANCmxpbmVzIGNhbiBiZSBwbGFjZWQgd2hl cmUgc2VuZGluZyBpcyB0byBzdG9wLiAgc3Igd2lsbCBub3Qgc2VuZCANCm1lc3Nh Z2VzIGluIHRoZSBPdXRGaWxlIHdoaWNoIGZvbGxvdyBhIHBhaXIgb2Ygc2VwYXJh dG9yIGxpbmVzLiAgDQpUaGUgcGFpcmVkIHNlcGFyYXRvcnMgY2FuIGJlIHRoZSBm aXJzdCB0d28gbGluZXMgb2YgdGhlIE91dEZpbGUuDQoNClRoaXMgaXMgdGhlIHN5 bnRheCBvZiB0aGUgT3V0RmlsZS4gIFRoZSBzdG9jayBPdXRGaWxlLCBtYWlsb3V0 LCANCmNvbnRhaW5zIGV4YW1wbGUgbWVzc2FnZXMgd2hpY2ggeW91IGNhbiB1c2Ug YXMgYSB0ZW1wbGF0ZS4gIFRoZSANCmV4YW1wbGUgaXMgYWRkcmVzc2VkIHRvIHRo ZSBhdXRob3I7IHRoZXJlIGlzIG5vIGhhcm0gaW4gc2VuZGluZyANCml0Lg0KDQo9 PT09PT09PT09IHN5bnRheCBvZiB0ZXh0IGluIE91dEZpbGUgPT09PT09PT09PT09 PT09PT09PT09DQo8bWVzc2FnZT4NCns8bWVzc2FnZXNlcGFyYXRvcj5bbl08dGV4 dD4NCls8bWVzc2FnZXNlcGFyYXRvcj48dGV4dD5dDQo8bWVzc2FnZT59DQo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQoNCj09PT09PT09PT09PT09PSBzeW50YXggb2YgPG1lc3NhZ2U+ID09 PT09PT09PT09PT09PT09PT09PT0NCltUbzpdPHJlY2lwaWVudD4NCntbVG86XTxy ZWNpcGllbnQ+fQ0KW0NvcGllczo8Y29weSByZWNpcGllbnQ+DQp7W0NvcGllczpd PGNvcHkgcmVjaXBpZW50Pn1dDQpTdWJqZWN0Ojx0ZXh0Pg0KPG1lc3NhZ2V0ZXh0 Pg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KDQpOb3Rlcy4NCg0KMS4gIExpbmUgYnJlYWtzIG11c3Qg YmUgYXMgc2hvd24uICBGb3IgZXhhbXBsZSwgYSBtZXNzYWdlIGVuZHMgDQphdCB0 aGUgZW5kIG9mIGEgbGluZSBhbmQgYSByZWNpcGllbnQgYWRkcmVzcyBlbmRzIGF0 IHRoZSBlbmQgb2YgDQphIGxpbmUuICBJbiBET1MgdGhlIGVuZC1vZi1saW5lIG5v dGF0aW9uIGlzIDxjcj48bGY+LCBpbiBNYWMgaXQgDQppcyA8Y3I+IGFuZCBpbiB1 bml4IGl0IGlzIDxsZj4uICBJbiBtb3N0IHRleHQgZWRpdG9ycyB0aGUgDQplbmQt b2YtbGluZSBjaGFyYWN0ZXIocykgaXMgKGFyZSkgaW5zZXJ0ZWQgYnkgcHJlc3Np bmcgPGVudGVyPiANCm9yIDxyZXR1cm4+LiAgVGhpcyBwcm9kdWNlcyBhIGxpbmUg YnJlYWsgaW4gYSB0ZXh0IGZpbGUuICANCk90aGVyd2lzZSB0aGUgZW5kLW9mLWxp bmUgY2hhcmFjdGVycyBhcmUgaW52aXNpYmxlLg0KDQpTcXVhcmUgYnJhY2tldHMs IFtdLCBlbmNsb3NlIGEgY29uc3RydWN0IHdoaWNoIGNhbiBvY2N1ciAwIG9yIDEg DQp0aW1lcy4gIEN1cmx5IGJyYWNrZXRzLCB7fSwgZW5jbG9zZSBhIGNvbnN0cnVj dCB3aGljaCBjYW4gb2NjdXIgDQowIG9yIG1vcmUgdGltZXMuICBBIHRlcm0gaW4g cG9pbnRlZCBicmFja2V0cyBhbmQgdGhlIGJyYWNrZXRzLCANCjxyZWNpcGllbnQ+ IGZvciBleGFtcGxlLCBtdXN0IGJlIHJlcGxhY2VkIGJ5IGFwcHJvcHJpYXRlIHRl eHQuICANCk90aGVyIHRleHQsIFN1YmplY3Q6IGZvciBleGFtcGxlLCBtdXN0IGFw cGVhciBqdXN0IGFzIHNob3duLg0KDQo8dGV4dD4gbWF5IGNvbnRhaW4gYW55IG9y ZGluYXJ5IHRleHQgdHlwZWQgd2l0aCBhbiBlZGl0b3IsIA0KZXhjbHVkaW5nIGVu ZC1vZi1saW5lIGNoYXJhY3RlcnMgb2YgY291cnNlLiAgPG1lc3NhZ2V0ZXh0PiBp cyANCmFueSBvcmRpbmFyeSB0ZXh0IGluY2x1ZGluZyBlbmQtb2YtbGluZXMgYW5k IGV4Y2x1ZGluZyB0aGUgDQptZXNzYWdlIHNlcGFyYXRvciBhdCB0aGUgYmVnaW5u aW5nIG9mIGEgbGluZS4NCg0KMi4gIEV2ZXJ5IG1lc3NhZ2UgbXVzdCBoYXZlIHRo ZSBmaXJzdCBsaW5lLiAgDQoNCltUbzpdPHJlY2lwaWVudD4NCiANCjxyZWNpcGll bnQ+IG11c3QgYmUgYSBuYW1lIGluIHRoZSBkaXJlY3Rvcnkgb2YgeW91ciBGaXJz dENsYXNzIA0Kc2VydmVyIG9yIGEgdmFsaWQgSW50ZXJuZXQgYWRkcmVzcy4gIEEg dmFsaWQgSW50ZXJuZXQgYWRkcmVzcyANCmhhcyB0aGUgZm9ybSAiWzxyZWFsbmFt ZT4sXSA8dXNlcmlkPkA8bm9kZT4iLCBub3QgaW5jbHVkaW5nIHRoZSANCnF1b3Rl IGNoYXJhY3RlcnMgb2YgY291cnNlLiAgVGhlICI8cmVhbG5hbWU+LCIgcG9ydGlv biBpcyANCm9wdGlvbmFsLiAgVGhlIHJlbWFpbmluZyBwb3J0aW9ucyBhcmUgcmVx dWlyZWQuDQoNClRoZXNlIGFyZSB0d28gdmFsaWQgSW50ZXJuZXQgYWRkcmVzc2Vz IGZvciBtZS4NCiANCnBldGVyX2Vhc3Rob3BlQGd1bGZuZXQucGluYy5jb20NCg0K UGV0ZXIgRWFzdGhvcGUsIHBldGVyX2Vhc3Rob3BlQGd1bGZuZXQucGluYy5jb20N Cg0Kc3IgY2hlY2tzIGZvciBhbiBAIGNoYXJhY3RlciBpbiB0aGUgYWRkcmVzcy4g IElmIG9uZSBpcyBmb3VuZCANCnRoZSBhZGRyZXNzIGlzIGFzc3VtZWQgdG8gYmUg YW4gSW50ZXJuZXQgYWRkcmVzcyBhbmQgdGhlIA0KY2hhcmFjdGVycyAiLGkiIGFy ZSBzZW50IGFmdGVyIGl0LiAgRG8gbm90IHB1dCAiLGkiLCAiLEkiIG9yIA0KIixJ bnRlcm5ldCIgYWZ0ZXIgYW4gSW50ZXJuZXQgYWRkcmVzcyBpbiB0aGUgS1RGQyBP dXRGaWxlLiAgSWYgDQp5b3UgZG8sIHRoaXMgZ2F0ZXdheSBpZGVudGlmaWVyIHdp bGwgYmUgZHVwbGljYXRlZCBhbmQgdGhlIA0KYWRkcmVzcyB3aWxsIGZhaWwuDQoN CjMuICBUaGUgIkNvcGllczoiIHNlY3Rpb24gb2YgdGhlIG1lc3NhZ2UgaGVhZGVy IGlzIG9wdGlvbmFsLg0KDQo0LiAgVGhlICJTdWJqZWN0OiIgbGluZSBpcyBuZWNl c3NhcnkgYW5kIG1heSBub3Qgb2NjdXB5IG1vcmUgDQp0aGFuIG9uZSBsaW5lLiAg VGhlIDx0ZXh0PiBvZiB0aGUgc3ViamVjdCBsaW5lIG1heSBiZSBlbXB0eS4NCg0K NS4gIExpbWl0YXRpb25zIG9uIDxtZXNzYWdlIHRleHQ+IHdpdGggTVMtRE9TIEtl cm1pdCBhcmUgDQpkZXNjcmliZWQgdW5kZXIgU3lzdGVtIFNwZWNpZmljIE5vdGVz Lg0KDQo2LiAgVGhlIE91dEZpbGUgY2FuIGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBt ZXNzYWdlLiAgQSBtZXNzYWdlIA0Kc2VwYXJhdG9yIGxpbmUsIGEgbGluZSBiZWdp bm5pbmcgd2l0aCB0aGUgbWVzc2FnZSBzZXBhcmF0b3IgDQpkZWZpbmVkIGluIHRo ZSBVc2VyIENvbmZpZ3VyYXRpb24gc2VjdGlvbiBvZiBwcm9sb2csIHNlcGFyYXRl cyANCm1lc3NhZ2VzLiAgS1RGQyBpcyBkaXN0cmlidXRlZCB3aXRoIHRoZSBzZXBh cmF0b3IgYmVpbmcgDQoiKipFbmRPZk1zZyoqIiwgbm90IGluY2x1ZGluZyB0aGUg IiBjaGFyYWN0ZXJzLg0KDQo3LiAgTm8gbWVzc2FnZXMgYWZ0ZXIgdHdvIGNvbnNl Y3V0aXZlIHNlcGFyYXRvciBsaW5lcyBhcmUgc2VudC4NCg0KOC4gIEFsbCBsaW5l cyBiZXR3ZWVuIHRoZSAiU3ViamVjdDoiIGxpbmUgYW5kIHRoZSBuZXh0IG1lc3Nh Z2UNCnNlcGFyYXRvciBsaW5lLCBvciB0aGUgZW5kIG9mIHRoZSBmaWxlLCBhcmUg aW5jbHVkZWQgaW4gdGhlDQptZXNzYWdlIGJvZHkuICBJZiBvbmUgb2YgeW91ciBt ZXNzYWdlcyBtdXN0IGNvbnRhaW4gYSBsaW5lDQpiZWdpbm5pbmcgKipFbmRPZk1z ZyoqIGNoYW5nZSB0aGUgbWVzc2FnZSBzZXBhcmF0b3IuICBSZWZlciB0bw0KIkZB UXMgPiBJIHdhbnQgdG8gc2VuZCBhIG1lc3NhZ2Ugd2hpY2ggY29udGFpbnMgLi4u Ii4NCg0KOS4gIElmIHRoZSBtZXNzYWdlIHNlcGFyYXRvciBpcyBpbW1lZGlhdGVs eSBmb2xsb3dlZCBieSB0aGUNCmNoYXJhY3RlciBuLCBzciB3aWxsIG5vdCBzZW5k IHRoZSBzaWduYXR1cmUgbGluZXMgYWZ0ZXIgdGhlDQptZXNzYWdlIHRleHQuDQoN CjEwLiAgVGhlIG1lc3NhZ2Ugc2VwYXJhdG9yIGlzIG5vdCByZXF1aXJlZCBhZnRl ciB0aGUgbGFzdA0KbWVzc2FnZS4gIFRoZSBlbmQgb2YgdGhlIGZpbGUgaXMgdGhl IGVuZCBvZiB0aGUgbWVzc2FnZS4NCg0KKiogUmVjZWl2aW5nIGEgbWVzc2FnZQ0K DQpUeXBlIHRoZSBjb21tYW5kIHRvIGludm9rZSBLZXJtaXQgdG8gcHJvY2VzcyBz ciBhbmQgc3RyaWtlIHRoZSANCjxlbnRlcj4gb3IgPHJldHVybj4ga2V5LiAgV2l0 aCBNUy1ET1MgS2VybWl0IHZlcnNpb24gMy4xLjYgYW5kIA0KS1RGQyB2ZXJzaW9u IDAuNSwgdHlwZSB0aGlzLg0KDQptc2szMTYgLWYgc3IwLjU8ZW50ZXI+IA0KDQpN ZXNzYWdlcyBpbiBtYWlsb3V0IHdpbGwgYmUgc2VudCBhbmQgaW5jb21pbmcgbWVz c2FnZXMgd2hpY2ggDQpoYXZlIG5vdCBwcmV2aW91c2x5IGJlZW4gcmVhZCB3aWxs IGJlIGFwcGVuZGVkIHRvIHRoZSBmaWxlIA0KbWFpbGluICh5eXl5bW1kZC5pbiBp ZiB0aGUgZGF0ZWQgSW5GaWxlIGlzIGNvbmZpZ3VyZWQpLg0KDQoqKiBTaWduYXR1 cmUgTGluZXMNCg0KIlNpZ25hdHVyZSIgbGluZXMgYXJlIGFwcGxpZWQgdG8gdGhl IGVuZCBvZiBlYWNoIG91dGdvaW5nIA0KbWVzc2FnZSBieSB0aGUgcHJvY2VkdXJl IFNpZyBpbnZva2VkIGluIFByb2NlZWRNc2cuDQoNClRoZSBzaWduYXR1cmUgbGlu ZXMgYXJlIGRlZmluZWQgYXQgdGhlIGVuZCBvZiB0aGUgdXNlciANCmNvbmZpZ3Vy YXRpb24gc2VjdGlvbiBvZiBwcm9sb2cuICBUaGUgbnVtYmVyIGFuZCBjb250ZW50 cyBvZiB0aGUgDQpzaWduYXR1cmUgbGluZXMgY2FuIGJlIGNoYW5nZWQgYnkgdGhl IHVzZXIuICBUaGUgdmFsdWUgYXNzaWduZWQgDQp0byBTaWdMZW4gbXVzdCBiZSB0 aGUgbnVtYmVyIG9mIHNpZ25hdHVyZSBsaW5lcy4gIElmLCBmb3IgDQpleGFtcGxl LCA0IHNpZ25hdHVyZSBsaW5lcyBhcmUgaW50ZW5kZWQsIHRoZSBsaW5lICJkZWYg U2lnTGVuIDIiIA0KbXVzdCBiZSBjaGFuZ2VkIHRvICJkZWYgU2lnTGVuIDQiLiAg VGhlIDNyZCBhbmQgNHRoIGxpbmVzIG11c3QgDQpiZSBkZWZpbmVkOyBpZS4gIGxp bmVzICJkZWYgXCZzWzNdIHsuLi59IiBhbmQgImRlZiBcJnNbNF0gey4uLn0iIA0K bXVzdCBiZSBhZGRlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgImRlZiBcJnNbMl0g ey4uLn0iLg0KDQpUaGUgc2lnbmF0dXJlIG9uIGFuIGluZGl2aWR1YWwgbWVzc2Fn ZSBjYW4gYmUgc3VwcHJlc3NlZCBieSANCmFwcGVuZGluZyB0aGUgY2hhcmFjdGVy ICJuIiB0byB0aGUgc2VwYXJhdG9yLiAgVGhpcyBpcyBzaG93biBpbiANCnRoZSBm b3JtYWwgc3ludGF4IGFib3ZlLiAgIm4iIGlzIG1lYW50IHRvIHN1Z2dlc3QgIm5v IA0Kc2lnbmF0dXJlIi4NCg0KVGhlIHNpZ25hdHVyZSBjYW4gYmUgZWxpbWluYXRl ZCBwZXJtYW5lbnRseSBmcm9tIGFsbCBtZXNzYWdlcyBieSANCmNvbW1lbnRpbmcg dGhlIGxpbmUgInhpZiBub3QgZXF1YWwgLi4uICB7U2lnfSIgbmVhciB0aGUgZW5k IG9mIA0KUHJvY2VlZE1zZyBpbiB0aGUgc3IgZmlsZSAoaWUuICBieSBpbnNlcnRp bmcgYSAiOyIgYXQgdGhlIA0KYmVnaW5uaW5nIG9mIHRoZSBsaW5lKS4NCg0KKiog U2VyaWFsIFBvcnQgUHJvYmxlbXMNCg0KVGhpcyB0b3BpYyByZWFsbHkgYmVsb25n cyB0byBLZXJtaXQgcmF0aGVyIHRoYW4gdG8gS1RGQyBidXQgc29tZQ0KZGV0YWls cyBhcmUganVzdCB0b28gc2lnbmlmaWNhbnQgdG8gaWdub3JlLg0KDQpLZXJtaXQg ZG9jdW1lbnRhdGlvbiByZWNvbW1lbmRzIFJUUy9DVFMgZmxvdyBjb250cm9sLCBz b21ldGltZXMNCmNhbGxlZCBoYXJkd2FyZSBmbG93IGNvbnRyb2wsIGluIHByZWZl cmVuY2UgdG8gWE9OL1hPRkYgZmxvdw0KY29udHJvbC4gIFRoZSBzZXJpYWwgbGlu ayBiZXR3ZWVuIGEgY29tcHV0ZXIgYW5kIGFuIGV4dGVybmFsDQptb2RlbSBjYW4g YmUgZGVhZGxvY2tlZCBieSBjaGFuZ2luZyB0aGUgZmxvdyBjb250cm9sIGluIEtl cm1pdA0KdG8gUlRTL0NUUyBiZWZvcmUgY2hhbmdpbmcgdGhlIGZsb3cgY29udHJv bCBpbiB0aGUgbW9kZW0uICBXaGVuDQp0aGlzIGlzIGRvbmUgS2VybWl0IHdhaXRz IGluZGVmaW5pdGVseSBmb3IgQ1RTIGFzc2VydGlvbiBmcm9tDQp0aGUgbW9kZW0g YnV0IHRoZSBtb2RlbSBuZXZlciBhc3NlcnRzIENUUyBiZWNhdXNlIGl0IGNvbnRp bnVlcw0KdG8gdXNlIFhPTi9YT0ZGIGZsb3cgY29udHJvbC4gIElmIHlvdSBoYXZl IGFuIGV4dGVybmFsIG1vZGVtLA0KdmlldyB0aGUgbW9kZW1zXCouc2NyIGZpbGUg d2l0aCB0aGUgZWRpdG9yLiAgVGhlIGNvbW1hbmQgdG8gdHVybg0Kb24gUlRTL0NU UyBmbG93IGNvbnRyb2wgaW4gdGhlIG1vZGVtLCAib3V0cHV0IEFUICZIMSZSMlwx MyIgZm9yDQpleGFtcGxlLCBzaG91bGQgcHJlY2VlZCB0aGUgY29tbWFuZCAic2V0 IGZsb3cgcnRzL2N0cyIgd2hpY2gNCnNldHMgZmxvdyBjb250cm9sIGluIEtlcm1p dC4NCg0KRXZlcnkgc2VyaWFsIHBvcnQgYW5kIGludGVybmFsIG1vZGVtIGluIGEg UEMgd2l0aCB0aGUgb2xkIElTQQ0KYnVzIGhhZCBhIFVuaXZlcnNhbCBBc3luY2hy b25vdXMgUmVjZWl2ZXIgVHJhbnNtaXR0ZXIgb3IgVUFSVC4NCihBIG1hY2hpbmUg d2l0aCB0aGUgbmV3ZXIgUENJIGJ1cyBtYXkgYmUgZGVsaXZlcmVkIHdpdGggV2lu ZG93cw0Kc3BlY2lmaWMgaGFyZHdhcmUgc3VjaCBhcyBhIFdpbm1vZGVtLiAgVGhl c2Ugbm90ZXMgb24gc2VyaWFsDQpwb3J0cyBhbmQgVUFSVHMgbWF5IG5vdCBhcHBs eSB0byBzdWNoIGEgbWFjaGluZS4pIA0KQ29tbXVuaWNhdGlvbnMgdGhyb3VnaCBz dWNoIGEgc2VyaWFsIHBvcnQgb3IgbW9kZW0gcGFzcyB0aHJvdWdoDQphIHJlZ2lz dGVyIG9yIGJ1ZmZlciBpbiB0aGUgVUFSVC4gSWYgdGhlIHJlZ2lzdGVyIG9yIGJ1 ZmZlciBpcw0Kb3ZlcnJ1biwgTVMtRE9TIGluc2VydHMgYSBCRUwgY2hhcmFjdGVy IGluIHRoZSBkYXRhIHN0cmVhbS4gIFlvdQ0Kd2lsbCBub3RpY2UgdGhlIEJFTCBj aGFyYWN0ZXIgYmVjYXVzZSBhIHRvbmUgd2lsbCBiZSBlbWl0dGVkDQpmcm9tIHRo ZSBzeXN0ZW0gc3BlYWtlci4gIElmIHRoaXMgZXJyb3Igb2NjdXJzIGluIGNoYXJh Y3RlcnMNCndoaWNoIEtURkMgZGVwZW5kcyB1cG9uIHRvIG1ha2UgYSBkZWNpc2lv biwgaXQgd2lsbCBmYWlsLiAgV2hlbg0KS1RGQyBmYWlscyB5b3UgbWlnaHQgZmlu ZCBhIEJFTCBjaGFyYWN0ZXIgYW1vbmcgdGhvc2UgaXQgd2FzDQpwcm9jZXNzaW5n LiAgS2VybWl0IGRvY3VtZW50YXRpb24sIEtFUk1JVC5CV1IgZm9yIGV4YW1wbGUs DQpyZWNvbW1lbmRzIGEgVUFSVCByZWZlcnJlZCB0byBhcyBhIDE2NTUwQSB0byBh dm9pZCBlcnJvcnMuIA0KQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBVQVJU cyBjYW4gYmUgZm91bmQgaW4gcmVmZXJlbmNlIDQuIA0KVGhlIDE2NTUwQSBpcyBm b3VuZCBpbmZyZXF1ZW50bHkgb24gc2VyaWFsIHBvcnQgY2FyZHMgZm9yIHRoZQ0K SVNBIGJ1cy4gIElmIHlvdSBoYXZlIGFuIGV4dGVybmFsIG1vZGVtIG9uIGFuIElT QSBzeXN0ZW0sIHRoZQ0KVUFSVCBvZiB0aGUgc2VyaWFsIHBvcnQgaXMgbGlrZWx5 IHRvIGJlIHBvb3JlciB0aGFuIHRoZSAxNjU1MEEuDQpJZiB0aGlzIGlzIHRoZSBj YXNlIHRoZSBleHRlcm5hbCBtb2RlbSBpcyB1bmxpa2VseSB0byB3b3JrDQpyZWxp YWJseSBhdCBzcGVlZHMgYWJvdmUgOTYwMCBiL3MuDQoNCklmIHlvdXIgbW9kZW0g aXMgZmFzdGVyIGFuZCB5b3Ugb2JzZXJ2ZSBlcnJvcnMsIHNldCB0aGUgc3BlZWQg DQpkb3duIHRvIDk2MDAgYi9zLiAgTWFrZSBhIGJhY2t1cCBjb3B5IG9mIHRoZSBt b2RlbXNcKi5zY3IgZmlsZSANCmFuZCB0aGVuIG9wZW4geW91ciBlZGl0b3Igb24g aXQuICBMb29rIGZvciBhIGxpbmUgc3VjaCBhcyAic2V0IA0Kc3BlZWQgNTc2MDAi LiAgSWYgdGhlIHNwZWVkIHNldHRpbmcgaXMgdGhhdCBzaW1wbGUsIGNoYW5nZSBp dCB0byANCiJzZXQgc3BlZWQgOTYwMCIgYW5kIHNhdmUgdGhlIGZpbGUuICBJbiBz b21lICouc2NyIGZpbGVzIHRoZSANCnNwZWVkIGlzIHNldCBieSBhIG1vcmUgY29t cGxleCBwcm9jZXNzLiAgSW4gc3VjaCBhIGNhc2Ugc3R1ZHkgDQp0aGUgY29kZSBj YXJlZnVsbHkgYmVmb3JlIGNoYW5naW5nIGl0Lg0KDQpUaGlzIGlzIGhvdyBJIG1v ZGlmaWVkIHBwaS5zY3IgZm9yIGEgUHJhY3RpY2FsIFBlcmlwaGVyYWxzIA0KTUMx NDRNVElJLiBPcmlnaW5hbGx5IHRoZSBzcGVlZCB3YXMgc2V0IGJ5ICJhdG9rIDM4 NDAwIi4gIFRoYXQgDQpsaW5lIHdhcyBjb21tZW50ZWQgYW5kIGEgbGluZSAiYXRv ayA5NjAwIiB3YXMgaW5zZXJ0ZWQuICBUaGF0IA0Kc2V0IHRoZSBpbnRlbmRlZCBz cGVlZC4gIEZvbGxvd2luZyB0aGUgbGluZSAiY2hrb2sge0Nhbid0IA0KaW5pdGlh bGl6ZSBtb2RlbX0iIHRoZSBsaW5lICJnb3RvIGNvbmZpZyIgd2FzIGluc2VydGVk LiAgVGhhdCANCnNraXBwZWQgdGhlIG1vZGVsIHNwZWNpZmljIHNwZWVkIHNldHRp bmcgcHJvY2Vzcy4gIEZvbGxvd2luZyB0aGUgDQpsYWJlbCA6Q09ORklHIGFyZSB0 aGVzZSBsaW5lcy4NCg0KICBlY2hvIEVuYWJsaW5nIG1vZHVsYXRpb24gbmVnb3Rp YXRpb24uLi4NCiAgb3V0cHV0IEFUIFxtKF9tb2RjbWQpXDEzDQogIGNoa29rIHtD YW4ndCBlbmFibGUgbW9kdWxhdGlvbiBzcGVlZCBuZWdvdGlhdGlvbn0NCiAgZGVm aW5lIF9tb2RjbWQNCg0KVGhlc2UgZm91ciBsaW5lcyBhcmUgY29tbWVudGVkIHNv IHRoYXQgbmVnb3RpYXRpb24gZG9lcyBub3QgcHVzaCANCnRoZSBzcGVlZCB1cCBh Z2Fpbi4gIFdpdGggdGhlc2UgY2hhbmdlcyBzYXZlZCwgcHBpLnNjciByZXBvcnRz IGEgDQpjb25uZWN0aW9uIGF0IDk2MDAgYi9zLg0KDQoqKiBUaWR5aW5nIHRoZSBN YWlsYm94DQoNCk9sZCBtZXNzYWdlcyBhY2N1bXVsYXRlIGluIHRoZSBtYWlsYm94 IG9uIHRoZSBGaXJzdENsYXNzIHNlcnZlci4gIA0KVGhlIHVzZXIgY2FuIGxvZyBp biBpbnRlcmFjdGl2ZWx5IGFuZCBkZWxldGUgdW53YW50ZWQgbWVzc2FnZXMuICAN ClRoaXMgcHJvY2VzcyBpcyBhdXRvbWF0ZWQgYnkgc2Nhbi4gIFRoaXMgc2NyaXB0 IGV4YW1pbmVzIGVhY2ggDQptZXNzYWdlIGluIHRoZSBNYWlsYm94LiAgSWYgYSBt ZXNzYWdlIGlzIHVucmVhZCBzY2FuIHJlYWRzIGl0IA0KaW50byB0aGUgSW5GaWxl IGp1c3QgYXMgc3IgZG9lcy4gIElmIGEgbWVzc2FnZSBoYXMgYWxyZWFkeSBiZWVu IA0KcmVhZCwgc2NhbiBjYWxjdWxhdGVzIHRoZSBhZ2UtLS10aGUgZGlmZmVyZW5j ZSBpbiBkYXlzIGJldHdlZW4gDQp0aGUgY3JlYXRpb24gZGF0ZSBhbmQgdGhlIGN1 cnJlbnQgZGF0ZS4gIEVhY2ggbWVzc2FnZSBvbGRlciB0aGFuIA0KdGhlIHZhbHVl IGluIHRoZSB2YXJpYWJsZSBNc2dMaWZlIGlzIGEgY2FuZGlkYXRlIGZvciBkZWxl dGlvbi4gIA0KSWYgdGhlIHZhcmlhYmxlIENETSBoYXMgdGhlIHZhbHVlIDEgdGhl IHVzZXIgaXMgcHJvbXB0ZWQgdG8gDQpjb25maXJtIGRlbGV0aW9uLiAgSWYgQ0RN IGlzIDAgdGhlIG1lc3NhZ2UgaXMgZGVsZXRlZCB3aXRob3V0IA0KdXNlciBjb25m aXJtYXRpb24uICBBY2NvcmRpbmcgdG8gcHJldmlvdXMgZXhhbXBsZXMsIHRoZSBz Y3JpcHQgDQppcyBpbnZva2VkIHdpdGggdGhlIGNvbW1hbmQgIm1zazMxNiAtZiBz Y2FuMC41Ii4NCg0KKiogU2Nhbm5pbmcgT3RoZXIgQ29uZmVyZW5jZXMNCg0KTWFu eSB1c2VycyByb3V0aW5lbHkgcmVhZCBtZXNzYWdlcyBpbiBjb25mZXJlbmNlcyBv dGhlciB0aGFuIHRoZSANCk1haWxib3guICBUaGlzIGluY2x1ZGVzIGNvbmZlcmVu Y2VzIGluIE9uZU5ldC4gIFRoZSBzY2FuIHNjcmlwdCANCmF1dG9tYXRlcyByZXRy aWV2YWwgb2Ygc3VjaCBtZXNzYWdlcy4NCg0KQmVmb3JlIHNjYW4gY2FuIGJlIGFw cGxpZWQsIHRoZSBwYXRoIGZyb20gdGhlIGhvbWUgY29uZmVyZW5jZSB0byANCmVh Y2ggY29uZmVyZW5jZSB0byBiZSBzY2FubmVkLCBtdXN0IGJlIHBsYWNlZCBpbiB0 aGUgVXNlciANCkNvbmZpZ3VyYXRpb24gc2VjdGlvbiBhdCB0aGUgYmVnaW5uaW5n IG9mIHRoZSBzY2FuIHNjcmlwdC4gIEZvciANCmV4YW1wbGUsIG9uIHRoZSBHdWxm TmV0IEZpcnN0Q2xhc3Mgc2VydmVyIHRoZSBjb25mZXJlbmNlIA0KIlNjaWVuY2Ug VGFsayIgaXMgcmVhY2hlZCBieSBrZXlpbmcgPDY+IDxlbnRlcj4gPDE+IDwxPiA8 ZW50ZXI+IA0KPDM+IDxlbnRlcj47IHRoZSBwYXRoIGlzIDYgMTEgMy4gIE5vdGUg dGhlIHBhdGggZnJvbSB0aGUgSG9tZSANCmNvbmZlcmVuY2UgdG8gZWFjaCBjb25m ZXJlbmNlIHlvdSB3aXNoIHRvIHNjYW4uDQoNCk9wZW4gdGhlIGVkaXRvciBvbiB0 aGUgc2NhbiBzY3JpcHQgYW5kIGZpbmQgdGhlIGRlZmluaXRpb24gb2YgDQpMaXN0 TGVuLiAgTGlzdExlbiBtdXN0IGJlIGdpdmVuIHRoZSBudW1iZXIgb2YgY29uZmVy ZW5jZXMgdG8gYmUgDQpzY2FubmVkLiAgQ2hhbmdlIHRoZSAwIGluIHRoZSBsaW5l ICJkZWYgTGlzdExlbiAwIiB0byB0aGUgbnVtYmVyIA0Kb2YgY29uZmVyZW5jZXMg eW91IHdhbnQgdG8gc2Nhbi4gIE5leHQsIHRoZSB2YWx1ZXMgZm9yIHRoZSANClwl ZFsgXSBhcnJheSBtdXN0IGJlIGluc2VydGVkLiAgRWFjaCBsaW5lIGJlZ2lubmlu ZyB3aXRoICJkZWYNClwlZFsxXSB7MyAzfSIgc3BlY2lmaWVzIGEgcGF0aCBpbnNp ZGUgdGhlIHt9IGJyYWNrZXRzLg0KRGVjb21tZW50ICI7ZGVmIFwlZFsxXSB7Li59 IiBhbmQgIjtkZWYgXCVkWzJdIHsuLn0iOyBpZS4gIHJlbW92ZQ0KdGhlICI7IiBj aGFyYWN0ZXIgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIGxpbmUuICBBZGQgYWRk aXRpb25hbA0KZGVmaW5pdGlvbnMgYXMgcmVxdWlyZWQuICBUaGUgaW5kZXggb2Yg dGhlIGxhc3QgY29tcG9uZW50IG9mIGQNCm11c3QgYmUgdGhlIHZhbHVlIG9mIExp c3RMZW4uICBJbnNpZGUgZWFjaCBwYWlyIG9mIHt9IGJyYWNrZXRzDQpwdXQgYSBw YXRoIGFzIGRlc2NyaWJlZCBpbiB0aGUgcHJlY2VlZGluZyBwYXJhZ3JhcGguICBT YXZlIHRoZQ0Kc2NhbiBmaWxlIGFuZCBjbG9zZSB0aGUgZWRpdG9yLiAgV2l0aCBN Uy1ET1MgS2VybWl0IHZlcnNpb24NCjMuMS42IGFuZCBLVEZDIHZlcnNpb24gMC41 LCB0eXBlIHRoaXMuDQoNCm1zazMxNiAtZiBzY2FuMC41PGVudGVyPg0KDQpUaGUg bWVzc2FnZXMgcmV0cmlldmVkIHdpbGwgYmUgZm91bmQgaW4gdGhlIGZpbGUgd2hp Y2ggaXMgYWxzbyANCnVzZWQgZm9yIGluY29taW5nIG1haWwuICBOb3JtYWxseSBJ IHJ1biBzY2FuIG9uY2UgcGVyIGRheS4gIE9uIA0KYXZlcmFnZSBhIHNjYW4gb2Yg MTggZGlyZWN0b3JpZXMgYXQgOTYwMCBiL3MgdGFrZXMgYWJvdXQgMTAgDQptaW51 dGVzLg0KDQoqKiBBdXRvbWF0ZWQgU3RhcnR1cA0KDQpNUy1ET1MgY2FuIGJlIGNv bmZpZ3VyZWQgdG8gYXV0b21hdGUgdGhlIHVzZSBvZiBLVEZDIGF0IHN0YXJ0dXAu ICANCkFkZGluZyB0aGVzZSB0d28gbGluZXMgdG8gdGhlIGVuZCBvZiB0aGUgYXV0 b2V4ZWMuYmF0IGZpbGUgDQphbGxvd3Mgc3IgdG8gYmUgcHJvY2Vzc2VkIGF1dG9t YXRpY2FsbHkgd2hlbiBNUy1ET1MgaXMgc3RhcnRlZC4NCg0KY2QgXGtlcm1pdA0K bXNrMzE2IC1mIHNyMC41DQogIA0KTW9kaWZ5IHRoZSBjZCBjb21tYW5kIGlmIHlv dXIgS2VybWl0IGRpcmVjdG9yeSBpcyBub3QgXGtlcm1pdC4gIA0KTW9kaWZ5IHRo ZSBLZXJtaXQgaW52b2NhdGlvbiBpZiB5b3UgYXJlIHVzaW5nIGEgTVMtRE9TIEtl cm1pdCANCmxhdGVyIHRoYW4gdmVyc2lvbiAzLjEuNi4NCg0KQSBzZWNvbmQgYXJy YW5nZW1lbnQgYXV0b21hdGljYWxseSBvcGVucyBFRElUIG9uIGFuIE91dEZpbGUg d2hlbiANCk1TLURPUyBpcyBzdGFydGVkLiAgQ29uZmlndXJlIHRoZSBkYXRlZCBP dXRGaWxlIGFzIGRlc2NyaWJlZCBpbiANCiJGQVEgPiAuLi4gIEhvdyBpcyB0aGUg bmFtZSBvZiB0aGUgb3V0Z29pbmcgZmlsZSBjaGFuZ2VkPyINCg0KQXQgdGhlIGVu ZCBvZiB0aGUgYXV0b2V4ZWMuYmF0IGZpbGUgaW5zZXJ0IHRoZXNlIHRocmVlIGxp bmVzLg0KDQpjZCBca2VybWl0DQptc2szMTYgLWYgZGF0ZWZpbDAuNQ0KZWRpdGRh dGUuYmF0DQogIA0KVGhlIGNvbW1hbmQgImNkIFxrZXJtaXQiIHRlbGxzIE1TLURP UyB0byBzd2l0Y2ggdG8gdGhlIEtlcm1pdCANCmRpcmVjdG9yeS4NCg0KIm1zazMx NiAtZiBkYXRlZmlsMC41IiBpbnZva2VzIEtlcm1pdCB0byBwcm9jZXNzIGRhdGVm aWwuICANCmRhdGVmaWwgY2hlY2tzIHdoZXRoZXIgYSBkYXRlZCBPdXRGaWxlIGV4 aXN0cyBmb3IgdGhlIGN1cnJlbnQgDQpkYXRlLiAgSWYgbm90LCB0aGUgZGF0ZWQg ZmlsZSBpcyBjcmVhdGVkIGFuZCBhIHRlbXBsYXRlIG9mIA0KYWRkcmVzcywgc3Vi amVjdCBhbmQgbWVzc2FnZSBzZXBhcmF0b3IgbGluZXMgYXJlIHdyaXR0ZW4gdG8g aXQuICANCkZpbmFsbHksIGEgTVMtRE9TIGJhdGNoIGZpbGUgY29udGFpbmluZyB0 aGUgY29tbWFuZCB0byBpbnZva2UgDQpFRElUIG9uIHRoZSBkYXRlZCBPdXRGaWxl IGlzIGNyZWF0ZWQgaW4gdGhlIEtlcm1pdCBkaXJlY3RvcnkuICANClByb2Nlc3Np bmcgb2YgZGF0ZWZpbCBpcyB0aGVuIGNvbXBsZXRlIGFuZCBLZXJtaXQgZXhpdHMu DQoNCiJlZGl0ZGF0ZS5iYXQiIGludm9rZXMgRURJVCBvbiB0aGUgZGF0ZWQgT3V0 RmlsZS4gIFRoZSB1c2VyIGNhbiANCnRoZW4gY29tcG9zZSBvbmUgb3IgbW9yZSBv dXRnb2luZyBtZXNzYWdlcy4gIFdoZW4gdGhhdCBpcyANCmNvbXBsZXRlIHRoZSB1 c2VyIHNob3VsZCBleGl0IGZyb20gRURJVC4gTWVzc2FnZSB0cmFuc2ZlciBpcyAN CmluaXRpYXRlZCB3aXRoIHRoZSBjb21tYW5kICJtc2szMTYgLWYgPGRhdGU+Lm91 dCIgd2hlcmUgPGRhdGU+IA0KaXMgdHlwZWQgaW4gdGhlIGZvcm1hdCB5eXl5bW1k ZC4NCg0KVmFyaWF0aW9ucyBvZiB0aGVzZSBhdXRvbWF0aW9uIGFycmFuZ2VtZW50 cyBjYW4gYmUgYWRhcHRlZCB0byANCm90aGVyIHN5c3RlbXMuDQoNCioqIEZBUXMN Cg0KKioqIFEuIFdoeSBhcmUgc3IgYW5kIHNjYW4gbm90IGludGVncmF0ZWQgaW50 byBhIHNpbmdsZSBzY3JpcHQ/DQoNCnNyIHB1c2hlcyB0aGUgbGltaXRzIG9mIE1T LURPUyBLZXJtaXQuICBBbGwgdGhlIG1hY3JvcyByZXF1aXJlZCANCnRvIGltcGxl bWVudCB0aGUgY2FwYWJpbGl0aWVzIG9mIHNyIGFuZCBzY2FuIGluIG9uZSBzY3Jp cHQgY2FuIA0Kbm90IGJlIGRlZmluZWQuDQoNCklmIHNjYW4gaXMgY29uZmlndXJl ZCB0byByZWFkIHNldmVyYWwgY29uZmVyZW5jZXMsIGl0IHJlcXVpcmVzIA0KbXVj aCBtb3JlIHRpbWUgdG8gcHJvY2VzcyB0aGFuIGRvZXMgc3IuICBJIHJ1biBzciBz ZXZlcmFsIHRpbWVzIA0KZWFjaCBkYXkgdG8gdXBkYXRlIHRoZSBtYWlsYm94OyB1 c3VhbGx5IHNjYW4gcnVucyBvbmx5IG9uY2UgcGVyIA0KZGF5Lg0KDQoqKiogUS4g c2NhbiBjb25uZWN0cyB0byB0aGUgc2VydmVyIGFuZCByZWFkcyBhIGZldyBjb25m ZXJlbmNlcy4gIA0KVGhlbiB0aGUgc2NyZWVuIGdvZXMgYmxhbmsuICBXaGF0IGlz IHdyb25nPw0KDQpOb3RoaW5nLiAgVGhlIHNjcmVlbiBmaWxscyBhbmQgdGhlbiBj bGVhcnMuICBUaGVyZSBpcyBhIGRlbGF5IA0KYmVmb3JlIHdyaXRpbmcgdG8gdGhl IGZyZXNoIHNjcmVlbiBhcyBzY2FuIHByb2Nlc3NlcyBhIGJpZyANCmRpcmVjdG9y eS4NCg0KKioqIFEuIEhvdyBjYW4gaW50ZXJwcmV0YXRpb24gb2YgYSBLZXJtaXQg c2NyaXB0IGJlIGludGVycnVwdGVkIA0Kb3RoZXIgdGhhbiBieSBzd2l0Y2hpbmcg b2ZmIHRoZSBwb3dlcj8NCg0KQS4gPGN0cmw+KzxjPjsgaG9sZCBkb3duIHRoZSA8 Y3RybD4ga2V5IGFuZCBzdHJpa2UgPGM+Lg0KDQoqKiogUS4gV2l0aCBNUy1ET1Mg S2VybWl0LCB3aHkgaXMgdGhlcmUgYSBwZXJpb2QgYXQgdGhlDQpiZWdpbm5pbmcg b2YgZWFjaCBibGFuayBsaW5lIGluIGFuIGluY29taW5nIG1lc3NhZ2U/DQoNCkEu IFRoaXMgaXMgYSBzaWRlIGVmZmVjdCBhc3NvY2lhdGVkIHdpdGggYSAid29yayBh cm91bmQiIGZvciBhbiANCmlkaW9zeW5jcmFzeSBvZiBNUy1ET1MgS2VybWl0LiAg U2VlIFN5c3RlbSBTcGVjaWZpYyBOb3RlcyA+IA0KTVMtRE9TIEtlcm1pdCA+IFRo ZSBTaWRlIEVmZmVjdCBQcm9ibGVtLg0KDQoqKiogUS4gTXkgSW5GaWxlIGlzIGdl dHRpbmcgdG9vIGJpZy4gIFdoYXQgY2FuIGJlIGRvbmU/DQoNCkEuIFRoZSBzaW1w bGVzdCBzb2x1dGlvbiBpcyB0byBkZWxldGUgdGhlIGZpbGUuICBJbiBNUy1ET1Mg dHlwZQ0KImRlbCBtYWlsaW48ZW50ZXI+Ii4gIElmIHlvdSB3YW50IHRvIHNhdmUg dGhlIG1lc3NhZ2VzLCB0aGUgZmlsZQ0KY2FuIGJlIHJlbmFtZWQ7IGZvciBleGFt cGxlLCB0eXBlICJyZW5hbWUgbWFpbGluDQptYWlsaW4xPGVudGVyPiIuDQoNCioq KiBRLiBXaGF0IGlzIHRoZSBwdXJwb3NlIG9mIHRoZSBsaW5lICJsb2cgc2Vzc2lv biANClx2KG5kYXRlKS5sb2ciIGluIHRoZSBVc2VyIENvbmZpZ3VyYXRpb24gc2Vj dGlvbiBvZiBwcm9sb2c/DQoNCkl0IGludm9rZXMgc2Vzc2lvbiBsb2dnaW5nLCB3 aGljaCBpcyBleHBsYWluZWQgaW4gX1VzaW5nIE1TLURPUw0KS2VybWl0Xy4gIFRv IGFjdGl2YXRlIHNlc3Npb24gbG9nZ2luZyBkZWNvbW1lbnQgdGhlc2UgbGluZXMu DQoNCjtpZiBleGlzdCBcdihuZGF0ZSkubG9nIGRlbCBcdihuZGF0ZSkubG9nDQo7 bG9nIHNlc3Npb24gXHYobmRhdGUpLmxvZw0KDQpLVEZDIHdpbGwgcHJvY2VzcyBm YXN0ZXIgd2hlbiBpdCBpcyBub3QgbG9nZ2luZyBhIHNlc3Npb24uDQoNCioqKiBR LiBJbmNvbWluZyBtZXNzYWdlcyBhcmUgcGxhY2VkIGluIG1haWxpbiBidXQgSSB3 YW50IHRoZW0gaW4gDQpmaWxlcyBuYW1lZCBhY2NvcmRpbmcgdG8gZGF0ZSBvZiBy ZWNlaXB0LiAgSG93IGlzIHRoZSBuYW1lIG9mIA0KdGhlIGluY29taW5nIGZpbGUg Y2hhbmdlZD8NCg0KQS4gVGhlIG5hbWUgb2YgdGhlIGluY29taW5nIGZpbGUgaXMg dGhlIHZhbHVlIGluIHRoZSBtYWNybw0KdmFyaWFibGUgSW5GaWxlIGRlZmluZWQg aW4gdGhlIFVzZXIgQ29uZmlndXJhdGlvbiBzZWN0aW9uIG9mIHRoZQ0KcHJvbG9n IGZpbGUuICBEZWNvbW1lbnQgdGhlIGxpbmUgIjthc2cgSW5GaWxlIFx2KG5kYXRl KS5pbiIuICBBbg0KZXhhbXBsZSBvZiBzdWNoIGEgZGF0ZWQgZmlsZSBuYW1lIGlz IDE5OTkwNjI3LmluLg0KDQoqKiogUS4gT3V0Z29pbmcgbWVzc2FnZXMgYXJlIHBs YWNlZCBpbiBtYWlsb3V0IGJ1dCBJIHdhbnQgdGhlbSANCmluIGZpbGVzIG5hbWVk IGFjY29yZGluZyB0byBkYXRlLiAgSG93IGlzIHRoZSBuYW1lIG9mIHRoZSANCm91 dGdvaW5nIGZpbGUgY2hhbmdlZD8NCg0KQS4gVGhlIG5hbWUgb2YgdGhlIG91dGdv aW5nIGZpbGUgaXMgdGhlIHZhbHVlIGluIHRoZSBtYWNybyANCnZhcmlhYmxlIE91 dEZpbGUgaW4gdGhlIHByb2xvZyBmaWxlLiAgRGVjb21tZW50IHRoZSBsaW5lICI7 YXNnIA0KT3V0RmlsZSBcdihuZGF0ZSkub3V0Ii4gIElmIHNyIGlzIGV4ZWN1dGVk IG9uIEp1bmUgMjcgb2YgMTk5OSwgDQppdCB3aWxsIHRyeSB0byBzZW5kIG1lc3Nh Z2VzIGluIGEgZmlsZSBuYW1lZCAxOTk5MDYyNy5vdXQuICBJZiANCm5vIHN1Y2gg ZmlsZSBleGlzdHMsIG5vIG1lc3NhZ2VzIHdpbGwgYmUgc2VudCBvbiB0aGF0IGRh eS4NCg0KKioqIFEuIE9sZCBtZXNzYWdlcyBhcmUgYWNjdW11bGF0aW5nIGluIG15 IE1haWxib3ggb24gdGhlIEZDIA0Kc2VydmVyOyBkZWxldGluZyB0aGVtIGludGVy YWN0aXZlbHkgaXMgdGVkaW91cy4gIEhvdyBjYW4gb2xkIA0KbWVzc2FnZXMgYmUg ZGVsZXRlZCBmcm9tIHRoZSBzZXJ2ZXIgYXV0b21hdGljYWxseT8NCg0KQS4gUnVu IHRoZSBzY2FuIHNjcmlwdC4gIE1lc3NhZ2VzIG9sZGVyIHRoYW4gTXNnTGlmZSB3 aWxsIGJlIA0KZGVsZXRlZC4gIE1zZ0xpZmUgaXMgYXNzaWduZWQgYSB2YWx1ZSBu ZWFyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIA0Kc2NhbiBzY3JpcHQuICBDaGFuZ2Ug dGhlIHZhbHVlIGlmIHlvdSB3aXNoLg0KDQoqKiogUS4gV2hhdCBpcyB0aGUgcHVy cG9zZSBvZiB0aGUgQ1MgZmxhZyBpbiB0aGUgcHJvbG9nIHNjcmlwdD8NCg0KQS4g Q1MgaXMgdGhlIGFjcm9ueW0gZm9yIENvbmZpcm0gU2VuZC4gIFdpdGggQ1Mgc2V0 IHRvIDEsIHNyIA0Kd2lsbCByZWFkIGVhY2ggb3V0Z29pbmcgbWVzc2FnZSBpbiB0 aGUgT3V0RmlsZSBhbmQgdGhlbiBwcm9tcHQgDQp0aGUgdXNlciBmb3IgY29uZmly bWF0aW9uIGJlZm9yZSBzZW5kaW5nLiAgV2hlbiB5b3UgdGlyZSBvZiANCmdpdmlu ZyB0aGlzIGNvbmZpcm1hdGlvbiwgdXNlIHRoZSBlZGl0b3IgdG8gc2V0IHRoZSB2 YWx1ZSBmb3IgQ1MgDQp0byAwLg0KDQoqKiogUS4gV2hhdCBpcyB0aGUgcHVycG9z ZSBvZiB0aGUgREFSIGZsYWcgaW4gdGhlIHByb2xvZyBzY3JpcHQ/DQoNCkEuIERB UiBpcyB0aGUgYWNyb255bSBmb3IgRGVsZXRlIEFmdGVyIFJlY2VpcHQuICBXaXRo IERBUiBzZXQgdG8gDQoxLCBzciBhbmQgc2NhbiB3aWxsIGF0dGVtcHQgdG8gZGVs ZXRlIGVhY2ggdW5yZWFkIG1lc3NhZ2UgaW4gdGhlIA0KTWFpbGJveCBhZnRlciBy ZWFkaW5nIGl0LiAgSWYgSU5QVVQgb2YgYSBtZXNzYWdlIGZhaWxzIHdoaWxlIGl0 IA0KaXMgYmVpbmcgcmVjZWl2ZWQgYW5kIERBUiBpcyBzZXQgdG8gMSwgdGhlcmUg aXMgYSBwb3NzaWJpbGl0eSBvZiANCnRoZSBtZXNzYWdlIGJlaW5nIGRlbGV0ZWQg YmVmb3JlIGl0IGlzIHJldHJpZXZlZCBmcm9tIHRoZSBzZXJ2ZXIgDQpjb3JyZWN0 bHkuICBNb3N0IHVzZXJzIHdpbGwgYmUgYmVzdCBzZXJ2ZWQgYnkgbGVhdmluZyBE QVIgd2l0aCANCnRoZSB2YWx1ZSAwIGFuZCByZWx5aW5nIG9uIHNjYW4gdG8gZGVs ZXRlIG91dGRhdGVkIG1lc3NhZ2VzLg0KDQoqKiogUS4gSSB3YW50IGRlbGV0aW9u IG9mIG1lc3NhZ2VzIHRvIG9jY3VyIHdpdGhvdXQgdGhlIHByb21wdCANCmZvciBj b25maXJtYXRpb24uICBIb3cgZG8gSSB0dXJuIG9mZiB0aGUgcHJvbXB0Pw0KDQpB LiBUaGUgcHJvbXB0IHRvIGNvbmZpcm0gZGVsZXRpb24gb2NjdXJzIG9yIG5vdCBh Y2NvcmRpbmdseSBhcyANCnRoZSBzd2l0Y2ggQ0RNIGlzIHNldCB0byAxIG9yIDAu ICBXaGVuIHlvdSB0aXJlIG9mIGdpdmluZyB0aGlzIA0KY29uZmlybWF0aW9uLCBv cGVuIHRoZSBlZGl0b3Igb24gcHJvbG9nIGFuZCBzZXQgdGhlIHZhbHVlIGZvciAN CkNETSB0byAwLg0KDQoqKiogUS4gUHJvY2Vzc2luZyBvZiBzciAob3Igc2Nhbikg ZmFpbGVkIHdoaWxlIGEgbWVzc2FnZSB3YXMgDQpiZWluZyByZWNlaXZlZC4gIFdo YXQgc2hvdWxkIGJlIGRvbmU/DQoNCkNoZWNrIHRoYXQgeW91ciBtb2RlbSBoYXMg Imh1bmcgdXAiIGFuZCB0aGVuIHJlc3RhcnQgdGhlIHNjcmlwdCANCnRvIGZpbmlz aCBwcm9jZXNzaW5nLg0KDQpUaGUgZmFpbHVyZSBwcm9iYWJseSByZXN1bHRlZCBm cm9tIGEgc2VyaWFsIHBvcnQgZXJyb3IsIA0KZGlzY3Vzc2VkIGluIFNlcmlhbCBQ b3J0IFByb2JsZW1zIGFib3ZlLCBvciBmcm9tIG9uZSBvZiB0aGUgDQpsaW1pdGF0 aW9ucyBvZiBNUy1ET1MgS2VybWl0LCBkZXNjcmliZWQgaW4gU3lzdGVtIFNwZWNp ZmljIA0KTm90ZXMuICBJbiBhbnkgY2FzZSB0aGUgZmF1bHRlZCBtZXNzYWdlIGlz IG5vIGxvbmdlciB1bnJlYWQgYW5kIA0Kd2lsbCBub3QgY2F1c2UgdGhlIHNjcmlw dCB0byBmYWlsIGFnYWluLiAgQSBtZXNzYWdlIGNhbiBiZSByZWFkIA0KdXNpbmcg S2VybWl0IGludGVyYWN0aXZlbHkgYW5kIGNhbiBiZSByZWNvcmRlZCBpbiB0aGUg c2Vzc2lvbiANCmxvZy4gIFNlc3Npb24gbG9nZ2luZyBpcyBleHBsYWluZWQgaW4g X1VzaW5nIE1TLURPUyBLZXJtaXRfLg0KDQoqKiogUS4gSSB3YW50IHRvIHNlbmQg YSBtZXNzYWdlIHdoaWNoIGNvbnRhaW5zIGEgbGluZSBiZWdpbm5pbmcgDQp3aXRo ICoqRW5kT2ZNc2cqKiBidXQgdGhpcyBpcyB0aGUgbWVzc2FnZSBzZXBhcmF0b3Iu ICBIb3cgY2FuIA0KdGhlIG1lc3NhZ2UgYmUgc2VudCBpbnRhY3Q/DQoNCkEuIENo YW5nZSB0aGUgbWVzc2FnZSBzZXBhcmF0b3IuICBPcGVuIHRoZSBlZGl0b3Igb24g cHJvbG9nIGFuZCANCmZpbmQgdGhlIHZhcmlhYmxlIE1TZXAgaW4gdGhlIFVzZXIg Q29uZmlndXJhdGlvbi4gIENoYW5nZSB0aGUgDQphc3NpZ25lZCB2YWx1ZSB0byBh bnkgc3RyaW5nIHlvdSB3aXNoLiAgVGhlIGxlbmd0aCBuZWVkIG5vdCBiZSANCjEy IGNoYXJhY3RlcnMuICBDaG9vc2UgYSBzdHJpbmcgd2hpY2ggaXMgbm90IGxpa2Vs eSB0byBhcHBlYXIgaW4gDQpmdXR1cmUgbWVzc2FnZXMuDQoNCioqIFN5c3RlbSBT cGVjaWZpYyBOb3Rlcw0KDQoqKiogTWljcm9zb2Z0IFdpbmRvd3MNCg0KTWljcm9z b2Z0IFdpbmRvd3MgaXMgbm90IGF2YWlsYWJsZSBoZXJlLiAgUmVwb3J0cyBmcm9t IHVzZXJzIGFyZQ0Kd2VsY29tZS4gIEFwcHJvcHJpYXRlIGluZm9ybWF0aW9uIHdp bGwgYmUgaW5jb3Jwb3JhdGVkIGludG8NCmRvY3VtZW50YXRpb24gb2Ygc3Vic2Vx dWVudCByZWxlYXNlcyBmb3IgYmVuZWZpdCBvZiBNUyBXaW5kb3dzDQp1c2Vycy4N Cg0KKioqIE1TLURPUw0KDQpUaGUgU2lkZS1FZmZlY3QgUHJvYmxlbQ0KDQpLVEZD IHdhcyBkZXZlbG9wZWQgb24gTVMtRE9TIEtlcm1pdC4gIE9yaWdpbmFsbHkgYW4g aW5jb21pbmcNCm1lc3NhZ2Ugd2FzIGhhbmRsZWQgdXNpbmcgXHYoaW5wdXQpIGRp cmVjdGx5LiAgUHJvYmxlbXMgYmVjYW1lDQpldmlkZW50LiAgRm9yIGV4YW1wbGUs IGlmIGFuIGluY29taW5nIG1lc3NhZ2UgY29udGFpbmVkIEtlcm1pdA0KY29kZSwg dGhlIGludGVycHJldGF0aW9uIG9mIEtURkMgd2FzICJzaWRldHJhY2tlZCIuICBL ZXJtaXQNClN1cHBvcnQgcmVjb21tZW5kZWQgdGhhdCBcdihpbnB1dCkgYmUgY29w aWVkIHRvIGEgbWFjcm8gdmFyaWFibGUNCmFuZCB0aGF0IHN1YnNlcXVlbnRseSB0 aGUgbWFjcm8gdmFyaWFibGUgYmUgdXNlZCByYXRoZXIgdGhhbg0KXHYoaW5wdXQp LiAgVGhpcyB3YXMgaW1wbGVtZW50ZWQgaW4gdGhlIHByb2NlZHVyZSBTYXZlTGlu ZSANCmluIHRoZSBzciBzY3JpcHQuDQoNClNhdmVMaW5lIHByZXZlbnRlZCBLZXJt aXQgY29kZSByZWNlaXZlZCBieSBJTlBVVCBmcm9tDQpzaWRldHJhY2tpbmcgdGhl IGludGVycHJldGVyIGJ1dCB0aGVuIGEgbmV3IHByb2JsZW0gYXBwZWFyZWQuIA0K TGluZXMgY29udGFpbmluZyB2aXNpYmxlIGNoYXJhY3RlcnMgaGFkIGEgY29tbWEg YXBwZW5kZWQuICBUaGlzDQp3YXMgc29sdmVkIGJ5IGRlbGV0aW5nIHRoZSBsYXN0 IHR3byBjaGFyYWN0ZXJzIGZyb20gdGhlIGxpbmUgYW5kDQp0aGVuIHdyaXRpbmcg dGhlIGxpbmUgdG8gdGhlIGZpbGUgd2l0aCB3cml0ZWxuLiAgUGVydmVyc2VseSwN CmFub3RoZXIgcHJvYmxlbSBhcHBlYXJlZC4gIEEgbGluZSB3aGljaCB3YXMgZW1w dHkgd2FzIGRlbGV0ZWQuIA0KVGhpcyB3YXMgc29sdmVkIGJ5IHJlcGxhY2luZyBh biBlbXB0eSBsaW5lIHdpdGggYSBsaW5lDQpjb250YWluaW5nIGEgcGVyaW9kLiAg QWxsIHRoZXNlIGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUNClNhdmVM aW5lIGRlZmluZWQgd2hlbiBLVEZDIGlzIHVzZWQgd2l0aCBNUy1ET1MgS2VybWl0 LiAgV2l0aA0Kb3RoZXIgc3lzdGVtcyBTYXZlTGluZSBpcyBkZWZpbmVkIHRvIHNp bXBseSByZWNvcmQgXHYoaW5wdXQpIGluDQphIG1hY3JvIHZhcmlhYmxlLg0KDQpU aGVzZSBjb21wbGljYXRpb25zIHdvdWxkIGJlIGVsaW1pbmF0ZWQgaWYgSU5QVVQg c2ltcGx5IHJlY29yZGVkDQppbmNvbWluZyBjaGFyYWN0ZXJzIGluIGEgYnVmZmVy IHdoZXJlIHRoZXkgd291bGQgcmVtYWluDQp1bmNoYW5nZWQgYW5kIGF2YWlsYWJs ZSB1bnRpbCBleHBsaWNpdGx5IGNsZWFyZWQuDQoNCk90aGVyIFByb2JsZW1zDQoN CkEgbWludXMgc2lnbiAiLSIgYXQgdGhlIGVuZCBvZiBhIGxpbmUgaW4gYW4gb3V0 Z29pbmcgbWVzc2FnZSANCmNhdXNlcyB0aGF0IGxpbmUgYW5kIHRoZSBmb2xsb3dp bmcgbGluZSB0byBiZSBqb2luZWQgd2hlbiBzZW50IA0KdG8gdGhlIHNlcnZlci4g IEF2b2lkIGVuZGluZyBhIGxpbmUgaW4gYW4gb3V0Z29pbmcgbWVzc2FnZSB3aXRo IA0KYSAiLSIgY2hhcmFjdGVyLg0KDQpUcmFuc21pc3Npb24gZmFpbHVyZXMgZm9y IG1lc3NhZ2VzIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgIlwiIA0KYW5kICJ7 IiBoYXZlIGJlZW4gb2JzZXJ2ZWQuDQoNCkxlYWRpbmcgYmxhbmtzIGFyZSBzdHJp cHBlZCBmcm9tIGEgbGluZSB3aGVuIGEgbWVzc2FnZSBpcyBzZW50Lg0KDQpMZWFk aW5nIGFuZCB0cmFpbGluZyBibGFua3MgYXJlIHN0cmlwcGVkIGZyb20gYW4gYXJn dW1lbnQgcGFzc2VkIA0KdG8gYSBtYWNyby4NCg0KQSBwcm9ibGVtIHNwZWNpZmlj IHRvIE1TLURPUyBLZXJtaXQgY2FuIGNhdXNlIHNjcmlwdCBwcm9jZXNzaW5nDQp0 byBmYWlsLiAgUmVmZXIgdG8gIkZBUXMgPiBQcm9jZXNzaW5nIG9mIHNyIChvciBz Y2FuKSBmYWlsZWQNCi4uLiIuDQoNCioqKiBPYmVyb24NCg0KSSB1c2UgdGhlIFBD IE5hdGl2ZSBPYmVyb24gb3BlcmF0aW5nIHN5c3RlbTsgc2VlDQpodHRwOi8vd3d3 Lm9iZXJvbi5ldGh6LmNoLy4gIEtlcm1pdCBpcyBub3QgeWV0IGltcGxlbWVudGVk IGluDQpPYmVyb24gc28gSSB1c2UgTVMtRE9TIEtlcm1pdCB0byB0cmFuc2ZlciBt YWlsLiAgSSByZWJvb3QgdGhlDQptYWNoaW5lIHdpdGggT2Jlcm9uIHRvIHJlYWQg aW5jb21pbmcgbWVzc2FnZXMgYW5kIHRvIGNvbXBvc2UNCm91dGdvaW5nIG1lc3Nh Z2VzLiAgRWRpdCBhbmQgRVQgaW4gT2Jlcm9uIGFyZSB2ZXJ5IHdlbGwgc3VpdGVk DQp0byBlZGl0aW5nIG1lc3NhZ2UgZmlsZXMuDQoNClRoZSBPYmVyb24uVGV4dCBm aWxlIGNvbnRhaW5zIHRoZXNlIGdyb3VwcyBpbiB0aGUgDQpJbml0Q29tbWFuZHMg c2VjdGlvbi4NCiAgICB7IERPUy5Db3B5RnJvbSAiYzova2VybWl0IiBtYWlsaW4g fiB9DQogICAgeyBFVC5PcGVuQXNjaWkgbWFpbGluIH0NCg0KVGhlc2UgY29tbWFu ZHMgYXJlIGluIFN5c3RlbS5Ub29sLg0KICAgICBFVC5PcGVuQXNjaWkgbWFpbGlu DQogICAgIERPUy5Db3B5VG8gImM6L2tlcm1pdCIgbWFpbGluIH4gDQogICAgIEVU Lk9wZW5Bc2NpaSBtYWlsb3V0DQogICAgIERPUy5Db3B5VG8gImM6L2tlcm1pdCIg bWFpbG91dCB+IA0KICAgICAgDQoqKiogVW5peGVzIGFuZCBvdGhlciBzeXN0ZW1z IHJ1bm5pbmcgQy1LZXJtaXQNCg0KVGVzdGluZyB3aXRoIEMtS2VybWl0IG9uIGEg dW5peCBzeXN0ZW0gaXMgb24gbXkgInRvIGRvIiBsaXN0LiANClJlcG9ydHMgZnJv bSB1c2VycyBhcmUgd2VsY29tZSBhbmQgYXBwcm9wcmlhdGUgaW5mb3JtYXRpb24g d2lsbA0KYmUgaW5jb3Jwb3JhdGVkIGluIGZ1dHVyZSByZWxlYXNlcy4NCg0KKiog QnVncw0KDQpCdWcgcmVwb3J0cyBhbmQgc3VnZ2VzdGlvbnMgYXJlIHdlbGNvbWUu ICBBbmFseXNpcyBvZiBhIGJ1ZyANCnJlc3VsdGluZyBmcm9tIGEgc3BlY2lmaWMg bWVzc2FnZSByZXF1aXJlcyBhIGNvcHkgb2YgdGhlIG1lc3NhZ2UgDQp3aGljaCBj YXVzZWQgdGhlIHByb2JsZW0uICBUaGUgdXNlciBtYXkgbmVlZCBTb2Z0d2FyZSAN CmluZGVwZW5kZW50IG9mIEtURkMgdG8gc2VuZCBhIG1lc3NhZ2UgZm9yIGRpYWdu b3Npcy4NCg0KKiogTGltaXRhdGlvbnMNCg0KVGhlIGxpbWl0YXRpb25zIG9mIE1T LURPUyBLZXJtaXQgZGVzY3JpYmVkIGluIFN5c3RlbSBTcGVjaWZpYyANCk5vdGVz IGNhbiBub3QgYmUgY29tcGxldGVseSBvdmVyY29tZSBieSBLVEZDLg0KDQpUaGUg YWJpbGl0eSB0byBzZW5kIGFuZCByZWNlaXZlIGF0dGFjaG1lbnRzIHVzaW5nIHRo ZSBYLW1vZGVtIA0KcHJvdG9jb2wgaW1wb3NlZCBieSB0aGUgRkMgc2VydmVyIHdv dWxkIGJlIG5pY2UuICBJZiB0aGlzIGNhbiBiZSANCmltcGxlbWVudGVkIGZvciBD LUtlcm1pdCBpdCBpcyB1bmxpa2VseSB0byB3b3JrIHdpdGggTVMtRE9TIA0KS2Vy bWl0IGJlY2F1c2Ugb2YgbGltaXRhdGlvbnMgZGVzY3JpYmVkIGFib3ZlLiAgTmV2 ZXJ0aGVsZXNzLCBhIA0KYmluYXJ5IGZpbGUgY2FuIGJlIHRyYW5zbWl0dGVkIGJ5 IEFTQ0lJIGVuY29kaW5nIGl0LCB3aXRoIGEgTUlNRSANCmFsZ29yaXRobSBmb3Ig ZXhhbXBsZSwgYW5kIGluY2x1ZGluZyB0aGUgZW5jb2RlZCBmaWxlIGluIHRoZSAN CmJvZHkgb2YgYSBtZXNzYWdlLiAgSSBoYXZlIG5vIHBsYW5zIHRvIGltcGxlbWVu dCBhdHRhY2htZW50IA0KaGFuZGxpbmcuDQoNClJhdGhlciB0aGF0IGRlc2NlbmQg dG8gZWFjaCB0YXJnZXQgZGlyZWN0b3J5IGZyb20gSG9tZSwgc2NhbiANCm1pZ2h0 IHBlcmZvcm0gYSB0cmVlIHRyYXZlcnNhbC4gIFRoZSAiKiIgd2hpY2ggbWFya3Mg YSANCkZpcnN0Q2xhc3MgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdW5yZWFkIGl0ZW1z IG1pZ2h0IGJlIHVzZWQgdG8gDQppbXByb3ZlIGVmZmljaWVuY3kuICBUaGUgc3Ig c2NyaXB0IHB1c2hlcyB0aGUgbGltaXRzIG9mIE1TLURPUyANCktlcm1pdCBhbmQg dGhlIHByb2dyYW1taW5nIHJlcXVpcmVtZW50cyBmb3IgdHJlZSB0cmF2ZXJzYWwg YXJlIA0KbGlrZWx5IHRvIGV4Y2VlZCB0aGUgY2FwYWJpbGl0eSBvZiBNUy1ET1Mg S2VybWl0LiAgSSBoYXZlIG5vIA0KcGxhbnMgZm9yIHdvcmsgb24gdGhpcyBpbXBs ZW1lbnRhdGlvbi4NCg0KVGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBhZ2Ugb2YgYSBt ZXNzYWdlIGRvZXMgbm90IHRha2UgYWNjb3VudCBvZiANCkZlYnJ1YXJ5IDI5IGlu IGEgbGVhcCB5ZWFyOyB0aGUgYWdlIG9mIGEgbWVzc2FnZSB3aGljaCBpcyBvbiB0 aGUgDQpzZXJ2ZXIgb24gRmVicnVhcnkgMjkgd2lsbCBiZSBvbmUgZGF5IGxvbmdl ciB0aGFuIGNhbGN1bGF0ZWQuICANCnNjYW4gd2lsbCBhbGxvdyB0aGlzIG1lc3Nh Z2UgdG8gcmVtYWluIG9uIHRoZSBzZXJ2ZXIgb25lIGRheSANCm1vcmUgdGhhbiBz cGVjaWZpZWQgYnkgTXNnTGlmZS4gIFRoaXMgaXMgdW5saWtlbHkgdG8gYmUgDQpz ZXJpb3VzbHkgaGFybWZ1bC4NCg0KKiogU3VwcG9ydA0KDQpBcmUgeW91IGhhdmlu ZyBkaWZmaWN1bHR5IGluc3RhbGxpbmcgS2VybWl0PyAgQXJlIHlvdSBtb2RpZnlp bmcgDQphIEtURkMgc2NyaXB0IGFuZCBpbiBuZWVkIG9mIGhlbHAgd2l0aCBLZXJt aXQgcHJvZ3JhbW1pbmc/ICANClF1ZXN0aW9ucyBhYm91dCBLZXJtaXQgYW5kIEtl cm1pdCBwcm9ncmFtbWluZyBzaG91bGQgYmUgc2VudCB0byANCnRoZSBVc2VuZXQg Zm9ydW0gY29tcC5wcm90b2NvbHMua2VybWl0Lm1pc2MuICBOb3QgYWxsIEZpcnN0 Q2xhc3MgDQpzZXJ2ZXJzIHN1YnNjcmliZSB0byB0aGlzIGZvcnVtIGFuZCB5b3Ug bWlnaHQgbm90IGhhdmUgYWNjZXNzIHRvIA0KaXQgZnJvbSBob21lLiAgTW9zdCBw dWJsaWMgbGlicmFyaWVzIG5vdyBoYXZlIFdlYiB0ZXJtaW5hbHMuICANCkFueW9u ZSBjYW4gZ28gdG8gaHR0cDovL3d3dy5kZWphLmNvbS8sIG9wZW4gYW4gYWNjb3Vu dCBhbmQgaGF2ZSANCmFjY2VzcyB0byBjb21wLnByb3RvY29scy5rZXJtaXQubWlz Yy4gIFRoZSBEZWphIGFjY291bnQgYWxsb3dzIA0Kc3Vic2NyaXB0aW9uIHRvIGUt bWFpbCBkZWxpdmVyeSBvZiB0aGUgZm9ydW0uDQoNCktURkMgdXNlcnMgY2FuIHN1 YnNjcmliZSB0byB0aGUga3RmY2luZm8gbWFpbGluZyBsaXN0LiAgU2VuZCBhIA0K bWVzc2FnZSB3aXRoIGVtcHR5IHN1YmplY3QgZmllbGQgYW5kIGVtcHR5IG1lc3Nh Z2UgYm9keSB0byANCmt0ZmNpbmZvLXN1YnNjcmliZUBlZ3JvdXBzLmNvbS4gIFlv dSB3aWxsIGJlIGFza2VkIGZvciBhIA0KY29uZmlybWF0aW9uLiAgT25jZSB5b3Vy IHN1YnNjcmlwdGlvbiBoYXMgYmVlbiBhY2NlcHRlZCwgeW91IGNhbiANCnNlbmQg c3VwcG9ydCBxdWVzdGlvbnMgdG8ga3RmY2luZm9AZWdyb3Vwcy5jb20uICBUbyBs ZWFybiBtb3JlIA0KYWJvdXQgZUdyb3VwcyByZWFkIGh0dHA6Ly93d3cuZWdyb3Vw cy5jb20vLiAgVG8gbGVhdmUgdGhlIA0KbWFpbGluZyBsaXN0LCBzZW5kIGFuIGVt cHR5IG1lc3NhZ2UgdG8gDQprdGZjaW5mby11bnN1YnNjcmliZUBlZ3JvdXBzLmNv bS4NCg0KTWVzc2FnZXMgc2VudCB0byBrdGZjaW5mbyBzaG91bGQgYmUgcGxhaW4g QVNDSUkgdGV4dC4gIGh0bWwgY29kZSANCndhc3RlcyBjb21tdW5pY2F0aW9ucyBh bmQgaHVtYW4gdGltZTsgcGxlYXNlIHJlZnJhaW4gZnJvbSANCnNlbmRpbmcgaXQu DQoNCkEgcXVlcnkgcG9zdGVkIHRvIGt0ZmNpbmZvIG1heSBiZW5lZml0IG90aGVy IEtlcm1pdCB1c2Vycy4gIEkgDQp3aWxsIHRlbmQgdG8gZ2l2ZSBtb3JlIGF0dGVu dGlvbiB0byBhIHF1ZXJ5IGluIGt0ZmNpbmZvIHRoYW4gdG8gDQp0aGUgc2FtZSBx dWVyeSBzZW50IGluIGEgcGVyc29uYWwgbWVzc2FnZS4NCg0KTWVudGlvbiB5b3Vy IG9wZXJhdGluZyBzeXN0ZW0gKExpbnV4LCBNUy1ET1Mgb3Igc29tZXRoaW5nIGVs c2UpLCANCktlcm1pdCB2ZXJzaW9uIG51bWJlciBhbmQgS1RGQyB2ZXJzaW9uIG51 bWJlci4gIEJlIGFzIHNwZWNpZmljIA0KYXMgcG9zc2libGUgaW4gZGVzY3JpYmlu ZyB0aGUgcHJvYmxlbS4gIElmIHRoZXJlIGlzIGFuIGVycm9yIA0KbWVzc2FnZSwg cmVjb3JkIGFuZCByZXBvcnQgaXQuICBZb3VyIEluRmlsZSBvciBPdXRGaWxlIG9y IHRoZSANCnNlc3Npb24gbG9nIG1heSBiZSByZXF1aXJlZC4NCg0KSWYgeW91IGNh biBub3Qgc2VuZCBlLW1haWwsIHBvc3QgaXMgYWNjZXB0YWJsZS4gIE15IGFkZHJl c3MgaXMgDQpnaXZlbiBiZWxvdyB1bmRlciBSZWdpc3RyYXRpb24uICBQbGVhc2Ug ZG8gbm90IGFzayBmb3Igc3VwcG9ydCANCmJ5IHRlbGVwaG9uZS4NCg0KKiogUmVm ZXJlbmNlcw0KDQoxLiAgS2VybWl0IGluIG1hbnkgZm9ybXMgaXMgYXZhaWxhYmxl IGZyb20NCmh0dHA6Ly93d3cuY2MuY29sdW1iaWEuZWR1L2tlcm1pdC8gYW5kIGZy b20NCmZ0cDovL2tlcm1pdC5jb2x1bWJpYS5lZHUva2VybWl0Ly4gIEtlcm1pdCBz b2Z0d2FyZXMgYXJlDQpwcm9kdWN0cyBvZiBLZXJtaXQgRGlzdHJpYnV0aW9uLCBD b2x1bWJpYSBVbml2ZXJzaXR5IENlbnRlciBmb3INCkNvbXB1dGluZyBBY3Rpdml0 aWVzLCA2MTIgV2VzdCAxMTV0aCBTdHJlZXQsIE5ldyBZb3JrLCBOWSAxMDAyNSwN ClVTQS4NCg0KMi4gIEZpcnN0Q2xhc3MgaXMgcHJvZHVjZWQgYnkgU29mdEFyYyBJ bmMuICBTZWUgDQpodHRwOi8vd3d3LnNvZnRhcmMuY29tLy4NCg0KMy4gIE1TLURP UyBLZXJtaXQgaXMgZG9jdW1lbnRlZCBpbiBfVXNpbmcgTVMtRE9TIEtlcm1pdF8s IFNlY29uZA0KRWRpdGlvbiBieSBDaHJpc3RpbmUgTS4gR2lhbm9uZSwgKEMpIDE5 OTIsIEJ1dHRlcndvcnRoLUhlaW5lbWFubg0KLyBEaWdpdGFsIFByZXNzLiAgQy1L ZXJtaXQgaXMgZG9jdW1lbnRlZCBpbiBfVXNpbmcgQy1LZXJtaXRfLA0KU2Vjb25k IEVkaXRpb24gYnkgRnJhbmsgZGEgQ3J1eiBhbmQgQ2hyaXN0aW5lIE0uIEdpYW5v bmUsIChDKQ0KMTk5NywgQnV0dGVyd29ydGgtSGVpbmVtYW5uIC8gRGlnaXRhbCBQ cmVzcy4gIEFkZGl0aW9uYWwNCmluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBmcm9t IHRoZSBXZWIgc2l0ZSBpbiByZWZlcmVuY2UgMS4NCg0KRmVhdHVyZXMgb2YgdGhl IEtlcm1pdCBsYW5ndWFnZSBhZGRpdGlvbmFsIHRvIHRob3NlIGRlc2NyaWJlZCBp bg0KdGhlIG1hbnVhbHMgYXJlIGRlc2NyaWJlZCBpbiBmaWxlcyBhdmFpbGFibGUg ZnJvbSB0aGUgQ29sdW1iaWENCnNlcnZlciwgcmVmZXJlbmNlIDEuDQoNCjQuICBJ bmZvcm1hdGlvbiBhYm91dCBVQVJUcyBpcyBhdmFpbGFibGUgYXQgdGhlc2UgbG9j YXRpb25zLiAgDQpodHRwOi8vd3d3LmxpbnV4ZG9jLm9yZy9IT1dUTy9IYXJkd2Fy ZS1IT1dUTy0xMC5odG1sIA0KaHR0cDovL3d3dy5yZWRoYXQuY29tL3N1cHBvcnQv ZG9jcy9ob3d0by8vUFBQLUhPV1RPL1BQUC1IT1dUTy04Lmh0bWwNCg0KU3VibWl0 ICJVQVJUIDE2NTUwQSIgdG8gYSBXZWIgc2VhcmNoZXIgdG8gZmluZCBhZGRpdGlv bmFsIA0KaW5mb3JtYXRpb24uDQoNCioqIENvbmRpdGlvbnMgb2YgVXNlDQoNClRo ZSBjb3B5cmlnaHQgdG8gZWFjaCBmaWxlIGluIHRoZSBLVEZDIHBhY2thZ2UgYmVs b25ncyB0byB0aGUgDQphdXRob3IuICBUaGUgZmlsZXMgYXJlIG5vdCBpbiB0aGUg cHVibGljIGRvbWFpbi4gIFBsZWFzZSANCmF0dHJpYnV0ZSBLVEZDIHRvIHRoZSBh dXRob3Igd2hlbiBtZW50aW9uaW5nIGl0IGluIGEgDQpwdWJsaWNhdGlvbi4NCg0K SWYgcmVnaXN0ZXJlZCwgeW91IG1heSANCg0KLi4uIG1vZGlmeSB0aGUgZmlsZXMg Zm9yIHlvdXIgaW5kaXZpZHVhbCB1c2UuDQoNCi4uLiB1c2UgdGhlIG9yaWdpbmFs IG9yIG1vZGlmaWVkIGZpbGVzIGZvciBwZXJzb25hbCwgYWNhZGVtaWMgDQogICAg b3IgY29tbWVyY2lhbCBjb21tdW5pY2F0aW9ucy4NCg0KLi4uIGRpc3RyaWJ1dGUg dGhlIGFyY2hpdmUga3RmYzBkNS42NCwgdGhlIGFyY2hpdmUga3RmYzBkNS56aXAN CglvciB0aGUgY29tcGxldGUgc2V0IG9mIDcgZmlsZXMuICBUaGUgcGFja2FnZSBt YXkgYmUNCglkaXN0cmlidXRlZCB2aWEgYSBuZXR3b3JrIGZyb20gYSBzZXJ2ZXIg ZnJlZWx5IGFjY2Vzc2libGUgdG8NCgl0aGUgcHVibGljIG9yIGJ5IHN0b3JhZ2Ug bWVkaWEuDQoNClJlZ2FyZGxlc3Mgb2YgcmVnaXN0cmF0aW9uIHlvdSBtYXkgbm90 IA0KDQouLi4gdmlvbGF0ZSBteSBjb3B5cmlnaHQgYnkgcGxhZ2lhcmlzbS4gIFRo aXMgaW5jbHVkZXMgDQoJYXBwcm9wcmlhdGlvbiBhbmQgcHVibGljYXRpb24gb2Yg dGhlIG5hbWUgS1RGQyBhbmQgb2YgYW55IA0KCXNpZ25pZmljYW50IHBvcnRpb24g b2YgYSBLVEZDIGZpbGUuDQoNCi4uLiBkaXN0cmlidXRlIGluZGl2aWR1YWwgZmls ZXMgaXNvbGF0ZWQgZnJvbSB0aGUgS1RGQyBwYWNrYWdlLg0KDQouLi4gZGlzdHJp YnV0ZSBLVEZDIHVuZGVyIGEgZGlmZmVyZW50IG5hbWUuDQoNCi4uLiBwdWJsaXNo IHNpbWlsYXIgZGF0YSB1bmRlciBhIG5hbWUgcmVzZW1ibGluZyBLVEZDLiBLdEZD LCANCglrdGZjLCBLVEZDMyBhbmQgWEtGVEMsIGZvciBleGFtcGxlLCBhcmUgdG9v IHNpbWlsYXIuDQoNCi4uLiBzdWdnZXN0LCBpbXBseSBvciBzdGF0ZSBhbiBhZmZp bGlhdGlvbiBiZXR3ZWVuIEtURkMgYW5kIGFuIA0KCWVudGl0eSBvdGhlciB0aGFu IHRoZSBhdXRob3IuDQoNCi4uLiBjaGFyZ2UgYSBmZWUgZm9yIGRpc3RyaWJ1dGlv biBvZiBLVEZDLg0KDQouLi4gZGlzdHJpYnV0ZSBLVEZDIHRvIGN1c3RvbWVycyBv ZiBhIGJ1c2luZXNzLCBleGNsdXNpdmUgb2YgdGhlIA0KCXB1YmxpYyBhdCBsYXJn ZS4gIFRoaXMgaW5jbHVkZXMgZGlzdHJpYnV0aW9uIG9uIGEgc3RvcmFnZSANCglt ZWRpdW0gYW5kIGRpc3RyaWJ1dGlvbiB2aWEgYSBuZXR3b3JrLg0KDQouLi4gdXNl IEtURkMgd2l0aGluIGEgaGFyZHdhcmUgb3Igc29mdHdhcmUgcHJvZHVjdCB3aGlj aCBpcyANCglnaXZlbiBhd2F5IG9yIHNvbGQuDQoNCkZvciBhbnkgdXNlIG9yIGRp c3RyaWJ1dGlvbiBvdXRzaWRlIG9mIHRoZXNlIGNvbmRpdGlvbnMgcGxlYXNlIA0K Y29udGFjdCB0aGUgYXV0aG9yLg0KDQoqKiBGZWUNCg0KRm9yIGFuIGluZGl2aWR1 YWwsIHRoZSByZWdpc3RyYXRpb24gZmVlIGlzIDI1IFVTIGRvbGxhcnMgb3IgMzUg DQpDYW5hZGlhbiBkb2xsYXJzLiAgVGhpcyBjb3ZlcnMgdXNlIG9mIHZlcnNpb24g MC41IG9mIEtURkMgYW5kIA0KZnV0dXJlIHJldmlzaW9ucyB1bnRpbCBmdXJ0aGVy IG5vdGljZS4gIFRoZSBmZWUgYWxzbyBjb3ZlcnMgDQpjb25zdWx0YXRpb24gdG8g YXNzaXN0IGluIGluc3RhbGxpbmcsIGNvbmZpZ3VyaW5nIGFuZCANCnRyb3VibGVz aG9vdGluZyB1cCB0byBhYm91dCAzMCBtaW51dGVzIG9mIG15IHRpbWUuICBUaGUg DQptYWduaXR1ZGUgb2YgdGhlIGZlZSBpcyB2YWxpZCB1bnRpbCAyMDAwIEF1Z3Vz dCAzMSBhbmQgbWF5IA0KY2hhbmdlIGFmdGVyIHRoYXQgZGF0ZS4NCg0KRXZlcnlv bmUgbWVudGlvbmVkIHVuZGVyIFRoYW5rcyBpcyBleGVtcHQgZnJvbSBwYXltZW50 Lg0KDQpFeHRlbnNpdmUgdGltZSBtYXkgYmUgcmVxdWlyZWQgdG8gYWRhcHQgYSBz Y3JpcHQgdG8gYSBzcGVjaWZpYyANCnB1cnBvc2UuICBBc3Npc3RhbmNlIHdpdGgg bW9kaWZpY2F0aW9uIG9mIHNjcmlwdHMgbWF5IGJlIHN1YmplY3QgDQp0byBjaGFy Z2UgaW4gYWRkaXRpb24gdG8gdGhlIEtURkMgcmVnaXN0cmF0aW9uIGZlZS4NCg0K VGhlIGZlZSBkb2VzIG5vdCBpbmNsdWRlIHN1cHBvcnQgZm9yIEtlcm1pdC4NCg0K KiogUmVnaXN0cmF0aW9uDQoNClJlZ2lzdHJhdGlvbiBpcyBieSBzZW5kaW5nIG1l IGEgbmFtZSwgY29udGFjdCBhZGRyZXNzIGFuZCB0aGUgDQpmZWUgc3BlY2lmaWVk IHVuZGVyIEZlZXMuICBUaGUgcG9zdCBpcyBub3QgcGVyZmVjdGx5IHJlbGlhYmxl OyBJIA0KY2FuIG5vdCB0YWtlIHJlc3BvbnNpYmlsaXR5IGZvciBhIGxvc3Mgb2Yg Y2FzaCBvciBvdGhlciANCmluc3RydW1lbnQgb2YgcGF5bWVudCBpbiB0aGUgbWFp bC4NCg0KUmVnaXN0cmF0aW9uIGZlZXMgYXJlIG15IHByaW5jaXBhbCBzb3VyY2Ug b2YgaW5jb21lOyBJIHJlYWxseSANCmFwcHJlY2lhdGUgcmVjZWl2aW5nIHRoZW0u ICBTdXBwb3J0IGNhbiBub3QgYmUgcHJvdmlkZWQgdG8gdXNlcnMgDQp3aG8gYXJl IG5vdCByZWdpc3RlcmVkLiAgSWYgdGhlIGZlZSBpcyBiZXlvbmQgeW91ciBtZWFu cywgbGV0IG1lIA0Ka25vdy4NCg0KUGV0ZXIgRWFzdGhvcGUsIHBldGVyX2Vhc3Ro b3BlQGd1bGZuZXQucGluYy5jb20NCjI3MDEgUHJpdmF0ZWVycyBSb2FkDQpSUjIs IFBlbmRlciBJc2xhbmQsIEJDIA0KVjBOIDJNMiBDYW5hZGENCg0KKiogVGhhbmtz IHRvICANCg0KLi4uIE1hcmlhIFdhdHNvbiBmb3IgZXh0ZW5zaXZlIHRlc3Rpbmcu DQouLi4gdGhlIHN0YWZmIG9mIHRoZSBLZXJtaXQgUHJvamVjdCBhdCBDb2x1bWJp YSBVbml2ZXJzaXR5IGZvciANCiAgICBhc3Npc3RhbmNlIHdpdGggS2VybWl0OyBp biBwYXJ0aWN1bGFyIHRvIEplZmZyZXkgQWx0bWFuLCANCiAgICBGcmFuayBkYSBD cnV6IGFuZCBDaHJpc3RpbmUgR2lhbm9uZS4NCi4uLiBQcm9mZXNzb3IgSm9zZXBo IERvdXBuaWsgZm9yIGFzc2lzdGFuY2Ugd2l0aCBNUy1ET1MgS2VybWl0Lg0KDQoq KiBIaXN0b3J5DQoNCjE5OTkgSmFudWFyeSAgUHJvdG90eXBlIG9mIEtURkMgZGV2 ZWxvcGVkIHdpdGggS2VybWl0IDMuMTQuDQoxOTk5IDAyIDE2ICAgIEtURkMwLjAg dGVzdGluZy4NCjE5OTkgMDIgMjAgICAgS2VybWl0IDMuMTUgaW5zdGFsbGVkLg0K MTk5OSAwMiAyMCAgICBBdHRlbXB0IHRvIHVzZSBcZnN1YnN0cmluZyhcJWEsMSwx KSB0byBpZGVudGlmeSANCiAgICAgICAgICAgICAgdW5yZWFkIG1lc3NhZ2VzLg0K MTk5OSAwNSAxMSAgICBcZnN1YnN0cihcJW0sMSwxKSBzdWNjZXNzZnVsbHkgaWRl bnRpZmllZCB1bnJlYWQgDQogICAgICAgICAgICAgIG1lc3NhZ2VzLg0KMTk5OSAw NSAxNiAgICBJbXByb3ZlZCBleHRyYWN0aW9uIG9mIG1lc3NhZ2UgbnVtYmVyLg0K MTk5OSAwNSAxNy0xOCBJbmNvcnBvcmF0ZWQgXGZzdWJzdHIoXCVtLDEsMSkgdG8g c2ltcGxpZnkgDQogICAgICAgICAgICAgIHByb2Nlc3Npbmcgb2YgaGVhZGVyIG9m IG91dGdvaW5nIG1lc3NhZ2UuDQoxOTk5IDA1IDIyICAgIEtURkMwLjEgcmVsZWFz ZWQgZm9yIHRlc3RpbmcuDQoxOTk5IDA1IDI2ICAgIFJlcG9ydGVkIGJ1ZyBpbiBo YW5kbGluZyBvZiBhIGJsYW5rIGNoYXJhY3RlciANCiAgICAgICAgICAgICAgKDIw X0YpIGluIGFuIGFyZ3VtZW50IHRvIGEgbWFjcm8sIHRvIEtlcm1pdCANCiAgICAg ICAgICAgICAgU3VwcG9ydC4NCjE5OTkgMDUgMjggICAgSW5jb3Jwb3JhdGVkIG1p bnB1dCB0byBzaW1wbGlmeSBoYW5kbGluZyBvZiANCiAgICAgICAgICAgICAgc3Bl Y2lhbCBjYXNlcyBvZiBpbnB1dCwgaW5jbHVkaW5nIFtNb3JlXSBwcm9tcHQuDQox OTk5IDA1IDI5LTA2IDAzIENvcnJlY3RlZCBzeW50YXggb2Ygc3RyaW5nIGNvbXBh cmlzb25zOyBlZy4gIA0KICAgICAgICAgICAgICBpZiBlcXVhbCBcZnN1YnN0cigu Li4pICBcJW0gY2hhbmdlZCB0byBpZiBlcXVhbCANCiAgICAgICAgICAgICAge1xm c3Vic3RyKC4uLil9IHtcJW19Lg0KMTk5OSAwNiAwNS0wNiAwNyBBZGRlZCBoYW5k bGluZyBvZiBkZWZlY3RpdmUgYW5kIGFtYmlndW91cyANCiAgICAgICAgICAgICAg YWRkcmVzc2VzLiAgVmFyaW91cyBpbXByb3ZlbWVudHMgdXNpbmcgU1dJVENIIA0K ICAgICAgICAgICAgICBzdGF0ZW1lbnRzLg0KMTk5OSAwNiAxMiAgICBGaXhlZCBl bmQtb2YtZmlsZSBoYW5kbGluZy4gIERvdWJsZSBtZXNzYWdlIA0KICAgICAgICAg ICAgICBzZXBhcmF0b3Igbm8gbG9uZ2VyIG5lZWRlZCBhZnRlciBsYXN0IG1lc3Nh Z2UuDQoxOTk5IDA2IDI4ICAgIE1vdmVkIGRlbGV0aW9uIG9mIG1lc3NhZ2UgaW50 byBtYWNyb3MuDQoxOTk5IDA3IDA0ICAgIEltcHJvdmVkIHRoZSByZWNvZ25pdGlv biBvZiB0aGUgZW5kIG9mIGFuIGluY29taW5nIA0KICAgICAgICAgICAgICBtZXNz YWdlLg0KMTk5OSAwNyAwNS0xNCBNb3ZlZCBhbGwgY29kZSBmb3IgcmVjZWl2aW5n IG1lc3NhZ2VzIGludG8gbWFjcm9zLg0KMTk5OSAwNyAxNSAgICBBZGRlZCB1c2Vy IGNvbmZpZ3VyYXRpb24gc2VjdGlvbiBhdCBiZWdpbm5pbmcgb2YgDQogICAgICAg ICAgICAgIEtURkMuDQoxOTk5IDA3IDE2ICAgIFJlb3JnYW5pemVkIGNvZGUgcHJl Y2VkaW5nIG1hY3JvIGRlZmluaXRpb25zLg0KMTk5OSAwNyAxNyAgICBSZWxlYXNl ZCBLVEZDMC4yIGZvciB0ZXN0aW5nLg0KMTk5OSAwNyAxNy0xOCBJbXByb3ZlbWVu dHMgdG8gU2tpcERlamEuICBLZXJtaXQgMy4xNiBidWcgZm91bmQ6IA0KICAgICAg ICAgICAgICBsZWFkaW5nIGJsYW5rcyBkZWxldGVkIGJ5IElOUFVULCBsZWFkaW5n IGFuZCANCiAgICAgICAgICAgICAgdHJhaWxpbmcgYmxhbmtzIGRlbGV0ZWQgd2hl biBhcmd1bWVudCBpcyBwYXNzZWQgdG8gDQogICAgICAgICAgICAgIG1hY3JvLg0K MTk5OSAwNyAyMiAgICBJbXByb3ZlbWVudHMgaW4gaGFuZGxpbmcgb2YgbG9naW4u DQoxOTk5IDA4IDIzDQogLTE5OTkgMDkgMTUgIFNlbmRpbmcgb2YgbWVzc2FnZSBo ZWFkZXIgcmV3cml0dGVuIGluIG1hY3Jvcy4gDQoxOTk5IDA5IDIyICAgIEtURkMw LjMgc2NyaXB0IGZyb3plbi4NCjE5OTkgMDkgMjItMjMgU2ltcGxlIG1haWxib3gg dGlkeWluZyBjb2RlIGFkZGVkLg0KMTk5OSAxMSAwNyAgICBDb2RlIHRvIGF2b2lk IGEgbWVzc2FnZSBudW1iZXIgYmVnaW5uaW5nIHdpdGggMCAtLS0gDQogICAgICAg ICAgICAgIGVnLiAgIjA1Ii4NCjE5OTkgMTEgMTQgICAgS1RGQzAuNCBzY3JpcHQg ZnJvemVuLg0KICAgICAgICAgICAgICBLVEZDIHNwbGl0IGludG8gc2NyaXB0IGZv ciBzZW5kaW5nIGFuZCByZWNlaXZpbmcgDQogICAgICAgICAgICAgIG1lc3NhZ2Vz IFNSIGFuZCBzY3JpcHQgZm9yIHRpZHlpbmcgdGhlIG1haWxib3ggDQogICAgICAg ICAgICAgIFRJRFkuDQoxOTk5IDEyIDAzLTA0IENvZGUgZm9yIGFwcGx5aW5nICJz aWduYXR1cmUiIGxpbmVzIGF0IHRoZSBlbmQgb2YgDQogICAgICAgICAgICAgIGEg bWVzc2FnZSBhZGRlZCB0byBTUi4NCjIwMDAgMDEgMDQtMjAgQWRkZWQgY29kZSBm b3IgcmVhZGluZyBtZXNzYWdlcyBmcm9tIGRpcmVjdG9yaWVzIA0KICAgICAgICAg ICAgICBvdGhlciB0aGFuIHRoZSBtYWlsYm94Lg0KMjAwMCAwMiAwMS0wMyBDb2Rl IGNvbW1vbiB0byBTQ0FOLCBTUiBhbmQgVElEWSBtb3ZlZCB0byBQUk9MT0cuDQoy MDAwIDAyIDE5LTIxIE1haWxib3ggdGlkeWluZyBpbmNvcnBvcmF0ZWQgaW50byBT Q0FOIHRoZXJlYnkgDQogICAgICAgICAgICAgIG9ic29sZXRpbmcgVElEWS4NCjIw MDAgMDMgMDEtMDggTWlzY2VsbGFuZW91cyByZXZpc2lvbnMgdG8gUkVBRE1FLktG Qy4NCjIwMDAgMDMgMDktMTAgSW50ZXJuZXQgYWRkcmVzcyByZWNvZ25pdGlvbiBh ZGRlZDsgIixJbnRlcm5ldCIgbm8gDQogICAgICAgICAgICAgIGxvbmdlciByZXF1 aXJlZCBpbiBhZGRyZXNzLg0KMjAwMCAwMyAxMCAgICBOYW1lIFJFQURNRS5LRkMg Y2hhbmdlZCB0byBLVEZDMFA0LlRYVC4NCjIwMDAgMDMgMTEtMTkgTWlzY2VsbGFu ZW91cyByZXZpc2lvbnMgdG8gS1RGQzBQNC5UWFQuDQoyMDAwIDAzIDIwICAgIFJl dmlzaW9ucyB0byBLVEZDMFA0LlRYVCBhbmQgcHJlcGFyYXRpb25zIG9mIE1JTUUN CiAtMjAwMCAwNCAwNiAgYXJjaGl2ZS4NCjIwMDAgMDQgMDYgICAgRXJyb3IgaW4g Y2FsY3VsYXRpb24gb2YgYWdlIG9mIG1lc3NhZ2Ugd2l0aCANCiAgICAgICAgICAg ICAgYXR0YWNobWVudCBjb3JyZWN0ZWQuDQoyMDAwIDA0IDI0LTI4IERlZmluaXRp b24gb2YgZGlhbCBhbmQgY2hrbWRtIG1hY3JvcyBwbGFjZWQgaW4gDQogICAgICAg ICAgICAgIFBST0xPRzsgTVNLRVJNSVQuSU5JIGFuZCBNU0NVU1RPTS5JTkkgYXJl IG5vIA0KICAgICAgICAgICAgICBsb25nZXIgcmVxdWlyZWQuDQoyMDAwIDA0IDI4 ICAgIEluIFNSIGEgYnVnIGluIGlucHV0aW5nIGNvbnRyb2wgc2VxdWVuY2VzIHdo ZW4gDQogICAgICAgICAgICAgIHNlbmRpbmcgYSBtZXNzYWdlIHdhcyBjb3JyZWN0 ZWQuDQoyMDAwIDA1IDAxLTA0IE1pc2NlbGxhbmVvdXMgcmV2aXNpb25zIHRvIEtU RkMwUDQuVFhUIGFuZCANCiAgICAgICAgICAgICAgUkVBRE1FLktGQy4NCjIwMDAg MDUgMDggICAgTmFtZXMgb2Ygc2NyaXB0IGZpbGVzIGNoYW5nZWQgdG8gbG93ZXIg Y2FzZS4NCjIwMDAgMDUgMDkgICAgRG9jdW1lbnRhdGlvbiByZXZpc2VkIGFjY29y ZGluZ2x5Lg0KMjAwMCAwNSAxMCAgICBLRlRDMC40IFJlbGVhc2VkIHRvIHRoZSBL ZXJtaXQgUHJvamVjdCwgQ29sdW1iaWEgDQogICAgICAgICAgICAgIFVuaXZlcnNp dHkuDQoyMDAwIDA1IDE5ICAgIFwmb1sxXSB0ZXN0ZWQgaW4gcGxhY2Ugb2YgT3V0 TGluZS4NCjIwMDAgMDUgMjAgICAgRGVmaW5pdGlvbiBvZiBTYXZlTGluZSBtYWRl IHN5c3RlbSBkZXBlbmRlbnQuIA0KICAgICAgICAgICAgICBQcm9jZWR1cmUgU0xF QyByZW1vdmVkLg0KMjAwMCAwNSAxOS0yMSBNaXNjZWxsYW5lb3VzIHJldmlzaW9u cyB0byBrdGZjMGQ1LnR4dC4NCjIwMDAgMDUgMjQgICAgS1RGQzAuNSBSZWxlYXNl ZCB0byB0aGUgS2VybWl0IFByb2plY3QsIENvbHVtYmlhIA0KICAgICAgICAgICAg ICBVbml2ZXJzaXR5Lg0KDQoqKiBUcmFkZW1hcmtzDQoNCiJNYWNpbnRvc2giLCBB cHBsZSBDb21wdXRlciwgQ3VwZXJ0aW5vLCBDQS4NCiJGaXJzdENsYXNzIiwgU29m dEFyYyBJbmMuLCBNYXJraGFtLCBPTi4NCiJLZXJtaXQiLCBIZW5zb24gQXNzb2Np YXRlcywgSW5jLiwgTmV3IFlvcmssIE5ZLiBOYW1lIHVzZWQgd2l0aCANCiAgICAg IHBlcm1pc3Npb24gYnkgS2VybWl0IERpc3RyaWJ1dGlvbiwgQ29sdW1iaWEgVW5p dmVyc2l0eSANCiAgICAgIENlbnRlciBmb3IgQ29tcHV0aW5nIEFjdGl2aXRpZXMs IE5ldyBZb3JrLCBOWS4NCiJJQk0gUEMiLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz IE1hY2hpbmVzIENvcnAuLCBBcm1vbmssIE5ZLg0KIkxpbnV4IiwgcmVnaXN0cmFu dDogQ3JvY2UsIFdpbGxpYW0gUi4gRGVsbGEsIEpyLiwgQm9zdG9uLCBNQS4gDQog ICAgICBsYXN0IGxpc3RlZCBvd25lcjogVG9ydmFsZHMsIExpbnVzLCBTYW50YSBD bGFyYSwgQ0EuDQoiTVMtRE9TIiwgIk1pY3Jvc29mdCBXaW5kb3dzIiwgTWljcm9z b2Z0IENvcnBvcmF0aW9uLCBSZWRtb25kLCANCiAgICAgIFdBLg0KIlJlZCBIYXQi LCByZWdpc3RyYW50OiBSZWQgSGF0IFNvZnR3YXJlLCBJbmMuICBEdXJoYW0sIE5v cnRoIA0KICAgICAgQ2Fyb2xpbmEuDQoiVU5JWCIgZXhjbHVzaXZlIGxpY2Vuc2Vl OiBYL09wZW4gQ29tcGFueSBMdGQuDQogICAgICByZWdpc3RyYW50OiBBbWVyaWNh biBUZWxlcGhvbmUgYW5kIFRlbGVncmFwaCBDb21wYW55IA0KICAgICAgQ29ycG9y YXRpb24sIE5ldyBZb3JrLCBOWS4NCiAgICAgIGxhc3QgbGlzdGVkIG93bmVyOiBV TklYIFN5c3RlbSBMYWJvcmF0b3JpZXMsIEluYy4gIA0KICAgICAgRGVsYXdhcmUs IE5KLg0K --simple boundary Content-type: text/plain; charset=us-ascii; name="mailout" Content-Disposition: inline; filename="mailout" Content-Transfer-Encoding: base64 VG86IFBldGVyX0Vhc3Rob3BlQGd1bGZuZXQucGluYy5jb20NClN1YmplY3Q6IG1l c3NhZ2UgMQ0KVGhpcyBtZXNzYWdlIGNhbiBiZSBzZW50Lg0KKipFbmRPZk1zZyoq DQpUbzogUGV0ZXJfRWFzdGhvcGVAZ3VsZm5ldC5waW5jLmNvbQ0KUGV0ZXJfRWFz dGhvcGVAZ3VsZm5ldC5waW5jLmNvbQ0KU3ViamVjdDogbWVzc2FnZSAyDQpUaGlz IG1lc3NhZ2UgY2FuIGFsc28gYmUgc2VudC4NCkl0IGhhcyB0d28gYWRkcmVzc2Vz Lg0KKipFbmRPZk1zZyoqDQoqKkVuZE9mTXNnKioNClRvOiBQZXRlcl9FYXN0aG9w ZUBndWxmbmV0LnBpbmMuY29tDQpDb3BpZXM6IFBldGVyX0Vhc3Rob3BlQGd1bGZu ZXQucGluYy5jb20NClN1YmplY3Q6IG1lc3NhZ2UgMw0KVGhpcyBtZXNzYWdlIGZv bGxvd3MgdHdvIHNlcGFyYXRvciBsaW5lcyBhbmQgDQpjYW4gbm90IGJlIHNlbnQu ICBUaGVyZSBpcyBhbiBhZGRyZXNzIGFuZCBhDQoiQ29waWVzIiBhZGRyZXNzLg0K --simple boundary Content-type: application; charset=us-ascii; name="prolog0.5" Content-Disposition: inline; filename="prolog0.5" Content-Transfer-Encoding: base64 OyBGaWxlIHByb2xvZzAuNSwgY29weXJpZ2h0IChDKSBQZXRlciBMeWFsbCBFYXN0 aG9wZSwgMjAwMC4NCjsgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCg0KY2xzICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgQ2xlYXIgc2NyZWVuLg0KZWNobyB7 S1RGQzogS2VybWl0IFRvIEZpcnN0Q2xhc3ModG0pLiAgIENvcHlyaWdodCAoQykg UGV0ZXIgTHlhbGwgRWFzdGhvcGUsIDIwMDAufQ0KZWNobyB7QWxsIHJpZ2h0cyBy ZXNlcnZlZC4gIFZlcnNpb24gMC41IHJlbGVhc2VkIDIwMDAgMDUgMjQuICBEb2N1 bWVudGF0aW9uIGlzIGlufQ0KZWNobyB7ZmlsZSBrdGZjMGQ1LnR4dC59DQoNCjsg PT09PT09PT09PT09IEJlZ2luIHVzZXIgY29uZmlndXJhdGlvbiBzZWN0aW9uID09 PT09PT09PT09PQ0Kc2V0IG1vZGVtIEhBWUVTICAgICAgICA7IENoYW5nZSB0aGlz IHRvIHlvdXIgbW9kZW0gdHlwZSwgc2VlIG1vZGVtc1xyZWFkLm1lLg0KICAgICAg ICAgICAgICAgICAgICAgICA7IFNwZWVkIGlzIHNldCBpbiB0aGUgbW9kZW0gc2Ny aXB0ICouc2NyLiANCnNldCBwb3J0IGNvbTIgICAgICAgICAgOyBDaGFuZ2UgaWYg ZGVzaXJlZC4gIElmIENPTTMgb3IgNCwgcmVhZCBLRVJNSVQuQldSLg0KDQpkZWYg X2RpYWxudW0ge30gICA7IFBob25lIG51bWJlciBvZiB5b3VyIEZDIHNlcnZlci4N CjtkZWYgX2RpYWxudW0ge1Q1MzkyMTU3fSAgIDsgR3VsZk5ldC4gIFQgbWVhbnMg dG9uZSByYXRoZXIgdGhhbiBwdWxzZSBkaWFsaW5nLg0KO2RlZiBfZGlhbG51bSB7 VDEyNTA1MzkyMTU3fSAgIDsgTG9uZyBkaXN0YW5jZS4NCg0KOyBVc2VyIGlzIEFz a2VkIGZvciBVc2VyaWQgaWYgQVUgaXMgMS4gIElmIEFVIGlzIDAgdGhlIHVzZXIg aXMgbm90IGFza2VkIGFuZA0KOyBVc2VyaWQgcmV0YWlucyB0aGUgdmFsdWUgZGVm aW5lZCBiZWxvdy4NCmRlZiBBVSAxIA0KDQo7IFVzZXIgaXMgQXNrZWQgZm9yIFBh c3N3b3JkIGlmIEFQIGlzIDEuICBJZiBBUCBpcyAwIHRoZSB1c2VyIGlzIG5vdCBh c2tlZCANCjsgYW5kIFBhc3N3b3JkIHJldGFpbnMgdGhlIHZhbHVlIGRlZmluZWQg YmVsb3cuDQpkZWYgQVAgMQ0KDQpkZWYgVXNlcmlkICAge2d1ZXN0fSAgIDsgWW91 ciBVc2VyaWQgaXMgbmVlZGVkIGhlcmUgb25seSBpZiBBVSBpcyAwDQo7IENBVVRJ T046IGlmIHlvdXIgcGFzc3dvcmQgaXMgaGVyZSBhbnlvbmUgd2l0aCBhY2Nlc3Mg dG8geW91ciBjb21wdXRlcg0KOyBjYW4gcmVhZCBpdC4NCmRlZiBQYXNzd29yZCB7 cGxlYXNlfSAgIDsgWW91ciBQYXNzd29yZCBpcyBuZWVkZWQgaGVyZSBvbmx5IGlm IEFQIGlzIDANCg0KOyBUaGUgbmFtZXMgb2YgdGhlIGZpbGVzIGZvciBpbmNvbWlu ZyBhbmQgb3V0Z29pbmcgbWVzc2FnZXMgYXJlIHVzZXINCjsgZGVmaW5hYmxlLiAg RmFjdG9yeSBkZWZhdWx0cyBhcmUgbWFpbGluIGFuZCBtYWlsb3V0Lg0KYXNnIElu RmlsZSBtYWlsaW4gICAgICAgICAgICAgICAgDQo7YXNnIEluRmlsZSBcdihuZGF0 ZSkuaW4gICAgICAgOyBOYW1lIGFjY29yZGluZyB0byBkYXRlDQphc2cgT3V0Rmls ZSBtYWlsb3V0DQo7YXNnIE91dEZpbGUgXHYobmRhdGUpLm91dCAgICAgOyBOYW1l IGFjY29yZGluZyB0byBkYXRlDQpkZWYgTVNlcCB7KipFbmRPZk1zZyoqfSAgICAg ICAgICAgICAgIDsgTWVzc2FnZSBzZXBhcmF0b3INCg0KOyBFYWNoIG1lc3NhZ2Ug aW4gT3V0RmlsZSBpcyBjb25maXJtZWQgYmVmb3JlIHNlbmRpbmcgaWYgQ1MgaXMg MS4gDQo7IE90aGVyd2lzZSBlYWNoIG1lc3NhZ2UgaW4gT3V0RmlsZSBpcyBzZW50 IHdpdGhvdXQgY29uZmlybWF0aW9uLg0KZGVmIENTIDEgDQoNCjsgVXNlciBpcyBw cm9tcHRlZCBmb3IgQ29uZmlybWF0aW9uIGJlZm9yZSBEZWxldGluZyBhIE1lc3Nh Z2UgZnJvbSANCjsgdGhlIHNlcnZlciBpZiBDRE0gaXMgMS4gIElmIENETSBpcyAw IHRoZSBtZXNzYWdlIGlzIGRlbGV0ZWQgd2l0aG91dCANCjsgY29uZmlybWF0aW9u Lg0KZGVmIENETSAxIA0KDQo7IEVhY2ggbWVzc2FnZSBjYW4gYmUgRGVsZXRlZCBm cm9tIHNlcnZlciBBZnRlciBpdCBpcyBSZWNlaXZlZCBpZiBEQVIgIA0KOyBpcyAx LiAgSWYgREFSIGlzIDAsIG1lc3NhZ2VzIGFyZSBub3QgZGVsZXRlZCBpbW1lZGlh dGVseSBhZnRlciByZWNlaXB0Lg0KZGVmIERBUiAwIA0KDQo7IFRoZSBmaWxlIGNv bnRhaW5pbmcgb3V0Z29pbmcgbWVzc2FnZXMgaXMgZGVsZXRlZCBhZnRlciB0aGUg bWVzc2FnZXMgDQo7IGhhdmUgYmVlbiBzZW50IGlmIERPRkFTIGlzIDEuICBJZiBE T0ZBUyBpcyAwIHRoZSBmaWxlIGlzIGxlZnQgaW4gcGxhY2UuDQpkZWYgRE9GQVMg MCANCg0KOyBTcGVjaWZ5IHRoZSBzaWduYXR1cmUgbGluZXMuDQo7IFRoZXNlIGxp bmVzIGFyZSBhcHBsaWVkIHRvIHRoZSBlbmQgb2YgZWFjaCBtZXNzYWdlIGJ5IA0K OyB0aGUgcHJvY2VkdXJlIFNpZyBpbnZva2VkIGluIHRoZSBwcm9jZWR1cmUgUHJv Y2VlZE1zZy4NCmRlZiBTaWdMZW4gMyAgICAgICAgICAgICAgICAgICAgICA7IE51 bWJlciBvZiBsaW5lcyBpbiBzaWduYXR1cmUNCmRlY2xhcmUgXCZzW1xtKFNpZ0xl bildICAgICAgICAgICA7IERlY2xhcmUgdGhlIHNpZ25hdHVyZSBhcnJheQ0KZGVm IFwmc1sxXSB7IH0NCmRlZiBcJnNbMl0ge1NlbnQgd2l0aCBLZXJtaXQgYW5kIEtU RkN9DQpkZWYgXCZzWzNdIHtSZWNvbW1lbmRlZCByZWFkaW5nOiAgaHR0cDovL3d3 dy5jYy5jb2x1bWJpYS5lZHUva2VybWl0L30NCg0KZGVmIFdhaXRUaW1lIDYwICAg ICAgICAgICAgICAgICAgIDsgc2Vjb25kcyB0byB3YWl0IGZvciBpbnB1dC4NCjsg V2l0aCBtb2RlbSBzcGVlZHMgYmVsb3cgMTQsNDAwIGIvcyB0aGUgZGVsYXlzIGR1 cmluZyBsb2dpbiBjYW4gYmUgbG9uZyENCg0Kc2V0IGlucHV0IGNhc2Ugb2JzZXJ2 ZQ0Kc2V0IGlucHV0IHRpbWVvdXQgcXVpdA0Kc2V0IHRyYW5zbGF0aW9uIGlucHV0 IG9mZg0KO2lmIGV4aXN0IFx2KG5kYXRlKS5sb2cgZGVsIFx2KG5kYXRlKS5sb2cg IDsgRGVsZXRlIG9sZCBzZXNzaW9uIGxvZw0KO2xvZyBzZXNzaW9uIFx2KG5kYXRl KS5sb2cgICAgICAgOyBzdGFydCBzZXNzaW9uIGxvZw0KOyA9PT09PT09PT09PT0g RW5kIHVzZXIgY29uZmlndXJhdGlvbiBzZWN0aW9uID09PT09PT09PT09PQ0KDQo7 IEdsb2JhbCB2YXJpYWJsZSBJbkxpbmUgc3RvcmVzIGEgbGluZSByZWNlaXZlZCBi eSBpbnB1dC4NCjsgR2xvYmFsIHZhcmlhYmxlIE91dExpbmUgc3RvcmVzIGEgbGlu ZSBwZW5kaW5nIG91dHB1dC4NCiANCnhpZiBlcXVhbCBcdihzeXN0ZW0pIHtNUy1E T1N9IHsNCiAgeGlmIDwgXHYodmVyc2lvbikgMzE2IHsNCiAgICBlY2hvIHtNUy1E T1MgS2VybWl0IDMuMS42IG9yIGxhdGVyIGlzIHJlcXVpcmVkLiAgR2V0IGl0IGZy b219DQogICAgZWNobyB7aHR0cDovL3d3dy5jb2x1bWJpYS5lZHUva2VybWl0L21z a2VybWl0Lmh0bWx9DQogICAgZXhpdA0KICB9DQp9DQoNCnhpZiBlcXVhbCBcbShf ZGlhbG51bSkge30gew0KICBlY2hvIHtUaGVyZSBpcyBubyBzZXJ2ZXIgcGhvbmUg bnVtYmVyLn0NCiAgZWNobyB7UmVhZCBrdGZjbWRuLnR4dCBhbmQgc2V0IHlvdXIg c2VydmVyIHBob25lIG51bWJlciBpbn0NCiAgZWNobyB7dGhlIFVzZXIgQ29uZmln dXJhdGlvbiBzZWN0aW9uIG9mIHRoZSBwcm9sb2cgZmlsZS59DQogIGV4aXQNCn0N Cg0KYXNnIFNlcExlbmd0aCBcZmxlbmd0aChcbShNU2VwKSkgOyBSZWNvcmQgbGVu Z3RoIGZvciBjb252ZW5pZW5jZQ0KDQo7IGVycmV4dCBtYWNybywgZm9yIHVzZSBp biBzY3JpcHRzIHRoYXQgd2FudCB0byBoYW5nIHVwIGEgZGlhbGVkDQo7IG9yIG5l dHdvcmsgY29ubmVjdGlvbiBpZiB0aGVyZSBpcyBhbnkgZXJyb3IuDQo7IFwzIGlz IHRoZSBjaGFyYWN0ZXIgZnJvbSA8Y3RybD5DOyBpdCBzaWduYWxzICJjYW5jZWwi IHRvIHRoZSBGQyBTZXJ2ZXIuDQo7IFRodXMgImVycmV4dCB7QmxhaH0gXDMiIHdy aXRlcyAiQmxhaCIgdG8gdGhlIHNjcmVlbiwgYWJvcnRzIGFueSANCjsgY29tbWFu ZCBvbiB0aGUgRkMgc2VydmVyIGFuZCB0ZXJtaW5hdGVzIGV4ZWN1dGlvbiBvZiBL ZXJtaXQuDQpkZWYgZXJyZXh0IHsNCiAgZWNobyB7RXJyb3I6IFwlMX0NCiAgaWYg PiBcdihhcmdjKSAxIG91dHB1dCB7XCUyfQ0KICBoYW5ndXANCiAgcGF1c2UgMg0K ICBleGl0DQp9DQoNCjsgY2hrbWRtIGFuZCBkaWFsIGFyZSBmcm9tIE1TS0VSTUlU LklOSS4NCjsNCjsgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgZGlhbGluZyBzY3JpcHQg YXZhaWxhYmxlIGZvciBnaXZlbiBtb2RlbSB0eXBlLg0KOyBUaGlzIGFsbG93cyBf TU9ERU0gZGVmaW5pdGlvbiB0byBiZSBjaGFuZ2VkIGluIE1TQ1VTVE9NLklOSSBh bmQgZXZlbg0KOyBvbiB0aGUgZmx5IGFmdGVyIGluaXRpYWxpemF0aW9uLg0KZGVm IGNoa21kbSB7DQogIGFzZyBfbWRtc2NyDQogIGlmIG5vdCBlcSAiXCQoTURNU0NS KSIgIiIgYXNnIF9tZG1zY3IgXCQoTURNU0NSKQ0KICBpZiBleGlzdCBcbShfbWRt c2NyKSBlbmQgMA0KICB4aWYgZXhpc3QgXHYoaW5pZGlyKU1PREVNU1xcXG0oX21v ZGVtKS5TQ1Igew0KICAgIGFzZyBfbWRtc2NyIFx2KGluaWRpcilNT0RFTVNcXFxt KF9tb2RlbSkuU0NSDQogIH0NCiAgeGlmIG5vdCBkZWYgX21kbXNjciB7DQogICAg eGlmIGlucGF0aCBcbShfbW9kZW0pLlNDUiB7DQogICAgICBhc2cgX21kbXNjciBc dihpbnBhdGgpXG0oX21vZGVtKS5TQ1INCiAgICB9DQogIH0NCiAgaWYgbm90IGRl ZiBfbWRtc2NyIGVuZCAxDQogIGlmIG5vdCBleGlzdCBcbShfbWRtc2NyKSBlbmQg MQ0KICBlbmQgMA0KfQ0KDQpkZWYgZGlhbCB7DQogIGxvY2FsIGNhciBwYXIgc3Rh dA0KICBkbyBjaGttZG0NCiAgaWYgZmFpbCBlcnJleHQge0RpYWxpbmcgc2NyaXB0 IG5vdCBmb3VuZC59DQogIGFzZyBcJTEgXG0oX2RpYWxudW0pDQogIGFzZyBjYXIg XHYoY2FycmllcikNCiAgYXNnIHBhciBcdihwYXJpdHkpDQogIHNldCBjYXJyaWVy IG9mZg0KICBzZXQgcGFyaXR5IG5vbmUNCiAgdGFrZSBcbShfbWRtc2NyKQ0KICBh c2cgc3RhdCBcdihzdGF0dXMpDQogIHNldCBwYXJpdHkgXG0ocGFyKQ0KICBzZXQg Y2FycmllciBcbShjYXIpDQogIGlmIG5vdCA9IDAgXG0oc3RhdCkgZW5kIDENCiAg aWYgPCBcdihjbWRsZXZlbCkgMyBlY2hvIC0NCntDYWxsIGNvbXBsZXRlLiAgVXNl IHRoZSBDT05ORUNUIGNvbW1hbmQgdG8gZ28gb25saW5lLn0NCiAgZW5kIDANCn0N Cg0KZGVmIElJbnB1dCB7DQogIGNsZWFyIGlucHV0DQogIGlucHV0IFxtKFdhaXRU aW1lKSBcJTEgDQogIGlmIGZhaWx1cmUgZXJyZXh0IFwlMiBcJTMgDQp9DQoNCmRl ZiBHZXRQcm9tcHQgeyBJSW5wdXQgez4gfSB7Ij4gIiBub3QgcmVjZWl2ZWQgaW4g R2V0UHJvbXB0fSBcMyB9DQoNCmRlZiBJSW5wdXRMaW5lIHsgSUlucHV0IHtcMTB9 IHsiXFwxMCIgbm90IHJlY2VpdmVkIGluIElJbnB1dExpbmV9IFwzIH0NCg0KZGVm IG1pbnB1dExpbmUgeyANCiAgY2xlYXIgaW5wdXQNCiAgbWlucHV0IFxtKFdhaXRU aW1lKSB7XDEwfSB7W01vcmVdfSB7RmFpbHVyZSBvZiBtaW5wdXQgaW4gbWlucHV0 TGluZX0NCiAgc3dpdGNoIFx2KG1pbnB1dCkgew0KICAgIDowLCBlcnJleHQge1Vu cmVjb2duaXplZCBjaGFycyBmcm9tIGhvc3QgaW4gbWlucHV0TGluZX0NCiAgICA6 MSwgYnJlYWsNCiAgICA6Miwgb3V0cHV0IHtcMTN9LCBHZXRQcm9tcHQsIElJbnB1 dExpbmUsIGJyZWFrDQogICAgOmRlZmF1bHQsIGVycmV4dCB7VW5kZWZpbmVkIHN3 aXRjaCBpbiBtaW5wdXRMaW5lfQ0KICB9DQp9DQoNCjsgQmVnaW5uaW5nIG9mIHBy b2NlZHVyZXMgdXNlZCB0byBsb2cgaW4uDQoNCnhpZiA9IFxtKEFVKSAwIHsNCiAg ZGVmIEdldFVzZXJpZCB7IGVjaG8ge30gfQ0KfSBlbHNlIHsNCiAgZGVmIEdldFVz ZXJpZCB7IGFzayBVc2VyaWQge3doYXQgaXMgeW91ciB1c2VyaWQ/XDMyfSB9DQp9 DQoNCnhpZiA9IFxtKEFQKSAwIHsNCiAgZGVmIEdldFBhc3N3b3JkIHsgZWNobyB7 fSB9DQp9IGVsc2Ugew0KICBkZWYgR2V0UGFzc3dvcmQgeyBhc2txIFBhc3N3b3Jk IHt3aGF0IGlzIHlvdXIgcGFzc3dvcmQ/XDMyfSB9DQp9DQoNCmRlZiBNQnByb21w dCB7VHlwZSBhbiBpdGVtJ3MgbmFtZSBvciBudW1iZXIgdG8gb3BlbiBpdH0gICAg DQphc2cgTUJQTGVuZ3RoIFxmbGVuZ3RoKFxtKE1CcHJvbXB0KSkNCmRlZiBNQkVt cHR5IHtIb21lOk1haWxCb3g6IE5vIGl0ZW1zLn0NCmFzZyBNQkVMZW5ndGggXGZs ZW5ndGgoXG0oTUJFbXB0eSkpDQpkZWYgQ21kU3VtbWFyeSB7Q29tbWFuZHM6IEhl bHAsTG9nb3V0LEV4aXQsUmVhZCxOZXcsSG9tZSxEZWxldGUsfQ0KYXNnIENtZFN1 bW1hcnkge1xtKENtZFN1bW1hcnkpU2NhbixTZW5kLFJlcGx5LEZvcndhcmQufQ0K YXNnIENTTGVuZ3RoIFxmbGVuZ3RoKFxtKENtZFN1bW1hcnkpKQ0KDQpkZWYgR29v ZFBXIHsNCiAgb3V0cHV0IHtcMTN9DQo7ICBlY2hvIHtQYXNzd29yZCBhY2NlcHRl ZCBhbmQgMXN0IFtNb3JlXSBwcm9tcHQgYWNrbm93bGVkZ2VkfQ0KICByZXR1cm4g MA0KfQ0KDQpkZWYgQmFkUFcgew0KICB4aWYgPSBcbShBVSkgMSB7IA0KICAgIGVj aG8ge0NoZWNrIFVzZXJpZCB5b3UgYXJlIGdpdmluZy59DQogICAgR2V0VXNlcklE IA0KICB9IGVsc2Ugew0KICAgIGVjaG8ge0NoZWNrIFVzZXJpZCBjb2RlZCBpbiBj b25maWd1cmF0aW9uIHNlY3Rpb24gb2YgcHJvbG9nLn0gDQogIH0NCiAgeGlmID0g XG0oQVApIDEgeyANCiAgICBlY2hvIHtDaGVjayBQYXNzd29yZCB5b3UgYXJlIGdp dmluZy59IA0KICAgIEdldFBhc3N3b3JkDQogIH0gZWxzZSB7DQogICAgZWNobyB7 Q2hlY2sgUGFzc3dvcmQgY29kZWQgaW4gY29uZmlndXJhdGlvbiBzZWN0aW9uIG9m IHByb2xvZy59IA0KICB9DQogIGlmID0gXG0oQVUpIDAgZXJyZXh0IHt9DQogIGlm ID0gXG0oQVApIDAgZXJyZXh0IHt9DQogIHJldHVybiAxDQp9DQogIA0KOyBEZWxh eXMgdXAgdG8gMTIgcyBmb3IgdGhlIGFycml2YWwgb2YgIlByZXNzIFJFVFVSTiB0 d2ljZSB0byBjb25uZWN0Ig0KOyBoYXZlIGJlZW4gb2JzZXJ2ZWQuICBBbGxvdyBw bGVudHkgb2YgdGltZS4NCmRlZiBMb2dpbiB7DQogIEdldFVzZXJpZA0KICBHZXRQ YXNzd29yZA0KICBkaWFsIFxtKFNlcnZlcikNCiAgc2V0IGlucHV0IGVjaG8gb2Zm DQogIElJbnB1dCB7UHJlc3MgUkVUVVJOIHR3aWNlIHRvIGNvbm5lY3R9IHtObyBw cm9tcHQgZm9yIDxSRVRVUk4+IGZyb20gaG9zdH0NCiAgaWYgZmFpbCBlcnJleHQg e05vIEVPTCByZXF1ZXN0IGZyb20gdGhlIGhvc3R9DQogIG91dHB1dCB7XDEzXDEz fQ0KICBJSW5wdXQge1VzZXJJRDogfSB7Tm8gVXNlcklEIHByb21wdCBmcm9tIHRo ZSBob3N0fQ0KICB3aGlsZSA9IDEgMSB7IA0KICAgIG91dHB1dCB7XG0oVXNlcmlk KVwxM30NCiAgICBJSW5wdXQge1Bhc3N3b3JkOiB9IHtObyBQYXNzd29yZCBwcm9t cHQgZnJvbSB0aGUgaG9zdH0NCiAgICBvdXRwdXQge1xtKFBhc3N3b3JkKVwxM30N CiAgICBjbGVhciBpbnB1dA0KICAgIG1pbnB1dCBcbShXYWl0VGltZSkge1tNb3Jl XX0ge1VzZXJJRDogfQ0KICAgIHN3aXRjaCBcdihtaW5wdXQpIHsNCiAgICAgIDow LCBlcnJleHQge05vIHByb21wdCBmcm9tIGhvc3QgYWZ0ZXIgcGFzc3dvcmR9DQog ICAgICA6MSwgR29vZFBXLCBicmVhaw0KICAgICAgOjIsIEJhZFBXLCBicmVhaw0K ICAgICAgOmRlZmF1bHQsIGVycmV4dCB7VW5kZWZpbmVkIHN3aXRjaCB2YWx1ZSBh ZnRlciBwYXNzd29yZH0NCiAgICB9DQogICAgeGlmID0gXHYocmV0dXJuKSAwIHti cmVha30gZWxzZSB7IA0KICAgICAgZWNobyB7VHJ5aW5nIHVzZXIgdmVyaWZpY2F0 aW9uIGFnYWluLn0gDQogICAgfQ0KICB9DQogIElJbnB1dCB7W01vcmVdfSB7Mm5k IFtNb3JlXSBwcm9tcHQgbm90IHJlY2VpdmVkIGZyb20gaG9zdH0NCjsgIGVjaG8g ezJuZCBbTW9yZV0gcHJvbXB0IHJlY2VpdmVkLn0gDQogIG91dHB1dCB7XDEzfQ0K ICBJSW5wdXQge1NjYW4ufSB7Y29tbWFuZCBwcm9tcHQgbm90IHJlY2VpdmVkIGZy b20gaG9zdH0NCiAgR2V0UHJvbXB0DQo7ICBwYXVzZSAgICAgICAgICAgICAgICAg ICAgICAgICAgIDsgU29tZXRoaW5nIG5lZWRzIHRpbWUgaGVyZS4NCiAgZWNobyB7 TG9naW4gY29tcGxldGVkLn0NCiAgZWNobyB7fQ0KfQ0KDQo7IEVuZCBvZiBwcm9j ZWR1cmVzIHVzZWQgdG8gbG9nIGluLg0KDQo7IFNhdmVMaW5lIGNvcGllcyBcdihp bnB1dCkgdG8gYSBtYWNybyB2YXJpYWJsZS4gIFRoZSBET1MgdmVyc2lvbiANCjsg YWxzbyBlbGltaW5hdGVzIHRoZSBzcHVyaW91cyAiLCIgYWRkZWQgdG8gdGhlIGVu ZCBvZiBhbiBpbmNvbWluZyANCjsgbGluZSBhbmQgaW5zZXJ0cyBhIHBlcmlvZCB0 byBwcmV2ZW50IGRlbGV0aW9uIG9mIGVtcHR5IGxpbmVzLiAgU2VlIA0KOyAiU3lz dGVtIFNwZWNpZmljIE5vdGVzID4gTVMtRE9TIiBpbiBrdGZjbWRuLnR4dC4NCnhp ZiBlcXVhbCBcdihzeXN0ZW0pIHtNUy1ET1N9IHsNCiAgZGVmIFNhdmVMaW5lIHsN CiAgICBsb2NhbCBJbkxlbiBMb2NhdGlvbg0KICAgIGFzZyBJbkxpbmUge1x2KGlu cHV0KX0gIA0KICAgIGFzZyBJbkxlbiBcZmV2YWwoXGZsZW5ndGgoXG0oSW5MaW5l KSkgKQ0KICAgIHhpZiA+IFxtKEluTGVuKSAyIHsNCiAgICAgIGFzZyBMb2NhdGlv biBcZmV2YWwoXG0oSW5MZW4pIC0gMiApDQogICAgICBhc2cgSW5MaW5lIHtcZnN1 YnN0cihcbShJbkxpbmUpLCAxLCBcbShMb2NhdGlvbikgKX0NCiAgICB9IGVsc2Ug eyANCiAgICAgIGFzZyBJbkxpbmUgey59DQogICAgfQ0KICB9DQp9IGVsc2Ugew0K ICBkZWYgU2F2ZUxpbmUgew0KICAgIGFzZyBJbkxpbmUge1x2KGlucHV0KX0NCiAg fQ0KfQ0KDQo7IElucHV0TUIxIGhhbmRsZXMgYW55IGluY29taW5nIGxpbmUgd2hp Y2ggZW5kcyB3aXRoIFwxMC4NCjsgVGhlcmUgYXJlIHR3byBjYXNlczogdGhlIG1h aWxib3ggcHJvbXB0IGxpbmUgYW5kIGEgY29udGVudCBsaW5lLg0KOyBUaGVyZSBp cyBvbmUgYXJndW1lbnQuICBJZiBpdCBpcyAxIHRoZSBsaW5lIGlzIHdyaXR0ZW4g dG8gdGhlIG9wZW4gZmlsZS4NCjsgSWYgdGhlIGFyZ3VtZW50IGlzIDAgdGhlIGxp bmUgaXMgZGlzY2FyZGVkLg0KZGVmIElucHV0TUIxIHsNCiAgeGlmIGVxdWFsIHtc ZnN1YnN0cihcbShJbkxpbmUpLDEsNDApfSB7XGZzdWJzdHIoXG0oTUJwcm9tcHQp LDEsNDApfSB7DQogICAgZGVmIEV4aXRNQiAxDQogICAgSW5wdXRNQjExIH0gZWxz ZSB7DQogICAgOyBUaGlzIGxpbmUgaW4gdGhlIGRpcmVjdG9yeSBkZXNjcmliZXMg YSBtZXNzYWdlDQogICAgaWYgZXF1YWwge1wlMX0gezF9IHdyaXRlbG4gZmlsZSB7 XG0oSW5MaW5lKX0NCiAgfQ0KfQ0KDQo7IElucHV0TUIxMSBpcyBpbnZva2VkIGFm dGVyIHJlY2VpdmluZyB0aGUgZGlyZWN0b3J5IGluc3RydWN0aW9uYWwgcHJvbXB0 Lg0KZGVmIElucHV0TUIxMSB7DQogIGNsZWFyIGlucHV0DQogIG1pbnB1dCBcbShX YWl0VGltZSkge1wxMH0ge1tNb3JlXX0gDQogIHN3aXRjaCBcdihtaW5wdXQpIHsN CiAgICA6MCwgZXJyZXh0IHtVbnJlY29nbml6ZWQgY2hhcmFjdGVycyBmcm9tIGhv c3QgaW4gSW5wdXRNQjExfQ0KICAgIDoxLCBJbnB1dE1CMTExLCBicmVhaw0KICAg IDoyLCBvdXRwdXQge1wxM30sIElucHV0TUIxMTEsIGJyZWFrDQogICAgOmRlZmF1 bHQsIGVycmV4dCB7VW5kZWZpbmVkIHN3aXRjaCBpbiBJbnB1dE1CMTF9DQogIH0N Cn0NCg0KOyBJbnB1dE1CMTExIGlzIGludm9rZWQgYWZ0ZXIgcmVjZWl2aW5nIHRo ZSBGQyBjb21tYW5kIHByb21wdC4NCmRlZiBJbnB1dE1CMTExIHsNCjsgIGVjaG8g e0JlZ2lubmluZyBJbnB1dE1CMTExfQ0KOyAgZWNobyB7fQ0KICBjbGVhciBpbnB1 dA0KICBtaW5wdXQgXG0oV2FpdFRpbWUpIHs+IH0ge1tNb3JlXX0gDQogIHN3aXRj aCBcdihtaW5wdXQpIHsNCiAgICA6MCwgZXJyZXh0IHtVbnJlY29nbml6ZWQgY2hh cmFjdGVycyBmcm9tIGhvc3QgaW4gSW5wdXRNQjExMX0NCiAgICA6MSwgYnJlYWsN CiAgICA6Miwgb3V0cHV0IHtcMTN9LCBHZXRQcm9tcHQsIGJyZWFrDQogICAgOmRl ZmF1bHQsIGVycmV4dCB7VW5kZWZpbmVkIHN3aXRjaCBpbiBJbnB1dE1CMTExfQ0K ICB9DQp9DQoNCjsgSW5wdXRNQjIgaGFuZGxlcyB0aGUgW01vcmVdIHByb21wdC4N CmRlZiBJbnB1dE1CMiB7IG91dHB1dCBcMTMsIElJbnB1dCB7Sn0ge0ogbm90IHJl Y2VpdmVkIGluIElucHV0TUIyfSB9DQoNCjsgSWYgcG9zc2libGUsIGdldCBhIG1l c3NhZ2UgbnVtYmVyIGZyb20gdGhlIE1haWxib3ggbGluZS4NCmRlZiBHZXRNc2dO dW0gew0KICBsb2NhbCBiZWdpbiBlbmQNCjsgIGVjaG8ge0JlZ2lubmluZyBHZXRN c2dOdW0ufQ0KICBhc2cgYmVnaW4gXGZldmFsKDEpDQogIGFzZyBlbmQgXGZldmFs KDQpDQogIHdoaWxlID0gMCAwIHsNCiAgICBpZiA+IFxtKGJlZ2luKSBcbShlbmQp IGJyZWFrDQogICAgaWYgbnVtZXJpYyB7XGZzdWJzdHIoXG0oVGl0bGUpLFxtKGJl Z2luKSwxKX0gYnJlYWsNCjsgICAgZWNobyB7SW5jcmVtZW50aW5nIGJlZ2luLn0N CiAgICBhc2cgYmVnaW4gXGZldmFsKFxtKGJlZ2luKSsxKSANCiAgfQ0KICB3aGls ZSA9IDAgMCB7DQogICAgaWYgPiBcbShiZWdpbikgXG0oZW5kKSBicmVhaw0KICAg IGlmIG51bWVyaWMge1xmc3Vic3RyKFxtKFRpdGxlKSxcbShlbmQpLDEpfSBicmVh aw0KOyAgICBlY2hvIHtEZWNyZW1lbnRpbmcgZW5kLn0NCiAgICBhc2cgZW5kIFxm ZXZhbChcbShlbmQpLTEpDQogIH0NCiAgeGlmID4gXG0oYmVnaW4pIFxtKGVuZCkg ew0KICAgIGFzZyBNc2dOdW0gezB9IA0KICAgIGVjaG8ge05vIHZhbGlkIG1lc3Nh Z2UgbnVtYmVyIGluIHRoaXMgTWFpbGJveCBsaW5lLn0NCiAgfSBlbHNlIHsNCiAg ICBhc2cgbGVuZ3RoIFxmZXZhbCgxK1xtKGVuZCktXG0oYmVnaW4pKQ0KICAgIGFz ZyBNc2dOdW0ge1xmc3Vic3RyKFxtKFRpdGxlKSxcbShiZWdpbiksXG0obGVuZ3Ro KSl9IA0KICAgIDsgZWNobyB7TWVzc2FnZSBudW1iZXIgaXMgXG0oTXNnTnVtKS59 DQogIH0NCiAgeGlmIGVxdWFsIHtcZnN1YnN0cihcbShUaXRsZSksXG0oYmVnaW4p LDEpfSB7MH0ge2FzZyBNc2dOdW0gezB9IH0NCjsgSWYgYSB2YWxpZCBtZXNzYWdl IG51bWJlciB3YXMgbm90IGZvdW5kLCBNc2dOdW0gaXMgMC4NCjsgT3RoZXJ3aXNl IE1zZ051bSBjb250YWlucyB0aGUgbWVzc2FnZSBudW1iZXIuDQp9DQoNCjsgSW5w dXRNc2cxIGhhbmRsZXMgYW55IGluY29taW5nIGxpbmUgd2hpY2ggZW5kcyB3aXRo IFwxMC4NCjsgVGhlcmUgYXJlIHR3byBjYXNlczogdGhlIGNvbW1hbmQgc3VtbWFy eSBsaW5lIGFuZCBhIGxpbmUgb2YgbWVzc2FnZS4NCmRlZiBJbnB1dE1zZzEgew0K ICB4aWYgZXF1YWwge1xmc3Vic3RyKFxtKEluTGluZSksMSxcbShDU0xlbmd0aCkp fSB7XG0oQ21kU3VtbWFyeSl9IHsNCiAgICBkZWYgRXhpdE1zZyAxLCBJbnB1dE1z ZzExIH0gZWxzZSB7IA0KOyAgICBTa2lwTGluZXMNCiAgICB3cml0ZWxuIGZpbGUg e1xtKEluTGluZSl9IA0KICB9DQp9DQoNCjsgSW5wdXRNc2cxMSBmb2xsb3dzIHRo ZSBGQyBjb21tYW5kIHN1bW1hcnkuDQpkZWYgSW5wdXRNc2cxMSB7DQogIGNsZWFy IGlucHV0DQogIG1pbnB1dCBcbShXYWl0VGltZSkgez4gfSB7W01vcmVdfSANCiAg c3dpdGNoIFx2KG1pbnB1dCkgew0KICAgIDowLCBlcnJleHQge1VucmVjb2duaXpl ZCBjaGFyYWN0ZXJzIGZyb20gaG9zdCBpbiBJbnB1dE1zZzExfQ0KICAgIDoxLCBy ZXR1cm4sIGJyZWFrDQogICAgOjIsIG91dHB1dCBcMTMsIEdldFByb21wdCwgcmV0 dXJuLCBicmVhaw0KICAgIDpkZWZhdWx0LCBlcnJleHQge1VuZGVmaW5lZCBzd2l0 Y2ggaW4gSW5wdXRNc2cxMX0NCiAgfQ0KfQ0KDQo7IENsZWFyTW9yZSBoYW5kbGVz IHRoZSBbTW9yZV0gcHJvbXB0Lg0KZGVmIENsZWFyTW9yZSB7IA0KICBvdXRwdXQg XDEzDQogIElJbnB1dCB7Sn0ge0ogbm90IHJlY2VpdmVkIGluIENsZWFyTW9yZX0N Cn0NCg0KZGVmIENvbnRpbnVlUmVjdk1zZyB7DQogIGxvY2FsIEV4aXRNc2cNCiAg ZGVmIEV4aXRNc2cgMA0KICB3aGlsZSBlcXVhbCBcbShFeGl0TXNnKSAwIHsgDQog ICAgY2xlYXIgaW5wdXQNCiAgICA7IFRoZSBmb2xsb3dpbmcgY2FzZXMgY29ycmVz cG9uZCB0byBsaW5lIHJlY2VpdmVkLCBzY3JlZW4gaXMgZnVsbA0KICAgIDsgYW5k IHByb21wdCBmb3IgYXR0YWNobWVudC4NCiAgICBtaW5wdXQgXG0oV2FpdFRpbWUp IHtcMTB9IHtbTW9yZV19IHtcMjdbMkR9IA0KICAgIHN3aXRjaCBcdihtaW5wdXQp IHsNCiAgICAgIDowLCBlcnJleHQge1VucmVjb2duaXplZCBjaGFyYWN0ZXJzIGZy b20gaG9zdCB3aGVuIHJlY2VpdmluZyBtZXNzYWdlfQ0KICAgICAgOjEsIFNhdmVM aW5lLCBJbnB1dE1zZzEsIGJyZWFrDQogICAgICA6MiwgQ2xlYXJNb3JlLCBicmVh aw0KICAgICAgOjMsIG91dHB1dCBcMTMsIEdldFByb21wdCwgZGVmIEV4aXRNc2cg MSwgYnJlYWsNCiAgICAgIDpkZWZhdWx0LCBlcnJleHQge1VuZGVmaW5lZCBzd2l0 Y2ggaW4gTWVzc2FnZSByZWFkaW5nIGxvb3B9DQogICAgfQ0KICB9DQp9DQoNCmRl ZiBQcm9jZWVkUmVjdk1zZyB7DQogIFNhdmVMaW5lIA0KICB4aWYgZXF1YWwge1xm c3Vic3RyKFxtKEluTGluZSksIDEsIDEgKX0ge019IHsNCiAgICBlY2hvIHtWYWxp ZCBtZXNzYWdlIG51bWJlci4gIFxtKEluRmlsZSkgZmlsZSBvcGVuZWQufQ0KICAg IHdyaXRlbG4gZmlsZSB7XG0oSW5MaW5lKX0gDQogICAgQ29udGludWVSZWN2TXNn DQogIH0gZWxzZSB7DQogICAgZWNobyB7SW52YWxpZCBtZXNzYWdlIG51bWJlcjsg c2VydmVyIGlzIGFza2luZyBhZ2FpbiBmb3IgbWVzc2FnZSBudW1iZXIufQ0KICAg IGVjaG8ge0NhbmNlbCB0aGlzIG1lc3NhZ2UgbnVtYmVyIGFuZCBjb250aW51ZSB0 byBuZXh0IGxpbmUgaW4gZGlyZWN0b3J5Ln0NCiAgICBvdXRwdXQgXDMNCiAgICBH ZXRQcm9tcHQNCiAgfQ0KfQ0KDQo7IFJlY2VpdmUgYSBtZXNzYWdlDQpkZWYgUmVj dk1zZyB7DQogIG9wZW4gYXBwZW5kIFxtKEluRmlsZSkNCiAgaWYgZmFpbHVyZSBl cnJleHQge2Nhbid0IG9wZW4gZmlsZSBmb3IgaW5jb21pbmcgbWFpbH0NCiAgb3V0 cHV0IHtcbShNc2dOdW0pXDEzfQ0KICBJSW5wdXQge1wxMH0ge2VjaG8gb2YgbWVz c2FnZSByZXF1ZXN0IG5vdCByZWNlaXZlZH0gDQogIDsgTm93IGFjY2VwdCB0aGUg Zmlyc3QgbGluZSBmcm9tIHRoZSBzZXJ2ZXIgaW4gcmVzcG9uc2UgdG8gdGhlIA0K ICA7IG1lc3NhZ2UgbnVtYmVyIGp1c3Qgc3VibWl0dGVkLg0KICBjbGVhciBpbnB1 dA0KICA7IFRoZSBmb2xsb3dpbmcgY2FzZXMgY29ycmVzcG9uZCB0byBsaW5lIHJl Y2VpdmVkLCBzY3JlZW4gaXMgZnVsbC4NCiAgbWlucHV0IFxtKFdhaXRUaW1lKSB7 XDEwfSB7W01vcmVdfSANCiAgc3dpdGNoIFx2KG1pbnB1dCkgew0KICAgIDowLCBl cnJleHQge1VucmVjb2duaXplZCBjaGFyYWN0ZXJzIGZyb20gaG9zdCB3aGVuIHJl Y2VpdmluZyBtZXNzYWdlfQ0KICAgIDoxLCBQcm9jZWVkUmVjdk1zZywgYnJlYWsN CiAgICA6MiwgQ2xlYXJNb3JlLCBJSW5wdXRMaW5lLCBQcm9jZWVkUmVjdk1zZywg YnJlYWsNCiAgICA6ZGVmYXVsdCwgZXJyZXh0IHtVbmRlZmluZWQgc3dpdGNoIGlu IE1lc3NhZ2UgcmVhZGluZyBsb29wfQ0KICB9DQo7ICBlY2hvIHtGaW5pc2hlZCBw cm9jZXNzaW5nIHRoaXMgbWVzc2FnZSBudW1iZXIufQ0KICB3cml0ZWxuIGZpbGUg e1xtKE1TZXApICoqKioqKioqKioqKioqKn0NCiAgY2xvc2Ugd3JpdGUtZmlsZQ0K ICBlY2hvIHtNZXNzYWdlIHJlY2VpdmVkLiAgXG0oSW5GaWxlKSBmaWxlIGNsb3Nl ZC59DQogIHhpZiA9IFxtKERBUikgMSB7DQogICAgRGVsTXNnIHtUaGUgZm9sbG93 aW5nIG1lc3NhZ2UgaGFzIGJlZW4gY29waWVkIHRvIHRoaXMgbWFjaGluZS59DQog IH0NCn0NCg0KeGlmID0gXG0oQ0RNKSAwIHsNCiAgOyBEZWZpbmUgRGVsTXNnIHdp dGhvdXQgY29uZmlybWF0aW9uLg0KICBkZWYgRGVsTXNnIHsgDQogICAgb3V0cHV0 IHtkIFxtKE1zZ051bSkgeVwxM30gDQogICAgR2V0UHJvbXB0IA0KICB9DQp9IGVs c2Ugew0KICA7IERlZmluZSBkZWxNZXNzZyB3aXRoIGNvbmZpcm1hdGlvbg0KICBk ZWYgRGVsTXNnIHsNCiAgICA7IFRoZSBhcmd1bWVudCBvZiBkZWxNZXNzZyBpcyBh IHN0cmluZyB1c2VkIHRvIHByb21wdCB0aGUgdXNlci4NCiAgICB3aGlsZSA9IDEg MSB7IA0KICAgICAgZWNobyB7XCUxfQ0KICAgICAgZWNobyB7XG0oVGl0bGUpfSAN CiAgICAgIGdldGMgXCV1IHtEZWxldGUgdGhpcyBtZXNzYWdlIGZyb20gdGhlIHNl cnZlcj8gKHkvbik6IH0NCiAgICAgIHhpZiBlcXVhbCBcJXUge3l9IHsNCiAgICAg ICAgZWNobyB7eX0NCiAgICAgICAgb3V0cHV0IHtkIFxtKE1zZ051bSkgeVwxM30g DQogICAgICAgIEdldFByb21wdCANCiAgICAgICAgYnJlYWsNCiAgICAgIH0NCiAg ICAgIHhpZiBlcXVhbCBcJXUge259IHsNCiAgICAgICAgZWNobyB7bn0NCiAgICAg ICAgYnJlYWsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGVjaG8ge1BsZWFzZSBy ZXNwb25kIGJ5IGtleWluZyA8eT4gb3IgPG4+Ln0NCiAgICAgIH0NCiAgICB9DQog IH0NCn0NCg== --simple boundary Content-type: application; charset=us-ascii; name="scan0.5" Content-Disposition: inline; filename="scan0.5" Content-Transfer-Encoding: base64 OyBGaWxlIHNjYW4wLjUsIGNvcHlyaWdodCAoQykgUGV0ZXIgTHlhbGwgRWFzdGhv cGUsIDIwMDAuDQo7IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQoNCnRha2UgcHJvbG9n MC41ICAgICAgICAgICAgOyBVc2VyIGNvbmZpZ3VyYXRpb24gYW5kIHByb2NlZHVy ZXMgZm9yIGxvZ2luLg0KDQo7ID09PT09PT09PT09PSBCZWdpbiB1c2VyIGNvbmZp Z3VyYXRpb24gc2VjdGlvbiA9PT09PT09PT09PT0NCjsgTWVzc2FnZXMgb2xkZXIg dGhhbiBNc2dMaWZlIHdpbGwgYmUgZGVsZXRlZCBmcm9tIHRoZSBNYWlsYm94Lg0K YXNnIE1zZ0xpZmUgMyANCg0KOyAiT3RoZXIiIGRlZmluZXMgYSBsaXN0IG9mIGRp cmVjdG9yeSBpbmRleCB2ZWN0b3JzIHRvIGJlIHNjYW5uZWQuDQo7IEVhY2ggZGly ZWN0b3J5IGluZGV4IHZlY3RvciBpcyBhIHNlcXVlbmNlIG9mIGluZGV4ZXMgb2Yg ZGlyZWN0b3JpZXMgDQo7IHdoaWNoIGVuY2xvc2UgdGhlIHRhcmdldCBkaXJlY3Rv cnksIHRoZSBsYXN0IGluIHRoZSBzZXF1ZW5jZS4gIEVhY2ggDQo7IGluZGV4IHZl Y3RvciBpcyB0aGUgY29udGVudCBvZiBhIFwlZFtpXS4NCmRlZiBPdGhlciB7DQog IGRlZiBkTGVuIDAgICAgICAgICAgICAgICAgICAgICAgOyBOdW1iZXIgb2YgZGly ZWN0b3JpZXMuDQogIGRlY2xhcmUgXCZkW1xtKGRMZW4pXSAgICAgICA7IERlY2xh cmUgdGhlIGRpcmVjdG9yeSBsaXN0IGFycmF5DQo7ICBkZWYgXCZkWzFdIHszIDZ9 ICAgICAgICAgICAgICAgIDsgRmlyc3RDbGFzcyBTdXBwb3J0DQo7ICBkZWYgXCZk WzJdIHszIDd9ICAgICAgICAgICAgICAgIDsgRmlyc3RDbGFzcyBOZXdzDQogIDsg SG5kbE1zZyBpcyB1c2VkIGluIFNjYW5EaXJzLiAgDQogIGRlZiBIbmRsTXNnIHsN CiAgICBpZiBlcXVhbCB7XGZzdWJzdHIoXG0oVGl0bGUpLDEsMSl9IHsqfSBSZWN2 TXNnDQogIH0NCn0NCjsgPT09PT09PT09PT09IEVuZCB1c2VyIGNvbmZpZ3VyYXRp b24gc2VjdGlvbiA9PT09PT09PT09PT0NCg0KOyBNQiBkZWZpbmVzIGEgZGlyZWN0 b3J5IGxpc3QgY29udGFpbmluZyBvbmx5IHRoZSBNYWlsYm94Lg0KZGVmIE1CIHsN CiAgbG9jYWwgc3RyaW5nDQogIGFzZyBzdHJpbmcge1RoaXMgbWVzc2FnZSBoYXMg YmVlbiBvbiB0aGUgc2VydmVyIGZvciBhdCBsZWFzdH0NCiAgZGVmIGRMZW4gMSAg ICAgICAgICAgICAgICAgICAgICA7IE51bWJlciBvZiBkaXJlY3Rvcmllcy4NCiAg ZGVjbGFyZSBcJmRbXG0oZExlbildICAgICA7IERlY2xhcmUgdGhlIGRpcmVjdG9y eSBsaXN0IGFycmF5DQogIGRlZiBcJmRbMV0gezF9ICAgICAgICAgICAgICAgICAg OyBQYXRoIGZyb20gSG9tZSB0byBNYWlsYm94Lg0KICBkZWYgSG5kbE1zZyB7DQog ICAgeGlmIGVxdWFsIHtcZnN1YnN0cihcbShUaXRsZSksMSwxKX0geyp9IHsgUmVj dk1zZyB9IGVsc2Ugew0KICAgICAgR2V0QWdlDQo7ICAgICAgZWNobyB7YWdlIG9m IHRoaXMgbWVzc2FnZSBpcyBcdihyZXR1cm4pIGRheXMufQ0KICAgICAgeGlmID4g XHYocmV0dXJuKSBcbShNc2dMaWZlKSB7IA0KICAgICAgICBEZWxNc2cge1xtKHN0 cmluZykgXG0oTXNnTGlmZSkgZGF5cy59DQogICAgICB9DQogICAgfQ0KICB9DQp9 DQoNCjsgQmVnaW5uaW5nIG9mIHByb2NlZHVyZXMgdXNlZCB0byByZWNlaXZlIG1l c3NhZ2VzIG9yIHRvIHRpZHkgdGhlIG1haWxib3guDQoNCmRlZiBtaW5wdXRKIHsN CiAgY2xlYXIgaW5wdXQNCiAgbWlucHV0IFxtKFdhaXRUaW1lKSB7Sn0ge0l0ZW0g bnVtYmVyOn0NCiAgICBzd2l0Y2ggXHYobWlucHV0KSB7DQogICAgICA6MCwgZXJy ZXh0IHtSZXNwb25zZSBhZnRlciBHZXREaXIgc2VuZHMgZGlyLiBudW1iZXIgbm90 IHJlY29nbml6YWJsZS59DQogICAgICA6MSwgYnJlYWsNCiAgICAgIDoyLCBlcnJl eHQge2ZhdWx0eSBkaXJlY3RvcnkgbnVtYmVyOyBjaGVjayBwYXRoIGluIFVzZXIg Q29uZmlndXJhdGlvbi59DQogICAgICA6ZGVmYXVsdCwgZXJyZXh0IHtVbmRlZmlu ZWQgc3dpdGNoIHZhbHVlIGluIEdldERpcn0NCiAgICB9DQp9DQoNCjsgVGhpcyBw cm9jZWR1cmUgdGFrZXMgdHdvIGFyZ3VtZW50cy4gIFRoZSBzZWNvbmQgaXMgYSBz dHJpbmcgd2hpY2ggaXMgdGhlIA0KOyBpbmRleCBvZiBhIGRpcmVjdG9yeSBpbiB0 aGUgY3VycmVudCBkaXJlY3RvcnkuICBJZiB0aGUgZmlyc3QgYXJndW1lbnQNCjsg aXMgMSBhIGxpc3Rpbmcgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBkaXJlY3Rvcnkg aXMgcHV0IGluIGEgZmlsZSBuYW1lZCBESVIuDQo7IElmIHRoZSBmaXJzdCBhcmd1 bWVudCBpcyAwIHRoZSBkaXJlY3RvcnkgbGlzdGluZyBpcyBkaXNjYXJkZWQuDQpk ZWYgR2V0RGlyIHsNCiAgbG9jYWwgc3RyDQogIHhpZiBlcXVhbCB7XCUxfSAgezF9 IHsNCiAgICBvcGVuIHdyaXRlIERJUg0KICAgIGlmIGZhaWx1cmUgZXJyZXh0IHtD YW4ndCBvcGVuIGRpcmVjdG9yeSBmaWxlIERJUiBmb3Igd3JpdGluZy59DQogICAg ZWNobyB7RmlsZSBESVIgb3BlbmVkIHRvIHdyaXRlIHRoZSBkaXJlY3RvcnkgYXQg e1wmZFtcJWZdfS59DQogIH0NCiAgb3V0cHV0IHtcJTJcMTN9DQogIG1pbnB1dEoN CiAgSUlucHV0TGluZQ0KICBTYXZlTGluZQ0KICBpZiBlcXVhbCB7XCUxfSB7MX0g IHdyaXRlbG4gZmlsZSB7XG0oSW5MaW5lKX0NCiAgYXNnIHN0ciBcZnN1YnN0cihc bShJbkxpbmUpLFxmZXZhbChcZmxlbmd0aChcbShJbkxpbmUpKS04KSw5KQ0KICB4 aWYgZXF1YWwge1xtKHN0cil9IHtObyBpdGVtcy59IHsNCjsgICAgZWNobyB7RGly ZWN0b3J5IGlzIGVtcHR5Ln0NCiAgICBJSW5wdXRMaW5lDQogICAgSUlucHV0TGlu ZQ0KICAgIEdldFByb21wdCANCiAgfSBlbHNlIHsNCjsgICAgZWNobyB7RGlyZWN0 b3J5IGlzIG5vdCBlbXB0eS59DQogICAgbG9jYWwgRXhpdE1CDQogICAgZGVmIEV4 aXRNQiAwDQogICAgd2hpbGUgZXF1YWwgXG0oRXhpdE1CKSAwIHsgDQogICAgICBj bGVhciBpbnB1dA0KICAgICAgbWlucHV0IFxtKFdhaXRUaW1lKSB7XDEwfSB7W01v cmVdfQ0KICAgICAgc3dpdGNoIFx2KG1pbnB1dCkgew0KICAgICAgICA6MCwgZXJy ZXh0IHtVbnJlY29nbml6ZWQgY2hhcmFjdGVycyB3aGVuIHJlY2VpdmluZyBkaXJl Y3Rvcnl9DQogICAgICAgIDoxLCBTYXZlTGluZSwgSW5wdXRNQjEge1wlMX0sIGJy ZWFrDQogICAgICAgIDoyLCBJbnB1dE1CMiwgYnJlYWsNCiAgICAgICAgOmRlZmF1 bHQsIGVycmV4dCB7VW5kZWZpbmVkIHN3aXRjaCBpbiBkaXJlY3RvcnkgcmVhZGlu ZyBsb29wfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICB4aWYgZXF1YWwge1wlMX0g ezF9ICB7IGNsb3NlIHdyaXRlLWZpbGUgfQ0KfQ0KDQpkZWYgRmluZERpciB7DQog ICA7IEluaXRpYWxpemUgaW5kZXggZm9yIGxvY2F0aW5nIHRoZSBzdGFydCBvZiB0 aGUgdGVybWluYWwgZGlyZWN0b3J5IG51bWJlci4NCiAgICBhc2cgYmVnaW5EIFxm bGVuZ3RoKFwmZFtcJWZdKQ0KICAgIDsgU3RlcCBiYWNrd2FyZHMgdGhyb3VnaCB0 aGUgcGF0aCBmcm9tIHRoZSBlbmQuDQogICAgd2hpbGUgZXF1YWwge1xmc3Vic3Ry KFwmZFtcJWYgXSxcbShiZWdpbkQpLDEpfSAgeyB9ICB7DQogICAgICBpZiA9IFxt KGJlZ2luRCkgMSBlcnJleHQge05vIGRpcmVjdG9yeSBudW1iZXIgZm91bmR9DQog ICAgICBhc2cgYmVnaW5EIFxmZXZhbChcbShiZWdpbkQpLTEpDQogICAgfQ0KICAg IHdoaWxlID0gMSAxIHsNCjsgICAgICBlY2hvIHtTZWFyY2hpbmcgZm9yIGJlZ2lu bmluZyBvZiBkaXJlY3Rvcnkgc3RyaW5nfQ0KICAgICAgaWYgPSBcbShiZWdpbkQp IDEgYnJlYWsNCiAgICAgIGFzZyB0bXAgXGZldmFsKFxtKGJlZ2luRCktMSkNCiAg ICAgIGlmIGVxdWFsIHtcZnN1YnN0cihcJmRbXCVmXSxcbSh0bXApLDEpfSB7IH0g YnJlYWsNCiAgICAgIGFzZyBiZWdpbkQgXG0odG1wKQ0KICAgIH0NCiAgICA7IGJl Z2luRCBub3cgY29udGFpbnMgdGhlIGluZGV4IGluIFwmZFtcJWZdIG9mIHRoZSBz dGFydCBvZiB0aGUgDQogICAgOyB0YXJnZXQgZGlyZWN0b3J5Lg0KfQ0KDQpkZWYg VHJhY2VQYXRoIHsNCiAgICA7IFN0ZXAgdGhyb3VnaCB0aGUgcGF0aCBmcm9tIHRo ZSBiZWdpbm5pbmcuDQogICAgYXNnIGJlZ2luaSAxDQogICAgd2hpbGUgPSAxIDEg ew0KICAgICAgaWYgPSBcbShiZWdpbmkpIFxtKGJlZ2luRCkgYnJlYWsNCiAgICAg IHdoaWxlID0gMSAxIHsNCiAgICAgICAgaWYgbm90IGVxdWFsIHtcZnN1YnN0cihc JmRbXCVmXSxcbShiZWdpbmkpLDEpfSB7IH0gYnJlYWsNCiAgICAgICAgYXNnIGJl Z2luaSBcZmV2YWwoXG0oYmVnaW5pKSsxKQ0KICAgICAgfQ0KOyAgICAgIGVjaG8g e2JlZ2luaSA9IFxtKGJlZ2luaSl9DQogICAgICBpZiA9IFxtKGJlZ2luaSkgXG0o YmVnaW5EKSBicmVhayANCiAgICAgIGFzZyBlbmRpIFxmZXZhbChcbShiZWdpbmkp KzEpDQogICAgICB3aGlsZSA9IDEgMSB7DQogICAgICAgIGlmIDwgXGZsZW5ndGgo XCZkW1wlZl0pIFxtKGVuZGkpIGJyZWFrDQogICAgICAgIGlmIGVxdWFsIHtcZnN1 YnN0cihcJmRbXCVmXSxcbShlbmRpKSwxKX0geyB9IGJyZWFrDQogICAgICAgIGFz ZyBlbmRpIFxmZXZhbChcbShlbmRpKSsxKQ0KICAgICAgfQ0KOyAgICAgIGVjaG8g e2VuZGkgPSBcbShlbmRpKX0NCiAgICAgIGFzZyB0bXAge1xmc3Vic3RyKFwmZFtc JWZdLFxtKGJlZ2luaSksXGZldmFsKFxtKGVuZGkpLVxtKGJlZ2luaSkpKX0NCjsg ICAgICBlY2hvIHtHZXREaXIgaXMgY2FsbGVkIHdpdGggYXJndW1lbnQgXG0odG1w KX0NCiAgICAgIEdldERpciAwIHtcbSh0bXApfQ0KICAgICAgYXNnIGJlZ2luaSBc bShlbmRpKQ0KICAgIH0NCn0NCg0KOyBEYXlzIHRha2VzIHRoZSBtb250aCBudW1i ZXIgYW5kIGRhdGUgYXMgYXJndW1lbnRzIGFuZCByZXR1cm5zIA0KOyB0aGUgaW5j bHVzaXZlIG51bWJlciBvZiBkYXlzIGZyb20gSmFudWFyeSAxLiAgRWcuIERheXMg ezAzfSB7MDR9IA0KOyByZXR1cm5zIDYzLiAgRmVicnVhcnkgaXMgYXNzdW1lZCB0 byBoYXZlIDI4IGRheXMuDQpkZWYgRGF5cyB7DQogIGxvY2FsIHRtcA0KICBzd2l0 Y2ggXCUxIHsNCiAgICA6MDEsIGFzZyB0bXAgICAwLCBicmVhaw0KICAgIDowMiwg YXNnIHRtcCAgMzEsIGJyZWFrDQogICAgOjAzLCBhc2cgdG1wICA1OSwgYnJlYWsN CiAgICA6MDQsIGFzZyB0bXAgIDkwLCBicmVhaw0KICAgIDowNSwgYXNnIHRtcCAx MjAsIGJyZWFrDQogICAgOjA2LCBhc2cgdG1wIDE1MSwgYnJlYWsNCiAgICA6MDcs IGFzZyB0bXAgMTgxLCBicmVhaw0KICAgIDowOCwgYXNnIHRtcCAyMTIsIGJyZWFr DQogICAgOjA5LCBhc2cgdG1wIDI0MywgYnJlYWsNCiAgICA6MTAsIGFzZyB0bXAg MjczLCBicmVhaw0KICAgIDoxMSwgYXNnIHRtcCAzMDQsIGJyZWFrDQogICAgOjEy LCBhc2cgdG1wIDMzNCwgYnJlYWsNCiAgICA6ZGVmYXVsdCwgZXJyZXh0IHtVbmRl ZmluZWQgc3dpdGNoIGluIERheXN9DQogIH0NCiAgcmV0dXJuIFxmZXZhbChcbSh0 bXApK1wlMikNCn0NCg0KZGVmIEdldEFnZSB7DQo7IFNpbmR4IHJlcHJlc2VudHMg dGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgLyBpbiB0aGUgZGF0ZSwgaW4gYSANCjsg bGluZSBmcm9tIHRoZSBNYWlsYm94Lg0KICBsb2NhbCBhZ2UgeWVhciBtb250aCBk YXkgU2luZHgNCiAgYXNnIFNpbmR4IDMyDQogIHdoaWxlID0gMCAwIHsNCiAgICBp ZiBlcXVhbCB7XGZzdWJzdHIoXG0oVGl0bGUpLFxtKFNpbmR4KSwxKX0gey99IGJy ZWFrDQogICAgYXNnIFNpbmR4IFxmZXZhbChcbShTaW5keCkrMSkNCiAgfQ0KICBh c2cgeWVhciB7XGZzdWJzdHIoXG0oVGl0bGUpLFxmZXZhbChcbShTaW5keCkrNCks NCl9DQo7ICBlY2hvIHt5ZWFyID0gXG0oeWVhcil9DQogIGlmIG5vdCBudW1lcmlj IHtcbSh5ZWFyKX0gcmV0dXJuIDANCjsgQ3VycmVudCB5ZWFyIC0gKHllYXIgb2Yg bWVzc2FnZSBjcmVhdGlvbikgZXhwcmVzc2VkIGluIGRheXM6DQogIGFzZyBhZ2Ug XGZldmFsKChcbSh5ZWFyKS1cZnN1YnN0cihcdihuZGF0ZSksMSw0KSkqMzY1ICkN CjsgQWRkIGRheXMgZnJvbSBKYW4gMSB0byBwcmVzZW50Lg0KICBhc2cgbW9udGgg e1xmc3Vic3RyKFx2KG5kYXRlKSw1LDIpfQ0KICBhc2cgZGF5IHtcZnN1YnN0cihc dihuZGF0ZSksNywyKX0NCjsgIGVjaG8ge0N1cnJlbnQgbW9udGggYW5kIGRheSA9 IFxtKG1vbnRoKSAgXG0oZGF5KX0NCiAgRGF5cyB7XG0obW9udGgpfSB7XG0oZGF5 KX0NCiAgYXNnIGFnZSBcZmV2YWwoXG0oYWdlKStcdihyZXR1cm4pKQ0KOyAgZWNo byB7RGlmZi4gaW4geWVhcnMgKyBkYXlzIGZyb20gamFuIDEgdG8gcHJlc2VudCA9 IFxtKGFnZSl9DQo7IFN1YnRyYWN0IGRheXMgZnJvbSBKYW4xIHRvIG1lc3NhZ2Ug ZGF0ZS4NCiAgYXNnIG1vbnRoIHtcZnN1YnN0cihcbShUaXRsZSksXGZldmFsKFxt KFNpbmR4KS0yKSwyKX0NCiAgaWYgbm90IG51bWVyaWMge1xtKG1vbnRoKX0gcmV0 dXJuIDANCiAgYXNnIGRheSB7XGZzdWJzdHIoXG0oVGl0bGUpLFxmZXZhbChcbShT aW5keCkrMSksMil9DQogIGlmIG5vdCBudW1lcmljIHtcbShkYXkpfSByZXR1cm4g MA0KOyAgZWNobyB7bW9udGggYW5kIGRheSBvZiBtZXNzYWdlID0gXG0obW9udGgp IFxtKGRheSl9DQogIERheXMge1xtKG1vbnRoKX0ge1xtKGRheSl9DQogIGFzZyBh Z2UgXGZldmFsKFxtKGFnZSktXHYocmV0dXJuKSkNCiAgcmV0dXJuIFxtKGFnZSkN Cn0NCg0KOyBTY2FuRGlycyByZWFkcyB1bnJlYWQgbWVzc2FnZXMgaW4gYSBsaXN0 IG9mIGRpcmVjdG9yaWVzLiAgVGhlIGZpcnN0IA0KOyBhcmd1bWVudCByZWNlaXZl cyB0aGUgbnVtYmVyIG9mIGRpcmVjdG9yaWVzIHRvIGJlIHNjYW5uZWQuDQpkZWYg U2NhbkRpcnMgew0KICBsb2NhbCBiZWdpbkQgYmVnaW5pIGVuZGkgdG1wDQogIFwl MSAgICAgIDsgRGVmaW5lIHRoZSBkaXJlY3RvcnkgbGlzdCBhbmQgSG5kbE1zZy4N CiAgOyBMb29wIG92ZXIgdGhlIGRpcmVjdG9yaWVzIGluIHRoZSBsaXN0Lg0KICBm b3IgXCVmICAxIFxtKGRMZW4pIDEgew0KICAgIDsgR28gdG8gdGhlIERlc2t0b3Ag b3IgSG9tZSBkaXJlY3Rvcnkgb24gdGhlIHNlcnZlci4NCiAgICBvdXRwdXQge2hv bWVcMTN9DQogICAgR2V0UHJvbXB0DQogICAgRmluZERpcg0KICAgIFRyYWNlUGF0 aA0KICAgIDsgR2V0IHRoZSBkaXJlY3RvcnkgaW50byB0aGUgZmlsZSBESVIuDQog ICAgR2V0RGlyIDEge1xmc3Vic3RyKFwmZFtcJWZdLFxtKGJlZ2luRCkpfQ0KICAg IGVjaG8ge0RJUiB3cml0dGVuIGFuZCBjbG9zZWQuICBDaGVja2luZyBlYWNoIGVu dHJ5LiAgUGF0aWVuY2UuIC4uLn0NCiAgICBvcGVuIHJlYWQgRElSDQogICAgaWYg ZmFpbHVyZSBlcnJleHQge2Nhbid0IG9wZW4gRElSIGZvciByZWFkaW5nfQ0KICAg IHJlYWQgVGl0bGUNCiAgICBpZiBmYWlsdXJlIGVycmV4dCB7Tm90aGluZyBpbiBE SVIgZmlsZX0NCiAgICB3aGlsZSA9IDEgMSB7IA0KICAgICAgcmVhZCBUaXRsZQ0K ICAgICAgaWYgZmFpbHVyZSBicmVhaw0KOyAgICAgIGVjaG8ge0NoZWNraW5nIGEg bGluZSBpbiB0aGUgZGlyZWN0b3J5IGZpbGUgLi4ufQ0KICAgICAgaWYgPCBcZmxl bmd0aChcbShUaXRsZSkpIDQ5IGNvbnRpbnVlDQogICAgICA7IFRoaXMgaXMgYSBt ZXNzYWdlOyBvdGhlcndpc2UgaXQgaXMgYSBkaXJlY3RvcnkuDQogICAgICBHZXRN c2dOdW0NCiAgICAgIGlmID0gXG0oTXNnTnVtKSAwIGNvbnRpbnVlDQogICAgICBI bmRsTXNnDQogICAgfQ0KICAgIGNsb3NlIHJlYWQtZmlsZQ0KICAgIGVjaG8ge0Zp bmlzaGVkIHdpdGggdGhpcyBkaXJlY3RvcnkuICBESVIgY2xvc2VkLn0NCiAgICBl Y2hvIHt9DQogIH0NCn0NCg0KOyBFbmQgb2YgcHJvY2VkdXJlcyB1c2VkIHRvIHJl Y2VpdmUgbWVzc2FnZXMgb3IgdG8gdGlkeSB0aGUgbWFpbGJveC4NCg0KZGVmIENv bW11bmljYXRlIHsNCiAgTG9naW4NCiAgU2NhbkRpcnMgTUIgICAgICAgICAgIDsg U2NhbiB0aGUgTWFpbGJveC4NCiAgU2NhbkRpcnMgT3RoZXIgICAgICAgIDsgU2Nh biBkaXJlY3RvcmllcyBvdGhlciB0aGFuIHRoZSBNYWlsYm94Lg0KOyAgZWNobyB7 fQ0KICBvdXRwdXQge2xvZ291dCB5XDEzfQ0KICBoYW5ndXANCiAgY2xvc2Ugc2Vz c2lvbiAgICAgICAgICAgICAgICAgICA7IENsb3NlIHNlc3Npb24gbG9nDQogIHF1 aXQNCn0NCg0KOyBGaW5pc2hlZCBtYWNybyBkZWZpbml0aW9ucy4gIA0KDQpDb21t dW5pY2F0ZSAgICAgICAgICAgICAgICAgICAgICAgOyBNYWtlIGl0IGhhcHBlbi4N Cg== --simple boundary Content-type: application; charset=us-ascii; name="sr0.5" Content-Disposition: inline; filename="sr0.5" Content-Transfer-Encoding: base64 OyBGaWxlIHNyMC41LCBjb3B5cmlnaHQgKEMpIFBldGVyIEx5YWxsIEVhc3Rob3Bl LCAyMDAwLg0KOyBBbGwgcmlnaHRzIHJlc2VydmVkLiANCg0KdGFrZSBwcm9sb2cw LjUgICAgICAgICAgICA7IFVzZXIgY29uZmlndXJhdGlvbiBhbmQgcHJvY2VkdXJl cyBmb3IgbG9naW4uDQoNCjsgQmVnaW5uaW5nIG9mIHByb2NlZHVyZXMgdXNlZCB0 byBzZW5kIG1lc3NhZ2VzLg0KDQpkZWYgQ29uZmlybVNlbmQgew0KICBsb2NhbCBj c2YNCiAgaWYgPSBcbShDUykgMCByZXR1cm4gMCAgDQogIHdoaWxlID0gMSAxIHsN CiAgICBlY2hvIHtNZXNzYWdlIFxtKE91dExpbmUpfSAgICA7IEVjaG8gZmlyc3Qg YWRkcmVzcw0KICAgIGdldGMgXCV1IHtQcm9jZWVkIHRvIHNlbmQgbWVzc2FnZT8g KHkvbik6IH0NCiAgICBzd2l0Y2ggXCV1IHsNCiAgICAgIDp5LCBlY2hvIHt5fSwg YXNnIGNzZiAwLCBicmVhayANCiAgICAgIDpuLCBlY2hvIHtufSwgYXNnIGNzZiAx LCBicmVhaw0KICAgICAgOmRlZmF1bHQsIGVjaG8ge1BsZWFzZSByZXNwb25kIGJ5 IGtleWluZyA8eT4gb3IgPG4+Ln0sIGFzZyBjc2YgMg0KICAgIH0NCiAgICBpZiA8 IFxtKGNzZikgMiBicmVhaw0KICB9DQogIHJldHVybiBcbShjc2YpDQp9DQoNCmRl ZiBTZW5kU3ViaiB7DQogIG91dHB1dCB7XDEzfSAgICAgICAgICAgICAgICAgICAg OyBDbGVhciAiQ29waWVzOiIgbG9vcA0KICBJSW5wdXQge1N1YmplY3Q6fSB7IlN1 YmplY3Q6IiBub3QgcmVjZWl2ZWQgaW4gU2VuZFN1Ymp9IFwzDQogIG91dHB1dCB7 XGZzdWJzdHIoXG0oT3V0TGluZSksOSlcMTN9DQp9DQoNCjsgVGhpcyBwcm9jZWR1 cmUgaXMgaW52b2tlZCBieSBQcm9jZWVkTXNnIGFuZCBTZW5kQ29waWVzQWQuICAN CjsgQWRkclJlcyBpcyBsb2NhbGl6ZWQgaW4gUHJvY2VlZE1zZy4gDQpkZWYgYWJv cnRBZGRyIHsNCiAgYXNnIEFkZHJSZXMgMQ0KICBvdXRwdXQgXDMNCiAgZWNobyB7 QWJvcnRpbmcgbWVzc2FnZX0NCiAgU2tpcE91dA0KfQ0KDQo7IFRoaXMgcHJvY2Vk dXJlIGlzIGludm9rZWQgYnkgUHJvY2VlZE1zZy4gIEFkZHJSZXMgaXMgbG9jYWxp emVkIHRoZXJlLiANCmRlZiBTZW5kQ29waWVzQWQgew0KICB3aGlsZSA9IDEgMSB7 DQogICAgOyBTZW5kIENvcGllcyBhZGRyZXNzZXMNCiAgICB4aWYgZXF1YWwge1xm c3Vic3RyKFxtKE91dExpbmUpLDEsNyl9IHtDb3BpZXM6fSB7DQogICAgICBhc2cg T3V0TGluZSBcZnN1YnN0cihcbShPdXRMaW5lKSw4KSB9DQogICAgb3V0cHV0IFxt KE91dExpbmUpDQogICAgaWYgPCAwIFxmaW5kZXgoQCxcbShPdXRMaW5lKSwxKSBv dXRwdXQgeyxpfQ0KICAgIG91dHB1dCB7XDEzfQ0KICAgIGNsZWFyIGlucHV0ICAg ICAgICAgICAgICAgICAgIDsgRW1wdHkgdGhlIElOUFVUIGJ1ZmZlcg0KICAgIDsg VGhlIGZvbGxvd2luZyBjYXNlcyBjb3JyZXNwb25kIHRvIGRlZmVjdGl2ZSwgYW1i aWd1b3VzIGFuZCANCiAgICA7IHJlY29nbml6YWJsZSBhZGRyZXNzZXMuIA0KICAg IG1pbnB1dCBcbShXYWl0VGltZSkge3MgZm91bmRcMTNcMTBDb3BpZXM6XDlcOX0g e1wyN1szRH0ge0NvcGllczpcOVw5fSANCiAgICBzd2l0Y2ggXHYobWlucHV0KSB7 DQogICAgICA6MCwgZXJyZXh0IHtVbnJlY29nbml6ZWQgY2hhcidzIHdoZW4gZXhw ZWN0aW5nICJDb3BpZXM6In0NCiAgICAgIDoxLCBhYm9ydEFkZHIsIGJyZWFrDQog ICAgICA6MiwgYWJvcnRBZGRyLCBicmVhaw0KICAgICAgOjMsIGJyZWFrDQogICAg ICA6ZGVmYXVsdCwgZXJyZXh0IHtVbmRlZmluZWQgc3dpdGNoIGFmdGVyIGVjaG8g ZnJvbSBvdXRnb2luZyBhZGRyZXNzfQ0KICAgIH0NCiAgICBpZiA9IFxtKEFkZHJS ZXMpIDEgYnJlYWsgDQogICAgcmVhZCBPdXRMaW5lICAgICAgICAgICAgICAgICAg OyBSZWFkIGxpbmUgZnJvbSB0aGUgT3V0RmlsZQ0KICAgIHhpZiBlcXVhbCB7XGZz dWJzdHIoXG0oT3V0TGluZSksMSw4KX0ge1N1YmplY3Q6fSByZXR1cm4NCiAgfQ0K fQ0KDQpkZWYgU2VuZE1zZ0JvZHkgew0KICBsb2NhbCBFbmRNc2cNCiAgSUlucHV0 IHtbTW9yZV19IHtObyBbTW9yZV0gcHJvbXB0IHdoZW4gZWRpdG9yIHN0YXJ0c30N CiAgb3V0cHV0IFwxMyAgICAgICAgICAgICAgICAgICAgICAgICA7IFN0YXJ0IG1l c3NhZ2UgYm9keSBlZGl0b3INCiAgSUlucHV0IHtKfSB7Tm8gImNsZWFyIHNjcmVl biIsIEosIHdoZW4gZWRpdG9yIHN0YXJ0c30NCiAgOyBlY2hvIEZpbmlzaGVkIGVk aXRvciBzY3JlZW4gc2V0dXAuDQogIDsgRkMgZWRpdG9yIGZpbGxzIHNjcmVlbiB3 aXRoIDI0IGxpbmVzDQogIGFzZyBMaW5lQ291bnQgXGZldmFsKDI0KQ0KICBhc2cg RW5kTXNnIDANCiAgd2hpbGUgPiBcbShMaW5lQ291bnQpIDAgew0KICAgIElJbnB1 dCB7SH0gLQ0KICAgIHtDdXJzb3Igcm93LGNvbCBjb250cm9sIG5vdCByZWNlaXZl ZCBiZWZvcmUgc2VuZGluZyBhIGxpbmV9IHtcM30NCiAgICByZWFkIE91dExpbmUN CiAgICB4aWYgZmFpbHVyZSB7DQogICAgICBhc2cgRW5kTXNnIDENCiAgICAgIGJy ZWFrDQogICAgfQ0KICAgIHhpZiBlcXVhbCB7XGZzdWJzdHIoXG0oT3V0TGluZSks MSxcbShTZXBMZW5ndGgpKX0ge1xtKE1TZXApfSB7DQogICAgICBhc2cgRW5kTXNn IDENCiAgICAgIGJyZWFrDQogICAgfQ0KICAgIG91dHB1dCB7XG0oT3V0TGluZSlc MTN9DQogICAgYXNnIExpbmVDb3VudCBcZmV2YWwoXG0oTGluZUNvdW50KS0xKQ0K ICB9DQo7ICBlY2hvIHtFeGl0ZWQgMjQgbGluZSBsb29wLn0NCiAgaWYgPSBcbShF bmRNc2cpIDEgcmV0dXJuDQo7ICBlY2hvIHtTdGFydGluZyAyNXRoIGxpbmUufQ0K ICB3aGlsZSA9IDEgMSB7DQogICA7IFNjcmVlbiBpcyBmdWxsOyBhY2NlcHQgSyBj b250cm9sDQogICBJSW5wdXQge0t9IHtTY3JlZW4gaXMgZnVsbCBidXQgSyBjb250 cm9sIG5vdCByZWNlaXZlZC59IHtcM30NCiAgIElJbnB1dCB7SH0ge0N1cnNvciBy b3csY29sIGNvbnRyb2wgbm90IHJlY2VpdmVkIGJlZm9yZSBzZW5kaW5nIGEgbGlu ZX0ge1wzfQ0KICAgcmVhZCBPdXRMaW5lDQogICBpZiBmYWlsdXJlIGJyZWFrDQog ICBpZiBlcXVhbCB7XGZzdWJzdHIoXG0oT3V0TGluZSksMSxcbShTZXBMZW5ndGgp KX0ge1xtKE1TZXApfSBicmVhaw0KICAgb3V0cHV0IHtcbShPdXRMaW5lKVwxM30N CiAgfQ0KfQ0KDQpkZWYgU2lnIHsNCiAgZm9yIFwlZiAxIFxtKFNpZ0xlbikgMSB7 DQogICAgb3V0cHV0IHtcJnNbXCVmXVwxM30NCiAgICBhc2cgTGluZUNvdW50IFxm ZXZhbChcbShMaW5lQ291bnQpLTEpDQogICAgeGlmID0gXG0oTGluZUNvdW50KSAw IHsgDQogICAgICA7IFNyZWVuIGlzIGZ1bGw7IGFjY2VwdCBLIGNvbnRyb2wNCiAg ICAgIElJbnB1dCB7S30ge0sgY29udHJvbCBub3QgcmVjZWl2ZWQgYWZ0ZXIgZmls bGluZyBzY3JlZW59IFwzICAgICAgICANCiAgICAgIGFzZyBMaW5lQ291bnQgXGZl dmFsKDI0KQ0KICAgIH0NCiAgICBJSW5wdXQge0h9IHtDdXJzb3Igcm93LGNvbCBj b250cm9sIG5vdCByZWNlaXZlZCBhZnRlciBzaWcgbGluZX0ge1wzfQ0KICB9DQp9 DQoNCmRlZiBDbG9zZU1zZyB7DQo7ICBzZXQgaW5wdXQgZWNobyBvbg0KICA7IFNl bmQgPGVzYz4gdG8gbGVhdmUgbWVzc2FnZSBib2R5IGVkaXRvci4NCiAgb3V0cHV0 IHtcMjd9DQogIElJbnB1dCB7Sn0ge2NsZWFyIHNjcmVlbiwgSiwgbm90IHJlY2Vp dmVkIGluIENsb3NlTXNnfQ0KICBJSW5wdXQgezJEfSB7Y3Vyc29yIGNvbnRyb2ws IDJELCBub3QgcmVjZWl2ZWQgaW4gQ2xvc2VNc2d9DQogIG91dHB1dCB7XDEzfQ0K ICBJSW5wdXQgezNEfSB7Y3Vyc29yIGNvbnRyb2wsIDNELCBub3QgcmVjZWl2ZWQg aW4gQ2xvc2VNc2d9DQogIG91dHB1dCB7XDEzfQ0KICBtaW5wdXQgXG0oV2FpdFRp bWUpIHtGb3J3YXJkLn0ge1NjYW4ufSAgICAgIDsgYWNjZXB0IGNvbW1hbmQgc3Vt bWFyeQ0KICBHZXRQcm9tcHQNCiAgZWNobyB7TWVzc2FnZSBzZW50Ln0NCjsgIHNl dCBpbnB1dCBlY2hvIG9mZg0KfQ0KDQpkZWYgUHJvY2VlZE1zZyB7DQo7ICBlY2hv IHtCZWdpbm5pbmcgUHJvY2VlZE1zZy59DQogIG91dHB1dCB7blwxM30gICAgICAg ICAgICAgICAgICAgOyBBc2sgRmlyc3RDbGFzcyB0byBjcmVhdGUgYSBtZXNzYWdl DQogIGVjaG8ge1NlbmRpbmcgbWVzc2FnZSwgIlxtKE91dExpbmUpIi59DQogIElJ bnB1dCB7VG86fSB7IlRvOiIgbm90IHJlY2VpdmVkIGZyb20gaG9zdCBpbiBQcm9j ZWVkTXNnfSBcMw0KICBsb2NhbCBBZGRyUmVzDQogIGFzZyBBZGRyUmVzIDAgICAg ICAgICAgICAgICAgOyBJbmRpY2F0ZXMgYW4gYWNjZXB0YWJsZSBhZGRyZXNzDQog IHdoaWxlID0gMSAxIHsNCiAgICA7IFNlbmQgYWRkcmVzcw0KICAgIHhpZiBlcXVh bCB7XGZzdWJzdHIoXG0oT3V0TGluZSksMSwzKX0ge1RvOn0gew0KICAgICAgYXNn IE91dExpbmUgXGZzdWJzdHIoXG0oT3V0TGluZSksNCkgfQ0KICAgIG91dHB1dCBc bShPdXRMaW5lKQ0KICAgIGlmIDwgMCBcZmluZGV4KEAsXG0oT3V0TGluZSksMSkg b3V0cHV0IHssaX0NCiAgICBvdXRwdXQge1wxM30NCiAgICBjbGVhciBpbnB1dCAg ICAgICAgICAgICAgICAgICA7IEVtcHR5IHRoZSBJTlBVVCBidWZmZXINCiAgICA7 IFRoZSBmb2xsb3dpbmcgY2FzZXMgY29ycmVzcG9uZCB0byBkZWZlY3RpdmUsIGFt YmlndW91cyBhbmQgDQogICAgOyByZWNvZ25pemFibGUgYWRkcmVzc2VzLiANCiAg ICBtaW5wdXQgXG0oV2FpdFRpbWUpIHtzIGZvdW5kXDEzXDEwVG86XDlcOX0ge1wy N1szRH0ge1RvOlw5XDl9IA0KICAgIHN3aXRjaCBcdihtaW5wdXQpIHsNCiAgICAg IDowLCBlcnJleHQge1VucmVjb2duaXplZCBjaGFyYWN0ZXJzIHdoZW4gZXhwZWN0 aW5nICJUbzoifQ0KICAgICAgOjEsIGFib3J0QWRkciwgYnJlYWsNCiAgICAgIDoy LCBhYm9ydEFkZHIsIGJyZWFrDQogICAgICA6MywgYnJlYWsNCiAgICAgIDpkZWZh dWx0LCBlcnJleHQge1VuZGVmaW5lZCBzd2l0Y2ggYWZ0ZXIgZWNobyBmcm9tIG91 dGdvaW5nIGFkZHJlc3N9DQogICAgfQ0KICAgIGlmID0gXG0oQWRkclJlcykgMSBi cmVhayANCiAgICByZWFkIE91dExpbmUgICAgICAgICAgICAgICAgICA7IFJlYWQg bGluZSBmcm9tIHRoZSBPdXRGaWxlDQogICAgeGlmIGVxdWFsIHtcZnN1YnN0cihc bShPdXRMaW5lKSwxLDgpfSB7U3ViamVjdDp9IHsNCiAgICAgIG91dHB1dCB7XDEz fSAgICAgICAgICAgICAgICA7IENsZWFyICJUbzoiIGxvb3ANCiAgICAgIFNlbmRT dWJqDQogICAgICBicmVhayANCiAgICB9IGVsc2Ugew0KICAgICAgeGlmIGVxdWFs IHtcZnN1YnN0cihcbShPdXRMaW5lKSwxLDcpfSB7Q29waWVzOn0gew0KICAgICAg ICBvdXRwdXQge1wxM30gICAgICAgICAgICAgIDsgQ2xlYXIgIlRvOiIgbG9vcA0K ICAgICAgICBTZW5kQ29waWVzQWQNCiAgICAgICAgaWYgPSBcbShBZGRyUmVzKSAw IFNlbmRTdWJqDQogICAgICAgIGJyZWFrDQogICAgICB9DQogICAgfQ0KICB9DQog IGlmID0gXG0oQWRkclJlcykgMSByZXR1cm4gDQogIFNlbmRNc2dCb2R5DQogIHhp ZiBub3QgZXF1YWwge259IHtcZnN1YnN0cihcbShPdXRMaW5lKSxcZmV2YWwoXG0o U2VwTGVuZ3RoKSsxKSwxKX0ge1NpZ30NCiAgQ2xvc2VNc2cNCn0NCg0KZGVmIFNl bmRNc2dzIHsNCiAgb3BlbiByZWFkIFxtKE91dEZpbGUpDQogIGlmIGZhaWx1cmUg ZXJyZXh0IHtDYW4ndCBvcGVuIFxtKE91dEZpbGUpfQ0KICB3aGlsZSA9IDEgMSB7 DQogICAgcmVhZCBPdXRMaW5lICAgICAgICAgICAgICAgICAgOyBSZWFkIHRoZSBh ZGRyZXNzIGZyb20gdGhlIE91dEZpbGUNCiAgICBpZiBmYWlsdXJlIHJldHVybiAg ICAgICAgICAgICA7IE5vIG1vcmUgbWVzc2FnZXMgaW4gT3V0RmlsZQ0KICAgIGlm IGVxdWFsIHtcZnN1YnN0cihcbShPdXRMaW5lKSwxLFxtKFNlcExlbmd0aCkpfSB7 XG0oTVNlcCl9IHJldHVybg0KICAgIENvbmZpcm1TZW5kDQogICAgeGlmID0gXHYo cmV0dXJuKSAwIHtQcm9jZWVkTXNnfSBlbHNlIHtTa2lwT3V0fQ0KOyAgICBlY2hv IHtGaW5pc2hlZCBwcm9jZXNzaW5nIG91dGdvaW5nIG1lc3NhZ2UufQ0KICB9DQog IGNsb3NlIHJlYWQtZmlsZQ0KfQ0KDQo7IEVuZCBvZiBwcm9jZWR1cmVzIHVzZWQg dG8gc2VuZCBtZXNzYWdlcy4NCg0KOyBCZWdpbm5pbmcgb2YgcHJvY2VkdXJlcyB1 c2VkIHRvIHJlY2VpdmUgbWVzc2FnZXMuDQoNCjsgU2tpcE91dCBpcyB1c2VkIHRv IHJlYWQgdGhyb3VnaCBhbiBvdXRnb2luZyBtZXNzYWdlIGJ1dCBub3Qgc2VuZCBp dC4NCmRlZiBTa2lwT3V0IHsNCiAgbG9jYWwgTGluZUJ1ZmZlcg0KICB3aGlsZSA9 IDEgMSB7IA0KICAgIHJlYWQgTGluZUJ1ZmZlciANCiAgICBpZiBmYWlsdXJlIGJy ZWFrIA0KICAgIGlmIGVxdWFsIHtcZnN1YnN0cihcbShMaW5lQnVmZmVyKSwxLFxt KFNlcExlbmd0aCkpfSB7XG0oTVNlcCl9IGJyZWFrDQogIH0NCjsgIGVjaG8ge0xl YXZpbmcgU2tpcE91dC59DQp9DQoNCmRlZiBHZXRNYWlsYm94IHsNCiAgb3BlbiB3 cml0ZSBNQUlMQk9YDQogIGlmIGZhaWx1cmUgZXJyZXh0IHtjYW4ndCBvcGVuIE1B SUxCT1ggZm9yIHdyaXRpbmd9DQogIGVjaG8ge01BSUxCT1ggb3BlbmVkIGZvciB3 cml0aW5nLn0NCiAgb3V0cHV0IHsxXDEzfQ0KICBJSW5wdXQge0p9IHtKIG5vdCBy ZWNlaXZlZCBiZWZvcmUgcmVhZGluZyBNYWlsYm94fQ0KICBJSW5wdXRMaW5lDQog IFNhdmVMaW5lDQogIHdyaXRlbG4gZmlsZSB7XG0oSW5MaW5lKX0NCiAgeGlmIGVx dWFsIHtcZnN1YnN0cihcbShJbkxpbmUpLDEsMjMpfSB7SG9tZTpNYWlsQm94OiBO byBpdGVtcy59IHsNCiAgICA7IE1haWxib3ggaXMgZW1wdHkuDQogICAgSUlucHV0 TGluZQ0KICAgIElJbnB1dExpbmUNCiAgICBHZXRQcm9tcHQgDQogIH0gZWxzZSB7 DQogICAgOyBNYWlsYm94IGlzIG5vdCBlbXB0eS4NCiAgICBsb2NhbCBFeGl0TUIN CiAgICBkZWYgRXhpdE1CIDANCiAgICB3aGlsZSBlcXVhbCBcbShFeGl0TUIpIDAg eyANCiAgICAgIGNsZWFyIGlucHV0DQogICAgICBtaW5wdXQgXG0oV2FpdFRpbWUp IHtcMTB9IHtbTW9yZV19DQogICAgICBzd2l0Y2ggXHYobWlucHV0KSB7DQogICAg ICAgIDowLCBlcnJleHQge1VucmVjb2duaXplZCBjaGFyYWN0ZXJzIHdoZW4gcmVj ZWl2aW5nIE1haWxib3h9DQogICAgICAgIDoxLCBTYXZlTGluZSwgSW5wdXRNQjEg ezF9LCBicmVhaw0KICAgICAgICA6MiwgSW5wdXRNQjIsIGJyZWFrDQogICAgICAg IDpkZWZhdWx0LCBlcnJleHQge1VuZGVmaW5lZCBzd2l0Y2ggaW4gTWFpbGJveCBy ZWFkaW5nIGxvb3B9DQogICAgICB9DQogICAgfQ0KICB9DQogIGNsb3NlIHdyaXRl LWZpbGUNCn0NCg0KOyBQcm9jZXNzTXNncyBnZXRzIHRoZSBtYWlsYm94IGxpc3Rp bmcgaW50byBhIGZpbGUgYW5kIHRoZW4gcmVhZHMgDQo7IHVucmVhZCBtZXNzYWdl cy4NCmRlZiBQcm9jZXNzTXNncyB7DQogIEdldE1haWxib3gNCiAgZWNobyB7TUFJ TEJPWCBmaWxlIHdyaXR0ZW4gYW5kIGNsb3NlZC4gIENoZWNraW5nIGVhY2ggZW50 cnkgLi4uIH0NCiAgb3BlbiByZWFkIE1BSUxCT1gNCiAgaWYgZmFpbHVyZSBlcnJl eHQge2Nhbid0IG9wZW4gTUFJTEJPWCBmb3IgcmVhZGluZ30NCiAgcmVhZCBUaXRs ZQ0KICBpZiBmYWlsdXJlIGVycmV4dCB7Tm90aGluZyBpbiBtYWlsYm94fQ0KICB3 aGlsZSA9IDEgMSB7IA0KICAgIHJlYWQgVGl0bGUNCiAgICBpZiBmYWlsdXJlIGJy ZWFrDQo7ICAgIGVjaG8ge0NoZWNraW5nIGEgbGluZSBpbiB0aGUgbWFpbGJveCBm aWxlIC4uLn0NCjsgICAgZWNobyB7XG0oVGl0bGUpfQ0KICAgIHhpZiBlcXVhbCB7 XGZzdWJzdHIoXG0oVGl0bGUpLDEsMSl9IHsqfSB7IA0KICAgICAgR2V0TXNnTnVt DQogICAgICBpZiA+IFxtKE1zZ051bSkgMCBSZWN2TXNnIA0KICAgIH0gDQogIH0N CiAgY2xvc2UgcmVhZC1maWxlICAgICAgICAgICAgICAgICA7IENsb3NlIHRoZSBN QUlMQk9YIGZpbGUNCn0NCg0KOyBFbmQgb2YgcHJvY2VkdXJlcyB1c2VkIHRvIHJl Y2VpdmUgbWVzc2FnZXMgb3IgdG8gdGlkeSB0aGUgbWFpbGJveC4NCg0KZGVmIENv bW11bmljYXRlIHsNCiAgTG9naW4NCiAgeGlmIGV4aXN0IFxtKE91dEZpbGUpIHsN CiAgICBTZW5kTXNncyAgICAgOyBTZW5kIG91dGdvaW5nIG1lc3NhZ2VzIC4uLg0K ICAgIHhpZiA9IFxtKERPRkFTKSAxIHsgZGVsZXRlIFxtKE91dEZpbGUpIH0NCiAg fQ0KICBQcm9jZXNzTXNncyAgICAgICAgOyBSZWFkIHRoZSBpbmNvbWluZyBtZXNz YWdlcyBvciB0aWR5IHRoZSBtYWlsYm94Lg0KICBvdXRwdXQge2xvZ291dCB5XDEz fQ0KICBoYW5ndXANCiAgY2xvc2Ugc2Vzc2lvbiAgICAgICAgICAgICAgICAgICA7 IENsb3NlIHNlc3Npb24gbG9nDQogIHF1aXQNCn0NCg0KOyBGaW5pc2hlZCBtYWNy byBkZWZpbml0aW9ucy4gIA0KDQpDb21tdW5pY2F0ZSAgICAgICAgICAgICAgICAg ICAgICAgOyBNYWtlIGl0IGhhcHBlbi4NCg== --simple boundary-- .