<?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>135772</bug_id>
          
          <creation_ts>2014-08-08 15:10:24 -0700</creation_ts>
          <short_desc>Web Inspector: Add a helper to avoid leaking single-fire event listeners in Promise chains</short_desc>
          <delta_ts>2014-08-11 11:23:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>135690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1027967</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-08 15:10:24 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027968</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-08-08 15:10:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/17964820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027976</commentid>
    <comment_count>2</comment_count>
      <attachid>236317</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-08 15:36:35 -0700</bug_when>
    <thetext>Created attachment 236317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028078</commentid>
    <comment_count>3</comment_count>
      <attachid>236317</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-08-09 23:31:18 -0700</bug_when>
    <thetext>Comment on attachment 236317
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/EventListenerSet.js:27
&gt; +WebInspector.EventListener = function(thisObject, fireOnce)

Should be separate file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028233</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-11 11:10:51 -0700</bug_when>
    <thetext>Committed r172396: &lt;http://trac.webkit.org/changeset/172396&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236317</attachid>
            <date>2014-08-08 15:36:35 -0700</date>
            <delta_ts>2014-08-11 11:23:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135772-20140808153637.patch</filename>
            <type>text/plain</type>
            <size>22822</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
ZWE0MmNiMjM3MGM2Y2E4MWMyNzMyMGI2ZTQ5NWEzNjNkODE2ZDZkLi4yYzE5ODU5ODJlNDY3MTUw
MTRkYmQ3NjNhZjVmNjJhYTgzNzcxNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzOCBAQAogMjAxNC0wOC0wOCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGEgaGVscGVyIHRvIGF2b2lkIGxl
YWtpbmcgc2luZ2xlLWZpcmUgZXZlbnQgbGlzdGVuZXJzIGluIFByb21pc2UgY2hhaW5zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU3NzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGNvbW1vbiBwYXR0
ZXJuIHdoZW4gd29ya2luZyB3aXRoIHByb21pc2UgY2hhaW5zIGlzIHRvIGNvbnZlcnQgYW4gZXZl
bnQKKyAgICAgICAgaGFuZGxlciBpbnRvIGEgcHJvbWlzZSBieSB1c2luZyBhIHNpbmdsZS1maXJl
IGV2ZW50IGxpc3RlbmVyIHdpdGggdGhlCisgICAgICAgIHJlc29sdmUgY29udGludWF0aW9uIGFz
IHRoZSBjYWxsYmFjay4gVGhpcyBpcyBmaW5lIGlmIHRoZSBldmVudCBmaXJlczsKKyAgICAgICAg
aWYgaXQgZG9lc24ndCBmaXJlLCB0aGVuIHRoZSBldmVudCBlbWl0dGVyIHBlcm1hbmVudGx5IGtl
ZXBzIGEgcmVmZXJlbmNlIHRvIHRoZQorICAgICAgICB0aGlzLW9iamVjdCBhbmQgdGhlIGNhbGxi
YWNrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBFdmVudExpc3RlbmVyLCBhIHByb3h5IG9i
amVjdCBmb3IgZXZlbnRzIHRoYXQgY2FuIGJlIG1hbmlwdWxhdGVkCisgICAgICAgIGZyb20gbXVs
dGlwbGUgcHJvbWlzZSBjYWxsYmFjayBmdW5jdGlvbnMuIElmIGEgcHJvbWlzZSBpcyByZWplY3Rl
ZCwgdGhlIGNhdGNoCisgICAgICAgIGJsb2NrIGNhbiBkaXNjb25uZWN0IGFueSBldmVudCBsaXN0
ZW5lcnMgc2V0IHVwIGVhcmxpZXIgaW4gdGhlIHByb21pc2UgY2hhaW4uCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhbHNvIHJlaW1wbGVtZW50cyBFdmVudExpc3RlbmVyU2V0IHRvIHVzZSBtdWx0aXBs
ZSBFdmVudExpc3RlbmVycywKKyAgICAgICAgc2luY2UgdGhleSBzaGFyZSB0aGUgc2FtZSBsb2dp
YyB0byB1bmlmb3JtbHkgaGFuZGxlIEluc3BlY3RvciBhbmQgRE9NIGV2ZW50cy4KKworICAgICAg
ICBUZXN0OiBpbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXIuaHRtbAorICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvZXZlbnQtbGlzdGVuZXItc2V0Lmh0bWwKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
QmFzZS9FdmVudExpc3RlbmVyU2V0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlz
dGVuZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXIucHJvdG90eXBlLnRo
aXMuX2NhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyLnByb3Rv
dHlwZS5jb25uZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyLnByb3Rv
dHlwZS5kaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyU2V0
LnByb3RvdHlwZS5yZWdpc3Rlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5l
clNldC5wcm90b3R5cGUuaW5zdGFsbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXZlbnRMaXN0
ZW5lclNldC5wcm90b3R5cGUudW5pbnN0YWxsKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rl
c3QuaHRtbDoKKworMjAxNC0wOC0wOCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGRlYnVnZ2luZyBmbGFnIHRvIElu
c3BlY3RvclRlc3QgZm9yIHVuYnVmZmVyZWQgbG9nZ2luZyB0byBzdGRlcnIKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTcyNgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0V2ZW50TGlzdGVuZXJT
ZXQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0V2ZW50TGlz
dGVuZXJTZXQuanMKaW5kZXggZjM1MmFiZDVmZDYxMGU4MDhiZjUyYWU4ZGFmNDBmYzAzNGY1NzNl
OS4uMTAxNmRmMWViYjNiMTNjMDAyNGU3NGJiZDExMThkM2Y2NmU3MjIyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9FdmVudExpc3RlbmVyU2V0
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvRXZlbnRM
aXN0ZW5lclNldC5qcwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
VW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE0IFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNCw2ICsyNCw2OSBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCitXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKHRoaXNPYmpl
Y3QsIGZpcmVPbmNlKQoreworICAgIHRoaXMuX3RoaXNPYmplY3QgPSB0aGlzT2JqZWN0OworICAg
IHRoaXMuX2VtaXR0ZXIgPSBudWxsOworICAgIHRoaXMuX2NhbGxiYWNrID0gbnVsbDsKKyAgICB0
aGlzLl9maXJlT25jZSA9IGZpcmVPbmNlOworfQorCitXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5l
ci5wcm90b3R5cGUgPSB7CisgICAgY29ubmVjdDogZnVuY3Rpb24oZW1pdHRlciwgdHlwZSwgY2Fs
bGJhY2ssIHVzZXNDYXB0dXJlKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMu
X2VtaXR0ZXIgJiYgIXRoaXMuX2NhbGxiYWNrLCAiRXZlbnRMaXN0ZW5lciBhbHJlYWR5IGJvdW5k
IHRvIGEgY2FsbGJhY2suIiwgdGhpcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNhbGxiYWNr
LCAiTWlzc2luZyBjYWxsYmFjayBmb3IgZXZlbnQ6ICIgKyB0eXBlKTsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoZW1pdHRlciwgIk1pc3NpbmcgZXZlbnQgZW1pdHRlciBmb3IgZXZlbnQ6ICIgKyB0
eXBlKTsKKyAgICAgICAgdmFyIGVtaXR0ZXJJc1ZhbGlkID0gZW1pdHRlciAmJiAoZW1pdHRlciBp
bnN0YW5jZW9mIFdlYkluc3BlY3Rvci5PYmplY3QgfHwgZW1pdHRlciBpbnN0YW5jZW9mIE5vZGUg
fHwgKHR5cGVvZiBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIgPT09ICJmdW5jdGlvbiIpKTsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoZW1pdHRlcklzVmFsaWQsICAiRXZlbnQgZW1pdHRlciAiLCBl
bWl0dGVyLCAiICh0eXBlOiIgKyB0eXBlICsgIikgaXMgbnVsbCBvciBkb2VzIG5vdCBpbXBsZW1l
bnQgTm9kZSBvciBXZWJJbnNwZWN0b3IuT2JqZWN0ISIpOworCisgICAgICAgIGlmICghZW1pdHRl
cklzVmFsaWQgfHwgIXR5cGUgfHwgIWNhbGxiYWNrKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHRoaXMuX2VtaXR0ZXIgPSBlbWl0dGVyOworICAgICAgICB0aGlzLl90eXBlID0gdHlw
ZTsKKyAgICAgICAgdGhpcy5fdXNlc0NhcHR1cmUgPSAhIXVzZXNDYXB0dXJlOworCisgICAgICAg
IGlmIChlbWl0dGVyIGluc3RhbmNlb2YgTm9kZSkKKyAgICAgICAgICAgIGNhbGxiYWNrID0gY2Fs
bGJhY2suYmluZCh0aGlzLl90aGlzT2JqZWN0KTsKKworICAgICAgICBpZiAodGhpcy5fZmlyZU9u
Y2UpIHsKKyAgICAgICAgICAgIHZhciBsaXN0ZW5lciA9IHRoaXM7CisgICAgICAgICAgICB0aGlz
Ll9jYWxsYmFjayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGxpc3RlbmVyLmRpc2Nv
bm5lY3QoKTsKKyAgICAgICAgICAgICAgICBjYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMp
OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2NhbGxi
YWNrID0gY2FsbGJhY2s7CisKKyAgICAgICAgaWYgKHRoaXMuX2VtaXR0ZXIgaW5zdGFuY2VvZiBO
b2RlKQorICAgICAgICAgICAgdGhpcy5fZW1pdHRlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuX3R5
cGUsIHRoaXMuX2NhbGxiYWNrLCB0aGlzLl91c2VzQ2FwdHVyZSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRoaXMuX2VtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLl90eXBlLCB0aGlz
Ll9jYWxsYmFjaywgdGhpcy5fdGhpc09iamVjdCk7CisgICAgfSwKKworICAgIGRpc2Nvbm5lY3Q6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2VtaXR0ZXIg
JiYgdGhpcy5fY2FsbGJhY2ssICJFdmVudExpc3RlbmVyIGlzIG5vdCBib3VuZCB0byBhIGNhbGxi
YWNrLiIsIHRoaXMpOworCisgICAgICAgIGlmICghdGhpcy5fZW1pdHRlciB8fCAhdGhpcy5fY2Fs
bGJhY2spCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHRoaXMuX2VtaXR0ZXIg
aW5zdGFuY2VvZiBOb2RlKQorICAgICAgICAgICAgdGhpcy5fZW1pdHRlci5yZW1vdmVFdmVudExp
c3RlbmVyKHRoaXMuX3R5cGUsIHRoaXMuX2NhbGxiYWNrLCB0aGlzLl91c2VzQ2FwdHVyZSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2VtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5l
cih0aGlzLl90eXBlLCB0aGlzLl9jYWxsYmFjaywgdGhpcy5fdGhpc09iamVjdCk7CisKKyAgICAg
ICAgaWYgKHRoaXMuX2ZpcmVPbmNlKQorICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3RoaXNPYmpl
Y3Q7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9lbWl0dGVyOworICAgICAgICBkZWxldGUgdGhpcy5f
dHlwZTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2NhbGxiYWNrOworICAgIH0KK307CisKKwogLy8g
VGhpcyBjbGFzcyBzdXBwb3J0cyBhZGRpbmcgYW5kIHJlbW92aW5nIG1hbnkgbGlzdGVuZXJzIGF0
IG9uY2UuCiAvLyBBZGQgRE9NIG9yIEluc3BlY3RvciBldmVudCBsaXN0ZW5lcnMgdG8gdGhlIHNl
dCB1c2luZyBgcmVnaXN0ZXIoKWAuCiAvLyBVc2UgYGluc3RhbGwoKWAgYW5kIGB1bmluc3RhbGwo
KWAgdG8gZW5hYmxlIG9yIGRpc2FibGUgYWxsIGxpc3RlbmVycwpAQCAtMzgsMTYgKzEwMSwxNyBA
QCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldCA9IGZ1bmN0aW9uKGRlZmF1bHRUaGlzT2Jq
ZWN0LCBuYW1lKQogfQogCiBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldC5wcm90b3R5cGUg
PSB7Ci0gICAgcmVnaXN0ZXI6IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUsIGxpc3RlbmVyLCB0aGlz
T2JqZWN0LCB1c2VDYXB0dXJlKQorICAgIHJlZ2lzdGVyOiBmdW5jdGlvbihlbWl0dGVyLCB0eXBl
LCBjYWxsYmFjaywgdGhpc09iamVjdCwgdXNlc0NhcHR1cmUpCiAgICAgewotICAgICAgICBjb25z
b2xlLmFzc2VydChsaXN0ZW5lciwgIk1pc3NpbmcgbGlzdGVuZXIgZm9yIGV2ZW50OiAiICsgdHlw
ZSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGVtaXR0ZXIsICJNaXNzaW5nIGV2ZW50IGVtaXR0
ZXIgZm9yIGV2ZW50OiAiICsgdHlwZSk7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGVtaXR0ZXIg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuT2JqZWN0IHx8IGVtaXR0ZXIgaW5zdGFuY2VvZiBOb2Rl
IHx8ICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAiZnVuY3Rpb24iKSwgIkV2
ZW50IGVtaXR0ZXIiLCBlbWl0dGVyLCAiICh0eXBlOiIgKyB0eXBlICsgIikgZG9lcyBub3QgaW1w
bGVtZW50IE5vZGUgb3IgV2ViSW5zcGVjdG9yLk9iamVjdCEiKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoY2FsbGJhY2ssICJNaXNzaW5nIGNhbGxiYWNrIGZvciBldmVudDogIiArIHR5cGUpOwor
ICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlLCAiVHJpZWQgdG8gcmVnaXN0ZXIgbGlzdGVuZXIg
Zm9yIHVua25vd24gZXZlbnQ6ICIgKyB0eXBlKTsKKyAgICAgICAgdmFyIGVtaXR0ZXJJc1ZhbGlk
ID0gZW1pdHRlciAmJiAoZW1pdHRlciBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5PYmplY3QgfHwg
ZW1pdHRlciBpbnN0YW5jZW9mIE5vZGUgfHwgKHR5cGVvZiBlbWl0dGVyLmFkZEV2ZW50TGlzdGVu
ZXIgPT09ICJmdW5jdGlvbiIpKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoZW1pdHRlcklzVmFs
aWQsICAiRXZlbnQgZW1pdHRlciAiLCBlbWl0dGVyLCAiICh0eXBlOiIgKyB0eXBlICsgIikgaXMg
bnVsbCBvciBkb2VzIG5vdCBpbXBsZW1lbnQgTm9kZSBvciBXZWJJbnNwZWN0b3IuT2JqZWN0ISIp
OwogCi0gICAgICAgIGlmIChlbWl0dGVyIGluc3RhbmNlb2YgTm9kZSkKLSAgICAgICAgICAgIGxp
c3RlbmVyID0gbGlzdGVuZXIuYmluZCh0aGlzT2JqZWN0IHx8IHRoaXMuX2RlZmF1bHRUaGlzT2Jq
ZWN0KTsKKyAgICAgICAgaWYgKCFlbWl0dGVySXNWYWxpZCB8fCAhdHlwZSB8fCAhY2FsbGJhY2sp
CisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fbGlzdGVuZXJzLnB1c2goe2Vt
aXR0ZXI6IGVtaXR0ZXIsIHR5cGU6IHR5cGUsIGxpc3RlbmVyOiBsaXN0ZW5lciwgdGhpc09iamVj
dDogdGhpc09iamVjdCwgdXNlQ2FwdHVyZTogdXNlQ2FwdHVyZX0pOworICAgICAgICB0aGlzLl9s
aXN0ZW5lcnMucHVzaCh7bGlzdGVuZXI6IG5ldyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcih0
aGlzT2JqZWN0IHx8IHRoaXMuX2RlZmF1bHRUaGlzT2JqZWN0KSwgZW1pdHRlcjogZW1pdHRlciwg
dHlwZTogdHlwZSwgY2FsbGJhY2s6IGNhbGxiYWNrLCB1c2VzQ2FwdHVyZTogdXNlc0NhcHR1cmV9
KTsKICAgICB9LAogCiAgICAgdW5yZWdpc3RlcjogZnVuY3Rpb24oKQpAQCAtNjAsMzMgKzEyNCwy
NyBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldC5wcm90b3R5cGUgPSB7CiAgICAgaW5z
dGFsbDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2lu
c3RhbGxlZCwgIkFscmVhZHkgaW5zdGFsbGVkIGxpc3RlbmVyIGdyb3VwOiAiICsgdGhpcy5uYW1l
KTsKKyAgICAgICAgaWYgKHRoaXMuX2luc3RhbGxlZCkKKyAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICB0aGlzLl9pbnN0YWxsZWQgPSB0cnVlOwogCi0gICAgICAgIGZvciAodmFyIGxpc3Rl
bmVyRGF0YSBvZiB0aGlzLl9saXN0ZW5lcnMpIHsKLSAgICAgICAgICAgIGlmIChsaXN0ZW5lckRh
dGEuZW1pdHRlciBpbnN0YW5jZW9mIE5vZGUpCi0gICAgICAgICAgICAgICAgbGlzdGVuZXJEYXRh
LmVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihsaXN0ZW5lckRhdGEudHlwZSwgbGlzdGVuZXJEYXRh
Lmxpc3RlbmVyLCBsaXN0ZW5lckRhdGEudXNlQ2FwdHVyZSk7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgbGlzdGVuZXJEYXRhLmVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihsaXN0
ZW5lckRhdGEudHlwZSwgbGlzdGVuZXJEYXRhLmxpc3RlbmVyLCBsaXN0ZW5lckRhdGEudGhpc09i
amVjdCB8fCB0aGlzLl9kZWZhdWx0VGhpc09iamVjdCk7Ci0gICAgICAgIH0KKyAgICAgICAgZm9y
ICh2YXIgZGF0YSBvZiB0aGlzLl9saXN0ZW5lcnMpCisgICAgICAgICAgICBkYXRhLmxpc3RlbmVy
LmNvbm5lY3QoZGF0YS5lbWl0dGVyLCBkYXRhLnR5cGUsIGRhdGEuY2FsbGJhY2ssIGRhdGEudXNl
c0NhcHR1cmUpOwogICAgIH0sCiAKICAgICB1bmluc3RhbGw6IGZ1bmN0aW9uKHVucmVnaXN0ZXJM
aXN0ZW5lcnMpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9pbnN0YWxsZWQs
ICJUcnlpbmcgdG8gdW5pbnN0YWxsIGxpc3RlbmVyIGdyb3VwICIgKyB0aGlzLm5hbWUgKyAiLCBi
dXQgaXQgaXNuJ3QgaW5zdGFsbGVkLiIpOworICAgICAgICBpZiAoIXRoaXMuX2luc3RhbGxlZCkK
KyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLl9pbnN0YWxsZWQgPSBmYWxzZTsK
IAotICAgICAgICBmb3IgKHZhciBsaXN0ZW5lckRhdGEgb2YgdGhpcy5fbGlzdGVuZXJzKSB7Ci0g
ICAgICAgICAgICBpZiAobGlzdGVuZXJEYXRhLmVtaXR0ZXIgaW5zdGFuY2VvZiBOb2RlKQotICAg
ICAgICAgICAgICAgIGxpc3RlbmVyRGF0YS5lbWl0dGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIobGlz
dGVuZXJEYXRhLnR5cGUsIGxpc3RlbmVyRGF0YS5saXN0ZW5lciwgbGlzdGVuZXJEYXRhLnVzZUNh
cHR1cmUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGxpc3RlbmVyRGF0YS5l
bWl0dGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIobGlzdGVuZXJEYXRhLnR5cGUsIGxpc3RlbmVyRGF0
YS5saXN0ZW5lciwgbGlzdGVuZXJEYXRhLnRoaXNPYmplY3QgfHwgdGhpcy5fZGVmYXVsdFRoaXNP
YmplY3QpOwotICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGRhdGEgb2YgdGhpcy5fbGlzdGVu
ZXJzKQorICAgICAgICAgICAgZGF0YS5saXN0ZW5lci5kaXNjb25uZWN0KCk7CiAKLSAgICAgICAg
aWYgKHVucmVnaXN0ZXJMaXN0ZW5lcnMpIHsKKyAgICAgICAgaWYgKHVucmVnaXN0ZXJMaXN0ZW5l
cnMpCiAgICAgICAgICAgICB0aGlzLl9saXN0ZW5lcnMgPSBbXTsKLSAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl9kZWZhdWx0VGhpc09iamVjdDsKLSAgICAgICAgfQogICAgIH0sCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggMTkzYTI3ZjVl
ZDVjMTdjMGZkNjEzM2JjYTc2Njg3ZTlmZjgwNDkxNy4uNDU0YWExYzNkN2I2ZWM5ZDMzY2Y3Yzg0
NzlmM2ExYjBhMGYzYTMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVGVzdC5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QuaHRtbApAQCAtMzUsNiArMzUsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJCYXNlL1Rl
c3QuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvRE9NVXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQmFzZS9FdmVudExpc3RlbmVyU2V0LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9VUkxVdGlsaXRpZXMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL1V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAzYjA4MmViOWI5NjVhMzhmNjQyN2RiYmY1YjE4OTUwNGEwNDNjMTE4Li4xMTJlYWMzMTMzZmY3
MDU5MDQ1OWNlMjZjYTllYTFlZmZlNDRhNjUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQt
MDgtMDggIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IEFkZCBhIGhlbHBlciB0byBhdm9pZCBsZWFraW5nIHNpbmdsZS1maXJl
IGV2ZW50IGxpc3RlbmVycyBpbiBQcm9taXNlIGNoYWlucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItc2V0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVy
LXNldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXIuaHRt
bDogQWRkZWQuCisKIDIwMTQtMDgtMDcgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGp1c3RtZW50cyB0byBDdWVCb3ggQ1NTIFdpZHRoIGNhbGN1bGF0aW9u
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ldmVudC1saXN0ZW5lci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYxNDBjMDg5ZTk5ZTJjMDU4NDBhYzIzODRjMDljZTY3N2JjMzg0MTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RpbmcgYmFzaWMgZnVuY3Rpb25hbGl0
eSBvZiBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lci4KKworQ29ubmVjdGluZyB0aGUgbGlzdGVu
ZXIuCitJbnZva2VkIGNhbGxiYWNrIGZvciBrYWJvb20gZXZlbnQuCitJbnZva2VkIGNhbGxiYWNr
IGZvciBrYWJvb20gZXZlbnQuCitEaXNjb25uZWN0aW5nIHRoZSBsaXN0ZW5lci4KK0Nvbm5lY3Rp
bmcgdGhlIGxpc3RlbmVyLgorSW52b2tlZCBjYWxsYmFjayBmb3Iga2Fib29tIGV2ZW50LgorRGlz
Y29ubmVjdGluZyB0aGUgbGlzdGVuZXIuCitDb25uZWN0aW5nIHRoZSBsaXN0ZW5lci4KK0Rpc2Nv
bm5lY3RpbmcgdGhlIGxpc3RlbmVyLgorQ29ubmVjdGluZyB0aGUgc2luZ2xlLWZpcmUgbGlzdGVu
ZXIuCitJbnZva2VkIGNhbGxiYWNrIGZvciBrYWJvb20gZXZlbnQuCitEaXNjb25uZWN0aW5nIHRo
ZSBzaW5nbGUtZmlyZSBsaXN0ZW5lci4KK0ludm9rZWQgY2FsbGJhY2sgZm9yIGthYm9vbSBldmVu
dC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLXNl
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItc2V0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTA5OGYzNGZjNzUyZmJiNjY1NzRkZjk2Nzk2YWVh
MGU0YTVjOWQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V2ZW50
LWxpc3RlbmVyLXNldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdGluZyBiYXNp
YyBmdW5jdGlvbmFsaXR5IG9mIFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyU2V0LgorCitSZWdp
c3RlcmluZyBsaXN0ZW5lcnMuCitJbnN0YWxsaW5nIGxpc3RlbmVycy4KK0Rpc3BhdGNoaW5nIGV2
ZW50cy4KK0ludm9rZWQgY2FsbGJhY2sgZm9yIGZvbyBldmVudC4KK0ludm9rZWQgY2FsbGJhY2sg
Zm9yIGJhciBldmVudC4KK0ludm9rZWQgY2FsbGJhY2sgZm9yIGJheiBldmVudC4KK1VuaW5zdGFs
bGluZyBhbmQgZGlzY29ubmVjdGluZyBsaXN0ZW5lcnMuCitSZWdpc3RlcmluZyBsaXN0ZW5lcnMu
CitEaXNwYXRjaGluZyBldmVudHMuCitJbnZva2VkIGNhbGxiYWNrIGZvciBmb28gZXZlbnQuCitJ
bnZva2VkIGNhbGxiYWNrIGZvciBiYXIgZXZlbnQuCitJbnZva2VkIGNhbGxiYWNrIGZvciBiYXog
ZXZlbnQuCitVbmluc3RhbGxpbmcgbGlzdGVuZXJzLgorSW5zdGFsbGluZyBsaXN0ZW5lcnMuCitE
aXNwYXRjaGluZyBldmVudHMuCitJbnZva2VkIGNhbGxiYWNrIGZvciBmb28gZXZlbnQuCitJbnZv
a2VkIGNhbGxiYWNrIGZvciBiYXIgZXZlbnQuCitJbnZva2VkIGNhbGxiYWNrIGZvciBiYXogZXZl
bnQuCitVbnJlZ2lzdGVyaW5nIGV2ZXJ5dGhpbmcuCitEaXNwYXRjaGluZyBldmVudHMuCitVbmlu
dGFsbGluZyBhbmQgZGlzY29ubmVjdGluZyBsaXN0ZW5lcnMuCitEaXNwYXRjaGluZyBldmVudHMu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ldmVudC1saXN0ZW5lci1zZXQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ldmVudC1saXN0ZW5lci1zZXQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MDk2NGIzMmNiZjhmMjM4MWRkNjQ4MzFlZTJkNjQxYjdjNjllMjRjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLXNldC5odG1s
CkBAIC0wLDAgKzEsMTE3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgY29uc3QgRm9vRXZlbnQgPSAiZm9vIjsKKyAgICBjb25zdCBCYXJFdmVudCA9ICJiYXIi
OworICAgIGNvbnN0IEJhekV2ZW50ID0gImJheiI7CisgICAgdmFyIGVtaXR0ZXIxID0gbmV3IFdl
Ykluc3BlY3Rvci5PYmplY3QoKTsKKyAgICB2YXIgZW1pdHRlcjIgPSBuZXcgV2ViSW5zcGVjdG9y
Lk9iamVjdCgpOworICAgIHZhciBjb250ZXh0MSA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0KCk7
CisgICAgdmFyIGNvbnRleHQyID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3QoKTsKKyAgICB2YXIg
ZGF0YTEgPSBbMSwgMiwgM107CisgICAgdmFyIGRhdGEyID0gWzQsIDYsIDhdOworCisgICAgZnVu
Y3Rpb24gZm9vQ2FsbGJhY2soZXZlbnQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydCh0aGlzID09PSBjb250ZXh0MSwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyB8dGhp
c3wgYmluZGluZy4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0
ID09PSBlbWl0dGVyMSwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBlbWl0dGVy
LiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRhID09PSBkYXRhMSwg
IkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBkYXRhLiIpOworCisgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJJbnZva2VkIGNhbGxiYWNrIGZvciBmb28gZXZlbnQuIik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gYmFyQ2FsbGJhY2soZXZlbnQpCisgICAgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydCh0aGlzID09PSBjb250ZXh0MSwgIkNhbGxiYWNrIGludm9rZWQgd2l0
aCB3cm9uZyB8dGhpc3wgYmluZGluZy4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
ZXZlbnQudGFyZ2V0ID09PSBlbWl0dGVyMSwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBl
dmVudCBlbWl0dGVyLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRh
ID09PSBkYXRhMiwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBkYXRhLiIpOwor
CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnZva2VkIGNhbGxiYWNrIGZvciBiYXIgZXZl
bnQuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYmF6Q2FsbGJhY2soZXZlbnQpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0aGlzID09PSBjb250ZXh0MiwgIkNhbGxiYWNr
IGludm9rZWQgd2l0aCB3cm9uZyB8dGhpc3wgYmluZGluZy4iKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0ID09PSBlbWl0dGVyMiwgIkNhbGxiYWNrIGludm9rZWQg
d2l0aCB3cm9uZyBldmVudCBlbWl0dGVyLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChldmVudC5kYXRhID09PSBkYXRhMiwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVu
dCBkYXRhLiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnZva2VkIGNhbGxiYWNr
IGZvciBiYXogZXZlbnQuIik7CisgICAgfQorCisgICAgLy8gVGVzdCBmb3IgbXVsdGlwbGUgZmly
aW5ncyBvZiBsaXN0ZW5lcnMgaW4gdGhlIHNldC4KKworICAgIHZhciBsaXN0ZW5lclNldCA9IG5l
dyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldChjb250ZXh0MSk7CisgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoIWVtaXR0ZXIxLmhhc0V2ZW50TGlzdGVuZXJzKEZvb0V2ZW50KSwgIkVtaXR0
ZXIgc2hvdWxkIG5vdCBoYXZlIGFueSBsaXN0ZW5lcnMuIik7CisgICAgZW1pdHRlcjEuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKEZvb0V2ZW50LCBkYXRhMSk7IC8vIFNob3VsZCBub3QgZmlyZSBh
bnl0aGluZy4KKworICAgIEluc3BlY3RvclRlc3QubG9nKCJSZWdpc3RlcmluZyBsaXN0ZW5lcnMu
Iik7CisgICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIoZW1pdHRlcjEsIEZvb0V2ZW50LCBmb29DYWxs
YmFjayk7CisgICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIoZW1pdHRlcjEsIEJhckV2ZW50LCBiYXJD
YWxsYmFjayk7CisgICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIoZW1pdHRlcjIsIEJhekV2ZW50LCBi
YXpDYWxsYmFjaywgY29udGV4dDIpOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVy
MS5oYXNFdmVudExpc3RlbmVycyhGb29FdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBh
IGxpc3RlbmVyLiIpOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVyMS5oYXNFdmVu
dExpc3RlbmVycyhCYXJFdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBhIGxpc3RlbmVy
LiIpOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVyMi5oYXNFdmVudExpc3RlbmVy
cyhCYXpFdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBhIGxpc3RlbmVyLiIpOworCisg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkluc3RhbGxpbmcgbGlzdGVuZXJzLiIpOworICAgIGxpc3Rl
bmVyU2V0Lmluc3RhbGwoKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChlbWl0dGVyMS5oYXNF
dmVudExpc3RlbmVycyhGb29FdmVudCksICJFbWl0dGVyIHNob3VsZCBoYXZlIGEgbGlzdGVuZXIu
Iik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZW1pdHRlcjEuaGFzRXZlbnRMaXN0ZW5lcnMo
QmFyRXZlbnQpLCAiRW1pdHRlciBzaG91bGQgaGF2ZSBhIGxpc3RlbmVyLiIpOworICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGVtaXR0ZXIyLmhhc0V2ZW50TGlzdGVuZXJzKEJhekV2ZW50KSwgIkVt
aXR0ZXIgc2hvdWxkIGhhdmUgYSBsaXN0ZW5lci4iKTsKKworICAgIEluc3BlY3RvclRlc3QubG9n
KCJEaXNwYXRjaGluZyBldmVudHMuIik7CisgICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKEZvb0V2ZW50LCBkYXRhMSk7IC8vIFNob3VsZCBmaXJlLgorICAgIGVtaXR0ZXIxLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXJFdmVudCwgZGF0YTIpOyAvLyBTaG91bGQgZmlyZS4K
KyAgICBlbWl0dGVyMi5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoQmF6RXZlbnQsIGRhdGEyKTsg
Ly8gU2hvdWxkIGZpcmUuCisgICAgSW5zcGVjdG9yVGVzdC5sb2coIlVuaW5zdGFsbGluZyBhbmQg
ZGlzY29ubmVjdGluZyBsaXN0ZW5lcnMuIik7CisgICAgbGlzdGVuZXJTZXQudW5pbnN0YWxsKHRy
dWUpOworCisgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJlZ2lzdGVyaW5nIGxpc3RlbmVycy4iKTsK
KyAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0dGVyMSwgRm9vRXZlbnQsIGZvb0NhbGxiYWNr
KTsKKyAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0dGVyMSwgQmFyRXZlbnQsIGJhckNhbGxi
YWNrKTsKKyAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0dGVyMiwgQmF6RXZlbnQsIGJhekNh
bGxiYWNrLCBjb250ZXh0Mik7CisKKyAgICBsaXN0ZW5lclNldC5pbnN0YWxsKCk7CisgICAgSW5z
cGVjdG9yVGVzdC5sb2coIkRpc3BhdGNoaW5nIGV2ZW50cy4iKTsKKyAgICBlbWl0dGVyMS5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoRm9vRXZlbnQsIGRhdGExKTsgLy8gU2hvdWxkIGZpcmUuCisg
ICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEJhckV2ZW50LCBkYXRhMik7IC8v
IFNob3VsZCBmaXJlLgorICAgIGVtaXR0ZXIyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXpF
dmVudCwgZGF0YTIpOyAvLyBTaG91bGQgZmlyZS4KKyAgICBJbnNwZWN0b3JUZXN0LmxvZygiVW5p
bnN0YWxsaW5nIGxpc3RlbmVycy4iKTsKKyAgICBsaXN0ZW5lclNldC51bmluc3RhbGwoKTsKKwor
ICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnN0YWxsaW5nIGxpc3RlbmVycy4iKTsKKyAgICBsaXN0
ZW5lclNldC5pbnN0YWxsKCk7CisgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRpc3BhdGNoaW5nIGV2
ZW50cy4iKTsKKyAgICBlbWl0dGVyMS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoRm9vRXZlbnQs
IGRhdGExKTsgLy8gU2hvdWxkIGZpcmUuCisgICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKEJhckV2ZW50LCBkYXRhMik7IC8vIFNob3VsZCBmaXJlLgorICAgIGVtaXR0ZXIyLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXpFdmVudCwgZGF0YTIpOyAvLyBTaG91bGQgZmlyZS4K
KworICAgIEluc3BlY3RvclRlc3QubG9nKCJVbnJlZ2lzdGVyaW5nIGV2ZXJ5dGhpbmcuIik7Cisg
ICAgbGlzdGVuZXJTZXQudW5yZWdpc3RlcigpOworICAgIEluc3BlY3RvclRlc3QubG9nKCJEaXNw
YXRjaGluZyBldmVudHMuIik7CisgICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KEZvb0V2ZW50LCBkYXRhMSk7IC8vIFNob3VsZCBub3QgZmlyZS4KKyAgICBlbWl0dGVyMS5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoQmFyRXZlbnQsIGRhdGEyKTsgLy8gU2hvdWxkIG5vdCBmaXJl
LgorICAgIGVtaXR0ZXIyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXpFdmVudCwgZGF0YTIp
OyAvLyBTaG91bGQgbm90IGZpcmUuCisKKyAgICBJbnNwZWN0b3JUZXN0LmxvZygiVW5pbnRhbGxp
bmcgYW5kIGRpc2Nvbm5lY3RpbmcgbGlzdGVuZXJzLiIpOworICAgIGxpc3RlbmVyU2V0LnVuaW5z
dGFsbCh0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGlzcGF0Y2hpbmcgZXZlbnRzLiIp
OworICAgIGVtaXR0ZXIxLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhGb29FdmVudCwgZGF0YTEp
OyAvLyBTaG91bGQgbm90IGZpcmUuCisgICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKEJhckV2ZW50LCBkYXRhMik7IC8vIFNob3VsZCBub3QgZmlyZS4KKyAgICBlbWl0dGVyMi5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoQmF6RXZlbnQsIGRhdGEyKTsgLy8gU2hvdWxkIG5vdCBm
aXJlLgorCisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIxLmhhc0V2ZW50TGlzdGVu
ZXJzKEZvb0V2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgbGlzdGVuZXIuIik7Cisg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIxLmhhc0V2ZW50TGlzdGVuZXJzKEJhckV2
ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgbGlzdGVuZXIuIik7CisgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIyLmhhc0V2ZW50TGlzdGVuZXJzKEJhekV2ZW50KSwgIkVt
aXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgbGlzdGVuZXIuIik7CisKKyAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+CisgICAgPHA+VGVzdGluZyBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIFdlYkluc3Bl
Y3Rvci5FdmVudExpc3RlbmVyU2V0LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9ldmVudC1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM4NTcxZWFiZjQ5OGM5
ZTI4NWRhNTdjYmNkMTgyOTczZjcwMTNiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9ldmVudC1saXN0ZW5lci5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBjb25zdCBLYWJvb21FdmVudCA9ICJr
YWJvb20iOworICAgIHZhciBlbWl0dGVyID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3QoKTsKKyAg
ICB2YXIgY29udGV4dCA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0KCk7CisgICAgdmFyIGRhdGEg
PSBbMSwgMiwgM107CisKKyAgICBmdW5jdGlvbiBrYWJvb21DYWxsYmFjayhldmVudCkgeworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0aGlzID09PSBjb250ZXh0LCAiQ2FsbGJhY2sgaW52
b2tlZCB3aXRoIHdyb25nIHx0aGlzfCBiaW5kaW5nLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChldmVudC50YXJnZXQgPT09IGVtaXR0ZXIsICJDYWxsYmFjayBpbnZva2VkIHdpdGgg
d3JvbmcgZXZlbnQgZW1pdHRlci4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZl
bnQuZGF0YSA9PT0gZGF0YSwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBkYXRh
LiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnZva2VkIGNhbGxiYWNrIGZvciBr
YWJvb20gZXZlbnQuIik7CisgICAgfQorCisgICAgLy8gVGVzdCBmb3IgbXVsdGlwbGUgZmlyaW5n
cyBvZiB0aGUgbGlzdGVuZXIuCisKKyAgICB2YXIgbGlzdGVuZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LkV2ZW50TGlzdGVuZXIoY29udGV4dCk7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVtaXR0
ZXIuaGFzRXZlbnRMaXN0ZW5lcnMoS2Fib29tRXZlbnQpLCAiRW1pdHRlciBzaG91bGQgbm90IGhh
dmUgYW55IGxpc3RlbmVycy4iKTsKKyAgICBlbWl0dGVyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhLYWJvb21FdmVudCwgZGF0YSk7IC8vIFNob3VsZCBub3QgZmlyZSBhbnl0aGluZy4KKworICAg
IEluc3BlY3RvclRlc3QubG9nKCJDb25uZWN0aW5nIHRoZSBsaXN0ZW5lci4iKTsKKyAgICBsaXN0
ZW5lci5jb25uZWN0KGVtaXR0ZXIsIEthYm9vbUV2ZW50LCBrYWJvb21DYWxsYmFjayk7CisgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoZW1pdHRlci5oYXNFdmVudExpc3RlbmVycyhLYWJvb21FdmVu
dCksICJFbWl0dGVyIHNob3VsZCBoYXZlIGEgbGlzdGVuZXIuIik7CisgICAgZW1pdHRlci5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoS2Fib29tRXZlbnQsIGRhdGEpOyAvLyBTaG91bGQgZmlyZS4K
KyAgICBlbWl0dGVyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhLYWJvb21FdmVudCwgZGF0YSk7
IC8vIFNob3VsZCBmaXJlLgorICAgIEluc3BlY3RvclRlc3QubG9nKCJEaXNjb25uZWN0aW5nIHRo
ZSBsaXN0ZW5lci4iKTsKKyAgICBsaXN0ZW5lci5kaXNjb25uZWN0KCk7CisKKyAgICBlbWl0dGVy
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhLYWJvb21FdmVudCwgZGF0YSk7IC8vIFNob3VsZCBu
b3QgZmlyZSBhbnl0aGluZy4KKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZW1pdHRlci5oYXNF
dmVudExpc3RlbmVycyhLYWJvb21FdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBhbnkg
bGlzdGVuZXJzLiIpOworCisgICAgLy8gVGVzdCByZWNvbm5lY3Rpb24uCisKKyAgICBJbnNwZWN0
b3JUZXN0LmxvZygiQ29ubmVjdGluZyB0aGUgbGlzdGVuZXIuIik7CisgICAgbGlzdGVuZXIuY29u
bmVjdChlbWl0dGVyLCBLYWJvb21FdmVudCwga2Fib29tQ2FsbGJhY2spOworICAgIGVtaXR0ZXIu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8gU2hvdWxkIGZp
cmUuCisgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRpc2Nvbm5lY3RpbmcgdGhlIGxpc3RlbmVyLiIp
OworICAgIGxpc3RlbmVyLmRpc2Nvbm5lY3QoKTsKKworICAgIC8vIFRlc3QgdW51c2VkIGxpc3Rl
bmVyLgorCisgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNvbm5lY3RpbmcgdGhlIGxpc3RlbmVyLiIp
OworICAgIGxpc3RlbmVyLmNvbm5lY3QoZW1pdHRlciwgS2Fib29tRXZlbnQsIGthYm9vbUNhbGxi
YWNrKTsKKyAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGlzY29ubmVjdGluZyB0aGUgbGlzdGVuZXIu
Iik7CisgICAgbGlzdGVuZXIuZGlzY29ubmVjdCgpOworCisgICAgLy8gVGVzdCBmb3Igc2luZ2xl
IGZpcmluZyBvZiB0aGUgbGlzdGVuZXIuCisKKyAgICB2YXIgc2luZ2xlTGlzdGVuZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXIoY29udGV4dCwgdHJ1ZSk7CisgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoIWVtaXR0ZXIuaGFzRXZlbnRMaXN0ZW5lcnMoS2Fib29tRXZlbnQpLCAiRW1p
dHRlciBzaG91bGQgbm90IGhhdmUgYW55IGxpc3RlbmVycy4iKTsKKyAgICBlbWl0dGVyLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhLYWJvb21FdmVudCwgZGF0YSk7IC8vIFNob3VsZCBub3QgZmly
ZSBhbnl0aGluZy4KKworICAgIEluc3BlY3RvclRlc3QubG9nKCJDb25uZWN0aW5nIHRoZSBzaW5n
bGUtZmlyZSBsaXN0ZW5lci4iKTsKKyAgICBzaW5nbGVMaXN0ZW5lci5jb25uZWN0KGVtaXR0ZXIs
IEthYm9vbUV2ZW50LCBrYWJvb21DYWxsYmFjayk7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
ZW1pdHRlci5oYXNFdmVudExpc3RlbmVycyhLYWJvb21FdmVudCksICJFbWl0dGVyIHNob3VsZCBo
YXZlIGEgbGlzdGVuZXIuIik7CisgICAgZW1pdHRlci5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
S2Fib29tRXZlbnQsIGRhdGEpOyAvLyBTaG91bGQgZmlyZS4KKyAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydCghZW1pdHRlci5oYXNFdmVudExpc3RlbmVycyhLYWJvb21FdmVudCksICJFbWl0dGVyIHNo
b3VsZCBub3QgaGF2ZSBhbnkgbGlzdGVuZXJzLiIpOworICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8gU2hvdWxkIG5vdCBmaXJlLgorICAg
IEluc3BlY3RvclRlc3QubG9nKCJEaXNjb25uZWN0aW5nIHRoZSBzaW5nbGUtZmlyZSBsaXN0ZW5l
ci4iKTsKKyAgICBzaW5nbGVMaXN0ZW5lci5kaXNjb25uZWN0KCk7IC8vIFNob3VsZCBjYXVzZSBh
biBlcnJvci4KKyAgICBlbWl0dGVyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhLYWJvb21FdmVu
dCwgZGF0YSk7IC8vIFNob3VsZCBub3QgZmlyZS4KKworICAgIC8vIFRlc3QgZm9yIHZhcmlvdXMg
ZXJyb3IgY2FzZXMgYW5kIGFidXNlLgorCisgICAgdmFyIGJhZExpc3RlbmVyID0gbmV3IFdlYklu
c3BlY3Rvci5FdmVudExpc3RlbmVyKGNvbnRleHQpOworICAgIGJhZExpc3RlbmVyLmNvbm5lY3Qo
ZGF0YSwgZGF0YSwgZGF0YSk7IC8vIFNob3VsZCBjb21wbGFpbiBhYm91dCBub24tY2FsbGFibGUg
Y2FsbGJhY2suCisgICAgYmFkTGlzdGVuZXIuY29ubmVjdChudWxsLCBLYWJvb21FdmVudCwga2Fi
b29tQ2FsbGJhY2spOyAvLyBTaG91bGQgY29tcGxhaW4gYWJvdXQgbm9uLWNhbGxhYmxlIGNhbGxi
YWNrLgorICAgIGJhZExpc3RlbmVyLmNvbm5lY3QoZW1pdHRlciwgS2Fib29tRXZlbnQsIG51bGwp
OyAvLyBTaG91bGQgY29tcGxhaW4gYWJvdXQgbm9uLWNhbGxhYmxlIGNhbGxiYWNrLgorICAgIGJh
ZExpc3RlbmVyLmNvbm5lY3QoZW1pdHRlciwgbnVsbCwga2Fib29tQ2FsbGJhY2spOyAvLyBTaG91
bGQgY29tcGxhaW4gYWJvdXQgbnVsbCBldmVudC4KKworICAgIHZhciBiYWRMaXN0ZW5lcjIgPSBu
ZXcgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXIoY29udGV4dCk7CisgICAgYmFkTGlzdGVuZXIy
LmRpc2Nvbm5lY3QoKTsgLy8gU2hvdWxkIGNvbXBsYWluIGFib3V0IGFscmVhZHkgZGlzY29ubmVj
dGVkLgorICAgIGJhZExpc3RlbmVyMi5jb25uZWN0KGVtaXR0ZXIsIEthYm9vbUV2ZW50LCBrYWJv
b21DYWxsYmFjayk7CisgICAgYmFkTGlzdGVuZXIyLmNvbm5lY3QoZW1pdHRlciwgS2Fib29tRXZl
bnQsIGthYm9vbUNhbGxiYWNrKTsgLy8gU2hvdWxkIGNvbXBsYWluIGFib3V0IGFscmVhZHkgY29u
bmVjdGVkLgorICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50
LCBkYXRhKTsgLy8gU2hvdWxkIGZpcmUuCisgICAgYmFkTGlzdGVuZXIyLmNvbm5lY3QoZW1pdHRl
ciwgS2Fib29tRXZlbnQsIGthYm9vbUNhbGxiYWNrKTsgLy8gU2hvdWxkIGNvbXBsYWluIGFib3V0
IGFscmVhZHkgY29ubmVjdGVkLgorICAgIGJhZExpc3RlbmVyMi5kaXNjb25uZWN0KCk7CisgICAg
YmFkTGlzdGVuZXIyLmRpc2Nvbm5lY3QoKTsgLy8gU2hvdWxkIGNvbXBsYWluIGFib3V0IGFscmVh
ZHkgZGlzY29ubmVjdGVkLgorCisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRl
c3RpbmcgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lci48
L3A+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="260915"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>