--------_3FA3B7E3D08804AAF420_MULTIPART_MIXED_
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit

西山和広です。

lib/test/unit/ui/tk/testrunner.rbを作ってみました。
良ければ取り込んでください。

test/ruby/test_signal.rbで例外がTk.mainloopが動いているメインスレッドに
来ているという問題もありましたが、これはTk.mainloopに来た例外をテスト
実行中の場合はテストを実行しているスレッドに投げ直すことで対応しました。


既知の問題点:
: test/runner.rb --runnerを実行するとfailureが4つある。
  --runner頽と共通のfailure(test_add_failed_assertionと
  test_add_failure_nested)とtest_assert_nothing_thrownと
  test_assert_throws。
: progressbarの場防しているものがprogressbarではない。
  TkCanvasで作ってみればいいかと思ったのですが、TkCanvasの使い方が
  わからなかったのでTkLabelで色が緑と赤になるだけでごまかしています。
: TkTextが折り返しをしているので横スクロールバーが無意味
  TkTextがデフォルトで横のスクロールバー付きでしかも折り返し
  してくれているので、横スクロールバーに意味がないと思うのですが、
  デフォルトの動作のようなのでままにしています。
  (変更方法がわからなかったという理由もあります。)


-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)

--------_3FA3B7E3D08804AAF420_MULTIPART_MIXED_
Content-Type: application/octet-stream; name="testrunner.rb"
Content-Disposition: attachment;
 filenameestrunner.rb"
Content-Transfer-Encoding: base64

IyA6bm9kb2M6CiMKIyBPcmlnaW5hbCBBdXRob3I6OiBOYXRoYW5pZWwgVGFsYm90dC4KIyBBdXRo
b3I6OiBLYXp1aGlybyBOSVNISVlBTUEuCiMgQ29weXJpZ2h0OjogQ29weXJpZ2h0IChjKSAyMDAw
LTIwMDIgTmF0aGFuaWVsIFRhbGJvdHQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiMgQ29weXJpZ2h0
OjogQ29weXJpZ2h0IChjKSAyMDAzIEthenVoaXJvIE5JU0hJWUFNQS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KIyBMaWNlbnNlOjogUnVieSBsaWNlbnNlLgoKcmVxdWlyZSAndGsnCnJlcXVpcmUgJ3Rl
c3QvdW5pdC91aS90ZXN0cnVubmVybWVkaWF0b3InCnJlcXVpcmUgJ3Rlc3QvdW5pdC91aS90ZXN0
cnVubmVydXRpbGl0aWVzJwoKbW9kdWxlIFRlc3QKICBtb2R1bGUgVW5pdAogICAgbW9kdWxlIFVJ
CiAgICAgIG1vZHVsZSBUayAjIDpub2RvYzoKCiAgICAgICAgIyBSdW5zIGEgVGVzdDo6VW5pdDo6
VGVzdFN1aXRlIGluIGEgVGsgVUkuIE9idmlvdXNseSwKICAgICAgICAjIHRoaXMgb25lIHJlcXVp
cmVzIHlvdSB0byBoYXZlIFRrCiAgICAgICAgIyBhbmQgdGhlIFJ1YnkgVGsgZXh0ZW5zaW9uIGlu
c3RhbGxlZC4KICAgICAgICBjbGFzcyBUZXN0UnVubmVyCiAgICAgICAgICBleHRlbmQgVGVzdFJ1
bm5lclV0aWxpdGllcwoKICAgICAgICAgICMgQ3JlYXRlcyBhIG5ldyBUZXN0UnVubmVyIGFuZCBy
dW5zIHRoZSBzdWl0ZS4KICAgICAgICAgIGRlZiBzZWxmLnJ1bihzdWl0ZSkKICAgICAgICAgICAg
bmV3KHN1aXRlKS5zdGFydAoKICAgICAgICAgIGVuZAoKICAgICAgICAgICMgQ3JlYXRlcyBhIG5l
dyBUZXN0UnVubmVyIGZvciBydW5uaW5nIHRoZSBwYXNzZWQKICAgICAgICAgICMgc3VpdGUuCiAg
ICAgICAgICBkZWYgaW5pdGlhbGl6ZShzdWl0ZSkKICAgICAgICAgICAgaWYgKHN1aXRlLnJlc3Bv
bmRfdG8/KDpzdWl0ZSkpCiAgICAgICAgICAgICAgQHN1aXRlID0gc3VpdGUuc3VpdGUKICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgIEBzdWl0ZSA9IHN1aXRlCiAgICAgICAgICAgIGVuZAoK
ICAgICAgICAgICAgQHJlZCA9IGZhbHNlCiAgICAgICAgICAgIEBmYXVsdF9kZXRhaWxfbGlzdCA9
IFtdCiAgICAgICAgICAgIEBydW5fc3VpdGVfdGhyZWFkID0gbmlsCiAgICAgICAgICBlbmQKCiAg
ICAgICAgICAjIEJlZ2lucyB0aGUgdGVzdCBydW4uCiAgICAgICAgICBkZWYgc3RhcnQKICAgICAg
ICAgICAgc2V0dXBfdWkKICAgICAgICAgICAgc2V0dXBfbWVkaWF0b3IKICAgICAgICAgICAgYXR0
YWNoX3RvX21lZGlhdG9yCiAgICAgICAgICAgIHN0YXJ0X3VpCiAgICAgICAgICBlbmQKCiAgICAg
ICAgICBwcml2YXRlCiAgICAgICAgICBkZWYgc2V0dXBfbWVkaWF0b3IgIyA6bm9kb2M6CiAgICAg
ICAgICAgIEBtZWRpYXRvciA9IFRlc3RSdW5uZXJNZWRpYXRvci5uZXcoQHN1aXRlKQogICAgICAg
ICAgICBzdWl0ZV9uYW1lID0gQHN1aXRlLnRvX3MKICAgICAgICAgICAgaWYgKCBAc3VpdGUua2lu
ZF9vZj8oTW9kdWxlKSApCiAgICAgICAgICAgICAgc3VpdGVfbmFtZSA9IEBzdWl0ZS5uYW1lCiAg
ICAgICAgICAgIGVuZAogICAgICAgICAgICBAc3VpdGVfbmFtZV9lbnRyeS52YWx1ZSA9IHN1aXRl
X25hbWUKICAgICAgICAgIGVuZAoKICAgICAgICAgIGRlZiBhdHRhY2hfdG9fbWVkaWF0b3IgIyA6
bm9kb2M6CiAgICAgICAgICAgIEBydW5fYnV0dG9uLmNvbW1hbmQobWV0aG9kKDpydW5fc3VpdGUp
KQogICAgICAgICAgICBAZmF1bHRfbGlzdC5iaW5kKCdCdXR0b25QcmVzcy0xJywgcHJvY3t8eXwK
ICAgICAgICAgICAgICBmYXVsdCA9IEBmYXVsdF9kZXRhaWxfbGlzdFtAZmF1bHRfbGlzdC5uZWFy
ZXN0KHkpXQogICAgICAgICAgICAgIGlmIGZhdWx0CiAgICAgICAgICAgICAgICBzaG93X2ZhdWx0
KGZhdWx0KQogICAgICAgICAgICAgIGVuZAogICAgICAgICAgICB9LCAnJXknKQogICAgICAgICAg
ICBAbWVkaWF0b3IuYWRkX2xpc3RlbmVyKFRlc3RSdW5uZXJNZWRpYXRvcjo6UkVTRVQsICZtZXRo
b2QoOnJlc2V0X3VpKSkKICAgICAgICAgICAgQG1lZGlhdG9yLmFkZF9saXN0ZW5lcihUZXN0UmVz
dWx0OjpGQVVMVCwgJm1ldGhvZCg6YWRkX2ZhdWx0KSkKICAgICAgICAgICAgQG1lZGlhdG9yLmFk
ZF9saXN0ZW5lcihUZXN0UmVzdWx0OjpDSEFOR0VELCAmbWV0aG9kKDpyZXN1bHRfY2hhbmdlZCkp
CiAgICAgICAgICAgIEBtZWRpYXRvci5hZGRfbGlzdGVuZXIoVGVzdFJ1bm5lck1lZGlhdG9yOjpT
VEFSVEVELCAmbWV0aG9kKDpzdGFydGVkKSkKICAgICAgICAgICAgQG1lZGlhdG9yLmFkZF9saXN0
ZW5lcihUZXN0Q2FzZTo6U1RBUlRFRCwgJm1ldGhvZCg6dGVzdF9zdGFydGVkKSkKICAgICAgICAg
ICAgQG1lZGlhdG9yLmFkZF9saXN0ZW5lcihUZXN0UnVubmVyTWVkaWF0b3I6OkZJTklTSEVELCAm
bWV0aG9kKDpmaW5pc2hlZCkpCiAgICAgICAgICBlbmQKCiAgICAgICAgICBkZWYgc3RhcnRfdWkg
IyA6bm9kb2M6CiAgICAgICAgICAgIHJ1bl9zdWl0ZQogICAgICAgICAgICBiZWdpbgogICAgICAg
ICAgICAgIDo6VGsubWFpbmxvb3AKICAgICAgICAgICAgcmVzY3VlIEV4Y2VwdGlvbgogICAgICAg
ICAgICAgIGlmIEBydW5fc3VpdGVfdGhyZWFkIGFuZCBAcnVuX3N1aXRlX3RocmVhZC5hbGl2ZT8K
ICAgICAgICAgICAgICAgIEBydW5fc3VpdGVfdGhyZWFkLnJhaXNlICQhCiAgICAgICAgICAgICAg
ICByZXRyeQogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAg
ICAgICAgZW5kCiAgICAgICAgICAgIGVuZAogICAgICAgICAgZW5kCgogICAgICAgICAgZGVmIHN0
b3AgIyA6bm9kb2M6CiAgICAgICAgICAgIDo6VGsuZXhpdAogICAgICAgICAgZW5kCgogICAgICAg
ICAgZGVmIHJlc2V0X3VpKGNvdW50KSAjIDpub2RvYzoKICAgICAgICAgICAgQHRlc3RfcHJvZ3Jl
c3NfYmFyLmNvbmZpZ3VyZSgnYmFja2dyb3VuZCc9PidncmVlbicpCiAgICAgICAgICAgIEByZWQg
PSBmYWxzZQoKICAgICAgICAgICAgQHRlc3RfY291bnRfbGFiZWwudmFsdWUgPSAwCiAgICAgICAg
ICAgIEBhc3NlcnRpb25fY291bnRfbGFiZWwudmFsdWUgPSAwCiAgICAgICAgICAgIEBmYWlsdXJl
X2NvdW50X2xhYmVsLnZhbHVlID0gMAogICAgICAgICAgICBAZXJyb3JfY291bnRfbGFiZWwudmFs
dWUgPSAwCgogICAgICAgICAgICBAZmF1bHRfbGlzdC5kZWxldGUoMCwgJ2VuZCcpCiAgICAgICAg
ICAgIEBmYXVsdF9kZXRhaWxfbGlzdCA9IFtdCiAgICAgICAgICAgIGNsZWFyX2ZhdWx0CiAgICAg
ICAgICBlbmQKCiAgICAgICAgICBkZWYgYWRkX2ZhdWx0KGZhdWx0KSAjIDpub2RvYzoKICAgICAg
ICAgICAgaWYgKCAhIEByZWQgKQogICAgICAgICAgICAgIEB0ZXN0X3Byb2dyZXNzX2Jhci5jb25m
aWd1cmUoJ2JhY2tncm91bmQnPT4ncmVkJykKICAgICAgICAgICAgICBAcmVkID0gdHJ1ZQogICAg
ICAgICAgICBlbmQKICAgICAgICAgICAgQGZhdWx0X2RldGFpbF9saXN0LnB1c2ggZmF1bHQKICAg
ICAgICAgICAgQGZhdWx0X2xpc3QuaW5zZXJ0KCdlbmQnLCBmYXVsdC5zaG9ydF9kaXNwbGF5KQog
ICAgICAgICAgZW5kCgogICAgICAgICAgZGVmIHNob3dfZmF1bHQoZmF1bHQpICMgOm5vZG9jOgog
ICAgICAgICAgICByYXdfc2hvd19mYXVsdChmYXVsdC5sb25nX2Rpc3BsYXkpCiAgICAgICAgICBl
bmQKCiAgICAgICAgICBkZWYgcmF3X3Nob3dfZmF1bHQoc3RyaW5nKSAjIDpub2RvYzoKICAgICAg
ICAgICAgQGRldGFpbF90ZXh0LnZhbHVlID0gc3RyaW5nCiAgICAgICAgICBlbmQKCiAgICAgICAg
ICBkZWYgY2xlYXJfZmF1bHQgIyA6bm9kb2M6CiAgICAgICAgICAgIHJhd19zaG93X2ZhdWx0KCIi
KQogICAgICAgICAgZW5kCgogICAgICAgICAgZGVmIHJlc3VsdF9jaGFuZ2VkKHJlc3VsdCkgIyA6
bm9kb2M6CiAgICAgICAgICAgIEB0ZXN0X2NvdW50X2xhYmVsLnZhbHVlID0gcmVzdWx0LnJ1bl9j
b3VudC50b19zCiAgICAgICAgICAgIEBhc3NlcnRpb25fY291bnRfbGFiZWwudmFsdWUgPSByZXN1
bHQuYXNzZXJ0aW9uX2NvdW50LnRvX3MKICAgICAgICAgICAgQGZhaWx1cmVfY291bnRfbGFiZWwu
dmFsdWUgPSByZXN1bHQuZmFpbHVyZV9jb3VudC50b19zCiAgICAgICAgICAgIEBlcnJvcl9jb3Vu
dF9sYWJlbC52YWx1ZSA9IHJlc3VsdC5lcnJvcl9jb3VudC50b19zCiAgICAgICAgICBlbmQKCiAg
ICAgICAgICBkZWYgc3RhcnRlZChyZXN1bHQpICMgOm5vZG9jOgogICAgICAgICAgICBvdXRwdXRf
c3RhdHVzKCJTdGFydGVkLi4uIikKICAgICAgICAgIGVuZAoKICAgICAgICAgIGRlZiB0ZXN0X3N0
YXJ0ZWQodGVzdF9uYW1lKQogICAgICAgICAgICBvdXRwdXRfc3RhdHVzKCJSdW5uaW5nICN7dGVz
dF9uYW1lfS4uLiIpCiAgICAgICAgICBlbmQKCiAgICAgICAgICBkZWYgZmluaXNoZWQoZWxhcHNl
ZF90aW1lKQogICAgICAgICAgICBvdXRwdXRfc3RhdHVzKCJGaW5pc2hlZCBpbiAje2VsYXBzZWRf
dGltZX0gc2Vjb25kcyIpCiAgICAgICAgICBlbmQKCiAgICAgICAgICBkZWYgb3V0cHV0X3N0YXR1
cyhzdHJpbmcpICMgOm5vZG9jOgogICAgICAgICAgICBAc3RhdHVzX2VudHJ5LnZhbHVlID0gc3Ry
aW5nCiAgICAgICAgICBlbmQKCiAgICAgICAgICBkZWYgc2V0dXBfdWkgIyA6bm9kb2M6CiAgICAg
ICAgICAgIEBzdGF0dXNfZW50cnkgPSBUa1ZhcmlhYmxlLm5ldwogICAgICAgICAgICBsID0gVGtM
YWJlbC5uZXcobmlsLCAndGV4dHZhcmlhYmxlJz0+QHN0YXR1c19lbnRyeSwgJ3JlbGllZic9Pidz
dW5rZW4nKQogICAgICAgICAgICBsLnBhY2soJ3NpZGUnPT4nYm90dG9tJywgJ2ZpbGwnPT4neCcp
CgogICAgICAgICAgICBzdWl0ZV9mcmFtZSA9IFRrRnJhbWUubmV3LnBhY2soJ2ZpbGwnPT4neCcp
CgogICAgICAgICAgICBAcnVuX2J1dHRvbiA9IFRrQnV0dG9uLm5ldyhzdWl0ZV9mcmFtZSwgJ3Rl
eHQnPT4nUnVuJykKICAgICAgICAgICAgQHJ1bl9idXR0b24ucGFjaygnc2lkZSc9PidyaWdodCcp
CgogICAgICAgICAgICBUa0xhYmVsLm5ldyhzdWl0ZV9mcmFtZSwgJ3RleHQnPT4nU3VpdGU6Jyku
cGFjaygnc2lkZSc9PidsZWZ0JykKICAgICAgICAgICAgQHN1aXRlX25hbWVfZW50cnkgPSBUa1Zh
cmlhYmxlLm5ldwogICAgICAgICAgICBsID0gVGtMYWJlbC5uZXcoc3VpdGVfZnJhbWUsICd0ZXh0
dmFyaWFibGUnPT5Ac3VpdGVfbmFtZV9lbnRyeSwgJ3JlbGllZic9PidzdW5rZW4nKQogICAgICAg
ICAgICBsLnBhY2soJ3NpZGUnPT4nbGVmdCcsICdmaWxsJz0+J3gnLCAnZXhwYW5kJz0+dHJ1ZSkK
CiAgICAgICAgICAgIEB0ZXN0X3Byb2dyZXNzX2JhciA9IFRrTGFiZWwubmV3KG5pbCwgJ2JhY2tn
cm91bmQnPT4nZ3JlZW4nKQogICAgICAgICAgICBAdGVzdF9wcm9ncmVzc19iYXIucGFjaygnZmls
bCc9Pid4JykKCgogICAgICAgICAgICBpbmZvX2ZyYW1lID0gVGtGcmFtZS5uZXcucGFjaygnZmls
bCc9Pid4JywgJ2V4cGFuZCc9PnRydWUpCiAgICAgICAgICAgIEB0ZXN0X2NvdW50X2xhYmVsID0g
Y3JlYXRlX2NvdW50X2xhYmVsKGluZm9fZnJhbWUsICdUZXN0czonKQogICAgICAgICAgICBAYXNz
ZXJ0aW9uX2NvdW50X2xhYmVsID0gY3JlYXRlX2NvdW50X2xhYmVsKGluZm9fZnJhbWUsICdBc3Nl
cnRpb25zOicpCiAgICAgICAgICAgIEBmYWlsdXJlX2NvdW50X2xhYmVsID0gY3JlYXRlX2NvdW50
X2xhYmVsKGluZm9fZnJhbWUsICdGYWlsdXJlczonKQogICAgICAgICAgICBAZXJyb3JfY291bnRf
bGFiZWwgPSBjcmVhdGVfY291bnRfbGFiZWwoaW5mb19mcmFtZSwgJ0Vycm9yczonKQoKICAgICAg
ICAgICAgZmF1bHRfbGlzdF9mcmFtZSA9IFRrRnJhbWUubmV3LnBhY2soJ2ZpbGwnPT4nYm90aCcs
ICdleHBhbmQnPT50cnVlKQoKICAgICAgICAgICAgZmF1bHRfc2Nyb2xsYmFyID0gVGtTY3JvbGxi
YXIubmV3KGZhdWx0X2xpc3RfZnJhbWUpCiAgICAgICAgICAgIGZhdWx0X3Njcm9sbGJhci5wYWNr
KCdzaWRlJz0+J3JpZ2h0JywgJ2ZpbGwnPT4neScpCiAgICAgICAgICAgIEBmYXVsdF9saXN0ID0g
VGtMaXN0Ym94Lm5ldyhmYXVsdF9saXN0X2ZyYW1lKQogICAgICAgICAgICBAZmF1bHRfbGlzdC5w
YWNrKCdmaWxsJz0+J2JvdGgnLCAnZXhwYW5kJz0+dHJ1ZSkKICAgICAgICAgICAgQGZhdWx0X2xp
c3QueXNjcm9sbGJhcihmYXVsdF9zY3JvbGxiYXIpCgogICAgICAgICAgICBkZXRhaWxfZnJhbWUg
PSBUa0ZyYW1lLm5ldy5wYWNrKCdmaWxsJz0+J2JvdGgnLCAnZXhwYW5kJz0+dHJ1ZSkKICAgICAg
ICAgICAgZGV0YWlsX3Njcm9sbGJhcl95ID0gVGtTY3JvbGxiYXIubmV3KGRldGFpbF9mcmFtZSkK
ICAgICAgICAgICAgZGV0YWlsX3Njcm9sbGJhcl95LnBhY2soJ3NpZGUnPT4ncmlnaHQnLCAnZmls
bCc9Pid5JykKICAgICAgICAgICAgZGV0YWlsX3Njcm9sbGJhcl94ID0gVGtTY3JvbGxiYXIubmV3
KGRldGFpbF9mcmFtZSkKICAgICAgICAgICAgZGV0YWlsX3Njcm9sbGJhcl94LnBhY2soJ3NpZGUn
PT4nYm90dG9tJywgJ2ZpbGwnPT4neCcpCiAgICAgICAgICAgIEBkZXRhaWxfdGV4dCA9IFRrVGV4
dC5uZXcoZGV0YWlsX2ZyYW1lLCAnaGVpZ2h0Jz0+MTApIHsKICAgICAgICAgICAgICBiaW5kdGFn
cyhiaW5kdGFncyAtIFtUa1RleHRdKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEBkZXRhaWxf
dGV4dC5wYWNrKCdmaWxsJz0+J2JvdGgnLCAnZXhwYW5kJz0+dHJ1ZSkKICAgICAgICAgICAgQGRl
dGFpbF90ZXh0LnlzY3JvbGxiYXIoZGV0YWlsX3Njcm9sbGJhcl95KQogICAgICAgICAgICBAZGV0
YWlsX3RleHQueHNjcm9sbGJhcihkZXRhaWxfc2Nyb2xsYmFyX3gpCiAgICAgICAgICBlbmQKCiAg
ICAgICAgICBkZWYgY3JlYXRlX2NvdW50X2xhYmVsKHBhcmVudCwgbGFiZWwpICMgOm5vZG9jOgog
ICAgICAgICAgICBUa0xhYmVsLm5ldyhwYXJlbnQsICd0ZXh0Jz0+bGFiZWwpLnBhY2soJ3NpZGUn
PT4nbGVmdCcsICdleHBhbmQnPT50cnVlKQogICAgICAgICAgICB2ID0gVGtWYXJpYWJsZS5uZXco
MCkKICAgICAgICAgICAgVGtMYWJlbC5uZXcocGFyZW50LCAndGV4dHZhcmlhYmxlJz0+dikucGFj
aygnc2lkZSc9PidsZWZ0JywgJ2V4cGFuZCc9PnRydWUpCiAgICAgICAgICAgIHYKICAgICAgICAg
IGVuZAoKICAgICAgICAgIGRlZiBydW5fc3VpdGUgIyA6bm9kb2M6CiAgICAgICAgICAgIHJ1bl9w
cm9jID0gcHJvYyB7CiAgICAgICAgICAgICAgQHJ1bl9zdWl0ZV90aHJlYWQgPSBUaHJlYWQuc3Rh
cnQgewogICAgICAgICAgICAgICAgQG1lZGlhdG9yLnJ1bl9zdWl0ZQogICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgfQogICAgICAgICAgICBUa0FmdGVyLm5ldygxMDAwLCAxLCBydW5fcHJvYyku
c3RhcnQKICAgICAgICAgIGVuZAogICAgICAgIGVuZAogICAgICBlbmQKICAgIGVuZAogIGVuZApl
bmQKCmlmIF9fRklMRV9fID09ICQwCiAgVGVzdDo6VW5pdDo6VUk6OlRrOjpUZXN0UnVubmVyLnN0
YXJ0X2NvbW1hbmRfbGluZV90ZXN0CmVuZAo-------_3FA3B7E3D08804AAF420_MULTIPART_MIXED_
Content-Type: application/octet-stream; name="autorunner.rb.diff"
Content-Disposition: attachment;
 filename
utorunner.rb.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtdSAtcCAtcjEuMiBhdXRvcnVubmVyLnJiCi0tLSBsaWIvdGVzdC91bml0L2F1dG9ydW5u
ZXIucmIJMzAgT2N0IDIwMDMgMDE6MTc6NDAgLTAwMDAJMS4yCisrKyBsaWIvdGVzdC91bml0L2F1
dG9ydW5uZXIucmIJMzAgT2N0IDIwMDMgMTc6MDA6NTMgLTAwMDAKQEAgLTI5LDYgKzI5LDEwIEBA
IG1vZHVsZSBUZXN0CiAgICAgICAgICAgcmVxdWlyZSAndGVzdC91bml0L3VpL2ZveC90ZXN0cnVu
bmVyJwogICAgICAgICAgIFRlc3Q6OlVuaXQ6OlVJOjpGb3g6OlRlc3RSdW5uZXIucnVuKHIuc3Vp
dGUpCiAgICAgICAgIGVuZCwKKyAgICAgICAgOnRrID0+IHByb2MgZG8gfHJ8CisgICAgICAgICAg
cmVxdWlyZSAndGVzdC91bml0L3VpL3RrL3Rlc3RydW5uZXInCisgICAgICAgICAgVGVzdDo6VW5p
dDo6VUk6OlRrOjpUZXN0UnVubmVyLnJ1bihyLnN1aXRlKQorICAgICAgICBlbmQsCiAgICAgICB9
CiAKICAgICAgIE9VVFBVVF9MRVZFTFMgPSB7Cg
--------_3FA3B7E3D08804AAF420_MULTIPART_MIXED_--