Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Authentication-Warning: slinky.cs.nyu.edu: pechtcha owned process doing -bs Date: Fri, 30 Aug 2002 17:59:39 -0400 (EDT) From: Igor Pechtchanski Reply-To: cygwin AT cygwin DOT com To: Fred_Smith AT computrition DOT com cc: cygwin AT cygwin DOT com Subject: Re: printing from within Cygwin In-Reply-To: <85256C25.005F41DF.00@cinote.computrition.com> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-342241519-1030739090=:14712" Content-ID: ---559023410-342241519-1030739090=:14712 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: On Fri, 30 Aug 2002 Fred_Smith AT computrition DOT com wrote: > Trying to figure out how to print from a Cywin (console) app. > > Porting a Linux app to cygwin. On Linux it uses popen() to pipe output to a > shellscript which in turn cats its input to lpr (it may do other things, > and may transform the data, but that's the ultimate goal). > > trying to figure out how to do something akin to that under cygwin. > > Invoking "lpr " at the command prompt comes back with an error > message: > > can't open 'prn' for writing. > > Advice would be appreciated. (I hope you're not going to tell me I need to > learn all about the innards of windoze printing!) > > Thanks! > Fred No, learning the innards of "windoze" printing is not necessary. Learning ghostscript options, however, wouldn't hurt. ;-) I have been using the attached script for a while. It works on my current system (Win2k with gs7.03 installed). Note the disabled support for gsprint -- I couldn't get it to work properly. If anyone can get the gsprint part to work, please let me know. I also had to tweak the standard gslp.ps that comes with ghostscript to allow printing standard input properly (modified script attached). My copy of gslp.ps is in /usr/local/bin, and the script expects to find it there. The -P option and the $PRINTER variable will recognize windows printer names (spaces and all). 'ware of the backslashes... Use the -Q option to select the printer using the windows printer selection dialog. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file ---559023410-342241519-1030739090=:14712 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=lpr-mine Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=lpr-mine IyEgL2Jpbi9zaA0NCiMgQXV0aG9yOiBQaWVycmUgQS4gSHVtYmxldCBwaWVy cmUuaHVtYmxldEBpZWVlLm9yZyAgDQ0KIyAgIENyZWF0ZWQ6IE1heSAyMDAw DQ0KIyAgIE1vZGlmaWVkOiBNYXJjaCAyMDAxIEFkZCBzdXBwb3J0IGZvciBn c3ByaW50DQ0KIyBNb2RpZnkgYW5kIHJlZGlzdHJpYnV0ZSBmcmVlbHkuIFVz ZSBhdCB5b3VyIG93biByaXNrLg0NCiMgVGhpcyBpcyBkaXN0cmlidXRlZCBh cyBwYXJ0IG9mIHRoZSBYZmlnLUN5Z3dpbiBwYWNrYWdlLg0NCiMNDQojIE1v ZGlmaWVkOiBJZ29yIFBlY2h0Y2hhbnNraSBwZWNodGNoYUBjcy5ueXUuZWR1 DQ0KIyAgIE1vZGlmaWVkOiBGZWJydWFyeSAyMDAyIEFkZCBzdXBwb3J0IGZv ciAtUCBhbmQgJFBSSU5URVINDQojICAgTW9kaWZpZWQ6IEZlYnJ1YXJ5IDIw MDIgQWRkIHN1cHBvcnQgZm9yIHN0ZGluDQ0KIyAgIE1vZGlmaWVkOiBNYXJj aCAyMDAyIERpc2FibGUgZ3NwcmludCBzdXBwb3J0DQ0KIyAgIE1vZGlmaWVk OiBNYXkgMjAwMiBUd2VhayBncyBvcHRpb25zDQ0KIyAgIE1vZGlmaWVkOiBB dWd1c3QgMjAwMiBBZGQgLVEgYW5kIC1oOyBtYWtlIHByZXNlbnRhYmxlDQ0K Iw0NCiMgU2NyaXB0IHRvIHByaW50IHBvc3RzY3JpcHQgZnJvbSBzdGRpbiBv ciB0aGUgZmlsZSBnaXZlbiBhcyANDQojICAgc2luZ2xlIGFyZ3VtZW50Lg0N CiMgUmVsaWVzIG9uIHRoZSBleGlzdGVuY2Ugb2YgZ3NwcmludCANDQojICAg KCBodHRwOi8vd3d3LmNzLndpc2MuZWR1L35naG9zdC9nc3ZpZXcvZ3Nwcmlu dC5odG0gKQ0NCiMgICBvciBvZiBncyAoZ2hvc3RzY3JpcHQpIHdpdGggZGV2 aWNlIG1zd2lucHIyDQ0KIw0NCg0NCiNHU0xQPWdzbHAucHMNDQpHU0xQPWBj eWdwYXRoIC13IC91c3IvbG9jYWwvYmluL2dzbHAucHNgDQ0KVVNBR0U9IlwN DQpVc2FnZTogJDAgWy0taGVscF0gWy0tcXVlcnl8LVFdDQ0KICAgICAgIFst LXByaW50ZXIgPHByaW50ZXI+fC1QIDxwcmludGVyPnwtUDxwcmludGVyPl0g W2ZpbGVfMSAuLiBmaWxlX25dIg0NCg0NCndoaWxlIFsgJCMgLWd0IDAgXTsg ZG8NDQogY2FzZSAiJDEiIGluDQ0KICAtaCB8IC0taGVscCkgICAgc2hpZnQ7 IGVjaG8gIiRVU0FHRSI7IGV4aXQgMCA7Ow0NCiAgLVEgfCAtLXF1ZXJ5KSAg IHNoaWZ0OyBRVUVSWT10cnVlIDs7DQ0KICAtUCB8IC0tcHJpbnRlcikgc2hp ZnQ7IFBSSU5URVI9IiQxIjsgc2hpZnQNDQogICAgICAgICAgICAgICAgICBp ZiBbIC16ICIkUFJJTlRFUiIgXTsgdGhlbg0NCiAgICAgICAgICAgICAgICAg ICBlY2hvIFBsZWFzZSBzcGVjaWZ5IGEgcHJpbnRlciB3aXRoIC1QIDE+JjIN DQogICAgICAgICAgICAgICAgICAgZXhpdCAyDQ0KICAgICAgICAgICAgICAg ICAgZmkgOzsNDQogIC1QKikgICAgICAgICAgICBQUklOVEVSPSIkezEjLVB9 Ijsgc2hpZnQgOzsNDQogIC0tKSAgICAgICAgICAgICBzaGlmdDsgYnJlYWsg OzsNDQogIC0qKSAgICAgICAgICAgICBlY2hvICIkMDogJDE6IGludmFsaWQg b3B0aW9uIiAxPiYyDQ0KICAJCSAgZWNobyAiJFVTQUdFIiAxPiYyDQ0KICAJ CSAgZXhpdCAyIDs7DQ0KICAqKSAgICAgICAgICAgICAgYnJlYWsgOzsNDQog ZXNhYw0NCmRvbmUNDQoNDQppZiBbICIkezE6LX0iID0gIiIgXQ0NCnRoZW4N DQojIGZpbGU9LV8NDQogZmlsZT0nJXN0ZGluJw0NCmVsc2UNDQogZmlsZT0i JDEiDQ0KIGlmIFsgISAtciAiJGZpbGUiIF0NDQogdGhlbg0NCiAgZmlsZT0i JHtmaWxlfS5wcyINDQogIGlmIFsgISAtciAiJGZpbGUiIF0NDQogIHRoZW4N DQogICBlY2hvIENhbm5vdCByZWFkICIkZmlsZSIgMT4mMg0NCiAgIGV4aXQN DQogIGZpDQ0KIGZpDQ0KIGZpbGU9YGN5Z3BhdGggLXcgIiRmaWxlImANDQpm aQ0NCg0NCiNlY2hvICJQcmludGluZyAnJHtmaWxlfScgdG8gJFBSSU5URVIi DQ0KDQ0KIyBMb29rIGZvciBHaG9zdGd1bSBHc3ZpZXcgaW4gdGhlIHJlZ2lz dHJ5DQ0KR1NQUklOVD0iIg0NClZFUlNJT05TPWByZWd0b29sIC1xIGxpc3Qg J1xIS0xNXFNPRlRXQVJFXEdob3N0Z3VtXEdzdmlldydgDQ0KIyBTY2FuIGFs bCB2ZXJzaW9ucywga2VlcCB0aGUgbGFzdCBnb29kIG9uZQ0NCmZvciBWRVIg aW4gJHtWRVJTSU9OU30NDQpkbw0NCiBXSEVSRV9XPWByZWd0b29sIC1xIGdl dCAnXEhLTE1cU09GVFdBUkVcR2hvc3RndW1cR3N2aWV3XCciJHtWRVJ9ImAN DQogaWYgWyAtbiAiJFdIRVJFX1ciIF0NDQogdGhlbg0NCiAgV0hFUkVfVT1g Y3lncGF0aCAtdSAiJFdIRVJFX1ciYA0NCiAgR1NQUklOVF9DQU5EPSIke1dI RVJFX1V9L2dzdmlldy9nc3ByaW50LmV4ZSINDQogIGlmIFsgLXggIiRHU1BS SU5UX0NBTkQiIF0NDQogIHRoZW4NDQojICAgR1NQUklOVD0iJHtHU1BSSU5U X0NBTkR9Ig0NCiAgZmkNDQogZmkNDQpkb25lICAgDQ0KDQ0KIyBFc2NhcGUg YmFja3NsYXNoZXMgaW4gJFBSSU5URVINDQpQUklOVEVSPWBlY2hvICRQUklO VEVSIHwgc2VkICdzL1xcXFwvXFxcXFxcXFwvZydgDQ0KDQ0KaWYgWyAtbiAi JEdTUFJJTlQiIF0NDQp0aGVuDQ0KIyBVc2UgZ3NwcmludA0NCiBQUklOVFNU Uj0iIg0NCiBpZiBbIC1uICIkUFJJTlRFUiIgXQ0NCiB0aGVuDQ0KICBQUklO VFNUUj0iLXByaW50ZXIgJFBSSU5URVIiDQ0KIGZpDQ0KIGVjaG8gIiR7R1NQ UklOVH0iIC1xIC1xdWVyeSAkUFJJTlRTVFIgIiR7ZmlsZX0iDQ0KICIke0dT UFJJTlR9IiAtcSAtcXVlcnkgJFBSSU5UU1RSICIke2ZpbGV9Ig0NCmVsc2UN DQojIFRyeSBncw0NCiBpZiBbIC1uICIkUFJJTlRFUiIgXQ0NCiB0aGVuDQ0K ICBQUklOVFNUUj0nL091dHB1dEZpbGUgKFxcXFxzcG9vbFxcJyIkUFJJTlRF UiInKScNDQogZWxpZiBbIC1uICIkUVVFUlkiIF0NDQogdGhlbg0NCiAgUFJJ TlRTVFI9Jy9RdWVyeVVzZXIgMScNDQogZWxzZQ0NCiAgUFJJTlRTVFI9Jy9R dWVyeVVzZXIgMycNDQogZmkNDQojIGVjaG8gIlByaW50aW5nICcke2ZpbGV9 JyB0byAkUFJJTlRFUiB1c2luZyBncyAtZE5PUEFVU0UgLWRCQVRDSCAtcSAt YyBtYXJrIC9Ob0NhbmNlbCB0cnVlICRQUklOVFNUUiAvVXNlclNldHRpbmdz ICc8PCcgL01heFJlc29sdXRpb24gMTIwMCAnPj4nICcobXN3aW5wcjIpJyBm aW5kZGV2aWNlIHB1dGRldmljZXByb3BzIHNldGRldmljZSAtZiAtc1BST0dO QU1FPWxwciAtLSAkR1NMUCAtLWRldGVjdCAtQiAke2ZpbGV9Ig0NCiBncyAt ZE5PUEFVU0UgLWRCQVRDSCAtcSAtYyBtYXJrIC9Ob0NhbmNlbCB0cnVlICIk UFJJTlRTVFIiIC9Vc2VyU2V0dGluZ3MgJzw8JyAvTWF4UmVzb2x1dGlvbiAx MjAwICc+PicgJyhtc3dpbnByMiknIGZpbmRkZXZpY2UgcHV0ZGV2aWNlcHJv cHMgc2V0ZGV2aWNlIC1mIC1zUFJPR05BTUU9bHByIC0tICRHU0xQIC0tZGV0 ZWN0IC1CICIke2ZpbGV9Ig0NCmZpDQ0KDQ0KIyBUaGlzIHdvcmtlZDogImdz IC1kTk9QQVVTRSAtZEJBVENIIC1xIC1zREVWSUNFPW1zd2lucHIyIC1yNjAw ICctc091dHB1dEZpbGU9XFxzcG9vbFwkUFJJTlRFUicgLWROb0NhbmNlbCAt c1BST0dOQU1FPWdzbHAgLS0gZ3NscC5wcyAke2ZpbGV9Ig0NCiMgU28gZGlk IHRoaXM6ICJncyAtZE5PUEFVU0UgLWRCQVRDSCAtcSAtYyBtYXJrIC9Ob0Nh bmNlbCB0cnVlIC9RdWVyeVVzZXIgMyAvT3V0cHV0RmlsZSAnKFxcc3Bvb2xc bHAuc2NzLmNzLm55dS5lZHUpJyAvVXNlclNldHRpbmdzICc8PCcgL01heFJl c29sdXRpb24gMTIwMCAnPj4nICcobXN3aW5wcjIpJyBmaW5kZGV2aWNlIHB1 dGRldmljZXByb3BzIHNldGRldmljZSAtZiAtc1BST0dOQU1FPWdzbHAgLS0g Z3NscC5wcyAke2ZpbGV9Ig0NCg== ---559023410-342241519-1030739090=:14712 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="gslp.ps" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="gslp.ps" JSAgICBDb3B5cmlnaHQgKEMpIDE5OTEsIDE5OTUsIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTkgQWxhZGRpbiBFbnRlcnByaXNlcy4gIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQ0KJSANDQolIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEFGUEwgR2hv c3RzY3JpcHQuDQ0KJSANDQolIEFGUEwgR2hvc3RzY3JpcHQgaXMgZGlzdHJp YnV0ZWQgd2l0aCBOTyBXQVJSQU5UWSBPRiBBTlkgS0lORC4gIE5vIGF1dGhv ciBvcg0NCiUgZGlzdHJpYnV0b3IgYWNjZXB0cyBhbnkgcmVzcG9uc2liaWxp dHkgZm9yIHRoZSBjb25zZXF1ZW5jZXMgb2YgdXNpbmcgaXQsIG9yDQ0KJSBm b3Igd2hldGhlciBpdCBzZXJ2ZXMgYW55IHBhcnRpY3VsYXIgcHVycG9zZSBv ciB3b3JrcyBhdCBhbGwsIHVubGVzcyBoZSBvcg0NCiUgc2hlIHNheXMgc28g aW4gd3JpdGluZy4gIFJlZmVyIHRvIHRoZSBBbGFkZGluIEZyZWUgUHVibGlj IExpY2Vuc2UgKHRoZQ0NCiUgIkxpY2Vuc2UiKSBmb3IgZnVsbCBkZXRhaWxz Lg0NCiUgDQ0KJSBFdmVyeSBjb3B5IG9mIEFGUEwgR2hvc3RzY3JpcHQgbXVz dCBpbmNsdWRlIGEgY29weSBvZiB0aGUgTGljZW5zZSwgbm9ybWFsbHkNDQol IGluIGEgcGxhaW4gQVNDSUkgdGV4dCBmaWxlIG5hbWVkIFBVQkxJQy4gIFRo ZSBMaWNlbnNlIGdyYW50cyB5b3UgdGhlIHJpZ2h0DQ0KJSB0byBjb3B5LCBt b2RpZnkgYW5kIHJlZGlzdHJpYnV0ZSBBRlBMIEdob3N0c2NyaXB0LCBidXQg b25seSB1bmRlciBjZXJ0YWluDQ0KJSBjb25kaXRpb25zIGRlc2NyaWJlZCBp biB0aGUgTGljZW5zZS4gIEFtb25nIG90aGVyIHRoaW5ncywgdGhlIExpY2Vu c2UNDQolIHJlcXVpcmVzIHRoYXQgdGhlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgbm90aWNlIGJlIHByZXNlcnZlZCBvbiBhbGwNDQolIGNvcGllcy4N DQoNDQolICRJZDogZ3NscC5wcyx2IDEuMiAyMDAwLzA5LzE5IDE4OjI5OjEx IGxwZCBFeHAgJA0NCiUgZ3NscC5wcyAtIGZvcm1hdCBhbmQgcHJpbnQgdGV4 dA0NCg0NCiUgVGhpcyB1dGlsaXR5IHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkg YXBwcm94aW1hdGVseSBlcXVpdmFsZW50IHRvIHRoZSBVbml4DQ0KJSBgZW5z Y3JpcHQnIHByb2dyYW0uICBJdCBwcmludHMgcGxhaW4gdGV4dCBmaWxlcyB1 c2luZyBhIHNpbmdsZSBmb250Lg0NCiUgSXQgY3VycmVudGx5IGhhbmRsZXMg dGFicyBhbmQgZm9ybWZlZWRzLCBidXQgbm90IGJhY2tzcGFjZXMuDQ0KJSBJ dCB3aWxsIGxpbmUtd3JhcCB3aGVuIHVzaW5nIGZpeGVkLXBpdGNoIGZvbnRz Lg0NCiUgSXQgd2lsbCBhbHNvIGRvIGtlcm5pbmcgYW5kIHdpZHRoIGFkanVz dG1lbnQuDQ0KJSBTdGFuZGFyZCBzd2l0Y2hlcyBpbXBsZW1lbnRlZDoNDQol CS0xMkJjbHFSciAtYjxoZWFkZXI+IC1mPGZvbnQ+IC1GPGhmb250PiAtTDxs aW5lcz4gLXA8b3V0ZmlsZT4NDQolIFN1biBzd2l0Y2hlcyBpbXBsZW1lbnRl ZDoNDQolCS1UPG4+CXNldCB0YWIgd2lkdGgNDQolIFN3aXRjaGVzIGlnbm9y ZWQ6DQ0KJQktR2doS2ttb3cgLSMgLUMgLWQgLUogLW4gLVAgLVMgLXMgLXQg LXYNDQolIFN3aXRjaGVzIGFkZGVkOg0NCiUJLS1hZGQtdG8tc3BhY2UgPHVu aXRzPg0NCiUJCWFkZCB0aGUgZ2l2ZW4gbnVtYmVyIG9mIDEvNzIiIHVuaXRz IHRvIHRoZSB3aWR0aCBvZiBlYWNoDQ0KJQkJc3BhY2UgKG1heSBiZSBuZWdh dGl2ZSkNDQolCS0tYWRkLXRvLXdpZHRoIDx1bml0cz4NDQolCQlhZGQgdGhl IGdpdmVuIG51bWJlciBvZiAxLzcyIiB1bml0cyB0byB0aGUgd2lkdGggb2Yg ZWFjaA0NCiUJCWNoYXJhY3RlciAobWF5IGJlIG5lZ2F0aXZlKQ0NCiUJLS1j b2x1bW5zIDxuPg0NCiUJCXByaW50IGluIDxuPiBjb2x1bW5zDQ0KJQktLWRl dGVjdA0NCiUJCXRyZWF0IHRoZSBmaWxlIGFzIFBvc3RTY3JpcHQgaWYgaXQg c3RhcnRzIHdpdGggJSENDQolCS0tZmlyc3QtcGFnZSA8bj4NDQolCQlzdGFy dCBwcmludGluZyBhdCBwYWdlIDxuPg0NCiUJLS1rZXJuIDxmaWxlLmFmbT4N DQolCQlrZXJuIHVzaW5nIGluZm9ybWF0aW9uIGZyb20gdGhlIGdpdmVuIC5B Rk0gZmlsZQ0NCiUJLS1sYXN0LXBhZ2UgPG4+DQ0KJQkJc3RvcCBwcmludGlu ZyBhZnRlciBwYWdlIDxuPg0NCiUJLS0oaGVhZGluZ3xmb290aW5nKS0obGVm dHxjZW50ZXJ8cmlnaHQpIDxzdHJpbmc+DQ0KJQkJc2V0IHRoZSBoZWFkaW5n L2Zvb3RpbmcgZmllbGRzOyB1c2UgLUIgZmlyc3QgdG8gY2xlYXINDQolCS0t bWFyZ2luLSh0b3B8Ym90dG9tfGxlZnR8cmlnaHQpIDxpbmNoZXM+DQ0KJQkJ c2V0IGEgbWFyZ2luDQ0KJQktLW5vLWVqZWN0LShmaWxlfGZvcm1mZWVkKQ0N CiUJCWVuZC1vZi1maWxlL0ZGIG9ubHkgc3RhcnRzIGEgbmV3IGNvbHVtbiwg bm90IGEgbmV3IHNoZWV0DQ0KJQktLXNwYWNpbmcgPG4+DQ0KJQkJdXNlIGRv dWJsZSAobj0yKSwgdHJpcGxlIChuPTMpLCBldGMuIHNwYWNpbmcNDQolIEFs c28sIHRoZSBzdHJpbmcgJSMgaW4gYSBoZWFkaW5nIG9yIGZvb3RpbmcgaXMg cmVwbGFjZWQgd2l0aCB0aGUgcGFnZSAjLg0NCi9QYWdlTnVtYmVyU3RyaW5n ICglIykgZGVmDQ0KDQ0KL2xwZGljdCAxNTAgZGljdCBkZWYNDQpscGRpY3Qg YmVnaW4NDQoNDQolIGJ1aWxkIGlzby1sYXRpbi0xIHZlcnNpb24gb2YgYSBm b250DQ0KL2ZvbnQtdG8taXNvLWxhdGluLTEgewklIDxmb250PiBmb250LXRv LWlzby1sYXRpbi0xIDxmb250Pg0NCiAgICAlJSByZWVuY29kZSBmb3IgaXNv IGxhdGluMTsgZnJvbSB0aGUgMm5kIGVkaXRpb24gcmVkIGJvb2ssIHNlYyA1 LjYuMQ0NCiAgICBkdXAgbGVuZ3RoIGRpY3QgYmVnaW4gezEgaW5kZXggL0ZJ RCBuZSB7ZGVmfSB7cG9wIHBvcH0gaWZlbHNlfSBmb3JhbGwNDQogICAgL0Vu Y29kaW5nIElTT0xhdGluMUVuY29kaW5nIGRlZiBjdXJyZW50ZGljdCBlbmQN DQogICAgZHVwIC9Gb250TmFtZSBnZXQgODAgc3RyaW5nIGN2cyAoLUlTT0xh dGluMSkgY29uY2F0c3RyaW5ncyBjdm4gDQ0KICAgIGV4Y2ggZGVmaW5lZm9u dA0NCn0gZGVmDQ0KDQ0KL2ZpbmQtbGF0aW4tZm9udCB7CSUgPG5hbWU+IGZp bmQtbGF0aW4tZm9udCA8Zm9udD4NDQogIGZpbmRmb250IGZvbnQtdG8taXNv LWxhdGluLTENDQp9IGRlZg0NCg0NCiUgRGVmaW5lIHRoZSBpbml0aWFsIHZh bHVlcyBvZiB0aGUgcHJpbnRpbmcgcGFyYW1ldGVycy4NDQoNDQovQWRkVG9T cGFjZSAwIGRlZg0NCi9BZGRUb1dpZHRoIDAgZGVmDQ0KL0JvZHlGb250IG51 bGwgZGVmCQklIHVzZSBkZWZhdWx0DQ0KICAvZGVmYXVsdEJvZHlGb250UG9y dHJhaXQNDQogICAgL0NvdXJpZXIgZmluZC1sYXRpbi1mb250IDEwIHNjYWxl Zm9udCBkZWYNDQogIC9kZWZhdWx0Qm9keUZvbnRMYW5kc2NhcGUNDQogICAg L0NvdXJpZXIgZmluZC1sYXRpbi1mb250IDcgc2NhbGVmb250IGRlZg0NCiAg L2RlZmF1bHRCb2R5Rm9udA0NCiAgICB7IExhbmRzY2FwZSB7IGRlZmF1bHRC b2R5Rm9udExhbmRzY2FwZSB9IHsgZGVmYXVsdEJvZHlGb250UG9ydHJhaXQg fSBpZmVsc2UgfSBkZWYNDQovQ29sdW1ucyAxIGRlZg0NCi9EZXRlY3RGaWxl VHlwZSBmYWxzZSBkZWYNDQovRWplY3RFT0YgdHJ1ZSBkZWYNDQovRWplY3RG RiB0cnVlIGRlZg0NCi9Gb290ZXJzIGZhbHNlIGRlZg0NCi9Gb290aW5nTGVm dCAoKSBkZWYNDQovRm9vdGluZ0NlbnRlciAoKSBkZWYNDQovRm9vdGluZ1Jp Z2h0ICgpIGRlZg0NCi9IZWFkZXJzIHRydWUgZGVmDQ0KL0hlYWRpbmdMZWZ0 ICgpIGRlZg0NCi9IZWFkaW5nQ2VudGVyICgpIGRlZg0NCi9IZWFkaW5nUmln aHQgKHBhZ2UgKSBQYWdlTnVtYmVyU3RyaW5nIGNvbmNhdHN0cmluZ3MgZGVm DQ0KL0hlYWRpbmdGb250IG51bGwgZGVmCQklIHVzZSBkZWZhdWx0DQ0KICAv ZGVmYXVsdEhlYWRpbmdGb250DQ0KICAgIC9Db3VyaWVyLUJvbGQgZmluZC1s YXRpbi1mb250IDEwIHNjYWxlZm9udCBkZWYNDQovS2VybiAwIGRpY3QgZGVm CQklIG5vIGtlcm5pbmcNDQovTGFuZHNjYXBlIGZhbHNlIGRlZg0NCi9NYXJn aW5Cb3R0b20gMzYgZGVmCQklIDEvMiINDQovTWFyZ2luTGVmdCAzNiBkZWYJ CSUgMS8yIg0NCi9NYXJnaW5SaWdodCAzNiBkZWYJCSUgMS8yIg0NCi9NYXJn aW5Ub3AgMzYgZGVmCQklIDEvMiINDQovTWF4TGluZXMgOTk5OSBkZWYJCSUg bWF4IGxpbmVzIHBlciBwYWdlDQ0KL05vaXN5IHRydWUgZGVmCQkJJSBpLmUu LCBub3QgcXVpZXQNDQovT3V0RmlsZSBudWxsIGRlZgkJJSBudWxsID0gd3Jp dGUgZGlyZWN0bHkgdG8gZGV2aWNlDQ0KL1BhZ2VGaXJzdCAxIGRlZg0NCi9Q YWdlTGFzdCA5OTk5OSBkZWYNDQovU3BhY2luZyAxIGRlZg0NCi9UYWIgOCBk ZWYNDQovVHJ1bmNhdGUgZmFsc2UgZGVmCQklIHdyYXAgbG9uZyBsaW5lcywg ZG9uJ3QgdHJ1bmNhdGUNDQoNDQolIFdoZW4gd3JpdGluZyB0byBhIGZpbGUs IHdlIHdhbnQgdG8gd3JpdGUgb3V0IFBvc3RTY3JpcHQ7DQ0KJSB3aGVuIHdy aXRpbmcgdG8gdGhlIHByaW50ZXIsIHdlIHdhbnQgdG8gZXhlY3V0ZSBpdDsN DQolIHNvbWUgY29tbWFuZHMgc2hvdWxkIGJlIGV4ZWN1dGVkIHJlZ2FyZGxl c3MuDQ0KJSBscGV4ZWMgcHJvdmlkZXMgZm9yIGFsbCB0aGlzLg0NCg0NCi9s cGRlZiB7CSUgPG5hbWU+IDx2YWx1ZT4gbHBkZWYgLQ0NCiAgL2RlZiAyIHRy dWUgbHBleGVjDQ0KfSBkZWYNDQoNDQovbHBleGVjIHsJJSA8YXJnMT4gLi4u IDxhcmduPiA8L29wPiA8bj4gPGRvX2Fsd2F5cz4gbHBleGVjIC0NDQogIE91 dEZpbGUgbnVsbCBlcSB7DQ0KICAgIHBvcCAxIGFkZCB0cnVlDQ0KICB9IHsN DQogICAgL3QgZXhjaCBkZWYgMSBhZGQgL24gZXhjaCBkZWYgY3Z4DQ0KICAg IG4gLTEgcm9sbCBkdXAgd28NDQogICAgbiAxIHN1YiB7IG4gLTEgcm9sbCBk dXAgd29zcCB9IHJlcGVhdA0NCiAgICAoXG4pIHdzIG4gdA0NCiAgfSBpZmVs c2UNDQogICAgeyBwb3AgbG9hZCBleGVjIH0NDQogICAgeyB7IHBvcCB9IHJl cGVhdCB9DQ0KICBpZmVsc2UNDQp9IGRlZg0NCg0NCi9scG1vdmV0byB7CSUg PHg+IDx5PiBscG1vdmV0byAtDQ0KCSUgUm91bmQgdGhlIGNvb3JkaW5hdGVz IGZvciBzbWFsbGVyIG91dHB1dC4NDQogIDIgew0NCiAgICBleGNoIDEwMCBt dWwgcm91bmQgMTAwIGRpdg0NCiAgICBkdXAgZHVwIGN2aSBlcSB7IGN2aSB9 IGlmDQ0KICB9IHJlcGVhdA0NCiAgMSBpbmRleCBYIGVxIHsgbmVnIGV4Y2gg cG9wIC9WIDEgfSB7IG5lZyAvTSAyIH0gaWZlbHNlIHRydWUgbHBleGVjDQ0K fSBkZWYNDQovbHBzaG93IHsJJSA8c3RyaW5nPiBscHNob3cgLQ0NCiAgZHVw IGxlbmd0aCAwIG5lIHsNDQogICAgYWRkc3BhY2UgMCBuZSB7DQ0KICAgICAg YWRkc3BhY2UgMCAzMiANDQogICAgICBhZGR3aWR0aCAwIG5lIHsNDQoJYWRk d2lkdGggMCA2IC0xIHJvbGwgL2F3aWR0aHNob3cgNiB0cnVlIGxwZXhlYw0N CiAgICAgIH0gew0NCgk0IC0xIHJvbGwgL3dpZHRoc2hvdyA0IHRydWUgbHBl eGVjDQ0KICAgICAgfSBpZmVsc2UNDQogICAgfSB7DQ0KICAgICAgYWRkd2lk dGggMCBuZSB7DQ0KCWFkZHdpZHRoIDAgMyAtMSByb2xsIC9hc2hvdyAzIHRy dWUgbHBleGVjDQ0KICAgICAgfSB7DQ0KCU91dEZpbGUgbnVsbCBuZSB7DQ0K CSAgZHVwIGR1cCBsZW5ndGggPXN0cmluZyBsZW5ndGggZ3Qgew0NCgkgICAg L3Nob3cgMSBmYWxzZSBscGV4ZWMNDQoJICB9IHsNDQoJICAgIChTICkgd3Mg d3MgKFxuKSB3cw0NCgkgIH0gaWZlbHNlDQ0KCX0gaWYgc2hvdyANDQogICAg ICB9IGlmZWxzZQ0NCiAgICB9IGlmZWxzZQ0NCiAgfSB7DQ0KICAgIHBvcA0N CiAgfSBpZmVsc2UNDQp9IGRlZg0NCi9scHNldG15Zm9udCB7DQ0KICBkdXAg bG9hZCBzZXRmb250DQ0KICAgT3V0RmlsZSBudWxsIG5lIHsgY3Z4IC9zZXRm b250IDEgZmFsc2UgbHBleGVjIH0geyBwb3AgfSBpZmVsc2UNDQp9IGRlZg0N Cg0NCiUgRGVmaW5lIHNvbWUgdXRpbGl0eSBwcm9jZWR1cmVzLg0NCg0NCi9i YW5uZXIJCSUgeXBvcyBsZWZ0IGNlbnRlciByaWdodA0NCiB7IC9IRm9udCBs cHNldG15Zm9udA0NCiAgIC9hZGRzcGFjZSAwIGRlZiAvYWRkd2lkdGggMCBk ZWYNDQogICAvcGFpcmtlcm4gMCBkaWN0IGRlZg0NCiAgIDMgLTEgcm9sbCBi YW5uZXJzdHJpbmcgcG9wIDAgNCBpbmRleCBwd2lkdGggc2hvd2xpbmUyIHBv cA0NCiAgIGV4Y2ggYmFubmVyc3RyaW5nIHB3aWR0aCBleGNoIHN1YiAyIGRp diAzIGluZGV4IHB3aWR0aCBzaG93bGluZTIgcG9wDQ0KICAgYmFubmVyc3Ry aW5nDQ0KCQklIFByZXZlbnQgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBo ZWFkaW5nIGZyb20gZ3JhemluZw0NCgkJJSB0aGUgcmlnaHQgbWFyZ2luLg0N CgkJJSAqKioqKiogV0hZIERPRVMgSVQgUkVRVUlSRSBTTyBNVUNIIFBBRERJ Tkc/ICoqKioqKg0NCiAgICggKSBzdHJpbmd3aWR0aCBwb3AgMiBtdWwgYWRk DQ0KICAgcHdpZHRoIGV4Y2ggc3ViDQ0KICAgMyAtMSByb2xsIHB3aWR0aCBz aG93bGluZTIgcG9wDQ0KIH0gZGVmDQ0KDQ0KL2Jhbm5lcnN0cmluZwklIHN0 cmluZyAtPiBzdHJpbmcgd2lkdGgNDQogIHsgUGFnZU51bWJlclN0cmluZyBz ZWFyY2gNDQogICAgIHsgZXhjaCBwb3AgcGluZGV4IDQgc3RyaW5nIGN2cyBj b25jYXRzdHJpbmdzIGV4Y2ggY29uY2F0c3RyaW5ncw0NCiAgICAgfQ0NCiAg ICBpZiBkdXAgc3RyaW5nd2lkdGggcG9wDQ0KICB9IGRlZg0NCg0NCi9iZWdp bnBhZ2UNDQogeyAvbGluZGV4IDAgZGVmDQ0KICAgL3NraXBwaW5nIHBpbmRl eCBQYWdlRmlyc3QgZ2UgcGluZGV4IFBhZ2VMYXN0IGxlIGFuZCBub3QgZGVm DQ0KICAgcGFnZXggcGFnZXkgTGFuZHNjYXBlIHsvQkx9IHsvQn0gaWZlbHNl IDIgdHJ1ZSBscGV4ZWMNDQogICAvcGFnZXNhdmUgZXhjaCBkZWYNDQogICBz a2lwcGluZyB7IG51bGxkZXZpY2UgICAvT3V0RmlsZSBudWxsIGRlZiB9IGlm DQ0KICAgSGVhZGVycw0NCiAgICB7IGxoZWlnaHQgaGRlc2NlbnQgYWRkDQ0K ICAgICAgSGVhZGluZ0xlZnQgSGVhZGluZ0NlbnRlciBIZWFkaW5nUmlnaHQg YmFubmVyDQ0KICAgIH0gaWYNDQogICAvQkZvbnQgbHBzZXRteWZvbnQNDQog ICAvcGFpcmtlcm4gS2VybiBkZWYNDQogICAvYWRkc3BhY2UgQWRkVG9TcGFj ZSBkZWYgL2FkZHdpZHRoIEFkZFRvV2lkdGggZGVmDQ0KICAgcGFpcmtlcm4g bGVuZ3RoIDAgbmUgew0NCiAgICAgL2FkZHNwYWNlIEFkZFRvU3BhY2UgbHBk ZWYgL2FkZHdpZHRoIEFkZFRvV2lkdGggbHBkZWYNDQogICB9IGlmDQ0KIH0g ZGVmDQ0KDQ0KL2VuZHBhZ2Ugew0NCiAgbGluZGV4IDAgbmUgew0NCiAgICBG b290ZXJzIHsNDQogICAgICB0b3Bza2lwIHBsZW5ndGggc3ViIGhkZXNjZW50 IGFkZA0NCiAgICAgIEZvb3RpbmdMZWZ0IEZvb3RpbmdDZW50ZXIgRm9vdGlu Z1JpZ2h0IGJhbm5lcg0NCiAgICB9IGlmDQ0KICAgIC9FDQ0KICB9IHsNDQog ICAgL3Jlc3RvcmUNDQogIH0gaWZlbHNlDQ0KICBwYWdlc2F2ZSBleGNoIDAg dHJ1ZSBscGV4ZWMNDQogIC9waW5kZXggcGluZGV4IDEgYWRkIGRlZg0NCn0g ZGVmDQ0KDQ0KL2VuZGNvbHVtbg0NCiB7IGxpbmRleCBjb2xpbmVzIDEgc3Vi IGFkZCBjb2xpbmVzIGlkaXYgY29saW5lcyBtdWwNDQogICBkdXAgbGxlbmd0 aCBnZSB7IHBvcCBlbmRwYWdlIGJlZ2lucGFnZSB9IHsgL2xpbmRleCBleGNo IGRlZiB9IGlmZWxzZQ0NCiB9IGRlZg0NCg0NCi9mb250aGVpZ2h0CSUgPGZv bnQ+IGZvbnRoZWlnaHQgPGFzY2VudD4gPGhlaWdodD4NDQogeyBnc2F2ZSBz ZXRmb250DQ0KICAgbmV3cGF0aCAwIDAgbW92ZXRvDQ0KICAgKHxeX2opIGZh bHNlIGNoYXJwYXRoDQ0KICAgcGF0aGJib3ggZXhjaCBwb3AgZHVwIDIgaW5k ZXggc3ViIDQgLTIgcm9sbCBwb3AgcG9wDQ0KICAgZ3Jlc3RvcmUgZXhjaCAx LjI1IG11bCBleGNoIDEuMjUgbXVsDQ0KIH0gZGVmDQ0KDQ0KL3dkaWN0IHsN DQogIGR1cCBsZW5ndGggd29zcCAoIGRpY3Rcbikgd3MNDQogIHsgKGR1cCkg d3MgZXhjaCB3b3NwIHdvc3AgKCBwdXRcbikgd3MgfSBmb3JhbGwNDQp9IGRl Zg0NCi93b3NwIHsgKCApIHdzIHdvIH0gZGVmDQ0KL3dvIHsNDQogIGR1cCB0 eXBlIC9kaWN0dHlwZSBlcSB7IHdkaWN0IH0geyBPdXRGaWxlIGV4Y2ggd3Jp dGU9PW9ubHkgfSBpZmVsc2UNDQp9IGRlZg0NCi93cyB7DQ0KICBPdXRGaWxl IGV4Y2ggd3JpdGVzdHJpbmcNDQp9IGRlZg0NCg0NCi9vdXRmb250IHsJCSUg PG5hbWU+IDxmb250PiBvdXRmb250IC0NDQogIE91dEZpbGUgbnVsbCBuZSB7 DQ0KICAgIGV4Y2ggd28NDQogICAgZHVwIC9Gb250TmFtZSBnZXQgDQ0KICAg IGR1cCB3b3NwICgtSVNPTGF0aW4xKSB3cyB3b3NwICggUkUpIHdzDQ0KICAg IC9Gb250TWF0cml4IGdldCAwIGdldCAxMDAwIG11bCByb3VuZCBjdmkgd29z cA0NCiAgICAoIHNjYWxlZm9udCBkZWZcbikgd3MNDQogIH0gew0NCiAgICBw b3AgcG9wDQ0KICB9aWZlbHNlDQ0KfSBkZWYNDQoNDQovU3RyaW5nRkYgKFxm KSBkZWYNDQovQ2hhckZGIFN0cmluZ0ZGIDAgZ2V0IGRlZg0NCi9TdHJpbmdU QUIgKFx0KSBkZWYNDQovQ2hhclRBQiBTdHJpbmdUQUIgMCBnZXQgZGVmDQ0K DQ0KL3Nob3dsaW5lCQklIGxpbmUgLT4gbGVmdG92ZXJfbGluZSAoaGFuZGxl cyBcZikNDQogeyAgeyBzaG93bGluZTEgZHVwIGxlbmd0aCAwIGVxIHsgZXhp dCB9IGlmDQ0KICAgICAgZHVwIDAgZ2V0IENoYXJGRiBuZSB7IGV4aXQgfSBp Zg0NCiAgICAgIEVqZWN0RkYgeyBlbmRwYWdlIGJlZ2lucGFnZSB9IHsgZW5k Y29sdW1uIH0gaWZlbHNlDQ0KICAgICAgc2tpcDENDQogICAgfQ0NCiAgIGxv b3ANDQogfSBkZWYNDQoNDQovc2hvd2xpbmUxCQklIGxpbmUgLT4gbGVmdG92 ZXJfbGluZSAoaGFuZGxlcyBwYWdlIGJyZWFrKQ0NCiB7IGxpbmRleCBsbGVu Z3RoIGVxIHsgZW5kcGFnZSBiZWdpbnBhZ2UgfSBpZg0NCiAgIGxpbmRleCBj b2xpbmVzIGlkaXYgY293aWR0aCBtdWwJCSUgeA0NCiAgIGxpbmRleCBjb2xp bmVzIG1vZCAxIGFkZCBsaGVpZ2h0IG11bCBuZWcgZmFzY2VudCBzdWIJJSB5 DQ0KICAgMSBpbmRleCBjb3dpZHRoIGFkZA0NCiAgIHNob3dsaW5lMg0NCiAg IC9saW5kZXggbGluZGV4IDEgYWRkIGRlZg0NCiB9IGRlZg0NCg0NCi9zZXR4 eSB7DQ0KICAvdHkgZXhjaCBkZWYgL3R4IGV4Y2ggZGVmDQ0KfSBkZWYNDQoN DQovc2hvd2xpbmUyIHsJJSBzdHJpbmcgeCB5IHhsaW1pdCAtPiBsZWZ0b3Zl cl9zdHJpbmcgKGhhbmRsZXMgdGFicykNDQogIDIgaW5kZXggZXhjaCA1IDIg cm9sbCBzZXR4eSB7DQ0KCQklIFN0YWNrOiB4aW5pdCB4bGltaXQgc3RyaW5n DQ0KICAgIHNob3dsaW5lMyBkdXAgbGVuZ3RoIDAgZXEgeyBleGl0IH0gaWYN DQogICAgZHVwIDAgZ2V0IENoYXJUQUIgbmUgeyBleGl0IH0gaWYNDQogICAg dHggMyBpbmRleCBzdWIgdGFid3ggZGl2DQ0KICAgICAgMC4wNSBhZGQgY2Vp bGluZyB0YWJ3eCBtdWwgMyBpbmRleCBhZGQgdHkgc2V0eHkNDQogICAgc2tp cDENDQogICAgdHggMiBpbmRleCBnZSB7IGV4aXQgfSBpZg0NCiAgfSBsb29w IGV4Y2ggcG9wIGV4Y2ggcG9wDQ0KfSBkZWYNDQoNDQovc2hvd2xpbmUzIHsJ JSB4bGltaXQgc3RyaW5nIC0+IHhsaW1pdCBsZWZ0b3Zlcl9zdHJpbmcNDQoJ CSUgKGZpbmRzIGxpbmUgYnJlYWsgLyB0YWIgLyBmb3JtZmVlZCkNDQogIDEg aW5kZXggdHggc3ViDQ0KICAgIGN3eCBkaXYgMC4xIGFkZCBjdmkgMCBtYXgg MSBpbmRleCBsZW5ndGggbWluDQ0KICAxIGluZGV4IDAgMyAtMSByb2xsIGdl dGludGVydmFsDQ0KCSUgbG9vayBmb3IgXGYgb3IgXHQNDQogIFN0cmluZ0ZG IHNlYXJjaCB7IGV4Y2ggcG9wIGV4Y2ggcG9wIH0gaWYNDQogIFN0cmluZ1RB QiBzZWFyY2ggeyBleGNoIHBvcCBleGNoIHBvcCB9IGlmDQ0KICBkdXAgbGVu Z3RoIDAgbmUgew0NCiAgICB0eCB0eSBscG1vdmV0bw0NCiAgICBkdXAgcGFp cmtlcm4gbGVuZ3RoIDAgZXEgew0NCiAgICAgIGxwc2hvdw0NCiAgICB9IHsN DQogICAgICB7IGtwcm9jIH0gZXhjaCAva3Nob3cgMiB0cnVlIGxwZXhlYw0N CiAgICB9IGlmZWxzZQ0NCiAgICBjdXJyZW50cG9pbnQgc2V0eHkNDQogIH0g aWYNDQogIGxlbmd0aCBkdXAgMiBpbmRleCBsZW5ndGggZXhjaCBzdWIgZ2V0 aW50ZXJ2YWwNDQp9IGRlZg0NCg0NCi9rcHJvYyB7CSUgPGNoYXIxPiA8Y2hh cjI+IGtwcm9jIC0NDQogIHBhaXJrZXJuIGN1cnJlbnRmb250IC9FbmNvZGlu ZyBnZXQgMyBpbmRleCBnZXQNDQogIDIgY29weSBrbm93biB7DQ0KICAgIGdl dCBjdXJyZW50Zm9udCAvRW5jb2RpbmcgZ2V0IDIgaW5kZXggZ2V0DQ0KICAg IDIgY29weSBrbm93biB7DQ0KICAgICAgZ2V0IGN1cnJlbnRmb250IC9Gb250 TWF0cml4IGdldCAwIGdldCBtdWwNDQogICAgfSB7DQ0KICAgICAgcG9wIHBv cCAwDQ0KICAgIH0gaWZlbHNlDQ0KICB9IHsNDQogICAgcG9wIHBvcCAwDQ0K ICB9IGlmZWxzZQ0NCiAgYWRkd2lkdGggYWRkIDIgaW5kZXggMzIgZXEgeyBh ZGRzcGFjZSBhZGQgfSBpZg0NCiAgZHVwIDAgZXEgeyBwb3AgfSB7IDAgcm1v dmV0byB9IGlmZWxzZQ0NCiAgcG9wIHBvcA0NCn0gZGVmDQ0KDQ0KL3NraXAx DQ0KIHsgZHVwIGxlbmd0aCAxIHN1YiAxIGV4Y2ggZ2V0aW50ZXJ2YWwNDQog fSBkZWYNDQoNDQovZT09IHsJCSUgPG9iamVjdD4gZT09IC0gLS0gcHJpbnQg YW4gb2JqZWN0IHRvIHN0ZGVycg0NCiAgKCVzdGRlcnIpICh3KSBmaWxlIGR1 cCAzIC0xIHJvbGwgd3JpdGU9PW9ubHkgZmx1c2hmaWxlDQ0KfSBkZWYNDQoN DQovZXByaW50IHsJJSA8c3RyaW5nPiBlcHJpbnQgLSAtLSBwcmludCBhIHN0 cmluZyB0byBzdGRlcnINDQogICglc3RkZXJyKSAodykgZmlsZSBkdXAgMyAt MSByb2xsIHdyaXRlc3RyaW5nIGZsdXNoZmlsZQ0NCn0gZGVmDQ0KDQ0KJSBS ZWFkIGtlcm5pbmcgaW5mb3JtYXRpb24gZnJvbSBhIC5BRk0gZmlsZS4NDQoN DQovcmVhZGtlcm4gewklIDxhZm1maWxlPiByZWFka2VybiA8cGFpcmtlcm5k aWN0Pg0NCiAgL21maWxlbmFtZSAxIGluZGV4IGRlZg0NCiAgKHIpIGZpbGUg L21maWxlIGV4Y2ggZGVmDQ0KICBtZmlsZSA9c3RyaW5nIHJlYWRsaW5lIHBv cA0NCiAgKFN0YXJ0Rm9udE1ldHJpY3MgKSBhbmNob3JzZWFyY2ggew0NCiAg ICBwb3AgcG9wDQ0KICAgIC9rZGljdCAyNTYgZGljdCBkZWYNDQogICAgeyBt ZmlsZSA9c3RyaW5nIHJlYWRsaW5lIHBvcA0NCiAgICAgIChFbmRGb250TWV0 cmljcykgYW5jaG9yc2VhcmNoIHsgcG9wIHBvcCBleGl0IH0gaWYNDQogICAg ICAoS1BYICkgYW5jaG9yc2VhcmNoIHsNDQoJcG9wIHRva2VuIHBvcCBjdmxp dCAvY2hhcjEgZXhjaCBkZWYNDQoJdG9rZW4gcG9wIGN2bGl0IC9jaGFyMiBl eGNoIGRlZg0NCgl0b2tlbiBwb3AgL2tlcm4gZXhjaCBkZWYgcG9wDQ0KCWtk aWN0IGNoYXIxIC5rbm93bmdldCBub3Qgew0NCgkgIDUgZGljdCBrZGljdCBj aGFyMSAyIGluZGV4IC5ncm93cHV0DQ0KCX0gaWYNDQoJY2hhcjIga2VybiAu Z3Jvd3B1dA0NCiAgICAgIH0gew0NCglwb3ANDQogICAgICB9IGlmZWxzZQ0N CiAgICB9IGxvb3Aga2RpY3QNDQogIH0gew0NCiAgICBwb3ANDQogICAgbWZp bGVuYW1lIGVwcmludCAoIGRvZXMgbm90IGJlZ2luIHdpdGggU3RhcnRGb250 TWV0cmljcy5cbikgZXByaW50DQ0KICAgIDAgZGljdA0NCiAgfSBpZmVsc2UN DQogIG1maWxlIGNsb3NlZmlsZQ0NCn0gZGVmDQ0KDQ0KJSBUaGUgbWFpbiBw cmludGluZyBwcm9jZWR1cmUNDQoNDQovZG9GaXJzdCB0cnVlIGRlZg0NCi9w cmV2QkZvbnQgbnVsbCBkZWYNDQovcHJldkhGb250IG51bGwgZGVmDQ0KDQ0K L2xwZmlyc3QgewklIC0gbHBmaXJzdCAtDQ0KJSBEZWZpbmUgc29tZSBhYmJy ZXZpYXRpbmcgcHJvY2VkdXJlcy4NDQogIC9CIHtzYXZlIDMgMSByb2xsIHRy YW5zbGF0ZSAvWCAwIGRlZn0gbHBkZWYNDQogIC9CTCB7c2F2ZSAzIDEgcm9s bCA5MCByb3RhdGUgdHJhbnNsYXRlIC9YIDAgZGVmfSBscGRlZg0NCiAgL0Ug e3Nob3dwYWdlIHJlc3RvcmV9IGxwZGVmDQ0KICAvViB7bmVnIFggZXhjaCBt b3ZldG99IGxwZGVmDQ0KICAvTSB7L1ggMiBpbmRleCBkZWYgbmVnIG1vdmV0 b30gbHBkZWYNDQogIC9TIHtjdXJyZW50ZmlsZSA9c3RyaW5nIHJlYWRsaW5l IHBvcCBzaG93fSBscGRlZg0NCiAgL1JFIHsJCSUgPGlzb25hbWU+IDxmb250 bmFtZT4gUkUgPGZvbnQ+DQ0KICAgIGZpbmRmb250DQ0KCSUlIHJlZW5jb2Rl IGZvciBpc28gbGF0aW4xOyBmcm9tIHRoZSAybmQgZWRpdGlvbiByZWQgYm9v aywgc2VjIDUuNi4xDQ0KICAgIGR1cCBsZW5ndGggZGljdCBiZWdpbiB7MSBp bmRleCAvRklEIG5lIHtkZWZ9IHtwb3AgcG9wfSBpZmVsc2V9IGZvcmFsbA0N CiAgICAvRW5jb2RpbmcgSVNPTGF0aW4xRW5jb2RpbmcgZGVmIGN1cnJlbnRk aWN0IGVuZA0NCiAgICBkZWZpbmVmb250DQ0KICB9IGxwZGVmDQ0KfSBkZWYN DQoNDQovbHAgewkJJSBmaWxlIGluaXRpYWxfY2hhcnMgLT4NDQogIC9scGxp bmUgZXhjaCBkZWYNDQogIC9scGZpbGUgZXhjaCBkZWYNDQoNDQogIGRvRmly c3QgeyBscGZpcnN0IC9kb0ZpcnN0IGZhbHNlIGRlZiB9IGlmDQ0KDQ0KJSBJ bml0aWFsaXplIHRoZSBkZXZpY2UgYW5kIGZvbnRzLg0NCiAgL0JGb250DQ0K ICAgIEJvZHlGb250IG51bGwgZXEgeyBkZWZhdWx0Qm9keUZvbnQgfSB7IEJv ZHlGb250IH0gaWZlbHNlIGRlZg0NCiAgQkZvbnQgcHJldkJGb250IG5lIHsN DQogICAgL0JGb250IEJGb250IG91dGZvbnQNDQogICAgL3ByZXZCRm9udCBC Rm9udCBkZWYNDQogIH0gaWYNDQogIEhlYWRlcnMgRm9vdGVycyBvciB7DQ0K ICAgIC9IRm9udA0NCiAgICAgIEhlYWRpbmdGb250IG51bGwgZXEgeyBkZWZh dWx0SGVhZGluZ0ZvbnQgfSB7IEhlYWRpbmdGb250IH0gaWZlbHNlIGRlZg0N CiAgICBIRm9udCBwcmV2SEZvbnQgbmUgew0NCiAgICAgIC9IRm9udCBIRm9u dCBvdXRmb250DQ0KICAgICAgL3ByZXZIRm9udCBIRm9udCBkZWYNDQogICAg fSBpZg0NCiAgfSBpZg0NCiAgc2F2ZQ0NCg0NCiUgR2V0IHRoZSBsYXlvdXQg cGFyYW1ldGVycy4NDQogICBjbGlwcGF0aA0NCiAgIGdzYXZlCSUgZm9yIHBv c3NpYmxlIHJvdGF0aW9uDQ0KICAgTGFuZHNjYXBlIHsgOTAgcm90YXRlIH0g aWYNDQogICBCRm9udCBzZXRmb250ICggKSBzdHJpbmd3aWR0aCBwb3AgL2N3 eCBleGNoIGRlZg0NCiAgICAgY3d4IFRhYiBtdWwgL3RhYnd4IGV4Y2ggZGVm DQ0KICAgQkZvbnQgZm9udGhlaWdodCAvZmhlaWdodCBleGNoIGRlZiAvZmFz Y2VudCBleGNoIGRlZg0NCiAgIEhlYWRlcnMgRm9vdGVycyBvciB7IEhGb250 IGZvbnRoZWlnaHQgfSB7IDAgMCB9IGlmZWxzZQ0NCiAgICAgL2hoZWlnaHQg ZXhjaCBkZWYgL2hhc2NlbnQgZXhjaCBkZWYNDQogICAgIC9oZGVzY2VudCBo aGVpZ2h0IGhhc2NlbnQgc3ViIGRlZg0NCiAgIGZoZWlnaHQgU3BhY2luZyBt dWwgL2xoZWlnaHQgZXhjaCBkZWYNDQogICBIZWFkZXJzIHsgaGhlaWdodCBs aGVpZ2h0IGFkZCB9IHsgMCB9IGlmZWxzZQ0NCiAgICAgL3RvcHNraXAgZXhj aCBkZWYNDQogICBGb290ZXJzIHsgaGhlaWdodCBsaGVpZ2h0IGFkZCB9IHsg MCB9IGlmZWxzZQ0NCiAgICAgL2JvdHNraXAgZXhjaCBkZWYNDQogICAvcHNr aXAgdG9wc2tpcCBib3Rza2lwIGFkZCBkZWYNDQoJJSBUcmFuc2xhdGUgdGhl IHBhZ2Ugc28gdGhhdCAoMCwwKSBjb3JyZXNwb25kcyB0bw0NCgklIHRoZSB0 b3Agb2YgdGhlIHRvcG1vc3QgYm9keSBsaW5lLg0NCiAgIHBhdGhiYm94DQ0K ICAgICAyIGluZGV4IHN1YiBNYXJnaW5Cb3R0b20gTWFyZ2luVG9wIGFkZCBz dWIgL3BsZW5ndGggZXhjaCBkZWYNDQogICAgIDIgaW5kZXggc3ViIE1hcmdp bkxlZnQgTWFyZ2luUmlnaHQgYWRkIHN1YiAvcHdpZHRoIGV4Y2ggZGVmDQ0K ICAgICBwd2lkdGggQ29sdW1ucyBkaXYgL2Nvd2lkdGggZXhjaCBkZWYNDQog ICAgIGV4Y2ggTWFyZ2luTGVmdCBhZGQNDQogICAgIGV4Y2ggTWFyZ2luQm90 dG9tIGFkZCBwbGVuZ3RoIGFkZCB0b3Bza2lwIHN1Yg0NCiAgICAgL3BhZ2V5 IGV4Y2ggZGVmIC9wYWdleCBleGNoIGRlZg0NCiAgIHBsZW5ndGggcHNraXAg c3ViIGxoZWlnaHQgZGl2IGN2aSBNYXhMaW5lcyBtaW4NDQogICAgIGR1cCAv Y29saW5lcyBleGNoIGRlZg0NCiAgICAgQ29sdW1ucyBtdWwgL2xsZW5ndGgg ZXhjaCBkZWYNDQogICBncmVzdG9yZQ0NCiAgIE91dEZpbGUgbnVsbCBuZSB7 IG51bGxkZXZpY2UgfSBpZg0NCg0NCiUgUHJpbnQgbGF5b3V0DQ0KICAgTm9p c3kNDQogICAgeyAoUGFnZSBoZWlnaHQgPSApIGVwcmludCBsbGVuZ3RoIGU9 PQ0NCiAgICAgICguXG4pIGVwcmludCBmbHVzaA0NCiAgICB9IGlmDQ0KDQ0K JSBXcml0ZSB0aGUga2VybmluZyB0YWJsZSwgaWYgcmVsZXZhbnQuDQ0KICAg T3V0RmlsZSBudWxsIG5lIEtlcm4gbGVuZ3RoIDAgbmUgYW5kIHsNDQogICAg ICgva3Byb2MpIHdzIC9rcHJvYyBsb2FkIHdvc3AgKCBkZWZcbikgd3MNDQog ICAgICgvcGFpcmtlcm4pIHdzIEtlcm4gd29zcCAoIGRlZlxuKSB3cw0NCiAg IH0gaWYNDQoNDQolIERpc2FibGUgc3RhY2sgcmVjb3JkaW5nIHNvIHdlIGNh biB1c2Ugc3RvcHBlZCB3aXRoIHJlYWRsaW5lLg0NCiAgICRlcnJvciAvcmVj b3Jkc3RhY2tzIGZhbHNlIHB1dA0NCg0NCiUgSW5pdGlhbGl6ZSBmb3IgdGhl IGZpcnN0IHBhZ2UuDQ0KICAgL2xidWYgMTAwMCBzdHJpbmcgZGVmDQ0KICAg L3BpbmRleCAxIGRlZg0NCiAgIGJlZ2lucGFnZQ0NCg0NCiUgSXRlcmF0ZSB0 aHJvdWdoIHRoZSBmaWxlLg0NCiAgIGxwbGluZQ0NCiAgICB7IGR1cCBsZW5n dGggL3BvcyBleGNoIGRlZg0NCiAgICAgIGxidWYgZXhjaCAwIGV4Y2ggcHV0 aW50ZXJ2YWwNDQogICAgICAgeyBscGZpbGUgbGJ1ZiBwb3MgbGJ1ZiBsZW5n dGggcG9zIHN1YiBnZXRpbnRlcnZhbCByZWFkbGluZSB9IHN0b3BwZWQNDQog ICAgICAgewklIEZpbGxlZCB0aGUgbGluZSBiZWZvcmUgYSBDUiBvciBFT0Yu DQ0KICAgICAgICAgZXhjaCBwb3Agc2hvd2xpbmUNDQogICAgICAgfQ0NCiAg ICAgICB7CSUgUmVhY2hlZCBDUiBhbmQvb3IgRU9GIGZpcnN0Lg0NCiAgICAg ICAgIGV4Y2ggbGVuZ3RoIHBvcyBhZGQgbGJ1ZiBleGNoIDAgZXhjaCBnZXRp bnRlcnZhbA0NCgkgMSBpbmRleCB7IHNob3dsaW5lIH0gaWYJCSUgb21pdCBm aW5hbCBlbXB0eSBsaW5lDQ0KCSAgeyBkdXAgbGVuZ3RoIDAgZXEgVHJ1bmNh dGUgb3IgeyBwb3AgKCkgZXhpdCB9IGlmDQ0KCSAgICBzaG93bGluZQ0NCgkg IH0NDQoJIGxvb3ANDQoJIGV4Y2ggbm90IHsgZXhpdCB9IGlmDQ0KICAgICAg IH0NDQogICAgICBpZmVsc2UNDQogICAgfSBsb29wDQ0KICAgcG9wDQ0KDQ0K JSBXcmFwIHVwLg0NCiUqKioqKioqKioqKioqKioqIFdIWSBJUyBUSElTIENP TU1FTlRFRCBPVVQ/ICoqKioqKioqKioqKioqKioNDQolICAgRWplY3RFT0Yg eyBlbmRwYWdlIH0geyBlbmRjb2x1bW4gfSBpZmVsc2UNDQogICBlbmRwYWdl DQ0KICAgcmVzdG9yZQ0NCg0NCn0gZGVmDQ0KDQ0KZW5kDQ0KDQ0KJSBVc2Fn ZTogPGZpbGU+IGxwDQ0KJSAgIHByaW50cyA8ZmlsZT4gdXNpbmcgdGhlIGN1 cnJlbnQgcGFyYW1ldGVyIHNldHRpbmdzLg0NCiUgVXNhZ2U6IFsgPGFyZzE+ IC4uLiA8YXJnbj4gXSBscGNvbW1hbmQNDQolICAgaW50ZXJwcmV0cyBhcmdz IGxpa2UgYSBjb21tYW5kIGxpbmUuDQ0KDQ0KL2xwIHsgc2F2ZSAgIGxwZGlj dCBiZWdpbiAoKSBscCBlbmQgICByZXN0b3JlIH0gZGVmDQ0KDQ0KbHBkaWN0 IGJlZ2luDQ0KDQ0KL3NwbGl0Zm4JCSUgKEZvbnROTk4pIC0+IDxmb250Pg0N CiB7IGR1cCAvYXJnIGV4Y2ggZGVmIGxlbmd0aA0NCiAgICB7IGR1cCAwIGxl IHsgZXhpdCB9IGlmDQ0KICAgICAgZHVwIDEgc3ViIGFyZyBleGNoIGdldCBk dXAgNDggZ2UgZXhjaCA1OSBsZSBhbmQgbm90IHsgZXhpdCB9IGlmDQ0KICAg ICAgMSBzdWINDQogICAgfSBsb29wDQ0KICAgYXJnIGV4Y2ggMCBleGNoIGdl dGludGVydmFsIGR1cCBjdm4gZmluZC1sYXRpbi1mb250DQ0KICAgZXhjaCBh cmcgZXhjaCBhbmNob3JzZWFyY2ggcG9wIHBvcCBjdnIgc2NhbGVmb250DQ0K IH0gZGVmDQ0KDQ0KJSBQYXJzZSB0aGUgY29tbWFuZCBsaW5lIHN3aXRjaGVz Lg0NCg0NCi9kb3N3aXRjaAklIGFyZ24gLi4uIGFyZzEgKC0/KSByZXN0b2Zz d2l0Y2ggLT4NDQogeyBleGNoIGR1cCBjdm4gbHBkaWN0IGV4Y2gga25vd24N DQogICAgeyBjdm4gbG9hZCBleGVjIH0NDQogICAgeyBleGNoIHBvcCAoVW5r bm93biBzd2l0Y2g6ICkgZXByaW50IGVwcmludCAoXG4pIGVwcmludCB9DQ0K ICAgaWZlbHNlDQ0KIH0gZGVmDQ0KDQ0KL21vcmUJCSUgYXJnbiAuLi4gYXJn MSByZXN0b2Zzd2l0Y2ggLT4NDQogeyBkdXAgbGVuZ3RoIDAgbmUNDQogICAg eyAoLSApIGR1cCAxIDMgaW5kZXggMCBnZXQgcHV0DQ0KICAgICAgZXhjaCBk dXAgbGVuZ3RoIDEgc3ViIDEgZXhjaCBnZXRpbnRlcnZhbA0NCiAgICAgIGRv c3dpdGNoDQ0KICAgIH0NDQogICAgeyBwb3ANDQogICAgfQ0NCiAgIGlmZWxz ZQ0NCiB9IGRlZg0NCg0NCi8tLSB7ICgtLSkgZXhjaCBjb25jYXRzdHJpbmdz DQ0KICAgICAgZHVwIGN2biBscGRpY3QgZXhjaCBrbm93bg0NCiAgICAgICB7 IGN2biBsb2FkIGV4ZWMgfQ0NCiAgICAgICB7IChVbmtub3duIHN3aXRjaDog KSBlcHJpbnQgZXByaW50IChcbikgZXByaW50IH0NDQogICAgICBpZmVsc2UN DQogICAgfSBkZWYNDQovLS1hZGQtdG8tc3BhY2UgeyBjdnIgL0FkZFRvU3Bh Y2UgZXhjaCBkZWYgfSBkZWYNDQovLS1hZGQtdG8td2lkdGggeyBjdnIgL0Fk ZFRvV2lkdGggZXhjaCBkZWYgfSBkZWYNDQovLS1jb2x1bW5zIHsgY3ZpIDEg bWF4IC9Db2x1bW5zIGV4Y2ggZGVmIH0gZGVmDQ0KLy0tZGV0ZWN0IHsgL0Rl dGVjdEZpbGVUeXBlIHRydWUgZGVmIH0gZGVmDQ0KLy0tZmlyc3QtcGFnZSB7 IGN2aSAvUGFnZUZpcnN0IGV4Y2ggZGVmIH0gZGVmDQ0KLy0tZm9vdGluZy1j ZW50ZXIgeyAvRm9vdGluZ0NlbnRlciBleGNoIGRlZiAgIC9Gb290ZXJzIHRy dWUgZGVmIH0gZGVmDQ0KLy0tZm9vdGluZy1sZWZ0IHsgL0Zvb3RpbmdMZWZ0 IGV4Y2ggZGVmICAgL0Zvb3RlcnMgdHJ1ZSBkZWYgfSBkZWYNDQovLS1mb290 aW5nLXJpZ2h0IHsgL0Zvb3RpbmdSaWdodCBleGNoIGRlZiAgIC9Gb290ZXJz IHRydWUgZGVmfSBkZWYNDQovLS1oZWFkaW5nLWNlbnRlciB7IC9IZWFkaW5n Q2VudGVyIGV4Y2ggZGVmICAgL0hlYWRlcnMgdHJ1ZSBkZWYgfSBkZWYNDQov LS1oZWFkaW5nLWxlZnQgeyAvSGVhZGluZ0xlZnQgZXhjaCBkZWYgICAvSGVh ZGVycyB0cnVlIGRlZiB9IGRlZg0NCi8tLWhlYWRpbmctcmlnaHQgeyAvSGVh ZGluZ1JpZ2h0IGV4Y2ggZGVmICAgL0hlYWRlcnMgdHJ1ZSBkZWYgfSBkZWYN DQovLS1rZXJuIHsgcmVhZGtlcm4gL0tlcm4gZXhjaCBkZWYgfSBkZWYNDQov LS1sYXN0LXBhZ2UgeyBjdmkgL1BhZ2VMYXN0IGV4Y2ggZGVmIH0gZGVmDQ0K Ly0tbWFyZ2luLWJvdHRvbSB7IGN2ciA3Mi4wIG11bCAvTWFyZ2luQm90dG9t IGV4Y2ggZGVmIH0gZGVmDQ0KLy0tbWFyZ2luLWxlZnQgeyBjdnIgNzIuMCBt dWwgL01hcmdpbkxlZnQgZXhjaCBkZWYgfSBkZWYNDQovLS1tYXJnaW4tcmln aHQgeyBjdnIgNzIuMCBtdWwgL01hcmdpblJpZ2h0IGV4Y2ggZGVmIH0gZGVm DQ0KLy0tbWFyZ2luLXRvcCB7IGN2ciA3Mi4wIG11bCAvTWFyZ2luVG9wIGV4 Y2ggZGVmIH0gZGVmDQ0KLy0tbm8tZWplY3QtZmlsZSB7IC9FamVjdEVPRiBm YWxzZSBkZWYgfSBkZWYNDQovLS1uby1lamVjdC1mb3JtZmVlZCB7IC9FamVj dEZGIGZhbHNlIGRlZiB9IGRlZg0NCi8tLXNwYWNpbmcgeyBjdnIgL1NwYWNp bmcgZXhjaCBkZWYgfSBkZWYNDQoNDQovLSMgeyBwb3AgfSBkZWYJCSUgaWdu b3JlDQ0KLy0rIHsgLS0gfSBkZWYNDQooLTEpY3ZuIHsgL0NvbHVtbnMgMSBk ZWYgICBtb3JlIH0gZGVmDQ0KKC0yKWN2biB7IC9Db2x1bW5zIDIgZGVmICAg bW9yZSB9IGRlZg0NCi8tYiB7IC9IZWFkaW5nTGVmdCBleGNoIGRlZiAgIC9I ZWFkaW5nQ2VudGVyICgpIGRlZiAgIC9IZWFkaW5nUmlnaHQgUGFnZU51bWJl clN0cmluZyBkZWYNDQogICAgICAvSGVhZGVycyB0cnVlIGRlZg0NCiAgICAg IC9icmVhayB0cnVlIGRlZg0NCiAgICB9IGRlZg0NCi8tQiB7IC9IZWFkaW5n TGVmdCAoKSBkZWYgICAvSGVhZGluZ0NlbnRlciAoKSBkZWYgICAvSGVhZGlu Z1JpZ2h0ICgpIGRlZg0NCiAgICAgIC9IZWFkZXJzIGZhbHNlIGRlZg0NCiAg ICAgIC9Gb290aW5nTGVmdCAoKSBkZWYgICAvRm9vdGluZ0NlbnRlciAoKSBk ZWYgICAvRm9vdGluZ1JpZ2h0ICgpIGRlZg0NCiAgICAgIC9Gb290ZXJzIGZh bHNlIGRlZg0NCiAgICAgIC9icmVhayB0cnVlIGRlZg0NCiAgICAgIG1vcmUN DQogICAgfSBkZWYNDQovLUMgeyBwb3AgfSBkZWYJCSUgaWdub3JlDQ0KLy1j IHsgL1RydW5jYXRlIHRydWUgZGVmICAgbW9yZSB9IGRlZg0NCi8tZCB7IHBv cCB9IGRlZgkJJSBpZ25vcmUNDQovLWYgeyBzcGxpdGZuIC9Cb2R5Rm9udCBl eGNoIGRlZiB9IGRlZg0NCi8tRiB7IHNwbGl0Zm4gL0hlYWRpbmdGb250IGV4 Y2ggZGVmIH0gZGVmDQ0KLy1HIHsgbW9yZSB9IGRlZgklIGlnbm9yZQ0NCi8t ZyB7IG1vcmUgfSBkZWYJJSBpZ25vcmUNDQovLWggeyBtb3JlIH0gZGVmCSUg aWdub3JlDQ0KLy1KIHsgcG9wIH0gZGVmCQklIGlnbm9yZQ0NCi8tSyB7IG1v cmUgfSBkZWYJJSBpZ25vcmUNDQovLWsgeyBtb3JlIH0gZGVmCSUgaWdub3Jl DQ0KLy1sIHsgNjYgLUwgLUIgfSBkZWYNDQovLUwgeyBjdmkgL01heExpbmVz IGV4Y2ggZGVmIH0gZGVmDQ0KLy1tIHsgbW9yZSB9IGRlZgklIGlnbm9yZQ0N Ci8tbiB7IHBvcCB9IGRlZgkJJSBpZ25vcmUNDQovLW8geyBtb3JlIH0gZGVm CSUgaWdub3JlDQ0KLy1wIHsgKHcpIGZpbGUgL091dEZpbGUgZXhjaCBkZWYg ICBPdXRGaWxlICglIVxuKSB3cml0ZXN0cmluZyB9IGRlZg0NCi8tUCB7IHBv cCB9IGRlZgkJJSBpZ25vcmUNDQovLXEgeyAvTm9pc3kgZmFsc2UgZGVmICAg bW9yZSB9IGRlZg0NCi8tciB7IC9MYW5kc2NhcGUgdHJ1ZSBkZWYgICBtb3Jl IH0gZGVmDQ0KLy1SIHsgL0xhbmRzY2FwZSBmYWxzZSBkZWYgICBtb3JlIH0g ZGVmDQ0KLy1TIHsgcG9wIH0gZGVmCQklIGlnbm9yZQ0NCi8tcyB7IHBvcCB9 IGRlZgkJJSBpZ25vcmUNDQovLVQgeyBjdmkgL1RhYiBleGNoIGRlZiB9IGRl Zg0NCi8tdiB7IHBvcCB9IGRlZgkJJSBpZ25vcmUNDQovLXcgeyBtb3JlIH0g ZGVmCSUgaWdub3JlDQ0KDQ0KL2xwMQkJJSBmaWxlbmFtZSAtPg0NCiB7IGJy ZWFrIG5vdCB7IGR1cCAvSGVhZGluZ0xlZnQgZXhjaCBkZWYgfSBpZg0NCiAg IE5vaXN5DQ0KICAgIHsgKFByaW50aW5nICkgZXByaW50IGR1cCBlcHJpbnQg KFxuKSBlcHJpbnQgDQ0KICAgIH0gaWYNDQogICAocikgZmlsZQ0NCgkJJSBJ ZiByZXF1ZXN0ZWQsIGNoZWNrIGZvciBhIFBvc3RTY3JpcHQgZmlsZS4NDQog ICBEZXRlY3RGaWxlVHlwZQ0NCiAgICB7IGR1cCAyIHN0cmluZyByZWFkc3Ry aW5nIHBvcCBkdXAgKCUhKSBlcQ0NCiAgICAgICB7CSUgWWVzLCBpdCdzIGEg UG9zdFNjcmlwdCBmaWxlLg0NCiAgICAgICAgIHBvcCBkdXAgODAgc3RyaW5n IHJlYWRsaW5lIHBvcCBwb3AgY3Z4IGV4ZWMNDQogICAgICAgfQ0NCiAgICAg ICB7IGxwDQ0KICAgICAgIH0NDQogICAgICBpZmVsc2UNDQogICAgfQ0NCiAg ICB7ICgpIGxwDQ0KICAgIH0NDQogICBpZmVsc2UNDQogfSBiaW5kIGRlZg0N Cg0NCi9scGNzdHJpbmcgMTAwIHN0cmluZyBkZWYNDQoNDQplbmQNDQoNDQov bHBjb21tYW5kCQklIDxbYXJnMSAuLi4gYXJnbl0+IGxwY29tbWFuZCA8YW55 X3ByaW50ZWQ+DQ0KIHsJJSBQdXNoIHRoZSBjb21tYW5kcyBvbiB0aGUgc3Rh Y2sgaW4gcmV2ZXJzZSBvcmRlcg0NCiAgIG1hcmsgZXhjaA0NCiAgIGR1cCBs ZW5ndGggMSBzdWIgLTEgMCB7IDEgaW5kZXggZXhjaCBnZXQgZXhjaCB9IGZv ciBwb3ANDQogICBscGRpY3QgYmVnaW4NDQogICAvYW55IGZhbHNlIGRlZg0N CiAgIC9icmVhayBmYWxzZSBkZWYNDQogICAgeyBkdXAgbWFyayBlcSB7IHBv cCBleGl0IH0gaWYNDQogICAgICBkdXAgbGVuZ3RoIDIgZ2UgeyBkdXAgMCBn ZXQgKC0pIDAgZ2V0IGVxIH0geyBmYWxzZSB9IGlmZWxzZQ0NCiAgICAgICB7 IGR1cCAwIDIgZ2V0aW50ZXJ2YWwNDQogICAgICAgICBleGNoIGR1cCBsZW5n dGggMiBzdWIgMiBleGNoIGdldGludGVydmFsDQ0KCSBkb3N3aXRjaA0NCiAg ICAgICB9DQ0KICAgICAgIHsgZHVwICglc3RkaW4pIGVxDQ0KCSAgeyAvYW55 IHRydWUgZGVmICAgbHAxIH0NDQoJICB7IGR1cCAgL21hdGNoZWQgZmFsc2Ug ZGVmDQ0KICAgICAgICAgICAgeyAvbWF0Y2hlZCB0cnVlIGRlZiAgIC9hbnkg dHJ1ZSBkZWYgICBscDEgfSBscGNzdHJpbmcgZmlsZW5hbWVmb3JhbGwNDQoJ ICAgIG1hdGNoZWQgeyBwb3AgfSB7IGxwMSB9IGlmZWxzZQkJJSBsZXQgdGhl IGVycm9yIGhhcHBlbg0NCgkgIH0NDQoJIGlmZWxzZQ0NCiAgICAgICB9DQ0K ICAgICAgaWZlbHNlDQ0KICAgIH0gbG9vcA0NCiAgIE91dEZpbGUgbnVsbCBu ZQ0NCiAgICB7IE91dEZpbGUgKCVzdGRvdXQpICh3KSBmaWxlIG5lIHsgT3V0 RmlsZSBjbG9zZWZpbGUgfSBpZg0NCiAgICAgIC9PdXRGaWxlIG51bGwgZGVm DQ0KICAgIH0gaWYNDQogICBhbnkNDQogICBlbmQNDQogfSBkZWYNDQoNDQpb IHNoZWxsYXJndW1lbnRzDQ0KIHsgXSBkdXAgbGVuZ3RoIDAgbmUgeyBscGNv bW1hbmQgfSB7IGZhbHNlIH0gaWZlbHNlIG5vdA0NCiAgICB7ICglc3RkZXJy KSAodykgZmlsZQ0NCiAgICAgIFsgKFVzYWdlOiApDQ0KCS9QUk9HTkFNRSB3 aGVyZSB7IHBvcCBQUk9HTkFNRSB9IHsgKGdzbHApIH0gaWZlbHNlDQ0KCSgg Wy0xMkJjbHFScl0gWy1iPGhlYWRlcj5dIFstZjxmb250Pl0gWy1GPGhmb250 Pl1cbikNDQoJKCAgICAgICAgWy1MPGxpbmVzPl0gWy1wPG91dGZpbGU+XSBb LVQ8dGFid2lkdGg+XVxuKQ0NCgkoICAgICAgICBbLS1hZGQtdG8tKHNwYWNl fHdpZHRoKSA8dW5pdHM+XSBbLS1jb2x1bW5zIDxuPl1cbikNDQoJKCAgICAg ICAgWy0tZGV0ZWN0XSBbLS1maXJzdC1wYWdlIDxwYWdlIz5dIFstLWxhc3Qt cGFnZSA8cGFnZSM+XVxuKQ0NCgkoICAgICAgICBbLS0oaGVhZGluZ3xmb290 aW5nKS0obGVmdHxyaWdodHxjZW50ZXIpIDxzdHJpbmc+XVxuKQ0NCgkoICAg ICAgICBbLS1rZXJuIDxhZm1maWxlPl0gWy0tbWFyZ2luLSh0b3B8Ym90dG9t fGxlZnR8cmlnaHQpIDxpbmNoZXM+XVxuKQ0NCgkoICAgICAgICBbLS1uby1l amVjdC0oZmlsZXxmb3JtZmVlZCldIFstLXNwYWNpbmcgPG4+XSBmaWxlMSAu Li4gZmlsZW5cbikNDQogICAgICBdIHsgMiBjb3B5IHdyaXRlc3RyaW5nIHBv cCB9IGZvcmFsbCBkdXAgZmx1c2hmaWxlIGNsb3NlZmlsZQ0NCiAgICB9DQ0K ICAgaWYNDQogfQ0NCiB7IHBvcCB9DQ0KaWZlbHNlDQ0K ---559023410-342241519-1030739090=:14712 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ---559023410-342241519-1030739090=:14712--