<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>80932</bug_id>
          
          <creation_ts>2012-03-12 19:58:34 -0700</creation_ts>
          <short_desc>Rebaselining for a new port doesn&apos;t work right with multiple fallback ports</short_desc>
          <delta_ts>2022-02-27 23:50:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>576946</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-12 19:58:34 -0700</bug_when>
    <thetext>Rebaselining for a new port doesn&apos;t work right with multiple fallback ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576948</commentid>
    <comment_count>1</comment_count>
      <attachid>131499</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-12 20:00:13 -0700</bug_when>
    <thetext>Created attachment 131499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577032</commentid>
    <comment_count>2</comment_count>
      <attachid>131499</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-12 22:15:28 -0700</bug_when>
    <thetext>Comment on attachment 131499
Patch

It looks like you didn&apos;t add any tests for this new functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577035</commentid>
    <comment_count>3</comment_count>
      <attachid>131499</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-12 22:20:36 -0700</bug_when>
    <thetext>Comment on attachment 131499
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131499&amp;action=review

&gt; Tools/ChangeLog:10
&gt; +        Since chromium-leopard also falls back to mac-leopard, we need to
&gt; +        copy the existing result for both chromium-leopard and chromium-snowleopard
&gt; +        before doing lion rebaselines.

I see.  Soooo complicated.  At some point we should decide that being parasitic on apple-mac isn&apos;t worth the complexity.

&gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:71
&gt; +    def _copy_existing_baseline(self, platforms_to_move_existing_baselines_to, test_name, suffix):

This seems very likely to create non-optimized baselines.  Is there an optimization step to clean up after these moves?

Moving baselines around is pretty complicated.  That&apos;s why, in the other class, I went with the approach of preparing the whole move and then double-checking that I didn&apos;t break anything (by seeing that the before/after results were the same).  I wonder if an approach that would be useful here...

One last comment is that this command has grown out of control.  It really needs to be refactored into smaller interacting pieces rather than having all the logic in one giant class.  (That&apos;s perhaps a yak for another day, however.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577582</commentid>
    <comment_count>4</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-13 11:20:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 131499 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131499&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:10
&gt; &gt; +        Since chromium-leopard also falls back to mac-leopard, we need to
&gt; &gt; +        copy the existing result for both chromium-leopard and chromium-snowleopard
&gt; &gt; +        before doing lion rebaselines.
&gt; 
&gt; I see.  Soooo complicated.  At some point we should decide that being parasitic on apple-mac isn&apos;t worth the complexity.

I was thinking it would be good to only ever fallback to platform/mac. That would make all the chromium ports&apos; fallbacks form a tree. Would that make all the ports&apos; fallbacks form a tree?

&gt; &gt; Tools/Scripts/webkitpy/tool/commands/rebaseline.py:71
&gt; &gt; +    def _copy_existing_baseline(self, platforms_to_move_existing_baselines_to, test_name, suffix):
&gt; 
&gt; This seems very likely to create non-optimized baselines.  Is there an optimization step to clean up after these moves?

webkit-patch optimize-baselines does. In practice, this is only ever called from garden-o-matic, which optimizes the baselines.

&gt; Moving baselines around is pretty complicated.  That&apos;s why, in the other class, I went with the approach of preparing the whole move and then double-checking that I didn&apos;t break anything (by seeing that the before/after results were the same).  I wonder if an approach that would be useful here...
&gt; 
&gt; One last comment is that this command has grown out of control.  It really needs to be refactored into smaller interacting pieces rather than having all the logic in one giant class.  (That&apos;s perhaps a yak for another day, however.)

I&apos;d rather not invest too much more effort into this code. It&apos;s only hit when bringing up a new port and hopefully we&apos;ll fix our fallback order to be more of a tree in the not too distant future.

&gt; It looks like you didn&apos;t add any tests for this new functionality.

Whoops. Will add a test and then commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577604</commentid>
    <comment_count>5</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-13 11:34:16 -0700</bug_when>
    <thetext>Committed r110585: &lt;http://trac.webkit.org/changeset/110585&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577749</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-13 13:30:31 -0700</bug_when>
    <thetext>&gt; I was thinking it would be good to only ever fallback to platform/mac. That would make all the chromium ports&apos; fallbacks form a tree. Would that make all the ports&apos; fallbacks form a tree?

That&apos;s an interesting idea.  It might work well.  We wouldn&apos;t quite be left with a tree, but we&apos;d be much, much closer (and could probably clean up the remaining non-tree paths).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131499</attachid>
            <date>2012-03-12 20:00:13 -0700</date>
            <delta_ts>2022-02-27 23:50:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80932-20120312200012.patch</filename>
            <type>text/plain</type>
            <size>14552</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWQxNjdiYmYxN2MzOGQ5YTg4ZWM0ODc0YTYwYjlkNjIw
YmJjZjViYy4uYThkYjQ0NjlkZjc1MTVkNzgwOTYyNDBkNWFhYzU1OTk2NzVjYTQ5MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDEyLTAzLTEyICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmViYXNlbGluaW5nIGZvciBhIG5ldyBwb3J0IGRvZXNuJ3Qgd29yayByaWdodCB3aXRoIG11
bHRpcGxlIGZhbGxiYWNrIHBvcnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MDkzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNpbmNlIGNocm9taXVtLWxlb3BhcmQgYWxzbyBmYWxscyBiYWNrIHRvIG1h
Yy1sZW9wYXJkLCB3ZSBuZWVkIHRvCisgICAgICAgIGNvcHkgdGhlIGV4aXN0aW5nIHJlc3VsdCBm
b3IgYm90aCBjaHJvbWl1bS1sZW9wYXJkIGFuZCBjaHJvbWl1bS1zbm93bGVvcGFyZAorICAgICAg
ICBiZWZvcmUgZG9pbmcgbGlvbiByZWJhc2VsaW5lcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYnVpbGRlcnMucHk6CisgICAgICAgIChmYWxsYmFja19w
b3J0X25hbWVzX2Zvcl9uZXdfcG9ydCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3JlYmFzZWxpbmUucHk6CisgICAgICAgIChSZWJhc2VsaW5lVGVzdCk6CisgICAg
ICAgIChSZWJhc2VsaW5lVGVzdC5fY29weV9leGlzdGluZ19iYXNlbGluZSk6CisgICAgICAgIChS
ZWJhc2VsaW5lVGVzdC5fcmViYXNlbGluZV90ZXN0KToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0
LmV4ZWN1dGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJh
c2VsaW5lX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2
ZXJzL2dhcmRlbmluZ3NlcnZlci5weToKKyAgICAgICAgKEdhcmRlbmluZ0hUVFBSZXF1ZXN0SGFu
ZGxlci5yZWJhc2VsaW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChHYXJkZW5pbmdTZXJ2ZXJU
ZXN0LnRlc3RfcmViYXNlbGluZV9uZXdfcG9ydCk6CisKIDIwMTItMDMtMTIgIEFuZHJhcyBCZWNz
aSAgPGFuZHJhcy5iZWNzaUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIEFkZCBzdXBw
b3J0IGZvciBydWRpbWVudGFyeSBzY3JvbGwgaW5kaWNhdG9ycyBpbiBNaW5pQnJvd3NlcgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9idWlsZGVy
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYnVpbGRlcnMu
cHkKaW5kZXggZWE2YjQ2OGNkNDRjMjdmM2EwYTMwOTQ5Y2NmYzA3NmI3ZDljNGVhNi4uODdjYjgw
NTgxZDA4NTQ1ODc4Y2VhNDIyMWQ4NWJlMmJjMzE4NDNmYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9idWlsZGVycy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2J1aWxkZXJzLnB5CkBAIC01MCw3ICs1
MCw3IEBAIF9leGFjdF9tYXRjaGVzID0gewogICAgICJXZWJraXQgTWFjMTAuNSAoZGJnKSgyKSI6
IHsicG9ydF9uYW1lIjogImNocm9taXVtLW1hYy1sZW9wYXJkIiwgInNwZWNpZmllcnMiOiBzZXQo
WyJsZW9wYXJkIiwgImRlYnVnIl0pfSwKICAgICAiV2Via2l0IE1hYzEwLjYiOiB7InBvcnRfbmFt
ZSI6ICJjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQiLCAic3BlY2lmaWVycyI6IHNldChbInNub3ds
ZW9wYXJkIl0pfSwKICAgICAiV2Via2l0IE1hYzEwLjYgKGRiZykiOiB7InBvcnRfbmFtZSI6ICJj
aHJvbWl1bS1tYWMtc25vd2xlb3BhcmQiLCAic3BlY2lmaWVycyI6IHNldChbInNub3dsZW9wYXJk
IiwgImRlYnVnIl0pfSwKLSAgICAiV2Via2l0IE1hYzEwLjciOiB7InBvcnRfbmFtZSI6ICJjaHJv
bWl1bS1tYWMtbGlvbiIsICJzcGVjaWZpZXJzIjogc2V0KFsibGlvbiJdKSwgIm1vdmVfb3Zlcndy
aXR0ZW5fYmFzZWxpbmVzX3RvIjogImNocm9taXVtLW1hYy1zbm93bGVvcGFyZCJ9LAorICAgICJX
ZWJraXQgTWFjMTAuNyI6IHsicG9ydF9uYW1lIjogImNocm9taXVtLW1hYy1saW9uIiwgInNwZWNp
ZmllcnMiOiBzZXQoWyJsaW9uIl0pLCAibW92ZV9vdmVyd3JpdHRlbl9iYXNlbGluZXNfdG8iOiBb
ImNocm9taXVtLW1hYy1zbm93bGVvcGFyZCIsICJjaHJvbWl1bS1tYWMtbGVvcGFyZCJdfSwKIAog
ICAgICMgVGhlc2UgYnVpbGRlcnMgYXJlIG9uIGJ1aWxkLndlYmtpdC5vcmcuCiAgICAgIkdUSyBM
aW51eCAzMi1iaXQgRGVidWciOiB7InBvcnRfbmFtZSI6ICJndGsiLCAic3BlY2lmaWVycyI6IHNl
dChbImd0ayJdKX0sCkBAIC0xMjMsNSArMTIzLDUgQEAgZGVmIGJ1aWxkZXJfcGF0aF9mb3JfcG9y
dF9uYW1lKHBvcnRfbmFtZSk6CiAgICAgYnVpbGRlcl9wYXRoX2Zyb21fbmFtZShidWlsZGVyX25h
bWVfZm9yX3BvcnRfbmFtZShwb3J0X25hbWUpKQogCiAKLWRlZiBmYWxsYmFja19wb3J0X25hbWVf
Zm9yX25ld19wb3J0KGJ1aWxkZXJfbmFtZSk6Ci0gICAgcmV0dXJuIF9leGFjdF9tYXRjaGVzW2J1
aWxkZXJfbmFtZV0uZ2V0KCJtb3ZlX292ZXJ3cml0dGVuX2Jhc2VsaW5lc190byIpCitkZWYgZmFs
bGJhY2tfcG9ydF9uYW1lc19mb3JfbmV3X3BvcnQoYnVpbGRlcl9uYW1lKToKKyAgICByZXR1cm4g
X2V4YWN0X21hdGNoZXNbYnVpbGRlcl9uYW1lXS5nZXQoIm1vdmVfb3ZlcndyaXR0ZW5fYmFzZWxp
bmVzX3RvIiwgW10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcmViYXNlbGluZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9yZWJhc2VsaW5lLnB5CmluZGV4IGY0NzQ5NGFjZDJmYWU4MjViOGNjZmY1ZGIyNGE5ODYzMzU1
OTQyZjIuLmM0YTIwNmRiM2VmYWQ5ZmI5N2I5OTg4OWY1YTZhNjkwMGUzNTExZGMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5CkBA
IC01Nyw3ICs1Nyw3IEBAIGRlZiBfYmFzZWxpbmVfbmFtZShmcywgdGVzdF9uYW1lLCBzdWZmaXgp
OgogY2xhc3MgUmViYXNlbGluZVRlc3QoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAg
IG5hbWUgPSAicmViYXNlbGluZS10ZXN0IgogICAgIGhlbHBfdGV4dCA9ICJSZWJhc2VsaW5lIGEg
c2luZ2xlIHRlc3QgZnJvbSBhIGJ1aWxkYm90LiAgKEN1cnJlbnRseSB3b3JrcyBvbmx5IHdpdGgg
YnVpbGQuY2hyb21pdW0ub3JnIGJ1aWxkYm90cy4pIgotICAgIGFyZ3VtZW50X25hbWVzID0gIkJV
SUxERVJfTkFNRSBURVNUX05BTUUgW1BMQVRGT1JNX1RPX01PVkVfRVhJU1RJTkdfQkFTRUxJTkVT
X1RPXSIKKyAgICBhcmd1bWVudF9uYW1lcyA9ICJCVUlMREVSX05BTUUgVEVTVF9OQU1FIFtQTEFU
Rk9STVNfVE9fTU9WRV9FWElTVElOR19CQVNFTElORVNfVE9dIgogCiAgICAgZGVmIF9yZXN1bHRz
X3VybChzZWxmLCBidWlsZGVyX25hbWUpOgogICAgICAgICAjIEZJWE1FOiBHZW5lcmFsaXplIHRo
aXMgY29tbWFuZCB0byB3b3JrIHdpdGggbm9uLWJ1aWxkLmNocm9taXVtLm9yZyBidWlsZGVycy4K
QEAgLTY4LDE3ICs2OCwzMSBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdChBYnN0cmFjdERlY2xhcmF0
aXZlQ29tbWFuZCk6CiAgICAgICAgIHBvcnQgPSBzZWxmLl90b29sLnBvcnRfZmFjdG9yeS5nZXRf
ZnJvbV9idWlsZGVyX25hbWUoYnVpbGRlcl9uYW1lKQogICAgICAgICByZXR1cm4gcG9ydC5iYXNl
bGluZV9wYXRoKCkKIAotICAgIGRlZiBfY29weV9leGlzdGluZ19iYXNlbGluZShzZWxmLCBwbGF0
Zm9ybV90b19tb3ZlX2V4aXN0aW5nX2Jhc2VsaW5lc190bywgdGVzdF9uYW1lLCBzdWZmaXgpOgot
ICAgICAgICBwb3J0ID0gc2VsZi5fdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0KHBsYXRmb3JtX3RvX21v
dmVfZXhpc3RpbmdfYmFzZWxpbmVzX3RvKQotICAgICAgICBvbGRfYmFzZWxpbmUgPSBwb3J0LmV4
cGVjdGVkX2ZpbGVuYW1lKHRlc3RfbmFtZSwgIi4iICsgc3VmZml4KQotICAgICAgICBpZiBub3Qg
c2VsZi5fdG9vbC5maWxlc3lzdGVtLmV4aXN0cyhvbGRfYmFzZWxpbmUpOgotICAgICAgICAgICAg
cHJpbnQoIk5vIGV4aXN0aW5nIGJhc2VsaW5lIGZvciAlcy4iICUgdGVzdF9uYW1lKQotICAgICAg
ICAgICAgcmV0dXJuCisgICAgZGVmIF9jb3B5X2V4aXN0aW5nX2Jhc2VsaW5lKHNlbGYsIHBsYXRm
b3Jtc190b19tb3ZlX2V4aXN0aW5nX2Jhc2VsaW5lc190bywgdGVzdF9uYW1lLCBzdWZmaXgpOgor
ICAgICAgICBvbGRfYmFzZWxpbmVzID0gW10KKyAgICAgICAgbmV3X2Jhc2VsaW5lcyA9IFtdCisK
KyAgICAgICAgIyBOZWVkIHRvIGdhdGhlciBhbGwgdGhlIGJhc2VsaW5lIHBhdGhzIGJlZm9yZSBt
b2RpZnlpbmcgdGhlIGZpbGVzeXN0ZW0gc2luY2UKKyAgICAgICAgIyB0aGUgbW9kaWZpY2F0aW9u
cyBjYW4gYWZmZWN0IHRoZSByZXN1bHRzIG9mIHBvcnQuZXhwZWN0ZWRfZmlsZW5hbWUuCisgICAg
ICAgIGZvciBwbGF0Zm9ybSBpbiBwbGF0Zm9ybXNfdG9fbW92ZV9leGlzdGluZ19iYXNlbGluZXNf
dG86CisgICAgICAgICAgICBwb3J0ID0gc2VsZi5fdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0KHBsYXRm
b3JtKQorICAgICAgICAgICAgb2xkX2Jhc2VsaW5lID0gcG9ydC5leHBlY3RlZF9maWxlbmFtZSh0
ZXN0X25hbWUsICIuIiArIHN1ZmZpeCkKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLl90b29sLmZp
bGVzeXN0ZW0uZXhpc3RzKG9sZF9iYXNlbGluZSk6CisgICAgICAgICAgICAgICAgcHJpbnQoIk5v
IGV4aXN0aW5nIGJhc2VsaW5lIGZvciAlcy4iICUgdGVzdF9uYW1lKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlCisKKyAgICAgICAgICAgIG5ld19iYXNlbGluZSA9IHNlbGYuX3Rvb2wuZmlsZXN5
c3RlbS5qb2luKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBzZWxmLl9maWxlX25hbWVfZm9yX2V4cGVj
dGVkX3Jlc3VsdCh0ZXN0X25hbWUsIHN1ZmZpeCkpCisgICAgICAgICAgICBpZiBzZWxmLl90b29s
LmZpbGVzeXN0ZW0uZXhpc3RzKG5ld19iYXNlbGluZSk6CisgICAgICAgICAgICAgICAgcHJpbnQo
IkV4aXN0aW5nIGJhc2VsaW5lIGF0ICVzLCBub3QgY29weWluZyBvdmVyIGl0LiIgJSBuZXdfYmFz
ZWxpbmUpCisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgb2xkX2Jhc2Vs
aW5lcy5hcHBlbmQob2xkX2Jhc2VsaW5lKQorICAgICAgICAgICAgbmV3X2Jhc2VsaW5lcy5hcHBl
bmQobmV3X2Jhc2VsaW5lKQorCisgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihvbGRfYmFzZWxp
bmVzKSk6CisgICAgICAgICAgICBvbGRfYmFzZWxpbmUgPSBvbGRfYmFzZWxpbmVzW2ldCisgICAg
ICAgICAgICBuZXdfYmFzZWxpbmUgPSBuZXdfYmFzZWxpbmVzW2ldCiAKLSAgICAgICAgbmV3X2Jh
c2VsaW5lID0gc2VsZi5fdG9vbC5maWxlc3lzdGVtLmpvaW4ocG9ydC5iYXNlbGluZV9wYXRoKCks
IHNlbGYuX2ZpbGVfbmFtZV9mb3JfZXhwZWN0ZWRfcmVzdWx0KHRlc3RfbmFtZSwgc3VmZml4KSkK
LSAgICAgICAgaWYgc2VsZi5fdG9vbC5maWxlc3lzdGVtLmV4aXN0cyhuZXdfYmFzZWxpbmUpOgot
ICAgICAgICAgICAgcHJpbnQoIkV4aXN0aW5nIGJhc2VsaW5lIGF0ICVzLCBub3QgY29weWluZyBv
dmVyIGl0LiIgJSBuZXdfYmFzZWxpbmUpCi0gICAgICAgIGVsc2U6CiAgICAgICAgICAgICBwcmlu
dCgiQ29weWluZyBiYXNlbGluZSBmcm9tICVzIHRvICVzLiIgJSAob2xkX2Jhc2VsaW5lLCBuZXdf
YmFzZWxpbmUpKQogICAgICAgICAgICAgc2VsZi5fdG9vbC5maWxlc3lzdGVtLm1heWJlX21ha2Vf
ZGlyZWN0b3J5KHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS5kaXJuYW1lKG5ld19iYXNlbGluZSkpCiAg
ICAgICAgICAgICBzZWxmLl90b29sLmZpbGVzeXN0ZW0uY29weWZpbGUob2xkX2Jhc2VsaW5lLCBu
ZXdfYmFzZWxpbmUpCkBAIC0xMDMsMTUgKzExNywxNSBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdChB
YnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgZGVmIF9maWxlX25hbWVfZm9yX2V4cGVj
dGVkX3Jlc3VsdChzZWxmLCB0ZXN0X25hbWUsIHN1ZmZpeCk6CiAgICAgICAgIHJldHVybiAiJXMt
ZXhwZWN0ZWQuJXMiICUgKHNlbGYuX3Rlc3Rfcm9vdCh0ZXN0X25hbWUpLCBzdWZmaXgpCiAKLSAg
ICBkZWYgX3JlYmFzZWxpbmVfdGVzdChzZWxmLCBidWlsZGVyX25hbWUsIHRlc3RfbmFtZSwgcGxh
dGZvcm1fdG9fbW92ZV9leGlzdGluZ19iYXNlbGluZXNfdG8sIHN1ZmZpeCk6CisgICAgZGVmIF9y
ZWJhc2VsaW5lX3Rlc3Qoc2VsZiwgYnVpbGRlcl9uYW1lLCB0ZXN0X25hbWUsIHBsYXRmb3Jtc190
b19tb3ZlX2V4aXN0aW5nX2Jhc2VsaW5lc190bywgc3VmZml4KToKICAgICAgICAgcmVzdWx0c191
cmwgPSBzZWxmLl9yZXN1bHRzX3VybChidWlsZGVyX25hbWUpCiAgICAgICAgIGJhc2VsaW5lX2Rp
cmVjdG9yeSA9IHNlbGYuX2Jhc2VsaW5lX2RpcmVjdG9yeShidWlsZGVyX25hbWUpCiAKICAgICAg
ICAgc291cmNlX2Jhc2VsaW5lID0gIiVzLyVzIiAlIChyZXN1bHRzX3VybCwgc2VsZi5fZmlsZV9u
YW1lX2Zvcl9hY3R1YWxfcmVzdWx0KHRlc3RfbmFtZSwgc3VmZml4KSkKICAgICAgICAgdGFyZ2V0
X2Jhc2VsaW5lID0gc2VsZi5fdG9vbC5maWxlc3lzdGVtLmpvaW4oYmFzZWxpbmVfZGlyZWN0b3J5
LCBzZWxmLl9maWxlX25hbWVfZm9yX2V4cGVjdGVkX3Jlc3VsdCh0ZXN0X25hbWUsIHN1ZmZpeCkp
CiAKLSAgICAgICAgaWYgcGxhdGZvcm1fdG9fbW92ZV9leGlzdGluZ19iYXNlbGluZXNfdG86Ci0g
ICAgICAgICAgICBzZWxmLl9jb3B5X2V4aXN0aW5nX2Jhc2VsaW5lKHBsYXRmb3JtX3RvX21vdmVf
ZXhpc3RpbmdfYmFzZWxpbmVzX3RvLCB0ZXN0X25hbWUsIHN1ZmZpeCkKKyAgICAgICAgaWYgcGxh
dGZvcm1zX3RvX21vdmVfZXhpc3RpbmdfYmFzZWxpbmVzX3RvOgorICAgICAgICAgICAgc2VsZi5f
Y29weV9leGlzdGluZ19iYXNlbGluZShwbGF0Zm9ybXNfdG9fbW92ZV9leGlzdGluZ19iYXNlbGlu
ZXNfdG8sIHRlc3RfbmFtZSwgc3VmZml4KQogCiAgICAgICAgIHByaW50ICJSZXRyaWV2aW5nICVz
LiIgJSBzb3VyY2VfYmFzZWxpbmUKICAgICAgICAgc2VsZi5fc2F2ZV9iYXNlbGluZShzZWxmLl90
b29sLndlYi5nZXRfYmluYXJ5KHNvdXJjZV9iYXNlbGluZSwgY29udmVydF80MDRfdG9fTm9uZT1U
cnVlKSwgdGFyZ2V0X2Jhc2VsaW5lKQpAQCAtMTE5LDExICsxMzMsMTAgQEAgY2xhc3MgUmViYXNl
bGluZVRlc3QoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgIGRlZiBleGVjdXRlKHNl
bGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICBmb3Igc3VmZml4IGluIF9iYXNlbGlu
ZV9zdWZmaXhfbGlzdDoKICAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDI6Ci0gICAgICAgICAg
ICAgICAgcGxhdGZvcm1fdG9fbW92ZV9leGlzdGluZ19iYXNlbGluZXNfdG8gPSBhcmdzWzJdCisg
ICAgICAgICAgICAgICAgcGxhdGZvcm1zX3RvX21vdmVfZXhpc3RpbmdfYmFzZWxpbmVzX3RvID0g
YXJnc1syOl0KICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcGxhdGZvcm1fdG9f
bW92ZV9leGlzdGluZ19iYXNlbGluZXNfdG8gPSBOb25lCi0KLSAgICAgICAgICAgIHNlbGYuX3Jl
YmFzZWxpbmVfdGVzdChhcmdzWzBdLCBhcmdzWzFdLCBwbGF0Zm9ybV90b19tb3ZlX2V4aXN0aW5n
X2Jhc2VsaW5lc190bywgc3VmZml4KQorICAgICAgICAgICAgICAgIHBsYXRmb3Jtc190b19tb3Zl
X2V4aXN0aW5nX2Jhc2VsaW5lc190byA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuX3JlYmFzZWxp
bmVfdGVzdChhcmdzWzBdLCBhcmdzWzFdLCBwbGF0Zm9ybXNfdG9fbW92ZV9leGlzdGluZ19iYXNl
bGluZXNfdG8sIHN1ZmZpeCkKIAogCiBjbGFzcyBPcHRpbWl6ZUJhc2VsaW5lcyhBYnN0cmFjdERl
Y2xhcmF0aXZlQ29tbWFuZCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5CmluZGV4IDM3ZThhMzkxYjU1
ZDEzYjYwMTVkMjIwN2U3ZWIwZDkxYmRmMmM4OWEuLjgxMWM2YzZlMTI1M2FjMzg3ZTY5NWM0ODNh
M2EzZjc5MWJlZDIxMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5CkBAIC01OSw3ICs1OSw3IEBA
IGNsYXNzIFRlc3RSZWJhc2VsaW5lKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZXhwZWN0
ZWRfc3Rkb3V0ID0gIiIiQ29weWluZyBiYXNlbGluZSBmcm9tIC9tb2NrLWNoZWNrb3V0L0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQgdG8gL21vY2stY2hl
Y2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkL3VzZXJz
Y3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQuCiBSZXRyaWV2aW5nIGh0dHA6Ly9leGFt
cGxlLmNvbS9mL2J1aWxkZXJzL1dlYmtpdCBNYWMxMC43L3Jlc3VsdHMvbGF5b3V0LXRlc3QtcmVz
dWx0cy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFsLnR4dC4KICIiIgotICAgICAgICBP
dXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgY29tbWFuZC5fcmViYXNlbGluZV90
ZXN0LCBbIldlYmtpdCBNYWMxMC43IiwgInVzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIiwg
ImNocm9taXVtLW1hYy1zbm93bGVvcGFyZCIsICJ0eHQiXSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVj
dGVkX3N0ZG91dCkKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IGNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdCwgWyJXZWJraXQgTWFjMTAuNyIsICJ1c2Vyc2NyaXB0
cy9hbm90aGVyLXRlc3QuaHRtbCIsIFsiY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkIl0sICJ0eHQi
XSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKIAogICAgIGRlZiB0ZXN0X3JlYmFz
ZWxpbmVfYW5kX2NvcHlfdGVzdF9ub19leGlzdGluZ19yZXN1bHQoc2VsZik6CiAgICAgICAgIGNv
bW1hbmQgPSBSZWJhc2VsaW5lVGVzdCgpCkBAIC02OSw3ICs2OSw3IEBAIFJldHJpZXZpbmcgaHR0
cDovL2V4YW1wbGUuY29tL2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlvdXQt
dGVzdC1yZXN1CiAgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICIiIk5vIGV4aXN0aW5nIGJhc2Vs
aW5lIGZvciB1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbC4KIFJldHJpZXZpbmcgaHR0cDov
L2V4YW1wbGUuY29tL2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlvdXQtdGVz
dC1yZXN1bHRzL3VzZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0LgogIiIiCi0gICAg
ICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBjb21tYW5kLl9yZWJhc2Vs
aW5lX3Rlc3QsIFsiV2Via2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0
bWwiLCAiY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkIiwgInR4dCJdLCBleHBlY3RlZF9zdGRvdXQ9
ZXhwZWN0ZWRfc3Rkb3V0KQorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgY29tbWFuZC5fcmViYXNlbGluZV90ZXN0LCBbIldlYmtpdCBNYWMxMC43IiwgInVzZXJz
Y3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIiwgWyJjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQiXSwg
InR4dCJdLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQogCiAgICAgZGVmIHRlc3Rf
cmViYXNlbGluZV9hbmRfY29weV90ZXN0X3dpdGhfbGlvbl9yZXN1bHQoc2VsZik6CiAgICAgICAg
IGNvbW1hbmQgPSBSZWJhc2VsaW5lVGVzdCgpCkBAIC04Miw3ICs4Miw3IEBAIFJldHJpZXZpbmcg
aHR0cDovL2V4YW1wbGUuY29tL2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlv
dXQtdGVzdC1yZXN1CiAgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICIiIkNvcHlpbmcgYmFzZWxp
bmUgZnJvbSAvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMv
dXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dCB0byAvbW9jay1jaGVja291dC9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQvdXNlcnNjcmlwdHMv
YW5vdGhlci10ZXN0LWV4cGVjdGVkLnR4dC4KIFJldHJpZXZpbmcgaHR0cDovL2V4YW1wbGUuY29t
L2YvYnVpbGRlcnMvV2Via2l0IE1hYzEwLjcvcmVzdWx0cy9sYXlvdXQtdGVzdC1yZXN1bHRzL3Vz
ZXJzY3JpcHRzL2Fub3RoZXItdGVzdC1hY3R1YWwudHh0LgogIiIiCi0gICAgICAgIE91dHB1dENh
cHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBjb21tYW5kLl9yZWJhc2VsaW5lX3Rlc3QsIFsi
V2Via2l0IE1hYzEwLjciLCAidXNlcnNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwiLCAiY2hyb21p
dW0tbWFjLXNub3dsZW9wYXJkIiwgInR4dCJdLCBleHBlY3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rk
b3V0KQorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgY29tbWFu
ZC5fcmViYXNlbGluZV90ZXN0LCBbIldlYmtpdCBNYWMxMC43IiwgInVzZXJzY3JpcHRzL2Fub3Ro
ZXItdGVzdC5odG1sIiwgWyJjaHJvbWl1bS1tYWMtc25vd2xlb3BhcmQiXSwgInR4dCJdLCBleHBl
Y3RlZF9zdGRvdXQ9ZXhwZWN0ZWRfc3Rkb3V0KQogCiAgICAgZGVmIHRlc3RfcmViYXNlbGluZV9h
bmRfY29weV9ub19vdmVyd3JpdGVfdGVzdChzZWxmKToKICAgICAgICAgY29tbWFuZCA9IFJlYmFz
ZWxpbmVUZXN0KCkKQEAgLTk4LDcgKzk4LDcgQEAgUmV0cmlldmluZyBodHRwOi8vZXhhbXBsZS5j
b20vZi9idWlsZGVycy9XZWJraXQgTWFjMTAuNy9yZXN1bHRzL2xheW91dC10ZXN0LXJlc3UKICAg
ICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIiIiRXhpc3RpbmcgYmFzZWxpbmUgYXQgL21vY2stY2hl
Y2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkL3VzZXJz
Y3JpcHRzL2Fub3RoZXItdGVzdC1leHBlY3RlZC50eHQsIG5vdCBjb3B5aW5nIG92ZXIgaXQuCiBS
ZXRyaWV2aW5nIGh0dHA6Ly9leGFtcGxlLmNvbS9mL2J1aWxkZXJzL1dlYmtpdCBNYWMxMC43L3Jl
c3VsdHMvbGF5b3V0LXRlc3QtcmVzdWx0cy91c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QtYWN0dWFs
LnR4dC4KICIiIgotICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwg
Y29tbWFuZC5fcmViYXNlbGluZV90ZXN0LCBbIldlYmtpdCBNYWMxMC43IiwgInVzZXJzY3JpcHRz
L2Fub3RoZXItdGVzdC5odG1sIiwgImNocm9taXVtLW1hYy1zbm93bGVvcGFyZCIsICJ0eHQiXSwg
ZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgp
LmFzc2VydF9vdXRwdXRzKHNlbGYsIGNvbW1hbmQuX3JlYmFzZWxpbmVfdGVzdCwgWyJXZWJraXQg
TWFjMTAuNyIsICJ1c2Vyc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIFsiY2hyb21pdW0tbWFj
LXNub3dsZW9wYXJkIl0sICJ0eHQiXSwgZXhwZWN0ZWRfc3Rkb3V0PWV4cGVjdGVkX3N0ZG91dCkK
IAogICAgIGRlZiB0ZXN0X3JlYmFzZWxpbmVfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICBj
b21tYW5kID0gUmViYXNlbGluZUV4cGVjdGF0aW9ucygpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXIucHkKaW5kZXggMTdlNTQz
NzgwZmI5NWQ1ODIxNmViNzliODE4NTY0MTVjOTg1MThkZC4uM2QwOWI1Zjc2OTdiOTYzMzdmNTVl
MDcxYmIyNTJlZDBkYWJkYjFiYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlci5weQpAQCAtMTQyLDkgKzE0Miw3IEBAIGNs
YXNzIEdhcmRlbmluZ0hUVFBSZXF1ZXN0SGFuZGxlcihSZWZsZWN0aW9uSGFuZGxlcik6CiAgICAg
ICAgICAgICBidWlsZGVyLAogICAgICAgICAgICAgc2VsZi5xdWVyeVsndGVzdCddWzBdLAogICAg
ICAgICBdCi0gICAgICAgIGZhbGxiYWNrX3BvcnQgPSBidWlsZGVycy5mYWxsYmFja19wb3J0X25h
bWVfZm9yX25ld19wb3J0KGJ1aWxkZXIpCi0gICAgICAgIGlmIGZhbGxiYWNrX3BvcnQ6Ci0gICAg
ICAgICAgICBjb21tYW5kLmFwcGVuZChmYWxsYmFja19wb3J0KQorICAgICAgICBjb21tYW5kLmV4
dGVuZChidWlsZGVycy5mYWxsYmFja19wb3J0X25hbWVzX2Zvcl9uZXdfcG9ydChidWlsZGVyKSkK
ICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF9wYXRjaChjb21tYW5kKQogICAgICAgICBzZWxmLl9z
ZXJ2ZV90ZXh0KCdzdWNjZXNzJykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3NlcnZlcnMvZ2FyZGVuaW5nc2VydmVyX3VuaXR0ZXN0LnB5CmluZGV4
IGY0MWEzOGE3OGQyYzkyN2EzNDgwZWJmOWRlNjhlZmZjMzY1ZWMwNGIuLmEwN2IwMzlkMzkzNWZh
YjQxOTJiNDE5ZjU5Y2UwZjdhY2E5OTY0NzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zZXJ2ZXJzL2dhcmRlbmluZ3NlcnZlcl91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9nYXJkZW5pbmdzZXJ2ZXJfdW5pdHRlc3Qu
cHkKQEAgLTE4OSw4ICsxODksOCBAQCBjbGFzcyBHYXJkZW5pbmdTZXJ2ZXJUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5fcG9zdF90b19wYXRoKCIvcmViYXNlbGluZT9idWls
ZGVyPU1PQ0srYnVpbGRlciZ0ZXN0PXVzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCIsIGV4
cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9z
dGRvdXQpCiAKICAgICBkZWYgdGVzdF9yZWJhc2VsaW5lX25ld19wb3J0KHNlbGYpOgotICAgICAg
ICBidWlsZGVycy5fZXhhY3RfbWF0Y2hlcyA9IHsiTU9DSyBidWlsZGVyIjogeyJwb3J0X25hbWUi
OiAibW9jay1wb3J0LW5hbWUiLCAic3BlY2lmaWVycyI6IHNldChbIm1vY2stc3BlY2lmaWVyIl0p
LCAibW92ZV9vdmVyd3JpdHRlbl9iYXNlbGluZXNfdG8iOiAibW9jay1wb3J0LWZhbGxiYWNrIn19
Ci0gICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5kOiBbJ2VjaG8nLCAn
cmViYXNlbGluZS10ZXN0JywgJ01PQ0sgYnVpbGRlcicsICd1c2VyLXNjcmlwdHMvYW5vdGhlci10
ZXN0Lmh0bWwnLCAnbW9jay1wb3J0LWZhbGxiYWNrJ10sIGN3ZD0vbW9jay1jaGVja291dFxuIgor
ICAgICAgICBidWlsZGVycy5fZXhhY3RfbWF0Y2hlcyA9IHsiTU9DSyBidWlsZGVyIjogeyJwb3J0
X25hbWUiOiAibW9jay1wb3J0LW5hbWUiLCAic3BlY2lmaWVycyI6IHNldChbIm1vY2stc3BlY2lm
aWVyIl0pLCAibW92ZV9vdmVyd3JpdHRlbl9iYXNlbGluZXNfdG8iOiBbIm1vY2stcG9ydC1mYWxs
YmFjayIsICJtb2NrLXBvcnQtZmFsbGJhY2syIl19fQorICAgICAgICBleHBlY3RlZF9zdGRlcnIg
PSAiTU9DSyBydW5fY29tbWFuZDogWydlY2hvJywgJ3JlYmFzZWxpbmUtdGVzdCcsICdNT0NLIGJ1
aWxkZXInLCAndXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sJywgJ21vY2stcG9ydC1mYWxs
YmFjaycsICdtb2NrLXBvcnQtZmFsbGJhY2syJ10sIGN3ZD0vbW9jay1jaGVja291dFxuIgogICAg
ICAgICBleHBlY3RlZF9zdGRvdXQgPSAiPT0gQmVnaW4gUmVzcG9uc2UgPT1cbnN1Y2Nlc3Ncbj09
IEVuZCBSZXNwb25zZSA9PVxuIgogICAgICAgICBzZWxmLl9wb3N0X3RvX3BhdGgoIi9yZWJhc2Vs
aW5lP2J1aWxkZXI9TU9DSytidWlsZGVyJnRlc3Q9dXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5o
dG1sIiwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfc3Rkb3V0PWV4
cGVjdGVkX3N0ZG91dCkKIAo=
</data>
<flag name="review"
          id="134841"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>