From: Elvita Lobo Date: 2010-09-28T04:38:53+09:00 Subject: [ruby-core:32589] [Ruby 1.9-Bug#3880][Open] Ruby 1.9.1 - crash in timeout.rb --mimepart_4ca0f2c8a95a1_ef6bf59668147d4 Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Bug #3880: Ruby 1.9.1 - crash in timeout.rb http://redmine.ruby-lang.org/issues/show/3880 Author: Elvita Lobo Status: Open, Priority: High Category: core, Target version: 1.9.1 ruby -v: ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] I am using the serialport 1.0.4 Ruby gem. In my serial port connection co= de, I have the following piece of code [1] that causes Ruby to crash from= time to time. [1] In serial_equipment_connection.rb 23 status =3D Timeout::timeout(timeout) { 24 while (!listener.match) = 25 sleep 0.5 26 end 27 } ruby =E2=80=93v ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] I am running on a Windows XP SP 3 machine. = I have attached the two related files - serial_equipment_connection.rb, e= quipment_connection.rb, and the crash log. = [2] Crash log (file attached) MXP>(eval):2: [BUG] The handle is invalid. ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] -- control frame ---------- c:0044 p:0054 s:0226 b:0226 l:000225 d:000225 METHOD c:/Ruby191/lib/ruby/= 1.9.1/monitor.rb:178 c:0043 p:---- s:0232 b:0232 l:000231 d:000231 CFUNC :to_i c:0042 p:---- s:0235 b:0235 l:000234 d:000234 CFUNC :instance_variable_s= et c:0041 p:0098 s:0230 b:0230 l:000229 d:000229 METHOD c:/Ruby191/lib/ruby/= gems/1.9.1/gems/activesuppo rt-2.3.8/lib/active_support/core_ext/class/inheritable_attributes.rb:135 c:0040 p:---- s:0226 b:0226 l:000225 d:000225 CFUNC :index c:0039 p:---- s:0223 b:0223 l:000222 d:000222 CFUNC :sleep c:0038 p:0019 s:0219 b:0219 l:001a24 d:000218 BLOCK C:/VATF_source/targe= t/serial_equipment_connecti on.rb:25 c:0037 p:0109 s:0217 b:0217 l:002698 d:002698 METHOD c:/Ruby191/lib/ruby/= 1.9.1/timeout.rb:52 c:0036 p:0153 s:0205 b:0205 l:001a24 d:001a24 METHOD C:/VATF_source/targe= t/serial_equipment_connecti on.rb:23 c:0035 p:0014 s:0194 b:0194 l:000193 d:000193 METHOD C:/VATF_source/targe= t/equipment_connection.rb:5 4 ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4ca0f2c8a95a1_ef6bf59668147d4 Content-Type: text/plain; name=crashLog.txt Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=crashLog.txt TVhQPihldmFsKToyOiBbQlVHXSBUaGUgaGFuZGxlIGlzIGludmFsaWQuDQoN CnJ1YnkgMS45LjFwMzc4ICgyMDEwLTAxLTEwIHJldmlzaW9uIDI2MjczKSBb aTM4Ni1taW5ndzMyXQ0KDQotLSBjb250cm9sIGZyYW1lIC0tLS0tLS0tLS0N CmM6MDA0NCBwOjAwNTQgczowMjI2IGI6MDIyNiBsOjAwMDIyNSBkOjAwMDIy NSBNRVRIT0QgYzovUnVieTE5MS9saWIvcnVieS8xLjkuMS9tb25pdG9yLnJi OjE3OA0KYzowMDQzIHA6LS0tLSBzOjAyMzIgYjowMjMyIGw6MDAwMjMxIGQ6 MDAwMjMxIENGVU5DICA6dG9faQ0KYzowMDQyIHA6LS0tLSBzOjAyMzUgYjow MjM1IGw6MDAwMjM0IGQ6MDAwMjM0IENGVU5DICA6aW5zdGFuY2VfdmFyaWFi bGVfc2V0DQpjOjAwNDEgcDowMDk4IHM6MDIzMCBiOjAyMzAgbDowMDAyMjkg ZDowMDAyMjkgTUVUSE9EIGM6L1J1YnkxOTEvbGliL3J1YnkvZ2Vtcy8xLjku MS9nZW1zL2FjdGl2ZXN1cHBvDQpydC0yLjMuOC9saWIvYWN0aXZlX3N1cHBv cnQvY29yZV9leHQvY2xhc3MvaW5oZXJpdGFibGVfYXR0cmlidXRlcy5yYjox MzUNCmM6MDA0MCBwOi0tLS0gczowMjI2IGI6MDIyNiBsOjAwMDIyNSBkOjAw MDIyNSBDRlVOQyAgOmluZGV4DQpjOjAwMzkgcDotLS0tIHM6MDIyMyBiOjAy MjMgbDowMDAyMjIgZDowMDAyMjIgQ0ZVTkMgIDpzbGVlcA0KYzowMDM4IHA6 MDAxOSBzOjAyMTkgYjowMjE5IGw6MDAxYTI0IGQ6MDAwMjE4IEJMT0NLICBD Oi9WQVRGX3NvdXJjZS90YXJnZXQvc2VyaWFsX2VxdWlwbWVudF9jb25uZWN0 aQ0Kb24ucmI6MjUNCmM6MDAzNyBwOjAxMDkgczowMjE3IGI6MDIxNyBsOjAw MjY5OCBkOjAwMjY5OCBNRVRIT0QgYzovUnVieTE5MS9saWIvcnVieS8xLjku MS90aW1lb3V0LnJiOjUyDQpjOjAwMzYgcDowMTUzIHM6MDIwNSBiOjAyMDUg bDowMDFhMjQgZDowMDFhMjQgTUVUSE9EIEM6L1ZBVEZfc291cmNlL3Rhcmdl dC9zZXJpYWxfZXF1aXBtZW50X2Nvbm5lY3RpDQpvbi5yYjoyMw0KYzowMDM1 IHA6MDAxNCBzOjAxOTQgYjowMTk0IGw6MDAwMTkzIGQ6MDAwMTkzIE1FVEhP RCBDOi9WQVRGX3NvdXJjZS90YXJnZXQvZXF1aXBtZW50X2Nvbm5lY3Rpb24u cmI6NQ0KNA0KYzowMDM0IHA6MDA0NyBzOjAxOTAgYjowMTkwIGw6MDAwMTg5 IGQ6MDAwMTg5IE1FVEhPRCBDOi9WQVRGX3NvdXJjZS90YXJnZXQvZXF1aXBt ZW50X2RyaXZlci5yYjo0MQ0KYzowMDMzIHA6MDA0NSBzOjAxODIgYjowMTgy IGw6MDAwMTgxIGQ6MDAwMTgxIE1FVEhPRCBjOi9SdWJ5MTkxL2xpYi9ydWJ5 LzEuOS4xL2RlbGVnYXRlLnJiOjEzNw0KYzowMDMyIHA6LS0tLSBzOjAxNzUg YjowMTc1IGw6MDAwMTc0IGQ6MDAwMTc0IEZJTklTSA0KYzowMDMxIHA6MDA3 OSBzOjAxNzMgYjowMTczIGw6MDAwMTQxIGQ6MDAwMTcyIEJMT0NLICBDOlx2 YXRmQHZnZGtfZW5nZ19hcmFnby1wcm9qZWN0X29yZ19naXRfcHJvamVjdA0K c190ZXN0LWF1dG9tYXRpb25fZXhlY3V0aW9uLWVuZ2luZXNfdmF0Zi1zY3Jp cHRzX2dpdF9cVkdES1x0cmFuc2NvZGluZ1x0cmFuc2NvZGkNCmM6MDAzMCBw Oi0tLS0gczowMTY5IGI6MDE2OSBsOjAwMDE2OCBkOjAwMDE2OCBGSU5JU0gN CmM6MDAyOSBwOi0tLS0gczowMTY3IGI6MDE2NyBsOjAwMDE2NiBkOjAwMDE2 NiBDRlVOQyAgOmVhY2hfcGFpcg0KYzowMDI4IHA6MDI1NCBzOjAxNjQgYjow MTY0IGw6MDAwMTQxIGQ6MDAwMTYzIEJMT0NLICBDOlx2YXRmQHZnZGtfZW5n Z19hcmFnby1wcm9qZWN0X29yZ19naXRfcHJvamVjdA0Kc190ZXN0LWF1dG9t YXRpb25fZXhlY3V0aW9uLWVuZ2luZXNfdmF0Zi1zY3JpcHRzX2dpdF9cVkdE S1x0cmFuc2NvZGluZ1x0cmFuc2NvZGkNCmM6MDAyNyBwOi0tLS0gczowMTU2 IGI6MDE1NiBsOjAwMDE1NSBkOjAwMDE1NSBGSU5JU0gNCmM6MDAyNiBwOi0t LS0gczowMTU0IGI6MDE1NCBsOjAwMDE1MyBkOjAwMDE1MyBDRlVOQyAgOmVh Y2gNCmM6MDAyNSBwOjAwMTEgczowMTUxIGI6MDE1MSBsOjAwMDE0MSBkOjAw MDE1MCBCTE9DSyAgQzpcdmF0ZkB2Z2RrX2VuZ2dfYXJhZ28tcHJvamVjdF9v cmdfZ2l0X3Byb2plY3QNCnNfdGVzdC1hdXRvbWF0aW9uX2V4ZWN1dGlvbi1l bmdpbmVzX3ZhdGYtc2NyaXB0c19naXRfXFZHREtcdHJhbnNjb2RpbmdcdHJh bnNjb2RpDQpjOjAwMjQgcDotLS0tIHM6MDE0NyBiOjAxNDcgbDowMDAxNDYg ZDowMDAxNDYgRklOSVNIDQpjOjAwMjMgcDotLS0tIHM6MDE0NSBiOjAxNDUg bDowMDAxNDQgZDowMDAxNDQgQ0ZVTkMgIDplYWNoX3BhaXINCmM6MDAyMiBw OjA5MTYgczowMTQyIGI6MDE0MiBsOjAwMDE0MSBkOjAwMDE0MSBNRVRIT0Qg QzpcdmF0ZkB2Z2RrX2VuZ2dfYXJhZ28tcHJvamVjdF9vcmdfZ2l0X3Byb2pl Y3QNCnNfdGVzdC1hdXRvbWF0aW9uX2V4ZWN1dGlvbi1lbmdpbmVzX3ZhdGYt c2NyaXB0c19naXRfXFZHREtcdHJhbnNjb2RpbmdcdHJhbnNjb2RpDQpjOjAw MjEgcDowODk3IHM6MDA5NyBiOjAwOTcgbDowMDE1YWMgZDowMDE1YWMgTUVU SE9EIEM6L1ZBVEZfc291cmNlL2F0Zl9zZXNzaW9uX3J1bm5lci5yYjo0MjAN CmM6MDAyMCBwOjAxMzAgczowMDc4IGI6MDA3OCBsOjAwMDA2OCBkOjAwMDA3 NyBCTE9DSyAgQzovVkFURl9zb3VyY2UvYXRmX3Nlc3Npb25fcnVubmVyLnJi OjI5Mw0KYzowMDE5IHA6LS0tLSBzOjAwNzUgYjowMDc1IGw6MDAwMDc0IGQ6 MDAwMDc0IEZJTklTSA0KYzowMDE4IHA6LS0tLSBzOjAwNzMgYjowMDczIGw6 MDAwMDcyIGQ6MDAwMDcyIENGVU5DICA6dXB0bw0KYzowMDE3IHA6MDIzMiBz OjAwNjkgYjowMDY5IGw6MDAwMDY4IGQ6MDAwMDY4IE1FVEhPRCBDOi9WQVRG X3NvdXJjZS9hdGZfc2Vzc2lvbl9ydW5uZXIucmI6Mjg4DQpjOjAwMTYgcDow MDIzIHM6MDA2MiBiOjAwNjIgbDowMDAwMjMgZDowMDAwNjEgQkxPQ0sgIGF0 Zl9ydW4ucmI6NTANCmM6MDAxNSBwOi0tLS0gczowMDU5IGI6MDA1OSBsOjAw MDA1OCBkOjAwMDA1OCBGSU5JU0gNCmM6MDAxNCBwOi0tLS0gczowMDU3IGI6 MDA1NyBsOjAwMDA1NiBkOjAwMDA1NiBDRlVOQyAgOmVhY2gNCmM6MDAxMyBw OjAwMzEgczowMDU0IGI6MDA1NCBsOjAwMDAyMyBkOjAwMDA1MyBCTE9DSyAg YXRmX3J1bi5yYjo0OQ0KYzowMDEyIHA6LS0tLSBzOjAwNTEgYjowMDUxIGw6 MDAwMDUwIGQ6MDAwMDUwIEZJTklTSA0KYzowMDExIHA6LS0tLSBzOjAwNDkg YjowMDQ5IGw6MDAwMDQ4IGQ6MDAwMDQ4IENGVU5DICA6ZWFjaA0KYzowMDEw IHA6MDAxNyBzOjAwNDYgYjowMDQ2IGw6MDAwMDIzIGQ6MDAwMDQ1IEJMT0NL ICBhdGZfcnVuLnJiOjQ3DQpjOjAwMDkgcDotLS0tIHM6MDA0MyBiOjAwNDMg bDowMDAwNDIgZDowMDAwNDIgRklOSVNIDQpjOjAwMDggcDotLS0tIHM6MDA0 MSBiOjAwNDEgbDowMDAwNDAgZDowMDAwNDAgQ0ZVTkMgIDp1cHRvDQpjOjAw MDcgcDowMjI5IHM6MDAzNyBiOjAwMzcgbDowMDAwMjMgZDowMDAwMzYgQkxP Q0sgIGF0Zl9ydW4ucmI6NDYNCmM6MDAwNiBwOi0tLS0gczowMDI5IGI6MDAy OSBsOjAwMDAyOCBkOjAwMDAyOCBGSU5JU0gNCmM6MDAwNSBwOi0tLS0gczow MDI3IGI6MDAyNyBsOjAwMDAyNiBkOjAwMDAyNiBDRlVOQyAgOmVhY2gNCmM6 MDAwNCBwOjA0NTAgczowMDI0IGI6MDAyNCBsOjAwMDAyMyBkOjAwMDAyMyBN RVRIT0QgYXRmX3J1bi5yYjo0MQ0KYzowMDAzIHA6MDA4NCBzOjAwMDYgYjow MDA2IGw6MDAwMjA0IGQ6MDAxNzdjIEVWQUwgICBhdGZfcnVuLnJiOjEwNw0K YzowMDAyIHA6LS0tLSBzOjAwMDQgYjowMDA0IGw6MDAwMDAzIGQ6MDAwMDAz IEZJTklTSA0KYzowMDAxIHA6MDAwMCBzOjAwMDIgYjowMDAyIGw6MDAwMjA0 IGQ6MDAwMjA0IFRPUA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQot LSBSdWJ5IGxldmVsIGJhY2t0cmFjZSBpbmZvcm1hdGlvbi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpjOi9SdWJ5MTkxL2xp Yi9ydWJ5LzEuOS4xL3RpbWVvdXQucmI6NDk6aW4gYHNsZWVwJw0KYzovUnVi eTE5MS9saWIvcnVieS8xLjkuMS90aW1lb3V0LnJiOjQ5OmluIGBibG9jayBp biB0aW1lb3V0Jw0KDQpbTk9URV0NCllvdSBtYXkgZW5jb3VudGVyIGEgYnVn IG9mIFJ1YnkgaW50ZXJwcmV0ZXIuIEJ1ZyByZXBvcnRzIGFyZSB3ZWxjb21l Lg0KRm9yIGRldGFpbHM6IGh0dHA6Ly93d3cucnVieS1sYW5nLm9yZy9idWdy ZXBvcnQuaHRtbA0KDQoNClRoaXMgYXBwbGljYXRpb24gaGFzIHJlcXVlc3Rl ZCB0aGUgUnVudGltZSB0byB0ZXJtaW5hdGUgaXQgaW4gYW4gdW51c3VhbCB3 YXkuDQpQbGVhc2UgY29udGFjdCB0aGUgYXBwbGljYXRpb24ncyBzdXBwb3J0 IHRlYW0gZm9yIG1vcmUgaW5mb3JtYXRpb24u --mimepart_4ca0f2c8a95a1_ef6bf59668147d4 Content-Type: application/octet-stream; name=serial_equipment_connection.rb Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=serial_equipment_connection.rb cmVxdWlyZSAncnVieWdlbXMnDQpyZXF1aXJlICd0aW1lb3V0Jw0KcmVxdWly ZSBGaWxlLmRpcm5hbWUoX19GSUxFX18pKycvYmFzZV9saXN0ZW5lcicNCg0K Y2xhc3MgU2VyaWFsRXF1aXBtZW50Q29ubmVjdGlvbiA8IFNlcmlhbEJhc2VM aXN0ZW5lckNsaWVudA0KICANCiAgZGVmIGluaXRpYWxpemUocGxhdGZvcm1f aW5mbykNCiAgICBzdXBlcihwbGF0Zm9ybV9pbmZvKQ0KICAgIHJlc2N1ZSBF eGNlcHRpb24gPT4gZQ0KICAgICAgcmFpc2UNCiAgZW5kDQoNCiAgZGVmIHNl bmRfY21kKCpwYXJhbXMpDQogICAgY29tbWFuZCAgICAgICAgPSBwYXJhbXNb MF0NCiAgICBleHBlY3RlZF9tYXRjaCA9IHBhcmFtc1sxXSA/IHBhcmFtc1sx XSA6IFJlZ2V4cC5uZXcoJy4qJykNCiAgICB0aW1lb3V0ICAgICAgICA9IHBh cmFtc1syXSA/IHBhcmFtc1syXSA6IDMwDQogICAgY2hlY2tfY21kX2VjaG8g PSBwYXJhbXNbM10gPyBwYXJhbXNbM10gOiB0cnVlDQoJDQogICAgQGlzX3Rp bWVvdXQgPSBmYWxzZQ0KICAgIGxpc3RlbmVyID0gQmFzZUxpc3RlbmVyLm5l dyhjb21tYW5kLCBleHBlY3RlZF9tYXRjaCwgY2hlY2tfY21kX2VjaG8pDQog ICAgYWRkX2xpc3RlbmVyKGxpc3RlbmVyKQ0KICAgIHN1cGVyKGNvbW1hbmQp DQogICAgc3RhdHVzID0gVGltZW91dDo6dGltZW91dCh0aW1lb3V0KSB7DQog ICAgICAgIHdoaWxlICghbGlzdGVuZXIubWF0Y2gpIA0KICAgICAgICAgICAg c2xlZXAgMC41DQogICAgICAgIGVuZA0KICAgIH0NCiAgICByZXNjdWUgVGlt ZW91dDo6RXJyb3IgPT4gZQ0KICAgICAgbG9nX2Vycm9yKCJPbiBjb21tYW5k OiAiK2NvbW1hbmQudG9fcysiIHdhaXRpbmcgZm9yICIrZXhwZWN0ZWRfbWF0 Y2gudG9fcysiID4+PiBlcnJvcjogIitlLnRvX3MpIGlmIHJlc3BvbmRfdG8/ KDpsb2dfZXJyb3IpDQogICAgICBAaXNfdGltZW91dCA9IHRydWUNCiAgICBy ZXNjdWUgRXhjZXB0aW9uID0+IGUNCiAgICAgICBLZXJuZWwucHJpbnQgZS50 b19zKyJcbiIrZS5iYWNrdHJhY2UudG9fcw0KICAgICAgIHJhaXNlDQogICAg ZW5zdXJlDQogICAgICBAcmVzcG9uc2UgPSBsaXN0ZW5lci5yZXNwb25zZQ0K ICAgICAgcmVtb3ZlX2xpc3RlbmVyKGxpc3RlbmVyKQ0KICBlbmQNCiAgDQog IGRlZiByZXNwb25zZQ0KICAgIEByZXNwb25zZS50b19zDQogIGVuZA0KICAN CiAgZGVmIHRpbWVvdXQ/DQogICAgQGlzX3RpbWVvdXQNCiAgZW5kDQogIA0K ICBkZWYgdXBkYXRlX3Jlc3BvbnNlDQogICAgQHNlc3Npb25fZGF0YQ0KICBl bmQNCmVuZA0K --mimepart_4ca0f2c8a95a1_ef6bf59668147d4 Content-Type: application/octet-stream; name=equipment_connection.rb Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=equipment_connection.rb cmVxdWlyZSAncnVieWdlbXMnDQpyZXF1aXJlIEZpbGUuZGlybmFtZShfX0ZJ TEVfXykrJy90ZWxuZXRfZXF1aXBtZW50X2Nvbm5lY3Rpb24nDQpyZXF1aXJl IEZpbGUuZGlybmFtZShfX0ZJTEVfXykrJy9zZXJpYWxfZXF1aXBtZW50X2Nv bm5lY3Rpb24nDQoNCmNsYXNzIEVxdWlwbWVudENvbm5lY3Rpb24NCiAgYXR0 cl9yZWFkZXIgOmRlZmF1bHQsIDp0ZWxuZXQsIDpzZXJpYWwNCg0KICBkZWYg aW5pdGlhbGl6ZShwbGF0Zm9ybV9pbmZvKQ0KICAgIEBwbGF0Zm9ybV9pbmZv ID0gcGxhdGZvcm1faW5mbw0KICAgIEBkZWZhdWx0ID0gbmlsDQogICAgQHRl bG5ldCA9IG5pbA0KICAgIEBzZXJpYWwgPSBuaWwNCiAgZW5kDQoNCiAgZGVm IGNvbm5lY3QocGFyYW1zKQ0KICAgIGNhc2UgcGFyYW1zWyd0eXBlJ10udG9f cy5kb3duY2FzZS5zdHJpcA0KICAgIHdoZW4gJ3RlbG5ldCcNCiAgICAgIEB0 ZWxuZXQgPSBUZWxuZXRFcXVpcG1lbnRDb25uZWN0aW9uLm5ldyhAcGxhdGZv cm1faW5mbykgDQogICAgICBpZiBAcGxhdGZvcm1faW5mby5kcml2ZXJfY2xh c3NfbmFtZS50b19zLmRvd25jYXNlLmluY2x1ZGU/KCJ3aW5jZSIpDQogICAg ICAgIEB0ZWxuZXQuY29ubmVjdA0KICAgICAgICBAdGVsbmV0LndhaXRmb3Io eydNYXRjaCcgPT4gLz4vLCAnVGltZW91dCc9PiAxMH0pDQogICAgICAgIHNs ZWVwIDENCiAgICAgIGVsc2UNCiAgICAgICAgQHRlbG5ldC5jb25uZWN0DQog ICAgICBlbmQNCgkgIEB0ZWxuZXQuc3RhcnRfbGlzdGVuaW5nDQogICAgICBA ZGVmYXVsdCA9IEB0ZWxuZXQNCiAgICANCiAgICB3aGVuICdzZXJpYWwnDQog ICAgICBpZiBAcGxhdGZvcm1faW5mby5zZXJpYWxfcG9ydC50b19zLnN0cmlw ICE9ICcnDQogICAgICAgIEBzZXJpYWwgPSBTZXJpYWxFcXVpcG1lbnRDb25u ZWN0aW9uLm5ldyhAcGxhdGZvcm1faW5mbykgDQogICAgICBlbHNlDQogICAg ICAgIEBzZXJpYWwgPSBTZXJpYWxTZXJ2ZXJDb25uZWN0aW9uLm5ldyhAcGxh dGZvcm1faW5mbykNCiAgICAgIGVuZA0KCSAgQHNlcmlhbC5zdGFydF9saXN0 ZW5pbmcNCiAgICAgIEBkZWZhdWx0ID0gQHNlcmlhbCBpZiAhQGRlZmF1bHQN CiAgICBlbHNlDQogICAgICByYWlzZSAiVW5rbm93biBjb25uZWN0aW9uIHR5 cGU6ICN7cGFyYW1zWyd0eXBlJ10udG9fc30iDQogICAgZW5kDQogIGVuZA0K DQogIGRlZiBkaXNjb25uZWN0DQogICAgQHRlbG5ldC5kaXNjb25uZWN0IGlm IEB0ZWxuZXQNCiAgICBAc2VyaWFsLmRpc2Nvbm5lY3QgaWYgQHNlcmlhbA0K ICBlbmQNCg0KICBkZWYgc2VuZF9jbWQoKnBhcmFtcykNCiAgICAjIGNvbW1h bmQgICAgICAgID0gcGFyYW1zWzBdDQogICAgIyBleHBlY3RlZF9tYXRjaCA9 IHBhcmFtc1sxXSAjPyBwYXJhbXNbMV0gOiBSZWdleHAubmV3KCcuKicpDQog ICAgIyB0aW1lb3V0ICAgICAgICA9IHBhcmFtc1syXSAjPyBwYXJhbXNbMl0g OiAzMA0KCSMgY2hlY2tfY21kX2VjaG8gPSBwYXJhbXNbM10gIz8gcGFyYW1z WzNdIDogdHJ1ZQ0KICAgICMgcHV0cyAiZXF1aXBtZW50X2Nvbm5lY3Rpb246 ICN7Y29tbWFuZH0sICN7ZXhwZWN0ZWRfbWF0Y2h9LCAje3RpbWVvdXR9LCAj e2NoZWNrX2NtZF9lY2hvfSIgIyBUT0RPIFJFTU9WRSBERUJVRyBQUklOVA0K ICAgIA0KCUBkZWZhdWx0LnNlbmRfY21kKCpwYXJhbXMpDQoJZW5kDQogIA0K ICBkZWYgcmVzcG9uc2UNCiAgICBAZGVmYXVsdC5yZXNwb25zZQ0KICBlbmQN CiAgDQogIGRlZiB0aW1lb3V0Pw0KICAgIEBkZWZhdWx0LnRpbWVvdXQ/DQog IGVuZA0KICANCiAgZGVmIHVwZGF0ZV9yZXNwb25zZQ0KICAgIEBkZWZhdWx0 LnVwZGF0ZV9yZXNwb25zZQ0KICBlbmQNCiAgDQplbmQNCg0KDQo= --mimepart_4ca0f2c8a95a1_ef6bf59668147d4--