<?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>78373</bug_id>
          
          <creation_ts>2012-02-10 12:46:19 -0800</creation_ts>
          <short_desc>REGRESSION: Perf-o-matic adds duplicated test results</short_desc>
          <delta_ts>2012-02-12 21:45:13 -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>WebKit Website</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>554311</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-10 12:46:19 -0800</bug_when>
    <thetext>After r107386, perf-o-matic adds test results via task queue. However, this results in duplicated test results because Build object is no longer acting as the gate keeper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554318</commentid>
    <comment_count>1</comment_count>
      <attachid>126563</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-10 12:54:59 -0800</bug_when>
    <thetext>Created attachment 126563
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554422</commentid>
    <comment_count>2</comment_count>
      <attachid>126590</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-10 15:04:20 -0800</bug_when>
    <thetext>Created attachment 126590
Added the code to merge existing duplicates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554992</commentid>
    <comment_count>3</comment_count>
      <attachid>126710</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-12 21:13:36 -0800</bug_when>
    <thetext>Created attachment 126710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555002</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-12 21:45:13 -0800</bug_when>
    <thetext>Committed r107531: &lt;http://trac.webkit.org/changeset/107531&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126563</attachid>
            <date>2012-02-10 12:54:59 -0800</date>
            <delta_ts>2012-02-10 15:04:16 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-78373-20120210125458.patch</filename>
            <type>text/plain</type>
            <size>5205</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzQy
OSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAy
LTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJ
T046IFBlcmYtby1tYXRpYyBhZGRzIGR1cGxpY2F0ZWQgdGVzdCByZXN1bHRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM3MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBUZXN0UmVzdWx0IGluc2lk
ZSBhIHRyYW5zYWN0aW9uLiBXZSB1c2UgaGlnaCByZXBsaWNhdGlvbiBkYXRhYnNhZSBidXQgdGhp
cyBzaG91bGQgcHJldmVudAorICAgICAgICB0aGUgZHVwbGljYXRpb24gaW4gdGhlIG1vc3Qgb2Yg
dGhlIHRpbWUuCisKKyAgICAgICAgQWxzbyBmaXhlZCByYW5kb20gYnVncyBpbiBDb250cm9sbGVy
IGFuZCBSZXBvcnRIYW5kbGVyLgorCisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBw
c3BvdC5jb20vY29udHJvbGxlci5weToKKyAgICAgICAgKGdldF9wZXJzaXN0ZW50X2NhY2hlKToK
KyAgICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9yZXBvcnRfaGFuZGxl
ci5weToKKyAgICAgICAgKFJlcG9ydEhhbmRsZXIucG9zdCk6CisgICAgICAgICogV2Vic2l0ZXMv
d2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFuZGxlci5weToKKyAgICAg
ICAgKFJlcG9ydFByb2Nlc3NIYW5kbGVyLnBvc3QpOgorICAgICAgICAoUmVwb3J0UHJvY2Vzc0hh
bmRsZXIuX2FkZF90ZXN0X2lmX25lZWRlZCk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxl
cik6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5fYWRkX3Rlc3RfcmVzdWx0X2lmX25l
ZWRlZCk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5fYWRkX3Rlc3RfcmVzdWx0X2lm
X25lZWRlZC5fZmxvYXRfb3Jfbm9uZSk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5f
YWRkX3Rlc3RfcmVzdWx0X2lmX25lZWRlZC5leGVjdXRlKToKKwogMjAxMi0wMi0xMCAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBQZXJmLW8tbWF0aWMgYnVpbGQg
Zml4IGFmdGVyIHIxMDczODYuCkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNv
bS9jb250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNw
b3QuY29tL2NvbnRyb2xsZXIucHkJKHJldmlzaW9uIDEwNzM5MykKKysrIFdlYnNpdGVzL3dlYmtp
dC1wZXJmLmFwcHNwb3QuY29tL2NvbnRyb2xsZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcg
KzU1LDcgQEAgZGVmIGdldF9wZXJzaXN0ZW50X2NhY2hlKG5hbWUpOgogICAgIGlmIHZhbHVlOgog
ICAgICAgICByZXR1cm4gdmFsdWUKICAgICBjYWNoZSA9IFBlcnNpc3RlbnRDYWNoZS5nZXRfYnlf
a2V5X25hbWUobmFtZSkKLSAgICBtZW1jYWNoZS5zZXQobmFtZSwgY2FjaGUpCisgICAgbWVtY2Fj
aGUuc2V0KG5hbWUsIGNhY2hlLnZhbHVlKQogICAgIHJldHVybiBjYWNoZS52YWx1ZQogCiAKSW5k
ZXg6IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9oYW5kbGVyLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9oYW5k
bGVyLnB5CShyZXZpc2lvbiAxMDczODYpCisrKyBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90
LmNvbS9yZXBvcnRfaGFuZGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBj
bGFzcyBSZXBvcnRIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsCiAgICAgICAgIGhlYWRlcnMg
PSAiXG4iLmpvaW4oW2tleSArICc6ICcgKyB2YWx1ZSBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLnJl
cXVlc3QuaGVhZGVycy5pdGVtcygpXSkKIAogICAgICAgICAjIERvIGFzIGJlc3QgYXMgd2UgY2Fu
IHRvIHJlbW92ZSB0aGUgcGFzc3dvcmQKLSAgICAgICAgcmVxdWVzdF9ib2R5X3dpdGhvdXRfcGFz
c3dvcmQgPSByZS5zdWIocicicGFzc3dvcmQiXHMqOlxzKiIuKz8iLCcsICcnLCBzZWxmLnJlcXVl
c3QuYm9keSkKKyAgICAgICAgcmVxdWVzdF9ib2R5X3dpdGhvdXRfcGFzc3dvcmQgPSByZS5zdWIo
cicicGFzc3dvcmQiXHMqOlxzKiIuKz8iLD8nLCAnJywgc2VsZi5yZXF1ZXN0LmJvZHkpCiAgICAg
ICAgIGxvZyA9IFJlcG9ydExvZyh0aW1lc3RhbXA9ZGF0ZXRpbWUubm93KCksIGhlYWRlcnM9aGVh
ZGVycywgcGF5bG9hZD1yZXF1ZXN0X2JvZHlfd2l0aG91dF9wYXNzd29yZCkKICAgICAgICAgbG9n
LnB1dCgpCiAKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9w
cm9jZXNzX2hhbmRsZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBw
c3BvdC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFuZGxlci5weQkocmV2aXNpb24gMTA3Mzg2KQorKysg
V2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFuZGxlci5w
eQkod29ya2luZyBjb3B5KQpAQCAtNTMsMjQgKzUzLDE0IEBAIGNsYXNzIFJlcG9ydFByb2Nlc3NI
YW5kbGVyKHdlYmFwcDIuUmVxdWUKICAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRl
KCJOb3QgcHJvY2Vzc2VkIikKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGRlZiBfZmxv
YXRfb3Jfbm9uZShkaWN0aW9uYXJ5LCBrZXkpOgotICAgICAgICAgICAgdmFsdWUgPSBkaWN0aW9u
YXJ5LmdldChrZXkpCi0gICAgICAgICAgICBpZiB2YWx1ZToKLSAgICAgICAgICAgICAgICByZXR1
cm4gZmxvYXQodmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotCiAgICAgICAgIGJyYW5j
aCA9IGxvZy5icmFuY2goKQogICAgICAgICBwbGF0Zm9ybSA9IGxvZy5wbGF0Zm9ybSgpCiAgICAg
ICAgIGJ1aWxkID0gc2VsZi5fY3JlYXRlX2J1aWxkX2lmX3Bvc3NpYmxlKGxvZywgYnJhbmNoLCBw
bGF0Zm9ybSkKIAogICAgICAgICBmb3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gbG9nLnJlc3VsdHMo
KS5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIHRlc3QgPSBzZWxmLl9hZGRfdGVzdF9pZl9uZWVk
ZWQodGVzdF9uYW1lLCBicmFuY2gsIHBsYXRmb3JtKQorICAgICAgICAgICAgc2VsZi5fYWRkX3Rl
c3RfcmVzdWx0X2lmX25lZWRlZCh0ZXN0X25hbWUsIGJ1aWxkLCByZXN1bHQpCiAgICAgICAgICAg
ICBzY2hlZHVsZV9ydW5zX3VwZGF0ZSh0ZXN0LmlkLCBicmFuY2guaWQsIHBsYXRmb3JtLmlkKQot
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIGRpY3QpOgotICAgICAgICAgICAgICAg
IFRlc3RSZXN1bHQobmFtZT10ZXN0X25hbWUsIGJ1aWxkPWJ1aWxkLCB2YWx1ZT1mbG9hdChyZXN1
bHRbJ2F2ZyddKSwgdmFsdWVNZWRpYW49X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnbWVkaWFuJyks
Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlU3RkZXY9X2Zsb2F0X29yX25vbmUocmVzdWx0LCAn
c3RkZXYnKSwgdmFsdWVNaW49X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnbWluJyksIHZhbHVlTWF4
PV9mbG9hdF9vcl9ub25lKHJlc3VsdCwgJ21heCcpKS5wdXQoKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBUZXN0UmVzdWx0KG5hbWU9dGVzdF9uYW1lLCBidWlsZD1idWlsZCwg
dmFsdWU9ZmxvYXQocmVzdWx0KSkucHV0KCkKIAogICAgICAgICBsb2cgPSBSZXBvcnRMb2cuZ2V0
KGxvZy5rZXkoKSkKICAgICAgICAgbG9nLmRlbGV0ZSgpCkBAIC0xMTAsMyArMTAwLDIyIEBAIGNs
YXNzIFJlcG9ydFByb2Nlc3NIYW5kbGVyKHdlYmFwcDIuUmVxdWUKICAgICAgICAgICAgIHRlc3Qu
cHV0KCkKICAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZQogICAgICAgICByZXR1cm4gY3Jl
YXRlX2luX3RyYW5zYWN0aW9uX3dpdGhfbnVtZXJpY19pZF9ob2xkZXIoZXhlY3V0ZSkgb3IgVGVz
dC5nZXRfYnlfa2V5X25hbWUodGVzdF9uYW1lKQorCisgICAgZGVmIF9hZGRfdGVzdF9yZXN1bHRf
aWZfbmVlZGVkKHNlbGYsIHRlc3RfbmFtZSwgYnVpbGQsIHJlc3VsdCk6CisgICAgICAgIGtleV9u
YW1lID0gYnVpbGQua2V5KCkubmFtZSgpICsgJzonICsgdGVzdF9uYW1lCisKKyAgICAgICAgZGVm
IF9mbG9hdF9vcl9ub25lKGRpY3Rpb25hcnksIGtleSk6CisgICAgICAgICAgICB2YWx1ZSA9IGRp
Y3Rpb25hcnkuZ2V0KGtleSkKKyAgICAgICAgICAgIGlmIHZhbHVlOgorICAgICAgICAgICAgICAg
IHJldHVybiBmbG9hdCh2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAg
ZGVmIGV4ZWN1dGUoKToKKyAgICAgICAgICAgIGVudGl0eSA9IFRlc3RSZXN1bHQuZ2V0X2J5X2tl
eV9uYW1lKGtleV9uYW1lKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIGRpY3Qp
OgorICAgICAgICAgICAgICAgIFRlc3RSZXN1bHQoa2V5X25hbWU9a2V5X25hbWUsIG5hbWU9dGVz
dF9uYW1lLCBidWlsZD1idWlsZCwgdmFsdWU9ZmxvYXQocmVzdWx0WydhdmcnXSksIHZhbHVlTWVk
aWFuPV9mbG9hdF9vcl9ub25lKHJlc3VsdCwgJ21lZGlhbicpLAorICAgICAgICAgICAgICAgICAg
ICB2YWx1ZVN0ZGV2PV9mbG9hdF9vcl9ub25lKHJlc3VsdCwgJ3N0ZGV2JyksIHZhbHVlTWluPV9m
bG9hdF9vcl9ub25lKHJlc3VsdCwgJ21pbicpLCB2YWx1ZU1heD1fZmxvYXRfb3Jfbm9uZShyZXN1
bHQsICdtYXgnKSkucHV0KCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgVGVz
dFJlc3VsdChrZXlfbmFtZT1rZXlfbmFtZSwgbmFtZT10ZXN0X25hbWUsIGJ1aWxkPWJ1aWxkLCB2
YWx1ZT1mbG9hdChyZXN1bHQpKS5wdXQoKQorCisgICAgICAgIHJldHVybiBkYi5ydW5faW5fdHJh
bnNhY3Rpb24oZXhlY3V0ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126590</attachid>
            <date>2012-02-10 15:04:20 -0800</date>
            <delta_ts>2012-02-12 21:13:32 -0800</delta_ts>
            <desc>Added the code to merge existing duplicates</desc>
            <filename>bug-78373-20120210150419.patch</filename>
            <type>text/plain</type>
            <size>10504</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzQy
OSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAy
LTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJ
T046IFBlcmYtby1tYXRpYyBhZGRzIGR1cGxpY2F0ZWQgdGVzdCByZXN1bHRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM3MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBUZXN0UmVzdWx0IGluc2lk
ZSBhIHRyYW5zYWN0aW9uLiBXZSB1c2UgaGlnaCByZXBsaWNhdGlvbiBkYXRhYnNhZSBidXQgdGhp
cyBzaG91bGQgcHJldmVudAorICAgICAgICB0aGUgZHVwbGljYXRpb24gaW4gdGhlIG1vc3Qgb2Yg
dGhlIHRpbWUuCisKKyAgICAgICAgQWxzbyBmaXhlZCByYW5kb20gYnVncyBpbiBDb250cm9sbGVy
IGFuZCBSZXBvcnRIYW5kbGVyLgorCisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBw
c3BvdC5jb20vY29udHJvbGxlci5weToKKyAgICAgICAgKGdldF9wZXJzaXN0ZW50X2NhY2hlKToK
KyAgICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9yZXBvcnRfaGFuZGxl
ci5weToKKyAgICAgICAgKFJlcG9ydEhhbmRsZXIucG9zdCk6CisgICAgICAgICogV2Vic2l0ZXMv
d2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFuZGxlci5weToKKyAgICAg
ICAgKFJlcG9ydFByb2Nlc3NIYW5kbGVyLnBvc3QpOgorICAgICAgICAoUmVwb3J0UHJvY2Vzc0hh
bmRsZXIuX2FkZF90ZXN0X2lmX25lZWRlZCk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxl
cik6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5fYWRkX3Rlc3RfcmVzdWx0X2lmX25l
ZWRlZCk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5fYWRkX3Rlc3RfcmVzdWx0X2lm
X25lZWRlZC5fZmxvYXRfb3Jfbm9uZSk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5f
YWRkX3Rlc3RfcmVzdWx0X2lmX25lZWRlZC5leGVjdXRlKToKKwogMjAxMi0wMi0xMCAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBQZXJmLW8tbWF0aWMgYnVpbGQg
Zml4IGFmdGVyIHIxMDczODYuCkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNv
bS9hcHAueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNv
bS9hcHAueWFtbAkocmV2aXNpb24gMTA3MzkzKQorKysgV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBw
c3BvdC5jb20vYXBwLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiBhcHBsaWNh
dGlvbjogd2Via2l0LXBlcmYKIHZlcnNpb246IDEzCi1ydW50aW1lOiBweXRob24yNworcnVudGlt
ZTogcHl0aG9uCiBhcGlfdmVyc2lvbjogMQogdGhyZWFkc2FmZTogZmFsc2UKIApJbmRleDogV2Vi
c2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vY29udHJvbGxlci5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9jb250cm9sbGVyLnB5CShyZXZpc2lv
biAxMDczOTMpCisrKyBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9jb250cm9sbGVy
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIGRlZiBnZXRfcGVyc2lzdGVudF9j
YWNoZShuYW1lKToKICAgICBpZiB2YWx1ZToKICAgICAgICAgcmV0dXJuIHZhbHVlCiAgICAgY2Fj
aGUgPSBQZXJzaXN0ZW50Q2FjaGUuZ2V0X2J5X2tleV9uYW1lKG5hbWUpCi0gICAgbWVtY2FjaGUu
c2V0KG5hbWUsIGNhY2hlKQorICAgIG1lbWNhY2hlLnNldChuYW1lLCBjYWNoZS52YWx1ZSkKICAg
ICByZXR1cm4gY2FjaGUudmFsdWUKIAogCkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBz
cG90LmNvbS9tb2RlbHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBw
c3BvdC5jb20vbW9kZWxzLnB5CShyZXZpc2lvbiAxMDczODYpCisrKyBXZWJzaXRlcy93ZWJraXQt
cGVyZi5hcHBzcG90LmNvbS9tb2RlbHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTExNyw2ICsxMTcs
MTAgQEAgY2xhc3MgVGVzdFJlc3VsdChkYi5Nb2RlbCk6CiAgICAgdmFsdWVNaW4gPSBkYi5GbG9h
dFByb3BlcnR5KCkKICAgICB2YWx1ZU1heCA9IGRiLkZsb2F0UHJvcGVydHkoKQogCisgICAgQHN0
YXRpY21ldGhvZAorICAgIGRlZiBrZXlfbmFtZShidWlsZCwgdGVzdF9uYW1lKToKKyAgICAgICAg
cmV0dXJuIGJ1aWxkLmtleSgpLm5hbWUoKSArICc6JyArIHRlc3RfbmFtZQorCiAKICMgVGVtcG9y
YXJpbHkgc3RvcmUgbG9nIHJlcG9ydHMgc2VudCBieSBib3RzCiBjbGFzcyBSZXBvcnRMb2coZGIu
TW9kZWwpOgpJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0X2hh
bmRsZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20v
cmVwb3J0X2hhbmRsZXIucHkJKHJldmlzaW9uIDEwNzM4NikKKysrIFdlYnNpdGVzL3dlYmtpdC1w
ZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9oYW5kbGVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00NSw3
ICs0NSw3IEBAIGNsYXNzIFJlcG9ydEhhbmRsZXIod2ViYXBwMi5SZXF1ZXN0SGFuZGwKICAgICAg
ICAgaGVhZGVycyA9ICJcbiIuam9pbihba2V5ICsgJzogJyArIHZhbHVlIGZvciBrZXksIHZhbHVl
IGluIHNlbGYucmVxdWVzdC5oZWFkZXJzLml0ZW1zKCldKQogCiAgICAgICAgICMgRG8gYXMgYmVz
dCBhcyB3ZSBjYW4gdG8gcmVtb3ZlIHRoZSBwYXNzd29yZAotICAgICAgICByZXF1ZXN0X2JvZHlf
d2l0aG91dF9wYXNzd29yZCA9IHJlLnN1YihyJyJwYXNzd29yZCJccyo6XHMqIi4rPyIsJywgJycs
IHNlbGYucmVxdWVzdC5ib2R5KQorICAgICAgICByZXF1ZXN0X2JvZHlfd2l0aG91dF9wYXNzd29y
ZCA9IHJlLnN1YihyJyJwYXNzd29yZCJccyo6XHMqIi4rPyIsPycsICcnLCBzZWxmLnJlcXVlc3Qu
Ym9keSkKICAgICAgICAgbG9nID0gUmVwb3J0TG9nKHRpbWVzdGFtcD1kYXRldGltZS5ub3coKSwg
aGVhZGVycz1oZWFkZXJzLCBwYXlsb2FkPXJlcXVlc3RfYm9keV93aXRob3V0X3Bhc3N3b3JkKQog
ICAgICAgICBsb2cucHV0KCkKIApJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5j
b20vcmVwb3J0X2xvZ3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQtcGVyZi5h
cHBzcG90LmNvbS9yZXBvcnRfbG9ncy5odG1sCShyZXZpc2lvbiAxMDczODYpCisrKyBXZWJzaXRl
cy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9yZXBvcnRfbG9ncy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiwxMSArMzIsNiBAQCBmdW5jdGlvbiBzaG93KGlkKSB7CiAgICAgfSBjYXRjaCAoZSkg
eyB9CiB9CiAKLWZ1bmN0aW9uIHN1Ym1pdChmb3JtLCBldmVudCkgewotICAgIGlmICghY29uZmly
bSgnQXJlIHlvdSBzdXJlPycpKQotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotfQot
CiA8L3NjcmlwdD4KIDx0YWJsZT4KIDx0aGVhZD4KQEAgLTYyLDcgKzU3LDcgQEAgZnVuY3Rpb24g
c3VibWl0KGZvcm0sIGV2ZW50KSB7CiAgICAgPHRkPjxhIGhyZWY9Imh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0L3t7IGxvZy53ZWJraXRfcmV2aXNpb24gfX0iPnt7IGxvZy53ZWJraXRf
cmV2aXNpb24gfX08L2E+PC90ZD4KICAgICA8dGQ+PGEgaHJlZj0iaHR0cDovL3NyYy5jaHJvbWl1
bS5vcmcvdmlld3ZjL2Nocm9tZT92aWV3PXJldiZhbXA7cmV2aXNpb249e3sgbG9nLmNocm9taXVt
X3JldmlzaW9uIH19Ij57eyBsb2cuY2hyb21pdW1fcmV2aXNpb24gfX08L2E+PC90ZD4KICAgICA8
dGQgY2xhc3M9ImNvbnRyb2wiPjxidXR0b24gb25jbGljaz0ic2hvdyh7eyBsb2cua2V5LmlkIH19
KSI+U2hvdzwvYnV0dG9uPgotICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2Fk
bWluL3JlcG9ydC1sb2dzIiBvbnN1Ym1pdD0ic3VibWl0KHRoaXMsIGV2ZW50KSI+CisgICAgICAg
IDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvYWRtaW4vcmVwb3J0LWxvZ3MiIG9uc3VibWl0
PSJjb25maXJtKCdBcmUgeW91IHN1cmU/JykgPyAxIDogZXZlbnQucHJldmVudERlZmF1bHQoKSI+
CiAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlkIiB2YWx1ZT0ie3sgbG9nLmtl
eS5pZCB9fSI+CiAgICAgICAgIDxidXR0b24gbmFtZT0iY29tbWl0IiB2YWx1ZT0idHJ1ZSI+Q29t
bWl0PC9idXR0b24+CiAgICAgICAgIDxidXR0b24gbmFtZT0iZGVsZXRlIiB2YWx1ZT0idHJ1ZSI+
RGVsZXRlPC9idXR0b24+PC9mb3JtPgpAQCAtNzEsNiArNjYsOCBAQCBmdW5jdGlvbiBzdWJtaXQo
Zm9ybSwgZXZlbnQpIHsKIHslIGVuZGZvciAlfQogPC90Ym9keT4KIDwvdGFibGU+Ci0KKzxmb3Jt
IG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvYWRtaW4vcmVwb3J0LWxvZ3MiPgorPGJ1dHRvbiBuYW1l
PSJtZXJnZV90ZXN0X3Jlc3VsdHMiIHZhbHVlPSJ0cnVlIj5NZXJnZSB0ZXN0IHJlc3VsdHM8L2J1
dHRvbj4KKzwvZm9ybT4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1w
ZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9sb2dzX2hhbmRsZXIucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
c2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0X2xvZ3NfaGFuZGxlci5weQkocmV2
aXNpb24gMTA3MzkzKQorKysgV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0
X2xvZ3NfaGFuZGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDE0IEBACiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKIGltcG9ydCB3ZWJhcHAyCitmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0IGlt
cG9ydCBkYgogZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC53ZWJhcHAgaW1wb3J0IHRlbXBsYXRl
CiAKIGltcG9ydCBvcwogCiBmcm9tIGNvbnRyb2xsZXIgaW1wb3J0IHNjaGVkdWxlX3JlcG9ydF9w
cm9jZXNzCiBmcm9tIG1vZGVscyBpbXBvcnQgUmVwb3J0TG9nCitmcm9tIG1vZGVscyBpbXBvcnQg
VGVzdFJlc3VsdAogCiAKIGNsYXNzIFJlcG9ydExvZ3NIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhh
bmRsZXIpOgpAQCAtNDEsNiArNDMsOSBAQCBjbGFzcyBSZXBvcnRMb2dzSGFuZGxlcih3ZWJhcHAy
LlJlcXVlc3RICiAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKHRlbXBsYXRlLnJlbmRl
cigncmVwb3J0X2xvZ3MuaHRtbCcsIHsnbG9ncyc6IFJlcG9ydExvZy5hbGwoKX0pKQogCiAgICAg
ZGVmIHBvc3Qoc2VsZik6CisgICAgICAgIGlmIGJvb2woc2VsZi5yZXF1ZXN0LmdldCgnbWVyZ2Vf
dGVzdF9yZXN1bHRzJywgRmFsc2UpKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9tZXJnZV90
ZXN0X3Jlc3VsdHMoKQorCiAgICAgICAgIGNvbW1pdCA9IGJvb2woc2VsZi5yZXF1ZXN0LmdldCgn
Y29tbWl0JykpCiAgICAgICAgIGRlbGV0ZSA9IGJvb2woc2VsZi5yZXF1ZXN0LmdldCgnZGVsZXRl
JykpCiAgICAgICAgIGlmIGNvbW1pdCA9PSBkZWxldGU6CkBAIC02Myw2ICs2OCw0MiBAQCBjbGFz
cyBSZXBvcnRMb2dzSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RICiAKICAgICAgICAgc2VsZi5yZXNw
b25zZS5vdXQud3JpdGUodGVtcGxhdGUucmVuZGVyKCdyZXBvcnRfbG9ncy5odG1sJywgeydsb2dz
JzogUmVwb3J0TG9nLmFsbCgpLCAnc3RhdHVzJzogJ09LJ30pKQogCisgICAgZGVmIF9tZXJnZV90
ZXN0X3Jlc3VsdHMoc2VsZik6CisKKyAgICAgICAgZGVmIGNvbnZlcnRfaWZfbmVlZGVkKHJlc3Vs
dCwgYnVpbGQpOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCByZXN1bHQua2V5KCkubmFtZSgpCisg
ICAgICAgICAgICBrZXlfbmFtZSA9IFRlc3RSZXN1bHQua2V5X25hbWUoYnVpbGQsIHJlc3VsdC5u
YW1lKQorICAgICAgICAgICAgZHVwbGljYXRlID0gVGVzdFJlc3VsdC5nZXRfYnlfa2V5X25hbWUo
a2V5X25hbWUpCisgICAgICAgICAgICBpZiBub3QgZHVwbGljYXRlOgorICAgICAgICAgICAgICAg
IFRlc3RSZXN1bHQoa2V5X25hbWU9a2V5X25hbWUsIG5hbWU9cmVzdWx0Lm5hbWUsIGJ1aWxkPXJl
c3VsdC5idWlsZCwgdmFsdWU9cmVzdWx0LnZhbHVlLCB2YWx1ZU1lZGlhbj1yZXN1bHQudmFsdWVN
ZWRpYW4sCisgICAgICAgICAgICAgICAgICAgIHZhbHVlU3RkZXY9cmVzdWx0LnZhbHVlU3RkZXYs
IHZhbHVlTWluPXJlc3VsdC52YWx1ZU1pbiwgdmFsdWVNYXg9cmVzdWx0LnZhbHVlTWF4KS5wdXQo
KQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgICAgIGFzc2VydCByZXN1
bHQudmFsdWUgPT0gZHVwbGljYXRlLnZhbHVlCisgICAgICAgICAgICBhc3NlcnQgcmVzdWx0LnZh
bHVlTWVkaWFuID09IGR1cGxpY2F0ZS52YWx1ZU1lZGlhbgorICAgICAgICAgICAgYXNzZXJ0IHJl
c3VsdC52YWx1ZVN0ZGV2ID09IGR1cGxpY2F0ZS52YWx1ZVN0ZGV2CisgICAgICAgICAgICBhc3Nl
cnQgcmVzdWx0LnZhbHVlTWluID09IGR1cGxpY2F0ZS52YWx1ZU1pbgorICAgICAgICAgICAgYXNz
ZXJ0IHJlc3VsdC52YWx1ZU1heCA9PSBkdXBsaWNhdGUudmFsdWVNYXgKKyAgICAgICAgICAgIHJl
dHVybiBkdXBsaWNhdGUKKworICAgICAgICBkZWYgZGVsZXRlX2lmX3Bvc3NpYmxlKHJlc3VsdF9r
ZXkpOgorICAgICAgICAgICAgcmVzdWx0ID0gVGVzdFJlc3VsdC5nZXQocmVzdWx0X2tleSkKKyAg
ICAgICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAgICAgICAgICByZXN1bHQuZGVsZXRlKCkKKwor
ICAgICAgICByZXN1bHRzX3RvX2RlbGV0ZSA9IFtdCisgICAgICAgIGZvciByZXN1bHQgaW4gVGVz
dFJlc3VsdC5hbGwoKToKKyAgICAgICAgICAgIGlmIHJlc3VsdC5rZXkoKS5uYW1lKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IHJlc3VsdC5rZXkoKS5uYW1lKCkgPT0gVGVzdFJlc3VsdC5rZXlf
bmFtZShyZXN1bHQuYnVpbGQsIHJlc3VsdC5uYW1lKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgICAgICBkdXBsaWNhdGUgPSBkYi5ydW5faW5fdHJhbnNhY3Rpb24oY29udmVydF9p
Zl9uZWVkZWQsIHJlc3VsdCwgcmVzdWx0LmJ1aWxkKQorICAgICAgICAgICAgaWYgZHVwbGljYXRl
OgorICAgICAgICAgICAgICAgIHJlc3VsdHNfdG9fZGVsZXRlLmFwcGVuZChkdXBsaWNhdGUpCisK
KyAgICAgICAgZm9yIHJlc3VsdCBpbiByZXN1bHRzX3RvX2RlbGV0ZToKKyAgICAgICAgICAgIGRi
LnJ1bl9pbl90cmFuc2FjdGlvbihkZWxldGVfaWZfcG9zc2libGUsIHJlc3VsdC5rZXkoKSkKKwor
ICAgICAgICBzZWxmLl9lcnJvcignT0snKQorCiAgICAgZGVmIF9lcnJvcihzZWxmLCBtZXNzYWdl
KToKICAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICd0ZXh0
L3BsYWluOyBjaGFyc2V0PXV0Zi04JwogICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSht
ZXNzYWdlICsgJ1xuJykKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3Jl
cG9ydF9wcm9jZXNzX2hhbmRsZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBl
cmYuYXBwc3BvdC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFuZGxlci5weQkocmV2aXNpb24gMTA3Mzg2
KQorKysgV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFu
ZGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtNTMsMjQgKzUzLDE0IEBAIGNsYXNzIFJlcG9ydFBy
b2Nlc3NIYW5kbGVyKHdlYmFwcDIuUmVxdWUKICAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0
LndyaXRlKCJOb3QgcHJvY2Vzc2VkIikKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGRl
ZiBfZmxvYXRfb3Jfbm9uZShkaWN0aW9uYXJ5LCBrZXkpOgotICAgICAgICAgICAgdmFsdWUgPSBk
aWN0aW9uYXJ5LmdldChrZXkpCi0gICAgICAgICAgICBpZiB2YWx1ZToKLSAgICAgICAgICAgICAg
ICByZXR1cm4gZmxvYXQodmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotCiAgICAgICAg
IGJyYW5jaCA9IGxvZy5icmFuY2goKQogICAgICAgICBwbGF0Zm9ybSA9IGxvZy5wbGF0Zm9ybSgp
CiAgICAgICAgIGJ1aWxkID0gc2VsZi5fY3JlYXRlX2J1aWxkX2lmX3Bvc3NpYmxlKGxvZywgYnJh
bmNoLCBwbGF0Zm9ybSkKIAogICAgICAgICBmb3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gbG9nLnJl
c3VsdHMoKS5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIHRlc3QgPSBzZWxmLl9hZGRfdGVzdF9p
Zl9uZWVkZWQodGVzdF9uYW1lLCBicmFuY2gsIHBsYXRmb3JtKQorICAgICAgICAgICAgc2VsZi5f
YWRkX3Rlc3RfcmVzdWx0X2lmX25lZWRlZCh0ZXN0X25hbWUsIGJ1aWxkLCByZXN1bHQpCiAgICAg
ICAgICAgICBzY2hlZHVsZV9ydW5zX3VwZGF0ZSh0ZXN0LmlkLCBicmFuY2guaWQsIHBsYXRmb3Jt
LmlkKQotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIGRpY3QpOgotICAgICAgICAg
ICAgICAgIFRlc3RSZXN1bHQobmFtZT10ZXN0X25hbWUsIGJ1aWxkPWJ1aWxkLCB2YWx1ZT1mbG9h
dChyZXN1bHRbJ2F2ZyddKSwgdmFsdWVNZWRpYW49X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnbWVk
aWFuJyksCi0gICAgICAgICAgICAgICAgICAgIHZhbHVlU3RkZXY9X2Zsb2F0X29yX25vbmUocmVz
dWx0LCAnc3RkZXYnKSwgdmFsdWVNaW49X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnbWluJyksIHZh
bHVlTWF4PV9mbG9hdF9vcl9ub25lKHJlc3VsdCwgJ21heCcpKS5wdXQoKQotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICBUZXN0UmVzdWx0KG5hbWU9dGVzdF9uYW1lLCBidWlsZD1i
dWlsZCwgdmFsdWU9ZmxvYXQocmVzdWx0KSkucHV0KCkKIAogICAgICAgICBsb2cgPSBSZXBvcnRM
b2cuZ2V0KGxvZy5rZXkoKSkKICAgICAgICAgbG9nLmRlbGV0ZSgpCkBAIC0xMTAsMyArMTAwLDE5
IEBAIGNsYXNzIFJlcG9ydFByb2Nlc3NIYW5kbGVyKHdlYmFwcDIuUmVxdWUKICAgICAgICAgICAg
IHRlc3QucHV0KCkKICAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZQogICAgICAgICByZXR1
cm4gY3JlYXRlX2luX3RyYW5zYWN0aW9uX3dpdGhfbnVtZXJpY19pZF9ob2xkZXIoZXhlY3V0ZSkg
b3IgVGVzdC5nZXRfYnlfa2V5X25hbWUodGVzdF9uYW1lKQorCisgICAgZGVmIF9hZGRfdGVzdF9y
ZXN1bHRfaWZfbmVlZGVkKHNlbGYsIHRlc3RfbmFtZSwgYnVpbGQsIHJlc3VsdCk6CisgICAgICAg
IGtleV9uYW1lID0gVGVzdFJlc3VsdC5rZXlfbmFtZShidWlsZCwgdGVzdF9uYW1lKQorCisgICAg
ICAgIGRlZiBfZmxvYXRfb3Jfbm9uZShkaWN0aW9uYXJ5LCBrZXkpOgorICAgICAgICAgICAgdmFs
dWUgPSBkaWN0aW9uYXJ5LmdldChrZXkpCisgICAgICAgICAgICBpZiB2YWx1ZToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmxvYXQodmFsdWUpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisg
ICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0LCBkaWN0KToKKyAgICAgICAgICAgIHJldHVybiBU
ZXN0UmVzdWx0LmdldF9vcl9pbnNlcnQoa2V5X25hbWUsIG5hbWU9dGVzdF9uYW1lLCBidWlsZD1i
dWlsZCwgdmFsdWU9ZmxvYXQocmVzdWx0WydhdmcnXSksCisgICAgICAgICAgICAgICAgdmFsdWVN
ZWRpYW49X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnbWVkaWFuJyksIHZhbHVlU3RkZXY9X2Zsb2F0
X29yX25vbmUocmVzdWx0LCAnc3RkZXYnKSwKKyAgICAgICAgICAgICAgICB2YWx1ZU1pbj1fZmxv
YXRfb3Jfbm9uZShyZXN1bHQsICdtaW4nKSwgdmFsdWVNYXg9X2Zsb2F0X29yX25vbmUocmVzdWx0
LCAnbWF4JykpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gVGVzdFJlc3VsdC5n
ZXRfb3JfaW5zZXJ0KGtleV9uYW1lLCBuYW1lPXRlc3RfbmFtZSwgYnVpbGQ9YnVpbGQsIHZhbHVl
PWZsb2F0KHJlc3VsdCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126710</attachid>
            <date>2012-02-12 21:13:36 -0800</date>
            <delta_ts>2012-02-12 21:41:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78373-20120212211335.patch</filename>
            <type>text/plain</type>
            <size>5629</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzUy
NSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAy
LTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJFR1JFU1NJ
T046IFBlcmYtby1tYXRpYyBhZGRzIGR1cGxpY2F0ZWQgdGVzdCByZXN1bHRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM3MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBUZXN0UmVzdWx0IGluc2lk
ZSBhIHRyYW5zYWN0aW9uLiBXZSB1c2UgaGlnaCByZXBsaWNhdGlvbiBkYXRhYnNhZSBidXQgdGhp
cyBzaG91bGQgcHJldmVudAorICAgICAgICB0aGUgZHVwbGljYXRpb24gaW4gdGhlIG1vc3Qgb2Yg
dGhlIHRpbWUuCisKKyAgICAgICAgQWxzbyBmaXhlZCByYW5kb20gYnVncyBpbiBDb250cm9sbGVy
IGFuZCBSZXBvcnRIYW5kbGVyLgorCisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBw
c3BvdC5jb20vY29udHJvbGxlci5weToKKyAgICAgICAgKGdldF9wZXJzaXN0ZW50X2NhY2hlKToK
KyAgICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9yZXBvcnRfaGFuZGxl
ci5weToKKyAgICAgICAgKFJlcG9ydEhhbmRsZXIucG9zdCk6CisgICAgICAgICogV2Vic2l0ZXMv
d2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFuZGxlci5weToKKyAgICAg
ICAgKFJlcG9ydFByb2Nlc3NIYW5kbGVyLnBvc3QpOgorICAgICAgICAoUmVwb3J0UHJvY2Vzc0hh
bmRsZXIuX2FkZF90ZXN0X2lmX25lZWRlZCk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxl
cik6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5fYWRkX3Rlc3RfcmVzdWx0X2lmX25l
ZWRlZCk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5fYWRkX3Rlc3RfcmVzdWx0X2lm
X25lZWRlZC5fZmxvYXRfb3Jfbm9uZSk6CisgICAgICAgIChSZXBvcnRQcm9jZXNzSGFuZGxlci5f
YWRkX3Rlc3RfcmVzdWx0X2lmX25lZWRlZC5leGVjdXRlKToKKwogMjAxMi0wMi0xMiAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZC4gRml4IEdUSysgYnVpbGQgYWZ0ZXIgcjEwNzQ1NC4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1w
ZXJmLmFwcHNwb3QuY29tL2NvbnRyb2xsZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Vi
a2l0LXBlcmYuYXBwc3BvdC5jb20vY29udHJvbGxlci5weQkocmV2aXNpb24gMTA3NTI1KQorKysg
V2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vY29udHJvbGxlci5weQkod29ya2luZyBj
b3B5KQpAQCAtNTUsNyArNTUsNyBAQCBkZWYgZ2V0X3BlcnNpc3RlbnRfY2FjaGUobmFtZSk6CiAg
ICAgaWYgdmFsdWU6CiAgICAgICAgIHJldHVybiB2YWx1ZQogICAgIGNhY2hlID0gUGVyc2lzdGVu
dENhY2hlLmdldF9ieV9rZXlfbmFtZShuYW1lKQotICAgIG1lbWNhY2hlLnNldChuYW1lLCBjYWNo
ZSkKKyAgICBtZW1jYWNoZS5zZXQobmFtZSwgY2FjaGUudmFsdWUpCiAgICAgcmV0dXJuIGNhY2hl
LnZhbHVlCiAKIApJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vbW9kZWxz
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21vZGVs
cy5weQkocmV2aXNpb24gMTA3NTI1KQorKysgV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5j
b20vbW9kZWxzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNiArMTE3LDEwIEBAIGNsYXNzIFRl
c3RSZXN1bHQoZGIuTW9kZWwpOgogICAgIHZhbHVlTWluID0gZGIuRmxvYXRQcm9wZXJ0eSgpCiAg
ICAgdmFsdWVNYXggPSBkYi5GbG9hdFByb3BlcnR5KCkKIAorICAgIEBzdGF0aWNtZXRob2QKKyAg
ICBkZWYga2V5X25hbWUoYnVpbGQsIHRlc3RfbmFtZSk6CisgICAgICAgIHJldHVybiBidWlsZC5r
ZXkoKS5uYW1lKCkgKyAnOicgKyB0ZXN0X25hbWUKKwogCiAjIFRlbXBvcmFyaWx5IHN0b3JlIGxv
ZyByZXBvcnRzIHNlbnQgYnkgYm90cwogY2xhc3MgUmVwb3J0TG9nKGRiLk1vZGVsKToKSW5kZXg6
IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9oYW5kbGVyLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9oYW5kbGVy
LnB5CShyZXZpc2lvbiAxMDc1MjUpCisrKyBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNv
bS9yZXBvcnRfaGFuZGxlci5weQkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBjbGFz
cyBSZXBvcnRIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsCiAgICAgICAgIGhlYWRlcnMgPSAi
XG4iLmpvaW4oW2tleSArICc6ICcgKyB2YWx1ZSBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLnJlcXVl
c3QuaGVhZGVycy5pdGVtcygpXSkKIAogICAgICAgICAjIERvIGFzIGJlc3QgYXMgd2UgY2FuIHRv
IHJlbW92ZSB0aGUgcGFzc3dvcmQKLSAgICAgICAgcmVxdWVzdF9ib2R5X3dpdGhvdXRfcGFzc3dv
cmQgPSByZS5zdWIocicicGFzc3dvcmQiXHMqOlxzKiIuKz8iLCcsICcnLCBzZWxmLnJlcXVlc3Qu
Ym9keSkKKyAgICAgICAgcmVxdWVzdF9ib2R5X3dpdGhvdXRfcGFzc3dvcmQgPSByZS5zdWIocici
cGFzc3dvcmQiXHMqOlxzKiIuKz8iLD8nLCAnJywgc2VsZi5yZXF1ZXN0LmJvZHkpCiAgICAgICAg
IGxvZyA9IFJlcG9ydExvZyh0aW1lc3RhbXA9ZGF0ZXRpbWUubm93KCksIGhlYWRlcnM9aGVhZGVy
cywgcGF5bG9hZD1yZXF1ZXN0X2JvZHlfd2l0aG91dF9wYXNzd29yZCkKICAgICAgICAgbG9nLnB1
dCgpCiAKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3JlcG9ydF9wcm9j
ZXNzX2hhbmRsZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3Bv
dC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFuZGxlci5weQkocmV2aXNpb24gMTA3NTI1KQorKysgV2Vi
c2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vcmVwb3J0X3Byb2Nlc3NfaGFuZGxlci5weQko
d29ya2luZyBjb3B5KQpAQCAtNTMsMjQgKzUzLDE0IEBAIGNsYXNzIFJlcG9ydFByb2Nlc3NIYW5k
bGVyKHdlYmFwcDIuUmVxdWUKICAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKCJO
b3QgcHJvY2Vzc2VkIikKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGRlZiBfZmxvYXRf
b3Jfbm9uZShkaWN0aW9uYXJ5LCBrZXkpOgotICAgICAgICAgICAgdmFsdWUgPSBkaWN0aW9uYXJ5
LmdldChrZXkpCi0gICAgICAgICAgICBpZiB2YWx1ZToKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZmxvYXQodmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotCiAgICAgICAgIGJyYW5jaCA9
IGxvZy5icmFuY2goKQogICAgICAgICBwbGF0Zm9ybSA9IGxvZy5wbGF0Zm9ybSgpCiAgICAgICAg
IGJ1aWxkID0gc2VsZi5fY3JlYXRlX2J1aWxkX2lmX3Bvc3NpYmxlKGxvZywgYnJhbmNoLCBwbGF0
Zm9ybSkKIAogICAgICAgICBmb3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gbG9nLnJlc3VsdHMoKS5p
dGVyaXRlbXMoKToKICAgICAgICAgICAgIHRlc3QgPSBzZWxmLl9hZGRfdGVzdF9pZl9uZWVkZWQo
dGVzdF9uYW1lLCBicmFuY2gsIHBsYXRmb3JtKQorICAgICAgICAgICAgc2VsZi5fYWRkX3Rlc3Rf
cmVzdWx0X2lmX25lZWRlZCh0ZXN0X25hbWUsIGJ1aWxkLCByZXN1bHQpCiAgICAgICAgICAgICBz
Y2hlZHVsZV9ydW5zX3VwZGF0ZSh0ZXN0LmlkLCBicmFuY2guaWQsIHBsYXRmb3JtLmlkKQotICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIGRpY3QpOgotICAgICAgICAgICAgICAgIFRl
c3RSZXN1bHQobmFtZT10ZXN0X25hbWUsIGJ1aWxkPWJ1aWxkLCB2YWx1ZT1mbG9hdChyZXN1bHRb
J2F2ZyddKSwgdmFsdWVNZWRpYW49X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnbWVkaWFuJyksCi0g
ICAgICAgICAgICAgICAgICAgIHZhbHVlU3RkZXY9X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnc3Rk
ZXYnKSwgdmFsdWVNaW49X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnbWluJyksIHZhbHVlTWF4PV9m
bG9hdF9vcl9ub25lKHJlc3VsdCwgJ21heCcpKS5wdXQoKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBUZXN0UmVzdWx0KG5hbWU9dGVzdF9uYW1lLCBidWlsZD1idWlsZCwgdmFs
dWU9ZmxvYXQocmVzdWx0KSkucHV0KCkKIAogICAgICAgICBsb2cgPSBSZXBvcnRMb2cuZ2V0KGxv
Zy5rZXkoKSkKICAgICAgICAgbG9nLmRlbGV0ZSgpCkBAIC0xMTAsMyArMTAwLDE5IEBAIGNsYXNz
IFJlcG9ydFByb2Nlc3NIYW5kbGVyKHdlYmFwcDIuUmVxdWUKICAgICAgICAgICAgIHRlc3QucHV0
KCkKICAgICAgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZQogICAgICAgICByZXR1cm4gY3JlYXRl
X2luX3RyYW5zYWN0aW9uX3dpdGhfbnVtZXJpY19pZF9ob2xkZXIoZXhlY3V0ZSkgb3IgVGVzdC5n
ZXRfYnlfa2V5X25hbWUodGVzdF9uYW1lKQorCisgICAgZGVmIF9hZGRfdGVzdF9yZXN1bHRfaWZf
bmVlZGVkKHNlbGYsIHRlc3RfbmFtZSwgYnVpbGQsIHJlc3VsdCk6CisgICAgICAgIGtleV9uYW1l
ID0gVGVzdFJlc3VsdC5rZXlfbmFtZShidWlsZCwgdGVzdF9uYW1lKQorCisgICAgICAgIGRlZiBf
ZmxvYXRfb3Jfbm9uZShkaWN0aW9uYXJ5LCBrZXkpOgorICAgICAgICAgICAgdmFsdWUgPSBkaWN0
aW9uYXJ5LmdldChrZXkpCisgICAgICAgICAgICBpZiB2YWx1ZToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmxvYXQodmFsdWUpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGlm
IG5vdCBpc2luc3RhbmNlKHJlc3VsdCwgZGljdCk6CisgICAgICAgICAgICByZXR1cm4gVGVzdFJl
c3VsdC5nZXRfb3JfaW5zZXJ0KGtleV9uYW1lLCBuYW1lPXRlc3RfbmFtZSwgYnVpbGQ9YnVpbGQs
IHZhbHVlPWZsb2F0KHJlc3VsdCkpCisKKyAgICAgICAgcmV0dXJuIFRlc3RSZXN1bHQuZ2V0X29y
X2luc2VydChrZXlfbmFtZSwgbmFtZT10ZXN0X25hbWUsIGJ1aWxkPWJ1aWxkLCB2YWx1ZT1mbG9h
dChyZXN1bHRbJ2F2ZyddKSwKKyAgICAgICAgICAgIHZhbHVlTWVkaWFuPV9mbG9hdF9vcl9ub25l
KHJlc3VsdCwgJ21lZGlhbicpLCB2YWx1ZVN0ZGV2PV9mbG9hdF9vcl9ub25lKHJlc3VsdCwgJ3N0
ZGV2JyksCisgICAgICAgICAgICB2YWx1ZU1pbj1fZmxvYXRfb3Jfbm9uZShyZXN1bHQsICdtaW4n
KSwgdmFsdWVNYXg9X2Zsb2F0X29yX25vbmUocmVzdWx0LCAnbWF4JykpCg==
</data>
<flag name="review"
          id="128599"
          type_id="1"
          status="+"
          setter="morrita"
    />
          </attachment>
      

    </bug>

</bugzilla>